@aztec/archiver 0.30.1 → 0.32.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 (50) hide show
  1. package/dest/archiver/archiver.d.ts +7 -9
  2. package/dest/archiver/archiver.d.ts.map +1 -1
  3. package/dest/archiver/archiver.js +51 -22
  4. package/dest/archiver/archiver_store.d.ts +16 -11
  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 +51 -15
  8. package/dest/archiver/data_retrieval.js +6 -6
  9. package/dest/archiver/eth_log_handlers.d.ts +7 -7
  10. package/dest/archiver/eth_log_handlers.d.ts.map +1 -1
  11. package/dest/archiver/eth_log_handlers.js +11 -11
  12. package/dest/archiver/kv_archiver_store/block_store.d.ts.map +1 -1
  13. package/dest/archiver/kv_archiver_store/block_store.js +3 -2
  14. package/dest/archiver/kv_archiver_store/contract_class_store.d.ts +3 -4
  15. package/dest/archiver/kv_archiver_store/contract_class_store.d.ts.map +1 -1
  16. package/dest/archiver/kv_archiver_store/contract_class_store.js +64 -13
  17. package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts +9 -7
  18. package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts.map +1 -1
  19. package/dest/archiver/kv_archiver_store/kv_archiver_store.js +11 -9
  20. package/dest/archiver/kv_archiver_store/log_store.d.ts +3 -3
  21. package/dest/archiver/kv_archiver_store/log_store.d.ts.map +1 -1
  22. package/dest/archiver/kv_archiver_store/log_store.js +7 -5
  23. package/dest/archiver/kv_archiver_store/message_store.d.ts +3 -2
  24. package/dest/archiver/kv_archiver_store/message_store.d.ts.map +1 -1
  25. package/dest/archiver/kv_archiver_store/message_store.js +10 -6
  26. package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.d.ts +4 -4
  27. package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.d.ts.map +1 -1
  28. package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.js +11 -8
  29. package/dest/archiver/memory_archiver_store/memory_archiver_store.d.ts +11 -7
  30. package/dest/archiver/memory_archiver_store/memory_archiver_store.d.ts.map +1 -1
  31. package/dest/archiver/memory_archiver_store/memory_archiver_store.js +34 -11
  32. package/dest/rpc/archiver_client.d.ts.map +1 -1
  33. package/dest/rpc/archiver_client.js +4 -3
  34. package/dest/rpc/archiver_server.d.ts.map +1 -1
  35. package/dest/rpc/archiver_server.js +4 -3
  36. package/package.json +11 -9
  37. package/src/archiver/archiver.ts +80 -23
  38. package/src/archiver/archiver_store.ts +33 -11
  39. package/src/archiver/archiver_store_test_suite.ts +65 -18
  40. package/src/archiver/data_retrieval.ts +6 -6
  41. package/src/archiver/eth_log_handlers.ts +13 -13
  42. package/src/archiver/kv_archiver_store/block_store.ts +9 -1
  43. package/src/archiver/kv_archiver_store/contract_class_store.ts +106 -18
  44. package/src/archiver/kv_archiver_store/kv_archiver_store.ts +31 -12
  45. package/src/archiver/kv_archiver_store/log_store.ts +23 -10
  46. package/src/archiver/kv_archiver_store/message_store.ts +10 -5
  47. package/src/archiver/memory_archiver_store/l1_to_l2_message_store.ts +10 -7
  48. package/src/archiver/memory_archiver_store/memory_archiver_store.ts +66 -15
  49. package/src/rpc/archiver_client.ts +5 -3
  50. package/src/rpc/archiver_server.ts +4 -2
@@ -1,4 +1,4 @@
1
- import { ExtendedUnencryptedL2Log, L2BlockContext, LogId, LogType, TxReceipt, TxStatus, UnencryptedL2Log, } from '@aztec/circuit-types';
1
+ import { ExtendedUnencryptedL2Log, L2BlockContext, LogId, LogType, TxReceipt, TxStatus, } from '@aztec/circuit-types';
2
2
  import { Fr, INITIAL_L2_BLOCK_NUM } from '@aztec/circuits.js';
3
3
  import { L1ToL2MessageStore } from './l1_to_l2_message_store.js';
4
4
  /**
@@ -36,12 +36,19 @@ export class MemoryArchiverStore {
36
36
  */
37
37
  this.l1ToL2Messages = new L1ToL2MessageStore();
38
38
  this.contractClasses = new Map();
39
+ this.privateFunctions = new Map();
40
+ this.unconstrainedFunctions = new Map();
39
41
  this.contractInstances = new Map();
40
42
  this.lastL1BlockNewBlocks = 0n;
41
43
  this.lastL1BlockNewMessages = 0n;
42
44
  }
43
45
  getContractClass(id) {
44
- return Promise.resolve(this.contractClasses.get(id.toString()));
46
+ const contractClass = this.contractClasses.get(id.toString());
47
+ return Promise.resolve(contractClass && {
48
+ ...contractClass,
49
+ privateFunctions: this.privateFunctions.get(id.toString()) ?? [],
50
+ unconstrainedFunctions: this.unconstrainedFunctions.get(id.toString()) ?? [],
51
+ });
45
52
  }
