@aztec/archiver 0.16.0 → 0.16.2

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 (41) hide show
  1. package/dest/archiver/archiver.d.ts +3 -6
  2. package/dest/archiver/archiver.d.ts.map +1 -1
  3. package/dest/archiver/archiver.js +25 -46
  4. package/dest/archiver/archiver_store.d.ts +10 -161
  5. package/dest/archiver/archiver_store.d.ts.map +1 -1
  6. package/dest/archiver/archiver_store.js +2 -328
  7. package/dest/archiver/archiver_store_test_suite.d.ts +8 -0
  8. package/dest/archiver/archiver_store_test_suite.d.ts.map +1 -0
  9. package/dest/archiver/archiver_store_test_suite.js +478 -0
  10. package/dest/archiver/data_retrieval.d.ts +3 -4
  11. package/dest/archiver/data_retrieval.d.ts.map +1 -1
  12. package/dest/archiver/data_retrieval.js +1 -1
  13. package/dest/archiver/eth_log_handlers.d.ts +3 -4
  14. package/dest/archiver/eth_log_handlers.d.ts.map +1 -1
  15. package/dest/archiver/eth_log_handlers.js +7 -6
  16. package/dest/archiver/index.d.ts +3 -0
  17. package/dest/archiver/index.d.ts.map +1 -1
  18. package/dest/archiver/index.js +3 -1
  19. package/dest/archiver/lmdb_archiver_store.d.ts +125 -0
  20. package/dest/archiver/lmdb_archiver_store.d.ts.map +1 -0
  21. package/dest/archiver/lmdb_archiver_store.js +545 -0
  22. package/dest/archiver/{l1_to_l2_message_store.d.ts → memory_archiver_store/l1_to_l2_message_store.d.ts} +6 -2
  23. package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.d.ts.map +1 -0
  24. package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.js +91 -0
  25. package/dest/archiver/memory_archiver_store/memory_archiver_store.d.ts +163 -0
  26. package/dest/archiver/memory_archiver_store/memory_archiver_store.d.ts.map +1 -0
  27. package/dest/archiver/memory_archiver_store/memory_archiver_store.js +338 -0
  28. package/dest/index.js +3 -4
  29. package/package.json +7 -6
  30. package/src/archiver/archiver.ts +40 -53
  31. package/src/archiver/archiver_store.ts +16 -373
  32. package/src/archiver/archiver_store_test_suite.ts +638 -0
  33. package/src/archiver/data_retrieval.ts +5 -6
  34. package/src/archiver/eth_log_handlers.ts +23 -16
  35. package/src/archiver/index.ts +3 -0
  36. package/src/archiver/lmdb_archiver_store.ts +728 -0
  37. package/src/archiver/{l1_to_l2_message_store.ts → memory_archiver_store/l1_to_l2_message_store.ts} +23 -3
  38. package/src/archiver/memory_archiver_store/memory_archiver_store.ts +399 -0
  39. package/src/index.ts +1 -2
  40. package/dest/archiver/l1_to_l2_message_store.d.ts.map +0 -1
  41. package/dest/archiver/l1_to_l2_message_store.js +0 -72
@@ -1,21 +1,20 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
2
  import { EthAddress } from '@aztec/foundation/eth-address';
3
- import { Fr } from '@aztec/foundation/fields';
4
3
  import { ContractDeploymentEmitterAbi, InboxAbi, RollupAbi } from '@aztec/l1-artifacts';
5
- import { ExtendedContractData, L1ToL2Message, L2Block } from '@aztec/types';
4
+ import { CancelledL1ToL2Message, ExtendedContractData, L2Block, PendingL1ToL2Message } from '@aztec/types';
6
5
  import { Log, PublicClient } from 'viem';
7
6
  /**
8
7
  * Processes newly received MessageAdded (L1 to L2) logs.
9
8
  * @param logs - MessageAdded logs.
10
9
  * @returns Array of all Pending L1 to L2 messages that were processed
11
10
  */
