@aztec/archiver 0.0.1-commit.b655e406 → 0.0.1-commit.fce3e4f

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.
Files changed (61) hide show
  1. package/dest/archiver/archiver.d.ts +30 -20
  2. package/dest/archiver/archiver.d.ts.map +1 -1
  3. package/dest/archiver/archiver.js +294 -208
  4. package/dest/archiver/archiver_store.d.ts +1 -1
  5. package/dest/archiver/archiver_store_test_suite.d.ts +1 -1
  6. package/dest/archiver/archiver_store_test_suite.d.ts.map +1 -1
  7. package/dest/archiver/archiver_store_test_suite.js +5 -4
  8. package/dest/archiver/config.d.ts +1 -1
  9. package/dest/archiver/config.d.ts.map +1 -1
  10. package/dest/archiver/config.js +5 -0
  11. package/dest/archiver/data_retrieval.d.ts +17 -17
  12. package/dest/archiver/data_retrieval.d.ts.map +1 -1
  13. package/dest/archiver/data_retrieval.js +110 -86
  14. package/dest/archiver/errors.d.ts +1 -1
  15. package/dest/archiver/errors.d.ts.map +1 -1
  16. package/dest/archiver/index.d.ts +1 -1
  17. package/dest/archiver/instrumentation.d.ts +3 -3
  18. package/dest/archiver/instrumentation.d.ts.map +1 -1
  19. package/dest/archiver/kv_archiver_store/block_store.d.ts +1 -1
  20. package/dest/archiver/kv_archiver_store/block_store.d.ts.map +1 -1
  21. package/dest/archiver/kv_archiver_store/contract_class_store.d.ts +1 -1
  22. package/dest/archiver/kv_archiver_store/contract_class_store.d.ts.map +1 -1
  23. package/dest/archiver/kv_archiver_store/contract_instance_store.d.ts +1 -1
  24. package/dest/archiver/kv_archiver_store/contract_instance_store.d.ts.map +1 -1
  25. package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts +2 -2
  26. package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts.map +1 -1
  27. package/dest/archiver/kv_archiver_store/log_store.d.ts +1 -1
  28. package/dest/archiver/kv_archiver_store/log_store.d.ts.map +1 -1
  29. package/dest/archiver/kv_archiver_store/message_store.d.ts +1 -1
  30. package/dest/archiver/kv_archiver_store/message_store.d.ts.map +1 -1
  31. package/dest/archiver/structs/data_retrieval.d.ts +1 -1
  32. package/dest/archiver/structs/inbox_message.d.ts +1 -1
  33. package/dest/archiver/structs/published.d.ts +3 -2
  34. package/dest/archiver/structs/published.d.ts.map +1 -1
  35. package/dest/archiver/validation.d.ts +10 -4
  36. package/dest/archiver/validation.d.ts.map +1 -1
  37. package/dest/archiver/validation.js +29 -21
  38. package/dest/factory.d.ts +1 -1
  39. package/dest/index.d.ts +2 -2
  40. package/dest/index.d.ts.map +1 -1
  41. package/dest/index.js +1 -1
  42. package/dest/rpc/index.d.ts +2 -2
  43. package/dest/test/index.d.ts +1 -1
  44. package/dest/test/mock_archiver.d.ts +1 -1
  45. package/dest/test/mock_archiver.d.ts.map +1 -1
  46. package/dest/test/mock_l1_to_l2_message_source.d.ts +1 -1
  47. package/dest/test/mock_l1_to_l2_message_source.d.ts.map +1 -1
  48. package/dest/test/mock_l2_block_source.d.ts +7 -6
  49. package/dest/test/mock_l2_block_source.d.ts.map +1 -1
  50. package/dest/test/mock_l2_block_source.js +1 -1
  51. package/dest/test/mock_structs.d.ts +1 -1
  52. package/package.json +17 -17
  53. package/src/archiver/archiver.ts +380 -244
  54. package/src/archiver/archiver_store_test_suite.ts +5 -4
  55. package/src/archiver/config.ts +5 -0
  56. package/src/archiver/data_retrieval.ts +156 -125
  57. package/src/archiver/instrumentation.ts +2 -2
  58. package/src/archiver/structs/published.ts +2 -1
  59. package/src/archiver/validation.ts +52 -27
  60. package/src/index.ts +1 -1
  61. package/src/test/mock_l2_block_source.ts +7 -6
@@ -252,4 +252,4 @@ export interface ArchiverDataStore {
252
252
  /** Sets the last synced validation status of the pending chain. */
253
253
  setPendingChainValidationStatus(status: ValidateBlockResult | undefined): Promise<void>;
254
254
  }
255
- //# sourceMappingURL=archiver_store.d.ts.map
255
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjaGl2ZXJfc3RvcmUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcmNoaXZlci9hcmNoaXZlcl9zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sS0FBSyxFQUNWLG1CQUFtQixFQUNuQixpQ0FBaUMsRUFDakMsMkJBQTJCLEVBQzNCLDRDQUE0QyxFQUM1QyxrQ0FBa0MsRUFDbkMsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEtBQUssRUFBRSw0QkFBNEIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzNHLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDL0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxLQUFLLGVBQWUsRUFBRSxLQUFLLE1BQU0sRUFBRSxLQUFLLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xHLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWxELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7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
@@ -5,4 +5,4 @@ import type { ArchiverDataStore } from './archiver_store.js';
5
5
  * @param getStore - Returns an instance of a store that's already been initialized.
6
6
  */
7
7
  export declare function describeArchiverDataStore(testName: string, getStore: () => ArchiverDataStore | Promise<ArchiverDataStore>): void;
8
- //# sourceMappingURL=archiver_store_test_suite.d.ts.map
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjaGl2ZXJfc3RvcmVfdGVzdF9zdWl0ZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FyY2hpdmVyL2FyY2hpdmVyX3N0b3JlX3Rlc3Rfc3VpdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBcUNBLE9BQU8sNEJBQTRCLENBQUM7QUFJcEMsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQXdCLE1BQU0scUJBQXFCLENBQUM7QUFLbkY7OztHQUdHO0FBQ0gsd0JBQWdCLHlCQUF5QixDQUN2QyxRQUFRLEVBQUUsTUFBTSxFQUNoQixRQUFRLEVBQUUsTUFBTSxpQkFBaUIsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsUUEyckMvRCJ9
@@ -1 +1 @@
1
- {"version":3,"file":"archiver_store_test_suite.d.ts","sourceRoot":"","sources":["../../src/archiver/archiver_store_test_suite.ts"],"names":[],"mappings":"AAoCA,OAAO,4BAA4B,CAAC;AAIpC,OAAO,KAAK,EAAE,iBAAiB,EAAwB,MAAM,qBAAqB,CAAC;AAKnF;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,QA2rC/D"}
1
+ {"version":3,"file":"archiver_store_test_suite.d.ts","sourceRoot":"","sources":["../../src/archiver/archiver_store_test_suite.ts"],"names":[],"mappings":"AAqCA,OAAO,4BAA4B,CAAC;AAIpC,OAAO,KAAK,EAAE,iBAAiB,EAAwB,MAAM,qBAAqB,CAAC;AAKnF;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,QA2rC/D"}
@@ -1,5 +1,6 @@
1
1
  import { INITIAL_L2_BLOCK_NUM, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, PRIVATE_LOG_SIZE_IN_FIELDS } from '@aztec/constants';
2
2
  import { makeTuple } from '@aztec/foundation/array';
3
+ import { EpochNumber } from '@aztec/foundation/branded-types';
3
4
  import { Buffer16, Buffer32 } from '@aztec/foundation/buffer';
4
5
  import { times, timesParallel } from '@aztec/foundation/collection';
5
6
  import { randomInt } from '@aztec/foundation/crypto';
@@ -1207,7 +1208,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
1207
1208
  EthAddress.random(),
1208
1209
  EthAddress.random()
1209
1210
  ],
1210
- epoch: 123n,
1211
+ epoch: EpochNumber(123),
1211
1212
  seed: 456n,
1212
1213
  attestors: [
1213
1214
  EthAddress.random()
@@ -1231,7 +1232,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
1231
1232
  attestors: [
1232
1233
  EthAddress.random()
1233
1234
  ],
1234
- epoch: 789n,
1235
+ epoch: EpochNumber(789),
1235
1236
  seed: 101n,
1236
1237
  attestations: [
1237
1238
  CommitteeAttestation.random()
@@ -1253,7 +1254,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
1253
1254
  committee: [
1254
1255
  EthAddress.random()
1255
1256
  ],
1256
- epoch: 999n,
1257
+ epoch: EpochNumber(999),
1257
1258
  seed: 888n,
1258
1259
  attestors: [
1259
1260
  EthAddress.random()
@@ -1273,7 +1274,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
1273
1274
  valid: false,
1274
1275
  block: randomBlockInfo(4),
1275
1276
  committee: [],
1276
- epoch: 0n,
1277
+ epoch: EpochNumber(0),
1277
1278
  seed: 0n,
1278
1279
  attestors: [],
1279
1280
  attestations: [],
@@ -18,4 +18,4 @@ export declare const archiverConfigMappings: ConfigMappingsType<ArchiverConfig>;
18
18
  * @returns The archiver configuration.
19
19
  */
20
20
  export declare function getArchiverConfigFromEnv(): ArchiverConfig;
21
- //# sourceMappingURL=config.d.ts.map
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXJjaGl2ZXIvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLGNBQWMsRUFBeUIsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRixPQUFPLEVBQ0wsS0FBSyxpQkFBaUIsRUFDdEIsS0FBSyxjQUFjLEVBSXBCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUNMLEtBQUssa0JBQWtCLEVBSXhCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLEtBQUssV0FBVyxFQUF1QixNQUFNLHNCQUFzQixDQUFDO0FBQzdFLE9BQU8sS0FBSyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFOUU7Ozs7OztHQU1HO0FBQ0gsTUFBTSxNQUFNLGNBQWMsR0FBRyxzQkFBc0IsR0FBRyxjQUFjLEdBQUcsaUJBQWlCLEdBQUcsY0FBYyxHQUFHLFdBQVcsQ0FBQztBQUV4SCxlQUFPLE1BQU0sc0JBQXNCLEVBQUUsa0JBQWtCLENBQUMsY0FBYyxDQTJDckUsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCx3QkFBZ0Isd0JBQXdCLElBQUksY0FBYyxDQUV6RCJ9
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/archiver/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAyB,MAAM,yBAAyB,CAAC;AACrF,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,cAAc,EAIpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,kBAAkB,EAIxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,KAAK,WAAW,EAAuB,MAAM,sBAAsB,CAAC;AAC7E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAE9E;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,sBAAsB,GAAG,cAAc,GAAG,iBAAiB,GAAG,cAAc,GAAG,WAAW,CAAC;AAExH,eAAO,MAAM,sBAAsB,EAAE,kBAAkB,CAAC,cAAc,CAsCrE,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,wBAAwB,IAAI,cAAc,CAEzD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/archiver/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAyB,MAAM,yBAAyB,CAAC;AACrF,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,cAAc,EAIpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,kBAAkB,EAIxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,KAAK,WAAW,EAAuB,MAAM,sBAAsB,CAAC;AAC7E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAE9E;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,sBAAsB,GAAG,cAAc,GAAG,iBAAiB,GAAG,cAAc,GAAG,WAAW,CAAC;AAExH,eAAO,MAAM,sBAAsB,EAAE,kBAAkB,CAAC,cAAc,CA2CrE,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,wBAAwB,IAAI,cAAc,CAEzD"}
@@ -28,6 +28,11 @@ export const archiverConfigMappings = {
28
28
  description: 'Whether to skip validating block attestations (use only for testing).',
29
29
  ...booleanConfigHelper(false)
30
30
  },
31
+ maxAllowedEthClientDriftSeconds: {
32
+ env: 'MAX_ALLOWED_ETH_CLIENT_DRIFT_SECONDS',
33
+ description: 'Maximum allowed drift in seconds between the Ethereum client and current time.',
34
+ ...numberConfigHelper(300)
35
+ },
31
36
  ...chainConfigMappings,
32
37
  ...l1ReaderConfigMappings,
33
38
  viemPollingIntervalMS: {
@@ -1,31 +1,31 @@
1
+ import { type CheckpointBlobData } from '@aztec/blob-lib';
1
2
  import type { BlobSinkClientInterface } from '@aztec/blob-sink/client';
2
3
  import type { ViemClient, ViemPublicClient } from '@aztec/ethereum';
3
4
  import type { EthAddress } from '@aztec/foundation/eth-address';
4
5
  import { Fr } from '@aztec/foundation/fields';
5
6
  import { type Logger } from '@aztec/foundation/log';
6
7
  import { type InboxAbi, RollupAbi } from '@aztec/l1-artifacts';
7
- import { CommitteeAttestation, PublishedL2Block } from '@aztec/stdlib/block';
8
+ import { CommitteeAttestation } from '@aztec/stdlib/block';
9
+ import { PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
8
10
  import { Proof } from '@aztec/stdlib/proofs';
9
11
  import { CheckpointHeader } from '@aztec/stdlib/rollup';
10
- import { StateReference } from '@aztec/stdlib/tx';
11
12
  import { type GetContractReturnType, type Hex } from 'viem';
12
13
  import type { DataRetrieval } from './structs/data_retrieval.js';
13
14
  import type { InboxMessage } from './structs/inbox_message.js';
14
15
  import type { L1PublishedData } from './structs/published.js';
15
- export type RetrievedL2Block = {
16
- l2BlockNumber: number;
16
+ export type RetrievedCheckpoint = {
17
+ checkpointNumber: number;
17
18
  archiveRoot: Fr;
18
- stateReference: StateReference;
19
19
  header: CheckpointHeader;
20
- blobFields: Fr[];
20
+ checkpointBlobData: CheckpointBlobData;
21
21
  l1: L1PublishedData;
22
22
  chainId: Fr;
23
23
  version: Fr;
24
24
  attestations: CommitteeAttestation[];
25
25
  };
26
- export declare function retrievedBlockToPublishedL2Block(retrievedBlock: RetrievedL2Block): Promise<PublishedL2Block>;
26
+ export declare function retrievedToPublishedCheckpoint({ checkpointNumber, archiveRoot, header: checkpointHeader, checkpointBlobData, l1, chainId, version, attestations }: RetrievedCheckpoint): Promise<PublishedCheckpoint>;
27
27
  /**
28
- * Fetches new L2 blocks.
28
+ * Fetches new checkpoints.
29
29
  * @param publicClient - The viem public client to use for transaction retrieval.
30
30
  * @param rollupAddress - The address of the rollup contract.
31
31
  * @param searchStartBlock - The block number to use for starting the search.
@@ -33,7 +33,7 @@ export declare function retrievedBlockToPublishedL2Block(retrievedBlock: Retriev
33
33
  * @param expectedNextL2BlockNum - The next L2 block number that we expect to find.
34
34
  * @returns An array of block; as well as the next eth block to search from.
35
35
  */
36
- export declare function retrieveBlocksFromRollup(rollup: GetContractReturnType<typeof RollupAbi, ViemPublicClient>, publicClient: ViemPublicClient, blobSinkClient: BlobSinkClientInterface, searchStartBlock: bigint, searchEndBlock: bigint, logger?: Logger): Promise<RetrievedL2Block[]>;
36
+ export declare function retrieveCheckpointsFromRollup(rollup: GetContractReturnType<typeof RollupAbi, ViemPublicClient>, publicClient: ViemPublicClient, blobSinkClient: BlobSinkClientInterface, searchStartBlock: bigint, searchEndBlock: bigint, logger?: Logger): Promise<RetrievedCheckpoint[]>;
37
37
  export declare function getL1BlockTime(publicClient: ViemPublicClient, blockNumber: bigint): Promise<bigint>;
38
38
  /** Given an L1 to L2 message, retrieves its corresponding event from the Inbox within a specific block range. */
39
39
  export declare function retrieveL1ToL2Message(inbox: GetContractReturnType<typeof InboxAbi, ViemClient>, leaf: Fr, fromBlock: bigint, toBlock: bigint): Promise<InboxMessage | undefined>;
@@ -50,7 +50,7 @@ export declare function retrieveL1ToL2Messages(inbox: GetContractReturnType<type
50
50
  /** Retrieves L2ProofVerified events from the rollup contract. */
51
51
  export declare function retrieveL2ProofVerifiedEvents(publicClient: ViemPublicClient, rollupAddress: EthAddress, searchStartBlock: bigint, searchEndBlock?: bigint): Promise<{
52
52
  l1BlockNumber: bigint;
53
- l2BlockNumber: number;
53
+ checkpointNumber: number;
54
54
  proverId: Fr;
55
55
  txHash: Hex;
56
56
  }[]>;
@@ -58,22 +58,22 @@ export declare function retrieveL2ProofVerifiedEvents(publicClient: ViemPublicCl
58
58
  export declare function retrieveL2ProofsFromRollup(publicClient: ViemPublicClient, rollupAddress: EthAddress, searchStartBlock: bigint, searchEndBlock?: bigint): Promise<DataRetrieval<{
59
59
  proof: Proof;
60
60
  proverId: Fr;
61
- l2BlockNumber: number;
61
+ checkpointNumber: number;
62
62
  txHash: `0x${string}`;
63
63
  }>>;
64
- export type SubmitBlockProof = {
64
+ export type SubmitEpochProof = {
65
65
  archiveRoot: Fr;
66
66
  proverId: Fr;
67
67
  proof: Proof;
68
68
  };
69
69
  /**
70
- * Gets block metadata (header and archive snapshot) from the calldata of an L1 transaction.
70
+ * Gets epoch proof metadata (archive root and proof) from the calldata of an L1 transaction.
71
71
  * Assumes that the block was published from an EOA.
72
72
  * TODO: Add retries and error management.
73
73
  * @param publicClient - The viem public client to use for transaction retrieval.
74
74
  * @param txHash - Hash of the tx that published it.
75
- * @param l2BlockNum - L2 block number.
76
- * @returns L2 block metadata (header and archive) from the calldata, deserialized
75
+ * @param expectedProverId - Expected prover ID.
76
+ * @returns Epoch proof metadata from the calldata, deserialized.
77
77
  */
78
- export declare function getProofFromSubmitProofTx(publicClient: ViemPublicClient, txHash: `0x${string}`, expectedProverId: Fr): Promise<SubmitBlockProof>;
79
- //# sourceMappingURL=data_retrieval.d.ts.map
78
+ export declare function getProofFromSubmitProofTx(publicClient: ViemPublicClient, txHash: `0x${string}`, expectedProverId: Fr): Promise<SubmitEpochProof>;
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YV9yZXRyaWV2YWwuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcmNoaXZlci9kYXRhX3JldHJpZXZhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsS0FBSyxrQkFBa0IsRUFJeEIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZFLE9BQU8sS0FBSyxFQUVWLFVBQVUsRUFHVixnQkFBZ0IsRUFDakIsTUFBTSxpQkFBaUIsQ0FBQztBQUd6QixPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVoRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUMsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxLQUFLLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRCxPQUFPLEVBQVEsb0JBQW9CLEVBQWMsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RSxPQUFPLEVBQWMsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFJeEQsT0FBTyxFQUVMLEtBQUsscUJBQXFCLEVBQzFCLEtBQUssR0FBRyxFQUtULE1BQU0sTUFBTSxDQUFDO0FBR2QsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFOUQsTUFBTSxNQUFNLG1CQUFtQixH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
@@ -1 +1 @@
1
- {"version":3,"file":"data_retrieval.d.ts","sourceRoot":"","sources":["../../src/archiver/data_retrieval.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data_retrieval.d.ts","sourceRoot":"","sources":["../../src/archiver/data_retrieval.ts"],"names":[],"mappings":"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"}
@@ -1,78 +1,103 @@
1
- import { BlobDeserializationError, SpongeBlob, getBlobFieldsInCheckpoint } from '@aztec/blob-lib';
1
+ import { BlobDeserializationError, SpongeBlob, decodeCheckpointBlobDataFromBlobs, encodeBlockBlobData } from '@aztec/blob-lib';
2
2
  import { asyncPool } from '@aztec/foundation/async-pool';
3
3
  import { Buffer16, Buffer32 } from '@aztec/foundation/buffer';
4
4
  import { Fr } from '@aztec/foundation/fields';
5
5
  import { createLogger } from '@aztec/foundation/log';
6
6
  import { RollupAbi } from '@aztec/l1-artifacts';
7
- import { Body, CommitteeAttestation, L2Block, L2BlockHeader, PublishedL2Block } from '@aztec/stdlib/block';
7
+ import { Body, CommitteeAttestation, L2BlockNew } from '@aztec/stdlib/block';
8
+ import { Checkpoint, PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
8
9
  import { Proof } from '@aztec/stdlib/proofs';
9
10
  import { CheckpointHeader } from '@aztec/stdlib/rollup';
10
11
  import { AppendOnlyTreeSnapshot } from '@aztec/stdlib/trees';
11
- import { GlobalVariables, StateReference } from '@aztec/stdlib/tx';
12
+ import { BlockHeader, GlobalVariables, PartialStateReference, StateReference } from '@aztec/stdlib/tx';
12
13
  import { decodeFunctionData, getAbiItem, hexToBytes, multicall3Abi } from 'viem';
13
14
  import { NoBlobBodiesFoundError } from './errors.js';
14
- export async function retrievedBlockToPublishedL2Block(retrievedBlock) {
15
- const { l2BlockNumber, archiveRoot, stateReference, header: checkpointHeader, blobFields, l1, chainId, version, attestations } = retrievedBlock;
16
- const archive = new AppendOnlyTreeSnapshot(archiveRoot, l2BlockNumber + 1);
17
- const globalVariables = GlobalVariables.from({
18
- chainId,
19
- version,
20
- blockNumber: l2BlockNumber,
21
- slotNumber: checkpointHeader.slotNumber,
22
- timestamp: checkpointHeader.timestamp,
23
- coinbase: checkpointHeader.coinbase,
24
- feeRecipient: checkpointHeader.feeRecipient,
25
- gasFees: checkpointHeader.gasFees
26
- });
27
- // TODO(#17027)
28
- // This works when there's only one block in the checkpoint.
29
- // If there's more than one block, we need to build the spongeBlob from the endSpongeBlob of the previous block.
30
- const spongeBlob = await SpongeBlob.init(blobFields.length);
31
- // Skip the first field which is the checkpoint prefix indicating the number of total blob fields in a checkpoint.
32
- const blockBlobFields = blobFields.slice(1);
33
- await spongeBlob.absorb(blockBlobFields);
34
- const spongeBlobHash = await spongeBlob.squeeze();
35
- const body = Body.fromBlobFields(blockBlobFields);
36
- const header = L2BlockHeader.from({
37
- lastArchive: new AppendOnlyTreeSnapshot(checkpointHeader.lastArchiveRoot, l2BlockNumber),
38
- contentCommitment: checkpointHeader.contentCommitment,
39
- state: stateReference,
40
- globalVariables,
41
- totalFees: body.txEffects.reduce((accum, txEffect)=>accum.add(txEffect.transactionFee), Fr.ZERO),
42
- totalManaUsed: checkpointHeader.totalManaUsed,
43
- spongeBlobHash
15
+ export async function retrievedToPublishedCheckpoint({ checkpointNumber, archiveRoot, header: checkpointHeader, checkpointBlobData, l1, chainId, version, attestations }) {
16
+ const { blocks: blocksBlobData } = checkpointBlobData;
17
+ // The lastArchiveRoot of a block is the new archive for the previous block.
18
+ const newArchiveRoots = blocksBlobData.map((b)=>b.lastArchiveRoot).slice(1).concat([
19
+ archiveRoot
20
+ ]);
21
+ // `blocksBlobData` is created from `decodeCheckpointBlobDataFromBlobs`. An error will be thrown if it can't read a
22
+ // field for the `l1ToL2MessageRoot` of the first block. So below we can safely assume it exists:
23
+ const l1toL2MessageTreeRoot = blocksBlobData[0].l1ToL2MessageRoot;
24
+ const spongeBlob = SpongeBlob.init();
25
+ const l2Blocks = [];
26
+ for(let i = 0; i < blocksBlobData.length; i++){
27
+ const blockBlobData = blocksBlobData[i];
28
+ const { blockEndMarker, blockEndStateField, lastArchiveRoot, noteHashRoot, nullifierRoot, publicDataRoot } = blockBlobData;
29
+ const l2BlockNumber = blockEndMarker.blockNumber;
30
+ const globalVariables = GlobalVariables.from({
31
+ chainId,
32
+ version,
33
+ blockNumber: l2BlockNumber,
34
+ slotNumber: checkpointHeader.slotNumber,
35
+ timestamp: blockEndMarker.timestamp,
36
+ coinbase: checkpointHeader.coinbase,
37
+ feeRecipient: checkpointHeader.feeRecipient,
38
+ gasFees: checkpointHeader.gasFees
39
+ });
40
+ const state = StateReference.from({
41
+ l1ToL2MessageTree: new AppendOnlyTreeSnapshot(l1toL2MessageTreeRoot, blockEndStateField.l1ToL2MessageNextAvailableLeafIndex),
42
+ partial: PartialStateReference.from({
43
+ noteHashTree: new AppendOnlyTreeSnapshot(noteHashRoot, blockEndStateField.noteHashNextAvailableLeafIndex),
44
+ nullifierTree: new AppendOnlyTreeSnapshot(nullifierRoot, blockEndStateField.nullifierNextAvailableLeafIndex),
45
+ publicDataTree: new AppendOnlyTreeSnapshot(publicDataRoot, blockEndStateField.publicDataNextAvailableLeafIndex)
46
+ })
47
+ });
48
+ const body = Body.fromTxBlobData(checkpointBlobData.blocks[0].txs);
49
+ const blobFields = encodeBlockBlobData(blockBlobData);
50
+ await spongeBlob.absorb(blobFields);
51
+ const clonedSpongeBlob = spongeBlob.clone();
52
+ const spongeBlobHash = await clonedSpongeBlob.squeeze();
53
+ const header = BlockHeader.from({
54
+ lastArchive: new AppendOnlyTreeSnapshot(lastArchiveRoot, l2BlockNumber),
55
+ state,
56
+ spongeBlobHash,
57
+ globalVariables,
58
+ totalFees: body.txEffects.reduce((accum, txEffect)=>accum.add(txEffect.transactionFee), Fr.ZERO),
59
+ totalManaUsed: new Fr(blockEndStateField.totalManaUsed)
60
+ });
61
+ const newArchive = new AppendOnlyTreeSnapshot(newArchiveRoots[i], l2BlockNumber + 1);
62
+ l2Blocks.push(new L2BlockNew(newArchive, header, body));
63
+ }
64
+ const lastBlock = l2Blocks.at(-1);
65
+ const checkpoint = Checkpoint.from({
66
+ archive: new AppendOnlyTreeSnapshot(archiveRoot, lastBlock.number + 1),
67
+ header: checkpointHeader,
68
+ blocks: l2Blocks,
69
+ number: checkpointNumber
44
70
  });
45
- const block = new L2Block(archive, header, body);
46
- return PublishedL2Block.fromFields({
47
- block,
71
+ return PublishedCheckpoint.from({
72
+ checkpoint,
48
73
  l1,
49
74
  attestations
50
75
  });
51
76
  }
52
77
  /**
53
- * Fetches new L2 blocks.
78
+ * Fetches new checkpoints.
54
79
  * @param publicClient - The viem public client to use for transaction retrieval.
55
80
  * @param rollupAddress - The address of the rollup contract.
56
81
  * @param searchStartBlock - The block number to use for starting the search.
57
82
  * @param searchEndBlock - The highest block number that we should search up to.
58
83
  * @param expectedNextL2BlockNum - The next L2 block number that we expect to find.
59
84
  * @returns An array of block; as well as the next eth block to search from.
60
- */ export async function retrieveBlocksFromRollup(rollup, publicClient, blobSinkClient, searchStartBlock, searchEndBlock, logger = createLogger('archiver')) {
61
- const retrievedBlocks = [];
85
+ */ export async function retrieveCheckpointsFromRollup(rollup, publicClient, blobSinkClient, searchStartBlock, searchEndBlock, logger = createLogger('archiver')) {
86
+ const retrievedCheckpoints = [];
62
87
  let rollupConstants;
63
88
  do {
64
89
  if (searchStartBlock > searchEndBlock) {
65
90
  break;
66
91
  }
67
- const l2BlockProposedLogs = (await rollup.getEvents.L2BlockProposed({}, {
92
+ const checkpointProposedLogs = (await rollup.getEvents.CheckpointProposed({}, {
68
93
  fromBlock: searchStartBlock,
69
94
  toBlock: searchEndBlock
70
95
  })).filter((log)=>log.blockNumber >= searchStartBlock && log.blockNumber <= searchEndBlock);
71
- if (l2BlockProposedLogs.length === 0) {
96
+ if (checkpointProposedLogs.length === 0) {
72
97
  break;
73
98
  }
74
- const lastLog = l2BlockProposedLogs[l2BlockProposedLogs.length - 1];
75
- logger.debug(`Got ${l2BlockProposedLogs.length} L2 block processed logs for L2 blocks ${l2BlockProposedLogs[0].args.blockNumber}-${lastLog.args.blockNumber} between L1 blocks ${searchStartBlock}-${searchEndBlock}`);
99
+ const lastLog = checkpointProposedLogs.at(-1);
100
+ logger.debug(`Got ${checkpointProposedLogs.length} processed logs for checkpoints ${checkpointProposedLogs[0].args.checkpointNumber}-${lastLog.args.checkpointNumber} between L1 blocks ${searchStartBlock}-${searchEndBlock}`);
76
101
  if (rollupConstants === undefined) {
77
102
  const [chainId, version, targetCommitteeSize] = await Promise.all([
78
103
  publicClient.getChainId(),
@@ -85,56 +110,56 @@ export async function retrievedBlockToPublishedL2Block(retrievedBlock) {
85
110
  targetCommitteeSize: Number(targetCommitteeSize)
86
111
  };
87
112
  }
88
- const newBlocks = await processL2BlockProposedLogs(rollup, publicClient, blobSinkClient, l2BlockProposedLogs, rollupConstants, logger);
89
- retrievedBlocks.push(...newBlocks);
113
+ const newCheckpoints = await processCheckpointProposedLogs(rollup, publicClient, blobSinkClient, checkpointProposedLogs, rollupConstants, logger);
114
+ retrievedCheckpoints.push(...newCheckpoints);
90
115
  searchStartBlock = lastLog.blockNumber + 1n;
91
116
  }while (searchStartBlock <= searchEndBlock)
92
- // The asyncpool from processL2BlockProposedLogs will not necessarily return the blocks in order, so we sort them before returning.
93
- return retrievedBlocks.sort((a, b)=>Number(a.l1.blockNumber - b.l1.blockNumber));
117
+ // The asyncPool from processCheckpointProposedLogs will not necessarily return the checkpoints in order, so we sort them before returning.
118
+ return retrievedCheckpoints.sort((a, b)=>Number(a.l1.blockNumber - b.l1.blockNumber));
94
119
  }
95
120
  /**
96
- * Processes newly received L2BlockProposed logs.
121
+ * Processes newly received CheckpointProposed logs.
97
122
  * @param rollup - The rollup contract
98
123
  * @param publicClient - The viem public client to use for transaction retrieval.
99
- * @param logs - L2BlockProposed logs.
100
- * @returns - An array blocks.
101
- */ async function processL2BlockProposedLogs(rollup, publicClient, blobSinkClient, logs, { chainId, version, targetCommitteeSize }, logger) {
102
- const retrievedBlocks = [];
124
+ * @param logs - CheckpointProposed logs.
125
+ * @returns - An array of checkpoints.
126
+ */ async function processCheckpointProposedLogs(rollup, publicClient, blobSinkClient, logs, { chainId, version, targetCommitteeSize }, logger) {
127
+ const retrievedCheckpoints = [];
103
128
  await asyncPool(10, logs, async (log)=>{
104
- const l2BlockNumber = Number(log.args.blockNumber);
129
+ const checkpointNumber = Number(log.args.checkpointNumber);
105
130
  const archive = log.args.archive;
106
131
  const archiveFromChain = await rollup.read.archiveAt([
107
- BigInt(l2BlockNumber)
132
+ BigInt(checkpointNumber)
108
133
  ]);
109
134
  const blobHashes = log.args.versionedBlobHashes.map((blobHash)=>Buffer.from(blobHash.slice(2), 'hex'));
110
- // The value from the event and contract will match only if the block is in the chain.
135
+ // The value from the event and contract will match only if the checkpoint is in the chain.
111
136
  if (archive === archiveFromChain) {
112
- const block = await getBlockFromRollupTx(publicClient, blobSinkClient, log.transactionHash, blobHashes, l2BlockNumber, rollup.address, targetCommitteeSize, logger);
137
+ const checkpoint = await getCheckpointFromRollupTx(publicClient, blobSinkClient, log.transactionHash, blobHashes, checkpointNumber, rollup.address, targetCommitteeSize, logger);
113
138
  const l1 = {
114
139
  blockNumber: log.blockNumber,
115
140
  blockHash: log.blockHash,
116
141
  timestamp: await getL1BlockTime(publicClient, log.blockNumber)
117
142
  };
118
- retrievedBlocks.push({
119
- ...block,
143
+ retrievedCheckpoints.push({
144
+ ...checkpoint,
120
145
  l1,
121
146
  chainId,
122
147
  version
123
148
  });
124
- logger.trace(`Retrieved L2 block ${l2BlockNumber} from L1 tx ${log.transactionHash}`, {
149
+ logger.trace(`Retrieved checkpoint ${checkpointNumber} from L1 tx ${log.transactionHash}`, {
125
150
  l1BlockNumber: log.blockNumber,
126
- l2BlockNumber,
151
+ checkpointNumber,
127
152
  archive: archive.toString(),
128
- attestations: block.attestations
153
+ attestations: checkpoint.attestations
129
154
  });
130
155
  } else {
131
- logger.warn(`Ignoring L2 block ${l2BlockNumber} due to archive root mismatch`, {
156
+ logger.warn(`Ignoring checkpoint ${checkpointNumber} due to archive root mismatch`, {
132
157
  actual: archive,
133
158
  expected: archiveFromChain
134
159
  });
135
160
  }
136
161
  });
137
- return retrievedBlocks;
162
+ return retrievedCheckpoints;
138
163
  }
139
164
  export async function getL1BlockTime(publicClient, blockNumber) {
140
165
  const block = await publicClient.getBlock({
@@ -183,14 +208,15 @@ export async function getL1BlockTime(publicClient, blockNumber) {
183
208
  throw new Error(`Rollup address not found in multicall3 args`);
184
209
  }
185
210
  /**
186
- * Gets block from the calldata of an L1 transaction.
187
- * Assumes that the block was published from an EOA.
211
+ * Gets checkpoint from the calldata of an L1 transaction.
212
+ * Assumes that the checkpoint was published from an EOA.
188
213
  * TODO: Add retries and error management.
189
214
  * @param publicClient - The viem public client to use for transaction retrieval.
190
215
  * @param txHash - Hash of the tx that published it.
191
- * @param l2BlockNumber - L2 block number.
192
- * @returns L2 block from the calldata, deserialized
193
- */ async function getBlockFromRollupTx(publicClient, blobSinkClient, txHash, blobHashes, l2BlockNumber, rollupAddress, targetCommitteeSize, logger) {
216
+ * @param checkpointNumber - Checkpoint number.
217
+ * @returns Checkpoint from the calldata, deserialized
218
+ */ async function getCheckpointFromRollupTx(publicClient, blobSinkClient, txHash, blobHashes, checkpointNumber, rollupAddress, targetCommitteeSize, logger) {
219
+ logger.trace(`Fetching checkpoint ${checkpointNumber} from rollup tx ${txHash}`);
194
220
  const { input: forwarderData, blockHash } = await publicClient.getTransaction({
195
221
  hash: txHash
196
222
  });
@@ -205,10 +231,10 @@ export async function getL1BlockTime(publicClient, blockNumber) {
205
231
  const [decodedArgs, packedAttestations, _signers, _blobInput] = rollupArgs;
206
232
  const attestations = CommitteeAttestation.fromPacked(packedAttestations, targetCommitteeSize);
207
233
  logger.trace(`Recovered propose calldata from tx ${txHash}`, {
208
- l2BlockNumber,
234
+ checkpointNumber,
209
235
  archive: decodedArgs.archive,
210
- stateReference: decodedArgs.stateReference,
211
236
  header: decodedArgs.header,
237
+ l1BlockHash: blockHash,
212
238
  blobHashes,
213
239
  attestations,
214
240
  packedAttestations,
@@ -217,12 +243,12 @@ export async function getL1BlockTime(publicClient, blockNumber) {
217
243
  const header = CheckpointHeader.fromViem(decodedArgs.header);
218
244
  const blobBodies = await blobSinkClient.getBlobSidecar(blockHash, blobHashes);
219
245
  if (blobBodies.length === 0) {
220
- throw new NoBlobBodiesFoundError(l2BlockNumber);
246
+ throw new NoBlobBodiesFoundError(checkpointNumber);
221
247
  }
222
- let blobFields;
248
+ let checkpointBlobData;
223
249
  try {
224
- // Get the fields that were actually added in the checkpoint. And check the encoding of the fields.
225
- blobFields = getBlobFieldsInCheckpoint(blobBodies.map((b)=>b.blob), true);
250
+ // Attempt to decode the checkpoint blob data.
251
+ checkpointBlobData = decodeCheckpointBlobDataFromBlobs(blobBodies.map((b)=>b.blob));
226
252
  } catch (err) {
227
253
  if (err instanceof BlobDeserializationError) {
228
254
  logger.fatal(err.message);
@@ -232,13 +258,11 @@ export async function getL1BlockTime(publicClient, blockNumber) {
232
258
  throw err;
233
259
  }
234
260
  const archiveRoot = new Fr(Buffer.from(hexToBytes(decodedArgs.archive)));
235
- const stateReference = StateReference.fromViem(decodedArgs.stateReference);
236
261
  return {
237
- l2BlockNumber,
262
+ checkpointNumber,
238
263
  archiveRoot,
239
- stateReference,
240
264
  header,
241
- blobFields,
265
+ checkpointBlobData,
242
266
  attestations
243
267
  };
244
268
  }
@@ -277,13 +301,13 @@ export async function getL1BlockTime(publicClient, blockNumber) {
277
301
  }
278
302
  function mapLogsInboxMessage(logs) {
279
303
  return logs.map((log)=>{
280
- const { index, hash, l2BlockNumber, rollingHash } = log.args;
304
+ const { index, hash, checkpointNumber, rollingHash } = log.args;
281
305
  return {
282
306
  index: index,
283
307
  leaf: Fr.fromHexString(hash),
284
308
  l1BlockNumber: log.blockNumber,
285
309
  l1BlockHash: Buffer32.fromString(log.blockHash),
286
- l2BlockNumber: Number(l2BlockNumber),
310
+ l2BlockNumber: Number(checkpointNumber),
287
311
  rollingHash: Buffer16.fromString(rollingHash)
288
312
  };
289
313
  });
@@ -301,7 +325,7 @@ function mapLogsInboxMessage(logs) {
301
325
  });
302
326
  return logs.map((log)=>({
303
327
  l1BlockNumber: log.blockNumber,
304
- l2BlockNumber: Number(log.args.blockNumber),
328
+ checkpointNumber: Number(log.args.checkpointNumber),
305
329
  proverId: Fr.fromHexString(log.args.proverId),
306
330
  txHash: log.transactionHash
307
331
  }));
@@ -310,12 +334,12 @@ function mapLogsInboxMessage(logs) {
310
334
  const logs = await retrieveL2ProofVerifiedEvents(publicClient, rollupAddress, searchStartBlock, searchEndBlock);
311
335
  const retrievedData = [];
312
336
  const lastProcessedL1BlockNumber = logs.length > 0 ? logs.at(-1).l1BlockNumber : searchStartBlock - 1n;
313
- for (const { txHash, proverId, l2BlockNumber } of logs){
337
+ for (const { txHash, proverId, checkpointNumber } of logs){
314
338
  const proofData = await getProofFromSubmitProofTx(publicClient, txHash, proverId);
315
339
  retrievedData.push({
316
340
  proof: proofData.proof,
317
341
  proverId: proofData.proverId,
318
- l2BlockNumber,
342
+ checkpointNumber,
319
343
  txHash
320
344
  });
321
345
  }
@@ -325,13 +349,13 @@ function mapLogsInboxMessage(logs) {
325
349
  };
326
350
  }
327
351
  /**
328
- * Gets block metadata (header and archive snapshot) from the calldata of an L1 transaction.
352
+ * Gets epoch proof metadata (archive root and proof) from the calldata of an L1 transaction.
329
353
  * Assumes that the block was published from an EOA.
330
354
  * TODO: Add retries and error management.
331
355
  * @param publicClient - The viem public client to use for transaction retrieval.
332
356
  * @param txHash - Hash of the tx that published it.
333
- * @param l2BlockNum - L2 block number.
334
- * @returns L2 block metadata (header and archive) from the calldata, deserialized
357
+ * @param expectedProverId - Expected prover ID.
358
+ * @returns Epoch proof metadata from the calldata, deserialized.
335
359
  */ export async function getProofFromSubmitProofTx(publicClient, txHash, expectedProverId) {
336
360
  const { input: data } = await publicClient.getTransaction({
337
361
  hash: txHash
@@ -9,4 +9,4 @@ export declare class InitialBlockNumberNotSequentialError extends Error {
9
9
  export declare class BlockNumberNotSequentialError extends Error {
10
10
  constructor(newBlockNumber: number, previous: number | undefined);
11
11
  }
12
- //# sourceMappingURL=errors.d.ts.map
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXJjaGl2ZXIvZXJyb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHFCQUFhLHNCQUF1QixTQUFRLEtBQUs7SUFDL0MsWUFBWSxVQUFVLEVBQUUsTUFBTSxFQUU3QjtDQUNGO0FBRUQscUJBQWEsb0NBQXFDLFNBQVEsS0FBSzthQUUzQyxjQUFjLEVBQUUsTUFBTTthQUN0QixtQkFBbUIsRUFBRSxNQUFNLEdBQUcsU0FBUztJQUZ6RCxZQUNrQixjQUFjLEVBQUUsTUFBTSxFQUN0QixtQkFBbUIsRUFBRSxNQUFNLEdBQUcsU0FBUyxFQU94RDtDQUNGO0FBRUQscUJBQWEsNkJBQThCLFNBQVEsS0FBSztJQUN0RCxZQUFZLGNBQWMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sR0FBRyxTQUFTLEVBSS9EO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/archiver/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,sBAAuB,SAAQ,KAAK;gBACnC,UAAU,EAAE,MAAM;CAG/B;AAED,qBAAa,oCAAqC,SAAQ,KAAK;aAE3C,cAAc,EAAE,MAAM;aACtB,mBAAmB,EAAE,MAAM,GAAG,SAAS;gBADvC,cAAc,EAAE,MAAM,EACtB,mBAAmB,EAAE,MAAM,GAAG,SAAS;CAQ1D;AAED,qBAAa,6BAA8B,SAAQ,KAAK;gBAC1C,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS;CAKjE"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/archiver/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,YAAY,UAAU,EAAE,MAAM,EAE7B;CACF;AAED,qBAAa,oCAAqC,SAAQ,KAAK;aAE3C,cAAc,EAAE,MAAM;aACtB,mBAAmB,EAAE,MAAM,GAAG,SAAS;IAFzD,YACkB,cAAc,EAAE,MAAM,EACtB,mBAAmB,EAAE,MAAM,GAAG,SAAS,EAOxD;CACF;AAED,qBAAa,6BAA8B,SAAQ,KAAK;IACtD,YAAY,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAI/D;CACF"}
@@ -4,4 +4,4 @@ export { type PublishedL2Block, type L1PublishedData } from './structs/published
4
4
  export type { ArchiverDataStore } from './archiver_store.js';
5
5
  export { KVArchiverDataStore, ARCHIVER_DB_VERSION } from './kv_archiver_store/kv_archiver_store.js';
6
6
  export { ContractInstanceStore } from './kv_archiver_store/contract_instance_store.js';
7
- //# sourceMappingURL=index.d.ts.map
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcmNoaXZlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGFBQWEsQ0FBQztBQUM1QixPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBRSxLQUFLLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JGLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDIn0=
@@ -1,4 +1,4 @@
1
- import type { L2Block } from '@aztec/stdlib/block';
1
+ import type { L2BlockNew } from '@aztec/stdlib/block';
2
2
  import { type LmdbStatsCallback, type TelemetryClient, type Tracer } from '@aztec/telemetry-client';
3
3
  export declare class ArchiverInstrumentation {
4
4
  private telemetry;
@@ -21,7 +21,7 @@ export declare class ArchiverInstrumentation {
21
21
  private constructor();
22
22
  static new(telemetry: TelemetryClient, lmdbStats?: LmdbStatsCallback): Promise<ArchiverInstrumentation>;
23
23
  isEnabled(): boolean;
24
- processNewBlocks(syncTimePerBlock: number, blocks: L2Block[]): void;
24
+ processNewBlocks(syncTimePerBlock: number, blocks: L2BlockNew[]): void;
25
25
  processNewMessages(count: number, syncPerMessageMs: number): void;
26
26
  processPrune(duration: number): void;
27
27
  updateLastProvenBlock(blockNumber: number): void;
@@ -32,4 +32,4 @@ export declare class ArchiverInstrumentation {
32
32
  }[]): void;
33
33
  updateL1BlockHeight(blockNumber: bigint): void;
34
34
  }
35
- //# sourceMappingURL=instrumentation.d.ts.map
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1bWVudGF0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXJjaGl2ZXIvaW5zdHJ1bWVudGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFLTCxLQUFLLGlCQUFpQixFQUV0QixLQUFLLGVBQWUsRUFDcEIsS0FBSyxNQUFNLEVBR1osTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxxQkFBYSx1QkFBdUI7SUF3QmhDLE9BQU8sQ0FBQyxTQUFTO0lBdkJuQixTQUFnQixNQUFNLEVBQUUsTUFBTSxDQUFDO0lBRS9CLE9BQU8sQ0FBQyxXQUFXLENBQVE7SUFDM0IsT0FBTyxDQUFDLE9BQU8sQ0FBZ0I7SUFDL0IsT0FBTyxDQUFDLGFBQWEsQ0FBUTtJQUM3QixPQUFPLENBQUMsb0JBQW9CLENBQVk7SUFDeEMsT0FBTyxDQUFDLG9CQUFvQixDQUFnQjtJQUM1QyxPQUFPLENBQUMsU0FBUyxDQUFjO0lBRS9CLE9BQU8sQ0FBQyxhQUFhLENBQVk7SUFDakMsT0FBTyxDQUFDLFVBQVUsQ0FBZ0I7SUFFbEMsT0FBTyxDQUFDLG9CQUFvQixDQUFZO0lBQ3hDLE9BQU8sQ0FBQyxjQUFjLENBQWdCO0lBQ3RDLE9BQU8sQ0FBQyxZQUFZLENBQVk7SUFDaEMsT0FBTyxDQUFDLFdBQVcsQ0FBWTtJQUUvQixPQUFPLENBQUMsc0JBQXNCLENBQVk7SUFDMUMsT0FBTyxDQUFDLGdCQUFnQixDQUFnQjtJQUV4QyxPQUFPLENBQUMsR0FBRyxDQUE0QztJQUV2RCxPQUFPLGVBcUZOO0lBRUQsT0FBb0IsR0FBRyxDQUFDLFNBQVMsRUFBRSxlQUFlLEVBQUUsU0FBUyxDQUFDLEVBQUUsaUJBQWlCLG9DQVVoRjtJQUVNLFNBQVMsSUFBSSxPQUFPLENBRTFCO0lBRU0sZ0JBQWdCLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFVckU7SUFFTSxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sUUFNaEU7SUFFTSxZQUFZLENBQUMsUUFBUSxFQUFFLE1BQU0sUUFHbkM7SUFFTSxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsTUFBTSxRQUUvQztJQUVNLHFCQUFxQixDQUFDLElBQUksRUFBRTtRQUFFLFFBQVEsRUFBRSxNQUFNLENBQUM7UUFBQyxhQUFhLEVBQUUsTUFBTSxDQUFDO1FBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQTtLQUFFLEVBQUUsUUFXOUY7SUFFTSxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsTUFBTSxRQUU3QztDQUNGIn0=