46
53
  getContractClassIds() {
47
54
  return Promise.resolve(Array.from(this.contractClasses.keys()).map(key => Fr.fromString(key)));
@@ -49,6 +56,21 @@ export class MemoryArchiverStore {
49
56
  getContractInstance(address) {
50
57
  return Promise.resolve(this.contractInstances.get(address.toString()));
51
58
  }
59
+ addFunctions(contractClassId, newPrivateFunctions, newUnconstrainedFunctions) {
60
+ const privateFunctions = this.privateFunctions.get(contractClassId.toString()) ?? [];
61
+ const unconstrainedFunctions = this.unconstrainedFunctions.get(contractClassId.toString()) ?? [];
62
+ const updatedPrivateFunctions = [
63
+ ...privateFunctions,
64
+ ...newPrivateFunctions.filter(newFn => !privateFunctions.find(f => f.selector.equals(newFn.selector))),
65
+ ];
66
+ const updatedUnconstrainedFunctions = [
67
+ ...unconstrainedFunctions,
68
+ ...newUnconstrainedFunctions.filter(newFn => !unconstrainedFunctions.find(f => f.selector.equals(newFn.selector))),
69
+ ];
70
+ this.privateFunctions.set(contractClassId.toString(), updatedPrivateFunctions);
71
+ this.unconstrainedFunctions.set(contractClassId.toString(), updatedUnconstrainedFunctions);
72
+ return Promise.resolve(true);
73
+ }
52
74
  addContractClasses(data, _blockNumber) {
53
75
  for (const contractClass of data) {
54
76
  this.contractClasses.set(contractClass.id.toString(), contractClass);
@@ -128,12 +150,13 @@ export class MemoryArchiverStore {
128
150
  return Promise.resolve(true);
129
151
  }
130
152
  /**
131
- * Gets the L1 to L2 message index in the L1 to L2 message tree.
153
+ * Gets the first L1 to L2 message index in the L1 to L2 message tree which is greater than or equal to `startIndex`.
132
154
  * @param l1ToL2Message - The L1 to L2 message.
155
+ * @param startIndex - The index to start searching from.
133
156
  * @returns The index of the L1 to L2 message in the L1 to L2 message tree (undefined if not found).
134
157
  */
135
- getL1ToL2MessageIndex(l1ToL2Message) {
136
- return Promise.resolve(this.l1ToL2Messages.getMessageIndex(l1ToL2Message));
158
+ getL1ToL2MessageIndex(l1ToL2Message, startIndex) {
159
+ return Promise.resolve(this.l1ToL2Messages.getMessageIndex(l1ToL2Message, startIndex));
137
160
  }
138
161
  /**
139
162
  * Gets up to `limit` amount of L2 blocks starting from `from`.
@@ -197,7 +220,7 @@ export class MemoryArchiverStore {
197
220
  if (from < INITIAL_L2_BLOCK_NUM || limit < 1) {
198
221
  throw new Error(`Invalid limit: ${limit}`);
199
222
  }
200
- const logs = logType === LogType.ENCRYPTED ? this.encryptedLogsPerBlock : this.unencryptedLogsPerBlock;
223
+ const logs = (logType === LogType.ENCRYPTED ? this.encryptedLogsPerBlock : this.unencryptedLogsPerBlock);
201
224
  if (from > logs.length) {
202
225
  return Promise.resolve([]);
203
226
  }
@@ -253,7 +276,7 @@ export class MemoryArchiverStore {
253
276
  const blockContext = this.l2BlockContexts[fromBlockIndex];
254
277
  const blockLogs = this.unencryptedLogsPerBlock[fromBlockIndex];
255
278
  for (; txIndexInBlock < blockLogs.txLogs.length; txIndexInBlock++) {
256
- const txLogs = blockLogs.txLogs[txIndexInBlock].unrollLogs().map(log => UnencryptedL2Log.fromBuffer(log));
279
+ const txLogs = blockLogs.txLogs[txIndexInBlock].unrollLogs();
257
280
  for (; logIndexInTx < txLogs.length; logIndexInTx++) {
258
281
  const log = txLogs[logIndexInTx];
259
282
  if ((!txHash || blockContext.getTxHash(txIndexInBlock).equals(txHash)) &&
@@ -287,11 +310,11 @@ export class MemoryArchiverStore {
287
310
  }
288
311
  return Promise.resolve(this.l2BlockContexts[this.l2BlockContexts.length - 1].block.number);
289
312
  }
290
- getSynchedL1BlockNumbers() {
313
+ getSynchPoint() {
291
314
  return Promise.resolve({
292
- blocks: this.lastL1BlockNewBlocks,
293
- messages: this.lastL1BlockNewMessages,
315
+ blocksSynchedTo: this.lastL1BlockNewBlocks,
316
+ messagesSynchedTo: this.lastL1BlockNewMessages,
294
317
  });
295
318
  }
296
319
  }
297
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5X2FyY2hpdmVyX3N0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FyY2hpdmVyL21lbW9yeV9hcmNoaXZlcl9zdG9yZS9tZW1vcnlfYXJjaGl2ZXJfc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHdCQUF3QixFQUl4QixjQUFjLEVBR2QsS0FBSyxFQUNMLE9BQU8sRUFHUCxTQUFTLEVBQ1QsUUFBUSxFQUNSLGdCQUFnQixHQUNqQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxFQUFFLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQU05RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVqRTs7R0FFRztBQUNILE1BQU0sT0FBTyxtQkFBbUI7SUF3QzlCO0lBQ0Usa0ZBQWtGO0lBQ2xFLE9BQWU7UUFBZixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBekNqQzs7V0FFRztRQUNLLG9CQUFlLEdBQXFCLEVBQUUsQ0FBQztRQUUvQzs7V0FFRztRQUNLLGtCQUFhLEdBQXNCLElBQUksR0FBRyxFQUFFLENBQUM7UUFFckQ7O1dBRUc7UUFDSyxjQUFTLEdBQWUsRUFBRSxDQUFDO1FBRW5DOzs7V0FHRztRQUNLLDBCQUFxQixHQUFvQixFQUFFLENBQUM7UUFFcEQ7OztXQUdHO1FBQ0ssNEJBQXVCLEdBQW9CLEVBQUUsQ0FBQztRQUV0RDs7V0FFRztRQUNLLG1CQUFjLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBRTFDLG9CQUFlLEdBQXFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFFOUQsc0JBQWlCLEdBQTZDLElBQUksR0FBRyxFQUFFLENBQUM7UUFFeEUseUJBQW9CLEdBQVcsRUFBRSxDQUFDO1FBQ2xDLDJCQUFzQixHQUFXLEVBQUUsQ0FBQztJQUt6QyxDQUFDO0lBRUcsZ0JBQWdCLENBQUMsRUFBTTtRQUM1QixPQUFP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
320
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5X2FyY2hpdmVyX3N0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FyY2hpdmVyL21lbW9yeV9hcmNoaXZlcl9zdG9yZS9tZW1vcnlfYXJjaGl2ZXJfc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLHdCQUF3QixFQUt4QixjQUFjLEVBR2QsS0FBSyxFQUNMLE9BQU8sRUFHUCxTQUFTLEVBQ1QsUUFBUSxHQUVULE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLEVBQUUsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBVzlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRWpFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLG1CQUFtQjtJQTRDOUI7SUFDRSxrRkFBa0Y7SUFDbEUsT0FBZTtRQUFmLFlBQU8sR0FBUCxPQUFPLENBQVE7UUE3Q2pDOztXQUVHO1FBQ0ssb0JBQWUsR0FBcUIsRUFBRSxDQUFDO1FBRS9DOztXQUVHO1FBQ0ssa0JBQWEsR0FBc0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUVyRDs7V0FFRztRQUNLLGNBQVMsR0FBZSxFQUFFLENBQUM7UUFFbkM7OztXQUdHO1FBQ0ssMEJBQXFCLEdBQTZCLEVBQUUsQ0FBQztRQUU3RDs7O1dBR0c7UUFDSyw0QkFBdUIsR0FBK0IsRUFBRSxDQUFDO1FBRWpFOztXQUVHO1FBQ0ssbUJBQWMsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFFMUMsb0JBQWUsR0FBcUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUU5RCxxQkFBZ0IsR0FBZ0UsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUUxRiwyQkFBc0IsR0FBNEQsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUU1RixzQkFBaUIsR0FBNkMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUV4RSx5QkFBb0IsR0FBVyxFQUFFLENBQUM7UUFDbEMs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
@@ -1 +1 @@
1
- {"version":3,"file":"archiver_client.d.ts","sourceRoot":"","sources":["../../src/rpc/archiver_client.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,eAAO,MAAM,oBAAoB,QAAS,MAAM,qGAAuC,aAcpF,CAAC"}
1
+ {"version":3,"file":"archiver_client.d.ts","sourceRoot":"","sources":["../../src/rpc/archiver_client.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,eAAO,MAAM,oBAAoB,QAAS,MAAM,qGAAuC,aAenE,CAAC"}
@@ -1,4 +1,4 @@
1
- import { ExtendedUnencryptedL2Log, L2Block, L2BlockL2Logs, NullifierMembershipWitness, TxReceipt, } from '@aztec/circuit-types';
1
+ import { EncryptedL2BlockL2Logs, ExtendedUnencryptedL2Log, L2Block, NullifierMembershipWitness, TxReceipt, UnencryptedL2BlockL2Logs, } from '@aztec/circuit-types';
2
2
  import { EthAddress, Fr } from '@aztec/circuits.js';
3
3
  import { createJsonRpcClient, makeFetch } from '@aztec/foundation/json-rpc/client';
4
4
  export const createArchiverClient = (url, fetch = makeFetch([1, 2, 3], true)) => createJsonRpcClient(url, {
@@ -6,6 +6,7 @@ export const createArchiverClient = (url, fetch = makeFetch([1, 2, 3], true)) =>
6
6
  ExtendedUnencryptedL2Log,
7
7
  Fr,
8
8
  L2Block,
9
- L2BlockL2Logs,
9
+ EncryptedL2BlockL2Logs,
10
+ UnencryptedL2BlockL2Logs,
10
11
  }, { TxReceipt, NullifierMembershipWitness }, false, 'archiver', fetch);
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjaGl2ZXJfY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JwYy9hcmNoaXZlcl9jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHdCQUF3QixFQUN4QixPQUFPLEVBQ1AsYUFBYSxFQUNiLDBCQUEwQixFQUMxQixTQUFTLEdBQ1YsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUluRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLEdBQVcsRUFBRSxLQUFLLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBaUIsRUFBRSxDQUNyRyxtQkFBbUIsQ0FDakIsR0FBRyxFQUNIO0lBQ0UsVUFBVTtJQUNWLHdCQUF3QjtJQUN4QixFQUFFO0lBQ0YsT0FBTztJQUNQLGFBQWE7Q0FDZCxFQUNELEVBQUUsU0FBUyxFQUFFLDBCQUEwQixFQUFFLEVBQ3pDLEtBQUssRUFDTCxVQUFVLEVBQ1YsS0FBSyxDQUNOLENBQUMifQ==
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjaGl2ZXJfY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JwYy9hcmNoaXZlcl9jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHNCQUFzQixFQUN0Qix3QkFBd0IsRUFDeEIsT0FBTyxFQUNQLDBCQUEwQixFQUMxQixTQUFTLEVBQ1Qsd0JBQXdCLEdBQ3pCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFJbkYsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxHQUFXLEVBQUUsS0FBSyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQWlCLEVBQUUsQ0FDckcsbUJBQW1CLENBQ2pCLEdBQUcsRUFDSDtJQUNFLFVBQVU7SUFDVix3QkFBd0I7SUFDeEIsRUFBRTtJQUNGLE9BQU87SUFDUCxzQkFBc0I7SUFDdEIsd0JBQXdCO0NBQ3pCLEVBQ0QsRUFBRSxTQUFTLEVBQUUsMEJBQTBCLEVBQUUsRUFDekMsS0FBSyxFQUNMLFVBQVUsRUFDVixLQUFLLENBQ1csQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"archiver_server.d.ts","sourceRoot":"","sources":["../../src/rpc/archiver_server.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAElE,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,eAAe,EAAE,QAAQ,GAAG,aAAa,CAchF"}
1
+ {"version":3,"file":"archiver_server.d.ts","sourceRoot":"","sources":["../../src/rpc/archiver_server.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAElE,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,eAAe,EAAE,QAAQ,GAAG,aAAa,CAehF"}
@@ -1,4 +1,4 @@
1
- import { ExtendedUnencryptedL2Log, L2Block, L2BlockL2Logs, NullifierMembershipWitness, TxEffect, TxReceipt, } from '@aztec/circuit-types';
1
+ import { EncryptedL2BlockL2Logs, ExtendedUnencryptedL2Log, L2Block, NullifierMembershipWitness, TxEffect, TxReceipt, UnencryptedL2BlockL2Logs, } from '@aztec/circuit-types';
2
2
  import { EthAddress, Fr } from '@aztec/circuits.js';
3
3
  import { JsonRpcServer } from '@aztec/foundation/json-rpc/server';
4
4
  /**
@@ -12,8 +12,9 @@ export function createArchiverRpcServer(archiverService) {
12
12
  ExtendedUnencryptedL2Log,
13
13
  Fr,
14
14
  L2Block,
15
- L2BlockL2Logs,
15
+ EncryptedL2BlockL2Logs,
16
+ UnencryptedL2BlockL2Logs,
16
17
  TxEffect,
17
18
  }, { TxReceipt, NullifierMembershipWitness }, ['start', 'stop']);
18
19
  }
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjaGl2ZXJfc2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JwYy9hcmNoaXZlcl9zZXJ2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHdCQUF3QixFQUN4QixPQUFPLEVBQ1AsYUFBYSxFQUNiLDBCQUEwQixFQUMxQixRQUFRLEVBQ1IsU0FBUyxHQUNWLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFJbEU7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxlQUF5QjtJQUMvRCxPQUFPLElBQUksYUFBYSxDQUN0QixlQUFlLEVBQ2Y7UUFDRSxVQUFVO1FBQ1Ysd0JBQXdCO1FBQ3hCLEVBQUU7UUFDRixPQUFPO1FBQ1AsYUFBYTtRQUNiLFFBQVE7S0FDVCxFQUNELEVBQUUsU0FBUyxFQUFFLDBCQUEwQixFQUFFLEVBQ3pDLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUNsQixDQUFDO0FBQ0osQ0FBQyJ9
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjaGl2ZXJfc2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JwYy9hcmNoaXZlcl9zZXJ2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHNCQUFzQixFQUN0Qix3QkFBd0IsRUFDeEIsT0FBTyxFQUNQLDBCQUEwQixFQUMxQixRQUFRLEVBQ1IsU0FBUyxFQUNULHdCQUF3QixHQUN6QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBSWxFOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsZUFBeUI7SUFDL0QsT0FBTyxJQUFJLGFBQWEsQ0FDdEIsZUFBZSxFQUNmO1FBQ0UsVUFBVTtRQUNWLHdCQUF3QjtRQUN4QixFQUFFO1FBQ0YsT0FBTztRQUNQLHNCQUFzQjtRQUN0Qix3QkFBd0I7UUFDeEIsUUFBUTtLQUNULEVBQ0QsRUFBRSxTQUFTLEVBQUUsMEJBQTBCLEVBQUUsRUFDekMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQ2xCLENBQUM7QUFDSixDQUFDIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/archiver",
3
- "version": "0.30.1",
3
+ "version": "0.32.0",
4
4
  "type": "module",
5
5
  "exports": "./dest/index.js",
6
6
  "typedocOptions": {
@@ -35,16 +35,17 @@
35
35
  "workerThreads": true
36
36
  },
37
37
  "dependencies": {
38
- "@aztec/circuit-types": "0.30.1",
39
- "@aztec/circuits.js": "0.30.1",
40
- "@aztec/ethereum": "0.30.1",
41
- "@aztec/foundation": "0.30.1",
42
- "@aztec/kv-store": "0.30.1",
43
- "@aztec/l1-artifacts": "0.30.1",
44
- "@aztec/protocol-contracts": "0.30.1",
45
- "@aztec/types": "0.30.1",
38
+ "@aztec/circuit-types": "0.32.0",
39
+ "@aztec/circuits.js": "0.32.0",
40
+ "@aztec/ethereum": "0.32.0",
41
+ "@aztec/foundation": "0.32.0",
42
+ "@aztec/kv-store": "0.32.0",
43
+ "@aztec/l1-artifacts": "0.32.0",
44
+ "@aztec/protocol-contracts": "0.32.0",
45
+ "@aztec/types": "0.32.0",
46
46
  "debug": "^4.3.4",
47
47
  "lmdb": "^2.9.2",
48
+ "lodash.groupby": "^4.6.0",
48
49
  "lodash.omit": "^4.5.0",
49
50
  "tsc-watch": "^6.0.0",
50
51
  "tslib": "^2.5.0",
@@ -55,6 +56,7 @@
55
56
  "@jest/globals": "^29.5.0",
56
57
  "@types/debug": "^4.1.7",
57
58
  "@types/jest": "^29.5.0",
59
+ "@types/lodash.groupby": "^4.6.9",
58
60
  "@types/lodash.omit": "^4.5.7",
59
61
  "@types/node": "^18.15.11",
60
62
  "@types/ws": "^8.5.4",
@@ -1,4 +1,5 @@
1
1
  import {
2
+ FromLogType,
2
3
  GetUnencryptedLogsResponse,
3
4
  L1ToL2MessageSource,
4
5
  L2Block,
@@ -13,21 +14,30 @@ import {
13
14
  UnencryptedL2Log,
14
15
  } from '@aztec/circuit-types';
15
16
  import { ContractClassRegisteredEvent, FunctionSelector } from '@aztec/circuits.js';
16
- import { ContractInstanceDeployedEvent } from '@aztec/circuits.js/contract';
17
+ import {
18
+ ContractInstanceDeployedEvent,
19
+ PrivateFunctionBroadcastedEvent,
20
+ UnconstrainedFunctionBroadcastedEvent,
21
+ isValidPrivateFunctionMembershipProof,
22
+ isValidUnconstrainedFunctionMembershipProof,
23
+ } from '@aztec/circuits.js/contract';
17
24
  import { createEthereumChain } from '@aztec/ethereum';
18
25
  import { AztecAddress } from '@aztec/foundation/aztec-address';
19
26
  import { EthAddress } from '@aztec/foundation/eth-address';
20
27
  import { Fr } from '@aztec/foundation/fields';
21
28
  import { DebugLogger, createDebugLogger } from '@aztec/foundation/log';
22
29
  import { RunningPromise } from '@aztec/foundation/running-promise';
23
- import { ClassRegistererAddress } from '@aztec/protocol-contracts/class-registerer';
30
+ import { getCanonicalClassRegistererAddress } from '@aztec/protocol-contracts/class-registerer';
24
31
  import {
25
32
  ContractClassPublic,
26
33
  ContractDataSource,
27
34
  ContractInstanceWithAddress,
35
+ ExecutablePrivateFunctionWithMembershipProof,
28
36
  PublicFunction,
37
+ UnconstrainedFunctionWithMembershipProof,
29
38
  } from '@aztec/types/contracts';
30
39
 
40
+ import groupBy from 'lodash.groupby';
31
41
  import { Chain, HttpTransport, PublicClient, createPublicClient, http } from 'viem';
32
42
 
33
43
  import { ArchiverDataStore } from './archiver_store.js';
@@ -55,11 +65,6 @@ export class Archiver implements ArchiveSource {
55
65
  */
56
66
  private runningPromise?: RunningPromise;
57
67
 
58
- /**
59
- * Use this to track logged block in order to avoid repeating the same message.
60
- */
61
- private lastLoggedL1BlockNumber = 0n;
62
-
63
68
  /**
64
69
  * Creates a new instance of the Archiver.
65
70
  * @param publicClient - A client for interacting with the Ethereum node.
@@ -132,7 +137,7 @@ export class Archiver implements ArchiveSource {
132
137
  }
133
138
 
134
139
  /**
135
- * Fetches `L2BlockProcessed` and `ContractDeployment` logs from `nextL2BlockFromBlock` and processes them.
140
+ * Fetches logs from L1 contracts and processes them.
136
141
  * @param blockUntilSynced - If true, blocks until the archiver has fully synced.
137
142
  */
138
143
  private async sync(blockUntilSynced: boolean) {
@@ -148,10 +153,13 @@ export class Archiver implements ArchiveSource {
148
153
  *
149
154
  * This code does not handle reorgs.
150
155
  */
151
- const lastL1Blocks = await this.store.getSynchedL1BlockNumbers();
156
+ const l1SynchPoint = await this.store.getSynchPoint();
152
157
  const currentL1BlockNumber = await this.publicClient.getBlockNumber();
153
158
 
154
- if (currentL1BlockNumber <= lastL1Blocks.blocks && currentL1BlockNumber <= lastL1Blocks.messages) {
159
+ if (
160
+ currentL1BlockNumber <= l1SynchPoint.blocksSynchedTo &&
161
+ currentL1BlockNumber <= l1SynchPoint.messagesSynchedTo
162
+ ) {
155
163
  // chain hasn't moved forward
156
164
  // or it's been rolled back
157
165
  return;
@@ -184,14 +192,14 @@ export class Archiver implements ArchiveSource {
184
192
  this.publicClient,
185
193
  this.inboxAddress,
186
194
  blockUntilSynced,
187
- lastL1Blocks.messages + 1n,
195
+ l1SynchPoint.messagesSynchedTo + 1n,
188
196
  currentL1BlockNumber,
189
197
  );
190
198
 
191
199
  if (retrievedL1ToL2Messages.retrievedData.length !== 0) {
192
200
  this.log(
193
201
  `Retrieved ${retrievedL1ToL2Messages.retrievedData.length} new L1 -> L2 messages between L1 blocks ${
194
- lastL1Blocks.messages + 1n
202
+ l1SynchPoint.messagesSynchedTo + 1n
195
203
  } and ${currentL1BlockNumber}.`,
196
204
  );
197
205
  }
@@ -205,7 +213,7 @@ export class Archiver implements ArchiveSource {
205
213
  this.publicClient,
206
214
  this.availabilityOracleAddress,
207
215
  blockUntilSynced,
208
- lastL1Blocks.blocks + 1n,
216
+ l1SynchPoint.blocksSynchedTo + 1n,
209
217
  currentL1BlockNumber,
210
218
  );
211
219
 
@@ -220,7 +228,7 @@ export class Archiver implements ArchiveSource {
220
228
  this.publicClient,
221
229
  this.rollupAddress,
222
230
  blockUntilSynced,
223
- lastL1Blocks.blocks + 1n,
231
+ l1SynchPoint.blocksSynchedTo + 1n,
224
232
  currentL1BlockNumber,
225
233
  nextExpectedL2BlockNum,
226
234
  );
@@ -244,7 +252,7 @@ export class Archiver implements ArchiveSource {
244
252
  } else {
245
253
  this.log(
246
254
  `Retrieved ${blocks.length} new L2 blocks between L1 blocks ${
247
- lastL1Blocks.blocks + 1n
255
+ l1SynchPoint.blocksSynchedTo + 1n
248
256
  } and ${currentL1BlockNumber}.`,
249
257
  );
250
258
  }
@@ -269,10 +277,10 @@ export class Archiver implements ArchiveSource {
269
277
  retrievedBlocks.retrievedData.map(async block => {
270
278
  const blockLogs = block.body.txEffects
271
279
  .flatMap(txEffect => (txEffect ? [txEffect.unencryptedLogs] : []))
272
- .flatMap(txLog => txLog.unrollLogs())
273
- .map(log => UnencryptedL2Log.fromBuffer(log));
280
+ .flatMap(txLog => txLog.unrollLogs());
274
281
  await this.storeRegisteredContractClasses(blockLogs, block.number);
275
282
  await this.storeDeployedContractInstances(blockLogs, block.number);
283
+ await this.storeBroadcastedIndividualFunctions(blockLogs, block.number);
276
284
  }),
277
285
  );
278
286
 
@@ -284,8 +292,8 @@ export class Archiver implements ArchiveSource {
284
292
  * @param allLogs - All logs emitted in a bunch of blocks.
285
293
  */
286
294
  private async storeRegisteredContractClasses(allLogs: UnencryptedL2Log[], blockNum: number) {
287
- const contractClasses = ContractClassRegisteredEvent.fromLogs(allLogs, ClassRegistererAddress).map(e =>
288
- e.toContractClassPublic(),
295
+ const contractClasses = ContractClassRegisteredEvent.fromLogs(allLogs, getCanonicalClassRegistererAddress()).map(
296
+ e => e.toContractClassPublic(),
289
297
  );
290
298
  if (contractClasses.length > 0) {
291
299
  contractClasses.forEach(c => this.log(`Registering contract class ${c.id.toString()}`));
@@ -305,6 +313,50 @@ export class Archiver implements ArchiveSource {
305
313
  }
306
314
  }
307
315
 
316
+ private async storeBroadcastedIndividualFunctions(allLogs: UnencryptedL2Log[], _blockNum: number) {
317
+ // Filter out private and unconstrained function broadcast events
318
+ const privateFnEvents = PrivateFunctionBroadcastedEvent.fromLogs(allLogs, getCanonicalClassRegistererAddress());
319
+ const unconstrainedFnEvents = UnconstrainedFunctionBroadcastedEvent.fromLogs(
320
+ allLogs,
321
+ getCanonicalClassRegistererAddress(),
322
+ );
323
+
324
+ // Group all events by contract class id
325
+ for (const [classIdString, classEvents] of Object.entries(
326
+ groupBy([...privateFnEvents, ...unconstrainedFnEvents], e => e.contractClassId.toString()),
327
+ )) {
328
+ const contractClassId = Fr.fromString(classIdString);
329
+ const contractClass = await this.store.getContractClass(contractClassId);
330
+ if (!contractClass) {
331
+ this.log.warn(`Skipping broadcasted functions as contract class ${contractClassId.toString()} was not found`);
332
+ continue;
333
+ }
334
+
335
+ // Split private and unconstrained functions, and filter out invalid ones
336
+ const allFns = classEvents.map(e => e.toFunctionWithMembershipProof());
337
+ const privateFns = allFns.filter(
338
+ (fn): fn is ExecutablePrivateFunctionWithMembershipProof => 'unconstrainedFunctionsArtifactTreeRoot' in fn,
339
+ );
340
+ const unconstrainedFns = allFns.filter(
341
+ (fn): fn is UnconstrainedFunctionWithMembershipProof => 'privateFunctionsArtifactTreeRoot' in fn,
342
+ );
343
+ const validPrivateFns = privateFns.filter(fn => isValidPrivateFunctionMembershipProof(fn, contractClass));
344
+ const validUnconstrainedFns = unconstrainedFns.filter(fn =>
345
+ isValidUnconstrainedFunctionMembershipProof(fn, contractClass),
346
+ );
347
+ const validFnCount = validPrivateFns.length + validUnconstrainedFns.length;
348
+ if (validFnCount !== allFns.length) {
349
+ this.log.warn(`Skipping ${allFns.length - validFnCount} invalid functions`);
350
+ }
351
+
352
+ // Store the functions in the contract class in a single operation
353
+ if (validFnCount > 0) {
354
+ this.log(`Storing ${validFnCount} functions for contract class ${contractClassId.toString()}`);
355
+ }
356
+ await this.store.addFunctions(contractClassId, validPrivateFns, validUnconstrainedFns);
357
+ }
358
+ }
359
+
308
360
  /**
309
361
  * Stops the archiver.
310
362
  * @returns A promise signalling completion of the stop process.
@@ -385,7 +437,11 @@ export class Archiver implements ArchiveSource {
385
437
  * @param logType - Specifies whether to return encrypted or unencrypted logs.
386
438
  * @returns The requested logs.
387
439
  */
388
- public getLogs(from: number, limit: number, logType: LogType): Promise<L2BlockL2Logs[]> {
440
+ public getLogs<TLogType extends LogType>(
441
+ from: number,
442
+ limit: number,
443
+ logType: TLogType,
444
+ ): Promise<L2BlockL2Logs<FromLogType<TLogType>>[]> {
389
445
  return this.store.getLogs(from, limit, logType);
390
446
  }
391
447
 
@@ -424,12 +480,13 @@ export class Archiver implements ArchiveSource {
424
480
  }
425
481
 
426
482
  /**
427
- * Gets the L1 to L2 message index in the L1 to L2 message tree.
483
+ * Gets the first L1 to L2 message index in the L1 to L2 message tree which is greater than or equal to `startIndex`.
428
484
  * @param l1ToL2Message - The L1 to L2 message.
485
+ * @param startIndex - The index to start searching from.
429
486
  * @returns The index of the L1 to L2 message in the L1 to L2 message tree (undefined if not found).
430
487
  */
431
- getL1ToL2MessageIndex(l1ToL2Message: Fr): Promise<bigint | undefined> {
432
- return this.store.getL1ToL2MessageIndex(l1ToL2Message);
488
+ getL1ToL2MessageIndex(l1ToL2Message: Fr, startIndex: bigint): Promise<bigint | undefined> {
489
+ return this.store.getL1ToL2MessageIndex(l1ToL2Message, startIndex);
433
490
  }
434
491
 
435
492
  getContractClassIds(): Promise<Fr[]> {
@@ -1,5 +1,7 @@
1
1
  import {
2
2
  Body,
3
+ EncryptedL2BlockL2Logs,
4
+ FromLogType,
3
5
  GetUnencryptedLogsResponse,
4
6
  InboxLeaf,
5
7
  L2Block,
@@ -9,10 +11,16 @@ import {
9
11
  TxEffect,
10
12
  TxHash,
11
13
  TxReceipt,
14
+ UnencryptedL2BlockL2Logs,
12
15
  } from '@aztec/circuit-types';
13
16
  import { Fr } from '@aztec/circuits.js';
14
17
  import { AztecAddress } from '@aztec/foundation/aztec-address';
15
- import { ContractClassPublic, ContractInstanceWithAddress } from '@aztec/types/contracts';
18
+ import {
19
+ ContractClassPublic,
20
+ ContractInstanceWithAddress,
21
+ ExecutablePrivateFunctionWithMembershipProof,
22
+ UnconstrainedFunctionWithMembershipProof,
23
+ } from '@aztec/types/contracts';
16
24
 
17
25
  import { DataRetrieval } from './data_retrieval.js';
18
26
 
@@ -20,10 +28,10 @@ import { DataRetrieval } from './data_retrieval.js';
20
28
  * Represents the latest L1 block processed by the archiver for various objects in L2.
21
29
  */
22
30
  export type ArchiverL1SynchPoint = {
23
- /** The last L1 block that added a new L2 block. */
24
- blocks: bigint;
25
- /** The last L1 block that added L1 -> L2 messages from the Inbox. */
26
- messages: bigint;
31
+ /** Number of the last L1 block that added a new L2 block. */
32
+ blocksSynchedTo: bigint;
33
+ /** Number of the last L1 block that added L1 -> L2 messages from the Inbox. */
34
+ messagesSynchedTo: bigint;
27
35
  };
28
36
 
29
37
  /**
@@ -83,8 +91,8 @@ export interface ArchiverDataStore {
83
91
  * @returns True if the operation is successful.
84
92
  */
85
93
  addLogs(
86
- encryptedLogs: L2BlockL2Logs | undefined,
87
- unencryptedLogs: L2BlockL2Logs | undefined,
94
+ encryptedLogs: EncryptedL2BlockL2Logs | undefined,
95
+ unencryptedLogs: UnencryptedL2BlockL2Logs | undefined,
88
96
  blockNumber: number,
89
97
  ): Promise<boolean>;
90
98
 
@@ -103,11 +111,12 @@ export interface ArchiverDataStore {
103
111
  getL1ToL2Messages(blockNumber: bigint): Promise<Fr[]>;
104
112
 
105
113
  /**
106
- * Gets the L1 to L2 message index in the L1 to L2 message tree.
114
+ * Gets the first L1 to L2 message index in the L1 to L2 message tree which is greater than or equal to `startIndex`.
107
115
  * @param l1ToL2Message - The L1 to L2 message.
116
+ * @param startIndex - The index to start searching from.
108
117
  * @returns The index of the L1 to L2 message in the L1 to L2 message tree (undefined if not found).
109
118
  */
110
- getL1ToL2MessageIndex(l1ToL2Message: Fr): Promise<bigint | undefined>;
119
+ getL1ToL2MessageIndex(l1ToL2Message: Fr, startIndex: bigint): Promise<bigint | undefined>;
111
120
 
112
121
  /**
113
122
  * Gets up to `limit` amount of logs starting from `from`.
@@ -116,7 +125,11 @@ export interface ArchiverDataStore {
116
125
  * @param logType - Specifies whether to return encrypted or unencrypted logs.
117
126
  * @returns The requested logs.
118
127
  */
119
- getLogs(from: number, limit: number, logType: LogType): Promise<L2BlockL2Logs[]>;
128
+ getLogs<TLogType extends LogType>(
129
+ from: number,
130
+ limit: number,
131
+ logType: TLogType,
132
+ ): Promise<L2BlockL2Logs<FromLogType<TLogType>>[]>;
120
133
 
121
134
  /**
122
135
  * Gets unencrypted logs based on the provided filter.
@@ -134,7 +147,7 @@ export interface ArchiverDataStore {
134
147
  /**
135
148
  * Gets the synch point of the archiver
136
149
  */
137
- getSynchedL1BlockNumbers(): Promise<ArchiverL1SynchPoint>;
150
+ getSynchPoint(): Promise<ArchiverL1SynchPoint>;
138
151
 
139
152
  /**
140
153
  * Add new contract classes from an L2 block to the store's list.
@@ -158,6 +171,15 @@ export interface ArchiverDataStore {
158
171
  */
159
172
  addContractInstances(data: ContractInstanceWithAddress[], blockNumber: number): Promise<boolean>;
160
173
 
174
+ /**
175
+ * Adds private functions to a contract class.
176
+ */
177
+ addFunctions(
178
+ contractClassId: Fr,
179
+ privateFunctions: ExecutablePrivateFunctionWithMembershipProof[],
180
+ unconstrainedFunctions: UnconstrainedFunctionWithMembershipProof[],
181
+ ): Promise<boolean>;
182
+
161
183
  /**
162
184
  * Returns a contract instance given its address, or undefined if not exists.
163
185
  * @param address - Address of the contract.