12
- export declare function processPendingL1ToL2MessageAddedLogs(logs: Log<bigint, number, undefined, true, typeof InboxAbi, 'MessageAdded'>[]): L1ToL2Message[];
11
+ export declare function processPendingL1ToL2MessageAddedLogs(logs: Log<bigint, number, undefined, true, typeof InboxAbi, 'MessageAdded'>[]): PendingL1ToL2Message[];
13
12
  /**
14
13
  * Process newly received L1ToL2MessageCancelled logs.
15
14
  * @param logs - L1ToL2MessageCancelled logs.
16
15
  * @returns Array of message keys of the L1 to L2 messages that were cancelled
17
16
  */
18
- export declare function processCancelledL1ToL2MessagesLogs(logs: Log<bigint, number, undefined, true, typeof InboxAbi, 'L1ToL2MessageCancelled'>[]): Fr[];
17
+ export declare function processCancelledL1ToL2MessagesLogs(logs: Log<bigint, number, undefined, true, typeof InboxAbi, 'L1ToL2MessageCancelled'>[]): CancelledL1ToL2Message[];
19
18
  /**
20
19
  * Processes newly received L2BlockProcessed logs.
21
20
  * @param publicClient - The viem public client to use for transaction retrieval.
@@ -1 +1 @@
1
- {"version":3,"file":"eth_log_handlers.d.ts","sourceRoot":"","sources":["../../src/archiver/eth_log_handlers.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAS,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,4BAA4B,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACxF,OAAO,EAIL,oBAAoB,EAEpB,aAAa,EAEb,OAAO,EACR,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAO,GAAG,EAAE,YAAY,EAA0D,MAAM,MAAM,CAAC;AAEtG;;;;GAIG;AACH,wBAAgB,oCAAoC,CAClD,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,QAAQ,EAAE,cAAc,CAAC,EAAE,GAC5E,aAAa,EAAE,CAkBjB;AAED;;;;GAIG;AACH,wBAAgB,kCAAkC,CAChD,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,QAAQ,EAAE,wBAAwB,CAAC,EAAE,GACtF,EAAE,EAAE,CAMN;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,YAAY,EAC1B,qBAAqB,EAAE,MAAM,EAC7B,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,SAAS,EAAE,kBAAkB,CAAC,EAAE,sBAcnF;AAiCD;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAC3C,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,UAAU,EACzB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM;;;;;;;;;;UAchB;AAED;;;;;;;GAOG;AACH,wBAAsB,yBAAyB,CAC7C,YAAY,EAAE,YAAY,EAC1B,gCAAgC,EAAE,UAAU,EAC5C,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,4BAA4B,EAAE,oBAAoB,CAAC,EAAE,CAAC,CAW5G;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC3C,gBAAgB,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CAAE,EACvD,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,4BAA4B,EAAE,oBAAoB,CAAC,EAAE,GACtG,CAAC,oBAAoB,EAAE,EAAE,MAAM,CAAC,EAAE,CA8BpC;AAED;;;;;;;GAOG;AACH,wBAAsB,2BAA2B,CAC/C,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,UAAU,EACxB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,QAAQ,EAAE,cAAc,CAAC,EAAE,CAAC,CAWlF;AAED;;;;;;;GAOG;AACH,wBAAsB,6BAA6B,CACjD,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,UAAU,EACxB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,QAAQ,EAAE,wBAAwB,CAAC,EAAE,CAAC,CAW5F"}
1
+ {"version":3,"file":"eth_log_handlers.d.ts","sourceRoot":"","sources":["../../src/archiver/eth_log_handlers.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,4BAA4B,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACxF,OAAO,EAEL,sBAAsB,EAGtB,oBAAoB,EAIpB,OAAO,EACP,oBAAoB,EACrB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAO,GAAG,EAAE,YAAY,EAA0D,MAAM,MAAM,CAAC;AAEtG;;;;GAIG;AACH,wBAAgB,oCAAoC,CAClD,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,QAAQ,EAAE,cAAc,CAAC,EAAE,GAC5E,oBAAoB,EAAE,CAsBxB;AAED;;;;GAIG;AACH,wBAAgB,kCAAkC,CAChD,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,QAAQ,EAAE,wBAAwB,CAAC,EAAE,GACtF,sBAAsB,EAAE,CAM1B;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,YAAY,EAC1B,qBAAqB,EAAE,MAAM,EAC7B,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,SAAS,EAAE,kBAAkB,CAAC,EAAE,GACjF,OAAO,CAAC,OAAO,EAAE,CAAC,CAcpB;AAiCD;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAC3C,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,UAAU,EACzB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM;;;;;;;;;;UAchB;AAED;;;;;;;GAOG;AACH,wBAAsB,yBAAyB,CAC7C,YAAY,EAAE,YAAY,EAC1B,gCAAgC,EAAE,UAAU,EAC5C,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,4BAA4B,EAAE,oBAAoB,CAAC,EAAE,CAAC,CAW5G;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC3C,gBAAgB,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CAAE,EACvD,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,4BAA4B,EAAE,oBAAoB,CAAC,EAAE,GACtG,CAAC,oBAAoB,EAAE,EAAE,MAAM,CAAC,EAAE,CA8BpC;AAED;;;;;;;GAOG;AACH,wBAAsB,2BAA2B,CAC/C,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,UAAU,EACxB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,QAAQ,EAAE,cAAc,CAAC,EAAE,CAAC,CAWlF;AAED;;;;;;;GAOG;AACH,wBAAsB,6BAA6B,CACjD,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,UAAU,EACxB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,QAAQ,EAAE,wBAAwB,CAAC,EAAE,CAAC,CAW5F"}
@@ -2,7 +2,7 @@ import { AztecAddress } from '@aztec/foundation/aztec-address';
2
2
  import { EthAddress } from '@aztec/foundation/eth-address';
3
3
  import { Fr, Point } from '@aztec/foundation/fields';
4
4
  import { ContractDeploymentEmitterAbi, InboxAbi, RollupAbi } from '@aztec/l1-artifacts';
5
- import { BufferReader, ContractData, EncodedContractFunction, ExtendedContractData, L1Actor, L1ToL2Message, L2Actor, L2Block, } from '@aztec/types';
5
+ import { BufferReader, CancelledL1ToL2Message, ContractData, EncodedContractFunction, ExtendedContractData, L1Actor, L1ToL2Message, L2Actor, L2Block, PendingL1ToL2Message, } from '@aztec/types';
6
6
  import { decodeFunctionData, getAbiItem, getAddress, hexToBytes } from 'viem';
7
7
  /**
8
8
  * Processes newly received MessageAdded (L1 to L2) logs.
@@ -11,9 +11,9 @@ import { decodeFunctionData, getAbiItem, getAddress, hexToBytes } from 'viem';
11
11
  */
