@aztec/archiver 0.28.1 → 0.30.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 (55) hide show
  1. package/dest/archiver/archiver.d.ts +13 -53
  2. package/dest/archiver/archiver.d.ts.map +1 -1
  3. package/dest/archiver/archiver.js +60 -199
  4. package/dest/archiver/archiver_store.d.ts +21 -67
  5. package/dest/archiver/archiver_store.d.ts.map +1 -1
  6. package/dest/archiver/archiver_store_test_suite.d.ts.map +1 -1
  7. package/dest/archiver/archiver_store_test_suite.js +60 -199
  8. package/dest/archiver/config.d.ts.map +1 -1
  9. package/dest/archiver/config.js +6 -2
  10. package/dest/archiver/data_retrieval.d.ts +10 -32
  11. package/dest/archiver/data_retrieval.d.ts.map +1 -1
  12. package/dest/archiver/data_retrieval.js +13 -67
  13. package/dest/archiver/eth_log_handlers.d.ts +7 -38
  14. package/dest/archiver/eth_log_handlers.d.ts.map +1 -1
  15. package/dest/archiver/eth_log_handlers.js +9 -77
  16. package/dest/archiver/kv_archiver_store/block_store.d.ts +5 -4
  17. package/dest/archiver/kv_archiver_store/block_store.d.ts.map +1 -1
  18. package/dest/archiver/kv_archiver_store/block_store.js +12 -15
  19. package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts +15 -56
  20. package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts.map +1 -1
  21. package/dest/archiver/kv_archiver_store/kv_archiver_store.js +23 -87
  22. package/dest/archiver/kv_archiver_store/message_store.d.ts +12 -43
  23. package/dest/archiver/kv_archiver_store/message_store.d.ts.map +1 -1
  24. package/dest/archiver/kv_archiver_store/message_store.js +32 -141
  25. package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.d.ts +8 -41
  26. package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.d.ts.map +1 -1
  27. package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.js +22 -79
  28. package/dest/archiver/memory_archiver_store/memory_archiver_store.d.ts +20 -81
  29. package/dest/archiver/memory_archiver_store/memory_archiver_store.d.ts.map +1 -1
  30. package/dest/archiver/memory_archiver_store/memory_archiver_store.js +30 -143
  31. package/dest/index.d.ts.map +1 -1
  32. package/dest/index.js +3 -15
  33. package/dest/rpc/archiver_client.d.ts.map +1 -1
  34. package/dest/rpc/archiver_client.js +2 -6
  35. package/dest/rpc/archiver_server.d.ts.map +1 -1
  36. package/dest/rpc/archiver_server.js +2 -6
  37. package/package.json +9 -9
  38. package/src/archiver/archiver.ts +80 -267
  39. package/src/archiver/archiver_store.ts +22 -76
  40. package/src/archiver/archiver_store_test_suite.ts +78 -243
  41. package/src/archiver/config.ts +6 -0
  42. package/src/archiver/data_retrieval.ts +19 -101
  43. package/src/archiver/eth_log_handlers.ts +14 -108
  44. package/src/archiver/kv_archiver_store/block_store.ts +13 -14
  45. package/src/archiver/kv_archiver_store/kv_archiver_store.ts +23 -93
  46. package/src/archiver/kv_archiver_store/message_store.ts +38 -169
  47. package/src/archiver/memory_archiver_store/l1_to_l2_message_store.ts +21 -90
  48. package/src/archiver/memory_archiver_store/memory_archiver_store.ts +33 -161
  49. package/src/index.ts +1 -15
  50. package/src/rpc/archiver_client.ts +0 -8
  51. package/src/rpc/archiver_server.ts +0 -8
  52. package/dest/archiver/kv_archiver_store/contract_store.d.ts +0 -26
  53. package/dest/archiver/kv_archiver_store/contract_store.d.ts.map +0 -1
  54. package/dest/archiver/kv_archiver_store/contract_store.js +0 -49
  55. package/src/archiver/kv_archiver_store/contract_store.ts +0 -55
package/src/index.ts CHANGED
@@ -1,9 +1,7 @@
1
- import { EthAddress } from '@aztec/foundation/eth-address';
2
1
  import { createDebugLogger } from '@aztec/foundation/log';
3
2
  import { fileURLToPath } from '@aztec/foundation/url';
4
- import { RollupAbi } from '@aztec/l1-artifacts';
5
3
 
6
- import { createPublicClient, getAddress, getContract, http } from 'viem';
4
+ import { createPublicClient, http } from 'viem';
7
5
  import { localhost } from 'viem/chains';
8
6
 
9
7
  import { Archiver, getConfigEnvVars } from './archiver/index.js';
@@ -29,23 +27,11 @@ async function main() {
29
27
 
30
28
  const archiverStore = new MemoryArchiverStore(1000);
31
29
 
32
- // TODO(#4492): Nuke this once the old inbox is purged
33
- let newInboxAddress!: EthAddress;
34
- {
35
- const rollup = getContract({
36
- address: getAddress(l1Contracts.rollupAddress.toString()),
37
- abi: RollupAbi,
38
- client: publicClient,
39
- });
40
- newInboxAddress = EthAddress.fromString(await rollup.read.NEW_INBOX());
41
- }
42
-
43
30
  const archiver = new Archiver(
44
31
  publicClient,
45
32
  l1Contracts.rollupAddress,
46
33
  l1Contracts.availabilityOracleAddress,
47
34
  l1Contracts.inboxAddress,
48
- newInboxAddress,
49
35
  l1Contracts.registryAddress,
50
36
  archiverStore,
51
37
  );
@@ -1,9 +1,5 @@
1
1
  import {
2
- ContractData,
3
- EncodedContractFunction,
4
- ExtendedContractData,
5
2
  ExtendedUnencryptedL2Log,
6
- L1ToL2Message,
7
3
  L2Block,
8
4
  L2BlockL2Logs,
9
5
  NullifierMembershipWitness,
@@ -18,13 +14,9 @@ export const createArchiverClient = (url: string, fetch = makeFetch([1, 2, 3], t
18
14
  createJsonRpcClient<ArchiveSource>(
19
15
  url,
20
16
  {
21
- ContractData,
22
- EncodedContractFunction,
23
17
  EthAddress,
24
- ExtendedContractData,
25
18
  ExtendedUnencryptedL2Log,
26
19
  Fr,
27
- L1ToL2Message,
28
20
  L2Block,
29
21
  L2BlockL2Logs,
30
22
  },
@@ -1,9 +1,5 @@
1
1
  import {
2
- ContractData,
3
- EncodedContractFunction,
4
- ExtendedContractData,
5
2
  ExtendedUnencryptedL2Log,
6
- L1ToL2Message,
7
3
  L2Block,
8
4
  L2BlockL2Logs,
9
5
  NullifierMembershipWitness,
@@ -24,13 +20,9 @@ export function createArchiverRpcServer(archiverService: Archiver): JsonRpcServe
24
20
  return new JsonRpcServer(
25
21
  archiverService,
26
22
  {
27
- ContractData,
28
- EncodedContractFunction,
29
23
  EthAddress,
30
- ExtendedContractData,
31
24
  ExtendedUnencryptedL2Log,
32
25
  Fr,
33
- L1ToL2Message,
34
26
  L2Block,
35
27
  L2BlockL2Logs,
36
28
  TxEffect,
@@ -1,26 +0,0 @@
1
- import { ExtendedContractData } from '@aztec/circuit-types';
2
- import { AztecAddress } from '@aztec/foundation/aztec-address';
3
- import { AztecKVStore } from '@aztec/kv-store';
4
- import { BlockStore } from './block_store.js';
5
- /**
6
- * LMDB implementation of the ArchiverDataStore interface.
7
- */
8
- export declare class ContractStore {
9
- #private;
10
- private db;
11
- constructor(db: AztecKVStore, blockStore: BlockStore);
12
- /**
13
- * Add new extended contract data from an L2 block to the store's list.
14
- * @param data - List of contracts' data to be added.
15
- * @param blockNum - Number of the L2 block the contract data was deployed in.
16
- * @returns True if the operation is successful.
17
- */
18
- addExtendedContractData(data: ExtendedContractData[], blockNum: number): Promise<boolean>;
19
- /**
20
- * Get the extended contract data for this contract.
21
- * @param contractAddress - The contract data address.
22
- * @returns The extended contract data or undefined if not found.
23
- */
24
- getExtendedContractData(contractAddress: AztecAddress): ExtendedContractData | undefined;
25
- }
26
- //# sourceMappingURL=contract_store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"contract_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/kv_archiver_store/contract_store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAY,MAAM,iBAAiB,CAAC;AAEzD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;GAEG;AACH,qBAAa,aAAa;;IAKZ,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU;IAK5D;;;;;OAKG;IACH,uBAAuB,CAAC,IAAI,EAAE,oBAAoB,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAOzF;;;;OAIG;IACH,uBAAuB,CAAC,eAAe,EAAE,YAAY,GAAG,oBAAoB,GAAG,SAAS;CAgBzF"}
@@ -1,49 +0,0 @@
1
- var _ContractStore_blockStore, _ContractStore_extendedContractData, _ContractStore_log;
2
- import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
- import { ExtendedContractData } from '@aztec/circuit-types';
4
- import { createDebugLogger } from '@aztec/foundation/log';
5
- /**
6
- * LMDB implementation of the ArchiverDataStore interface.
7
- */
8
- export class ContractStore {
9
- constructor(db, blockStore) {
10
- this.db = db;
11
- _ContractStore_blockStore.set(this, void 0);
12
- _ContractStore_extendedContractData.set(this, void 0);
13
- _ContractStore_log.set(this, createDebugLogger('aztec:archiver:contract_store'));
14
- __classPrivateFieldSet(this, _ContractStore_extendedContractData, db.openMap('archiver_extended_contract_data'), "f");
15
- __classPrivateFieldSet(this, _ContractStore_blockStore, blockStore, "f");
16
- }
17
- /**
18
- * Add new extended contract data from an L2 block to the store's list.
19
- * @param data - List of contracts' data to be added.
20
- * @param blockNum - Number of the L2 block the contract data was deployed in.
21
- * @returns True if the operation is successful.
22
- */
23
- addExtendedContractData(data, blockNum) {
24
- return __classPrivateFieldGet(this, _ContractStore_extendedContractData, "f").swap(blockNum, (existingData = []) => {
25
- existingData.push(...data.map(d => d.toBuffer()));
26
- return existingData;
27
- });
28
- }
29
- /**
30
- * Get the extended contract data for this contract.
31
- * @param contractAddress - The contract data address.
32
- * @returns The extended contract data or undefined if not found.
33
- */
34
- getExtendedContractData(contractAddress) {
35
- const [blockNumber, _] = __classPrivateFieldGet(this, _ContractStore_blockStore, "f").getContractLocation(contractAddress) ?? [];
36
- if (typeof blockNumber !== 'number') {
37
- return undefined;
38
- }
39
- for (const contract of __classPrivateFieldGet(this, _ContractStore_extendedContractData, "f").get(blockNumber) ?? []) {
40
- const extendedContractData = ExtendedContractData.fromBuffer(contract);
41
- if (extendedContractData.contractData.contractAddress.equals(contractAddress)) {
42
- return extendedContractData;
43
- }
44
- }
45
- return undefined;
46
- }
47
- }
48
- _ContractStore_blockStore = new WeakMap(), _ContractStore_extendedContractData = new WeakMap(), _ContractStore_log = new WeakMap();
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3Rfc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXJjaGl2ZXIva3ZfYXJjaGl2ZXJfc3RvcmUvY29udHJhY3Rfc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUsxRDs7R0FFRztBQUNILE1BQU0sT0FBTyxhQUFhO0lBS3hCLFlBQW9CLEVBQWdCLEVBQUUsVUFBc0I7UUFBeEMsT0FBRSxHQUFGLEVBQUUsQ0FBYztRQUpwQyw0Q0FBd0I7UUFDeEIsc0RBQWtEO1FBQ2xELDZCQUFPLGlCQUFpQixDQUFDLCtCQUErQixDQUFDLEVBQUM7UUFHeEQsdUJBQUEsSUFBSSx1Q0FBeUIsRUFBRSxDQUFDLE9BQU8sQ0FBQyxpQ0FBaUMsQ0FBQyxNQUFBLENBQUM7UUFDM0UsdUJBQUEsSUFBSSw2QkFBZSxVQUFVLE1BQUEsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCx1QkFBdUIsQ0FBQyxJQUE0QixFQUFFLFFBQWdCO1FBQ3BFLE9BQU8sdUJBQUEsSUFBSSwyQ0FBc0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsWUFBWSxHQUFHLEVBQUUsRUFBRSxFQUFFO1lBQ3JFLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNsRCxPQUFPLFlBQVksQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsdUJBQXVCLENBQUMsZUFBNkI7UUFDbkQsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsR0FBRyx1QkFBQSxJQUFJLGlDQUFZLENBQUMsbUJBQW1CLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRXJGLElBQUksT0FBTyxXQUFXLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDcEMsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUVELEtBQUssTUFBTSxRQUFRLElBQUksdUJBQUEsSUFBSSwyQ0FBc0IsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDekUsTUFBTSxvQkFBb0IsR0FBRyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdkUsSUFBSSxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO2dCQUM5RSxPQUFPLG9CQUFvQixDQUFDO1lBQzlCLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztDQUNGIn0=
@@ -1,55 +0,0 @@
1
- import { ExtendedContractData } from '@aztec/circuit-types';
2
- import { AztecAddress } from '@aztec/foundation/aztec-address';
3
- import { createDebugLogger } from '@aztec/foundation/log';
4
- import { AztecKVStore, AztecMap } from '@aztec/kv-store';
5
-
6
- import { BlockStore } from './block_store.js';
7
-
8
- /**
9
- * LMDB implementation of the ArchiverDataStore interface.
10
- */
11
- export class ContractStore {
12
- #blockStore: BlockStore;
13
- #extendedContractData: AztecMap<number, Buffer[]>;
14
- #log = createDebugLogger('aztec:archiver:contract_store');
15
-
16
- constructor(private db: AztecKVStore, blockStore: BlockStore) {
17
- this.#extendedContractData = db.openMap('archiver_extended_contract_data');
18
- this.#blockStore = blockStore;
19
- }
20
-
21
- /**
22
- * Add new extended contract data from an L2 block to the store's list.
23
- * @param data - List of contracts' data to be added.
24
- * @param blockNum - Number of the L2 block the contract data was deployed in.
25
- * @returns True if the operation is successful.
26
- */
27
- addExtendedContractData(data: ExtendedContractData[], blockNum: number): Promise<boolean> {
28
- return this.#extendedContractData.swap(blockNum, (existingData = []) => {
29
- existingData.push(...data.map(d => d.toBuffer()));
30
- return existingData;
31
- });
32
- }
33
-
34
- /**
35
- * Get the extended contract data for this contract.
36
- * @param contractAddress - The contract data address.
37
- * @returns The extended contract data or undefined if not found.
38
- */
39
- getExtendedContractData(contractAddress: AztecAddress): ExtendedContractData | undefined {
40
- const [blockNumber, _] = this.#blockStore.getContractLocation(contractAddress) ?? [];
41
-
42
- if (typeof blockNumber !== 'number') {
43
- return undefined;
44
- }
45
-
46
- for (const contract of this.#extendedContractData.get(blockNumber) ?? []) {
47
- const extendedContractData = ExtendedContractData.fromBuffer(contract);
48
- if (extendedContractData.contractData.contractAddress.equals(contractAddress)) {
49
- return extendedContractData;
50
- }
51
- }
52
-
53
- return undefined;
54
- }
55
- }