Commit 443c7d1f authored by Karl Floersch's avatar Karl Floersch

WIP: fix weird bug

parent 29f92bed
......@@ -69,7 +69,7 @@ contract OVM_CanonicalTransactionChain is iOVM_CanonicalTransactionChain, OVM_Ba
forceInclusionPeriodSeconds = _forceInclusionPeriodSeconds;
queue.init(100, 50, 10000000000); // TODO: Update once we have arbitrary condition
batches.init(100, 50, 10000000000); // TODO: Update once we have arbitrary condition
batches.init(2, 50, 0); // TODO: Update once we have arbitrary condition
}
......@@ -230,7 +230,7 @@ contract OVM_CanonicalTransactionChain is iOVM_CanonicalTransactionChain, OVM_Ba
// uint40 _shouldStartAtBatch,
// uint24 _totalElementsToAppend,
// BatchContext[] _contexts,
// bytes[] _transactionDatas
// bytes[] _transactionDataFields
)
override
public
......@@ -277,7 +277,12 @@ contract OVM_CanonicalTransactionChain is iOVM_CanonicalTransactionChain, OVM_Ba
BatchContext memory context = _getBatchContext(i);
_validateBatchContext(context, nextQueueIndex);
for (uint32 i = 0; i < context.numSequencedTransactions; i++) {
for (uint32 j = 0; j < context.numSequencedTransactions; j++) {
console.log("Iterating...");
console.log(j);
console.log(context.numSequencedTransactions);
console.log("Num sequenced");
console.log(context.numSequencedTransactions);
bytes memory txData = _getTransactionData(nextSequencerTransactionPosition);
leaves[transactionIndex] = _hashTransactionChainElement(
TransactionChainElement({
......@@ -288,12 +293,21 @@ contract OVM_CanonicalTransactionChain is iOVM_CanonicalTransactionChain, OVM_Ba
txData: txData
})
);
console.log("tx data & pos");
console.logBytes(txData);
console.log(nextSequencerTransactionPosition);
uint test;
nextSequencerTransactionPosition += uint32(TX_DATA_HEADER_SIZE + txData.length);
console.log("TX_DATA_HEADER_SIZE");
console.log(TX_DATA_HEADER_SIZE);
console.log(txData.length);
console.log(nextSequencerTransactionPosition);
console.log("~~~");
numSequencerTransactionsProcessed++;
transactionIndex++;
}
for (uint32 i = 0; i < context.numSubsequentQueueTransactions; i++) {
for (uint32 j = 0; j < context.numSubsequentQueueTransactions; j++) {
leaves[transactionIndex] = _getQueueLeafHash(nextQueueIndex);
nextQueueIndex++;
transactionIndex++;
......
......@@ -150,7 +150,7 @@ const encodeBatchContext = (context: BatchContext): string => {
)
}
describe('OVM_CanonicalTransactionChain', () => {
describe.only('OVM_CanonicalTransactionChain', () => {
let signer: Signer
let sequencer: Signer
before(async () => {
......@@ -488,6 +488,61 @@ describe('OVM_CanonicalTransactionChain', () => {
)
})
it.only('should revert if expected start does not match current total batches', async () => {
const timestamp = (await getEthTime(ethers.provider)) - 100
const blockNumber = (await getNextBlockNumber(ethers.provider)) + 100
// do two batch appends for no reason
await appendSequencerBatch(OVM_CanonicalTransactionChain, {
shouldStartAtBatch: 0,
totalElementsToAppend: 1,
contexts: [
{
numSequencedTransactions: 1,
numSubsequentQueueTransactions: 0,
timestamp,
blockNumber,
},
],
transactions: ['0x1234'],
})
await appendSequencerBatch(OVM_CanonicalTransactionChain, {
shouldStartAtBatch: 1,
totalElementsToAppend: 1,
contexts: [
{
numSequencedTransactions: 1,
numSubsequentQueueTransactions: 0,
timestamp,
blockNumber,
},
],
transactions: ['0x1234'],
})
const transactions = []
const numTxs = 2
for (let i = 0; i < numTxs; i++) {
transactions.push('0x' + '1080111111111111111111111111111111111111111111111111111111111111')
}
const res = await appendSequencerBatch(OVM_CanonicalTransactionChain, {
shouldStartAtBatch: 2,
totalElementsToAppend: numTxs,
contexts: [
{
numSequencedTransactions: numTxs,
numSubsequentQueueTransactions: 0,
timestamp,
blockNumber,
},
],
transactions,
})
const receipt = await res.wait()
console.log(res)
console.log(receipt)
})
it('should revert if expected start does not match current total batches', async () => {
await expect(
appendSequencerBatch(OVM_CanonicalTransactionChain, {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment