@aztec/archiver 0.56.0 → 0.57.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/README.md +1 -1
  2. package/dest/archiver/archiver.d.ts +23 -20
  3. package/dest/archiver/archiver.d.ts.map +1 -1
  4. package/dest/archiver/archiver.js +353 -103
  5. package/dest/archiver/archiver_store.d.ts +39 -9
  6. package/dest/archiver/archiver_store.d.ts.map +1 -1
  7. package/dest/archiver/archiver_store_test_suite.d.ts.map +1 -1
  8. package/dest/archiver/archiver_store_test_suite.js +75 -18
  9. package/dest/archiver/config.js +6 -6
  10. package/dest/archiver/data_retrieval.d.ts +2 -3
  11. package/dest/archiver/data_retrieval.d.ts.map +1 -1
  12. package/dest/archiver/data_retrieval.js +21 -20
  13. package/dest/archiver/epoch_helpers.d.ts +15 -0
  14. package/dest/archiver/epoch_helpers.d.ts.map +1 -0
  15. package/dest/archiver/epoch_helpers.js +23 -0
  16. package/dest/archiver/kv_archiver_store/block_store.d.ts +20 -1
  17. package/dest/archiver/kv_archiver_store/block_store.d.ts.map +1 -1
  18. package/dest/archiver/kv_archiver_store/block_store.js +62 -5
  19. package/dest/archiver/kv_archiver_store/contract_class_store.d.ts +2 -1
  20. package/dest/archiver/kv_archiver_store/contract_class_store.d.ts.map +1 -1
  21. package/dest/archiver/kv_archiver_store/contract_class_store.js +11 -4
  22. package/dest/archiver/kv_archiver_store/contract_instance_store.d.ts +1 -0
  23. package/dest/archiver/kv_archiver_store/contract_instance_store.d.ts.map +1 -1
  24. package/dest/archiver/kv_archiver_store/contract_instance_store.js +4 -1
  25. package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts +29 -9
  26. package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts.map +1 -1
  27. package/dest/archiver/kv_archiver_store/kv_archiver_store.js +57 -17
  28. package/dest/archiver/kv_archiver_store/log_store.d.ts +4 -5
  29. package/dest/archiver/kv_archiver_store/log_store.d.ts.map +1 -1
  30. package/dest/archiver/kv_archiver_store/log_store.js +18 -14
  31. package/dest/archiver/kv_archiver_store/message_store.d.ts +1 -0
  32. package/dest/archiver/kv_archiver_store/message_store.d.ts.map +1 -1
  33. package/dest/archiver/kv_archiver_store/message_store.js +10 -3
  34. package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.d.ts +1 -0
  35. package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.d.ts.map +1 -1
  36. package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.js +4 -1
  37. package/dest/archiver/memory_archiver_store/memory_archiver_store.d.ts +23 -22
  38. package/dest/archiver/memory_archiver_store/memory_archiver_store.d.ts.map +1 -1
  39. package/dest/archiver/memory_archiver_store/memory_archiver_store.js +129 -69
  40. package/dest/index.js +2 -1
  41. package/dest/test/index.d.ts +2 -0
  42. package/dest/test/index.d.ts.map +1 -0
  43. package/dest/test/index.js +2 -0
  44. package/dest/test/mock_l2_block_source.d.ts +73 -0
  45. package/dest/test/mock_l2_block_source.d.ts.map +1 -0
  46. package/dest/test/mock_l2_block_source.js +134 -0
  47. package/package.json +15 -11
  48. package/src/archiver/archiver.ts +457 -149
  49. package/src/archiver/archiver_store.ts +44 -16
  50. package/src/archiver/archiver_store_test_suite.ts +91 -52
  51. package/src/archiver/config.ts +5 -5
  52. package/src/archiver/data_retrieval.ts +23 -24
  53. package/src/archiver/epoch_helpers.ts +26 -0
  54. package/src/archiver/kv_archiver_store/block_store.ts +70 -2
  55. package/src/archiver/kv_archiver_store/contract_class_store.ts +18 -5
  56. package/src/archiver/kv_archiver_store/contract_instance_store.ts +4 -0
  57. package/src/archiver/kv_archiver_store/kv_archiver_store.ts +65 -24
  58. package/src/archiver/kv_archiver_store/log_store.ts +18 -18
  59. package/src/archiver/kv_archiver_store/message_store.ts +9 -0
  60. package/src/archiver/memory_archiver_store/l1_to_l2_message_store.ts +4 -0
  61. package/src/archiver/memory_archiver_store/memory_archiver_store.ts +149 -80
  62. package/src/index.ts +1 -0
  63. package/src/test/index.ts +1 -0
  64. package/src/test/mock_l2_block_source.ts +165 -0
  65. package/dest/archiver/kv_archiver_store/proven_store.d.ts +0 -14
  66. package/dest/archiver/kv_archiver_store/proven_store.d.ts.map +0 -1
  67. package/dest/archiver/kv_archiver_store/proven_store.js +0 -30
  68. package/src/archiver/kv_archiver_store/proven_store.ts +0 -34
