@aztec/archiver 3.0.0-nightly.20251202 → 3.0.0-nightly.20251204
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/archiver/archiver.d.ts +25 -23
- package/dest/archiver/archiver.d.ts.map +1 -1
- package/dest/archiver/archiver.js +32 -19
- package/dest/archiver/archiver_store.d.ts +16 -15
- package/dest/archiver/archiver_store.d.ts.map +1 -1
- package/dest/archiver/archiver_store_test_suite.d.ts +1 -1
- package/dest/archiver/archiver_store_test_suite.d.ts.map +1 -1
- package/dest/archiver/archiver_store_test_suite.js +81 -81
- package/dest/archiver/data_retrieval.d.ts +1 -1
- package/dest/archiver/data_retrieval.d.ts.map +1 -1
- package/dest/archiver/data_retrieval.js +2 -2
- package/dest/archiver/kv_archiver_store/block_store.d.ts +9 -8
- package/dest/archiver/kv_archiver_store/block_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/block_store.js +8 -7
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts +17 -16
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/log_store.d.ts +1 -1
- package/dest/archiver/kv_archiver_store/log_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/log_store.js +3 -2
- package/dest/archiver/structs/inbox_message.d.ts +3 -3
- package/dest/archiver/structs/inbox_message.d.ts.map +1 -1
- package/dest/archiver/structs/inbox_message.js +2 -1
- package/dest/factory.d.ts +1 -1
- package/dest/factory.d.ts.map +1 -1
- package/dest/factory.js +3 -2
- package/dest/test/mock_archiver.d.ts +3 -1
- package/dest/test/mock_archiver.d.ts.map +1 -1
- package/dest/test/mock_archiver.js +4 -0
- package/dest/test/mock_l1_to_l2_message_source.d.ts +4 -2
- package/dest/test/mock_l1_to_l2_message_source.d.ts.map +1 -1
- package/dest/test/mock_l1_to_l2_message_source.js +7 -2
- package/dest/test/mock_l2_block_source.d.ts +8 -5
- package/dest/test/mock_l2_block_source.d.ts.map +1 -1
- package/dest/test/mock_l2_block_source.js +15 -6
- package/dest/test/mock_structs.d.ts +1 -1
- package/dest/test/mock_structs.d.ts.map +1 -1
- package/dest/test/mock_structs.js +3 -2
- package/package.json +13 -13
- package/src/archiver/archiver.ts +58 -53
- package/src/archiver/archiver_store.ts +19 -14
- package/src/archiver/archiver_store_test_suite.ts +107 -76
- package/src/archiver/data_retrieval.ts +2 -2
- package/src/archiver/kv_archiver_store/block_store.ts +17 -16
- package/src/archiver/kv_archiver_store/kv_archiver_store.ts +16 -15
- package/src/archiver/kv_archiver_store/log_store.ts +3 -2
- package/src/archiver/structs/inbox_message.ts +4 -4
- package/src/factory.ts +3 -2
- package/src/test/mock_archiver.ts +6 -0
- package/src/test/mock_l1_to_l2_message_source.ts +9 -3
- package/src/test/mock_l2_block_source.ts +19 -8
- package/src/test/mock_structs.ts +3 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { INITIAL_L2_BLOCK_NUM, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, PRIVATE_LOG_SIZE_IN_FIELDS } from '@aztec/constants';
|
|
2
2
|
import { makeTuple } from '@aztec/foundation/array';
|
|
3
|
-
import { EpochNumber } from '@aztec/foundation/branded-types';
|
|
3
|
+
import { BlockNumber, EpochNumber } from '@aztec/foundation/branded-types';
|
|
4
4
|
import { Buffer16, Buffer32 } from '@aztec/foundation/buffer';
|
|
5
5
|
import { times, timesParallel } from '@aztec/foundation/collection';
|
|
6
6
|
import { randomInt } from '@aztec/foundation/crypto';
|
|
@@ -74,7 +74,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
74
74
|
};
|
|
75
75
|
beforeEach(async ()=>{
|
|
76
76
|
store = await getStore();
|
|
77
|
-
blocks = await timesParallel(10, async (i)=>makePublished(await L2Block.random(i + 1), i + 10));
|
|
77
|
+
blocks = await timesParallel(10, async (i)=>makePublished(await L2Block.random(BlockNumber(i + 1)), i + 10));
|
|
78
78
|
});
|
|
79
79
|
describe('addBlocks', ()=>{
|
|
80
80
|
it('returns success when adding blocks', async ()=>{
|
|
@@ -85,19 +85,19 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
85
85
|
await expect(store.addBlocks(blocks)).resolves.toBe(true);
|
|
86
86
|
});
|
|
87
87
|
it('throws an error if the previous block does not exist in the store', async ()=>{
|
|
88
|
-
const block = makePublished(await L2Block.random(2), 2);
|
|
88
|
+
const block = makePublished(await L2Block.random(BlockNumber(2)), 2);
|
|
89
89
|
await expect(store.addBlocks([
|
|
90
90
|
block
|
|
91
91
|
])).rejects.toThrow(InitialBlockNumberNotSequentialError);
|
|
92
|
-
await expect(store.getPublishedBlocks(1, 10)).resolves.toEqual([]);
|
|
92
|
+
await expect(store.getPublishedBlocks(BlockNumber(1), 10)).resolves.toEqual([]);
|
|
93
93
|
});
|
|
94
94
|
it('throws an error if there is a gap in the blocks being added', async ()=>{
|
|
95
95
|
const blocks = [
|
|
96
|
-
makePublished(await L2Block.random(1), 1),
|
|
97
|
-
makePublished(await L2Block.random(3), 3)
|
|
96
|
+
makePublished(await L2Block.random(BlockNumber(1)), 1),
|
|
97
|
+
makePublished(await L2Block.random(BlockNumber(3)), 3)
|
|
98
98
|
];
|
|
99
99
|
await expect(store.addBlocks(blocks)).rejects.toThrow(BlockNumberNotSequentialError);
|
|
100
|
-
await expect(store.getPublishedBlocks(1, 10)).resolves.toEqual([]);
|
|
100
|
+
await expect(store.getPublishedBlocks(BlockNumber(1), 10)).resolves.toEqual([]);
|
|
101
101
|
});
|
|
102
102
|
});
|
|
103
103
|
describe('unwindBlocks', ()=>{
|
|
@@ -112,12 +112,12 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
112
112
|
expect(await store.getPublishedBlocks(blockNumber, 1)).toEqual([]);
|
|
113
113
|
});
|
|
114
114
|
it('can unwind multiple empty blocks', async ()=>{
|
|
115
|
-
const emptyBlocks = await timesParallel(10, async (i)=>makePublished(await L2Block.random(i + 1, 0), i + 10));
|
|
115
|
+
const emptyBlocks = await timesParallel(10, async (i)=>makePublished(await L2Block.random(BlockNumber(i + 1), 0), i + 10));
|
|
116
116
|
await store.addBlocks(emptyBlocks);
|
|
117
117
|
expect(await store.getSynchedL2BlockNumber()).toBe(10);
|
|
118
|
-
await store.unwindBlocks(10, 3);
|
|
118
|
+
await store.unwindBlocks(BlockNumber(10), 3);
|
|
119
119
|
expect(await store.getSynchedL2BlockNumber()).toBe(7);
|
|
120
|
-
expect((await store.getPublishedBlocks(1, 10)).map((b)=>b.block.number)).toEqual([
|
|
120
|
+
expect((await store.getPublishedBlocks(BlockNumber(1), 10)).map((b)=>b.block.number)).toEqual([
|
|
121
121
|
1,
|
|
122
122
|
2,
|
|
123
123
|
3,
|
|
@@ -129,7 +129,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
129
129
|
});
|
|
130
130
|
it('refuses to unwind blocks if the tip is not the last block', async ()=>{
|
|
131
131
|
await store.addBlocks(blocks);
|
|
132
|
-
await expect(store.unwindBlocks(5, 1)).rejects.toThrow(/can only unwind blocks from the tip/i);
|
|
132
|
+
await expect(store.unwindBlocks(BlockNumber(5), 1)).rejects.toThrow(/can only unwind blocks from the tip/i);
|
|
133
133
|
});
|
|
134
134
|
it('unwound blocks and headers cannot be retrieved by hash or archive', async ()=>{
|
|
135
135
|
await store.addBlocks(blocks);
|
|
@@ -155,33 +155,33 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
155
155
|
await store.addBlocks(blocks);
|
|
156
156
|
});
|
|
157
157
|
it.each(blockTests)('retrieves previously stored blocks', async (start, limit, getExpectedBlocks)=>{
|
|
158
|
-
expectBlocksEqual(await store.getPublishedBlocks(start, limit), getExpectedBlocks());
|
|
158
|
+
expectBlocksEqual(await store.getPublishedBlocks(BlockNumber(start), limit), getExpectedBlocks());
|
|
159
159
|
});
|
|
160
160
|
it('returns an empty array if no blocks are found', async ()=>{
|
|
161
|
-
await expect(store.getPublishedBlocks(12, 1)).resolves.toEqual([]);
|
|
161
|
+
await expect(store.getPublishedBlocks(BlockNumber(12), 1)).resolves.toEqual([]);
|
|
162
162
|
});
|
|
163
163
|
it('throws an error if limit is invalid', async ()=>{
|
|
164
|
-
await expect(store.getPublishedBlocks(1, 0)).rejects.toThrow('Invalid limit: 0');
|
|
164
|
+
await expect(store.getPublishedBlocks(BlockNumber(1), 0)).rejects.toThrow('Invalid limit: 0');
|
|
165
165
|
});
|
|
166
166
|
it('throws an error if `from` it is out of range', async ()=>{
|
|
167
167
|
await expect(store.getPublishedBlocks(INITIAL_L2_BLOCK_NUM - 100, 1)).rejects.toThrow('Invalid start: -99');
|
|
168
168
|
});
|
|
169
169
|
it('throws an error if unexpected initial block number is found', async ()=>{
|
|
170
170
|
await store.addBlocks([
|
|
171
|
-
makePublished(await L2Block.random(21), 31)
|
|
171
|
+
makePublished(await L2Block.random(BlockNumber(21)), 31)
|
|
172
172
|
], {
|
|
173
173
|
force: true
|
|
174
174
|
});
|
|
175
|
-
await expect(store.getPublishedBlocks(20, 1)).rejects.toThrow(`mismatch`);
|
|
175
|
+
await expect(store.getPublishedBlocks(BlockNumber(20), 1)).rejects.toThrow(`mismatch`);
|
|
176
176
|
});
|
|
177
177
|
it('throws an error if a gap is found', async ()=>{
|
|
178
178
|
await store.addBlocks([
|
|
179
|
-
makePublished(await L2Block.random(20), 30),
|
|
180
|
-
makePublished(await L2Block.random(22), 32)
|
|
179
|
+
makePublished(await L2Block.random(BlockNumber(20)), 30),
|
|
180
|
+
makePublished(await L2Block.random(BlockNumber(22)), 32)
|
|
181
181
|
], {
|
|
182
182
|
force: true
|
|
183
183
|
});
|
|
184
|
-
await expect(store.getPublishedBlocks(20, 2)).rejects.toThrow(`mismatch`);
|
|
184
|
+
await expect(store.getPublishedBlocks(BlockNumber(20), 2)).rejects.toThrow(`mismatch`);
|
|
185
185
|
});
|
|
186
186
|
});
|
|
187
187
|
describe('getPublishedBlockByHash', ()=>{
|
|
@@ -340,17 +340,17 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
340
340
|
await expect(store.addLogs([
|
|
341
341
|
block
|
|
342
342
|
])).resolves.toEqual(true);
|
|
343
|
-
expect((await store.getPrivateLogs(1, 1)).length).toEqual(block.body.txEffects.map((txEffect)=>txEffect.privateLogs).flat().length);
|
|
343
|
+
expect((await store.getPrivateLogs(BlockNumber(1), 1)).length).toEqual(block.body.txEffects.map((txEffect)=>txEffect.privateLogs).flat().length);
|
|
344
344
|
expect((await store.getPublicLogs({
|
|
345
|
-
fromBlock: 1
|
|
345
|
+
fromBlock: BlockNumber(1)
|
|
346
346
|
})).logs.length).toEqual(block.body.txEffects.map((txEffect)=>txEffect.publicLogs).flat().length);
|
|
347
347
|
// This one is a pain for memory as we would never want to just delete memory in the middle.
|
|
348
348
|
await store.deleteLogs([
|
|
349
349
|
block
|
|
350
350
|
]);
|
|
351
|
-
expect((await store.getPrivateLogs(1, 1)).length).toEqual(0);
|
|
351
|
+
expect((await store.getPrivateLogs(BlockNumber(1), 1)).length).toEqual(0);
|
|
352
352
|
expect((await store.getPublicLogs({
|
|
353
|
-
fromBlock: 1
|
|
353
|
+
fromBlock: BlockNumber(1)
|
|
354
354
|
})).logs.length).toEqual(0);
|
|
355
355
|
});
|
|
356
356
|
});
|
|
@@ -363,7 +363,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
363
363
|
await store.addLogs([
|
|
364
364
|
block
|
|
365
365
|
]);
|
|
366
|
-
const privateLogs = await store.getPrivateLogs(1, 1);
|
|
366
|
+
const privateLogs = await store.getPrivateLogs(BlockNumber(1), 1);
|
|
367
367
|
expect(privateLogs).toEqual(block.body.txEffects.map((txEffect)=>txEffect.privateLogs).flat());
|
|
368
368
|
});
|
|
369
369
|
});
|
|
@@ -419,7 +419,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
419
419
|
()=>wrapInBlock(blocks[5].block.body.txEffects[2], blocks[5].block),
|
|
420
420
|
()=>wrapInBlock(blocks[1].block.body.txEffects[0], blocks[1].block)
|
|
421
421
|
])('tries to retrieves a previously stored transaction after deleted', async (getExpectedTx)=>{
|
|
422
|
-
await store.unwindBlocks(blocks.length, blocks.length);
|
|
422
|
+
await store.unwindBlocks(BlockNumber(blocks.length), blocks.length);
|
|
423
423
|
const expectedTx = await getExpectedTx();
|
|
424
424
|
const actualTx = await store.getTxEffect(expectedTx.data.txHash);
|
|
425
425
|
expect(actualTx).toEqual(undefined);
|
|
@@ -436,7 +436,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
436
436
|
await sleep(1);
|
|
437
437
|
}
|
|
438
438
|
})();
|
|
439
|
-
await store.unwindBlocks(blocks.length, blocks.length);
|
|
439
|
+
await store.unwindBlocks(BlockNumber(blocks.length), blocks.length);
|
|
440
440
|
done = true;
|
|
441
441
|
expect(await store.getTxEffect(expectedTx.data.txHash)).toEqual(undefined);
|
|
442
442
|
});
|
|
@@ -450,7 +450,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
450
450
|
};
|
|
451
451
|
const makeInboxMessagesWithFullBlocks = (blockCount, opts = {})=>makeInboxMessages(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP * blockCount, {
|
|
452
452
|
overrideFn: (msg, i)=>{
|
|
453
|
-
const l2BlockNumber = (opts.initialL2BlockNumber ?? initialL2BlockNumber) + Math.floor(i / NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
|
|
453
|
+
const l2BlockNumber = BlockNumber((opts.initialL2BlockNumber ?? initialL2BlockNumber) + Math.floor(i / NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP));
|
|
454
454
|
const index = InboxLeaf.smallestIndexFromL2Block(l2BlockNumber) + BigInt(i % NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
|
|
455
455
|
return {
|
|
456
456
|
...msg,
|
|
@@ -462,7 +462,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
462
462
|
it('stores first message ever', async ()=>{
|
|
463
463
|
const msg = makeInboxMessage(Buffer16.ZERO, {
|
|
464
464
|
index: 0n,
|
|
465
|
-
l2BlockNumber: 1
|
|
465
|
+
l2BlockNumber: BlockNumber(1)
|
|
466
466
|
});
|
|
467
467
|
await store.addL1ToL2Messages([
|
|
468
468
|
msg
|
|
@@ -470,13 +470,13 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
470
470
|
await checkMessages([
|
|
471
471
|
msg
|
|
472
472
|
]);
|
|
473
|
-
expect(await store.getL1ToL2Messages(1)).toEqual([
|
|
473
|
+
expect(await store.getL1ToL2Messages(BlockNumber(1))).toEqual([
|
|
474
474
|
msg.leaf
|
|
475
475
|
]);
|
|
476
476
|
});
|
|
477
477
|
it('stores single message', async ()=>{
|
|
478
478
|
const msg = makeInboxMessage(Buffer16.ZERO, {
|
|
479
|
-
l2BlockNumber: 2
|
|
479
|
+
l2BlockNumber: BlockNumber(2)
|
|
480
480
|
});
|
|
481
481
|
await store.addL1ToL2Messages([
|
|
482
482
|
msg
|
|
@@ -484,7 +484,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
484
484
|
await checkMessages([
|
|
485
485
|
msg
|
|
486
486
|
]);
|
|
487
|
-
expect(await store.getL1ToL2Messages(2)).toEqual([
|
|
487
|
+
expect(await store.getL1ToL2Messages(BlockNumber(2))).toEqual([
|
|
488
488
|
msg.leaf
|
|
489
489
|
]);
|
|
490
490
|
});
|
|
@@ -494,7 +494,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
494
494
|
});
|
|
495
495
|
await store.addL1ToL2Messages(msgs);
|
|
496
496
|
await checkMessages(msgs);
|
|
497
|
-
expect(await store.getL1ToL2Messages(initialL2BlockNumber + 2)).toEqual([
|
|
497
|
+
expect(await store.getL1ToL2Messages(BlockNumber(initialL2BlockNumber + 2))).toEqual([
|
|
498
498
|
msgs[2]
|
|
499
499
|
].map((m)=>m.leaf));
|
|
500
500
|
});
|
|
@@ -520,14 +520,14 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
520
520
|
...msgs1,
|
|
521
521
|
...msgs2
|
|
522
522
|
]);
|
|
523
|
-
expect(await store.getL1ToL2Messages(1)).toEqual([
|
|
523
|
+
expect(await store.getL1ToL2Messages(BlockNumber(1))).toEqual([
|
|
524
524
|
msgs1[0].leaf
|
|
525
525
|
]);
|
|
526
|
-
expect(await store.getL1ToL2Messages(4)).toEqual([]);
|
|
527
|
-
expect(await store.getL1ToL2Messages(20)).toEqual([
|
|
526
|
+
expect(await store.getL1ToL2Messages(BlockNumber(4))).toEqual([]);
|
|
527
|
+
expect(await store.getL1ToL2Messages(BlockNumber(20))).toEqual([
|
|
528
528
|
msgs2[0].leaf
|
|
529
529
|
]);
|
|
530
|
-
expect(await store.getL1ToL2Messages(24)).toEqual([]);
|
|
530
|
+
expect(await store.getL1ToL2Messages(BlockNumber(24))).toEqual([]);
|
|
531
531
|
});
|
|
532
532
|
it('stores and returns messages with block numbers larger than a byte', async ()=>{
|
|
533
533
|
const msgs = makeInboxMessages(5, {
|
|
@@ -535,7 +535,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
535
535
|
});
|
|
536
536
|
await store.addL1ToL2Messages(msgs);
|
|
537
537
|
await checkMessages(msgs);
|
|
538
|
-
expect(await store.getL1ToL2Messages(1002)).toEqual([
|
|
538
|
+
expect(await store.getL1ToL2Messages(BlockNumber(1002))).toEqual([
|
|
539
539
|
msgs[2]
|
|
540
540
|
].map((m)=>m.leaf));
|
|
541
541
|
});
|
|
@@ -543,7 +543,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
543
543
|
const msgs = makeInboxMessagesWithFullBlocks(4);
|
|
544
544
|
await store.addL1ToL2Messages(msgs);
|
|
545
545
|
await checkMessages(msgs);
|
|
546
|
-
const blockMessages = await store.getL1ToL2Messages(initialL2BlockNumber + 1);
|
|
546
|
+
const blockMessages = await store.getL1ToL2Messages(BlockNumber(initialL2BlockNumber + 1));
|
|
547
547
|
expect(blockMessages).toHaveLength(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
|
|
548
548
|
expect(blockMessages).toEqual(msgs.slice(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP * 2).map((m)=>m.leaf));
|
|
549
549
|
});
|
|
@@ -553,10 +553,10 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
553
553
|
});
|
|
554
554
|
await store.addL1ToL2Messages(msgs.slice(0, 10));
|
|
555
555
|
await store.addL1ToL2Messages(msgs.slice(10, 20));
|
|
556
|
-
expect(await store.getL1ToL2Messages(initialL2BlockNumber + 2)).toEqual([
|
|
556
|
+
expect(await store.getL1ToL2Messages(BlockNumber(initialL2BlockNumber + 2))).toEqual([
|
|
557
557
|
msgs[2]
|
|
558
558
|
].map((m)=>m.leaf));
|
|
559
|
-
expect(await store.getL1ToL2Messages(initialL2BlockNumber + 12)).toEqual([
|
|
559
|
+
expect(await store.getL1ToL2Messages(BlockNumber(initialL2BlockNumber + 12))).toEqual([
|
|
560
560
|
msgs[12]
|
|
561
561
|
].map((m)=>m.leaf));
|
|
562
562
|
await checkMessages(msgs);
|
|
@@ -595,7 +595,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
595
595
|
const msgs = makeInboxMessages(4, {
|
|
596
596
|
initialL2BlockNumber
|
|
597
597
|
});
|
|
598
|
-
msgs[2].l2BlockNumber = initialL2BlockNumber - 1;
|
|
598
|
+
msgs[2].l2BlockNumber = BlockNumber(initialL2BlockNumber - 1);
|
|
599
599
|
await store.addL1ToL2Messages(msgs.slice(0, 2));
|
|
600
600
|
await expect(store.addL1ToL2Messages(msgs.slice(2, 4))).rejects.toThrow(MessageStoreError);
|
|
601
601
|
});
|
|
@@ -607,7 +607,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
607
607
|
it('throws if rolling hash for first message is not correct', async ()=>{
|
|
608
608
|
const msgs = makeInboxMessages(4);
|
|
609
609
|
msgs[2].rollingHash = Buffer16.random();
|
|
610
|
-
await store.addL1ToL2Messages(msgs.slice(0, 2));
|
|
610
|
+
await store.addL1ToL2Messages(msgs.slice(0, BlockNumber(2)));
|
|
611
611
|
await expect(store.addL1ToL2Messages(msgs.slice(2, 4))).rejects.toThrow(MessageStoreError);
|
|
612
612
|
});
|
|
613
613
|
it('throws if index is not in the correct range', async ()=>{
|
|
@@ -629,7 +629,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
629
629
|
initialL2BlockNumber,
|
|
630
630
|
overrideFn: (msg, i)=>({
|
|
631
631
|
...msg,
|
|
632
|
-
l2BlockNumber: 2,
|
|
632
|
+
l2BlockNumber: BlockNumber(2),
|
|
633
633
|
index: BigInt(i + NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP * 2)
|
|
634
634
|
})
|
|
635
635
|
});
|
|
@@ -642,15 +642,15 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
642
642
|
});
|
|
643
643
|
await store.addL1ToL2Messages(msgs);
|
|
644
644
|
await checkMessages(msgs);
|
|
645
|
-
expect(await store.getL1ToL2Messages(1)).toHaveLength(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
|
|
646
|
-
expect(await store.getL1ToL2Messages(2)).toHaveLength(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
|
|
647
|
-
expect(await store.getL1ToL2Messages(3)).toHaveLength(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
|
|
648
|
-
expect(await store.getL1ToL2Messages(4)).toHaveLength(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
|
|
649
|
-
await store.rollbackL1ToL2MessagesToL2Block(2);
|
|
650
|
-
expect(await store.getL1ToL2Messages(1)).toHaveLength(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
|
|
651
|
-
expect(await store.getL1ToL2Messages(2)).toHaveLength(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
|
|
652
|
-
expect(await store.getL1ToL2Messages(3)).toHaveLength(0);
|
|
653
|
-
expect(await store.getL1ToL2Messages(4)).toHaveLength(0);
|
|
645
|
+
expect(await store.getL1ToL2Messages(BlockNumber(1))).toHaveLength(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
|
|
646
|
+
expect(await store.getL1ToL2Messages(BlockNumber(2))).toHaveLength(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
|
|
647
|
+
expect(await store.getL1ToL2Messages(BlockNumber(3))).toHaveLength(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
|
|
648
|
+
expect(await store.getL1ToL2Messages(BlockNumber(4))).toHaveLength(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
|
|
649
|
+
await store.rollbackL1ToL2MessagesToL2Block(BlockNumber(2));
|
|
650
|
+
expect(await store.getL1ToL2Messages(BlockNumber(1))).toHaveLength(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
|
|
651
|
+
expect(await store.getL1ToL2Messages(BlockNumber(2))).toHaveLength(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
|
|
652
|
+
expect(await store.getL1ToL2Messages(BlockNumber(3))).toHaveLength(0);
|
|
653
|
+
expect(await store.getL1ToL2Messages(BlockNumber(4))).toHaveLength(0);
|
|
654
654
|
await checkMessages(msgs.slice(0, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP * 2));
|
|
655
655
|
});
|
|
656
656
|
it('removes messages starting with the given index', async ()=>{
|
|
@@ -678,7 +678,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
678
678
|
};
|
|
679
679
|
await store.addContractInstances([
|
|
680
680
|
contractInstance
|
|
681
|
-
], blockNum);
|
|
681
|
+
], BlockNumber(blockNum));
|
|
682
682
|
});
|
|
683
683
|
it('returns previously stored contract instances', async ()=>{
|
|
684
684
|
await expect(store.getContractInstance(contractInstance.address, timestamp)).resolves.toMatchObject(contractInstance);
|
|
@@ -689,7 +689,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
689
689
|
it('returns undefined if previously stored contract instances was deleted', async ()=>{
|
|
690
690
|
await store.deleteContractInstances([
|
|
691
691
|
contractInstance
|
|
692
|
-
], blockNum);
|
|
692
|
+
], BlockNumber(blockNum));
|
|
693
693
|
await expect(store.getContractInstance(contractInstance.address, timestamp)).resolves.toBeUndefined();
|
|
694
694
|
});
|
|
695
695
|
});
|
|
@@ -711,7 +711,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
711
711
|
};
|
|
712
712
|
await store.addContractInstances([
|
|
713
713
|
contractInstance
|
|
714
|
-
], 1);
|
|
714
|
+
], BlockNumber(1));
|
|
715
715
|
await store.addContractInstanceUpdates([
|
|
716
716
|
{
|
|
717
717
|
prevContractClassId: classId,
|
|
@@ -748,7 +748,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
748
748
|
};
|
|
749
749
|
await store.addContractInstances([
|
|
750
750
|
otherContractInstance
|
|
751
|
-
], 1);
|
|
751
|
+
], BlockNumber(1));
|
|
752
752
|
const fetchedInstance = await store.getContractInstance(otherContractInstance.address, timestampOfChange + 1n);
|
|
753
753
|
expect(fetchedInstance?.originalContractClassId).toEqual(otherClassId);
|
|
754
754
|
expect(fetchedInstance?.currentContractClassId).toEqual(otherClassId);
|
|
@@ -766,7 +766,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
766
766
|
};
|
|
767
767
|
await store.addContractInstances([
|
|
768
768
|
otherContractInstance
|
|
769
|
-
], 1);
|
|
769
|
+
], BlockNumber(1));
|
|
770
770
|
await store.addContractInstanceUpdates([
|
|
771
771
|
{
|
|
772
772
|
prevContractClassId: otherClassId,
|
|
@@ -789,7 +789,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
789
789
|
contractClass
|
|
790
790
|
], [
|
|
791
791
|
await computePublicBytecodeCommitment(contractClass.packedBytecode)
|
|
792
|
-
], blockNum);
|
|
792
|
+
], BlockNumber(blockNum));
|
|
793
793
|
});
|
|
794
794
|
it('returns previously stored contract class', async ()=>{
|
|
795
795
|
await expect(store.getContractClass(contractClass.id)).resolves.toMatchObject(contractClass);
|
|
@@ -797,7 +797,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
797
797
|
it('returns undefined if the initial deployed contract class was deleted', async ()=>{
|
|
798
798
|
await store.deleteContractClasses([
|
|
799
799
|
contractClass
|
|
800
|
-
], blockNum);
|
|
800
|
+
], BlockNumber(blockNum));
|
|
801
801
|
await expect(store.getContractClass(contractClass.id)).resolves.toBeUndefined();
|
|
802
802
|
});
|
|
803
803
|
it('returns contract class if later "deployment" class was deleted', async ()=>{
|
|
@@ -805,10 +805,10 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
805
805
|
contractClass
|
|
806
806
|
], [
|
|
807
807
|
await computePublicBytecodeCommitment(contractClass.packedBytecode)
|
|
808
|
-
], blockNum + 1);
|
|
808
|
+
], BlockNumber(blockNum + 1));
|
|
809
809
|
await store.deleteContractClasses([
|
|
810
810
|
contractClass
|
|
811
|
-
], blockNum + 1);
|
|
811
|
+
], BlockNumber(blockNum + 1));
|
|
812
812
|
await expect(store.getContractClass(contractClass.id)).resolves.toMatchObject(contractClass);
|
|
813
813
|
});
|
|
814
814
|
it('returns undefined if contract class is not found', async ()=>{
|
|
@@ -871,8 +871,8 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
871
871
|
});
|
|
872
872
|
};
|
|
873
873
|
const mockBlockWithLogs = async (blockNumber)=>{
|
|
874
|
-
const block = await L2Block.random(blockNumber);
|
|
875
|
-
block.header.globalVariables.blockNumber = blockNumber;
|
|
874
|
+
const block = await L2Block.random(BlockNumber(blockNumber));
|
|
875
|
+
block.header.globalVariables.blockNumber = BlockNumber(blockNumber);
|
|
876
876
|
block.body.txEffects = await timesParallel(numTxsPerBlock, async (txIndex)=>{
|
|
877
877
|
const txEffect = await TxEffect.random();
|
|
878
878
|
txEffect.privateLogs = mockPrivateLogs(blockNumber, txIndex);
|
|
@@ -996,7 +996,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
996
996
|
let blocks;
|
|
997
997
|
beforeEach(async ()=>{
|
|
998
998
|
blocks = await timesParallel(numBlocks, async (index)=>PublishedL2Block.fromFields({
|
|
999
|
-
block: await L2Block.random(index + 1, txsPerBlock, numPublicFunctionCalls, numPublicLogs),
|
|
999
|
+
block: await L2Block.random(BlockNumber(index + 1), txsPerBlock, numPublicFunctionCalls, numPublicLogs),
|
|
1000
1000
|
l1: {
|
|
1001
1001
|
blockNumber: BigInt(index),
|
|
1002
1002
|
blockHash: makeBlockHash(index),
|
|
@@ -1013,7 +1013,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
1013
1013
|
const targetTxIndex = randomInt(txsPerBlock);
|
|
1014
1014
|
const targetTxHash = blocks[targetBlockIndex].block.body.txEffects[targetTxIndex].txHash;
|
|
1015
1015
|
await Promise.all([
|
|
1016
|
-
store.unwindBlocks(blocks.length, blocks.length),
|
|
1016
|
+
store.unwindBlocks(BlockNumber(blocks.length), blocks.length),
|
|
1017
1017
|
store.deleteLogs(blocks.map((b)=>b.block))
|
|
1018
1018
|
]);
|
|
1019
1019
|
const response = await store.getPublicLogs({
|
|
@@ -1078,7 +1078,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
1078
1078
|
const targetBlockIndex = randomInt(numBlocks);
|
|
1079
1079
|
const targetTxIndex = randomInt(txsPerBlock);
|
|
1080
1080
|
const targetLogIndex = randomInt(numPublicLogs);
|
|
1081
|
-
const afterLog = new LogId(targetBlockIndex + INITIAL_L2_BLOCK_NUM, targetTxIndex, targetLogIndex);
|
|
1081
|
+
const afterLog = new LogId(BlockNumber(targetBlockIndex + INITIAL_L2_BLOCK_NUM), targetTxIndex, targetLogIndex);
|
|
1082
1082
|
const response = await store.getPublicLogs({
|
|
1083
1083
|
afterLog
|
|
1084
1084
|
});
|
|
@@ -1098,7 +1098,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
1098
1098
|
it('"txHash" filter param is ignored when "afterLog" is set', async ()=>{
|
|
1099
1099
|
// Get random txHash
|
|
1100
1100
|
const txHash = TxHash.random();
|
|
1101
|
-
const afterLog = new LogId(1, 0, 0);
|
|
1101
|
+
const afterLog = new LogId(BlockNumber(1), 0, 0);
|
|
1102
1102
|
const response = await store.getPublicLogs({
|
|
1103
1103
|
txHash,
|
|
1104
1104
|
afterLog
|
|
@@ -1114,7 +1114,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
1114
1114
|
// "fromBlock" gets correctly trimmed to range and "toBlock" is exclusive
|
|
1115
1115
|
logs = (await store.getPublicLogs({
|
|
1116
1116
|
fromBlock: -10,
|
|
1117
|
-
toBlock: 5
|
|
1117
|
+
toBlock: BlockNumber(5)
|
|
1118
1118
|
})).logs;
|
|
1119
1119
|
let blockNumbers = new Set(logs.map((log)=>log.id.blockNumber));
|
|
1120
1120
|
expect(blockNumbers).toEqual(new Set([
|
|
@@ -1125,13 +1125,13 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
1125
1125
|
]));
|
|
1126
1126
|
// "toBlock" should be exclusive
|
|
1127
1127
|
logs = (await store.getPublicLogs({
|
|
1128
|
-
fromBlock: 1,
|
|
1129
|
-
toBlock: 1
|
|
1128
|
+
fromBlock: BlockNumber(1),
|
|
1129
|
+
toBlock: BlockNumber(1)
|
|
1130
1130
|
})).logs;
|
|
1131
1131
|
expect(logs.length).toBe(0);
|
|
1132
1132
|
logs = (await store.getPublicLogs({
|
|
1133
|
-
fromBlock: 10,
|
|
1134
|
-
toBlock: 5
|
|
1133
|
+
fromBlock: BlockNumber(10),
|
|
1134
|
+
toBlock: BlockNumber(5)
|
|
1135
1135
|
})).logs;
|
|
1136
1136
|
expect(logs.length).toBe(0);
|
|
1137
1137
|
// both "fromBlock" and "toBlock" get correctly capped to range and logs from all blocks are returned
|
|
@@ -1143,23 +1143,23 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
1143
1143
|
expect(blockNumbers.size).toBe(numBlocks);
|
|
1144
1144
|
// intersecting with "afterLog" works
|
|
1145
1145
|
logs = (await store.getPublicLogs({
|
|
1146
|
-
fromBlock: 2,
|
|
1147
|
-
toBlock: 5,
|
|
1148
|
-
afterLog: new LogId(4, 0, 0)
|
|
1146
|
+
fromBlock: BlockNumber(2),
|
|
1147
|
+
toBlock: BlockNumber(5),
|
|
1148
|
+
afterLog: new LogId(BlockNumber(4), 0, 0)
|
|
1149
1149
|
})).logs;
|
|
1150
1150
|
blockNumbers = new Set(logs.map((log)=>log.id.blockNumber));
|
|
1151
1151
|
expect(blockNumbers).toEqual(new Set([
|
|
1152
1152
|
4
|
|
1153
1153
|
]));
|
|
1154
1154
|
logs = (await store.getPublicLogs({
|
|
1155
|
-
toBlock: 5,
|
|
1156
|
-
afterLog: new LogId(5, 1, 0)
|
|
1155
|
+
toBlock: BlockNumber(5),
|
|
1156
|
+
afterLog: new LogId(BlockNumber(5), 1, 0)
|
|
1157
1157
|
})).logs;
|
|
1158
1158
|
expect(logs.length).toBe(0);
|
|
1159
1159
|
logs = (await store.getPublicLogs({
|
|
1160
|
-
fromBlock: 2,
|
|
1161
|
-
toBlock: 5,
|
|
1162
|
-
afterLog: new LogId(100, 0, 0)
|
|
1160
|
+
fromBlock: BlockNumber(2),
|
|
1161
|
+
toBlock: BlockNumber(5),
|
|
1162
|
+
afterLog: new LogId(BlockNumber(100), 0, 0)
|
|
1163
1163
|
})).logs;
|
|
1164
1164
|
expect(logs.length).toBe(0);
|
|
1165
1165
|
});
|
|
@@ -1168,7 +1168,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
1168
1168
|
const targetBlockIndex = randomInt(numBlocks);
|
|
1169
1169
|
const targetTxIndex = randomInt(txsPerBlock);
|
|
1170
1170
|
const targetLogIndex = randomInt(numPublicLogs);
|
|
1171
|
-
const afterLog = new LogId(targetBlockIndex + INITIAL_L2_BLOCK_NUM, targetTxIndex, targetLogIndex);
|
|
1171
|
+
const afterLog = new LogId(BlockNumber(targetBlockIndex + INITIAL_L2_BLOCK_NUM), targetTxIndex, targetLogIndex);
|
|
1172
1172
|
const response = await store.getPublicLogs({
|
|
1173
1173
|
afterLog,
|
|
1174
1174
|
fromBlock: afterLog.blockNumber
|
|
@@ -77,4 +77,4 @@ export type SubmitEpochProof = {
|
|
|
77
77
|
* @returns Epoch proof metadata from the calldata, deserialized.
|
|
78
78
|
*/
|
|
79
79
|
export declare function getProofFromSubmitProofTx(publicClient: ViemPublicClient, txHash: `0x${string}`, expectedProverId: Fr): Promise<SubmitEpochProof>;
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YV9yZXRyaWV2YWwuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcmNoaXZlci9kYXRhX3JldHJpZXZhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsS0FBSyxrQkFBa0IsRUFJeEIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZFLE9BQU8sS0FBSyxFQUVWLFVBQVUsRUFHVixnQkFBZ0IsRUFDakIsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLEVBQWUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVoRixPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVoRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUMsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxLQUFLLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRCxPQUFPLEVBQVEsb0JBQW9CLEVBQWMsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RSxPQUFPLEVBQWMsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFJeEQsT0FBTyxFQUVMLEtBQUsscUJBQXFCLEVBQzFCLEtBQUssR0FBRyxFQUtULE1BQU0sTUFBTSxDQUFDO0FBR2QsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxLQUFLLEVBQUUsZUFBZSxF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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data_retrieval.d.ts","sourceRoot":"","sources":["../../src/archiver/data_retrieval.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,kBAAkB,EAIxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,KAAK,EAEV,UAAU,EAGV,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,
|
|
1
|
+
{"version":3,"file":"data_retrieval.d.ts","sourceRoot":"","sources":["../../src/archiver/data_retrieval.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BlobDeserializationError, SpongeBlob, decodeCheckpointBlobDataFromBlobs, encodeBlockBlobData } from '@aztec/blob-lib';
|
|
2
2
|
import { asyncPool } from '@aztec/foundation/async-pool';
|
|
3
|
-
import { CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
3
|
+
import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
4
4
|
import { Buffer16, Buffer32 } from '@aztec/foundation/buffer';
|
|
5
5
|
import { Fr } from '@aztec/foundation/fields';
|
|
6
6
|
import { createLogger } from '@aztec/foundation/log';
|
|
@@ -308,7 +308,7 @@ function mapLogsInboxMessage(logs) {
|
|
|
308
308
|
leaf: Fr.fromHexString(hash),
|
|
309
309
|
l1BlockNumber: log.blockNumber,
|
|
310
310
|
l1BlockHash: Buffer32.fromString(log.blockHash),
|
|
311
|
-
l2BlockNumber: Number(checkpointNumber),
|
|
311
|
+
l2BlockNumber: BlockNumber(Number(checkpointNumber)),
|
|
312
312
|
rollingHash: Buffer16.fromString(rollingHash)
|
|
313
313
|
};
|
|
314
314
|
});
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
1
2
|
import { Fr } from '@aztec/foundation/fields';
|
|
2
3
|
import type { AztecAsyncKVStore } from '@aztec/kv-store';
|
|
3
4
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
@@ -26,20 +27,20 @@ export declare class BlockStore {
|
|
|
26
27
|
* @param blocksToUnwind - The number of blocks we are to unwind
|
|
27
28
|
* @returns True if the operation is successful
|
|
28
29
|
*/
|
|
29
|
-
unwindBlocks(from:
|
|
30
|
+
unwindBlocks(from: BlockNumber, blocksToUnwind: number): Promise<boolean>;
|
|
30
31
|
/**
|
|
31
32
|
* Gets up to `limit` amount of L2 blocks starting from `from`.
|
|
32
33
|
* @param start - Number of the first block to return (inclusive).
|
|
33
34
|
* @param limit - The number of blocks to return.
|
|
34
35
|
* @returns The requested L2 blocks
|
|
35
36
|
*/
|
|
36
|
-
getBlocks(start:
|
|
37
|
+
getBlocks(start: BlockNumber, limit: number): AsyncIterableIterator<PublishedL2Block>;
|
|
37
38
|
/**
|
|
38
39
|
* Gets an L2 block.
|
|
39
40
|
* @param blockNumber - The number of the block to return.
|
|
40
41
|
* @returns The requested L2 block.
|
|
41
42
|
*/
|
|
42
|
-
getBlock(blockNumber:
|
|
43
|
+
getBlock(blockNumber: BlockNumber): Promise<PublishedL2Block | undefined>;
|
|
43
44
|
/**
|
|
44
45
|
* Gets an L2 block by its hash.
|
|
45
46
|
* @param blockHash - The hash of the block to return.
|
|
@@ -70,7 +71,7 @@ export declare class BlockStore {
|
|
|
70
71
|
* @param limit - The number of blocks to return.
|
|
71
72
|
* @returns The requested L2 block headers
|
|
72
73
|
*/
|
|
73
|
-
getBlockHeaders(start:
|
|
74
|
+
getBlockHeaders(start: BlockNumber, limit: number): AsyncIterableIterator<BlockHeader>;
|
|
74
75
|
private getBlockStorages;
|
|
75
76
|
private getBlockFromBlockStorage;
|
|
76
77
|
/**
|
|
@@ -101,15 +102,15 @@ export declare class BlockStore {
|
|
|
101
102
|
* Gets the number of the latest L2 block processed.
|
|
102
103
|
* @returns The number of the latest L2 block processed.
|
|
103
104
|
*/
|
|
104
|
-
getSynchedL2BlockNumber(): Promise<
|
|
105
|
+
getSynchedL2BlockNumber(): Promise<BlockNumber>;
|
|
105
106
|
/**
|
|
106
107
|
* Gets the most recent L1 block processed.
|
|
107
108
|
* @returns The L1 block that published the latest L2 block
|
|
108
109
|
*/
|
|
109
110
|
getSynchedL1BlockNumber(): Promise<bigint | undefined>;
|
|
110
111
|
setSynchedL1BlockNumber(l1BlockNumber: bigint): Promise<boolean>;
|
|
111
|
-
getProvenL2BlockNumber(): Promise<
|
|
112
|
-
setProvenL2BlockNumber(blockNumber:
|
|
112
|
+
getProvenL2BlockNumber(): Promise<BlockNumber>;
|
|
113
|
+
setProvenL2BlockNumber(blockNumber: BlockNumber): Promise<boolean>;
|
|
113
114
|
/**
|
|
114
115
|
* Gets the pending chain validation status.
|
|
115
116
|
* @returns The validation status or undefined if not set.
|
|
@@ -121,4 +122,4 @@ export declare class BlockStore {
|
|
|
121
122
|
*/
|
|
122
123
|
setPendingChainValidationStatus(status: ValidateBlockResult | undefined): Promise<void>;
|
|
123
124
|
}
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfc3RvcmUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcmNoaXZlci9rdl9hcmNoaXZlcl9zdG9yZS9ibG9ja19zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBSzlDLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUE2QyxNQUFNLGlCQUFpQixDQUFDO0FBQ3BHLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFJTCxXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLEtBQUssbUJBQW1CLEVBQ3pCLE1BQU0scUJBQXFCLENBQUM7QUFHN0IsT0FBTyxFQUNMLFdBQVcsRUFDWCxLQUFLLGVBQWUsRUFFcEIsTUFBTSxFQUNOLFNBQVMsRUFHVixNQUFNLGtCQUFrQixDQUFDO0FBSzFCLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxRQUFRLEVBQUUsS0FBSyxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQVl6RTs7R0FFRztBQUNILHFCQUFhLFVBQVU7O0lBOEJULE9BQU8sQ0FBQyxFQUFFO0lBQXRCLFlBQW9CLEVBQUUsRUFBRSxpQkFBaUIsRUFVeEM7SUFFRDs7OztPQUlHO0lBQ0csU0FBUyxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLElBQUksR0FBRTtRQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sQ0FBQTtLQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQTBENUY7SUFFRDs7Ozs7O09BTUc7SUFDRyxZQUFZLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFrQzNEO0lBRUQ7Ozs7O09BS0c7SUFDSSxTQUFTLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxHQUFHLHFCQUFxQixDQUFDLGdCQUFnQixDQUFDLENBTzNGO0lBRUQ7Ozs7T0FJRztJQUNHLFFBQVEsQ0FBQyxXQUFXLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLENBQUMsQ0FNOUU7SUFFRDs7OztPQUlHO0lBQ0csY0FBYyxDQUFDLFNBQVMsRUFBRSxXQUFXLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQyxDQU1sRjtJQUVEOzs7O09BSUc7SUFDRyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLENBQUMsQ0FNMUU7SUFFRDs7OztPQUlHO0lBQ0csb0JBQW9CLENBQUMsU0FBUyxFQUFFLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxDQVVuRjtJQUVEOzs7O09BSUc7SUFDRyx1QkFBdUIsQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDLENBVTNFO0lBRUQ7Ozs7O09BS0c7SUFDSSxlQUFlLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxHQUFHLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxDQVU1RjtZQUVjLGdCQUFnQjtZQWFqQix3QkFBd0I7SUF1Q3RDOzs7O09BSUc7SUFDRyxXQUFXLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsZUFBZSxHQUFHLFNBQVMsQ0FBQyxDQU10RTtJQUVEOzs7O09BSUc7SUFDRyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLENBY3hFO0lBRUQ7Ozs7T0FJRztJQUNVLGFBQWEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQU90RztJQUVEOzs7O09BSUc7SUFDSCxtQkFBbUIsQ0FBQyxlQUFlLEVBQUUsWUFBWSxHQUFHLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUU1RztJQUVEOzs7T0FHRztJQUNHLHVCQUF1QixJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FHcEQ7SUFFRDs7O09BR0c7SUFDSCx1QkFBdUIsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUVyRDtJQUVELHVCQUF1QixDQUFDLGFBQWEsRUFBRSxNQUFNLG9CQUU1QztJQUVLLHNCQUFzQixJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FNbkQ7SUFFRCxzQkFBc0IsQ0FBQyxXQUFXLEVBQUUsV0FBVyxvQkFFOUM7SUFjRDs7O09BR0c7SUFDRywrQkFBK0IsSUFBSSxPQUFPLENBQUMsbUJBQW1CLEdBQUcsU0FBUyxDQUFDLENBTWhGO0lBRUQ7OztPQUdHO0lBQ0csK0JBQStCLENBQUMsTUFBTSxFQUFFLG1CQUFtQixHQUFHLFNBQVMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBTzVGO0NBQ0YifQ==
|