@aztec/archiver 3.0.0-nightly.20251214 → 3.0.0-nightly.20251217
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 +60 -36
- package/dest/archiver/archiver.d.ts.map +1 -1
- package/dest/archiver/archiver.js +366 -180
- package/dest/archiver/archiver_store.d.ts +79 -23
- 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 +1666 -244
- package/dest/archiver/errors.d.ts +25 -1
- package/dest/archiver/errors.d.ts.map +1 -1
- package/dest/archiver/errors.js +37 -0
- package/dest/archiver/index.d.ts +2 -2
- package/dest/archiver/index.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/block_store.d.ts +49 -17
- package/dest/archiver/kv_archiver_store/block_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/block_store.js +320 -83
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts +30 -28
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/kv_archiver_store.js +51 -27
- package/dest/archiver/kv_archiver_store/log_store.d.ts +5 -5
- package/dest/archiver/kv_archiver_store/log_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/log_store.js +39 -15
- package/dest/archiver/l1/bin/retrieve-calldata.js +2 -2
- package/dest/archiver/l1/calldata_retriever.d.ts +17 -3
- package/dest/archiver/l1/calldata_retriever.d.ts.map +1 -1
- package/dest/archiver/l1/calldata_retriever.js +75 -7
- package/dest/archiver/l1/data_retrieval.d.ts +11 -8
- package/dest/archiver/l1/data_retrieval.d.ts.map +1 -1
- package/dest/archiver/l1/data_retrieval.js +30 -17
- package/dest/archiver/structs/published.d.ts +1 -2
- package/dest/archiver/structs/published.d.ts.map +1 -1
- package/dest/test/mock_l2_block_source.d.ts +3 -2
- package/dest/test/mock_l2_block_source.d.ts.map +1 -1
- package/dest/test/mock_l2_block_source.js +8 -15
- package/package.json +13 -13
- package/src/archiver/archiver.ts +464 -222
- package/src/archiver/archiver_store.ts +88 -22
- package/src/archiver/archiver_store_test_suite.ts +1689 -226
- package/src/archiver/errors.ts +64 -0
- package/src/archiver/index.ts +1 -1
- package/src/archiver/kv_archiver_store/block_store.ts +435 -94
- package/src/archiver/kv_archiver_store/kv_archiver_store.ts +63 -39
- package/src/archiver/kv_archiver_store/log_store.ts +62 -25
- package/src/archiver/l1/bin/retrieve-calldata.ts +2 -2
- package/src/archiver/l1/calldata_retriever.ts +116 -6
- package/src/archiver/l1/data_retrieval.ts +34 -13
- package/src/archiver/structs/published.ts +0 -1
- package/src/test/mock_l2_block_source.ts +9 -16
|
@@ -3,8 +3,9 @@ import { Fr } from '@aztec/foundation/curves/bn254';
|
|
|
3
3
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
4
4
|
import { EmpireSlashingProposerAbi, GovernanceProposerAbi, RollupAbi, SlashFactoryAbi, TallySlashingProposerAbi } from '@aztec/l1-artifacts';
|
|
5
5
|
import { CommitteeAttestation } from '@aztec/stdlib/block';
|
|
6
|
+
import { ConsensusPayload, SignatureDomainSeparator } from '@aztec/stdlib/p2p';
|
|
6
7
|
import { CheckpointHeader } from '@aztec/stdlib/rollup';
|
|
7
|
-
import { decodeFunctionData, hexToBytes, multicall3Abi, toFunctionSelector } from 'viem';
|
|
8
|
+
import { decodeFunctionData, encodeAbiParameters, hexToBytes, keccak256, multicall3Abi, toFunctionSelector } from 'viem';
|
|
8
9
|
import { getSuccessfulCallsFromDebug } from './debug_tx.js';
|
|
9
10
|
import { getCallFromSpireProposer } from './spire_proposer.js';
|
|
10
11
|
import { getSuccessfulCallsFromTrace } from './trace_tx.js';
|
|
@@ -34,14 +35,19 @@ import { getSuccessfulCallsFromTrace } from './trace_tx.js';
|
|
|
34
35
|
* @param txHash - Hash of the tx that published it.
|
|
35
36
|
* @param blobHashes - Blob hashes for the checkpoint.
|
|
36
37
|
* @param checkpointNumber - Checkpoint number.
|
|
38
|
+
* @param expectedHashes - Optional expected hashes from the CheckpointProposed event for validation
|
|
37
39
|
* @returns Checkpoint header and metadata from the calldata, deserialized
|
|
38
|
-
*/ async getCheckpointFromRollupTx(txHash, blobHashes, checkpointNumber) {
|
|
39
|
-
this.logger.trace(`Fetching checkpoint ${checkpointNumber} from rollup tx ${txHash}
|
|
40
|
+
*/ async getCheckpointFromRollupTx(txHash, blobHashes, checkpointNumber, expectedHashes) {
|
|
41
|
+
this.logger.trace(`Fetching checkpoint ${checkpointNumber} from rollup tx ${txHash}`, {
|
|
42
|
+
willValidateHashes: !!expectedHashes.attestationsHash || !!expectedHashes.payloadDigest,
|
|
43
|
+
hasAttestationsHash: !!expectedHashes.attestationsHash,
|
|
44
|
+
hasPayloadDigest: !!expectedHashes.payloadDigest
|
|
45
|
+
});
|
|
40
46
|
const tx = await this.publicClient.getTransaction({
|
|
41
47
|
hash: txHash
|
|
42
48
|
});
|
|
43
49
|
const proposeCalldata = await this.getProposeCallData(tx, checkpointNumber);
|
|
44
|
-
return this.decodeAndBuildCheckpoint(proposeCalldata, tx.blockHash, checkpointNumber);
|
|
50
|
+
return this.decodeAndBuildCheckpoint(proposeCalldata, tx.blockHash, checkpointNumber, expectedHashes);
|
|
45
51
|
}
|
|
46
52
|
/** Gets rollup propose calldata from a transaction */ async getProposeCallData(tx, checkpointNumber) {
|
|
47
53
|
// Try to decode as multicall3 with validation
|
|
@@ -283,12 +289,37 @@ import { getSuccessfulCallsFromTrace } from './trace_tx.js';
|
|
|
283
289
|
return calls[0].input;
|
|
284
290
|
}
|
|
285
291
|
/**
|
|
292
|
+
* Extracts the CommitteeAttestations struct definition from RollupAbi.
|
|
293
|
+
* Finds the _attestations parameter by name in the propose function.
|
|
294
|
+
* Lazy-loaded to avoid issues during module initialization.
|
|
295
|
+
*/ getCommitteeAttestationsStructDef() {
|
|
296
|
+
const proposeFunction = RollupAbi.find((item)=>item.type === 'function' && item.name === 'propose');
|
|
297
|
+
if (!proposeFunction) {
|
|
298
|
+
throw new Error('propose function not found in RollupAbi');
|
|
299
|
+
}
|
|
300
|
+
// Find the _attestations parameter by name, not by index
|
|
301
|
+
const attestationsParam = proposeFunction.inputs.find((param)=>param.name === '_attestations');
|
|
302
|
+
if (!attestationsParam) {
|
|
303
|
+
throw new Error('_attestations parameter not found in propose function');
|
|
304
|
+
}
|
|
305
|
+
if (attestationsParam.type !== 'tuple') {
|
|
306
|
+
throw new Error(`Expected _attestations parameter to be a tuple, got ${attestationsParam.type}`);
|
|
307
|
+
}
|
|
308
|
+
// Extract the tuple components (struct fields)
|
|
309
|
+
const tupleParam = attestationsParam;
|
|
310
|
+
return {
|
|
311
|
+
type: 'tuple',
|
|
312
|
+
components: tupleParam.components || []
|
|
313
|
+
};
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
286
316
|
* Decodes propose calldata and builds the checkpoint header structure.
|
|
287
317
|
* @param proposeCalldata - The propose function calldata
|
|
288
318
|
* @param blockHash - The L1 block hash containing this transaction
|
|
289
319
|
* @param checkpointNumber - The checkpoint number
|
|
320
|
+
* @param expectedHashes - Optional expected hashes from the CheckpointProposed event for validation
|
|
290
321
|
* @returns The decoded checkpoint header and metadata
|
|
291
|
-
*/ decodeAndBuildCheckpoint(proposeCalldata, blockHash, checkpointNumber) {
|
|
322
|
+
*/ decodeAndBuildCheckpoint(proposeCalldata, blockHash, checkpointNumber, expectedHashes) {
|
|
292
323
|
const { functionName: rollupFunctionName, args: rollupArgs } = decodeFunctionData({
|
|
293
324
|
abi: RollupAbi,
|
|
294
325
|
data: proposeCalldata
|
|
@@ -298,6 +329,45 @@ import { getSuccessfulCallsFromTrace } from './trace_tx.js';
|
|
|
298
329
|
}
|
|
299
330
|
const [decodedArgs, packedAttestations, _signers, _attestationsAndSignersSignature, _blobInput] = rollupArgs;
|
|
300
331
|
const attestations = CommitteeAttestation.fromPacked(packedAttestations, this.targetCommitteeSize);
|
|
332
|
+
const header = CheckpointHeader.fromViem(decodedArgs.header);
|
|
333
|
+
const archiveRoot = new Fr(Buffer.from(hexToBytes(decodedArgs.archive)));
|
|
334
|
+
// Validate attestationsHash if provided (skip for backwards compatibility with older events)
|
|
335
|
+
if (expectedHashes.attestationsHash) {
|
|
336
|
+
// Compute attestationsHash: keccak256(abi.encode(CommitteeAttestations))
|
|
337
|
+
const computedAttestationsHash = keccak256(encodeAbiParameters([
|
|
338
|
+
this.getCommitteeAttestationsStructDef()
|
|
339
|
+
], [
|
|
340
|
+
packedAttestations
|
|
341
|
+
]));
|
|
342
|
+
// Compare as buffers to avoid case-sensitivity and string comparison issues
|
|
343
|
+
const computedBuffer = Buffer.from(hexToBytes(computedAttestationsHash));
|
|
344
|
+
const expectedBuffer = Buffer.from(hexToBytes(expectedHashes.attestationsHash));
|
|
345
|
+
if (!computedBuffer.equals(expectedBuffer)) {
|
|
346
|
+
throw new Error(`Attestations hash mismatch for checkpoint ${checkpointNumber}: ` + `computed=${computedAttestationsHash}, expected=${expectedHashes.attestationsHash}`);
|
|
347
|
+
}
|
|
348
|
+
this.logger.trace(`Validated attestationsHash for checkpoint ${checkpointNumber}`, {
|
|
349
|
+
computedAttestationsHash,
|
|
350
|
+
expectedAttestationsHash: expectedHashes.attestationsHash
|
|
351
|
+
});
|
|
352
|
+
}
|
|
353
|
+
// Validate payloadDigest if provided (skip for backwards compatibility with older events)
|
|
354
|
+
if (expectedHashes.payloadDigest) {
|
|
355
|
+
// Use ConsensusPayload to compute the digest - this ensures we match the exact logic
|
|
356
|
+
// used by the network for signing and verification
|
|
357
|
+
const consensusPayload = new ConsensusPayload(header, archiveRoot);
|
|
358
|
+
const payloadToSign = consensusPayload.getPayloadToSign(SignatureDomainSeparator.blockAttestation);
|
|
359
|
+
const computedPayloadDigest = keccak256(payloadToSign);
|
|
360
|
+
// Compare as buffers to avoid case-sensitivity and string comparison issues
|
|
361
|
+
const computedBuffer = Buffer.from(hexToBytes(computedPayloadDigest));
|
|
362
|
+
const expectedBuffer = Buffer.from(hexToBytes(expectedHashes.payloadDigest));
|
|
363
|
+
if (!computedBuffer.equals(expectedBuffer)) {
|
|
364
|
+
throw new Error(`Payload digest mismatch for checkpoint ${checkpointNumber}: ` + `computed=${computedPayloadDigest}, expected=${expectedHashes.payloadDigest}`);
|
|
365
|
+
}
|
|
366
|
+
this.logger.trace(`Validated payloadDigest for checkpoint ${checkpointNumber}`, {
|
|
367
|
+
computedPayloadDigest,
|
|
368
|
+
expectedPayloadDigest: expectedHashes.payloadDigest
|
|
369
|
+
});
|
|
370
|
+
}
|
|
301
371
|
this.logger.trace(`Decoded propose calldata`, {
|
|
302
372
|
checkpointNumber,
|
|
303
373
|
archive: decodedArgs.archive,
|
|
@@ -307,8 +377,6 @@ import { getSuccessfulCallsFromTrace } from './trace_tx.js';
|
|
|
307
377
|
packedAttestations,
|
|
308
378
|
targetCommitteeSize: this.targetCommitteeSize
|
|
309
379
|
});
|
|
310
|
-
const header = CheckpointHeader.fromViem(decodedArgs.header);
|
|
311
|
-
const archiveRoot = new Fr(Buffer.from(hexToBytes(decodedArgs.archive)));
|
|
312
380
|
return {
|
|
313
381
|
checkpointNumber,
|
|
314
382
|
archiveRoot,
|
|
@@ -7,14 +7,13 @@ import { EthAddress } from '@aztec/foundation/eth-address';
|
|
|
7
7
|
import { type Logger } from '@aztec/foundation/log';
|
|
8
8
|
import { type InboxAbi, RollupAbi } from '@aztec/l1-artifacts';
|
|
9
9
|
import { CommitteeAttestation } from '@aztec/stdlib/block';
|
|
10
|
-
import { PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
|
|
10
|
+
import { L1PublishedData, PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
|
|
11
11
|
import { Proof } from '@aztec/stdlib/proofs';
|
|
12
12
|
import { CheckpointHeader } from '@aztec/stdlib/rollup';
|
|
13
13
|
import { type GetContractReturnType, type Hex } from 'viem';
|
|
14
14
|
import type { ArchiverInstrumentation } from '../instrumentation.js';
|
|
15
15
|
import type { DataRetrieval } from '../structs/data_retrieval.js';
|
|
16
16
|
import type { InboxMessage } from '../structs/inbox_message.js';
|
|
17
|
-
import type { L1PublishedData } from '../structs/published.js';
|
|
18
17
|
export type RetrievedCheckpoint = {
|
|
19
18
|
checkpointNumber: CheckpointNumber;
|
|
20
19
|
archiveRoot: Fr;
|
|
@@ -28,21 +27,25 @@ export type RetrievedCheckpoint = {
|
|
|
28
27
|
export declare function retrievedToPublishedCheckpoint({ checkpointNumber, archiveRoot, header: checkpointHeader, checkpointBlobData, l1, chainId, version, attestations }: RetrievedCheckpoint): Promise<PublishedCheckpoint>;
|
|
29
28
|
/**
|
|
30
29
|
* Fetches new checkpoints.
|
|
30
|
+
* @param rollup - The rollup contract instance.
|
|
31
31
|
* @param publicClient - The viem public client to use for transaction retrieval.
|
|
32
32
|
* @param debugClient - The viem debug client to use for trace/debug RPC methods (optional).
|
|
33
|
-
* @param
|
|
33
|
+
* @param blobSinkClient - The blob sink client for fetching blob data.
|
|
34
34
|
* @param searchStartBlock - The block number to use for starting the search.
|
|
35
35
|
* @param searchEndBlock - The highest block number that we should search up to.
|
|
36
|
-
* @param
|
|
37
|
-
* @
|
|
36
|
+
* @param contractAddresses - The contract addresses (governanceProposerAddress, slashFactoryAddress, slashingProposerAddress).
|
|
37
|
+
* @param instrumentation - The archiver instrumentation instance.
|
|
38
|
+
* @param logger - The logger instance.
|
|
39
|
+
* @param isHistoricalSync - Whether this is a historical sync.
|
|
40
|
+
* @returns An array of retrieved checkpoints.
|
|
38
41
|
*/
|
|
39
42
|
export declare function retrieveCheckpointsFromRollup(rollup: GetContractReturnType<typeof RollupAbi, ViemPublicClient>, publicClient: ViemPublicClient, debugClient: ViemPublicDebugClient, blobSinkClient: BlobSinkClientInterface, searchStartBlock: bigint, searchEndBlock: bigint, contractAddresses: {
|
|
40
43
|
governanceProposerAddress: EthAddress;
|
|
41
44
|
slashFactoryAddress?: EthAddress;
|
|
42
45
|
slashingProposerAddress: EthAddress;
|
|
43
|
-
}, instrumentation: ArchiverInstrumentation, logger?: Logger): Promise<RetrievedCheckpoint[]>;
|
|
46
|
+
}, instrumentation: ArchiverInstrumentation, logger?: Logger, isHistoricalSync?: boolean): Promise<RetrievedCheckpoint[]>;
|
|
44
47
|
export declare function getL1BlockTime(publicClient: ViemPublicClient, blockNumber: bigint): Promise<bigint>;
|
|
45
|
-
export declare function getCheckpointBlobDataFromBlobs(blobSinkClient: BlobSinkClientInterface, blockHash: string, blobHashes: Buffer<ArrayBufferLike>[], checkpointNumber: CheckpointNumber, logger: Logger): Promise<CheckpointBlobData>;
|
|
48
|
+
export declare function getCheckpointBlobDataFromBlobs(blobSinkClient: BlobSinkClientInterface, blockHash: string, blobHashes: Buffer<ArrayBufferLike>[], checkpointNumber: CheckpointNumber, logger: Logger, isHistoricalSync: boolean): Promise<CheckpointBlobData>;
|
|
46
49
|
/** Given an L1 to L2 message, retrieves its corresponding event from the Inbox within a specific block range. */
|
|
47
50
|
export declare function retrieveL1ToL2Message(inbox: GetContractReturnType<typeof InboxAbi, ViemClient>, leaf: Fr, fromBlock: bigint, toBlock: bigint): Promise<InboxMessage | undefined>;
|
|
48
51
|
/**
|
|
@@ -84,4 +87,4 @@ export type SubmitEpochProof = {
|
|
|
84
87
|
* @returns Epoch proof metadata from the calldata, deserialized.
|
|
85
88
|
*/
|
|
86
89
|
export declare function getProofFromSubmitProofTx(publicClient: ViemPublicClient, txHash: `0x${string}`, expectedProverId: Fr): Promise<SubmitEpochProof>;
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YV9yZXRyaWV2YWwuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcmNoaXZlci9sMS9kYXRhX3JldHJpZXZhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsS0FBSyxrQkFBa0IsRUFJeEIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXZFLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWpHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRW5FLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxLQUFLLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRCxPQUFPLEVBQVEsb0JBQW9CLEVBQWMsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RSxPQUFPLEVBQWMsZUFBZSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUYsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBSXhELE9BQU8sRUFFTCxLQUFLLHFCQUFxQixFQUMxQixLQUFLLEdBQUcsRUFJVCxNQUFNLE1BQU0sQ0FBQztBQUdkLE9BQU8sS0FBSyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFD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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data_retrieval.d.ts","sourceRoot":"","sources":["../../../src/archiver/l1/data_retrieval.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,kBAAkB,EAIxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAEvE,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEjG,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,KAAK,QAAQ,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAQ,oBAAoB,EAAc,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAc,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"data_retrieval.d.ts","sourceRoot":"","sources":["../../../src/archiver/l1/data_retrieval.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import { EthAddress } from '@aztec/foundation/eth-address';
|
|
|
7
7
|
import { createLogger } from '@aztec/foundation/log';
|
|
8
8
|
import { RollupAbi } from '@aztec/l1-artifacts';
|
|
9
9
|
import { Body, L2BlockNew } from '@aztec/stdlib/block';
|
|
10
|
-
import { Checkpoint, PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
|
|
10
|
+
import { Checkpoint, L1PublishedData, PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
|
|
11
11
|
import { Proof } from '@aztec/stdlib/proofs';
|
|
12
12
|
import { AppendOnlyTreeSnapshot } from '@aztec/stdlib/trees';
|
|
13
13
|
import { BlockHeader, GlobalVariables, PartialStateReference, StateReference } from '@aztec/stdlib/tx';
|
|
@@ -78,14 +78,18 @@ export async function retrievedToPublishedCheckpoint({ checkpointNumber, archive
|
|
|
78
78
|
}
|
|
79
79
|
/**
|
|
80
80
|
* Fetches new checkpoints.
|
|
81
|
+
* @param rollup - The rollup contract instance.
|
|
81
82
|
* @param publicClient - The viem public client to use for transaction retrieval.
|
|
82
83
|
* @param debugClient - The viem debug client to use for trace/debug RPC methods (optional).
|
|
83
|
-
* @param
|
|
84
|
+
* @param blobSinkClient - The blob sink client for fetching blob data.
|
|
84
85
|
* @param searchStartBlock - The block number to use for starting the search.
|
|
85
86
|
* @param searchEndBlock - The highest block number that we should search up to.
|
|
86
|
-
* @param
|
|
87
|
-
* @
|
|
88
|
-
|
|
87
|
+
* @param contractAddresses - The contract addresses (governanceProposerAddress, slashFactoryAddress, slashingProposerAddress).
|
|
88
|
+
* @param instrumentation - The archiver instrumentation instance.
|
|
89
|
+
* @param logger - The logger instance.
|
|
90
|
+
* @param isHistoricalSync - Whether this is a historical sync.
|
|
91
|
+
* @returns An array of retrieved checkpoints.
|
|
92
|
+
*/ export async function retrieveCheckpointsFromRollup(rollup, publicClient, debugClient, blobSinkClient, searchStartBlock, searchEndBlock, contractAddresses, instrumentation, logger = createLogger('archiver'), isHistoricalSync = false) {
|
|
89
93
|
const retrievedCheckpoints = [];
|
|
90
94
|
let rollupConstants;
|
|
91
95
|
do {
|
|
@@ -113,7 +117,7 @@ export async function retrievedToPublishedCheckpoint({ checkpointNumber, archive
|
|
|
113
117
|
targetCommitteeSize: Number(targetCommitteeSize)
|
|
114
118
|
};
|
|
115
119
|
}
|
|
116
|
-
const newCheckpoints = await processCheckpointProposedLogs(rollup, publicClient, debugClient, blobSinkClient, checkpointProposedLogs, rollupConstants, contractAddresses, instrumentation, logger);
|
|
120
|
+
const newCheckpoints = await processCheckpointProposedLogs(rollup, publicClient, debugClient, blobSinkClient, checkpointProposedLogs, rollupConstants, contractAddresses, instrumentation, logger, isHistoricalSync);
|
|
117
121
|
retrievedCheckpoints.push(...newCheckpoints);
|
|
118
122
|
searchStartBlock = lastLog.blockNumber + 1n;
|
|
119
123
|
}while (searchStartBlock <= searchEndBlock)
|
|
@@ -122,12 +126,18 @@ export async function retrievedToPublishedCheckpoint({ checkpointNumber, archive
|
|
|
122
126
|
}
|
|
123
127
|
/**
|
|
124
128
|
* Processes newly received CheckpointProposed logs.
|
|
125
|
-
* @param rollup - The rollup contract
|
|
129
|
+
* @param rollup - The rollup contract instance.
|
|
126
130
|
* @param publicClient - The viem public client to use for transaction retrieval.
|
|
127
131
|
* @param debugClient - The viem debug client to use for trace/debug RPC methods (optional).
|
|
132
|
+
* @param blobSinkClient - The blob sink client for fetching blob data.
|
|
128
133
|
* @param logs - CheckpointProposed logs.
|
|
129
|
-
* @
|
|
130
|
-
|
|
134
|
+
* @param rollupConstants - The rollup constants (chainId, version, targetCommitteeSize).
|
|
135
|
+
* @param contractAddresses - The contract addresses (governanceProposerAddress, slashFactoryAddress, slashingProposerAddress).
|
|
136
|
+
* @param instrumentation - The archiver instrumentation instance.
|
|
137
|
+
* @param logger - The logger instance.
|
|
138
|
+
* @param isHistoricalSync - Whether this is a historical sync.
|
|
139
|
+
* @returns An array of retrieved checkpoints.
|
|
140
|
+
*/ async function processCheckpointProposedLogs(rollup, publicClient, debugClient, blobSinkClient, logs, { chainId, version, targetCommitteeSize }, contractAddresses, instrumentation, logger, isHistoricalSync) {
|
|
131
141
|
const retrievedCheckpoints = [];
|
|
132
142
|
const calldataRetriever = new CalldataRetriever(publicClient, debugClient, targetCommitteeSize, instrumentation, logger, {
|
|
133
143
|
...contractAddresses,
|
|
@@ -142,13 +152,14 @@ export async function retrievedToPublishedCheckpoint({ checkpointNumber, archive
|
|
|
142
152
|
const blobHashes = log.args.versionedBlobHashes.map((blobHash)=>Buffer.from(blobHash.slice(2), 'hex'));
|
|
143
153
|
// The value from the event and contract will match only if the checkpoint is in the chain.
|
|
144
154
|
if (archive === archiveFromChain) {
|
|
145
|
-
|
|
146
|
-
const
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
blockHash: log.blockHash,
|
|
150
|
-
timestamp: await getL1BlockTime(publicClient, log.blockNumber)
|
|
155
|
+
// Build expected hashes object (fields may be undefined for backwards compatibility with older events)
|
|
156
|
+
const expectedHashes = {
|
|
157
|
+
attestationsHash: log.args.attestationsHash,
|
|
158
|
+
payloadDigest: log.args.payloadDigest
|
|
151
159
|
};
|
|
160
|
+
const checkpoint = await calldataRetriever.getCheckpointFromRollupTx(log.transactionHash, blobHashes, checkpointNumber, expectedHashes);
|
|
161
|
+
const checkpointBlobData = await getCheckpointBlobDataFromBlobs(blobSinkClient, checkpoint.blockHash, blobHashes, checkpointNumber, logger, isHistoricalSync);
|
|
162
|
+
const l1 = new L1PublishedData(log.blockNumber, await getL1BlockTime(publicClient, log.blockNumber), log.blockHash);
|
|
152
163
|
retrievedCheckpoints.push({
|
|
153
164
|
...checkpoint,
|
|
154
165
|
checkpointBlobData,
|
|
@@ -178,8 +189,10 @@ export async function getL1BlockTime(publicClient, blockNumber) {
|
|
|
178
189
|
});
|
|
179
190
|
return block.timestamp;
|
|
180
191
|
}
|
|
181
|
-
export async function getCheckpointBlobDataFromBlobs(blobSinkClient, blockHash, blobHashes, checkpointNumber, logger) {
|
|
182
|
-
const blobBodies = await blobSinkClient.getBlobSidecar(blockHash, blobHashes
|
|
192
|
+
export async function getCheckpointBlobDataFromBlobs(blobSinkClient, blockHash, blobHashes, checkpointNumber, logger, isHistoricalSync) {
|
|
193
|
+
const blobBodies = await blobSinkClient.getBlobSidecar(blockHash, blobHashes, undefined, {
|
|
194
|
+
isHistoricalSync
|
|
195
|
+
});
|
|
183
196
|
if (blobBodies.length === 0) {
|
|
184
197
|
throw new NoBlobBodiesFoundError(checkpointNumber);
|
|
185
198
|
}
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
export type { PublishedL2Block } from '@aztec/stdlib/block';
|
|
2
1
|
export type { L1PublishedData, PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaGVkLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXJjaGl2ZXIvc3RydWN0cy9wdWJsaXNoZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"published.d.ts","sourceRoot":"","sources":["../../../src/archiver/structs/published.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"published.d.ts","sourceRoot":"","sources":["../../../src/archiver/structs/published.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -4,7 +4,7 @@ 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
6
|
import { L2Block, L2BlockHash, type L2BlockSource, type L2Tips, PublishedL2Block, type ValidateBlockResult } from '@aztec/stdlib/block';
|
|
7
|
-
import type
|
|
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';
|
|
10
10
|
import { type BlockHeader, TxHash, TxReceipt } from '@aztec/stdlib/tx';
|
|
@@ -38,6 +38,7 @@ export declare class MockL2BlockSource implements L2BlockSource, ContractDataSou
|
|
|
38
38
|
*/
|
|
39
39
|
getBlockNumber(): Promise<BlockNumber>;
|
|
40
40
|
getProvenBlockNumber(): Promise<BlockNumber>;
|
|
41
|
+
getCheckpointedBlock(_number: BlockNumber): Promise<undefined>;
|
|
41
42
|
/**
|
|
42
43
|
* Gets an l2 block.
|
|
43
44
|
* @param number - The block number to return (inclusive).
|
|
@@ -108,4 +109,4 @@ export declare class MockL2BlockSource implements L2BlockSource, ContractDataSou
|
|
|
108
109
|
isPendingChainInvalid(): Promise<boolean>;
|
|
109
110
|
getPendingChainValidationStatus(): Promise<ValidateBlockResult>;
|
|
110
111
|
}
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja19sMl9ibG9ja19zb3VyY2UuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L21vY2tfbDJfYmxvY2tfc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXpHLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFM0QsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQ0wsT0FBTyxFQUNQLFdBQVcsRUFDWCxLQUFLLGFBQWEsRUFDbEIsS0FBSyxNQUFNLEVBQ1gsZ0JBQWdCLEVBQ2hCLEtBQUssbUJBQW1CLEVBQ3pCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLEtBQUssVUFBVSxFQUFtQixNQUFNLDBCQUEwQixDQUFDO0FBQzVFLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLDJCQUEyQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbkgsT0FBTyxFQUEwQixLQUFLLGlCQUFpQixFQUF3QixNQUFNLDZCQUE2QixDQUFDO0FBQ25ILE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFZLE1BQU0sa0JBQWtCLENBQUM7QUFDakYsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFbEQ7O0dBRUc7QUFDSCxxQkFBYSxpQkFBa0IsWUFBVyxhQUFhLEVBQUUsa0JBQWtCO0lBQ3pFLFNBQVMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQU07SUFF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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,KAAK,aAAa,EAClB,KAAK,MAAM,EACX,gBAAgB,EAChB,KAAK,mBAAmB,EACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,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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"}
|
|
@@ -6,6 +6,7 @@ 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
8
|
import { L2Block, L2BlockHash, PublishedL2Block } from '@aztec/stdlib/block';
|
|
9
|
+
import { L1PublishedData } from '@aztec/stdlib/checkpoint';
|
|
9
10
|
import { EmptyL1RollupConstants, getSlotRangeForEpoch } from '@aztec/stdlib/epoch-helpers';
|
|
10
11
|
import { TxReceipt, TxStatus } from '@aztec/stdlib/tx';
|
|
11
12
|
/**
|
|
@@ -61,6 +62,10 @@ import { TxReceipt, TxStatus } from '@aztec/stdlib/tx';
|
|
|
61
62
|
getProvenBlockNumber() {
|
|
62
63
|
return Promise.resolve(BlockNumber(this.provenBlockNumber));
|
|
63
64
|
}
|
|
65
|
+
getCheckpointedBlock(_number) {
|
|
66
|
+
// In this mock, we don't track checkpointed blocks separately
|
|
67
|
+
return Promise.resolve(undefined);
|
|
68
|
+
}
|
|
64
69
|
/**
|
|
65
70
|
* Gets an l2 block.
|
|
66
71
|
* @param number - The block number to return (inclusive).
|
|
@@ -88,11 +93,7 @@ import { TxReceipt, TxStatus } from '@aztec/stdlib/tx';
|
|
|
88
93
|
const blocks = await this.getBlocks(from, limit, proven);
|
|
89
94
|
return blocks.map((block)=>PublishedL2Block.fromFields({
|
|
90
95
|
block,
|
|
91
|
-
l1:
|
|
92
|
-
blockNumber: BigInt(block.number),
|
|
93
|
-
blockHash: Buffer32.random().toString(),
|
|
94
|
-
timestamp: BigInt(block.number)
|
|
95
|
-
},
|
|
96
|
+
l1: new L1PublishedData(BigInt(block.number), BigInt(block.number), Buffer32.random().toString()),
|
|
96
97
|
attestations: []
|
|
97
98
|
}));
|
|
98
99
|
}
|
|
@@ -102,11 +103,7 @@ import { TxReceipt, TxStatus } from '@aztec/stdlib/tx';
|
|
|
102
103
|
if (hash.equals(blockHash)) {
|
|
103
104
|
return PublishedL2Block.fromFields({
|
|
104
105
|
block,
|
|
105
|
-
l1:
|
|
106
|
-
blockNumber: BigInt(block.number),
|
|
107
|
-
blockHash: Buffer32.random().toString(),
|
|
108
|
-
timestamp: BigInt(block.number)
|
|
109
|
-
},
|
|
106
|
+
l1: new L1PublishedData(BigInt(block.number), BigInt(block.number), Buffer32.random().toString()),
|
|
110
107
|
attestations: []
|
|
111
108
|
});
|
|
112
109
|
}
|
|
@@ -120,11 +117,7 @@ import { TxReceipt, TxStatus } from '@aztec/stdlib/tx';
|
|
|
120
117
|
}
|
|
121
118
|
return Promise.resolve(PublishedL2Block.fromFields({
|
|
122
119
|
block,
|
|
123
|
-
l1:
|
|
124
|
-
blockNumber: BigInt(block.number),
|
|
125
|
-
blockHash: Buffer32.random().toString(),
|
|
126
|
-
timestamp: BigInt(block.number)
|
|
127
|
-
},
|
|
120
|
+
l1: new L1PublishedData(BigInt(block.number), BigInt(block.number), Buffer32.random().toString()),
|
|
128
121
|
attestations: []
|
|
129
122
|
}));
|
|
130
123
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/archiver",
|
|
3
|
-
"version": "3.0.0-nightly.
|
|
3
|
+
"version": "3.0.0-nightly.20251217",
|
|
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-lib": "3.0.0-nightly.
|
|
70
|
-
"@aztec/blob-sink": "3.0.0-nightly.
|
|
71
|
-
"@aztec/constants": "3.0.0-nightly.
|
|
72
|
-
"@aztec/epoch-cache": "3.0.0-nightly.
|
|
73
|
-
"@aztec/ethereum": "3.0.0-nightly.
|
|
74
|
-
"@aztec/foundation": "3.0.0-nightly.
|
|
75
|
-
"@aztec/kv-store": "3.0.0-nightly.
|
|
76
|
-
"@aztec/l1-artifacts": "3.0.0-nightly.
|
|
77
|
-
"@aztec/noir-protocol-circuits-types": "3.0.0-nightly.
|
|
78
|
-
"@aztec/protocol-contracts": "3.0.0-nightly.
|
|
79
|
-
"@aztec/stdlib": "3.0.0-nightly.
|
|
80
|
-
"@aztec/telemetry-client": "3.0.0-nightly.
|
|
69
|
+
"@aztec/blob-lib": "3.0.0-nightly.20251217",
|
|
70
|
+
"@aztec/blob-sink": "3.0.0-nightly.20251217",
|
|
71
|
+
"@aztec/constants": "3.0.0-nightly.20251217",
|
|
72
|
+
"@aztec/epoch-cache": "3.0.0-nightly.20251217",
|
|
73
|
+
"@aztec/ethereum": "3.0.0-nightly.20251217",
|
|
74
|
+
"@aztec/foundation": "3.0.0-nightly.20251217",
|
|
75
|
+
"@aztec/kv-store": "3.0.0-nightly.20251217",
|
|
76
|
+
"@aztec/l1-artifacts": "3.0.0-nightly.20251217",
|
|
77
|
+
"@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20251217",
|
|
78
|
+
"@aztec/protocol-contracts": "3.0.0-nightly.20251217",
|
|
79
|
+
"@aztec/stdlib": "3.0.0-nightly.20251217",
|
|
80
|
+
"@aztec/telemetry-client": "3.0.0-nightly.20251217",
|
|
81
81
|
"lodash.groupby": "^4.6.0",
|
|
82
82
|
"lodash.omit": "^4.5.0",
|
|
83
83
|
"tslib": "^2.5.0",
|