@aztec/archiver 4.1.0-rc.3 → 4.1.0
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.d.ts +1 -1
- package/dest/archiver.d.ts.map +1 -1
- package/dest/archiver.js +5 -6
- package/dest/factory.d.ts +2 -3
- package/dest/factory.d.ts.map +1 -1
- package/dest/factory.js +3 -5
- package/dest/modules/data_store_updater.d.ts +6 -1
- package/dest/modules/data_store_updater.d.ts.map +1 -1
- package/dest/modules/data_store_updater.js +25 -2
- package/dest/modules/l1_synchronizer.d.ts +2 -1
- package/dest/modules/l1_synchronizer.d.ts.map +1 -1
- package/dest/modules/l1_synchronizer.js +27 -0
- package/dest/store/block_store.d.ts +6 -7
- package/dest/store/block_store.d.ts.map +1 -1
- package/dest/store/block_store.js +24 -9
- package/dest/store/kv_archiver_store.d.ts +12 -2
- package/dest/store/kv_archiver_store.d.ts.map +1 -1
- package/dest/store/kv_archiver_store.js +14 -2
- package/dest/store/log_store.d.ts +1 -1
- package/dest/store/log_store.d.ts.map +1 -1
- package/dest/store/log_store.js +29 -9
- package/dest/test/fake_l1_state.d.ts +8 -1
- package/dest/test/fake_l1_state.d.ts.map +1 -1
- package/dest/test/fake_l1_state.js +28 -2
- package/package.json +13 -13
- package/src/archiver.ts +5 -6
- package/src/factory.ts +2 -4
- package/src/modules/data_store_updater.ts +31 -1
- package/src/modules/l1_synchronizer.ts +30 -0
- package/src/store/block_store.ts +30 -10
- package/src/store/kv_archiver_store.ts +17 -2
- package/src/store/log_store.ts +42 -11
- package/src/test/fake_l1_state.ts +35 -4
|
@@ -150,8 +150,12 @@ export class FakeL1State {
|
|
|
150
150
|
// Computed from checkpoints based on L1 block visibility
|
|
151
151
|
private pendingCheckpointNumber: CheckpointNumber = CheckpointNumber(0);
|
|
152
152
|
|
|
153
|
+
// The L1 block number reported as "finalized" (defaults to the start block)
|
|
154
|
+
private finalizedL1BlockNumber: bigint;
|
|
155
|
+
|
|
153
156
|
constructor(private readonly config: FakeL1StateConfig) {
|
|
154
157
|
this.l1BlockNumber = config.l1StartBlock;
|
|
158
|
+
this.finalizedL1BlockNumber = config.l1StartBlock;
|
|
155
159
|
this.lastArchive = new AppendOnlyTreeSnapshot(config.genesisArchiveRoot, 1);
|
|
156
160
|
}
|
|
157
161
|
|
|
@@ -283,11 +287,30 @@ export class FakeL1State {
|
|
|
283
287
|
this.updatePendingCheckpointNumber();
|
|
284
288
|
}
|
|
285
289
|
|
|
290
|
+
/** Sets the L1 block number that will be reported as "finalized". */
|
|
291
|
+
setFinalizedL1BlockNumber(blockNumber: bigint): void {
|
|
292
|
+
this.finalizedL1BlockNumber = blockNumber;
|
|
293
|
+
}
|
|
294
|
+
|
|
286
295
|
/** Marks a checkpoint as proven. Updates provenCheckpointNumber. */
|
|
287
296
|
markCheckpointAsProven(checkpointNumber: CheckpointNumber): void {
|
|
288
297
|
this.provenCheckpointNumber = checkpointNumber;
|
|
289
298
|
}
|
|
290
299
|
|
|
300
|
+
/**
|
|
301
|
+
* Simulates what `rollup.getProvenCheckpointNumber({ blockNumber: atL1Block })` would return.
|
|
302
|
+
*/
|
|
303
|
+
getProvenCheckpointNumberAtL1Block(atL1Block: bigint): CheckpointNumber {
|
|
304
|
+
if (this.provenCheckpointNumber === 0) {
|
|
305
|
+
return CheckpointNumber(0);
|
|
306
|
+
}
|
|
307
|
+
const checkpoint = this.checkpoints.find(cp => cp.checkpointNumber === this.provenCheckpointNumber);
|
|
308
|
+
if (checkpoint && checkpoint.l1BlockNumber <= atL1Block) {
|
|
309
|
+
return this.provenCheckpointNumber;
|
|
310
|
+
}
|
|
311
|
+
return CheckpointNumber(0);
|
|
312
|
+
}
|
|
313
|
+
|
|
291
314
|
/** Sets the target committee size for attestation validation. */
|
|
292
315
|
setTargetCommitteeSize(size: number): void {
|
|
293
316
|
this.targetCommitteeSize = size;
|
|
@@ -406,6 +429,11 @@ export class FakeL1State {
|
|
|
406
429
|
});
|
|
407
430
|
});
|
|
408
431
|
|
|
432
|
+
mockRollup.getProvenCheckpointNumber.mockImplementation((options?: { blockNumber?: bigint }) => {
|
|
433
|
+
const atBlock = options?.blockNumber ?? this.l1BlockNumber;
|
|
434
|
+
return Promise.resolve(this.getProvenCheckpointNumberAtL1Block(atBlock));
|
|
435
|
+
});
|
|
436
|
+
|
|
409
437
|
mockRollup.canPruneAtTime.mockImplementation(() => Promise.resolve(this.canPruneResult));
|
|
410
438
|
|
|
411
439
|
// Mock the wrapper method for fetching checkpoint events
|
|
@@ -449,10 +477,13 @@ export class FakeL1State {
|
|
|
449
477
|
publicClient.getChainId.mockResolvedValue(1);
|
|
450
478
|
publicClient.getBlockNumber.mockImplementation(() => Promise.resolve(this.l1BlockNumber));
|
|
451
479
|
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
480
|
+
publicClient.getBlock.mockImplementation((async (args: { blockNumber?: bigint; blockTag?: string } = {}) => {
|
|
481
|
+
let blockNum: bigint;
|
|
482
|
+
if (args.blockTag === 'finalized') {
|
|
483
|
+
blockNum = this.finalizedL1BlockNumber;
|
|
484
|
+
} else {
|
|
485
|
+
blockNum = args.blockNumber ?? (await publicClient.getBlockNumber());
|
|
486
|
+
}
|
|
456
487
|
return {
|
|
457
488
|
number: blockNum,
|
|
458
489
|
timestamp: BigInt(blockNum) * BigInt(this.config.ethereumSlotDuration) + this.config.l1GenesisTime,
|