@aztec/pxe 0.0.1-commit.2ed92850 → 0.0.1-commit.43597cc1

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 (144) hide show
  1. package/dest/block_synchronizer/block_synchronizer.d.ts +5 -3
  2. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
  3. package/dest/block_synchronizer/block_synchronizer.js +11 -5
  4. package/dest/contract_function_simulator/contract_function_simulator.d.ts +5 -5
  5. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  6. package/dest/contract_function_simulator/contract_function_simulator.js +11 -11
  7. package/dest/contract_function_simulator/oracle/interfaces.d.ts +10 -10
  8. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
  9. package/dest/contract_function_simulator/oracle/oracle.d.ts +4 -4
  10. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
  11. package/dest/contract_function_simulator/oracle/oracle.js +38 -26
  12. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +4 -3
  13. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  14. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +7 -7
  15. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +29 -23
  16. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  17. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +61 -40
  18. package/dest/contract_sync/contract_sync_service.d.ts +41 -0
  19. package/dest/contract_sync/contract_sync_service.d.ts.map +1 -0
  20. package/dest/contract_sync/contract_sync_service.js +82 -0
  21. package/dest/contract_sync/helpers.d.ts +28 -0
  22. package/dest/contract_sync/helpers.d.ts.map +1 -0
  23. package/dest/contract_sync/{index.js → helpers.js} +13 -12
  24. package/dest/debug/pxe_debug_utils.d.ts +22 -9
  25. package/dest/debug/pxe_debug_utils.d.ts.map +1 -1
  26. package/dest/debug/pxe_debug_utils.js +28 -18
  27. package/dest/entrypoints/client/bundle/utils.d.ts +1 -1
  28. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  29. package/dest/entrypoints/client/bundle/utils.js +12 -6
  30. package/dest/entrypoints/client/lazy/utils.d.ts +2 -2
  31. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  32. package/dest/entrypoints/client/lazy/utils.js +13 -7
  33. package/dest/entrypoints/pxe_creation_options.d.ts +3 -2
  34. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  35. package/dest/entrypoints/server/index.d.ts +2 -2
  36. package/dest/entrypoints/server/index.d.ts.map +1 -1
  37. package/dest/entrypoints/server/index.js +1 -1
  38. package/dest/entrypoints/server/utils.d.ts +1 -1
  39. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  40. package/dest/entrypoints/server/utils.js +19 -8
  41. package/dest/events/event_service.d.ts +4 -5
  42. package/dest/events/event_service.d.ts.map +1 -1
  43. package/dest/events/event_service.js +5 -6
  44. package/dest/job_coordinator/job_coordinator.d.ts +3 -2
  45. package/dest/job_coordinator/job_coordinator.d.ts.map +1 -1
  46. package/dest/job_coordinator/job_coordinator.js +3 -2
  47. package/dest/logs/log_service.d.ts +6 -5
  48. package/dest/logs/log_service.d.ts.map +1 -1
  49. package/dest/logs/log_service.js +10 -15
  50. package/dest/notes/note_service.d.ts +4 -5
  51. package/dest/notes/note_service.d.ts.map +1 -1
  52. package/dest/notes/note_service.js +6 -7
  53. package/dest/oracle_version.d.ts +3 -3
  54. package/dest/oracle_version.d.ts.map +1 -1
  55. package/dest/oracle_version.js +2 -2
  56. package/dest/private_kernel/private_kernel_execution_prover.d.ts +3 -2
  57. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  58. package/dest/private_kernel/private_kernel_execution_prover.js +2 -2
  59. package/dest/private_kernel/private_kernel_oracle.d.ts +3 -3
  60. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  61. package/dest/pxe.d.ts +13 -2
  62. package/dest/pxe.d.ts.map +1 -1
  63. package/dest/pxe.js +39 -16
  64. package/dest/storage/address_store/address_store.d.ts +1 -1
  65. package/dest/storage/address_store/address_store.d.ts.map +1 -1
  66. package/dest/storage/address_store/address_store.js +12 -11
  67. package/dest/storage/anchor_block_store/anchor_block_store.d.ts +9 -1
  68. package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -1
  69. package/dest/storage/anchor_block_store/anchor_block_store.js +8 -1
  70. package/dest/storage/capsule_store/capsule_store.js +6 -8
  71. package/dest/storage/contract_store/contract_store.d.ts +1 -1
  72. package/dest/storage/contract_store/contract_store.d.ts.map +1 -1
  73. package/dest/storage/contract_store/contract_store.js +27 -18
  74. package/dest/storage/metadata.d.ts +1 -1
  75. package/dest/storage/metadata.js +1 -1
  76. package/dest/storage/note_store/note_store.d.ts +11 -1
  77. package/dest/storage/note_store/note_store.d.ts.map +1 -1
  78. package/dest/storage/note_store/note_store.js +146 -105
  79. package/dest/storage/private_event_store/private_event_store.d.ts +1 -1
  80. package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -1
  81. package/dest/storage/private_event_store/private_event_store.js +84 -61
  82. package/dest/storage/private_event_store/stored_private_event.d.ts +4 -4
  83. package/dest/storage/private_event_store/stored_private_event.d.ts.map +1 -1
  84. package/dest/storage/private_event_store/stored_private_event.js +2 -2
  85. package/dest/storage/tagging_store/recipient_tagging_store.d.ts +1 -1
  86. package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -1
  87. package/dest/storage/tagging_store/recipient_tagging_store.js +31 -19
  88. package/dest/storage/tagging_store/sender_address_book_store.d.ts +1 -1
  89. package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +1 -1
  90. package/dest/storage/tagging_store/sender_address_book_store.js +20 -14
  91. package/dest/storage/tagging_store/sender_tagging_store.d.ts +1 -1
  92. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -1
  93. package/dest/storage/tagging_store/sender_tagging_store.js +183 -113
  94. package/dest/tagging/get_all_logs_by_tags.d.ts +4 -4
  95. package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -1
  96. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +3 -3
  97. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +1 -1
  98. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +3 -3
  99. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +1 -1
  100. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +3 -3
  101. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -1
  102. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +3 -3
  103. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -1
  104. package/package.json +25 -16
  105. package/src/block_synchronizer/block_synchronizer.ts +23 -19
  106. package/src/contract_function_simulator/contract_function_simulator.ts +11 -8
  107. package/src/contract_function_simulator/oracle/interfaces.ts +12 -12
  108. package/src/contract_function_simulator/oracle/oracle.ts +41 -24
  109. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +7 -10
  110. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +73 -48
  111. package/src/contract_sync/contract_sync_service.ts +129 -0
  112. package/src/contract_sync/{index.ts → helpers.ts} +15 -20
  113. package/src/debug/pxe_debug_utils.ts +60 -18
  114. package/src/entrypoints/client/bundle/utils.ts +7 -14
  115. package/src/entrypoints/client/lazy/utils.ts +8 -14
  116. package/src/entrypoints/pxe_creation_options.ts +2 -1
  117. package/src/entrypoints/server/index.ts +1 -1
  118. package/src/entrypoints/server/utils.ts +15 -19
  119. package/src/events/event_service.ts +4 -6
  120. package/src/job_coordinator/job_coordinator.ts +4 -3
  121. package/src/logs/log_service.ts +14 -14
  122. package/src/notes/note_service.ts +5 -7
  123. package/src/oracle_version.ts +2 -2
  124. package/src/private_kernel/private_kernel_execution_prover.ts +6 -3
  125. package/src/private_kernel/private_kernel_oracle.ts +2 -2
  126. package/src/pxe.ts +61 -19
  127. package/src/storage/address_store/address_store.ts +15 -15
  128. package/src/storage/anchor_block_store/anchor_block_store.ts +8 -0
  129. package/src/storage/capsule_store/capsule_store.ts +8 -8
  130. package/src/storage/contract_store/contract_store.ts +26 -15
  131. package/src/storage/metadata.ts +1 -1
  132. package/src/storage/note_store/note_store.ts +163 -129
  133. package/src/storage/private_event_store/private_event_store.ts +102 -81
  134. package/src/storage/private_event_store/stored_private_event.ts +3 -3
  135. package/src/storage/tagging_store/recipient_tagging_store.ts +31 -21
  136. package/src/storage/tagging_store/sender_address_book_store.ts +20 -14
  137. package/src/storage/tagging_store/sender_tagging_store.ts +210 -126
  138. package/src/tagging/get_all_logs_by_tags.ts +3 -3
  139. package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +2 -2
  140. package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +2 -2
  141. package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +2 -2
  142. package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +3 -3
  143. package/dest/contract_sync/index.d.ts +0 -23
  144. package/dest/contract_sync/index.d.ts.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import type { BlockNumber } from '@aztec/foundation/branded-types';