12
12
  export function processPendingL1ToL2MessageAddedLogs(logs) {
13
13
  const l1ToL2Messages = [];
14
- for (const log of logs) {
14
+ for (const [index, log] of logs.entries()) {
15
15
  const { sender, senderChainId, recipient, recipientVersion, content, secretHash, deadline, fee, entryKey } = log.args;
16
- l1ToL2Messages.push(new L1ToL2Message(new L1Actor(EthAddress.fromString(sender), Number(senderChainId)), new L2Actor(AztecAddress.fromString(recipient), Number(recipientVersion)), Fr.fromString(content), Fr.fromString(secretHash), deadline, Number(fee), Fr.fromString(entryKey)));
16
+ l1ToL2Messages.push(new PendingL1ToL2Message(new L1ToL2Message(new L1Actor(EthAddress.fromString(sender), Number(senderChainId)), new L2Actor(AztecAddress.fromString(recipient), Number(recipientVersion)), Fr.fromString(content), Fr.fromString(secretHash), deadline, Number(fee), Fr.fromString(entryKey)), log.blockNumber, index));
17
17
  }
18
18
  return l1ToL2Messages;
19
19
  }
@@ -24,8 +24,8 @@ export function processPendingL1ToL2MessageAddedLogs(logs) {
24
24
  */
25
25
  export function processCancelledL1ToL2MessagesLogs(logs) {
26
26
  const cancelledL1ToL2Messages = [];
27
- for (const log of logs) {
28
- cancelledL1ToL2Messages.push(Fr.fromString(log.args.entryKey));
27
+ for (const [index, log] of logs.entries()) {
28
+ cancelledL1ToL2Messages.push(new CancelledL1ToL2Message(Fr.fromString(log.args.entryKey), log.blockNumber, index));
29
29
  }
30
30
  return cancelledL1ToL2Messages;
31
31
  }
@@ -44,6 +44,7 @@ export async function processBlockLogs(publicClient, expectedL2BlockNumber, logs
44
44
  }
45
45
  // TODO: Fetch blocks from calldata in parallel
46
46
  const newBlock = await getBlockFromCallData(publicClient, log.transactionHash, log.args.blockNum);
47
+ newBlock.setL1BlockNumber(log.blockNumber);
47
48
  retrievedBlocks.push(newBlock);
48
49
  expectedL2BlockNumber++;
49
50
  }
@@ -186,4 +187,4 @@ export async function getL1ToL2MessageCancelledLogs(publicClient, inboxAddress,
186
187
  toBlock: toBlock + 1n, // the toBlock argument in getLogs is exclusive
187
188
  });
188
189
  }
