@aztec/archiver 0.0.1-commit.6c91f13 → 0.0.1-commit.96bb3f7
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 +14 -14
- package/dest/archiver/archiver.d.ts +13 -10
- package/dest/archiver/archiver.d.ts.map +1 -1
- package/dest/archiver/archiver.js +514 -57
- package/dest/archiver/archiver_store.d.ts +11 -4
- 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 +6 -6
- package/dest/archiver/config.js +2 -2
- package/dest/archiver/instrumentation.d.ts +1 -1
- package/dest/archiver/instrumentation.d.ts.map +1 -1
- package/dest/archiver/instrumentation.js +15 -63
- package/dest/archiver/kv_archiver_store/block_store.d.ts +11 -4
- package/dest/archiver/kv_archiver_store/block_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/block_store.js +22 -3
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts +5 -4
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/kv_archiver_store.js +3 -0
- package/dest/archiver/l1/calldata_retriever.d.ts +2 -2
- package/dest/archiver/l1/calldata_retriever.d.ts.map +1 -1
- package/dest/archiver/l1/calldata_retriever.js +2 -2
- package/dest/archiver/l1/validate_trace.js +1 -1
- package/dest/archiver/validation.d.ts +4 -4
- package/dest/archiver/validation.d.ts.map +1 -1
- package/dest/archiver/validation.js +1 -1
- package/dest/test/mock_l1_to_l2_message_source.d.ts +2 -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 +12 -3
- package/dest/test/mock_l2_block_source.d.ts +8 -4
- package/dest/test/mock_l2_block_source.d.ts.map +1 -1
- package/dest/test/mock_l2_block_source.js +65 -19
- package/package.json +13 -13
- package/src/archiver/archiver.ts +179 -71
- package/src/archiver/archiver_store.ts +11 -3
- package/src/archiver/archiver_store_test_suite.ts +12 -13
- package/src/archiver/config.ts +2 -2
- package/src/archiver/instrumentation.ts +14 -63
- package/src/archiver/kv_archiver_store/block_store.ts +35 -7
- package/src/archiver/kv_archiver_store/kv_archiver_store.ts +7 -3
- package/src/archiver/l1/calldata_retriever.ts +2 -2
- package/src/archiver/l1/validate_trace.ts +1 -1
- package/src/archiver/validation.ts +6 -6
- package/src/test/mock_l1_to_l2_message_source.ts +10 -4
- package/src/test/mock_l2_block_source.ts +76 -18
|
@@ -37,7 +37,7 @@ import { getSuccessfulCallsFromTrace } from './trace_tx.js';
|
|
|
37
37
|
* @param checkpointNumber - Checkpoint number.
|
|
38
38
|
* @param expectedHashes - Optional expected hashes from the CheckpointProposed event for validation
|
|
39
39
|
* @returns Checkpoint header and metadata from the calldata, deserialized
|
|
40
|
-
*/ async getCheckpointFromRollupTx(txHash,
|
|
40
|
+
*/ async getCheckpointFromRollupTx(txHash, _blobHashes, checkpointNumber, expectedHashes) {
|
|
41
41
|
this.logger.trace(`Fetching checkpoint ${checkpointNumber} from rollup tx ${txHash}`, {
|
|
42
42
|
willValidateHashes: !!expectedHashes.attestationsHash || !!expectedHashes.payloadDigest,
|
|
43
43
|
hasAttestationsHash: !!expectedHashes.attestationsHash,
|
|
@@ -355,7 +355,7 @@ import { getSuccessfulCallsFromTrace } from './trace_tx.js';
|
|
|
355
355
|
// Use ConsensusPayload to compute the digest - this ensures we match the exact logic
|
|
356
356
|
// used by the network for signing and verification
|
|
357
357
|
const consensusPayload = new ConsensusPayload(header, archiveRoot);
|
|
358
|
-
const payloadToSign = consensusPayload.getPayloadToSign(SignatureDomainSeparator.
|
|
358
|
+
const payloadToSign = consensusPayload.getPayloadToSign(SignatureDomainSeparator.checkpointAttestation);
|
|
359
359
|
const computedPayloadDigest = keccak256(payloadToSign);
|
|
360
360
|
// Compare as buffers to avoid case-sensitivity and string comparison issues
|
|
361
361
|
const computedBuffer = Buffer.from(hexToBytes(computedPayloadDigest));
|
|
@@ -113,7 +113,7 @@ function hasTxs(block) {
|
|
|
113
113
|
* @param ethereumAllowNoDebugHosts - If false, throws an error when no trace methods are available
|
|
114
114
|
* @throws Error if ethereumAllowNoDebugHosts is false and no trace methods are available
|
|
115
115
|
*/ export async function validateAndLogTraceAvailability(client, ethereumAllowNoDebugHosts) {
|
|
116
|
-
logger.
|
|
116
|
+
logger.debug('Validating trace/debug method availability...');
|
|
117
117
|
const availability = await validateTraceAvailability(client);
|
|
118
118
|
// Check if we have support for old blocks (either debug or trace)
|
|
119
119
|
const hasOldBlockSupport = availability.debugTraceOld || availability.traceTransactionOld;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { EpochCache } from '@aztec/epoch-cache';
|
|
2
2
|
import type { Logger } from '@aztec/foundation/log';
|
|
3
|
-
import { type AttestationInfo, type
|
|
3
|
+
import { type AttestationInfo, type ValidateCheckpointResult } from '@aztec/stdlib/block';
|
|
4
4
|
import type { PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
|
|
5
5
|
import { type L1RollupConstants } from '@aztec/stdlib/epoch-helpers';
|
|
6
|
-
export type {
|
|
6
|
+
export type { ValidateCheckpointResult };
|
|
7
7
|
/**
|
|
8
8
|
* Extracts attestation information from a published checkpoint.
|
|
9
9
|
* Returns info for each attestation, preserving array indices.
|
|
@@ -13,5 +13,5 @@ export declare function getAttestationInfoFromPublishedCheckpoint({ checkpoint,
|
|
|
13
13
|
* Validates the attestations submitted for the given checkpoint.
|
|
14
14
|
* Returns true if the attestations are valid and sufficient, false otherwise.
|
|
15
15
|
*/
|
|
16
|
-
export declare function validateCheckpointAttestations(publishedCheckpoint: PublishedCheckpoint, epochCache: EpochCache, constants: Pick<L1RollupConstants, 'epochDuration'>, logger?: Logger): Promise<
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
export declare function validateCheckpointAttestations(publishedCheckpoint: PublishedCheckpoint, epochCache: EpochCache, constants: Pick<L1RollupConstants, 'epochDuration'>, logger?: Logger): Promise<ValidateCheckpointResult>;
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FyY2hpdmVyL3ZhbGlkYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHckQsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUNMLEtBQUssZUFBZSxFQUVwQixLQUFLLHdCQUF3QixFQUU5QixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEUsT0FBTyxFQUFFLEtBQUssaUJBQWlCLEVBQWtCLE1BQU0sNkJBQTZCLENBQUM7QUFHckYsWUFBWSxFQUFFLHdCQUF3QixFQUFFLENBQUM7QUFFekM7OztHQUdHO0FBQ0gsd0JBQWdCLHlDQUF5QyxDQUFDLEVBQ3hELFVBQVUsRUFDVixZQUFZLEVBQ2IsRUFBRSxtQkFBbUIsR0FBRyxlQUFlLEVBQUUsQ0FHekM7QUFFRDs7O0dBR0c7QUFDSCx3QkFBc0IsOEJBQThCLENBQ2xELG1CQUFtQixFQUFFLG1CQUFtQixFQUN4QyxVQUFVLEVBQUUsVUFBVSxFQUN0QixTQUFTLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGVBQWUsQ0FBQyxFQUNuRCxNQUFNLENBQUMsRUFBRSxNQUFNLEdBQ2QsT0FBTyxDQUFDLHdCQUF3QixDQUFDLENBc0ZuQyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/archiver/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EACL,KAAK,eAAe,EAEpB,KAAK,
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/archiver/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EACL,KAAK,eAAe,EAEpB,KAAK,wBAAwB,EAE9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,KAAK,iBAAiB,EAAkB,MAAM,6BAA6B,CAAC;AAGrF,YAAY,EAAE,wBAAwB,EAAE,CAAC;AAEzC;;;GAGG;AACH,wBAAgB,yCAAyC,CAAC,EACxD,UAAU,EACV,YAAY,EACb,EAAE,mBAAmB,GAAG,eAAe,EAAE,CAGzC;AAED;;;GAGG;AACH,wBAAsB,8BAA8B,CAClD,mBAAmB,EAAE,mBAAmB,EACxC,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,eAAe,CAAC,EACnD,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,wBAAwB,CAAC,CAsFnC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BlockNumber,
|
|
1
|
+
import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
2
2
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import type { L2Tips } from '@aztec/stdlib/block';
|
|
4
4
|
import type { L1ToL2MessageSource } from '@aztec/stdlib/messaging';
|
|
@@ -16,4 +16,4 @@ export declare class MockL1ToL2MessageSource implements L1ToL2MessageSource {
|
|
|
16
16
|
getBlockNumber(): Promise<BlockNumber>;
|
|
17
17
|
getL2Tips(): Promise<L2Tips>;
|
|
18
18
|
}
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja19sMV90b19sMl9tZXNzYWdlX3NvdXJjZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3QvbW9ja19sMV90b19sMl9tZXNzYWdlX3NvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFvQyxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRixPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRW5FOztHQUVHO0FBQ0gscUJBQWEsdUJBQXdCLFlBQVcsbUJBQW1CO0lBR3JELE9BQU8sQ0FBQyxXQUFXO0lBRi9CLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBcUM7SUFFbEUsWUFBb0IsV0FBVyxFQUFFLE1BQU0sRUFBSTtJQUVwQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFFBRXRFO0lBRU0sY0FBYyxDQUFDLFdBQVcsRUFBRSxNQUFNLFFBRXhDO0lBRUQsaUJBQWlCLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBRW5FO0lBRUQscUJBQXFCLENBQUMsY0FBYyxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUVyRTtJQUVELGNBQWMseUJBRWI7SUFFRCxTQUFTLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQWMzQjtDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock_l1_to_l2_message_source.d.ts","sourceRoot":"","sources":["../../src/test/mock_l1_to_l2_message_source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"mock_l1_to_l2_message_source.d.ts","sourceRoot":"","sources":["../../src/test/mock_l1_to_l2_message_source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAoC,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACpF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE;;GAEG;AACH,qBAAa,uBAAwB,YAAW,mBAAmB;IAGrD,OAAO,CAAC,WAAW;IAF/B,OAAO,CAAC,qBAAqB,CAAqC;IAElE,YAAoB,WAAW,EAAE,MAAM,EAAI;IAEpC,iBAAiB,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,EAAE,QAEtE;IAEM,cAAc,CAAC,WAAW,EAAE,MAAM,QAExC;IAED,iBAAiB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC,CAEnE;IAED,qBAAqB,CAAC,cAAc,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAErE;IAED,cAAc,yBAEb;IAED,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAc3B;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
1
|
+
import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
2
2
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
/**
|
|
4
4
|
* A mocked implementation of L1ToL2MessageSource to be used in tests.
|
|
@@ -26,12 +26,21 @@ import { Fr } from '@aztec/foundation/curves/bn254';
|
|
|
26
26
|
}
|
|
27
27
|
getL2Tips() {
|
|
28
28
|
const number = this.blockNumber;
|
|
29
|
-
const
|
|
29
|
+
const blockId = {
|
|
30
30
|
number: BlockNumber(number),
|
|
31
31
|
hash: new Fr(number).toString()
|
|
32
32
|
};
|
|
33
|
+
const checkpointId = {
|
|
34
|
+
number: CheckpointNumber(number),
|
|
35
|
+
hash: new Fr(number + 1).toString()
|
|
36
|
+
};
|
|
37
|
+
const tip = {
|
|
38
|
+
block: blockId,
|
|
39
|
+
checkpoint: checkpointId
|
|
40
|
+
};
|
|
33
41
|
return Promise.resolve({
|
|
34
|
-
|
|
42
|
+
proposed: blockId,
|
|
43
|
+
checkpointed: tip,
|
|
35
44
|
proven: tip,
|
|
36
45
|
finalized: tip
|
|
37
46
|
});
|
|
@@ -3,7 +3,7 @@ import { Fr } from '@aztec/foundation/curves/bn254';
|
|
|
3
3
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
4
4
|
import type { FunctionSelector } from '@aztec/stdlib/abi';
|
|
5
5
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
6
|
-
import { L2Block, L2BlockHash, L2BlockNew, type L2BlockSource, type L2Tips, PublishedL2Block, type
|
|
6
|
+
import { CheckpointedL2Block, L2Block, L2BlockHash, L2BlockNew, type L2BlockSource, type L2Tips, PublishedL2Block, type ValidateCheckpointResult } from '@aztec/stdlib/block';
|
|
7
7
|
import { type Checkpoint } from '@aztec/stdlib/checkpoint';
|
|
8
8
|
import type { ContractClassPublic, ContractDataSource, ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
9
9
|
import { type L1RollupConstants } from '@aztec/stdlib/epoch-helpers';
|
|
@@ -16,12 +16,14 @@ export declare class MockL2BlockSource implements L2BlockSource, ContractDataSou
|
|
|
16
16
|
protected l2Blocks: L2Block[];
|
|
17
17
|
private provenBlockNumber;
|
|
18
18
|
private finalizedBlockNumber;
|
|
19
|
+
private checkpointedBlockNumber;
|
|
19
20
|
private log;
|
|
20
21
|
createBlocks(numBlocks: number): Promise<void>;
|
|
21
22
|
addBlocks(blocks: L2Block[]): void;
|
|
22
23
|
removeBlocks(numBlocks: number): void;
|
|
23
24
|
setProvenBlockNumber(provenBlockNumber: number): void;
|
|
24
25
|
setFinalizedBlockNumber(finalizedBlockNumber: number): void;
|
|
26
|
+
setCheckpointedBlockNumber(checkpointedBlockNumber: number): void;
|
|
25
27
|
/**
|
|
26
28
|
* Method to fetch the rollup contract address at the base-layer.
|
|
27
29
|
* @returns The rollup address.
|
|
@@ -38,7 +40,8 @@ export declare class MockL2BlockSource implements L2BlockSource, ContractDataSou
|
|
|
38
40
|
*/
|
|
39
41
|
getBlockNumber(): Promise<BlockNumber>;
|
|
40
42
|
getProvenBlockNumber(): Promise<BlockNumber>;
|
|
41
|
-
getCheckpointedBlock(
|
|
43
|
+
getCheckpointedBlock(number: BlockNumber): Promise<CheckpointedL2Block | undefined>;
|
|
44
|
+
getCheckpointedBlocks(from: BlockNumber, limit: number, _proven?: boolean): Promise<CheckpointedL2Block[]>;
|
|
42
45
|
/**
|
|
43
46
|
* Gets an l2 block.
|
|
44
47
|
* @param number - The block number to return (inclusive).
|
|
@@ -61,6 +64,7 @@ export declare class MockL2BlockSource implements L2BlockSource, ContractDataSou
|
|
|
61
64
|
getPublishedCheckpoints(from: CheckpointNumber, limit: number): Promise<import("@aztec/stdlib/checkpoint").PublishedCheckpoint[]>;
|
|
62
65
|
getCheckpointByArchive(archive: Fr): Promise<Checkpoint | undefined>;
|
|
63
66
|
getPublishedBlocks(from: number, limit: number, proven?: boolean): Promise<PublishedL2Block[]>;
|
|
67
|
+
getL2BlocksNew(from: BlockNumber, limit: number, proven?: boolean): Promise<L2BlockNew[]>;
|
|
64
68
|
getPublishedBlockByHash(blockHash: Fr): Promise<PublishedL2Block | undefined>;
|
|
65
69
|
getPublishedBlockByArchive(archive: Fr): Promise<PublishedL2Block | undefined>;
|
|
66
70
|
getBlockHeaderByHash(blockHash: Fr): Promise<BlockHeader | undefined>;
|
|
@@ -113,6 +117,6 @@ export declare class MockL2BlockSource implements L2BlockSource, ContractDataSou
|
|
|
113
117
|
registerContractFunctionSignatures(_signatures: string[]): Promise<void>;
|
|
114
118
|
syncImmediate(): Promise<void>;
|
|
115
119
|
isPendingChainInvalid(): Promise<boolean>;
|
|
116
|
-
getPendingChainValidationStatus(): Promise<
|
|
120
|
+
getPendingChainValidationStatus(): Promise<ValidateCheckpointResult>;
|
|
117
121
|
}
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja19sMl9ibG9ja19zb3VyY2UuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L21vY2tfbDJfYmxvY2tfc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXpHLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFM0QsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLE9BQU8sRUFDUCxXQUFXLEVBQ1gsVUFBVSxFQUNWLEtBQUssYUFBYSxFQUNsQixLQUFLLE1BQU0sRUFDWCxnQkFBZ0IsRUFDaEIsS0FBSyx3QkFBd0IsRUFDOUIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsS0FBSyxVQUFVLEVBQW1CLE1BQU0sMEJBQTBCLENBQUM7QUFDNUUsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNuSCxPQUFPLEVBQTBCLEtBQUssaUJBQWlCLEVBQXdCLE1BQU0sNkJBQTZCLENBQUM7QUFDbkgsT0FBTyxFQUFFLEtBQUssV0FBVyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQVksTUFBTSxrQkFBa0IsQ0FBQztBQUNqRixPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVsRDs7R0FFRztBQUNILHFCQUFhLGlCQUFrQixZQUFXLGFBQWEsRUFBRSxrQkFBa0I7SUFDekUsU0FBUyxDQUFDLFFBQVEs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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock_l2_block_source.d.ts","sourceRoot":"","sources":["../../src/test/mock_l2_block_source.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAEzG,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EACL,OAAO,EACP,WAAW,EACX,UAAU,EACV,KAAK,aAAa,EAClB,KAAK,MAAM,EACX,gBAAgB,EAChB,KAAK,
|
|
1
|
+
{"version":3,"file":"mock_l2_block_source.d.ts","sourceRoot":"","sources":["../../src/test/mock_l2_block_source.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { GENESIS_ARCHIVE_ROOT } from '@aztec/constants';
|
|
2
2
|
import { DefaultL1ContractsConfig } from '@aztec/ethereum/config';
|
|
3
|
-
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
3
|
+
import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
4
4
|
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
5
5
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
6
6
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
7
7
|
import { createLogger } from '@aztec/foundation/log';
|
|
8
|
-
import { L2Block, L2BlockHash, PublishedL2Block } from '@aztec/stdlib/block';
|
|
8
|
+
import { CheckpointedL2Block, L2Block, L2BlockHash, PublishedL2Block } from '@aztec/stdlib/block';
|
|
9
9
|
import { L1PublishedData } from '@aztec/stdlib/checkpoint';
|
|
10
10
|
import { EmptyL1RollupConstants, getSlotRangeForEpoch } from '@aztec/stdlib/epoch-helpers';
|
|
11
11
|
import { TxReceipt, TxStatus } from '@aztec/stdlib/tx';
|
|
@@ -15,6 +15,7 @@ import { TxReceipt, TxStatus } from '@aztec/stdlib/tx';
|
|
|
15
15
|
l2Blocks = [];
|
|
16
16
|
provenBlockNumber = 0;
|
|
17
17
|
finalizedBlockNumber = 0;
|
|
18
|
+
checkpointedBlockNumber = 0;
|
|
18
19
|
log = createLogger('archiver:mock_l2_block_source');
|
|
19
20
|
async createBlocks(numBlocks) {
|
|
20
21
|
for(let i = 0; i < numBlocks; i++){
|
|
@@ -41,6 +42,9 @@ import { TxReceipt, TxStatus } from '@aztec/stdlib/tx';
|
|
|
41
42
|
}
|
|
42
43
|
this.finalizedBlockNumber = finalizedBlockNumber;
|
|
43
44
|
}
|
|
45
|
+
setCheckpointedBlockNumber(checkpointedBlockNumber) {
|
|
46
|
+
this.checkpointedBlockNumber = checkpointedBlockNumber;
|
|
47
|
+
}
|
|
44
48
|
/**
|
|
45
49
|
* Method to fetch the rollup contract address at the base-layer.
|
|
46
50
|
* @returns The rollup address.
|
|
@@ -62,9 +66,30 @@ import { TxReceipt, TxStatus } from '@aztec/stdlib/tx';
|
|
|
62
66
|
getProvenBlockNumber() {
|
|
63
67
|
return Promise.resolve(BlockNumber(this.provenBlockNumber));
|
|
64
68
|
}
|
|
65
|
-
getCheckpointedBlock(
|
|
66
|
-
|
|
67
|
-
|
|
69
|
+
getCheckpointedBlock(number) {
|
|
70
|
+
if (number > this.checkpointedBlockNumber) {
|
|
71
|
+
return Promise.resolve(undefined);
|
|
72
|
+
}
|
|
73
|
+
const block = this.l2Blocks[number - 1];
|
|
74
|
+
if (!block) {
|
|
75
|
+
return Promise.resolve(undefined);
|
|
76
|
+
}
|
|
77
|
+
const checkpointedBlock = new CheckpointedL2Block(CheckpointNumber(number), block.toL2Block(), new L1PublishedData(BigInt(number), BigInt(number), `0x${number.toString(16).padStart(64, '0')}`), []);
|
|
78
|
+
return Promise.resolve(checkpointedBlock);
|
|
79
|
+
}
|
|
80
|
+
async getCheckpointedBlocks(from, limit, _proven) {
|
|
81
|
+
const result = [];
|
|
82
|
+
for(let i = 0; i < limit; i++){
|
|
83
|
+
const blockNum = from + i;
|
|
84
|
+
if (blockNum > this.checkpointedBlockNumber) {
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
const block = await this.getCheckpointedBlock(BlockNumber(blockNum));
|
|
88
|
+
if (block) {
|
|
89
|
+
result.push(block);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return result;
|
|
68
93
|
}
|
|
69
94
|
/**
|
|
70
95
|
* Gets an l2 block.
|
|
@@ -105,6 +130,10 @@ import { TxReceipt, TxStatus } from '@aztec/stdlib/tx';
|
|
|
105
130
|
attestations: []
|
|
106
131
|
}));
|
|
107
132
|
}
|
|
133
|
+
async getL2BlocksNew(from, limit, proven) {
|
|
134
|
+
const blocks = await this.getBlocks(from, limit, proven);
|
|
135
|
+
return blocks.map((x)=>x.toL2Block());
|
|
136
|
+
}
|
|
108
137
|
async getPublishedBlockByHash(blockHash) {
|
|
109
138
|
for (const block of this.l2Blocks){
|
|
110
139
|
const hash = await block.hash();
|
|
@@ -199,27 +228,44 @@ import { TxReceipt, TxStatus } from '@aztec/stdlib/tx';
|
|
|
199
228
|
return undefined;
|
|
200
229
|
}
|
|
201
230
|
async getL2Tips() {
|
|
202
|
-
const [latest, proven, finalized] = [
|
|
231
|
+
const [latest, proven, finalized, checkpointed] = [
|
|
203
232
|
await this.getBlockNumber(),
|
|
204
233
|
await this.getProvenBlockNumber(),
|
|
205
|
-
this.finalizedBlockNumber
|
|
234
|
+
this.finalizedBlockNumber,
|
|
235
|
+
this.checkpointedBlockNumber
|
|
206
236
|
];
|
|
207
237
|
const latestBlock = this.l2Blocks[latest - 1];
|
|
208
238
|
const provenBlock = this.l2Blocks[proven - 1];
|
|
209
239
|
const finalizedBlock = this.l2Blocks[finalized - 1];
|
|
240
|
+
const checkpointedBlock = this.l2Blocks[checkpointed - 1];
|
|
241
|
+
const latestBlockId = {
|
|
242
|
+
number: BlockNumber(latest),
|
|
243
|
+
hash: (await latestBlock?.hash())?.toString()
|
|
244
|
+
};
|
|
245
|
+
const provenBlockId = {
|
|
246
|
+
number: BlockNumber(proven),
|
|
247
|
+
hash: (await provenBlock?.hash())?.toString()
|
|
248
|
+
};
|
|
249
|
+
const finalizedBlockId = {
|
|
250
|
+
number: BlockNumber(finalized),
|
|
251
|
+
hash: (await finalizedBlock?.hash())?.toString()
|
|
252
|
+
};
|
|
253
|
+
const checkpointedBlockId = {
|
|
254
|
+
number: BlockNumber(checkpointed),
|
|
255
|
+
hash: (await checkpointedBlock?.hash())?.toString()
|
|
256
|
+
};
|
|
257
|
+
const makeTipId = (blockId)=>({
|
|
258
|
+
block: blockId,
|
|
259
|
+
checkpoint: {
|
|
260
|
+
number: CheckpointNumber(blockId.number),
|
|
261
|
+
hash: blockId.hash
|
|
262
|
+
}
|
|
263
|
+
});
|
|
210
264
|
return {
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
proven: {
|
|
216
|
-
number: BlockNumber(proven),
|
|
217
|
-
hash: (await provenBlock?.hash())?.toString()
|
|
218
|
-
},
|
|
219
|
-
finalized: {
|
|
220
|
-
number: BlockNumber(finalized),
|
|
221
|
-
hash: (await finalizedBlock?.hash())?.toString()
|
|
222
|
-
}
|
|
265
|
+
proposed: latestBlockId,
|
|
266
|
+
checkpointed: makeTipId(checkpointedBlockId),
|
|
267
|
+
proven: makeTipId(provenBlockId),
|
|
268
|
+
finalized: makeTipId(finalizedBlockId)
|
|
223
269
|
};
|
|
224
270
|
}
|
|
225
271
|
getL2EpochNumber() {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/archiver",
|
|
3
|
-
"version": "0.0.1-commit.
|
|
3
|
+
"version": "0.0.1-commit.96bb3f7",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -66,18 +66,18 @@
|
|
|
66
66
|
]
|
|
67
67
|
},
|
|
68
68
|
"dependencies": {
|
|
69
|
-
"@aztec/blob-client": "0.0.1-commit.
|
|
70
|
-
"@aztec/blob-lib": "0.0.1-commit.
|
|
71
|
-
"@aztec/constants": "0.0.1-commit.
|
|
72
|
-
"@aztec/epoch-cache": "0.0.1-commit.
|
|
73
|
-
"@aztec/ethereum": "0.0.1-commit.
|
|
74
|
-
"@aztec/foundation": "0.0.1-commit.
|
|
75
|
-
"@aztec/kv-store": "0.0.1-commit.
|
|
76
|
-
"@aztec/l1-artifacts": "0.0.1-commit.
|
|
77
|
-
"@aztec/noir-protocol-circuits-types": "0.0.1-commit.
|
|
78
|
-
"@aztec/protocol-contracts": "0.0.1-commit.
|
|
79
|
-
"@aztec/stdlib": "0.0.1-commit.
|
|
80
|
-
"@aztec/telemetry-client": "0.0.1-commit.
|
|
69
|
+
"@aztec/blob-client": "0.0.1-commit.96bb3f7",
|
|
70
|
+
"@aztec/blob-lib": "0.0.1-commit.96bb3f7",
|
|
71
|
+
"@aztec/constants": "0.0.1-commit.96bb3f7",
|
|
72
|
+
"@aztec/epoch-cache": "0.0.1-commit.96bb3f7",
|
|
73
|
+
"@aztec/ethereum": "0.0.1-commit.96bb3f7",
|
|
74
|
+
"@aztec/foundation": "0.0.1-commit.96bb3f7",
|
|
75
|
+
"@aztec/kv-store": "0.0.1-commit.96bb3f7",
|
|
76
|
+
"@aztec/l1-artifacts": "0.0.1-commit.96bb3f7",
|
|
77
|
+
"@aztec/noir-protocol-circuits-types": "0.0.1-commit.96bb3f7",
|
|
78
|
+
"@aztec/protocol-contracts": "0.0.1-commit.96bb3f7",
|
|
79
|
+
"@aztec/stdlib": "0.0.1-commit.96bb3f7",
|
|
80
|
+
"@aztec/telemetry-client": "0.0.1-commit.96bb3f7",
|
|
81
81
|
"lodash.groupby": "^4.6.0",
|
|
82
82
|
"lodash.omit": "^4.5.0",
|
|
83
83
|
"tslib": "^2.5.0",
|