@aztec/archiver 0.0.1-commit.b655e406 → 0.0.1-commit.d3ec352c
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 +53 -40
- package/dest/archiver/archiver.d.ts.map +1 -1
- package/dest/archiver/archiver.js +333 -221
- 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 +85 -84
- package/dest/archiver/config.d.ts +1 -1
- package/dest/archiver/config.d.ts.map +1 -1
- package/dest/archiver/config.js +5 -0
- package/dest/archiver/data_retrieval.d.ts +18 -17
- package/dest/archiver/data_retrieval.d.ts.map +1 -1
- package/dest/archiver/data_retrieval.js +111 -86
- package/dest/archiver/errors.d.ts +1 -1
- package/dest/archiver/errors.d.ts.map +1 -1
- package/dest/archiver/index.d.ts +1 -1
- package/dest/archiver/instrumentation.d.ts +3 -3
- package/dest/archiver/instrumentation.d.ts.map +1 -1
- 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/contract_class_store.d.ts +1 -1
- package/dest/archiver/kv_archiver_store/contract_class_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/contract_instance_store.d.ts +1 -1
- package/dest/archiver/kv_archiver_store/contract_instance_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts +18 -17
- 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/kv_archiver_store/message_store.d.ts +1 -1
- package/dest/archiver/kv_archiver_store/message_store.d.ts.map +1 -1
- package/dest/archiver/structs/data_retrieval.d.ts +1 -1
- 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/archiver/structs/published.d.ts +3 -2
- package/dest/archiver/structs/published.d.ts.map +1 -1
- package/dest/archiver/validation.d.ts +10 -4
- package/dest/archiver/validation.d.ts.map +1 -1
- package/dest/archiver/validation.js +29 -21
- package/dest/factory.d.ts +1 -1
- package/dest/factory.d.ts.map +1 -1
- package/dest/factory.js +3 -2
- package/dest/index.d.ts +2 -2
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +1 -1
- package/dest/rpc/index.d.ts +2 -2
- package/dest/test/index.d.ts +1 -1
- package/dest/test/mock_archiver.d.ts +14 -5
- package/dest/test/mock_archiver.d.ts.map +1 -1
- package/dest/test/mock_archiver.js +19 -10
- 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 +14 -9
- package/dest/test/mock_l2_block_source.d.ts.map +1 -1
- package/dest/test/mock_l2_block_source.js +20 -7
- 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 +17 -17
- package/src/archiver/archiver.ts +448 -290
- package/src/archiver/archiver_store.ts +19 -14
- package/src/archiver/archiver_store_test_suite.ts +111 -79
- package/src/archiver/config.ts +5 -0
- package/src/archiver/data_retrieval.ts +157 -125
- package/src/archiver/instrumentation.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 +5 -4
- package/src/archiver/structs/published.ts +2 -1
- package/src/archiver/validation.ts +52 -27
- package/src/factory.ts +3 -2
- package/src/index.ts +1 -1
- package/src/test/mock_archiver.ts +22 -11
- package/src/test/mock_l1_to_l2_message_source.ts +9 -3
- package/src/test/mock_l2_block_source.ts +30 -13
- package/src/test/mock_structs.ts +3 -2
|
@@ -1,5 +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 { BlockNumber, EpochNumber } from '@aztec/foundation/branded-types';
|
|
3
4
|
import { Buffer16, Buffer32 } from '@aztec/foundation/buffer';
|
|
4
5
|
import { times, timesParallel } from '@aztec/foundation/collection';
|
|
5
6
|
import { randomInt } from '@aztec/foundation/crypto';
|
|
@@ -73,7 +74,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
73
74
|
};
|
|
74
75
|
beforeEach(async ()=>{
|
|
75
76
|
store = await getStore();
|
|
76
|
-
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));
|
|
77
78
|
});
|
|
78
79
|
describe('addBlocks', ()=>{
|
|
79
80
|
it('returns success when adding blocks', async ()=>{
|
|
@@ -84,19 +85,19 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
84
85
|
await expect(store.addBlocks(blocks)).resolves.toBe(true);
|
|
85
86
|
});
|
|
86
87
|
it('throws an error if the previous block does not exist in the store', async ()=>{
|
|
87
|
-
const block = makePublished(await L2Block.random(2), 2);
|
|
88
|
+
const block = makePublished(await L2Block.random(BlockNumber(2)), 2);
|
|
88
89
|
await expect(store.addBlocks([
|
|
89
90
|
block
|
|
90
91
|
])).rejects.toThrow(InitialBlockNumberNotSequentialError);
|
|
91
|
-
await expect(store.getPublishedBlocks(1, 10)).resolves.toEqual([]);
|
|
92
|
+
await expect(store.getPublishedBlocks(BlockNumber(1), 10)).resolves.toEqual([]);
|
|
92
93
|
});
|
|
93
94
|
it('throws an error if there is a gap in the blocks being added', async ()=>{
|
|
94
95
|
const blocks = [
|
|
95
|
-
makePublished(await L2Block.random(1), 1),
|
|
96
|
-
makePublished(await L2Block.random(3), 3)
|
|
96
|
+
makePublished(await L2Block.random(BlockNumber(1)), 1),
|
|
97
|
+
makePublished(await L2Block.random(BlockNumber(3)), 3)
|
|
97
98
|
];
|
|
98
99
|
await expect(store.addBlocks(blocks)).rejects.toThrow(BlockNumberNotSequentialError);
|
|
99
|
-
await expect(store.getPublishedBlocks(1, 10)).resolves.toEqual([]);
|
|
100
|
+
await expect(store.getPublishedBlocks(BlockNumber(1), 10)).resolves.toEqual([]);
|
|
100
101
|
});
|
|
101
102
|
});
|
|
102
103
|
describe('unwindBlocks', ()=>{
|
|
@@ -111,12 +112,12 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
111
112
|
expect(await store.getPublishedBlocks(blockNumber, 1)).toEqual([]);
|
|
112
113
|
});
|
|
113
114
|
it('can unwind multiple empty blocks', async ()=>{
|
|
114
|
-
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));
|
|
115
116
|
await store.addBlocks(emptyBlocks);
|
|
116
117
|
expect(await store.getSynchedL2BlockNumber()).toBe(10);
|
|
117
|
-
await store.unwindBlocks(10, 3);
|
|
118
|
+
await store.unwindBlocks(BlockNumber(10), 3);
|
|
118
119
|
expect(await store.getSynchedL2BlockNumber()).toBe(7);
|
|
119
|
-
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([
|
|
120
121
|
1,
|
|
121
122
|
2,
|
|
122
123
|
3,
|
|
@@ -128,7 +129,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
128
129
|
});
|
|
129
130
|
it('refuses to unwind blocks if the tip is not the last block', async ()=>{
|
|
130
131
|
await store.addBlocks(blocks);
|
|
131
|
-
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);
|
|
132
133
|
});
|
|
133
134
|
it('unwound blocks and headers cannot be retrieved by hash or archive', async ()=>{
|
|
134
135
|
await store.addBlocks(blocks);
|
|
@@ -154,33 +155,33 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
154
155
|
await store.addBlocks(blocks);
|
|
155
156
|
});
|
|
156
157
|
it.each(blockTests)('retrieves previously stored blocks', async (start, limit, getExpectedBlocks)=>{
|
|
157
|
-
expectBlocksEqual(await store.getPublishedBlocks(start, limit), getExpectedBlocks());
|
|
158
|
+
expectBlocksEqual(await store.getPublishedBlocks(BlockNumber(start), limit), getExpectedBlocks());
|
|
158
159
|
});
|
|
159
160
|
it('returns an empty array if no blocks are found', async ()=>{
|
|
160
|
-
await expect(store.getPublishedBlocks(12, 1)).resolves.toEqual([]);
|
|
161
|
+
await expect(store.getPublishedBlocks(BlockNumber(12), 1)).resolves.toEqual([]);
|
|
161
162
|
});
|
|
162
163
|
it('throws an error if limit is invalid', async ()=>{
|
|
163
|
-
await expect(store.getPublishedBlocks(1, 0)).rejects.toThrow('Invalid limit: 0');
|
|
164
|
+
await expect(store.getPublishedBlocks(BlockNumber(1), 0)).rejects.toThrow('Invalid limit: 0');
|
|
164
165
|
});
|
|
165
166
|
it('throws an error if `from` it is out of range', async ()=>{
|
|
166
167
|
await expect(store.getPublishedBlocks(INITIAL_L2_BLOCK_NUM - 100, 1)).rejects.toThrow('Invalid start: -99');
|
|
167
168
|
});
|
|
168
169
|
it('throws an error if unexpected initial block number is found', async ()=>{
|
|
169
170
|
await store.addBlocks([
|
|
170
|
-
makePublished(await L2Block.random(21), 31)
|
|
171
|
+
makePublished(await L2Block.random(BlockNumber(21)), 31)
|
|
171
172
|
], {
|
|
172
173
|
force: true
|
|
173
174
|
});
|
|
174
|
-
await expect(store.getPublishedBlocks(20, 1)).rejects.toThrow(`mismatch`);
|
|
175
|
+
await expect(store.getPublishedBlocks(BlockNumber(20), 1)).rejects.toThrow(`mismatch`);
|
|
175
176
|
});
|
|
176
177
|
it('throws an error if a gap is found', async ()=>{
|
|
177
178
|
await store.addBlocks([
|
|
178
|
-
makePublished(await L2Block.random(20), 30),
|
|
179
|
-
makePublished(await L2Block.random(22), 32)
|
|
179
|
+
makePublished(await L2Block.random(BlockNumber(20)), 30),
|
|
180
|
+
makePublished(await L2Block.random(BlockNumber(22)), 32)
|
|
180
181
|
], {
|
|
181
182
|
force: true
|
|
182
183
|
});
|
|
183
|
-
await expect(store.getPublishedBlocks(20, 2)).rejects.toThrow(`mismatch`);
|
|
184
|
+
await expect(store.getPublishedBlocks(BlockNumber(20), 2)).rejects.toThrow(`mismatch`);
|
|
184
185
|
});
|
|
185
186
|
});
|
|
186
187
|
describe('getPublishedBlockByHash', ()=>{
|
|
@@ -339,17 +340,17 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
339
340
|
await expect(store.addLogs([
|
|
340
341
|
block
|
|
341
342
|
])).resolves.toEqual(true);
|
|
342
|
-
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);
|
|
343
344
|
expect((await store.getPublicLogs({
|
|
344
|
-
fromBlock: 1
|
|
345
|
+
fromBlock: BlockNumber(1)
|
|
345
346
|
})).logs.length).toEqual(block.body.txEffects.map((txEffect)=>txEffect.publicLogs).flat().length);
|
|
346
347
|
// This one is a pain for memory as we would never want to just delete memory in the middle.
|
|
347
348
|
await store.deleteLogs([
|
|
348
349
|
block
|
|
349
350
|
]);
|
|
350
|
-
expect((await store.getPrivateLogs(1, 1)).length).toEqual(0);
|
|
351
|
+
expect((await store.getPrivateLogs(BlockNumber(1), 1)).length).toEqual(0);
|
|
351
352
|
expect((await store.getPublicLogs({
|
|
352
|
-
fromBlock: 1
|
|
353
|
+
fromBlock: BlockNumber(1)
|
|
353
354
|
})).logs.length).toEqual(0);
|
|
354
355
|
});
|
|
355
356
|
});
|
|
@@ -362,7 +363,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
362
363
|
await store.addLogs([
|
|
363
364
|
block
|
|
364
365
|
]);
|
|
365
|
-
const privateLogs = await store.getPrivateLogs(1, 1);
|
|
366
|
+
const privateLogs = await store.getPrivateLogs(BlockNumber(1), 1);
|
|
366
367
|
expect(privateLogs).toEqual(block.body.txEffects.map((txEffect)=>txEffect.privateLogs).flat());
|
|
367
368
|
});
|
|
368
369
|
});
|
|
@@ -418,7 +419,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
418
419
|
()=>wrapInBlock(blocks[5].block.body.txEffects[2], blocks[5].block),
|
|
419
420
|
()=>wrapInBlock(blocks[1].block.body.txEffects[0], blocks[1].block)
|
|
420
421
|
])('tries to retrieves a previously stored transaction after deleted', async (getExpectedTx)=>{
|
|
421
|
-
await store.unwindBlocks(blocks.length, blocks.length);
|
|
422
|
+
await store.unwindBlocks(BlockNumber(blocks.length), blocks.length);
|
|
422
423
|
const expectedTx = await getExpectedTx();
|
|
423
424
|
const actualTx = await store.getTxEffect(expectedTx.data.txHash);
|
|
424
425
|
expect(actualTx).toEqual(undefined);
|
|
@@ -435,7 +436,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
435
436
|
await sleep(1);
|
|
436
437
|
}
|
|
437
438
|
})();
|
|
438
|
-
await store.unwindBlocks(blocks.length, blocks.length);
|
|
439
|
+
await store.unwindBlocks(BlockNumber(blocks.length), blocks.length);
|
|
439
440
|
done = true;
|
|
440
441
|
expect(await store.getTxEffect(expectedTx.data.txHash)).toEqual(undefined);
|
|
441
442
|
});
|
|
@@ -449,7 +450,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
449
450
|
};
|
|
450
451
|
const makeInboxMessagesWithFullBlocks = (blockCount, opts = {})=>makeInboxMessages(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP * blockCount, {
|
|
451
452
|
overrideFn: (msg, i)=>{
|
|
452
|
-
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));
|
|
453
454
|
const index = InboxLeaf.smallestIndexFromL2Block(l2BlockNumber) + BigInt(i % NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
|
|
454
455
|
return {
|
|
455
456
|
...msg,
|
|
@@ -461,7 +462,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
461
462
|
it('stores first message ever', async ()=>{
|
|
462
463
|
const msg = makeInboxMessage(Buffer16.ZERO, {
|
|
463
464
|
index: 0n,
|
|
464
|
-
l2BlockNumber: 1
|
|
465
|
+
l2BlockNumber: BlockNumber(1)
|
|
465
466
|
});
|
|
466
467
|
await store.addL1ToL2Messages([
|
|
467
468
|
msg
|
|
@@ -469,13 +470,13 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
469
470
|
await checkMessages([
|
|
470
471
|
msg
|
|
471
472
|
]);
|
|
472
|
-
expect(await store.getL1ToL2Messages(1)).toEqual([
|
|
473
|
+
expect(await store.getL1ToL2Messages(BlockNumber(1))).toEqual([
|
|
473
474
|
msg.leaf
|
|
474
475
|
]);
|
|
475
476
|
});
|
|
476
477
|
it('stores single message', async ()=>{
|
|
477
478
|
const msg = makeInboxMessage(Buffer16.ZERO, {
|
|
478
|
-
l2BlockNumber: 2
|
|
479
|
+
l2BlockNumber: BlockNumber(2)
|
|
479
480
|
});
|
|
480
481
|
await store.addL1ToL2Messages([
|
|
481
482
|
msg
|
|
@@ -483,7 +484,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
483
484
|
await checkMessages([
|
|
484
485
|
msg
|
|
485
486
|
]);
|
|
486
|
-
expect(await store.getL1ToL2Messages(2)).toEqual([
|
|
487
|
+
expect(await store.getL1ToL2Messages(BlockNumber(2))).toEqual([
|
|
487
488
|
msg.leaf
|
|
488
489
|
]);
|
|
489
490
|
});
|
|
@@ -493,7 +494,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
493
494
|
});
|
|
494
495
|
await store.addL1ToL2Messages(msgs);
|
|
495
496
|
await checkMessages(msgs);
|
|
496
|
-
expect(await store.getL1ToL2Messages(initialL2BlockNumber + 2)).toEqual([
|
|
497
|
+
expect(await store.getL1ToL2Messages(BlockNumber(initialL2BlockNumber + 2))).toEqual([
|
|
497
498
|
msgs[2]
|
|
498
499
|
].map((m)=>m.leaf));
|
|
499
500
|
});
|
|
@@ -519,14 +520,14 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
519
520
|
...msgs1,
|
|
520
521
|
...msgs2
|
|
521
522
|
]);
|
|
522
|
-
expect(await store.getL1ToL2Messages(1)).toEqual([
|
|
523
|
+
expect(await store.getL1ToL2Messages(BlockNumber(1))).toEqual([
|
|
523
524
|
msgs1[0].leaf
|
|
524
525
|
]);
|
|
525
|
-
expect(await store.getL1ToL2Messages(4)).toEqual([]);
|
|
526
|
-
expect(await store.getL1ToL2Messages(20)).toEqual([
|
|
526
|
+
expect(await store.getL1ToL2Messages(BlockNumber(4))).toEqual([]);
|
|
527
|
+
expect(await store.getL1ToL2Messages(BlockNumber(20))).toEqual([
|
|
527
528
|
msgs2[0].leaf
|
|
528
529
|
]);
|
|
529
|
-
expect(await store.getL1ToL2Messages(24)).toEqual([]);
|
|
530
|
+
expect(await store.getL1ToL2Messages(BlockNumber(24))).toEqual([]);
|
|
530
531
|
});
|
|
531
532
|
it('stores and returns messages with block numbers larger than a byte', async ()=>{
|
|
532
533
|
const msgs = makeInboxMessages(5, {
|
|
@@ -534,7 +535,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
534
535
|
});
|
|
535
536
|
await store.addL1ToL2Messages(msgs);
|
|
536
537
|
await checkMessages(msgs);
|
|
537
|
-
expect(await store.getL1ToL2Messages(1002)).toEqual([
|
|
538
|
+
expect(await store.getL1ToL2Messages(BlockNumber(1002))).toEqual([
|
|
538
539
|
msgs[2]
|
|
539
540
|
].map((m)=>m.leaf));
|
|
540
541
|
});
|
|
@@ -542,7 +543,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
542
543
|
const msgs = makeInboxMessagesWithFullBlocks(4);
|
|
543
544
|
await store.addL1ToL2Messages(msgs);
|
|
544
545
|
await checkMessages(msgs);
|
|
545
|
-
const blockMessages = await store.getL1ToL2Messages(initialL2BlockNumber + 1);
|
|
546
|
+
const blockMessages = await store.getL1ToL2Messages(BlockNumber(initialL2BlockNumber + 1));
|
|
546
547
|
expect(blockMessages).toHaveLength(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
|
|
547
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));
|
|
548
549
|
});
|
|
@@ -552,10 +553,10 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
552
553
|
});
|
|
553
554
|
await store.addL1ToL2Messages(msgs.slice(0, 10));
|
|
554
555
|
await store.addL1ToL2Messages(msgs.slice(10, 20));
|
|
555
|
-
expect(await store.getL1ToL2Messages(initialL2BlockNumber + 2)).toEqual([
|
|
556
|
+
expect(await store.getL1ToL2Messages(BlockNumber(initialL2BlockNumber + 2))).toEqual([
|
|
556
557
|
msgs[2]
|
|
557
558
|
].map((m)=>m.leaf));
|
|
558
|
-
expect(await store.getL1ToL2Messages(initialL2BlockNumber + 12)).toEqual([
|
|
559
|
+
expect(await store.getL1ToL2Messages(BlockNumber(initialL2BlockNumber + 12))).toEqual([
|
|
559
560
|
msgs[12]
|
|
560
561
|
].map((m)=>m.leaf));
|
|
561
562
|
await checkMessages(msgs);
|
|
@@ -594,7 +595,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
594
595
|
const msgs = makeInboxMessages(4, {
|
|
595
596
|
initialL2BlockNumber
|
|
596
597
|
});
|
|
597
|
-
msgs[2].l2BlockNumber = initialL2BlockNumber - 1;
|
|
598
|
+
msgs[2].l2BlockNumber = BlockNumber(initialL2BlockNumber - 1);
|
|
598
599
|
await store.addL1ToL2Messages(msgs.slice(0, 2));
|
|
599
600
|
await expect(store.addL1ToL2Messages(msgs.slice(2, 4))).rejects.toThrow(MessageStoreError);
|
|
600
601
|
});
|
|
@@ -606,7 +607,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
606
607
|
it('throws if rolling hash for first message is not correct', async ()=>{
|
|
607
608
|
const msgs = makeInboxMessages(4);
|
|
608
609
|
msgs[2].rollingHash = Buffer16.random();
|
|
609
|
-
await store.addL1ToL2Messages(msgs.slice(0, 2));
|
|
610
|
+
await store.addL1ToL2Messages(msgs.slice(0, BlockNumber(2)));
|
|
610
611
|
await expect(store.addL1ToL2Messages(msgs.slice(2, 4))).rejects.toThrow(MessageStoreError);
|
|
611
612
|
});
|
|
612
613
|
it('throws if index is not in the correct range', async ()=>{
|
|
@@ -628,7 +629,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
628
629
|
initialL2BlockNumber,
|
|
629
630
|
overrideFn: (msg, i)=>({
|
|
630
631
|
...msg,
|
|
631
|
-
l2BlockNumber: 2,
|
|
632
|
+
l2BlockNumber: BlockNumber(2),
|
|
632
633
|
index: BigInt(i + NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP * 2)
|
|
633
634
|
})
|
|
634
635
|
});
|
|
@@ -641,15 +642,15 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
641
642
|
});
|
|
642
643
|
await store.addL1ToL2Messages(msgs);
|
|
643
644
|
await checkMessages(msgs);
|
|
644
|
-
expect(await store.getL1ToL2Messages(1)).toHaveLength(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
|
|
645
|
-
expect(await store.getL1ToL2Messages(2)).toHaveLength(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
|
|
646
|
-
expect(await store.getL1ToL2Messages(3)).toHaveLength(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
|
|
647
|
-
expect(await store.getL1ToL2Messages(4)).toHaveLength(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
|
|
648
|
-
await store.rollbackL1ToL2MessagesToL2Block(2);
|
|
649
|
-
expect(await store.getL1ToL2Messages(1)).toHaveLength(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
|
|
650
|
-
expect(await store.getL1ToL2Messages(2)).toHaveLength(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
|
|
651
|
-
expect(await store.getL1ToL2Messages(3)).toHaveLength(0);
|
|
652
|
-
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);
|
|
653
654
|
await checkMessages(msgs.slice(0, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP * 2));
|
|
654
655
|
});
|
|
655
656
|
it('removes messages starting with the given index', async ()=>{
|
|
@@ -677,7 +678,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
677
678
|
};
|
|
678
679
|
await store.addContractInstances([
|
|
679
680
|
contractInstance
|
|
680
|
-
], blockNum);
|
|
681
|
+
], BlockNumber(blockNum));
|
|
681
682
|
});
|
|
682
683
|
it('returns previously stored contract instances', async ()=>{
|
|
683
684
|
await expect(store.getContractInstance(contractInstance.address, timestamp)).resolves.toMatchObject(contractInstance);
|
|
@@ -688,7 +689,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
688
689
|
it('returns undefined if previously stored contract instances was deleted', async ()=>{
|
|
689
690
|
await store.deleteContractInstances([
|
|
690
691
|
contractInstance
|
|
691
|
-
], blockNum);
|
|
692
|
+
], BlockNumber(blockNum));
|
|
692
693
|
await expect(store.getContractInstance(contractInstance.address, timestamp)).resolves.toBeUndefined();
|
|
693
694
|
});
|
|
694
695
|
});
|
|
@@ -710,7 +711,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
710
711
|
};
|
|
711
712
|
await store.addContractInstances([
|
|
712
713
|
contractInstance
|
|
713
|
-
], 1);
|
|
714
|
+
], BlockNumber(1));
|
|
714
715
|
await store.addContractInstanceUpdates([
|
|
715
716
|
{
|
|
716
717
|
prevContractClassId: classId,
|
|
@@ -747,7 +748,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
747
748
|
};
|
|
748
749
|
await store.addContractInstances([
|
|
749
750
|
otherContractInstance
|
|
750
|
-
], 1);
|
|
751
|
+
], BlockNumber(1));
|
|
751
752
|
const fetchedInstance = await store.getContractInstance(otherContractInstance.address, timestampOfChange + 1n);
|
|
752
753
|
expect(fetchedInstance?.originalContractClassId).toEqual(otherClassId);
|
|
753
754
|
expect(fetchedInstance?.currentContractClassId).toEqual(otherClassId);
|
|
@@ -765,7 +766,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
765
766
|
};
|
|
766
767
|
await store.addContractInstances([
|
|
767
768
|
otherContractInstance
|
|
768
|
-
], 1);
|
|
769
|
+
], BlockNumber(1));
|
|
769
770
|
await store.addContractInstanceUpdates([
|
|
770
771
|
{
|
|
771
772
|
prevContractClassId: otherClassId,
|
|
@@ -788,7 +789,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
788
789
|
contractClass
|
|
789
790
|
], [
|
|
790
791
|
await computePublicBytecodeCommitment(contractClass.packedBytecode)
|
|
791
|
-
], blockNum);
|
|
792
|
+
], BlockNumber(blockNum));
|
|
792
793
|
});
|
|
793
794
|
it('returns previously stored contract class', async ()=>{
|
|
794
795
|
await expect(store.getContractClass(contractClass.id)).resolves.toMatchObject(contractClass);
|
|
@@ -796,7 +797,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
796
797
|
it('returns undefined if the initial deployed contract class was deleted', async ()=>{
|
|
797
798
|
await store.deleteContractClasses([
|
|
798
799
|
contractClass
|
|
799
|
-
], blockNum);
|
|
800
|
+
], BlockNumber(blockNum));
|
|
800
801
|
await expect(store.getContractClass(contractClass.id)).resolves.toBeUndefined();
|
|
801
802
|
});
|
|
802
803
|
it('returns contract class if later "deployment" class was deleted', async ()=>{
|
|
@@ -804,10 +805,10 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
804
805
|
contractClass
|
|
805
806
|
], [
|
|
806
807
|
await computePublicBytecodeCommitment(contractClass.packedBytecode)
|
|
807
|
-
], blockNum + 1);
|
|
808
|
+
], BlockNumber(blockNum + 1));
|
|
808
809
|
await store.deleteContractClasses([
|
|
809
810
|
contractClass
|
|
810
|
-
], blockNum + 1);
|
|
811
|
+
], BlockNumber(blockNum + 1));
|
|
811
812
|
await expect(store.getContractClass(contractClass.id)).resolves.toMatchObject(contractClass);
|
|
812
813
|
});
|
|
813
814
|
it('returns undefined if contract class is not found', async ()=>{
|
|
@@ -870,8 +871,8 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
870
871
|
});
|
|
871
872
|
};
|
|
872
873
|
const mockBlockWithLogs = async (blockNumber)=>{
|
|
873
|
-
const block = await L2Block.random(blockNumber);
|
|
874
|
-
block.header.globalVariables.blockNumber = blockNumber;
|
|
874
|
+
const block = await L2Block.random(BlockNumber(blockNumber));
|
|
875
|
+
block.header.globalVariables.blockNumber = BlockNumber(blockNumber);
|
|
875
876
|
block.body.txEffects = await timesParallel(numTxsPerBlock, async (txIndex)=>{
|
|
876
877
|
const txEffect = await TxEffect.random();
|
|
877
878
|
txEffect.privateLogs = mockPrivateLogs(blockNumber, txIndex);
|
|
@@ -995,7 +996,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
995
996
|
let blocks;
|
|
996
997
|
beforeEach(async ()=>{
|
|
997
998
|
blocks = await timesParallel(numBlocks, async (index)=>PublishedL2Block.fromFields({
|
|
998
|
-
block: await L2Block.random(index + 1, txsPerBlock, numPublicFunctionCalls, numPublicLogs),
|
|
999
|
+
block: await L2Block.random(BlockNumber(index + 1), txsPerBlock, numPublicFunctionCalls, numPublicLogs),
|
|
999
1000
|
l1: {
|
|
1000
1001
|
blockNumber: BigInt(index),
|
|
1001
1002
|
blockHash: makeBlockHash(index),
|
|
@@ -1012,7 +1013,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
1012
1013
|
const targetTxIndex = randomInt(txsPerBlock);
|
|
1013
1014
|
const targetTxHash = blocks[targetBlockIndex].block.body.txEffects[targetTxIndex].txHash;
|
|
1014
1015
|
await Promise.all([
|
|
1015
|
-
store.unwindBlocks(blocks.length, blocks.length),
|
|
1016
|
+
store.unwindBlocks(BlockNumber(blocks.length), blocks.length),
|
|
1016
1017
|
store.deleteLogs(blocks.map((b)=>b.block))
|
|
1017
1018
|
]);
|
|
1018
1019
|
const response = await store.getPublicLogs({
|
|
@@ -1077,7 +1078,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
1077
1078
|
const targetBlockIndex = randomInt(numBlocks);
|
|
1078
1079
|
const targetTxIndex = randomInt(txsPerBlock);
|
|
1079
1080
|
const targetLogIndex = randomInt(numPublicLogs);
|
|
1080
|
-
const afterLog = new LogId(targetBlockIndex + INITIAL_L2_BLOCK_NUM, targetTxIndex, targetLogIndex);
|
|
1081
|
+
const afterLog = new LogId(BlockNumber(targetBlockIndex + INITIAL_L2_BLOCK_NUM), targetTxIndex, targetLogIndex);
|
|
1081
1082
|
const response = await store.getPublicLogs({
|
|
1082
1083
|
afterLog
|
|
1083
1084
|
});
|
|
@@ -1097,7 +1098,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
1097
1098
|
it('"txHash" filter param is ignored when "afterLog" is set', async ()=>{
|
|
1098
1099
|
// Get random txHash
|
|
1099
1100
|
const txHash = TxHash.random();
|
|
1100
|
-
const afterLog = new LogId(1, 0, 0);
|
|
1101
|
+
const afterLog = new LogId(BlockNumber(1), 0, 0);
|
|
1101
1102
|
const response = await store.getPublicLogs({
|
|
1102
1103
|
txHash,
|
|
1103
1104
|
afterLog
|
|
@@ -1113,7 +1114,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
1113
1114
|
// "fromBlock" gets correctly trimmed to range and "toBlock" is exclusive
|
|
1114
1115
|
logs = (await store.getPublicLogs({
|
|
1115
1116
|
fromBlock: -10,
|
|
1116
|
-
toBlock: 5
|
|
1117
|
+
toBlock: BlockNumber(5)
|
|
1117
1118
|
})).logs;
|
|
1118
1119
|
let blockNumbers = new Set(logs.map((log)=>log.id.blockNumber));
|
|
1119
1120
|
expect(blockNumbers).toEqual(new Set([
|
|
@@ -1124,13 +1125,13 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
1124
1125
|
]));
|
|
1125
1126
|
// "toBlock" should be exclusive
|
|
1126
1127
|
logs = (await store.getPublicLogs({
|
|
1127
|
-
fromBlock: 1,
|
|
1128
|
-
toBlock: 1
|
|
1128
|
+
fromBlock: BlockNumber(1),
|
|
1129
|
+
toBlock: BlockNumber(1)
|
|
1129
1130
|
})).logs;
|
|
1130
1131
|
expect(logs.length).toBe(0);
|
|
1131
1132
|
logs = (await store.getPublicLogs({
|
|
1132
|
-
fromBlock: 10,
|
|
1133
|
-
toBlock: 5
|
|
1133
|
+
fromBlock: BlockNumber(10),
|
|
1134
|
+
toBlock: BlockNumber(5)
|
|
1134
1135
|
})).logs;
|
|
1135
1136
|
expect(logs.length).toBe(0);
|
|
1136
1137
|
// both "fromBlock" and "toBlock" get correctly capped to range and logs from all blocks are returned
|
|
@@ -1142,23 +1143,23 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
1142
1143
|
expect(blockNumbers.size).toBe(numBlocks);
|
|
1143
1144
|
// intersecting with "afterLog" works
|
|
1144
1145
|
logs = (await store.getPublicLogs({
|
|
1145
|
-
fromBlock: 2,
|
|
1146
|
-
toBlock: 5,
|
|
1147
|
-
afterLog: new LogId(4, 0, 0)
|
|
1146
|
+
fromBlock: BlockNumber(2),
|
|
1147
|
+
toBlock: BlockNumber(5),
|
|
1148
|
+
afterLog: new LogId(BlockNumber(4), 0, 0)
|
|
1148
1149
|
})).logs;
|
|
1149
1150
|
blockNumbers = new Set(logs.map((log)=>log.id.blockNumber));
|
|
1150
1151
|
expect(blockNumbers).toEqual(new Set([
|
|
1151
1152
|
4
|
|
1152
1153
|
]));
|
|
1153
1154
|
logs = (await store.getPublicLogs({
|
|
1154
|
-
toBlock: 5,
|
|
1155
|
-
afterLog: new LogId(5, 1, 0)
|
|
1155
|
+
toBlock: BlockNumber(5),
|
|
1156
|
+
afterLog: new LogId(BlockNumber(5), 1, 0)
|
|
1156
1157
|
})).logs;
|
|
1157
1158
|
expect(logs.length).toBe(0);
|
|
1158
1159
|
logs = (await store.getPublicLogs({
|
|
1159
|
-
fromBlock: 2,
|
|
1160
|
-
toBlock: 5,
|
|
1161
|
-
afterLog: new LogId(100, 0, 0)
|
|
1160
|
+
fromBlock: BlockNumber(2),
|
|
1161
|
+
toBlock: BlockNumber(5),
|
|
1162
|
+
afterLog: new LogId(BlockNumber(100), 0, 0)
|
|
1162
1163
|
})).logs;
|
|
1163
1164
|
expect(logs.length).toBe(0);
|
|
1164
1165
|
});
|
|
@@ -1167,7 +1168,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
1167
1168
|
const targetBlockIndex = randomInt(numBlocks);
|
|
1168
1169
|
const targetTxIndex = randomInt(txsPerBlock);
|
|
1169
1170
|
const targetLogIndex = randomInt(numPublicLogs);
|
|
1170
|
-
const afterLog = new LogId(targetBlockIndex + INITIAL_L2_BLOCK_NUM, targetTxIndex, targetLogIndex);
|
|
1171
|
+
const afterLog = new LogId(BlockNumber(targetBlockIndex + INITIAL_L2_BLOCK_NUM), targetTxIndex, targetLogIndex);
|
|
1171
1172
|
const response = await store.getPublicLogs({
|
|
1172
1173
|
afterLog,
|
|
1173
1174
|
fromBlock: afterLog.blockNumber
|
|
@@ -1207,7 +1208,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
1207
1208
|
EthAddress.random(),
|
|
1208
1209
|
EthAddress.random()
|
|
1209
1210
|
],
|
|
1210
|
-
epoch:
|
|
1211
|
+
epoch: EpochNumber(123),
|
|
1211
1212
|
seed: 456n,
|
|
1212
1213
|
attestors: [
|
|
1213
1214
|
EthAddress.random()
|
|
@@ -1231,7 +1232,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
1231
1232
|
attestors: [
|
|
1232
1233
|
EthAddress.random()
|
|
1233
1234
|
],
|
|
1234
|
-
epoch:
|
|
1235
|
+
epoch: EpochNumber(789),
|
|
1235
1236
|
seed: 101n,
|
|
1236
1237
|
attestations: [
|
|
1237
1238
|
CommitteeAttestation.random()
|
|
@@ -1253,7 +1254,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
1253
1254
|
committee: [
|
|
1254
1255
|
EthAddress.random()
|
|
1255
1256
|
],
|
|
1256
|
-
epoch:
|
|
1257
|
+
epoch: EpochNumber(999),
|
|
1257
1258
|
seed: 888n,
|
|
1258
1259
|
attestors: [
|
|
1259
1260
|
EthAddress.random()
|
|
@@ -1273,7 +1274,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
1273
1274
|
valid: false,
|
|
1274
1275
|
block: randomBlockInfo(4),
|
|
1275
1276
|
committee: [],
|
|
1276
|
-
epoch:
|
|
1277
|
+
epoch: EpochNumber(0),
|
|
1277
1278
|
seed: 0n,
|
|
1278
1279
|
attestors: [],
|
|
1279
1280
|
attestations: [],
|
|
@@ -18,4 +18,4 @@ export declare const archiverConfigMappings: ConfigMappingsType<ArchiverConfig>;
|
|
|
18
18
|
* @returns The archiver configuration.
|
|
19
19
|
*/
|
|
20
20
|
export declare function getArchiverConfigFromEnv(): ArchiverConfig;
|
|
21
|
-
//# sourceMappingURL=
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXJjaGl2ZXIvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLGNBQWMsRUFBeUIsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRixPQUFPLEVBQ0wsS0FBSyxpQkFBaUIsRUFDdEIsS0FBSyxjQUFjLEVBSXBCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUNMLEtBQUssa0JBQWtCLEVBSXhCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLEtBQUssV0FBVyxFQUF1QixNQUFNLHNCQUFzQixDQUFDO0FBQzdFLE9BQU8sS0FBSyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFOUU7Ozs7OztHQU1HO0FBQ0gsTUFBTSxNQUFNLGNBQWMsR0FBRyxzQkFBc0IsR0FBRyxjQUFjLEdBQUcsaUJBQWlCLEdBQUcsY0FBYyxHQUFHLFdBQVcsQ0FBQztBQUV4SCxlQUFPLE1BQU0sc0JBQXNCLEVBQUUsa0JBQWtCLENBQUMsY0FBYyxDQTJDckUsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCx3QkFBZ0Isd0JBQXdCLElBQUksY0FBYyxDQUV6RCJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/archiver/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAyB,MAAM,yBAAyB,CAAC;AACrF,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,cAAc,EAIpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,kBAAkB,EAIxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,KAAK,WAAW,EAAuB,MAAM,sBAAsB,CAAC;AAC7E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAE9E;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,sBAAsB,GAAG,cAAc,GAAG,iBAAiB,GAAG,cAAc,GAAG,WAAW,CAAC;AAExH,eAAO,MAAM,sBAAsB,EAAE,kBAAkB,CAAC,cAAc,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/archiver/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAyB,MAAM,yBAAyB,CAAC;AACrF,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,cAAc,EAIpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,kBAAkB,EAIxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,KAAK,WAAW,EAAuB,MAAM,sBAAsB,CAAC;AAC7E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAE9E;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,sBAAsB,GAAG,cAAc,GAAG,iBAAiB,GAAG,cAAc,GAAG,WAAW,CAAC;AAExH,eAAO,MAAM,sBAAsB,EAAE,kBAAkB,CAAC,cAAc,CA2CrE,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,wBAAwB,IAAI,cAAc,CAEzD"}
|
package/dest/archiver/config.js
CHANGED
|
@@ -28,6 +28,11 @@ export const archiverConfigMappings = {
|
|
|
28
28
|
description: 'Whether to skip validating block attestations (use only for testing).',
|
|
29
29
|
...booleanConfigHelper(false)
|
|
30
30
|
},
|
|
31
|
+
maxAllowedEthClientDriftSeconds: {
|
|
32
|
+
env: 'MAX_ALLOWED_ETH_CLIENT_DRIFT_SECONDS',
|
|
33
|
+
description: 'Maximum allowed drift in seconds between the Ethereum client and current time.',
|
|
34
|
+
...numberConfigHelper(300)
|
|
35
|
+
},
|
|
31
36
|
...chainConfigMappings,
|
|
32
37
|
...l1ReaderConfigMappings,
|
|
33
38
|
viemPollingIntervalMS: {
|