189
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXRoX2xvZ19oYW5kbGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcmNoaXZlci9ldGhfbG9nX2hhbmRsZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hGLE9BQU8sRUFDTCxZQUFZLEVBQ1osWUFBWSxFQUNaLHVCQUF1QixFQUN2QixvQkFBb0IsRUFDcEIsT0FBTyxFQUNQLGFBQWEsRUFDYixPQUFPLEVBQ1AsT0FBTyxHQUNSLE1BQU0sY0FBYyxDQUFDO0FBRXRCLE9BQU8sRUFBMEIsa0JBQWtCLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEc7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxvQ0FBb0MsQ0FDbEQsSUFBNkU7SUFFN0UsTUFBTSxjQUFjLEdBQW9CLEVBQUUsQ0FBQztJQUMzQyxLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRTtRQUN0QixNQUFNLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUN4RyxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ1gsY0FBYyxDQUFDLElBQUksQ0FDakIsSUFBSSxhQUFhLENBQ2YsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsRUFDakUs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
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXRoX2xvZ19oYW5kbGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcmNoaXZlci9ldGhfbG9nX2hhbmRsZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hGLE9BQU8sRUFDTCxZQUFZLEVBQ1osc0JBQXNCLEVBQ3RCLFlBQVksRUFDWix1QkFBdUIsRUFDdkIsb0JBQW9CLEVBQ3BCLE9BQU8sRUFDUCxhQUFhLEVBQ2IsT0FBTyxFQUNQLE9BQU8sRUFDUCxvQkFBb0IsR0FDckIsTUFBTSxjQUFjLENBQUM7QUFFdEIsT0FBTyxFQUEwQixrQkFBa0IsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0Rzs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLG9DQUFvQyxDQUNsRCxJQUE2RTtJQUU3RSxNQUFNLGNBQWMsR0FBMkIsRUFBRSxDQUFDO0lBQ2xELEtBQUssTUFBTSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDekMsTUFBTSxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FDeEcsR0FBRyxDQUFDLElBQUksQ0FBQztRQUNYLGNBQWMsQ0FBQyxJQUFJLENBQ2pCLElBQUksb0JBQW9CLENBQ3RCLElBQUksYUFBYSxDQUNmLElB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
@@ -1,3 +1,6 @@
1
1
  export * from './archiver.js';
2
2
  export * from './config.js';
3
+ export { MemoryArchiverStore } from './memory_archiver_store/memory_archiver_store.js';
4
+ export { LMDBArchiverStore } from './lmdb_archiver_store.js';
5
+ export { ArchiverDataStore } from './archiver_store.js';
3
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/archiver/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/archiver/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1,3 +1,5 @@
1
1
  export * from './archiver.js';
2
2
  export * from './config.js';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXJjaGl2ZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxhQUFhLENBQUMifQ==
3
+ export { MemoryArchiverStore } from './memory_archiver_store/memory_archiver_store.js';
4
+ export { LMDBArchiverStore } from './lmdb_archiver_store.js';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXJjaGl2ZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxhQUFhLENBQUM7QUFDNUIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDdkYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUMifQ==
@@ -0,0 +1,125 @@
1
+ import { Fr } from '@aztec/circuits.js';
2
+ import { AztecAddress } from '@aztec/foundation/aztec-address';
3
+ import { CancelledL1ToL2Message, ContractData, ExtendedContractData, GetUnencryptedLogsResponse, L1ToL2Message, L2Block, L2BlockL2Logs, L2Tx, LogFilter, LogType, PendingL1ToL2Message, TxHash } from '@aztec/types';
4
+ import { RootDatabase } from 'lmdb';
5
+ import { ArchiverDataStore } from './archiver_store.js';
6
+ /**
7
+ * LMDB implementation of the ArchiverDataStore interface.
8
+ */
9
+ export declare class LMDBArchiverStore implements ArchiverDataStore {
10
+ #private;
11
+ constructor(db: RootDatabase, logsMaxPageSize?: number);
12
+ close(): Promise<void>;
13
+ /**
14
+ * Append new blocks to the store's list.
15
+ * @param blocks - The L2 blocks to be added to the store.
16
+ * @returns True if the operation is successful.
17
+ */
18
+ addBlocks(blocks: L2Block[]): Promise<boolean>;
19
+ /**
20
+ * Gets up to `limit` amount of L2 blocks starting from `from`.
21
+ * @param start - Number of the first block to return (inclusive).
22
+ * @param limit - The number of blocks to return.
23
+ * @returns The requested L2 blocks.
24
+ */
25
+ getBlocks(start: number, limit: number): Promise<L2Block[]>;
26
+ /**
27
+ * Gets an l2 tx.
28
+ * @param txHash - The txHash of the l2 tx.
29
+ * @returns The requested L2 tx.
30
+ */
31
+ getL2Tx(txHash: TxHash): Promise<L2Tx | undefined>;
32
+ /**
33
+ * Append new logs to the store's list.
34
+ * @param encryptedLogs - The logs to be added to the store.
35
+ * @param unencryptedLogs - The type of the logs to be added to the store.
36
+ * @param blockNumber - The block for which to add the logs.
37
+ * @returns True if the operation is successful.
38
+ */
39
+ addLogs(encryptedLogs: L2BlockL2Logs | undefined, unencryptedLogs: L2BlockL2Logs | undefined, blockNumber: number): Promise<boolean>;
40
+ /**
41
+ * Append new pending L1 to L2 messages to the store.
42
+ * @param messages - The L1 to L2 messages to be added to the store.
43
+ * @returns True if the operation is successful.
44
+ */
45
+ addPendingL1ToL2Messages(messages: PendingL1ToL2Message[]): Promise<boolean>;
46
+ /**
47
+ * Remove pending L1 to L2 messages from the store (if they were cancelled).
48
+ * @param messages - The message keys to be removed from the store.
49
+ * @returns True if the operation is successful.
50
+ */
51
+ cancelPendingL1ToL2Messages(messages: CancelledL1ToL2Message[]): Promise<boolean>;
52
+ /**
53
+ * Messages that have been published in an L2 block are confirmed.
54
+ * Add them to the confirmed store, also remove them from the pending store.
55
+ * @param entryKeys - The message keys to be removed from the store.
56
+ * @returns True if the operation is successful.
57
+ */
58
+ confirmL1ToL2Messages(entryKeys: Fr[]): Promise<boolean>;
59
+ /**
60
+ * Gets up to `limit` amount of pending L1 to L2 messages, sorted by fee
61
+ * @param limit - The number of messages to return (by default NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP).
62
+ * @returns The requested L1 to L2 message keys.
63
+ */
64
+ getPendingL1ToL2MessageKeys(limit: number): Promise<Fr[]>;
65
+ /**
66
+ * Gets the confirmed L1 to L2 message corresponding to the given message key.
67
+ * @param messageKey - The message key to look up.
68
+ * @returns The requested L1 to L2 message or throws if not found.
69
+ */
70
+ getConfirmedL1ToL2Message(messageKey: Fr): Promise<L1ToL2Message>;
71
+ /**
72
+ * Gets up to `limit` amount of logs starting from `from`.
73
+ * @param start - Number of the L2 block to which corresponds the first logs to be returned.
74
+ * @param limit - The number of logs to return.
75
+ * @param logType - Specifies whether to return encrypted or unencrypted logs.
76
+ * @returns The requested logs.
77
+ */
78
+ getLogs(start: number, limit: number, logType: LogType): Promise<L2BlockL2Logs[]>;
79
+ /**
80
+ * Gets unencrypted logs based on the provided filter.
81
+ * @param filter - The filter to apply to the logs.
82
+ * @returns The requested logs.
83
+ */
84
+ getUnencryptedLogs(filter: LogFilter): Promise<GetUnencryptedLogsResponse>;
85
+ /**
86
+ * Add new extended contract data from an L2 block to the store's list.
87
+ * @param data - List of contracts' data to be added.
88
+ * @param blockNum - Number of the L2 block the contract data was deployed in.
89
+ * @returns True if the operation is successful.
90
+ */
91
+ addExtendedContractData(data: ExtendedContractData[], blockNum: number): Promise<boolean>;
92
+ /**
93
+ * Get the extended contract data for this contract.
94
+ * @param contractAddress - The contract data address.
95
+ * @returns The extended contract data or undefined if not found.
96
+ */
97
+ getExtendedContractData(contractAddress: AztecAddress): Promise<ExtendedContractData | undefined>;
98
+ /**
99
+ * Lookup all extended contract data in an L2 block.
100
+ * @param blockNum - The block number to get all contract data from.
101
+ * @returns All extended contract data in the block (if found).
102
+ */
103
+ getExtendedContractDataInBlock(blockNum: number): Promise<ExtendedContractData[]>;
104
+ /**
105
+ * Get basic info for an L2 contract.
106
+ * Contains contract address & the ethereum portal address.
107
+ * @param contractAddress - The contract data address.
108
+ * @returns ContractData with the portal address (if we didn't throw an error).
109
+ */
110
+ getContractData(contractAddress: AztecAddress): Promise<ContractData | undefined>;
111
+ /**
112
+ * Get basic info for an all L2 contracts deployed in a block.
113
+ * Contains contract address & the ethereum portal address.
114
+ * @param blockNumber - Number of the L2 block where contracts were deployed.
115
+ * @returns ContractData with the portal address (if we didn't throw an error).
116
+ */
117
+ getContractDataInBlock(blockNumber: number): Promise<ContractData[] | undefined>;
118
+ /**
119
+ * Gets the number of the latest L2 block processed.
120
+ * @returns The number of the latest L2 block processed.
121
+ */
122
+ getBlockNumber(): Promise<number>;
123
+ getL1BlockNumber(): Promise<bigint>;
124
+ }
125
+ //# sourceMappingURL=lmdb_archiver_store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lmdb_archiver_store.d.ts","sourceRoot":"","sources":["../../src/archiver/lmdb_archiver_store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAG/D,OAAO,EACL,sBAAsB,EACtB,YAAY,EACZ,oBAAoB,EAEpB,0BAA0B,EAE1B,aAAa,EACb,OAAO,EACP,aAAa,EACb,IAAI,EACJ,SAAS,EAET,OAAO,EACP,oBAAoB,EACpB,MAAM,EAEP,MAAM,cAAc,CAAC;AAEtB,OAAO,EAA0B,YAAY,EAAE,MAAM,MAAM,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AA8BxD;;GAEG;AACH,qBAAa,iBAAkB,YAAW,iBAAiB;;gBAoB7C,EAAE,EAAE,YAAY,EAAE,eAAe,GAAE,MAAa;IAgC/C,KAAK;IAIlB;;;;OAIG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAkC9C;;;;;OAKG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAyB3D;;;;OAIG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IAUlD;;;;;;OAMG;IACH,OAAO,CACL,aAAa,EAAE,aAAa,GAAG,SAAS,EACxC,eAAe,EAAE,aAAa,GAAG,SAAS,EAC1C,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC;IAiBnB;;;;OAIG;IACH,wBAAwB,CAAC,QAAQ,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAyC5E;;;;OAIG;IACH,2BAA2B,CAAC,QAAQ,EAAE,sBAAsB,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IA0BjF;;;;;OAKG;IACH,qBAAqB,CAAC,SAAS,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAWxD;;;;OAIG;IACH,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC;IA2CzD;;;;OAIG;IACH,yBAAyB,CAAC,UAAU,EAAE,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;IAajE;;;;;;OAMG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAejF;;;;OAIG;IACH,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAqG1E;;;;;OAKG;IACH,uBAAuB,CAAC,IAAI,EAAE,oBAAoB,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAczF;;;;OAIG;IACH,uBAAuB,CAAC,eAAe,EAAE,YAAY,GAAG,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC;IAsBjG;;;;OAIG;IACH,8BAA8B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IASjF;;;;;OAKG;IACH,eAAe,CAAC,eAAe,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAUjF;;;;;OAKG;IACH,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,GAAG,SAAS,CAAC;IAKhF;;;OAGG;IACH,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAMjC,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;CA0GpC"}