package/README.md CHANGED
@@ -13,4 +13,4 @@ The interfaces defining how the data can be consumed from the archiver are `L2Bl
13
13
  To install dependencies and build the package run `yarn install` followed by `yarn build`.
14
14
  To run test execute `yarn test`.
15
15
 
16
- To start the service export `ETHEREUM_HOST` (defaults to `http://127.0.0.1:8545/`), `ARCHIVER_POLLING_INTERVAL` (defaults to `1000 ms`), `ROLLUP_CONTRACT_ADDRESS`, `INBOX_CONTRACT_ADDRESS` environmental variables and start the service with `yarn start`.
16
+ To start the service export `ETHEREUM_HOST` (defaults to `http://127.0.0.1:8545/`), `ARCHIVER_POLLING_INTERVAL_MS` (defaults to `1000 ms`), `ROLLUP_CONTRACT_ADDRESS`, `INBOX_CONTRACT_ADDRESS` environmental variables and start the service with `yarn start`.
@@ -1,5 +1,5 @@
1
1
  import { type FromLogType, type GetUnencryptedLogsResponse, type L1ToL2MessageSource, type L2Block, type L2BlockL2Logs, type L2BlockSource, type L2LogsSource, type LogFilter, type LogType, type TxEffect, type TxHash, type TxReceipt } from '@aztec/circuit-types';
2
- import { type FunctionSelector } from '@aztec/circuits.js';
2
+ import { type FunctionSelector, type Header } from '@aztec/circuits.js';
3
3
  import { type ContractArtifact } from '@aztec/foundation/abi';
4
4
  import { type AztecAddress } from '@aztec/foundation/aztec-address';
5
5
  import { type EthAddress } from '@aztec/foundation/eth-address';
@@ -11,7 +11,6 @@ import { type Chain, type HttpTransport, type PublicClient } from 'viem';
11
11
  import { type ArchiverDataStore } from './archiver_store.js';
12
12
  import { type ArchiverConfig } from './config.js';
13
13
  import { ArchiverInstrumentation } from './instrumentation.js';
14
- import { type SingletonDataRetrieval } from './structs/data_retrieval.js';
15
14
  /**
16
15
  * Helper interface to combine all sources this archiver implementation provides.
17
16
  */