2
2
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
3
- import type { L2BlockHash } from '@aztec/stdlib/block';
3
+ import type { BlockHash } from '@aztec/stdlib/block';
4
4
  import type { AztecNode } from '@aztec/stdlib/interfaces/client';
5
5
  import type { DirectionalAppTaggingSecret, TxScopedL2Log } from '@aztec/stdlib/logs';
6
6
  /**
@@ -8,8 +8,8 @@ import type { DirectionalAppTaggingSecret, TxScopedL2Log } from '@aztec/stdlib/l
8
8
  * `secret`. At most load logs from blocks up to and including `anchorBlockNumber`. `start` is inclusive and `end` is
9
9
  * exclusive.
10
10
  */
11
- export declare function loadLogsForRange(secret: DirectionalAppTaggingSecret, app: AztecAddress, aztecNode: AztecNode, start: number, end: number, anchorBlockNumber: BlockNumber, anchorBlockHash: L2BlockHash): Promise<Array<{
11
+ export declare function loadLogsForRange(secret: DirectionalAppTaggingSecret, app: AztecAddress, aztecNode: AztecNode, start: number, end: number, anchorBlockNumber: BlockNumber, anchorBlockHash: BlockHash): Promise<Array<{
12
12
  log: TxScopedL2Log;
13
13
  taggingIndex: number;
14
14
  }>>;
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZF9sb2dzX2Zvcl9yYW5nZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RhZ2dpbmcvcmVjaXBpZW50X3N5bmMvdXRpbHMvbG9hZF9sb2dzX2Zvcl9yYW5nZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNqRSxPQUFPLEtBQUssRUFBRSwyQkFBMkIsRUFBVSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUs3Rjs7OztHQUlHO0FBQ0gsd0JBQXNCLGdCQUFnQixDQUNwQyxNQUFNLEVBQUUsMkJBQTJCLEVBQ25DLEdBQUcsRUFBRSxZQUFZLEVBQ2pCLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLEtBQUssRUFBRSxNQUFNLEVBQ2IsR0FBRyxFQUFFLE1BQU0sRUFDWCxpQkFBaUIsRUFBRSxXQUFXLEVBQzlCLGVBQWUsRUFBRSxXQUFXLEdBQzNCLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFBRSxHQUFHLEVBQUUsYUFBYSxDQUFDO0lBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQTtDQUFFLENBQUMsQ0FBQyxDQTBCOUQifQ==
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZF9sb2dzX2Zvcl9yYW5nZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RhZ2dpbmcvcmVjaXBpZW50X3N5bmMvdXRpbHMvbG9hZF9sb2dzX2Zvcl9yYW5nZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNqRSxPQUFPLEtBQUssRUFBRSwyQkFBMkIsRUFBVSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUs3Rjs7OztHQUlHO0FBQ0gsd0JBQXNCLGdCQUFnQixDQUNwQyxNQUFNLEVBQUUsMkJBQTJCLEVBQ25DLEdBQUcsRUFBRSxZQUFZLEVBQ2pCLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLEtBQUssRUFBRSxNQUFNLEVBQ2IsR0FBRyxFQUFFLE1BQU0sRUFDWCxpQkFBaUIsRUFBRSxXQUFXLEVBQzlCLGVBQWUsRUFBRSxTQUFTLEdBQ3pCLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFBRSxHQUFHLEVBQUUsYUFBYSxDQUFDO0lBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQTtDQUFFLENBQUMsQ0FBQyxDQTBCOUQifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"load_logs_for_range.d.ts","sourceRoot":"","sources":["../../../../src/tagging/recipient_sync/utils/load_logs_for_range.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,2BAA2B,EAAU,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAK7F;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,2BAA2B,EACnC,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,iBAAiB,EAAE,WAAW,EAC9B,eAAe,EAAE,WAAW,GAC3B,OAAO,CAAC,KAAK,CAAC;IAAE,GAAG,EAAE,aAAa,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CA0B9D"}
1
+ {"version":3,"file":"load_logs_for_range.d.ts","sourceRoot":"","sources":["../../../../src/tagging/recipient_sync/utils/load_logs_for_range.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,2BAA2B,EAAU,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAK7F;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,2BAA2B,EACnC,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,iBAAiB,EAAE,WAAW,EAC9B,eAAe,EAAE,SAAS,GACzB,OAAO,CAAC,KAAK,CAAC;IAAE,GAAG,EAAE,aAAa,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CA0B9D"}
@@ -1,5 +1,5 @@
1
1
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
2
- import type { L2BlockHash } from '@aztec/stdlib/block';
2
+ import type { BlockHash } from '@aztec/stdlib/block';
3
3
  import type { AztecNode } from '@aztec/stdlib/interfaces/server';
4
4
  import type { DirectionalAppTaggingSecret } from '@aztec/stdlib/logs';
5
5
  import type { SenderTaggingStore } from '../../storage/tagging_store/sender_tagging_store.js';
@@ -17,5 +17,5 @@ import type { SenderTaggingStore } from '../../storage/tagging_store/sender_tagg
17
17
  * @dev This function looks for new indexes, adds them to pending, then it checks status of each pending index and
18
18
  * updates its status accordingly.
19
19
  */
20
- export declare function syncSenderTaggingIndexes(secret: DirectionalAppTaggingSecret, app: AztecAddress, aztecNode: AztecNode, taggingStore: SenderTaggingStore, anchorBlockHash: L2BlockHash, jobId: string): Promise<void>;
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luY19zZW5kZXJfdGFnZ2luZ19pbmRleGVzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGFnZ2luZy9zZW5kZXJfc3luYy9zeW5jX3NlbmRlcl90YWdnaW5nX2luZGV4ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxLQUFLLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV0RSxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBSzlGOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCx3QkFBc0Isd0JBQXdCLENBQzVDLE1BQU0sRUFBRSwyQkFBMkIsRUFDbkMsR0FBRyxFQUFFLFlBQVksRUFDakIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsWUFBWSxFQUFFLGtCQUFrQixFQUNoQyxlQUFlLEVBQUUsV0FBVyxFQUM1QixLQUFLLEVBQUUsTUFBTSxHQUNaLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FtRWYifQ==
20
+ export declare function syncSenderTaggingIndexes(secret: DirectionalAppTaggingSecret, app: AztecAddress, aztecNode: AztecNode, taggingStore: SenderTaggingStore, anchorBlockHash: BlockHash, jobId: string): Promise<void>;
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luY19zZW5kZXJfdGFnZ2luZ19pbmRleGVzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGFnZ2luZy9zZW5kZXJfc3luYy9zeW5jX3NlbmRlcl90YWdnaW5nX2luZGV4ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxLQUFLLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV0RSxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBSzlGOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCx3QkFBc0Isd0JBQXdCLENBQzVDLE1BQU0sRUFBRSwyQkFBMkIsRUFDbkMsR0FBRyxFQUFFLFlBQVksRUFDakIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsWUFBWSxFQUFFLGtCQUFrQixFQUNoQyxlQUFlLEVBQUUsU0FBUyxFQUMxQixLQUFLLEVBQUUsTUFBTSxHQUNaLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FtRWYifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"sync_sender_tagging_indexes.d.ts","sourceRoot":"","sources":["../../../src/tagging/sender_sync/sync_sender_tagging_indexes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAEtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qDAAqD,CAAC;AAK9F;;;;;;;;;;;;;GAaG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,2BAA2B,EACnC,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,kBAAkB,EAChC,eAAe,EAAE,WAAW,EAC5B,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAmEf"}
1
+ {"version":3,"file":"sync_sender_tagging_indexes.d.ts","sourceRoot":"","sources":["../../../src/tagging/sender_sync/sync_sender_tagging_indexes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAEtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qDAAqD,CAAC;AAK9F;;;;;;;;;;;;;GAaG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,2BAA2B,EACnC,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,kBAAkB,EAChC,eAAe,EAAE,SAAS,EAC1B,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAmEf"}
@@ -1,5 +1,5 @@
1
1
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
2
- import type { L2BlockHash } from '@aztec/stdlib/block';
2
+ import type { BlockHash } from '@aztec/stdlib/block';
3
3
  import type { AztecNode } from '@aztec/stdlib/interfaces/server';
4
4
  import type { DirectionalAppTaggingSecret } from '@aztec/stdlib/logs';
5
5
  import type { SenderTaggingStore } from '../../../storage/tagging_store/sender_tagging_store.js';
@@ -17,5 +17,5 @@ import type { SenderTaggingStore } from '../../../storage/tagging_store/sender_t
17
17
  * @param jobId - Job identifier, used to keep writes in-memory until they can be persisted in a data integrity
18
18
  * preserving way.
19
19
  */
20
- export declare function loadAndStoreNewTaggingIndexes(secret: DirectionalAppTaggingSecret, app: AztecAddress, start: number, end: number, aztecNode: AztecNode, taggingStore: SenderTaggingStore, anchorBlockHash: L2BlockHash, jobId: string): Promise<void>;
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZF9hbmRfc3RvcmVfbmV3X3RhZ2dpbmdfaW5kZXhlcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RhZ2dpbmcvc2VuZGVyX3N5bmMvdXRpbHMvbG9hZF9hbmRfc3RvcmVfbmV3X3RhZ2dpbmdfaW5kZXhlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNqRSxPQUFPLEtBQUssRUFBRSwyQkFBMkIsRUFBVSxNQUFNLG9CQUFvQixDQUFDO0FBSTlFLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFHakc7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILHdCQUFzQiw2QkFBNkIsQ0FDakQsTUFBTSxFQUFFLDJCQUEyQixFQUNuQyxHQUFHLEVBQUUsWUFBWSxFQUNqQixLQUFLLEVBQUUsTUFBTSxFQUNiLEdBQUcsRUFBRSxNQUFNLEVBQ1gsU0FBUyxFQUFFLFNBQVMsRUFDcEIsWUFBWSxFQUFFLGtCQUFrQixFQUNoQyxlQUFlLEVBQUUsV0FBVyxFQUM1QixLQUFLLEVBQUUsTUFBTSxpQkFrQmQifQ==
20
+ export declare function loadAndStoreNewTaggingIndexes(secret: DirectionalAppTaggingSecret, app: AztecAddress, start: number, end: number, aztecNode: AztecNode, taggingStore: SenderTaggingStore, anchorBlockHash: BlockHash, jobId: string): Promise<void>;
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZF9hbmRfc3RvcmVfbmV3X3RhZ2dpbmdfaW5kZXhlcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RhZ2dpbmcvc2VuZGVyX3N5bmMvdXRpbHMvbG9hZF9hbmRfc3RvcmVfbmV3X3RhZ2dpbmdfaW5kZXhlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNqRSxPQUFPLEtBQUssRUFBRSwyQkFBMkIsRUFBVSxNQUFNLG9CQUFvQixDQUFDO0FBSTlFLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFHakc7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILHdCQUFzQiw2QkFBNkIsQ0FDakQsTUFBTSxFQUFFLDJCQUEyQixFQUNuQyxHQUFHLEVBQUUsWUFBWSxFQUNqQixLQUFLLEVBQUUsTUFBTSxFQUNiLEdBQUcsRUFBRSxNQUFNLEVBQ1gsU0FBUyxFQUFFLFNBQVMsRUFDcEIsWUFBWSxFQUFFLGtCQUFrQixFQUNoQyxlQUFlLEVBQUUsU0FBUyxFQUMxQixLQUFLLEVBQUUsTUFBTSxpQkFrQmQifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"load_and_store_new_tagging_indexes.d.ts","sourceRoot":"","sources":["../../../../src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,2BAA2B,EAAU,MAAM,oBAAoB,CAAC;AAI9E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wDAAwD,CAAC;AAGjG;;;;;;;;;;;;;GAaG;AACH,wBAAsB,6BAA6B,CACjD,MAAM,EAAE,2BAA2B,EACnC,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,kBAAkB,EAChC,eAAe,EAAE,WAAW,EAC5B,KAAK,EAAE,MAAM,iBAkBd"}
1
+ {"version":3,"file":"load_and_store_new_tagging_indexes.d.ts","sourceRoot":"","sources":["../../../../src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,2BAA2B,EAAU,MAAM,oBAAoB,CAAC;AAI9E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wDAAwD,CAAC;AAGjG;;;;;;;;;;;;;GAaG;AACH,wBAAsB,6BAA6B,CACjD,MAAM,EAAE,2BAA2B,EACnC,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,kBAAkB,EAChC,eAAe,EAAE,SAAS,EAC1B,KAAK,EAAE,MAAM,iBAkBd"}
package/package.json CHANGED
@@ -1,7 +1,16 @@
1
1
  {
2
2
  "name": "@aztec/pxe",
3
- "version": "0.0.1-commit.2ed92850",
3
+ "version": "0.0.1-commit.43597cc1",
4
4
  "type": "module",
5
+ "typedocOptions": {
6
+ "entryPoints": [
7
+ "./src/entrypoints/server/index.ts",
8
+ "./src/entrypoints/client/lazy/index.ts",
9
+ "./src/config/index.ts"
10
+ ],
11
+ "name": "PXE",
12
+ "tsconfig": "./tsconfig.json"
13
+ },
5
14
  "exports": {
6
15
  "./server": "./dest/entrypoints/server/index.js",
7
16
  "./client/lazy": "./dest/entrypoints/client/lazy/index.js",
@@ -61,19 +70,19 @@
61
70
  ]
62
71
  },
63
72
  "dependencies": {
64
- "@aztec/bb-prover": "0.0.1-commit.2ed92850",
65
- "@aztec/bb.js": "0.0.1-commit.2ed92850",
66
- "@aztec/builder": "0.0.1-commit.2ed92850",
67
- "@aztec/constants": "0.0.1-commit.2ed92850",
68
- "@aztec/ethereum": "0.0.1-commit.2ed92850",
69
- "@aztec/foundation": "0.0.1-commit.2ed92850",
70
- "@aztec/key-store": "0.0.1-commit.2ed92850",
71
- "@aztec/kv-store": "0.0.1-commit.2ed92850",
72
- "@aztec/noir-protocol-circuits-types": "0.0.1-commit.2ed92850",
73
- "@aztec/noir-types": "0.0.1-commit.2ed92850",
74
- "@aztec/protocol-contracts": "0.0.1-commit.2ed92850",
75
- "@aztec/simulator": "0.0.1-commit.2ed92850",
76
- "@aztec/stdlib": "0.0.1-commit.2ed92850",
73
+ "@aztec/bb-prover": "0.0.1-commit.43597cc1",
74
+ "@aztec/bb.js": "0.0.1-commit.43597cc1",
75
+ "@aztec/builder": "0.0.1-commit.43597cc1",
76
+ "@aztec/constants": "0.0.1-commit.43597cc1",
77
+ "@aztec/ethereum": "0.0.1-commit.43597cc1",
78
+ "@aztec/foundation": "0.0.1-commit.43597cc1",
79
+ "@aztec/key-store": "0.0.1-commit.43597cc1",
80
+ "@aztec/kv-store": "0.0.1-commit.43597cc1",
81
+ "@aztec/noir-protocol-circuits-types": "0.0.1-commit.43597cc1",
82
+ "@aztec/noir-types": "0.0.1-commit.43597cc1",
83
+ "@aztec/protocol-contracts": "0.0.1-commit.43597cc1",
84
+ "@aztec/simulator": "0.0.1-commit.43597cc1",
85
+ "@aztec/stdlib": "0.0.1-commit.43597cc1",
77
86
  "koa": "^2.16.1",
78
87
  "koa-router": "^13.1.1",
79
88
  "lodash.omit": "^4.5.0",
@@ -82,8 +91,8 @@
82
91
  "viem": "npm:@aztec/viem@2.38.2"
83
92
  },
84
93
  "devDependencies": {
85
- "@aztec/merkle-tree": "0.0.1-commit.2ed92850",
86
- "@aztec/noir-test-contracts.js": "0.0.1-commit.2ed92850",
94
+ "@aztec/merkle-tree": "0.0.1-commit.43597cc1",
95
+ "@aztec/noir-test-contracts.js": "0.0.1-commit.43597cc1",
87
96
  "@jest/globals": "^30.0.0",
88
97
  "@types/jest": "^30.0.0",
89
98
  "@types/lodash.omit": "^4.5.7",
@@ -1,17 +1,13 @@
1
1
  import { BlockNumber } from '@aztec/foundation/branded-types';
2
- import { type Logger, createLogger } from '@aztec/foundation/log';
2
+ import { type Logger, type LoggerBindings, createLogger } from '@aztec/foundation/log';
3
3
  import type { AztecAsyncKVStore } from '@aztec/kv-store';
4
4
  import type { L2TipsKVStore } from '@aztec/kv-store/stores';
5
- import {
6
- L2BlockHash,
7
- L2BlockStream,
8
- type L2BlockStreamEvent,
9
- type L2BlockStreamEventHandler,
10
- } from '@aztec/stdlib/block';
5
+ import { BlockHash, L2BlockStream, type L2BlockStreamEvent, type L2BlockStreamEventHandler } from '@aztec/stdlib/block';
11
6
  import type { AztecNode } from '@aztec/stdlib/interfaces/client';
12
7
  import type { BlockHeader } from '@aztec/stdlib/tx';
13
8
 
14
9
  import type { BlockSynchronizerConfig } from '../config/index.js';
10
+ import type { ContractSyncService } from '../contract_sync/contract_sync_service.js';
15
11
  import type { AnchorBlockStore } from '../storage/anchor_block_store/anchor_block_store.js';
16
12
  import type { NoteStore } from '../storage/note_store/note_store.js';
17
13
  import type { PrivateEventStore } from '../storage/private_event_store/private_event_store.js';
@@ -33,23 +29,27 @@ export class BlockSynchronizer implements L2BlockStreamEventHandler {
33
29
  private noteStore: NoteStore,
34
30
  private privateEventStore: PrivateEventStore,
35
31
  private l2TipsStore: L2TipsKVStore,
32
+ private contractSyncService: ContractSyncService,
36
33
  private config: Partial<BlockSynchronizerConfig> = {},
37
- loggerOrSuffix?: string | Logger,
34
+ bindings?: LoggerBindings,
38
35
  ) {
39
- this.log =
40
- !loggerOrSuffix || typeof loggerOrSuffix === 'string'
41
- ? createLogger(loggerOrSuffix ? `pxe:block_synchronizer:${loggerOrSuffix}` : `pxe:block_synchronizer`)
42
- : loggerOrSuffix;
36
+ this.log = createLogger('pxe:block_synchronizer', bindings);
43
37
  this.blockStream = this.createBlockStream(config);
44
38
  }
45
39
 
46
40
  protected createBlockStream(config: Partial<BlockSynchronizerConfig>): L2BlockStream {
47
- return new L2BlockStream(this.node, this.l2TipsStore, this, createLogger('pxe:block_stream'), {
48
- batchSize: config.l2BlockBatchSize,
49
- // Skipping finalized blocks makes us sync much faster - we only need to download blocks other than the latest one
50
- // in order to detect reorgs, and there can be no reorgs on finalized block, making this safe.
51
- skipFinalized: true,
52
- });
41
+ return new L2BlockStream(
42
+ this.node,
43
+ this.l2TipsStore,
44
+ this,
45
+ createLogger('pxe:block_stream', this.log.getBindings()),
46
+ {
47
+ batchSize: config.l2BlockBatchSize,
48
+ // Skipping finalized blocks makes us sync much faster - we only need to download blocks other than the latest one
49
+ // in order to detect reorgs, and there can be no reorgs on finalized block, making this safe.
50
+ skipFinalized: true,
51
+ },
52
+ );
53
53
  }
54
54
 
55
55
  /** Handle events emitted by the block stream. */
@@ -106,7 +106,7 @@ export class BlockSynchronizer implements L2BlockStreamEventHandler {
106
106
  // Note that the following is not necessarily the anchor block that will be used in the transaction - if
107
107
  // the chain has already moved past the reorg, we'll also see blocks-added events that will push the anchor
108
108
  // forward.
109
- const newAnchorBlockHeader = await this.node.getBlockHeader(L2BlockHash.fromString(event.block.hash));
109
+ const newAnchorBlockHeader = await this.node.getBlockHeader(BlockHash.fromString(event.block.hash));
110
110
 
111
111
  if (!newAnchorBlockHeader) {
112
112
  throw new Error(
@@ -127,6 +127,10 @@ export class BlockSynchronizer implements L2BlockStreamEventHandler {
127
127
 
128
128
  /** Updates the anchor block header to the target block */
129
129
  private async updateAnchorBlockHeader(blockHeader: BlockHeader) {
130
+ // Whenever the anchor block header is updated, we need to synchronize the private state of contracts again.
131
+ // Therefore, we clear the contract synchronization cache here such that the sync is re-triggered upon new
132
+ // execution.
133
+ this.contractSyncService.wipe();
130
134
  this.log.verbose(`Updated pxe last block to ${blockHeader.getBlockNumber()}`, blockHeader.toInspect());
131
135
  await this.anchorBlockStore.setHeader(blockHeader);
132
136
  }
@@ -7,6 +7,7 @@ import {
7
7
  FIXED_AVM_STARTUP_L2_GAS,
8
8
  FIXED_DA_GAS,
9
9
  FIXED_L2_GAS,
10
+ GeneratorIndex,
10
11
  L2_GAS_PER_CONTRACT_CLASS_LOG,
11
12
  L2_GAS_PER_PRIVATE_LOG,
12
13
  MAX_CONTRACT_CLASS_LOGS_PER_TX,
@@ -17,7 +18,7 @@ import {
17
18
  MAX_PRIVATE_LOGS_PER_TX,
18
19
  } from '@aztec/constants';
19
20
  import { arrayNonEmptyLength, padArrayEnd } from '@aztec/foundation/collection';
20
- import { poseidon2Hash } from '@aztec/foundation/crypto/poseidon';
21
+ import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
21
22
  import { Fr } from '@aztec/foundation/curves/bn254';
22
23
  import { type Logger, createLogger } from '@aztec/foundation/log';
23
24
  import { Timer } from '@aztec/foundation/timer';
@@ -71,8 +72,8 @@ import {
71
72
  getFinalMinRevertibleSideEffectCounter,
72
73
  } from '@aztec/stdlib/tx';
73
74
 
75
+ import type { ContractSyncService } from '../contract_sync/contract_sync_service.js';
74
76
  import type { AddressStore } from '../storage/address_store/address_store.js';
75
- import type { AnchorBlockStore } from '../storage/anchor_block_store/anchor_block_store.js';
76
77
  import type { CapsuleStore } from '../storage/capsule_store/capsule_store.js';
77
78
  import type { ContractStore } from '../storage/contract_store/contract_store.js';
78
79
  import type { NoteStore } from '../storage/note_store/note_store.js';
@@ -101,13 +102,13 @@ export class ContractFunctionSimulator {
101
102
  private keyStore: KeyStore,
102
103
  private addressStore: AddressStore,
103
104
  private aztecNode: AztecNode,
104
- private anchorBlockStore: AnchorBlockStore,
105
105
  private senderTaggingStore: SenderTaggingStore,
106
106
  private recipientTaggingStore: RecipientTaggingStore,
107
107
  private senderAddressBookStore: SenderAddressBookStore,
108
108
  private capsuleStore: CapsuleStore,
109
109
  private privateEventStore: PrivateEventStore,
110
110
  private simulator: CircuitSimulator,
111
+ private contractSyncService: ContractSyncService,
111
112
  ) {
112
113
  this.log = createLogger('simulator');
113
114
  }
@@ -182,12 +183,12 @@ export class ContractFunctionSimulator {
182
183
  this.keyStore,
183
184
  this.addressStore,
184
185
  this.aztecNode,
185
- this.anchorBlockStore,
186
186
  this.senderTaggingStore,
187
187
  this.recipientTaggingStore,
188
188
  this.senderAddressBookStore,
189
189
  this.capsuleStore,
190
190
  this.privateEventStore,
191
+ this.contractSyncService,
191
192
  jobId,
192
193
  0, // totalPublicArgsCount
193
194
  startSideEffectCounter,
@@ -278,7 +279,6 @@ export class ContractFunctionSimulator {
278
279
  this.keyStore,
279
280
  this.addressStore,
280
281
  this.aztecNode,
281
- this.anchorBlockStore,
282
282
  this.recipientTaggingStore,
283
283
  this.senderAddressBookStore,
284
284
  this.capsuleStore,
@@ -359,7 +359,7 @@ class OrderedSideEffect<T> {
359
359
  */
360
360
  export async function generateSimulatedProvingResult(
361
361
  privateExecutionResult: PrivateExecutionResult,
362
- contractStore: ContractStore,
362
+ debugFunctionNameGetter: (contractAddress: AztecAddress, functionSelector: FunctionSelector) => Promise<string>,
363
363
  minRevertibleSideEffectCounterOverride?: number,
364
364
  ): Promise<PrivateKernelExecutionProofOutput<PrivateKernelTailCircuitPublicInputs>> {
365
365
  const siloedNoteHashes: OrderedSideEffect<Fr>[] = [];
@@ -401,7 +401,10 @@ export async function generateSimulatedProvingResult(
401
401
 
402
402
  const privateLogsFromExecution = await Promise.all(
403
403
  execution.publicInputs.privateLogs.getActiveItems().map(async metadata => {
404
- metadata.log.fields[0] = await poseidon2Hash([contractAddress, metadata.log.fields[0]]);
404
+ metadata.log.fields[0] = await poseidon2HashWithSeparator(
405
+ [contractAddress, metadata.log.fields[0]],
406
+ GeneratorIndex.PRIVATE_LOG_FIRST_FIELD,
407
+ );
405
408
  return new OrderedSideEffect(metadata.log, metadata.counter);
406
409
  }),
407
410
  );
@@ -437,7 +440,7 @@ export async function generateSimulatedProvingResult(
437
440
  : execution.publicInputs.publicTeardownCallRequest;
438
441
 
439
442
  executionSteps.push({
440
- functionName: await contractStore.getDebugFunctionName(
443
+ functionName: await debugFunctionNameGetter(
441
444
  execution.publicInputs.callContext.contractAddress,
442
445
  execution.publicInputs.callContext.functionSelector,
443
446
  ),
@@ -5,7 +5,7 @@ import { Point } from '@aztec/foundation/curves/grumpkin';
5
5
  import { MembershipWitness } from '@aztec/foundation/trees';
6
6
  import type { FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
7
7
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
8
- import { L2BlockHash } from '@aztec/stdlib/block';
8
+ import { BlockHash } from '@aztec/stdlib/block';
9
9
  import type { CompleteAddress, ContractInstance } from '@aztec/stdlib/contract';
10
10
  import type { KeyValidationRequest } from '@aztec/stdlib/kernel';
11
11
  import type { ContractClassLog, Tag } from '@aztec/stdlib/logs';
@@ -54,7 +54,7 @@ export interface IMiscOracle {
54
54
 
55
55
  utilityGetRandomField(): Fr;
56
56
  utilityAssertCompatibleOracleVersion(version: number): void;
57
- utilityDebugLog(level: number, message: string, fields: Fr[]): void;
57
+ utilityDebugLog(level: number, message: string, fields: Fr[]): Promise<void>;
58
58
  }
59
59
 
60
60
  /**
@@ -68,24 +68,24 @@ export interface IUtilityExecutionOracle {
68
68
  utilityGetKeyValidationRequest(pkMHash: Fr): Promise<KeyValidationRequest>;
69
69
  utilityGetContractInstance(address: AztecAddress): Promise<ContractInstance>;
70
70
  utilityGetNoteHashMembershipWitness(
71
- blockHash: L2BlockHash,
72
- leafValue: Fr,
71
+ anchorBlockHash: BlockHash,
72
+ noteHash: Fr,
73
73
  ): Promise<MembershipWitness<typeof NOTE_HASH_TREE_HEIGHT> | undefined>;
74
- utilityGetArchiveMembershipWitness(
75
- blockHash: L2BlockHash,
76
- leafValue: Fr,
74
+ utilityGetBlockHashMembershipWitness(
75
+ anchorBlockHash: BlockHash,
76
+ blockHash: BlockHash,
77
77
  ): Promise<MembershipWitness<typeof ARCHIVE_HEIGHT> | undefined>;
78
78
  utilityGetNullifierMembershipWitness(
79
- blockHash: L2BlockHash,
79
+ anchorBlockHash: BlockHash,
80
80
  nullifier: Fr,
81
81
  ): Promise<NullifierMembershipWitness | undefined>;
82
- utilityGetPublicDataWitness(blockHash: L2BlockHash, leafSlot: Fr): Promise<PublicDataWitness | undefined>;
82
+ utilityGetPublicDataWitness(anchorBlockHash: BlockHash, leafSlot: Fr): Promise<PublicDataWitness | undefined>;
83
83
  utilityGetLowNullifierMembershipWitness(
84
- blockHash: L2BlockHash,
84
+ anchorBlockHash: BlockHash,
85
85
  nullifier: Fr,
86
86
  ): Promise<NullifierMembershipWitness | undefined>;
87
87
  utilityGetBlockHeader(blockNumber: BlockNumber): Promise<BlockHeader | undefined>;
88
- utilityGetPublicKeysAndPartialAddress(account: AztecAddress): Promise<CompleteAddress>;
88
+ utilityTryGetPublicKeysAndPartialAddress(account: AztecAddress): Promise<CompleteAddress | undefined>;
89
89
  utilityGetAuthWitness(messageHash: Fr): Promise<Fr[] | undefined>;
90
90
  utilityGetNotes(
91
91
  owner: AztecAddress | undefined,
@@ -111,7 +111,7 @@ export interface IUtilityExecutionOracle {
111
111
  secret: Fr,
112
112
  ): Promise<MessageLoadOracleInputs<typeof L1_TO_L2_MSG_TREE_HEIGHT>>;
113
113
  utilityStorageRead(
114
- blockHash: L2BlockHash,
114
+ anchorBlockHash: BlockHash,
115
115
  contractAddress: AztecAddress,
116
116
  startStorageSlot: Fr,
117
117
  numberOfElements: number,
@@ -12,7 +12,7 @@ import {
12
12
  } from '@aztec/simulator/client';
13
13
  import { FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
14
14
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
15
- import { L2BlockHash } from '@aztec/stdlib/block';
15
+ import { BlockHash } from '@aztec/stdlib/block';
16
16
  import { ContractClassLog, ContractClassLogFields } from '@aztec/stdlib/logs';
17
17
 
18
18
  import type { IMiscOracle, IPrivateExecutionOracle, IUtilityExecutionOracle } from './interfaces.js';
@@ -138,29 +138,39 @@ export class Oracle {
138
138
  }
139
139
 
140
140
  async utilityGetNoteHashMembershipWitness(
141
- [blockHash]: ACVMField[],
142
- [leafValue]: ACVMField[],
141
+ [anchorBlockHash]: ACVMField[],
142
+ [noteHash]: ACVMField[],
143
143
  ): Promise<(ACVMField | ACVMField[])[]> {
144
- const parsedBlockHash = L2BlockHash.fromString(blockHash);
145
- const parsedLeafValue = Fr.fromString(leafValue);
144
+ const parsedAnchorBlockHash = BlockHash.fromString(anchorBlockHash);
145
+ const parsedNoteHash = Fr.fromString(noteHash);
146
146
 
147
- const witness = await this.handlerAsUtility().utilityGetNoteHashMembershipWitness(parsedBlockHash, parsedLeafValue);
147
+ const witness = await this.handlerAsUtility().utilityGetNoteHashMembershipWitness(
148
+ parsedAnchorBlockHash,
149
+ parsedNoteHash,
150
+ );
148
151
  if (!witness) {
149
- throw new Error(`Leaf ${leafValue} not found in the note hash tree at block hash ${parsedBlockHash.toString()}.`);
152
+ throw new Error(
153
+ `Note hash ${noteHash} not found in the note hash tree at anchor block hash ${parsedAnchorBlockHash.toString()}.`,
154
+ );
150
155
  }
151
156
  return witness.toNoirRepresentation();
152
157
  }
153
158
 
154
- async utilityGetArchiveMembershipWitness(
159
+ async utilityGetBlockHashMembershipWitness(
160
+ [anchorBlockHash]: ACVMField[],
155
161
  [blockHash]: ACVMField[],
156
- [leafValue]: ACVMField[],
157
162
  ): Promise<(ACVMField | ACVMField[])[]> {
158
- const parsedBlockHash = L2BlockHash.fromString(blockHash);
159
- const parsedLeafValue = Fr.fromString(leafValue);
163
+ const parsedAnchorBlockHash = BlockHash.fromString(anchorBlockHash);
164
+ const parsedBlockHash = BlockHash.fromString(blockHash);
160
165
 
161
- const witness = await this.handlerAsUtility().utilityGetArchiveMembershipWitness(parsedBlockHash, parsedLeafValue);
166
+ const witness = await this.handlerAsUtility().utilityGetBlockHashMembershipWitness(
167
+ parsedAnchorBlockHash,
168
+ parsedBlockHash,
169
+ );
162
170
  if (!witness) {
163
- throw new Error(`Leaf ${leafValue} not found in the archive tree at block hash ${parsedBlockHash.toString()}.`);
171
+ throw new Error(
172
+ `Block hash ${parsedBlockHash.toString()} not found in the archive tree at anchor block ${parsedAnchorBlockHash.toString()}.`,
173
+ );
164
174
  }
165
175
  return witness.toNoirRepresentation();
166
176
  }
@@ -169,7 +179,7 @@ export class Oracle {
169
179
  [blockHash]: ACVMField[],
170
180
  [nullifier]: ACVMField[], // nullifier, we try to find the witness for (to prove inclusion)
171
181
  ): Promise<(ACVMField | ACVMField[])[]> {
172
- const parsedBlockHash = L2BlockHash.fromString(blockHash);
182
+ const parsedBlockHash = BlockHash.fromString(blockHash);
173
183
  const parsedNullifier = Fr.fromString(nullifier);
174
184
 
175
185
  const witness = await this.handlerAsUtility().utilityGetNullifierMembershipWitness(
@@ -188,7 +198,7 @@ export class Oracle {
188
198
  [blockHash]: ACVMField[],
189
199
  [nullifier]: ACVMField[], // nullifier, we try to find the low nullifier witness for (to prove non-inclusion)
190
200
  ): Promise<(ACVMField | ACVMField[])[]> {
191
- const parsedBlockHash = L2BlockHash.fromString(blockHash);
201
+ const parsedBlockHash = BlockHash.fromString(blockHash);
192
202
  const parsedNullifier = Fr.fromString(nullifier);
193
203
 
194
204
  const witness = await this.handlerAsUtility().utilityGetLowNullifierMembershipWitness(
@@ -207,7 +217,7 @@ export class Oracle {
207
217
  [blockHash]: ACVMField[],
208
218
  [leafSlot]: ACVMField[],
209
219
  ): Promise<(ACVMField | ACVMField[])[]> {
210
- const parsedBlockHash = L2BlockHash.fromString(blockHash);
220
+ const parsedBlockHash = BlockHash.fromString(blockHash);
211
221
  const parsedLeafSlot = Fr.fromString(leafSlot);
212
222
 
213
223
  const witness = await this.handlerAsUtility().utilityGetPublicDataWitness(parsedBlockHash, parsedLeafSlot);
@@ -238,12 +248,19 @@ export class Oracle {
238
248
  return [witness.map(toACVMField)];
239
249
  }
240
250
 
241
- async utilityGetPublicKeysAndPartialAddress([address]: ACVMField[]): Promise<ACVMField[][]> {
251
+ async utilityTryGetPublicKeysAndPartialAddress([address]: ACVMField[]): Promise<(ACVMField | ACVMField[])[]> {
242
252
  const parsedAddress = AztecAddress.fromField(Fr.fromString(address));
243
- const { publicKeys, partialAddress } =
244
- await this.handlerAsUtility().utilityGetPublicKeysAndPartialAddress(parsedAddress);
253
+ const result = await this.handlerAsUtility().utilityTryGetPublicKeysAndPartialAddress(parsedAddress);
245
254
 
246
- return [[...publicKeys.toFields(), partialAddress].map(toACVMField)];
255
+ // We are going to return a Noir Option struct to represent the possibility of null values. Options are a struct
256
+ // with two fields: `some` (a boolean) and `value` (a field array in this case).
257
+ if (result === undefined) {
258
+ // No data was found so we set `some` to 0 and pad `value` with zeros get the correct return size.
259
+ return [toACVMField(0), Array(13).fill(toACVMField(0))];
260
+ } else {
261
+ // Data was found so we set `some` to 1 and return it along with `value`.
262
+ return [toACVMField(1), [...result.publicKeys.toFields(), result.partialAddress].map(toACVMField)];
263
+ }
247
264
  }
248
265
 
249
266
  async utilityGetNotes(
@@ -379,7 +396,7 @@ export class Oracle {
379
396
  [numberOfElements]: ACVMField[],
380
397
  ): Promise<ACVMField[][]> {
381
398
  const values = await this.handlerAsUtility().utilityStorageRead(
382
- L2BlockHash.fromString(blockHash),
399
+ BlockHash.fromString(blockHash),
383
400
  new AztecAddress(Fr.fromString(contractAddress)),
384
401
  Fr.fromString(startStorageSlot),
385
402
  +numberOfElements,
@@ -400,7 +417,7 @@ export class Oracle {
400
417
  return Promise.resolve([]);
401
418
  }
402
419
 
403
- utilityDebugLog(
420
+ async utilityDebugLog(
404
421
  level: ACVMField[],
405
422
  message: ACVMField[],
406
423
  _ignoredFieldsSize: ACVMField[],
@@ -409,8 +426,8 @@ export class Oracle {
409
426
  const levelFr = Fr.fromString(level[0]);
410
427
  const messageStr = message.map(acvmField => String.fromCharCode(Fr.fromString(acvmField).toNumber())).join('');
411
428
  const fieldsFr = fields.map(Fr.fromString);
412
- this.handlerAsMisc().utilityDebugLog(levelFr.toNumber(), messageStr, fieldsFr);
413
- return Promise.resolve([]);
429
+ await this.handlerAsMisc().utilityDebugLog(levelFr.toNumber(), messageStr, fieldsFr);
430
+ return [];
414
431
  }
415
432
 
416
433
  // This function's name is directly hardcoded in `circuit_recorder.ts`. Don't forget to update it there if you
@@ -30,10 +30,9 @@ import {
30
30
  type TxContext,
31
31
  } from '@aztec/stdlib/tx';
32
32
 
33
- import { ensureContractSynced } from '../../contract_sync/index.js';
33
+ import type { ContractSyncService } from '../../contract_sync/contract_sync_service.js';
34
34
  import { NoteService } from '../../notes/note_service.js';
35
35
  import type { AddressStore } from '../../storage/address_store/address_store.js';
36
- import type { AnchorBlockStore } from '../../storage/anchor_block_store/anchor_block_store.js';
37
36
  import type { CapsuleStore } from '../../storage/capsule_store/capsule_store.js';
38
37
  import type { ContractStore } from '../../storage/contract_store/contract_store.js';
39
38
  import type { NoteStore } from '../../storage/note_store/note_store.js';
@@ -89,12 +88,12 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
89
88
  keyStore: KeyStore,
90
89
  addressStore: AddressStore,
91
90
  aztecNode: AztecNode,
92
- anchorBlockStore: AnchorBlockStore,
93
91
  private readonly senderTaggingStore: SenderTaggingStore,
94
92
  recipientTaggingStore: RecipientTaggingStore,
95
93
  senderAddressBookStore: SenderAddressBookStore,
96
94
  capsuleStore: CapsuleStore,
97
95
  privateEventStore: PrivateEventStore,
96
+ private readonly contractSyncService: ContractSyncService,
98
97
  jobId: string,
99
98
  private totalPublicCalldataCount: number = 0,
100
99
  protected sideEffectCounter: number = 0,
@@ -113,7 +112,6 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
113
112
  keyStore,
114
113
  addressStore,
115
114
  aztecNode,
116
- anchorBlockStore,
117
115
  recipientTaggingStore,
118
116
  senderAddressBookStore,
119
117
  capsuleStore,
@@ -245,7 +243,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
245
243
  sender: AztecAddress,
246
244
  recipient: AztecAddress,
247
245
  ) {
248
- const senderCompleteAddress = await this.getCompleteAddress(sender);
246
+ const senderCompleteAddress = await this.getCompleteAddressOrFail(sender);
249
247
  const senderIvsk = await this.keyStore.getMasterIncomingViewingSecretKey(sender);
250
248
  return DirectionalAppTaggingSecret.compute(
251
249
  senderCompleteAddress,
@@ -364,7 +362,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
364
362
 
365
363
  const pendingNullifiers = this.noteCache.getNullifiers(this.callContext.contractAddress);
366
364
 
367
- const noteService = new NoteService(this.noteStore, this.aztecNode, this.anchorBlockStore, this.jobId);
365
+ const noteService = new NoteService(this.noteStore, this.aztecNode, this.anchorBlockHeader, this.jobId);
368
366
  const dbNotes = await noteService.getNotes(
369
367
  this.callContext.contractAddress,
370
368
  owner,
@@ -540,13 +538,12 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
540
538
 
541
539
  isStaticCall = isStaticCall || this.callContext.isStaticCall;
542
540
 
543
- await ensureContractSynced(
541
+ await this.contractSyncService.ensureContractSynced(
544
542
  targetContractAddress,
545
543
  functionSelector,
546
544
  this.utilityExecutor,
547
- this.aztecNode,
548
- this.contractStore,
549
545
  this.anchorBlockHeader,
546
+ this.jobId,
550
547
  );
551
548
 
552
549
  const targetArtifact = await this.contractStore.getFunctionArtifactWithDebugMetadata(
@@ -574,12 +571,12 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
574
571
  this.keyStore,
575
572
  this.addressStore,
576
573
  this.aztecNode,
577
- this.anchorBlockStore,
578
574
  this.senderTaggingStore,
579
575
  this.recipientTaggingStore,
580
576
  this.senderAddressBookStore,
581
577
  this.capsuleStore,
582
578
  this.privateEventStore,
579
+ this.contractSyncService,
583
580
  this.jobId,
584
581
  this.totalPublicCalldataCount,
585
582
  sideEffectCounter,