@aztec/archiver 0.0.1-commit.f295ac2 → 0.0.1-commit.f2ce05ee
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/README.md +9 -0
- package/dest/archiver.d.ts +6 -5
- package/dest/archiver.d.ts.map +1 -1
- package/dest/archiver.js +34 -22
- package/dest/errors.d.ts +6 -1
- package/dest/errors.d.ts.map +1 -1
- package/dest/errors.js +8 -0
- package/dest/factory.d.ts +5 -2
- package/dest/factory.d.ts.map +1 -1
- package/dest/factory.js +11 -8
- package/dest/l1/bin/retrieve-calldata.js +17 -18
- package/dest/l1/data_retrieval.d.ts +1 -1
- package/dest/l1/data_retrieval.d.ts.map +1 -1
- package/dest/l1/data_retrieval.js +3 -3
- package/dest/l1/validate_trace.d.ts +6 -3
- package/dest/l1/validate_trace.d.ts.map +1 -1
- package/dest/l1/validate_trace.js +13 -9
- package/dest/modules/data_source_base.d.ts +19 -20
- package/dest/modules/data_source_base.d.ts.map +1 -1
- package/dest/modules/data_source_base.js +25 -56
- package/dest/modules/data_store_updater.d.ts +23 -19
- package/dest/modules/data_store_updater.d.ts.map +1 -1
- package/dest/modules/data_store_updater.js +47 -49
- package/dest/modules/instrumentation.d.ts +3 -3
- package/dest/modules/instrumentation.d.ts.map +1 -1
- package/dest/modules/instrumentation.js +17 -10
- package/dest/modules/l1_synchronizer.d.ts +1 -1
- package/dest/modules/l1_synchronizer.d.ts.map +1 -1
- package/dest/modules/l1_synchronizer.js +9 -10
- package/dest/store/block_store.d.ts +35 -21
- package/dest/store/block_store.d.ts.map +1 -1
- package/dest/store/block_store.js +81 -40
- package/dest/store/contract_class_store.d.ts +1 -1
- package/dest/store/contract_class_store.d.ts.map +1 -1
- package/dest/store/contract_class_store.js +11 -7
- package/dest/store/kv_archiver_store.d.ts +37 -28
- package/dest/store/kv_archiver_store.d.ts.map +1 -1
- package/dest/store/kv_archiver_store.js +31 -23
- package/dest/store/log_store.d.ts +17 -8
- package/dest/store/log_store.d.ts.map +1 -1
- package/dest/store/log_store.js +77 -43
- package/dest/test/fake_l1_state.d.ts +4 -4
- package/dest/test/fake_l1_state.d.ts.map +1 -1
- package/dest/test/index.js +3 -1
- package/dest/test/mock_archiver.js +1 -1
- package/dest/test/mock_l2_block_source.d.ts +20 -20
- package/dest/test/mock_l2_block_source.d.ts.map +1 -1
- package/dest/test/mock_l2_block_source.js +40 -41
- package/dest/test/mock_structs.d.ts +3 -2
- package/dest/test/mock_structs.d.ts.map +1 -1
- package/dest/test/mock_structs.js +11 -9
- package/dest/test/noop_l1_archiver.d.ts +23 -0
- package/dest/test/noop_l1_archiver.d.ts.map +1 -0
- package/dest/test/noop_l1_archiver.js +68 -0
- package/package.json +14 -13
- package/src/archiver.ts +46 -28
- package/src/errors.ts +12 -0
- package/src/factory.ts +23 -13
- package/src/l1/bin/retrieve-calldata.ts +16 -17
- package/src/l1/data_retrieval.ts +4 -4
- package/src/l1/validate_trace.ts +24 -6
- package/src/modules/data_source_base.ts +34 -81
- package/src/modules/data_store_updater.ts +59 -55
- package/src/modules/instrumentation.ts +17 -12
- package/src/modules/l1_synchronizer.ts +11 -12
- package/src/store/block_store.ts +107 -60
- package/src/store/contract_class_store.ts +11 -7
- package/src/store/kv_archiver_store.ts +52 -35
- package/src/store/log_store.ts +134 -49
- package/src/test/fake_l1_state.ts +2 -2
- package/src/test/index.ts +3 -0
- package/src/test/mock_archiver.ts +1 -1
- package/src/test/mock_l2_block_source.ts +54 -64
- package/src/test/mock_structs.ts +26 -10
- package/src/test/noop_l1_archiver.ts +109 -0
|
@@ -6,17 +6,18 @@ import { createLogger } from '@aztec/foundation/log';
|
|
|
6
6
|
import { BufferReader } from '@aztec/foundation/serialize';
|
|
7
7
|
import { bufferToHex } from '@aztec/foundation/string';
|
|
8
8
|
import { isDefined } from '@aztec/foundation/types';
|
|
9
|
-
import { Body, CheckpointedL2Block, CommitteeAttestation,
|
|
9
|
+
import { Body, CheckpointedL2Block, CommitteeAttestation, L2Block, deserializeValidateCheckpointResult, serializeValidateCheckpointResult } from '@aztec/stdlib/block';
|
|
10
10
|
import { L1PublishedData } from '@aztec/stdlib/checkpoint';
|
|
11
11
|
import { CheckpointHeader } from '@aztec/stdlib/rollup';
|
|
12
12
|
import { AppendOnlyTreeSnapshot } from '@aztec/stdlib/trees';
|
|
13
|
-
import { BlockHeader, TxHash, TxReceipt, deserializeIndexedTxEffect, serializeIndexedTxEffect } from '@aztec/stdlib/tx';
|
|
14
|
-
import { BlockArchiveNotConsistentError, BlockIndexNotSequentialError, BlockNotFoundError, BlockNumberNotSequentialError, CheckpointNotFoundError, CheckpointNumberNotConsistentError, CheckpointNumberNotSequentialError, InitialBlockNumberNotSequentialError, InitialCheckpointNumberNotSequentialError } from '../errors.js';
|
|
13
|
+
import { BlockHeader, TxHash, TxReceipt, TxStatus, deserializeIndexedTxEffect, serializeIndexedTxEffect } from '@aztec/stdlib/tx';
|
|
14
|
+
import { BlockArchiveNotConsistentError, BlockIndexNotSequentialError, BlockNotFoundError, BlockNumberNotSequentialError, CannotOverwriteCheckpointedBlockError, CheckpointNotFoundError, CheckpointNumberNotConsistentError, CheckpointNumberNotSequentialError, InitialBlockNumberNotSequentialError, InitialCheckpointNumberNotSequentialError } from '../errors.js';
|
|
15
15
|
export { TxReceipt } from '@aztec/stdlib/tx';
|
|
16
16
|
/**
|
|
17
17
|
* LMDB-based block storage for the archiver.
|
|
18
18
|
*/ export class BlockStore {
|
|
19
19
|
db;
|
|
20
|
+
l1Constants;
|
|
20
21
|
/** Map block number to block data */ #blocks;
|
|
21
22
|
/** Map checkpoint number to checkpoint data */ #checkpoints;
|
|
22
23
|
/** Map block hash to list of tx hashes */ #blockTxs;
|
|
@@ -28,8 +29,9 @@ export { TxReceipt } from '@aztec/stdlib/tx';
|
|
|
28
29
|
/** Index mapping block hash to block number */ #blockHashIndex;
|
|
29
30
|
/** Index mapping block archive to block number */ #blockArchiveIndex;
|
|
30
31
|
#log;
|
|
31
|
-
constructor(db){
|
|
32
|
+
constructor(db, l1Constants){
|
|
32
33
|
this.db = db;
|
|
34
|
+
this.l1Constants = l1Constants;
|
|
33
35
|
this.#log = createLogger('archiver:block_store');
|
|
34
36
|
this.#blocks = db.openMap('archiver_blocks');
|
|
35
37
|
this.#blockTxs = db.openMap('archiver_block_txs');
|
|
@@ -43,10 +45,22 @@ export { TxReceipt } from '@aztec/stdlib/tx';
|
|
|
43
45
|
this.#checkpoints = db.openMap('archiver_checkpoints');
|
|
44
46
|
}
|
|
45
47
|
/**
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
+
* Computes the finalized block number based on the proven block number.
|
|
49
|
+
* A block is considered finalized when it's 2 epochs behind the proven block.
|
|
50
|
+
* TODO(#13569): Compute proper finalized block number based on L1 finalized block.
|
|
51
|
+
* TODO(palla/mbps): Even the provisional computation is wrong, since it should subtract checkpoints, not blocks
|
|
52
|
+
* @returns The finalized block number.
|
|
53
|
+
*/ async getFinalizedL2BlockNumber() {
|
|
54
|
+
const provenBlockNumber = await this.getProvenBlockNumber();
|
|
55
|
+
return BlockNumber(Math.max(provenBlockNumber - this.l1Constants.epochDuration * 2, 0));
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Append new proposed blocks to the store's list. All blocks must be for the 'current' checkpoint.
|
|
59
|
+
* These are uncheckpointed blocks that have been proposed by the sequencer but not yet included in a checkpoint on L1.
|
|
60
|
+
* For checkpointed blocks (already published to L1), use addCheckpoints() instead.
|
|
61
|
+
* @param blocks - The proposed L2 blocks to be added to the store.
|
|
48
62
|
* @returns True if the operation is successful.
|
|
49
|
-
*/ async
|
|
63
|
+
*/ async addProposedBlocks(blocks, opts = {}) {
|
|
50
64
|
if (blocks.length === 0) {
|
|
51
65
|
return true;
|
|
52
66
|
}
|
|
@@ -59,6 +73,11 @@ export { TxReceipt } from '@aztec/stdlib/tx';
|
|
|
59
73
|
// Extract the latest block and checkpoint numbers
|
|
60
74
|
const previousBlockNumber = await this.getLatestBlockNumber();
|
|
61
75
|
const previousCheckpointNumber = await this.getLatestCheckpointNumber();
|
|
76
|
+
// Verify we're not overwriting checkpointed blocks
|
|
77
|
+
const lastCheckpointedBlockNumber = await this.getCheckpointedL2BlockNumber();
|
|
78
|
+
if (!opts.force && firstBlockNumber <= lastCheckpointedBlockNumber) {
|
|
79
|
+
throw new CannotOverwriteCheckpointedBlockError(firstBlockNumber, lastCheckpointedBlockNumber);
|
|
80
|
+
}
|
|
62
81
|
// Check that the first block number is the expected one
|
|
63
82
|
if (!opts.force && previousBlockNumber !== firstBlockNumber - 1) {
|
|
64
83
|
throw new InitialBlockNumberNotSequentialError(firstBlockNumber, previousBlockNumber);
|
|
@@ -193,7 +212,7 @@ export { TxReceipt } from '@aztec/stdlib/tx';
|
|
|
193
212
|
});
|
|
194
213
|
}
|
|
195
214
|
async addBlockToDatabase(block, checkpointNumber, indexWithinCheckpoint) {
|
|
196
|
-
const blockHash =
|
|
215
|
+
const blockHash = await block.hash();
|
|
197
216
|
await this.#blocks.set(block.number, {
|
|
198
217
|
header: block.header.toBuffer(),
|
|
199
218
|
blockHash: blockHash.toBuffer(),
|
|
@@ -228,41 +247,45 @@ export { TxReceipt } from '@aztec/stdlib/tx';
|
|
|
228
247
|
await this.#blockArchiveIndex.delete(block.archive.root.toString());
|
|
229
248
|
}
|
|
230
249
|
/**
|
|
231
|
-
*
|
|
232
|
-
*
|
|
233
|
-
*
|
|
234
|
-
|
|
235
|
-
* @returns True if the operation is successful
|
|
236
|
-
*/ async unwindCheckpoints(from, checkpointsToUnwind) {
|
|
250
|
+
* Removes all checkpoints with checkpoint number > checkpointNumber.
|
|
251
|
+
* Also removes ALL blocks (both checkpointed and uncheckpointed) after the last block of the given checkpoint.
|
|
252
|
+
* @param checkpointNumber - Remove all checkpoints strictly after this one.
|
|
253
|
+
*/ async removeCheckpointsAfter(checkpointNumber) {
|
|
237
254
|
return await this.db.transactionAsync(async ()=>{
|
|
238
|
-
const
|
|
239
|
-
if (
|
|
240
|
-
|
|
255
|
+
const latestCheckpointNumber = await this.getLatestCheckpointNumber();
|
|
256
|
+
if (checkpointNumber >= latestCheckpointNumber) {
|
|
257
|
+
this.#log.warn(`No checkpoints to remove after ${checkpointNumber} (latest is ${latestCheckpointNumber})`);
|
|
258
|
+
return {
|
|
259
|
+
blocksRemoved: undefined
|
|
260
|
+
};
|
|
241
261
|
}
|
|
262
|
+
// If the proven checkpoint is beyond the target, update it
|
|
242
263
|
const proven = await this.getProvenCheckpointNumber();
|
|
243
|
-
if (
|
|
244
|
-
|
|
264
|
+
if (proven > checkpointNumber) {
|
|
265
|
+
this.#log.warn(`Updating proven checkpoint ${proven} to last valid checkpoint ${checkpointNumber}`);
|
|
266
|
+
await this.setProvenCheckpointNumber(checkpointNumber);
|
|
245
267
|
}
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
const maxBlock = checkpoint.startBlock + checkpoint.numBlocks - 1;
|
|
255
|
-
for(let blockNumber = checkpoint.startBlock; blockNumber <= maxBlock; blockNumber++){
|
|
256
|
-
const block = await this.getBlock(BlockNumber(blockNumber));
|
|
257
|
-
if (block === undefined) {
|
|
258
|
-
this.#log.warn(`Cannot remove block ${blockNumber} from the store since we don't have it`);
|
|
259
|
-
continue;
|
|
260
|
-
}
|
|
261
|
-
await this.deleteBlock(block);
|
|
262
|
-
this.#log.debug(`Unwound block ${blockNumber} ${(await block.hash()).toString()} for checkpoint ${checkpointNumber}`);
|
|
268
|
+
// Find the last block number to keep (last block of the given checkpoint, or 0 if no checkpoint)
|
|
269
|
+
let lastBlockToKeep;
|
|
270
|
+
if (checkpointNumber <= 0) {
|
|
271
|
+
lastBlockToKeep = BlockNumber(INITIAL_L2_BLOCK_NUM - 1);
|
|
272
|
+
} else {
|
|
273
|
+
const targetCheckpoint = await this.#checkpoints.getAsync(checkpointNumber);
|
|
274
|
+
if (!targetCheckpoint) {
|
|
275
|
+
throw new Error(`Target checkpoint ${checkpointNumber} not found in store`);
|
|
263
276
|
}
|
|
277
|
+
lastBlockToKeep = BlockNumber(targetCheckpoint.startBlock + targetCheckpoint.numBlocks - 1);
|
|
264
278
|
}
|
|
265
|
-
|
|
279
|
+
// Remove all blocks after lastBlockToKeep (both checkpointed and uncheckpointed)
|
|
280
|
+
const blocksRemoved = await this.removeBlocksAfter(lastBlockToKeep);
|
|
281
|
+
// Remove all checkpoints after the target
|
|
282
|
+
for(let c = latestCheckpointNumber; c > checkpointNumber; c = CheckpointNumber(c - 1)){
|
|
283
|
+
await this.#checkpoints.delete(c);
|
|
284
|
+
this.#log.debug(`Removed checkpoint ${c}`);
|
|
285
|
+
}
|
|
286
|
+
return {
|
|
287
|
+
blocksRemoved
|
|
288
|
+
};
|
|
266
289
|
});
|
|
267
290
|
}
|
|
268
291
|
async getCheckpointData(checkpointNumber) {
|
|
@@ -332,9 +355,10 @@ export { TxReceipt } from '@aztec/stdlib/tx';
|
|
|
332
355
|
}
|
|
333
356
|
/**
|
|
334
357
|
* Removes all blocks with block number > blockNumber.
|
|
358
|
+
* Does not remove any associated checkpoints.
|
|
335
359
|
* @param blockNumber - The block number to remove after.
|
|
336
360
|
* @returns The removed blocks (for event emission).
|
|
337
|
-
*/ async
|
|
361
|
+
*/ async removeBlocksAfter(blockNumber) {
|
|
338
362
|
return await this.db.transactionAsync(async ()=>{
|
|
339
363
|
const removedBlocks = [];
|
|
340
364
|
// Get the latest block number to determine the range
|
|
@@ -556,7 +580,7 @@ export { TxReceipt } from '@aztec/stdlib/tx';
|
|
|
556
580
|
txEffects.push(deserializeIndexedTxEffect(txEffect).data);
|
|
557
581
|
}
|
|
558
582
|
const body = new Body(txEffects);
|
|
559
|
-
const block = new
|
|
583
|
+
const block = new L2Block(archive, header, body, CheckpointNumber(blockStorage.checkpointNumber), IndexWithinCheckpoint(blockStorage.indexWithinCheckpoint));
|
|
560
584
|
if (block.number !== blockNumber) {
|
|
561
585
|
throw new Error(`Block number mismatch when retrieving block from archive (expected ${blockNumber} but got ${block.number} with hash ${blockHashString})`);
|
|
562
586
|
}
|
|
@@ -582,7 +606,24 @@ export { TxReceipt } from '@aztec/stdlib/tx';
|
|
|
582
606
|
if (!txEffect) {
|
|
583
607
|
return undefined;
|
|
584
608
|
}
|
|
585
|
-
|
|
609
|
+
const blockNumber = BlockNumber(txEffect.l2BlockNumber);
|
|
610
|
+
// Use existing archiver methods to determine finalization level
|
|
611
|
+
const [provenBlockNumber, checkpointedBlockNumber, finalizedBlockNumber] = await Promise.all([
|
|
612
|
+
this.getProvenBlockNumber(),
|
|
613
|
+
this.getCheckpointedL2BlockNumber(),
|
|
614
|
+
this.getFinalizedL2BlockNumber()
|
|
615
|
+
]);
|
|
616
|
+
let status;
|
|
617
|
+
if (blockNumber <= finalizedBlockNumber) {
|
|
618
|
+
status = TxStatus.FINALIZED;
|
|
619
|
+
} else if (blockNumber <= provenBlockNumber) {
|
|
620
|
+
status = TxStatus.PROVEN;
|
|
621
|
+
} else if (blockNumber <= checkpointedBlockNumber) {
|
|
622
|
+
status = TxStatus.CHECKPOINTED;
|
|
623
|
+
} else {
|
|
624
|
+
status = TxStatus.PROPOSED;
|
|
625
|
+
}
|
|
626
|
+
return new TxReceipt(txHash, status, TxReceipt.executionResultFromRevertCode(txEffect.data.revertCode), undefined, txEffect.data.transactionFee.toBigInt(), txEffect.l2BlockHash, blockNumber);
|
|
586
627
|
}
|
|
587
628
|
/**
|
|
588
629
|
* Looks up which block included the requested tx effect.
|
|
@@ -15,4 +15,4 @@ export declare class ContractClassStore {
|
|
|
15
15
|
getContractClassIds(): Promise<Fr[]>;
|
|
16
16
|
addFunctions(contractClassId: Fr, newPrivateFunctions: ExecutablePrivateFunctionWithMembershipProof[], newUtilityFunctions: UtilityFunctionWithMembershipProof[]): Promise<boolean>;
|
|
17
17
|
}
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RfY2xhc3Nfc3RvcmUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdG9yZS9jb250cmFjdF9jbGFzc19zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHcEQsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQWlCLE1BQU0saUJBQWlCLENBQUM7QUFFeEUsT0FBTyxLQUFLLEVBQ1YsbUJBQW1CLEVBRW5CLDRDQUE0QyxFQUM1QyxrQ0FBa0MsRUFDbkMsTUFBTSx3QkFBd0IsQ0FBQztBQUdoQzs7R0FFRztBQUNILHFCQUFhLGtCQUFrQjs7SUFJakIsT0FBTyxDQUFDLEVBQUU7SUFBdEIsWUFBb0IsRUFBRSxFQUFFLGlCQUFpQixFQUd4QztJQUVLLGdCQUFnQixDQUNwQixhQUFhLEVBQUUsbUJBQW1CLEVBQ2xDLGtCQUFrQixFQUFFLEVBQUUsRUFDdEIsV0FBVyxFQUFFLE1BQU0sR0FDbEIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQVFmO0lBRUsscUJBQXFCLENBQUMsYUFBYSxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQVFsRztJQUVLLGdCQUFnQixDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixHQUFHLFNBQVMsQ0FBQyxDQUd2RTtJQUVLLHFCQUFxQixDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FHM0Q7SUFFSyxtQkFBbUIsSUFBSSxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FFekM7SUFFSyxZQUFZLENBQ2hCLGVBQWUsRUFBRSxFQUFFLEVBQ25CLG1CQUFtQixFQUFFLDRDQUE0QyxFQUFFLEVBQ25FLG1CQUFtQixFQUFFLGtDQUFrQyxFQUFFLEdBQ3hELE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0F5QmxCO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract_class_store.d.ts","sourceRoot":"","sources":["../../src/store/contract_class_store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAGpD,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,iBAAiB,CAAC;AAExE,OAAO,KAAK,EACV,mBAAmB,EAEnB,4CAA4C,EAC5C,kCAAkC,EACnC,MAAM,wBAAwB,CAAC;AAGhC;;GAEG;AACH,qBAAa,kBAAkB;;IAIjB,OAAO,CAAC,EAAE;IAAtB,YAAoB,EAAE,EAAE,iBAAiB,EAGxC;IAEK,gBAAgB,CACpB,aAAa,EAAE,mBAAmB,EAClC,kBAAkB,EAAE,EAAE,EACtB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"contract_class_store.d.ts","sourceRoot":"","sources":["../../src/store/contract_class_store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAGpD,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,iBAAiB,CAAC;AAExE,OAAO,KAAK,EACV,mBAAmB,EAEnB,4CAA4C,EAC5C,kCAAkC,EACnC,MAAM,wBAAwB,CAAC;AAGhC;;GAEG;AACH,qBAAa,kBAAkB;;IAIjB,OAAO,CAAC,EAAE;IAAtB,YAAoB,EAAE,EAAE,iBAAiB,EAGxC;IAEK,gBAAgB,CACpB,aAAa,EAAE,mBAAmB,EAClC,kBAAkB,EAAE,EAAE,EACtB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAQf;IAEK,qBAAqB,CAAC,aAAa,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQlG;IAEK,gBAAgB,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAGvE;IAEK,qBAAqB,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC,CAG3D;IAEK,mBAAmB,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,CAEzC;IAEK,YAAY,CAChB,eAAe,EAAE,EAAE,EACnB,mBAAmB,EAAE,4CAA4C,EAAE,EACnE,mBAAmB,EAAE,kCAAkC,EAAE,GACxD,OAAO,CAAC,OAAO,CAAC,CAyBlB;CACF"}
|
|
@@ -15,17 +15,21 @@ import { Vector } from '@aztec/stdlib/types';
|
|
|
15
15
|
this.#bytecodeCommitments = db.openMap('archiver_bytecode_commitments');
|
|
16
16
|
}
|
|
17
17
|
async addContractClass(contractClass, bytecodeCommitment, blockNumber) {
|
|
18
|
-
await this
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
18
|
+
await this.db.transactionAsync(async ()=>{
|
|
19
|
+
await this.#contractClasses.setIfNotExists(contractClass.id.toString(), serializeContractClassPublic({
|
|
20
|
+
...contractClass,
|
|
21
|
+
l2BlockNumber: blockNumber
|
|
22
|
+
}));
|
|
23
|
+
await this.#bytecodeCommitments.setIfNotExists(contractClass.id.toString(), bytecodeCommitment.toBuffer());
|
|
24
|
+
});
|
|
23
25
|
}
|
|
24
26
|
async deleteContractClasses(contractClass, blockNumber) {
|
|
25
27
|
const restoredContractClass = await this.#contractClasses.getAsync(contractClass.id.toString());
|
|
26
28
|
if (restoredContractClass && deserializeContractClassPublic(restoredContractClass).l2BlockNumber >= blockNumber) {
|
|
27
|
-
await this
|
|
28
|
-
|
|
29
|
+
await this.db.transactionAsync(async ()=>{
|
|
30
|
+
await this.#contractClasses.delete(contractClass.id.toString());
|
|
31
|
+
await this.#bytecodeCommitments.delete(contractClass.id.toString());
|
|
32
|
+
});
|
|
29
33
|
}
|
|
30
34
|
}
|
|
31
35
|
async getContractClass(id) {
|
|
@@ -4,15 +4,16 @@ import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
|
4
4
|
import type { AztecAsyncKVStore, CustomRange, StoreSize } from '@aztec/kv-store';
|
|
5
5
|
import { FunctionSelector } from '@aztec/stdlib/abi';
|
|
6
6
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
7
|
-
import { CheckpointedL2Block,
|
|
7
|
+
import { BlockHash, CheckpointedL2Block, L2Block, type ValidateCheckpointResult } from '@aztec/stdlib/block';
|
|
8
8
|
import type { PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
|
|
9
9
|
import type { ContractClassPublic, ContractDataSource, ContractInstanceUpdateWithAddress, ContractInstanceWithAddress, ExecutablePrivateFunctionWithMembershipProof, UtilityFunctionWithMembershipProof } from '@aztec/stdlib/contract';
|
|
10
|
+
import type { L1RollupConstants } from '@aztec/stdlib/epoch-helpers';
|
|
10
11
|
import type { GetContractClassLogsResponse, GetPublicLogsResponse } from '@aztec/stdlib/interfaces/client';
|
|
11
12
|
import type { LogFilter, SiloedTag, Tag, TxScopedL2Log } from '@aztec/stdlib/logs';
|
|
12
13
|
import type { BlockHeader, TxHash, TxReceipt } from '@aztec/stdlib/tx';
|
|
13
14
|
import type { UInt64 } from '@aztec/stdlib/types';
|
|
14
15
|
import type { InboxMessage } from '../structs/inbox_message.js';
|
|
15
|
-
import { type CheckpointData } from './block_store.js';
|
|
16
|
+
import { type CheckpointData, type RemoveCheckpointsResult } from './block_store.js';
|
|
16
17
|
export declare const ARCHIVER_DB_VERSION = 5;
|
|
17
18
|
export declare const MAX_FUNCTION_SIGNATURES = 1000;
|
|
18
19
|
export declare const MAX_FUNCTION_NAME_LEN = 256;
|
|
@@ -34,7 +35,7 @@ export declare class KVArchiverDataStore implements ContractDataSource {
|
|
|
34
35
|
private db;
|
|
35
36
|
static readonly SCHEMA_VERSION = 5;
|
|
36
37
|
private functionNames;
|
|
37
|
-
constructor(db: AztecAsyncKVStore, logsMaxPageSize
|
|
38
|
+
constructor(db: AztecAsyncKVStore, logsMaxPageSize: number | undefined, l1Constants: Pick<L1RollupConstants, 'epochDuration'>);
|
|
38
39
|
/** Opens a new transaction to the underlying store and runs all operations within it. */
|
|
39
40
|
transactionAsync<T>(callback: () => Promise<T>): Promise<T>;
|
|
40
41
|
getBlockNumber(): Promise<BlockNumber>;
|
|
@@ -43,6 +44,8 @@ export declare class KVArchiverDataStore implements ContractDataSource {
|
|
|
43
44
|
backupTo(path: string, compress?: boolean): Promise<string>;
|
|
44
45
|
/** Closes the underlying data store. */
|
|
45
46
|
close(): Promise<void>;
|
|
47
|
+
/** Computes the finalized block number based on the proven block number. */
|
|
48
|
+
getFinalizedL2BlockNumber(): Promise<BlockNumber>;
|
|
46
49
|
/** Looks up a public function name given a selector. */
|
|
47
50
|
getDebugFunctionName(_address: AztecAddress, selector: FunctionSelector): Promise<string | undefined>;
|
|
48
51
|
/** Register a public function signature, so it can be looked up by selector. */
|
|
@@ -91,11 +94,13 @@ export declare class KVArchiverDataStore implements ContractDataSource {
|
|
|
91
94
|
addContractInstanceUpdates(data: ContractInstanceUpdateWithAddress[], timestamp: UInt64): Promise<boolean>;
|
|
92
95
|
deleteContractInstanceUpdates(data: ContractInstanceUpdateWithAddress[], timestamp: UInt64): Promise<boolean>;
|
|
93
96
|
/**
|
|
94
|
-
* Append new blocks to the store's list.
|
|
95
|
-
*
|
|
97
|
+
* Append new proposed blocks to the store's list.
|
|
98
|
+
* These are uncheckpointed blocks that have been proposed by the sequencer but not yet included in a checkpoint on L1.
|
|
99
|
+
* For checkpointed blocks (already published to L1), use addCheckpoints() instead.
|
|
100
|
+
* @param blocks - The proposed L2 blocks to be added to the store.
|
|
96
101
|
* @returns True if the operation is successful.
|
|
97
102
|
*/
|
|
98
|
-
|
|
103
|
+
addProposedBlocks(blocks: L2Block[], opts?: {
|
|
99
104
|
force?: boolean;
|
|
100
105
|
checkpointNumber?: number;
|
|
101
106
|
}): Promise<boolean>;
|
|
@@ -112,13 +117,11 @@ export declare class KVArchiverDataStore implements ContractDataSource {
|
|
|
112
117
|
*/
|
|
113
118
|
getLatestBlockNumber(): Promise<BlockNumber>;
|
|
114
119
|
/**
|
|
115
|
-
*
|
|
116
|
-
*
|
|
117
|
-
*
|
|
118
|
-
* @param checkpointsToUnwind - The number of checkpoints we are to unwind
|
|
119
|
-
* @returns True if the operation is successful
|
|
120
|
+
* Removes all checkpoints with checkpoint number > checkpointNumber.
|
|
121
|
+
* Also removes ALL blocks (both checkpointed and uncheckpointed) after the last block of the given checkpoint.
|
|
122
|
+
* @param checkpointNumber - Remove all checkpoints strictly after this one.
|
|
120
123
|
*/
|
|
121
|
-
|
|
124
|
+
removeCheckpointsAfter(checkpointNumber: CheckpointNumber): Promise<RemoveCheckpointsResult>;
|
|
122
125
|
/**
|
|
123
126
|
* Appends new checkpoints, and their blocks to the store's collection
|
|
124
127
|
* @param checkpoints The collection of checkpoints to be added
|
|
@@ -134,7 +137,7 @@ export declare class KVArchiverDataStore implements ContractDataSource {
|
|
|
134
137
|
* Returns the block for the given hash, or undefined if not exists.
|
|
135
138
|
* @param blockHash - The block hash to return.
|
|
136
139
|
*/
|
|
137
|
-
getCheckpointedBlockByHash(blockHash:
|
|
140
|
+
getCheckpointedBlockByHash(blockHash: BlockHash): Promise<CheckpointedL2Block | undefined>;
|
|
138
141
|
/**
|
|
139
142
|
* Returns the block for the given archive root, or undefined if not exists.
|
|
140
143
|
* @param archive - The archive root to return.
|
|
@@ -144,24 +147,24 @@ export declare class KVArchiverDataStore implements ContractDataSource {
|
|
|
144
147
|
* Returns the block for the given number, or undefined if not exists.
|
|
145
148
|
* @param number - The block number to return.
|
|
146
149
|
*/
|
|
147
|
-
getBlock(number: BlockNumber): Promise<
|
|
150
|
+
getBlock(number: BlockNumber): Promise<L2Block | undefined>;
|
|
148
151
|
/**
|
|
149
152
|
* Returns the block for the given hash, or undefined if not exists.
|
|
150
153
|
* @param blockHash - The block hash to return.
|
|
151
154
|
*/
|
|
152
|
-
getBlockByHash(blockHash:
|
|
155
|
+
getBlockByHash(blockHash: BlockHash): Promise<L2Block | undefined>;
|
|
153
156
|
/**
|
|
154
157
|
* Returns the block for the given archive root, or undefined if not exists.
|
|
155
158
|
* @param archive - The archive root to return.
|
|
156
159
|
*/
|
|
157
|
-
getBlockByArchive(archive: Fr): Promise<
|
|
160
|
+
getBlockByArchive(archive: Fr): Promise<L2Block | undefined>;
|
|
158
161
|
/**
|
|
159
162
|
* Gets up to `limit` amount of published L2 blocks starting from `from`.
|
|
160
163
|
* @param from - Number of the first block to return (inclusive).
|
|
161
164
|
* @param limit - The number of blocks to return.
|
|
162
165
|
* @returns The requested L2 blocks.
|
|
163
166
|
*/
|
|
164
|
-
getBlocks(from: BlockNumber, limit: number): Promise<
|
|
167
|
+
getBlocks(from: BlockNumber, limit: number): Promise<L2Block[]>;
|
|
165
168
|
/**
|
|
166
169
|
* Gets up to `limit` amount of checkpointed L2 blocks starting from `from`.
|
|
167
170
|
* @param from - Number of the first block to return (inclusive).
|
|
@@ -180,7 +183,7 @@ export declare class KVArchiverDataStore implements ContractDataSource {
|
|
|
180
183
|
* Returns the block header for the given hash, or undefined if not exists.
|
|
181
184
|
* @param blockHash - The block hash to return.
|
|
182
185
|
*/
|
|
183
|
-
getBlockHeaderByHash(blockHash:
|
|
186
|
+
getBlockHeaderByHash(blockHash: BlockHash): Promise<BlockHeader | undefined>;
|
|
184
187
|
/**
|
|
185
188
|
* Returns the block header for the given archive root, or undefined if not exists.
|
|
186
189
|
* @param archive - The archive root to return.
|
|
@@ -203,8 +206,8 @@ export declare class KVArchiverDataStore implements ContractDataSource {
|
|
|
203
206
|
* @param blocks - The blocks for which to add the logs.
|
|
204
207
|
* @returns True if the operation is successful.
|
|
205
208
|
*/
|
|
206
|
-
addLogs(blocks:
|
|
207
|
-
deleteLogs(blocks:
|
|
209
|
+
addLogs(blocks: L2Block[]): Promise<boolean>;
|
|
210
|
+
deleteLogs(blocks: L2Block[]): Promise<boolean>;
|
|
208
211
|
/**
|
|
209
212
|
* Get the total number of L1 to L2 messages
|
|
210
213
|
* @returns The number of L1 to L2 messages in the store
|
|
@@ -231,15 +234,20 @@ export declare class KVArchiverDataStore implements ContractDataSource {
|
|
|
231
234
|
*/
|
|
232
235
|
getL1ToL2Messages(checkpointNumber: CheckpointNumber): Promise<Fr[]>;
|
|
233
236
|
/**
|
|
234
|
-
* Gets
|
|
237
|
+
* Gets private logs that match any of the `tags`. For each tag, an array of matching logs is returned. An empty
|
|
235
238
|
* array implies no logs match that tag.
|
|
239
|
+
* @param tags - The tags to search for.
|
|
240
|
+
* @param page - The page number (0-indexed) for pagination. Returns at most 10 logs per tag per page.
|
|
236
241
|
*/
|
|
237
|
-
getPrivateLogsByTags(tags: SiloedTag[]): Promise<TxScopedL2Log[][]>;
|
|
242
|
+
getPrivateLogsByTags(tags: SiloedTag[], page?: number): Promise<TxScopedL2Log[][]>;
|
|
238
243
|
/**
|
|
239
|
-
* Gets
|
|
244
|
+
* Gets public logs that match any of the `tags` from the specified contract. For each tag, an array of matching
|
|
240
245
|
* logs is returned. An empty array implies no logs match that tag.
|
|
246
|
+
* @param contractAddress - The contract address to search logs for.
|
|
247
|
+
* @param tags - The tags to search for.
|
|
248
|
+
* @param page - The page number (0-indexed) for pagination. Returns at most 10 logs per tag per page.
|
|
241
249
|
*/
|
|
242
|
-
getPublicLogsByTagsFromContract(contractAddress: AztecAddress, tags: Tag[]): Promise<TxScopedL2Log[][]>;
|
|
250
|
+
getPublicLogsByTagsFromContract(contractAddress: AztecAddress, tags: Tag[], page?: number): Promise<TxScopedL2Log[][]>;
|
|
243
251
|
/**
|
|
244
252
|
* Gets public logs based on the provided filter.
|
|
245
253
|
* @param filter - The filter to apply to the logs.
|
|
@@ -308,7 +316,7 @@ export declare class KVArchiverDataStore implements ContractDataSource {
|
|
|
308
316
|
* @param checkpointNumber Retrieves all blocks for the given checkpoint
|
|
309
317
|
* @returns The collection of blocks for the requested checkpoint if available (undefined otherwise)
|
|
310
318
|
*/
|
|
311
|
-
getBlocksForCheckpoint(checkpointNumber: CheckpointNumber): Promise<
|
|
319
|
+
getBlocksForCheckpoint(checkpointNumber: CheckpointNumber): Promise<L2Block[] | undefined>;
|
|
312
320
|
/**
|
|
313
321
|
* Returns checkpoint data for the requested checkpoint number
|
|
314
322
|
* @param checkpointNumber - The checkpoint requested
|
|
@@ -320,12 +328,13 @@ export declare class KVArchiverDataStore implements ContractDataSource {
|
|
|
320
328
|
* @param slotNumber - The slot number to search for.
|
|
321
329
|
* @returns All blocks with the given slot number.
|
|
322
330
|
*/
|
|
323
|
-
getBlocksForSlot(slotNumber: SlotNumber): Promise<
|
|
331
|
+
getBlocksForSlot(slotNumber: SlotNumber): Promise<L2Block[]>;
|
|
324
332
|
/**
|
|
325
333
|
* Removes all blocks with block number > blockNumber.
|
|
334
|
+
* Does not remove any associated checkpoints.
|
|
326
335
|
* @param blockNumber - The block number to remove after.
|
|
327
336
|
* @returns The removed blocks (for event emission).
|
|
328
337
|
*/
|
|
329
|
-
removeBlocksAfter(blockNumber: BlockNumber): Promise<
|
|
338
|
+
removeBlocksAfter(blockNumber: BlockNumber): Promise<L2Block[]>;
|
|
330
339
|
}
|
|
331
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
340
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3ZfYXJjaGl2ZXJfc3RvcmUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdG9yZS9rdl9hcmNoaXZlcl9zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakcsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHekQsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsT0FBTyxFQUFFLEtBQUssd0JBQXdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RyxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BFLE9BQU8sS0FBSyxFQUNWLG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbEIsaUNBQWlDLEVBQ2pDLDJCQUEyQixFQUMzQiw0Q0FBNEMsRUFDNUMsa0NBQWtDLEVBQ25DLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRSxPQUFPLEtBQUssRUFBRSw0QkFBNEIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzNHLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFD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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kv_archiver_store.d.ts","sourceRoot":"","sources":["../../src/store/kv_archiver_store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AACjG,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAGzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"kv_archiver_store.d.ts","sourceRoot":"","sources":["../../src/store/kv_archiver_store.ts"],"names":[],"mappings":"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"}
|