@@ -24,12 +23,12 @@ export type ArchiveSource = L2BlockSource & L2LogsSource & ContractDataSource &
24
23
  export declare class Archiver implements ArchiveSource {
25
24
  private readonly publicClient;
26
25
  private readonly rollupAddress;
27
- private readonly inboxAddress;
26
+ readonly inboxAddress: EthAddress;
28
27
  private readonly registryAddress;
29
- private readonly store;
28
+ readonly dataStore: ArchiverDataStore;
30
29
  private readonly pollingIntervalMs;
31
30
  private readonly instrumentation;
32
- private readonly l1StartBlock;
31
+ private readonly l1constants;
33
32
  private readonly log;
34
33
  /**
35
34
  * A promise in which we will be continually fetching new L2 blocks.
@@ -37,6 +36,9 @@ export declare class Archiver implements ArchiveSource {
37
36
  private runningPromise?;
38
37
  private rollup;
39
38
  private inbox;
39
+ private store;
40
+ l1BlockNumber: bigint | undefined;
41
+ l1Timestamp: bigint | undefined;
40
42
  /**
41
43
  * Creates a new instance of the Archiver.
42
44
  * @param publicClient - A client for interacting with the Ethereum node.
@@ -47,7 +49,7 @@ export declare class Archiver implements ArchiveSource {
47
49
  * @param store - An archiver data store for storage & retrieval of blocks, encrypted logs & contract data.
48
50
  * @param log - A logger.
49
51
  */
50
- constructor(publicClient: PublicClient<HttpTransport, Chain>, rollupAddress: EthAddress, inboxAddress: EthAddress, registryAddress: EthAddress, store: ArchiverDataStore, pollingIntervalMs: number, instrumentation: ArchiverInstrumentation, l1StartBlock?: bigint, log?: DebugLogger);
52
+ constructor(publicClient: PublicClient<HttpTransport, Chain>, rollupAddress: EthAddress, inboxAddress: EthAddress, registryAddress: EthAddress, dataStore: ArchiverDataStore, pollingIntervalMs: number, instrumentation: ArchiverInstrumentation, l1constants?: L1RollupConstants, log?: DebugLogger);
51
53
  /**
52
54
  * Creates a new instance of the Archiver and blocks until it syncs from chain.
53
55
  * @param config - The archiver's desired configuration.
@@ -71,19 +73,7 @@ export declare class Archiver implements ArchiveSource {
71
73
  */
72
74
  private sync;
73
75
  private handleL1ToL2Messages;
74
- private updateLastProvenL2Block;
75
76
  private handleL2blocks;
76
- /**
77
- * Extracts and stores contract classes out of ContractClassRegistered events emitted by the class registerer contract.
78
- * @param allLogs - All logs emitted in a bunch of blocks.
79
- */
80
- private storeRegisteredContractClasses;
81
- /**
82
- * Extracts and stores contract instances out of ContractInstanceDeployed events emitted by the canonical deployer contract.
83
- * @param allLogs - All logs emitted in a bunch of blocks.
84
- */
85
- private storeDeployedContractInstances;
86
- private storeBroadcastedIndividualFunctions;
87
77
  /**
88
78
  * Stops the archiver.
89
79
  * @returns A promise signalling completion of the stop process.
@@ -91,6 +81,12 @@ export declare class Archiver implements ArchiveSource {
91
81
  stop(): Promise<void>;
92
82
  getRollupAddress(): Promise<EthAddress>;
93
83
  getRegistryAddress(): Promise<EthAddress>;
84
+ getL1BlockNumber(): bigint;
85
+ getL1Timestamp(): bigint;
86
+ getL2SlotNumber(): Promise<bigint>;
87
+ getL2EpochNumber(): Promise<bigint>;
88
+ getBlocksForEpoch(epochNumber: bigint): Promise<L2Block[]>;
89
+ isEpochComplete(epochNumber: bigint): Promise<boolean>;
94
90
  /**
95
91
  * Gets up to `limit` amount of L2 blocks starting from `from`.
96
92
  * @param from - Number of the first block to return (inclusive).
@@ -101,10 +97,11 @@ export declare class Archiver implements ArchiveSource {
101
97
  getBlocks(from: number, limit: number, proven?: boolean): Promise<L2Block[]>;
102
98
  /**
103
99
  * Gets an l2 block.
104
- * @param number - The block number to return (inclusive).
100
+ * @param number - The block number to return.
105
101
  * @returns The requested L2 block.
106
102
  */
107
103
  getBlock(number: number): Promise<L2Block | undefined>;
104
+ getBlockHeader(number: number | 'latest'): Promise<Header | undefined>;
108
105
  getTxEffect(txHash: TxHash): Promise<TxEffect | undefined>;
109
106
  getSettledTxReceipt(txHash: TxHash): Promise<TxReceipt | undefined>;
110
107
  /**
@@ -134,8 +131,9 @@ export declare class Archiver implements ArchiveSource {
134
131
  */
135
132
  getBlockNumber(): Promise<number>;
136
133
  getProvenBlockNumber(): Promise<number>;
134
+ getProvenL2EpochNumber(): Promise<number | undefined>;
137
135
  /** Forcefully updates the last proven block number. Use for testing. */
138
- setProvenBlockNumber(block: SingletonDataRetrieval<number>): Promise<void>;
136
+ setProvenBlockNumber(blockNumber: number): Promise<void>;
139
137
  getContractClass(id: Fr): Promise<ContractClassPublic | undefined>;
140
138
  getContract(address: AztecAddress): Promise<ContractInstanceWithAddress | undefined>;
141
139
  /**
@@ -155,4 +153,9 @@ export declare class Archiver implements ArchiveSource {
155
153
  addContractArtifact(address: AztecAddress, artifact: ContractArtifact): Promise<void>;
156
154
  getContractArtifact(address: AztecAddress): Promise<ContractArtifact | undefined>;
157
155
  }
156
+ type L1RollupConstants = {
157
+ l1StartBlock: bigint;
158
+ l1GenesisTime: bigint;
159
+ };
160
+ export {};
158
161
  //# sourceMappingURL=archiver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"archiver.d.ts","sourceRoot":"","sources":["../../src/archiver/archiver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"archiver.d.ts","sourceRoot":"","sources":["../../src/archiver/archiver.ts"],"names":[],"mappings":"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"}