@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
@@ -1,16 +1,16 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
- import { Body, L1ToL2Message, NewInboxLeaf } from '@aztec/circuit-types';
3
- import { AppendOnlyTreeSnapshot, Fr, Header } from '@aztec/circuits.js';
2
+ import { Body, InboxLeaf } from '@aztec/circuit-types';
3
+ import { AppendOnlyTreeSnapshot, Header } from '@aztec/circuits.js';
4
4
  import { EthAddress } from '@aztec/foundation/eth-address';
5
5
  import { PublicClient } from 'viem';
6
6
  /**
7
7
  * Data retrieved from logs
8
8
  */
9
- type DataRetrieval<T> = {
9
+ export type DataRetrieval<T> = {
10
10
  /**
11
- * The next block number.
11
+ * Blocknumber of the last L1 block from which we obtained data.
12
12
  */
13
- nextEthBlockNumber: bigint;
13
+ lastProcessedL1BlockNumber: bigint;
14
14
  /**
15
15
  * The data returned.
16
16
  */
@@ -24,9 +24,9 @@ type DataRetrieval<T> = {
24
24
  * @param searchStartBlock - The block number to use for starting the search.
25
25
  * @param searchEndBlock - The highest block number that we should search up to.
26
26
  * @param expectedNextL2BlockNum - The next L2 block number that we expect to find.
27
- * @returns An array of tuples representing block metadata including the header, archive tree snapshot, and associated l1 block number; as well as the next eth block to search from.
27
+ * @returns An array of tuples representing block metadata including the header, archive tree snapshot; as well as the next eth block to search from.
28
28
  */
29
- export declare function retrieveBlockMetadataFromRollup(publicClient: PublicClient, rollupAddress: EthAddress, blockUntilSynced: boolean, searchStartBlock: bigint, searchEndBlock: bigint, expectedNextL2BlockNum: bigint): Promise<DataRetrieval<[Header, AppendOnlyTreeSnapshot, bigint]>>;
29
+ export declare function retrieveBlockMetadataFromRollup(publicClient: PublicClient, rollupAddress: EthAddress, blockUntilSynced: boolean, searchStartBlock: bigint, searchEndBlock: bigint, expectedNextL2BlockNum: bigint): Promise<DataRetrieval<[Header, AppendOnlyTreeSnapshot]>>;
30
30
  /**
31
31
  * Fetches new L2 block bodies and their hashes.
32
32
  * @param publicClient - The viem public client to use for transaction retrieval.
@@ -38,35 +38,13 @@ export declare function retrieveBlockMetadataFromRollup(publicClient: PublicClie
38
38
  */
39
39
  export declare function retrieveBlockBodiesFromAvailabilityOracle(publicClient: PublicClient, availabilityOracleAddress: EthAddress, blockUntilSynced: boolean, searchStartBlock: bigint, searchEndBlock: bigint): Promise<DataRetrieval<[Body, Buffer]>>;
40
40
  /**
41
- * Fetch new pending L1 to L2 messages.
41
+ * Fetch L1 to L2 messages.
42
42
  * @param publicClient - The viem public client to use for transaction retrieval.
43
43
  * @param inboxAddress - The address of the inbox contract to fetch messages from.
44
44
  * @param blockUntilSynced - If true, blocks until the archiver has fully synced.
45
45
  * @param searchStartBlock - The block number to use for starting the search.
46
46
  * @param searchEndBlock - The highest block number that we should search up to.
47
- * @returns An array of L1ToL2Message and next eth block to search from.
47
+ * @returns An array of InboxLeaf and next eth block to search from.
48
48
  */
49
- export declare function retrieveNewPendingL1ToL2Messages(publicClient: PublicClient, inboxAddress: EthAddress, blockUntilSynced: boolean, searchStartBlock: bigint, searchEndBlock: bigint): Promise<DataRetrieval<[L1ToL2Message, bigint]>>;
50
- /**
51
- * Fetch new L1 to L2 messages.
52
- * @param publicClient - The viem public client to use for transaction retrieval.
53
- * @param newInboxAddress - The address of the inbox contract to fetch messages from.
54
- * @param blockUntilSynced - If true, blocks until the archiver has fully synced.
55
- * @param searchStartBlock - The block number to use for starting the search.
56
- * @param searchEndBlock - The highest block number that we should search up to.
57
- * @returns An array of NewInboxLeaf and next eth block to search from.
58
- */
59
- export declare function retrieveNewL1ToL2Messages(publicClient: PublicClient, newInboxAddress: EthAddress, blockUntilSynced: boolean, searchStartBlock: bigint, searchEndBlock: bigint): Promise<DataRetrieval<NewInboxLeaf>>;
60
- /**
61
- * Fetch newly cancelled L1 to L2 messages.
62
- * @param publicClient - The viem public client to use for transaction retrieval.
63
- * @param inboxAddress - The address of the inbox contract to fetch messages from.
64
- * @param blockUntilSynced - If true, blocks until the archiver has fully synced.
65
- * @param searchStartBlock - The block number to use for starting the search.
66
- * @param searchEndBlock - The highest block number that we should search up to.
67
- * @returns An array of entry keys that were cancelled and next eth block to search from.
68
- * TODO(#4492): Nuke the following when purging the old inbox
69
- */
70
- export declare function retrieveNewCancelledL1ToL2Messages(publicClient: PublicClient, inboxAddress: EthAddress, blockUntilSynced: boolean, searchStartBlock: bigint, searchEndBlock: bigint): Promise<DataRetrieval<[Fr, bigint]>>;
71
- export {};
49
+ export declare function retrieveL1ToL2Messages(publicClient: PublicClient, inboxAddress: EthAddress, blockUntilSynced: boolean, searchStartBlock: bigint, searchEndBlock: bigint): Promise<DataRetrieval<InboxLeaf>>;
72
50
  //# sourceMappingURL=data_retrieval.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"data_retrieval.d.ts","sourceRoot":"","sources":["../../src/archiver/data_retrieval.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAepC;;GAEG;AACH,KAAK,aAAa,CAAC,CAAC,IAAI;IACtB;;OAEG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,aAAa,EAAE,CAAC,EAAE,CAAC;CACpB,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAsB,+BAA+B,CACnD,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,UAAU,EACzB,gBAAgB,EAAE,OAAO,EACzB,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,MAAM,EACtB,sBAAsB,EAAE,MAAM,GAC7B,OAAO,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,sBAAsB,EAAE,MAAM,CAAC,CAAC,CAAC,CA0BlE;AAED;;;;;;;;GAQG;AACH,wBAAsB,yCAAyC,CAC7D,YAAY,EAAE,YAAY,EAC1B,yBAAyB,EAAE,UAAU,EACrC,gBAAgB,EAAE,OAAO,EACzB,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAsBxC;AAED;;;;;;;;GAQG;AACH,wBAAsB,gCAAgC,CACpD,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,UAAU,EACxB,gBAAgB,EAAE,OAAO,EACzB,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,aAAa,CAAC,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,CAqBjD;AAED;;;;;;;;GAQG;AACH,wBAAsB,yBAAyB,CAC7C,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,UAAU,EAC3B,gBAAgB,EAAE,OAAO,EACzB,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAgBtC;AAED;;;;;;;;;GASG;AACH,wBAAsB,kCAAkC,CACtD,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,UAAU,EACxB,gBAAgB,EAAE,OAAO,EACzB,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,aAAa,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAsBtC"}
1
+ {"version":3,"file":"data_retrieval.d.ts","sourceRoot":"","sources":["../../src/archiver/data_retrieval.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAWpC;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;IAC7B;;OAEG;IACH,0BAA0B,EAAE,MAAM,CAAC;IACnC;;OAEG;IACH,aAAa,EAAE,CAAC,EAAE,CAAC;CACpB,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAsB,+BAA+B,CACnD,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,UAAU,EACzB,gBAAgB,EAAE,OAAO,EACzB,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,MAAM,EACtB,sBAAsB,EAAE,MAAM,GAC7B,OAAO,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC,CAAC,CA0B1D;AAED;;;;;;;;GAQG;AACH,wBAAsB,yCAAyC,CAC7D,YAAY,EAAE,YAAY,EAC1B,yBAAyB,EAAE,UAAU,EACrC,gBAAgB,EAAE,OAAO,EACzB,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAsBxC;AAED;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,UAAU,EACxB,gBAAgB,EAAE,OAAO,EACzB,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAgBnC"}
@@ -1,4 +1,4 @@
1
- import { getL1ToL2MessageCancelledLogs, getL2BlockProcessedLogs, getLeafInsertedLogs, getPendingL1ToL2MessageLogs, getTxsPublishedLogs, processCancelledL1ToL2MessagesLogs, processL2BlockProcessedLogs, processLeafInsertedLogs, processPendingL1ToL2MessageAddedLogs, processTxsPublishedLogs, } from './eth_log_handlers.js';
1
+ import { getL2BlockProcessedLogs, getLeafInsertedLogs, getTxsPublishedLogs, processL2BlockProcessedLogs, processLeafInsertedLogs, processTxsPublishedLogs, } from './eth_log_handlers.js';
2
2
  /**
3
3
  * Fetches new L2 block metadata (header, archive snapshot).
4
4
  * @param publicClient - The viem public client to use for transaction retrieval.
@@ -7,7 +7,7 @@ import { getL1ToL2MessageCancelledLogs, getL2BlockProcessedLogs, getLeafInserted
7
7
  * @param searchStartBlock - The block number to use for starting the search.
8
8
  * @param searchEndBlock - The highest block number that we should search up to.
9
9
  * @param expectedNextL2BlockNum - The next L2 block number that we expect to find.
10
- * @returns An array of tuples representing block metadata including the header, archive tree snapshot, and associated l1 block number; as well as the next eth block to search from.
10
+ * @returns An array of tuples representing block metadata including the header, archive tree snapshot; as well as the next eth block to search from.
11
11
  */
12
12
  export async function retrieveBlockMetadataFromRollup(publicClient, rollupAddress, blockUntilSynced, searchStartBlock, searchEndBlock, expectedNextL2BlockNum) {
13
13
  const retrievedBlockMetadata = [];
@@ -24,7 +24,7 @@ export async function retrieveBlockMetadataFromRollup(publicClient, rollupAddres
24
24
  searchStartBlock = l2BlockProcessedLogs[l2BlockProcessedLogs.length - 1].blockNumber + 1n;
25
25
  expectedNextL2BlockNum += BigInt(newBlockMetadata.length);
26
26
  } while (blockUntilSynced && searchStartBlock <= searchEndBlock);
27
- return { nextEthBlockNumber: searchStartBlock, retrievedData: retrievedBlockMetadata };
27
+ return { lastProcessedL1BlockNumber: searchStartBlock - 1n, retrievedData: retrievedBlockMetadata };
28
28
  }
29
29
  /**
30
30
  * Fetches new L2 block bodies and their hashes.
@@ -49,86 +49,32 @@ export async function retrieveBlockBodiesFromAvailabilityOracle(publicClient, av
49
49
  retrievedBlockBodies.push(...newBlockBodies);
50
50
  searchStartBlock = l2TxsPublishedLogs[l2TxsPublishedLogs.length - 1].blockNumber + 1n;
51
51
  } while (blockUntilSynced && searchStartBlock <= searchEndBlock);
52
- return { nextEthBlockNumber: searchStartBlock, retrievedData: retrievedBlockBodies };
52
+ return { lastProcessedL1BlockNumber: searchStartBlock - 1n, retrievedData: retrievedBlockBodies };
53
53
  }
54
54
  /**
55
- * Fetch new pending L1 to L2 messages.
55
+ * Fetch L1 to L2 messages.
56
56
  * @param publicClient - The viem public client to use for transaction retrieval.
57
57
  * @param inboxAddress - The address of the inbox contract to fetch messages from.
58
58
  * @param blockUntilSynced - If true, blocks until the archiver has fully synced.
59
59
  * @param searchStartBlock - The block number to use for starting the search.
60
60
  * @param searchEndBlock - The highest block number that we should search up to.
61
- * @returns An array of L1ToL2Message and next eth block to search from.
61
+ * @returns An array of InboxLeaf and next eth block to search from.
62
62
  */
63
- export async function retrieveNewPendingL1ToL2Messages(publicClient, inboxAddress, blockUntilSynced, searchStartBlock, searchEndBlock) {
64
- const retrievedNewL1ToL2Messages = [];
63
+ export async function retrieveL1ToL2Messages(publicClient, inboxAddress, blockUntilSynced, searchStartBlock, searchEndBlock) {
64
+ const retrievedL1ToL2Messages = [];
65
65
  do {
66
66
  if (searchStartBlock > searchEndBlock) {
67
67
  break;
68
68
  }
69
- const newL1ToL2MessageLogs = await getPendingL1ToL2MessageLogs(publicClient, inboxAddress, searchStartBlock, searchEndBlock);
70
- if (newL1ToL2MessageLogs.length === 0) {
71
- break;
72
- }
73
- const newL1ToL2Messages = processPendingL1ToL2MessageAddedLogs(newL1ToL2MessageLogs);
74
- retrievedNewL1ToL2Messages.push(...newL1ToL2Messages);
75
- // handles the case when there are no new messages:
76
- searchStartBlock = (newL1ToL2MessageLogs.findLast(msgLog => !!msgLog)?.blockNumber || searchStartBlock) + 1n;
77
- } while (blockUntilSynced && searchStartBlock <= searchEndBlock);
78
- return { nextEthBlockNumber: searchStartBlock, retrievedData: retrievedNewL1ToL2Messages };
79
- }
80
- /**
81
- * Fetch new L1 to L2 messages.
82
- * @param publicClient - The viem public client to use for transaction retrieval.
83
- * @param newInboxAddress - The address of the inbox contract to fetch messages from.
84
- * @param blockUntilSynced - If true, blocks until the archiver has fully synced.
85
- * @param searchStartBlock - The block number to use for starting the search.
86
- * @param searchEndBlock - The highest block number that we should search up to.
87
- * @returns An array of NewInboxLeaf and next eth block to search from.
88
- */
89
- export async function retrieveNewL1ToL2Messages(publicClient, newInboxAddress, blockUntilSynced, searchStartBlock, searchEndBlock) {
90
- const retrievedNewL1ToL2Messages = [];
91
- do {
92
- if (searchStartBlock > searchEndBlock) {
93
- break;
94
- }
95
- const leafInsertedLogs = await getLeafInsertedLogs(publicClient, newInboxAddress, searchStartBlock, searchEndBlock);
69
+ const leafInsertedLogs = await getLeafInsertedLogs(publicClient, inboxAddress, searchStartBlock, searchEndBlock);
96
70
  if (leafInsertedLogs.length === 0) {
97
71
  break;
98
72
  }
99
- const newL1ToL2Messages = processLeafInsertedLogs(leafInsertedLogs);
100
- retrievedNewL1ToL2Messages.push(...newL1ToL2Messages);
73
+ const l1ToL2Messages = processLeafInsertedLogs(leafInsertedLogs);
74
+ retrievedL1ToL2Messages.push(...l1ToL2Messages);
101
75
  // handles the case when there are no new messages:
102
76
  searchStartBlock = (leafInsertedLogs.findLast(msgLog => !!msgLog)?.blockNumber || searchStartBlock) + 1n;
103
77
  } while (blockUntilSynced && searchStartBlock <= searchEndBlock);
104
- return { nextEthBlockNumber: searchStartBlock, retrievedData: retrievedNewL1ToL2Messages };
105
- }
106
- /**
107
- * Fetch newly cancelled L1 to L2 messages.
108
- * @param publicClient - The viem public client to use for transaction retrieval.
109
- * @param inboxAddress - The address of the inbox contract to fetch messages from.
110
- * @param blockUntilSynced - If true, blocks until the archiver has fully synced.
111
- * @param searchStartBlock - The block number to use for starting the search.
112
- * @param searchEndBlock - The highest block number that we should search up to.
113
- * @returns An array of entry keys that were cancelled and next eth block to search from.
114
- * TODO(#4492): Nuke the following when purging the old inbox
115
- */
116
- export async function retrieveNewCancelledL1ToL2Messages(publicClient, inboxAddress, blockUntilSynced, searchStartBlock, searchEndBlock) {
117
- const retrievedNewCancelledL1ToL2Messages = [];
118
- do {
119
- if (searchStartBlock > searchEndBlock) {
120
- break;
121
- }
122
- const newL1ToL2MessageCancelledLogs = await getL1ToL2MessageCancelledLogs(publicClient, inboxAddress, searchStartBlock, searchEndBlock);
123
- if (newL1ToL2MessageCancelledLogs.length === 0) {
124
- break;
125
- }
126
- const newCancelledL1ToL2Messages = processCancelledL1ToL2MessagesLogs(newL1ToL2MessageCancelledLogs);
127
- retrievedNewCancelledL1ToL2Messages.push(...newCancelledL1ToL2Messages);
128
- // handles the case when there are no new messages:
129
- searchStartBlock =
130
- (newL1ToL2MessageCancelledLogs.findLast(msgLog => !!msgLog)?.blockNumber || searchStartBlock) + 1n;
131
- } while (blockUntilSynced && searchStartBlock <= searchEndBlock);
132
- return { nextEthBlockNumber: searchStartBlock, retrievedData: retrievedNewCancelledL1ToL2Messages };
78
+ return { lastProcessedL1BlockNumber: searchStartBlock - 1n, retrievedData: retrievedL1ToL2Messages };
133
79
  }
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YV9yZXRyaWV2YWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXJjaGl2ZXIvZGF0YV9yZXRyaWV2YWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUNMLDZCQUE2QixFQUM3Qix1QkFBdUIsRUFDdkIsbUJBQW1CLEVBQ25CLDJCQUEyQixFQUMzQixtQkFBbUIsRUFDbkIsa0NBQWtDLEVBQ2xDLDJCQUEyQixFQUMzQix1QkFBdUIsRUFDdkIsb0NBQW9DLEVBQ3BDLHVCQUF1QixHQUN4QixNQUFNLHVCQUF1QixDQUFDO0FBZ0IvQjs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLCtCQUErQixDQUNuRCxZQUEwQixFQUMxQixhQUF5QixFQUN6QixnQkFBeUIsRUFDekIsZ0JBQXdCLEVBQ3hCLGNBQXNCLEVBQ3RCLHNCQUE4QjtJQUU5QixNQUFNLHNCQUFzQixHQUErQyxFQUFFLENBQUM7SUFDOUUsR0FBRyxDQUFDO1FBQ0YsSUFBSSxnQkFBZ0IsR0FBRyxjQUFjLEVBQUUsQ0FBQztZQUN0QyxNQUFNO1FBQ1IsQ0FBQztRQUNELE1BQU0sb0JBQW9CLEdBQUcsTUFBTSx1QkFBdUIsQ0FDeEQsWUFBWSxFQUNaLGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsY0FBYyxDQUNmLENBQUM7UUFDRixJQUFJLG9CQUFvQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN0QyxNQUFNO1FBQ1IsQ0FBQztRQUVELE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSwyQkFBMkIsQ0FDeEQsWUFBWSxFQUNaLHNCQUFzQixFQUN0QixvQkFBb0IsQ0FDckIsQ0FBQztRQUNGLHNCQUFzQixDQUFDLElBQUksQ0FBQyxHQUFHLGdCQUFnQixDQUFDLENBQUM7UUFDakQsZ0JBQWdCLEdBQUcsb0JBQW9CLENBQUMsb0JBQW9CLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVksR0FBRyxFQUFFLENBQUM7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
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YV9yZXRyaWV2YWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXJjaGl2ZXIvZGF0YV9yZXRyaWV2YWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixtQkFBbUIsRUFDbkIsbUJBQW1CLEVBQ25CLDJCQUEyQixFQUMzQix1QkFBdUIsRUFDdkIsdUJBQXVCLEdBQ3hCLE1BQU0sdUJBQXVCLENBQUM7QUFnQi9COzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsK0JBQStCLENBQ25ELFlBQTBCLEVBQzFCLGFBQXlCLEVBQ3pCLGdCQUF5QixFQUN6QixnQkFBd0IsRUFDeEIsY0FBc0IsRUFDdEIsc0JBQThCO0lBRTlCLE1BQU0sc0JBQXNCLEdBQXVDLEVBQUUsQ0FBQztJQUN0RSxHQUFHLENBQUM7UUFDRixJQUFJLGdCQUFnQixHQUFHLGNBQWMsRUFBRSxDQUFDO1lBQ3RDLE1BQU07UUFDUixDQUFDO1FBQ0QsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLHVCQUF1QixDQUN4RCxZQUFZLEVBQ1osYUFBYSxFQUNiLGdCQUFnQixFQUNoQixjQUFjLENBQ2YsQ0FBQztRQUNGLElBQUksb0JBQW9CLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3RDLE1BQU07UUFDUixDQUFDO1FBRUQsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLDJCQUEyQixDQUN4RCxZQUFZLEVBQ1osc0JBQXNCLEVBQ3RCLG9CQUFvQixDQUNyQixDQUFDO1FBQ0Ysc0JBQXNCLENBQUMsSUFBSSxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQztRQUNqRCxnQkFBZ0IsR0FBRyxvQkFBb0IsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsV0FBWSxHQUFHLEVBQUUsQ0FBQztRQUMzRixzQkFBc0IsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENB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
@@ -1,36 +1,23 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
- import { Body, L1ToL2Message, NewInboxLeaf } from '@aztec/circuit-types';
2
+ import { Body, InboxLeaf } from '@aztec/circuit-types';
3
3
  import { AppendOnlyTreeSnapshot, Header } from '@aztec/circuits.js';
4
4
  import { EthAddress } from '@aztec/foundation/eth-address';
5
- import { Fr } from '@aztec/foundation/fields';
6
- import { AvailabilityOracleAbi, InboxAbi, NewInboxAbi, RollupAbi } from '@aztec/l1-artifacts';
5
+ import { AvailabilityOracleAbi, InboxAbi, RollupAbi } from '@aztec/l1-artifacts';
7
6
  import { Log, PublicClient } from 'viem';
8
7
  /**
9
8
  * Processes newly received LeafInserted (L1 to L2) logs.
10
9
  * @param logs - LeafInserted logs.
11
10
  * @returns Array of all processed LeafInserted logs
12
11
  */
13
- export declare function processLeafInsertedLogs(logs: Log<bigint, number, false, undefined, true, typeof NewInboxAbi, 'LeafInserted'>[]): NewInboxLeaf[];
14
- /**
15
- * Processes newly received MessageAdded (L1 to L2) logs.
16
- * @param logs - MessageAdded logs.
17
- * @returns Array of all Pending L1 to L2 messages that were processed
18
- */
19
- export declare function processPendingL1ToL2MessageAddedLogs(logs: Log<bigint, number, false, undefined, true, typeof InboxAbi, 'MessageAdded'>[]): [L1ToL2Message, bigint][];
20
- /**
21
- * Process newly received L1ToL2MessageCancelled logs.
22
- * @param logs - L1ToL2MessageCancelled logs.
23
- * @returns Array of entry keys of the L1 to L2 messages that were cancelled
24
- */
25
- export declare function processCancelledL1ToL2MessagesLogs(logs: Log<bigint, number, false, undefined, true, typeof InboxAbi, 'L1ToL2MessageCancelled'>[]): [Fr, bigint][];
12
+ export declare function processLeafInsertedLogs(logs: Log<bigint, number, false, undefined, true, typeof InboxAbi, 'LeafInserted'>[]): InboxLeaf[];
26
13
  /**
27
14
  * Processes newly received L2BlockProcessed logs.
28
15
  * @param publicClient - The viem public client to use for transaction retrieval.
29
16
  * @param expectedL2BlockNumber - The next expected L2 block number.
30
17
  * @param logs - L2BlockProcessed logs.
31
- * @returns - An array of tuples representing block metadata including the header, archive tree snapshot, and associated l1 block number.
18
+ * @returns - An array of tuples representing block metadata including the header, archive tree snapshot.
32
19
  */
33
- export declare function processL2BlockProcessedLogs(publicClient: PublicClient, expectedL2BlockNumber: bigint, logs: Log<bigint, number, false, undefined, true, typeof RollupAbi, 'L2BlockProcessed'>[]): Promise<[Header, AppendOnlyTreeSnapshot, bigint][]>;
20
+ export declare function processL2BlockProcessedLogs(publicClient: PublicClient, expectedL2BlockNumber: bigint, logs: Log<bigint, number, false, undefined, true, typeof RollupAbi, 'L2BlockProcessed'>[]): Promise<[Header, AppendOnlyTreeSnapshot][]>;
34
21
  export declare function processTxsPublishedLogs(publicClient: PublicClient, logs: Log<bigint, number, false, undefined, true, typeof AvailabilityOracleAbi, 'TxsPublished'>[]): Promise<[Body, Buffer][]>;
35
22
  /**
36
23
  * Gets relevant `L2BlockProcessed` logs from chain.
@@ -51,30 +38,12 @@ export declare function getL2BlockProcessedLogs(publicClient: PublicClient, roll
51
38
  */
52
39
  export declare function getTxsPublishedLogs(publicClient: PublicClient, dataAvailabilityOracleAddress: EthAddress, fromBlock: bigint, toBlock: bigint): Promise<Log<bigint, number, false, undefined, true, typeof AvailabilityOracleAbi, 'TxsPublished'>[]>;
53
40
  /**
54
- * Get relevant `MessageAdded` logs emitted by Inbox on chain.
41
+ * Get relevant `LeafInserted` logs emitted by Inbox on chain.
55
42
  * @param publicClient - The viem public client to use for transaction retrieval.
56
43
  * @param inboxAddress - The address of the inbox contract.
57
44
  * @param fromBlock - First block to get logs from (inclusive).
58
45
  * @param toBlock - Last block to get logs from (inclusive).
59
- * @returns An array of `MessageAdded` logs.
60
- */
61
- export declare function getPendingL1ToL2MessageLogs(publicClient: PublicClient, inboxAddress: EthAddress, fromBlock: bigint, toBlock: bigint): Promise<Log<bigint, number, false, undefined, true, typeof InboxAbi, 'MessageAdded'>[]>;
62
- /**
63
- * Get relevant `L1ToL2MessageCancelled` logs emitted by Inbox on chain when pending messages are cancelled
64
- * @param publicClient - The viem public client to use for transaction retrieval.
65
- * @param inboxAddress - The address of the inbox contract.
66
- * @param fromBlock - First block to get logs from (inclusive).
67
- * @param toBlock - Last block to get logs from (inclusive).
68
- * @returns An array of `L1ToL2MessageCancelled` logs.
69
- */
70
- export declare function getL1ToL2MessageCancelledLogs(publicClient: PublicClient, inboxAddress: EthAddress, fromBlock: bigint, toBlock: bigint): Promise<Log<bigint, number, false, undefined, true, typeof InboxAbi, 'L1ToL2MessageCancelled'>[]>;
71
- /**
72
- * Get relevant `LeafInserted` logs emitted by NewInbox on chain.
73
- * @param publicClient - The viem public client to use for transaction retrieval.
74
- * @param newInboxAddress - The address of the new inbox contract.
75
- * @param fromBlock - First block to get logs from (inclusive).
76
- * @param toBlock - Last block to get logs from (inclusive).
77
46
  * @returns An array of `LeafInserted` logs.
78
47
  */
79
- export declare function getLeafInsertedLogs(publicClient: PublicClient, newInboxAddress: EthAddress, fromBlock: bigint, toBlock: bigint): Promise<Log<bigint, number, false, undefined, true, typeof NewInboxAbi, 'LeafInserted'>[]>;
48
+ export declare function getLeafInsertedLogs(publicClient: PublicClient, inboxAddress: EthAddress, fromBlock: bigint, toBlock: bigint): Promise<Log<bigint, number, false, undefined, true, typeof InboxAbi, 'LeafInserted'>[]>;
80
49
  //# sourceMappingURL=eth_log_handlers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"eth_log_handlers.d.ts","sourceRoot":"","sources":["../../src/archiver/eth_log_handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eth_log_handlers.d.ts","sourceRoot":"","sources":["../../src/archiver/eth_log_handlers.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAG3D,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEjF,OAAO,EAAO,GAAG,EAAE,YAAY,EAA0D,MAAM,MAAM,CAAC;AAEtG;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,QAAQ,EAAE,cAAc,CAAC,EAAE,GACnF,SAAS,EAAE,CAOb;AAED;;;;;;GAMG;AACH,wBAAsB,2BAA2B,CAC/C,YAAY,EAAE,YAAY,EAC1B,qBAAqB,EAAE,MAAM,EAC7B,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,SAAS,EAAE,kBAAkB,CAAC,EAAE,GACxF,OAAO,CAAC,CAAC,MAAM,EAAE,sBAAsB,CAAC,EAAE,CAAC,CAmB7C;AAED,wBAAsB,uBAAuB,CAC3C,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,qBAAqB,EAAE,cAAc,CAAC,EAAE,GAChG,OAAO,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAQ3B;AA0ED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,UAAU,EACzB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,SAAS,EAAE,kBAAkB,CAAC,EAAE,CAAC,CAU9F;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,YAAY,EAC1B,6BAA6B,EAAE,UAAU,EACzC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,qBAAqB,EAAE,cAAc,CAAC,EAAE,CAAC,CAUtG;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,UAAU,EACxB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,QAAQ,EAAE,cAAc,CAAC,EAAE,CAAC,CAUzF"}
@@ -1,10 +1,8 @@
1
- import { Body, L1Actor, L1ToL2Message, L2Actor, NewInboxLeaf } from '@aztec/circuit-types';
1
+ import { Body, InboxLeaf } from '@aztec/circuit-types';
2
2
  import { AppendOnlyTreeSnapshot, Header } from '@aztec/circuits.js';
3
- import { AztecAddress } from '@aztec/foundation/aztec-address';
4
- import { EthAddress } from '@aztec/foundation/eth-address';
5
3
  import { Fr } from '@aztec/foundation/fields';
6
4
  import { numToUInt32BE } from '@aztec/foundation/serialize';
7
- import { AvailabilityOracleAbi, InboxAbi, NewInboxAbi, RollupAbi } from '@aztec/l1-artifacts';
5
+ import { AvailabilityOracleAbi, InboxAbi, RollupAbi } from '@aztec/l1-artifacts';
8
6
  import { decodeFunctionData, getAbiItem, getAddress, hexToBytes } from 'viem';
9
7
  /**
10
8
  * Processes newly received LeafInserted (L1 to L2) logs.
@@ -15,44 +13,16 @@ export function processLeafInsertedLogs(logs) {
15
13
  const leaves = [];
16
14
  for (const log of logs) {
17
15
  const { blockNumber, index, value } = log.args;
18
- leaves.push(new NewInboxLeaf(blockNumber, index, Fr.fromString(value)));
16
+ leaves.push(new InboxLeaf(blockNumber, index, Fr.fromString(value)));
19
17
  }
20
18
  return leaves;
21
19
  }
22
- /**
23
- * Processes newly received MessageAdded (L1 to L2) logs.
24
- * @param logs - MessageAdded logs.
25
- * @returns Array of all Pending L1 to L2 messages that were processed
26
- */
27
- export function processPendingL1ToL2MessageAddedLogs(logs) {
28
- const l1ToL2Messages = [];
29
- for (const log of logs) {
30
- const { sender, senderChainId, recipient, recipientVersion, content, secretHash, deadline, fee, entryKey } = log.args;
31
- l1ToL2Messages.push([
32
- 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)),
33
- log.blockNumber,
34
- ]);
35
- }
36
- return l1ToL2Messages;
37
- }
38
- /**
39
- * Process newly received L1ToL2MessageCancelled logs.
40
- * @param logs - L1ToL2MessageCancelled logs.
41
- * @returns Array of entry keys of the L1 to L2 messages that were cancelled
42
- */
43
- export function processCancelledL1ToL2MessagesLogs(logs) {
44
- const cancelledL1ToL2Messages = [];
45
- for (const log of logs) {
46
- cancelledL1ToL2Messages.push([Fr.fromString(log.args.entryKey), log.blockNumber]);
47
- }
48
- return cancelledL1ToL2Messages;
49
- }
50
20
  /**
51
21
  * Processes newly received L2BlockProcessed logs.
52
22
  * @param publicClient - The viem public client to use for transaction retrieval.
53
23
  * @param expectedL2BlockNumber - The next expected L2 block number.
54
24
  * @param logs - L2BlockProcessed logs.
55
- * @returns - An array of tuples representing block metadata including the header, archive tree snapshot, and associated l1 block number.
25
+ * @returns - An array of tuples representing block metadata including the header, archive tree snapshot.
56
26
  */
57
27
  export async function processL2BlockProcessedLogs(publicClient, expectedL2BlockNumber, logs) {
58
28
  const retrievedBlockMetadata = [];
@@ -63,7 +33,7 @@ export async function processL2BlockProcessedLogs(publicClient, expectedL2BlockN
63
33
  }
64
34
  // TODO: Fetch blocks from calldata in parallel
65
35
  const [header, archive] = await getBlockMetadataFromRollupTx(publicClient, log.transactionHash, log.args.blockNumber);
66
- retrievedBlockMetadata.push([header, archive, log.blockNumber]);
36
+ retrievedBlockMetadata.push([header, archive]);
67
37
  expectedL2BlockNumber++;
68
38
  }
69
39
  return retrievedBlockMetadata;
@@ -166,60 +136,22 @@ export function getTxsPublishedLogs(publicClient, dataAvailabilityOracleAddress,
166
136
  });
167
137
  }
168
138
  /**
169
- * Get relevant `MessageAdded` logs emitted by Inbox on chain.
139
+ * Get relevant `LeafInserted` logs emitted by Inbox on chain.
170
140
  * @param publicClient - The viem public client to use for transaction retrieval.
171
141
  * @param inboxAddress - The address of the inbox contract.
172
142
  * @param fromBlock - First block to get logs from (inclusive).
173
143
  * @param toBlock - Last block to get logs from (inclusive).
174
- * @returns An array of `MessageAdded` logs.
175
- */
176
- export function getPendingL1ToL2MessageLogs(publicClient, inboxAddress, fromBlock, toBlock) {
177
- return publicClient.getLogs({
178
- address: getAddress(inboxAddress.toString()),
179
- event: getAbiItem({
180
- abi: InboxAbi,
181
- name: 'MessageAdded',
182
- }),
183
- fromBlock,
184
- toBlock: toBlock + 1n, // the toBlock argument in getLogs is exclusive
185
- });
186
- }
187
- /**
188
- * Get relevant `L1ToL2MessageCancelled` logs emitted by Inbox on chain when pending messages are cancelled
189
- * @param publicClient - The viem public client to use for transaction retrieval.
190
- * @param inboxAddress - The address of the inbox contract.
191
- * @param fromBlock - First block to get logs from (inclusive).
192
- * @param toBlock - Last block to get logs from (inclusive).
193
- * @returns An array of `L1ToL2MessageCancelled` logs.
144
+ * @returns An array of `LeafInserted` logs.
194
145
  */
195
- export function getL1ToL2MessageCancelledLogs(publicClient, inboxAddress, fromBlock, toBlock) {
146
+ export function getLeafInsertedLogs(publicClient, inboxAddress, fromBlock, toBlock) {
196
147
  return publicClient.getLogs({
197
148
  address: getAddress(inboxAddress.toString()),
198
149
  event: getAbiItem({
199
150
  abi: InboxAbi,
200
- name: 'L1ToL2MessageCancelled',
201
- }),
202
- fromBlock,
203
- toBlock: toBlock + 1n, // the toBlock argument in getLogs is exclusive
204
- });
205
- }
206
- /**
207
- * Get relevant `LeafInserted` logs emitted by NewInbox on chain.
208
- * @param publicClient - The viem public client to use for transaction retrieval.
209
- * @param newInboxAddress - The address of the new inbox contract.
210
- * @param fromBlock - First block to get logs from (inclusive).
211
- * @param toBlock - Last block to get logs from (inclusive).
212
- * @returns An array of `LeafInserted` logs.
213
- */
214
- export function getLeafInsertedLogs(publicClient, newInboxAddress, fromBlock, toBlock) {
215
- return publicClient.getLogs({
216
- address: getAddress(newInboxAddress.toString()),
217
- event: getAbiItem({
218
- abi: NewInboxAbi,
219
151
  name: 'LeafInserted',
220
152
  }),
221
153
  fromBlock,
222
154
  toBlock: toBlock + 1n, // the toBlock argument in getLogs is exclusive
223
155
  });
224
156
  }
225
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXRoX2xvZ19oYW5kbGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcmNoaXZlci9ldGhfbG9nX2hhbmRsZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0YsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUU5RixPQUFPLEVBQTBCLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXRHOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsdUJBQXVCLENBQ3JDLElBQXVGO0lBRXZGLE1BQU0sTUFBTSxHQUFtQixFQUFFLENBQUM7SUFDbEMsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QixNQUFNLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQy9DLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxZQUFZLENBQUMsV0FBVyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsb0NBQW9DLENBQ2xELElBQW9GO0lBRXBGLE1BQU0sY0FBYyxHQUE4QixFQUFFLENBQUM7SUFDckQsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QixNQUFNLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUN4RyxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ1gsY0FBYyxDQUFDLElBQUksQ0FBQztZQUNsQixJQUFJLGFBQWEsQ0FDZixJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUNqRSxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQ3pFLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQ3RCLEVBQUUsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQ3pCLFFBQVEsRUFDUixNQUFNLENBQUMsR0FBRyxDQUFDLEVBQ1gsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FDeEI7WUFDRCxHQUFHLENBQUMsV0FBWTtTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxjQUFjLENBQUM7QUFDeEIsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsa0NBQWtDLENBQ2hELElBQThGO0lBRTlGLE1BQU0sdUJBQXVCLEdBQW1CLEVBQUUsQ0FBQztJQUNuRCxLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3ZCLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLENBQUMsV0FBWSxDQUFDLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBQ0QsT0FBTyx1QkFBdUIsQ0FBQztBQUNqQyxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSwyQkFBMkIsQ0FDL0MsWUFBMEIsRUFDMUIscUJBQTZCLEVBQzdCLElBQXlGO0lBRXpGLE1BQU0sc0JBQXNCLEdBQStDLEVBQUUsQ0FBQztJQUM5RSxLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3RDLElBQUksUUFBUSxLQUFLLHFCQUFxQixFQUFFLENBQUM7WUFDdkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsR0FBRyxxQkFBcUIsR0FBRyxZQUFZLEdBQUcsUUFBUSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQy9HLENBQUM7UUFDRCwrQ0FBK0M7UUFDL0MsTUFBTSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsR0FBRyxNQUFNLDRCQUE0QixDQUMxRCxZQUFZLEVBQ1osR0FBRyxDQUFDLGVBQWdCLEVBQ3BCLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUNyQixDQUFDO1FBRUYsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsV0FBWSxDQUFDLENBQUMsQ0FBQztRQUNqRSxxQkFBcUIsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxPQUFPLHNCQUFzQixDQUFDO0FBQ2hDLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLHVCQUF1QixDQUMzQyxZQUEwQixFQUMxQixJQUFpRztJQUVqRyxNQUFNLG9CQUFvQixHQUFxQixFQUFFLENBQUM7SUFDbEQsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QixNQUFNLFlBQVksR0FBRyxNQUFNLHNDQUFzQyxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsZUFBZ0IsQ0FBQyxDQUFDO1FBQ3RHLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlGLENBQUM7SUFFRCxPQUFPLG9CQUFvQixDQUFDO0FBQzlCLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILEtBQUssVUFBVSw0QkFBNEIsQ0FDekMsWUFBMEIsRUFDMUIsTUFBcUIsRUFDckIsVUFBa0I7SUFFbEIsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLFlBQVksQ0FBQyxjQUFjLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM1RSxNQUFNLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxHQUFHLGtCQUFrQixDQUFDO1FBQ2hELEdBQUcsRUFBRSxTQUFTO1FBQ2QsSUFBSTtLQUNMLENBQUMsQ0FBQztJQUVILElBQUksWUFBWSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQy9CLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUNELE1BQU0sQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLEdBQUcsSUFBc0MsQ0FBQztJQUUzRSxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVyRSxNQUFNLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBRTVFLElBQUkscUJBQXFCLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDekMsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsVUFBVSxZQUFZLHFCQUFxQixFQUFFLENBQUMsQ0FBQztJQUNwRyxDQUFDO0lBRUQsTUFBTSxPQUFPLEdBQUcsc0JBQXNCLENBQUMsVUFBVSxDQUMvQyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQ1osTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSx1QkFBdUI7UUFDaEUsYUFBYSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLHlDQUF5QztLQUM3RSxDQUFDLENBQ0gsQ0FBQztJQUVGLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDM0IsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxLQUFLLFVBQVUsc0NBQXNDLENBQ25ELFlBQTBCLEVBQzFCLE1BQXFCO0lBRXJCLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxZQUFZLENBQUMsY0FBYyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDNUUsTUFBTSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQztRQUNoRCxHQUFHLEVBQUUscUJBQXFCO1FBQzFCLElBQUk7S0FDTCxDQUFDLENBQUM7SUFFSCxJQUFJLFlBQVksS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUMvQixNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBYyxDQUFDO0lBRWpDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXBFLE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QixDQUNyQyxZQUEwQixFQUMxQixhQUF5QixFQUN6QixTQUFpQixFQUNqQixPQUFlO0lBRWYsT0FBTyxZQUFZLENBQUMsT0FBTyxDQUFDO1FBQzFCLE9BQU8sRUFBRSxVQUFVLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzdDLEtBQUssRUFBRSxVQUFVLENBQUM7WUFDaEIsR0FBRyxFQUFFLFNBQVM7WUFDZCxJQUFJLEVBQUUsa0JBQWtCO1NBQ3pCLENBQUM7UUFDRixTQUFTO1FBQ1QsT0FBTyxFQUFFLE9BQU8sR0FBRyxFQUFFLEVBQUUsK0NBQStDO0tBQ3ZFLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxZQUEwQixFQUMxQiw2QkFBeUMsRUFDekMsU0FBaUIsRUFDakIsT0FBZTtJQUVmLE9BQU8sWUFBWSxDQUFDLE9BQU8sQ0FBQztRQUMxQixPQUFPLEVBQUUsVUFBVSxDQUFDLDZCQUE2QixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzdELEtBQUssRUFBRSxVQUFVLENBQUM7WUFDaEIsR0FBRyxFQUFFLHFCQUFxQjtZQUMxQixJQUFJLEVBQUUsY0FBYztTQUNyQixDQUFDO1FBQ0YsU0FBUztRQUNULE9BQU8sRUFBRSxPQUFPLEdBQUcsRUFBRSxFQUFFLCtDQUErQztLQUN2RSxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSwyQkFBMkIsQ0FDekMsWUFBMEIsRUFDMUIsWUFBd0IsRUFDeEIsU0FBaUIsRUFDakIsT0FBZTtJQUVmLE9BQU8sWUFBWSxDQUFDLE9BQU8sQ0FBQztRQUMxQixPQUFPLEVBQUUsVUFBVSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM1QyxLQUFLLEVBQUUsVUFBVSxDQUFDO1lBQ2hCLEdBQUcsRUFBRSxRQUFRO1lBQ2IsSUFBSSxFQUFFLGNBQWM7U0FDckIsQ0FBQztRQUNGLFNBQVM7UUFDVCxPQUFPLEVBQUUsT0FBTyxHQUFHLEVBQUUsRUFBRSwrQ0FBK0M7S0FDdkUsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsNkJBQTZCLENBQzNDLFlBQTBCLEVBQzFCLFlBQXdCLEVBQ3hCLFNBQWlCLEVBQ2pCLE9BQWU7SUFFZixPQUFPLFlBQVksQ0FBQyxPQUFPLENBQUM7UUFDMUIsT0FBTyxFQUFFLFVBQVUsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDNUMsS0FBSyxFQUFFLFVBQVUsQ0FBQztZQUNoQixHQUFHLEVBQUUsUUFBUTtZQUNiLElBQUksRUFBRSx3QkFBd0I7U0FDL0IsQ0FBQztRQUNGLFNBQVM7UUFDVCxPQUFPLEVBQUUsT0FBTyxHQUFHLEVBQUUsRUFBRSwrQ0FBK0M7S0FDdkUsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQ2pDLFlBQTBCLEVBQzFCLGVBQTJCLEVBQzNCLFNBQWlCLEVBQ2pCLE9BQWU7SUFFZixPQUFPLFlBQVksQ0FBQyxPQUFPLENBQUM7UUFDMUIsT0FBTyxFQUFFLFVBQVUsQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDL0MsS0FBSyxFQUFFLFVBQVUsQ0FBQztZQUNoQixHQUFHLEVBQUUsV0FBVztZQUNoQixJQUFJLEVBQUUsY0FBYztTQUNyQixDQUFDO1FBQ0YsU0FBUztRQUNULE9BQU8sRUFBRSxPQUFPLEdBQUcsRUFBRSxFQUFFLCtDQUErQztLQUN2RSxDQUFDLENBQUM7QUFDTCxDQUFDIn0=
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXRoX2xvZ19oYW5kbGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcmNoaXZlci9ldGhfbG9nX2hhbmRsZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVqRixPQUFPLEVBQTBCLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXRHOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsdUJBQXVCLENBQ3JDLElBQW9GO0lBRXBGLE1BQU0sTUFBTSxHQUFnQixFQUFFLENBQUM7SUFDL0IsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QixNQUFNLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQy9DLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxTQUFTLENBQUMsV0FBVyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsMkJBQTJCLENBQy9DLFlBQTBCLEVBQzFCLHFCQUE2QixFQUM3QixJQUF5RjtJQUV6RixNQUFN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
@@ -1,6 +1,7 @@
1
1
  import { L2Block, TxEffect, TxHash, TxReceipt } from '@aztec/circuit-types';
2
2
  import { AztecAddress } from '@aztec/circuits.js';
3
3
  import { AztecKVStore } from '@aztec/kv-store';
4
+ import { DataRetrieval } from '../data_retrieval.js';
4
5
  import { BlockBodyStore } from './block_body_store.js';
5
6
  /**
6
7
  * LMDB implementation of the ArchiverDataStore interface.
@@ -11,10 +12,10 @@ export declare class BlockStore {
11
12
  constructor(db: AztecKVStore, blockBodyStore: BlockBodyStore);
12
13
  /**
13
14
  * Append new blocks to the store's list.
14
- * @param blocks - The L2 blocks to be added to the store.
15
+ * @param blocks - The L2 blocks to be added to the store and the last processed L1 block.
15
16
  * @returns True if the operation is successful.
16
17
  */
17
- addBlocks(blocks: L2Block[]): Promise<boolean>;
18
+ addBlocks(blocks: DataRetrieval<L2Block>): Promise<boolean>;
18
19
  /**
19
20
  * Gets up to `limit` amount of L2 blocks starting from `from`.
20
21
  * @param start - Number of the first block to return (inclusive).
@@ -57,11 +58,11 @@ export declare class BlockStore {
57
58
  * Gets the number of the latest L2 block processed.
58
59
  * @returns The number of the latest L2 block processed.
59
60
  */
60
- getBlockNumber(): number;
61
+ getSynchedL2BlockNumber(): number;
61
62
  /**
62
63
  * Gets the most recent L1 block processed.
63
64
  * @returns The L1 block that published the latest L2 block
64
65
  */
65
- getL1BlockNumber(): bigint;
66
+ getSynchedL1BlockNumber(): bigint;
66
67
  }
67
68
  //# sourceMappingURL=block_store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"block_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/kv_archiver_store/block_store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAY,MAAM,sBAAsB,CAAC;AACtF,OAAO,EAA0B,YAAY,EAAgC,MAAM,oBAAoB,CAAC;AAExG,OAAO,EAAE,YAAY,EAAmB,MAAM,iBAAiB,CAAC;AAEhE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAUvD;;GAEG;AACH,qBAAa,UAAU;;IAcT,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc;IAQpE;;;;OAIG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAkB9C;;;;;OAKG;IACF,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC;IAMnE;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IASlD,OAAO,CAAC,wBAAwB;IAgBhC;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAUjD;;;;OAIG;IACH,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAU1D;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,SAAS;IAIjF;;;;OAIG;IACH,mBAAmB,CAAC,eAAe,EAAE,YAAY,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,SAAS;IAIpG;;;OAGG;IACH,cAAc,IAAI,MAAM;IAKxB;;;OAGG;IACH,gBAAgB,IAAI,MAAM;CAsB3B"}
1
+ {"version":3,"file":"block_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/kv_archiver_store/block_store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAY,MAAM,sBAAsB,CAAC;AACtF,OAAO,EAA0B,YAAY,EAAgC,MAAM,oBAAoB,CAAC;AAExG,OAAO,EAAE,YAAY,EAAmC,MAAM,iBAAiB,CAAC;AAEhF,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AASvD;;GAEG;AACH,qBAAa,UAAU;;IAgBT,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc;IASpE;;;;OAIG;IACH,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAmB3D;;;;;OAKG;IACF,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC;IAMnE;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IASlD,OAAO,CAAC,wBAAwB;IAgBhC;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAUjD;;;;OAIG;IACH,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAU1D;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,SAAS;IAIjF;;;;OAIG;IACH,mBAAmB,CAAC,eAAe,EAAE,YAAY,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,SAAS;IAIpG;;;OAGG;IACH,uBAAuB,IAAI,MAAM;IAKjC;;;OAGG;IACH,uBAAuB,IAAI,MAAM;CAiBlC"}
@@ -1,4 +1,4 @@
1
- var _BlockStore_instances, _BlockStore_blocks, _BlockStore_txIndex, _BlockStore_contractIndex, _BlockStore_log, _BlockStore_blockBodyStore, _BlockStore_computeBlockRange;
1
+ var _BlockStore_instances, _BlockStore_blocks, _BlockStore_lastSynchedL1Block, _BlockStore_txIndex, _BlockStore_contractIndex, _BlockStore_log, _BlockStore_blockBodyStore, _BlockStore_computeBlockRange;
2
2
  import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
3
  import { L2Block, TxReceipt, TxStatus } from '@aztec/circuit-types';
4
4
  import { AppendOnlyTreeSnapshot, Header, INITIAL_L2_BLOCK_NUM } from '@aztec/circuits.js';
@@ -12,6 +12,8 @@ export class BlockStore {
12
12
  this.db = db;
13
13
  /** Map block number to block data */
14
14
  _BlockStore_blocks.set(this, void 0);
15
+ /** Stores L1 block number in which the last processed L2 block was included */
16
+ _BlockStore_lastSynchedL1Block.set(this, void 0);
15
17
  /** Index mapping transaction hash (as a string) to its location in a block */
16
18
  _BlockStore_txIndex.set(this, void 0);
17
19
  /** Index mapping a contract's address (as a string) to its location in a block */
@@ -22,24 +24,25 @@ export class BlockStore {
22
24
  __classPrivateFieldSet(this, _BlockStore_blocks, db.openMap('archiver_blocks'), "f");
23
25
  __classPrivateFieldSet(this, _BlockStore_txIndex, db.openMap('archiver_tx_index'), "f");
24
26
  __classPrivateFieldSet(this, _BlockStore_contractIndex, db.openMap('archiver_contract_index'), "f");
27
+ __classPrivateFieldSet(this, _BlockStore_lastSynchedL1Block, db.openSingleton('archiver_last_synched_l1_block'), "f");
25
28
  }
26
29
  /**
27
30
  * Append new blocks to the store's list.
28
- * @param blocks - The L2 blocks to be added to the store.
31
+ * @param blocks - The L2 blocks to be added to the store and the last processed L1 block.
29
32
  * @returns True if the operation is successful.
30
33
  */
31
34
  addBlocks(blocks) {
32
35
  return this.db.transaction(() => {
33
- for (const block of blocks) {
36
+ for (const block of blocks.retrievedData) {
34
37
  void __classPrivateFieldGet(this, _BlockStore_blocks, "f").set(block.number, {
35
38
  header: block.header.toBuffer(),
36
39
  archive: block.archive.toBuffer(),
37
- l1BlockNumber: block.getL1BlockNumber(),
38
40
  });
39
41
  block.getTxs().forEach((tx, i) => {
40
42
  void __classPrivateFieldGet(this, _BlockStore_txIndex, "f").set(tx.txHash.toString(), [block.number, i]);
41
43
  });
42
44
  }
45
+ void __classPrivateFieldGet(this, _BlockStore_lastSynchedL1Block, "f").set(blocks.lastProcessedL1BlockNumber);
43
46
  return true;
44
47
  });
45
48
  }
@@ -125,7 +128,7 @@ export class BlockStore {
125
128
  * Gets the number of the latest L2 block processed.
126
129
  * @returns The number of the latest L2 block processed.
127
130
  */
128
- getBlockNumber() {
131
+ getSynchedL2BlockNumber() {
129
132
  const [lastBlockNumber] = __classPrivateFieldGet(this, _BlockStore_blocks, "f").keys({ reverse: true, limit: 1 });
130
133
  return typeof lastBlockNumber === 'number' ? lastBlockNumber : INITIAL_L2_BLOCK_NUM - 1;
131
134
  }
@@ -133,17 +136,11 @@ export class BlockStore {
133
136
  * Gets the most recent L1 block processed.
134
137
  * @returns The L1 block that published the latest L2 block
135
138
  */
136
- getL1BlockNumber() {
137
- const [lastBlock] = __classPrivateFieldGet(this, _BlockStore_blocks, "f").values({ reverse: true, limit: 1 });
138
- if (!lastBlock) {
139
- return 0n;
140
- }
141
- else {
142
- return lastBlock.l1BlockNumber;
143
- }
139
+ getSynchedL1BlockNumber() {
140
+ return __classPrivateFieldGet(this, _BlockStore_lastSynchedL1Block, "f").get() ?? 0n;
144
141
  }
145
142
  }
146
- _BlockStore_blocks = new WeakMap(), _BlockStore_txIndex = new WeakMap(), _BlockStore_contractIndex = new WeakMap(), _BlockStore_log = new WeakMap(), _BlockStore_blockBodyStore = new WeakMap(), _BlockStore_instances = new WeakSet(), _BlockStore_computeBlockRange = function _BlockStore_computeBlockRange(start, limit) {
143
+ _BlockStore_blocks = new WeakMap(), _BlockStore_lastSynchedL1Block = new WeakMap(), _BlockStore_txIndex = new WeakMap(), _BlockStore_contractIndex = new WeakMap(), _BlockStore_log = new WeakMap(), _BlockStore_blockBodyStore = new WeakMap(), _BlockStore_instances = new WeakSet(), _BlockStore_computeBlockRange = function _BlockStore_computeBlockRange(start, limit) {
147
144
  if (limit < 1) {
148
145
  throw new Error(`Invalid limit: ${limit}`);
149
146
  }
@@ -154,4 +151,4 @@ _BlockStore_blocks = new WeakMap(), _BlockStore_txIndex = new WeakMap(), _BlockS
154
151
  const end = start + limit;
155
152
  return { start, end };
156
153
  };
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXJjaGl2ZXIva3ZfYXJjaGl2ZXJfc3RvcmUvYmxvY2tfc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFvQixTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEYsT0FBTyxFQUFFLHNCQUFzQixFQUFnQixNQUFNLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQWExRDs7R0FFRztBQUNILE1BQU0sT0FBTyxVQUFVO0lBY3JCLFlBQW9CLEVBQWdCLEVBQUUsY0FBOEI7O1FBQWhELE9BQUUsR0FBRixFQUFFLENBQWM7UUFicEMscUNBQXFDO1FBQ3JDLHFDQUF3QztRQUV4Qyw4RUFBOEU7UUFDOUUsc0NBQTRDO1FBRTVDLGtGQUFrRjtRQUNsRiw0Q0FBa0Q7UUFFbEQsMEJBQU8saUJBQWlCLENBQUMsNEJBQTRCLENBQUMsRUFBQztRQUV2RCw2Q0FBZ0M7UUFHOUIsdUJBQUEsSUFBSSw4QkFBbUIsY0FBYyxNQUFBLENBQUM7UUFFdEMsdUJBQUEsSUFBSSxzQkFBVyxFQUFFLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLE1BQUEsQ0FBQztRQUM3Qyx1QkFBQSxJQUFJLHVCQUFZLEVBQUUsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsTUFBQSxDQUFDO1FBQ2hELHVCQUFBLElBQUksNkJBQWtCLEVBQUUsQ0FBQyxPQUFPLENBQUMseUJBQXlCLENBQUMsTUFBQSxDQUFDO0lBQzlELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsU0FBUyxDQUFDLE1BQWlCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFO1lBQzlCLEtBQUssTUFBTSxLQUFLLElBQUks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
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXJjaGl2ZXIva3ZfYXJjaGl2ZXJfc3RvcmUvYmxvY2tfc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFvQixTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEYsT0FBTyxFQUFFLHNCQUFzQixFQUFnQixNQUFNLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQWExRDs7R0FFRztBQUNILE1BQU0sT0FBTyxVQUFVO0lBZ0JyQixZQUFvQixFQUFnQixFQUFFLGNBQThCOztRQUFoRCxPQUFFLEdBQUYsRUFBRSxDQUFjO1FBZnBDLHFDQUFxQztRQUNyQyxxQ0FBd0M7UUFDeEMsK0VBQStFO1FBQy9FLGlEQUE0QztRQUU1Qyw4RUFBOEU7UUFDOUUsc0NBQTRDO1FBRTVDLGtGQUFrRjtRQUNsRiw0Q0FBa0Q7UUFFbEQsMEJBQU8saUJBQWlCLENBQUMsNEJBQTRCLENBQUMsRUFBQztRQUV2RCw2Q0FBZ0M7UUFHOUIsdUJBQUEsSUFBSSw4QkFBbUIsY0FBYyxNQUFBLENBQUM7UUFFdEMsdUJBQUEsSUFBSSxzQkFBVyxFQUFFLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLE1BQUEsQ0FBQztRQUM3Qyx1QkFBQSxJQUFJLHVCQUFZLEVBQUUsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsTUFBQSxDQUFDO1FBQ2hELHVCQUFBLElBQUksNkJBQWtCLEVBQUUsQ0FBQyxPQUFPLENBQUMseUJBQXlCLENBQUMsTUFBQSxDQUFDO1FBQzVELHVCQUFBLElBQUksa0NBQXVCLEVBQUUsQ0FBQyxhQUFhLENBQUMsZ0NBQWdDLENBQUMsTUFBQSxDQUFDO0lBQ2hGLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gs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