@aztec/pxe 0.0.1-commit.6c91f13 → 0.0.1-commit.6d63667d

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 (237) hide show
  1. package/dest/bin/check_oracle_version.js +1 -1
  2. package/dest/block_synchronizer/block_synchronizer.d.ts +13 -5
  3. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
  4. package/dest/block_synchronizer/block_synchronizer.js +74 -20
  5. package/dest/config/index.d.ts +3 -1
  6. package/dest/config/index.d.ts.map +1 -1
  7. package/dest/config/index.js +17 -0
  8. package/dest/config/package_info.js +1 -1
  9. package/dest/contract_function_simulator/benchmarked_node.d.ts +9 -0
  10. package/dest/contract_function_simulator/benchmarked_node.d.ts.map +1 -0
  11. package/dest/contract_function_simulator/benchmarked_node.js +77 -0
  12. package/dest/contract_function_simulator/contract_function_simulator.d.ts +11 -12
  13. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  14. package/dest/contract_function_simulator/contract_function_simulator.js +39 -28
  15. package/dest/contract_function_simulator/execution_note_cache.d.ts +18 -9
  16. package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
  17. package/dest/contract_function_simulator/execution_note_cache.js +45 -28
  18. package/dest/contract_function_simulator/index.d.ts +2 -2
  19. package/dest/contract_function_simulator/index.d.ts.map +1 -1
  20. package/dest/contract_function_simulator/index.js +1 -1
  21. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +4 -3
  22. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
  23. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +6 -3
  24. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +1 -1
  25. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +1 -1
  26. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +4 -10
  27. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -1
  28. package/dest/contract_function_simulator/noir-structs/utility_context.js +7 -18
  29. package/dest/contract_function_simulator/oracle/interfaces.d.ts +16 -12
  30. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
  31. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +3 -1
  32. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -1
  33. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +6 -6
  34. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -1
  35. package/dest/contract_function_simulator/oracle/note_packing_utils.js +8 -8
  36. package/dest/contract_function_simulator/oracle/oracle.d.ts +11 -9
  37. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
  38. package/dest/contract_function_simulator/oracle/oracle.js +64 -41
  39. package/dest/contract_function_simulator/oracle/private_execution.d.ts +2 -26
  40. package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
  41. package/dest/contract_function_simulator/oracle/private_execution.js +1 -37
  42. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +13 -18
  43. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  44. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +24 -40
  45. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +38 -24
  46. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  47. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +86 -83
  48. package/dest/contract_sync/contract_sync_service.d.ts +41 -0
  49. package/dest/contract_sync/contract_sync_service.d.ts.map +1 -0
  50. package/dest/contract_sync/contract_sync_service.js +82 -0
  51. package/dest/contract_sync/helpers.d.ts +28 -0
  52. package/dest/contract_sync/helpers.d.ts.map +1 -0
  53. package/dest/contract_sync/helpers.js +55 -0
  54. package/dest/debug/pxe_debug_utils.d.ts +24 -9
  55. package/dest/debug/pxe_debug_utils.d.ts.map +1 -1
  56. package/dest/debug/pxe_debug_utils.js +31 -17
  57. package/dest/entrypoints/client/bundle/utils.d.ts +1 -1
  58. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  59. package/dest/entrypoints/client/bundle/utils.js +22 -7
  60. package/dest/entrypoints/client/lazy/utils.d.ts +2 -2
  61. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  62. package/dest/entrypoints/client/lazy/utils.js +23 -8
  63. package/dest/entrypoints/pxe_creation_options.d.ts +5 -3
  64. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  65. package/dest/entrypoints/server/index.d.ts +3 -1
  66. package/dest/entrypoints/server/index.d.ts.map +1 -1
  67. package/dest/entrypoints/server/index.js +2 -0
  68. package/dest/entrypoints/server/utils.d.ts +1 -1
  69. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  70. package/dest/entrypoints/server/utils.js +30 -15
  71. package/dest/events/event_service.d.ts +6 -6
  72. package/dest/events/event_service.d.ts.map +1 -1
  73. package/dest/events/event_service.js +19 -22
  74. package/dest/events/private_event_filter_validator.d.ts +5 -5
  75. package/dest/events/private_event_filter_validator.d.ts.map +1 -1
  76. package/dest/events/private_event_filter_validator.js +5 -6
  77. package/dest/job_coordinator/job_coordinator.d.ts +75 -0
  78. package/dest/job_coordinator/job_coordinator.d.ts.map +1 -0
  79. package/dest/job_coordinator/job_coordinator.js +94 -0
  80. package/dest/logs/log_service.d.ts +7 -5
  81. package/dest/logs/log_service.d.ts.map +1 -1
  82. package/dest/logs/log_service.js +23 -20
  83. package/dest/notes/note_service.d.ts +7 -7
  84. package/dest/notes/note_service.d.ts.map +1 -1
  85. package/dest/notes/note_service.js +31 -36
  86. package/dest/oracle_version.d.ts +3 -3
  87. package/dest/oracle_version.d.ts.map +1 -1
  88. package/dest/oracle_version.js +4 -3
  89. package/dest/private_kernel/hints/index.d.ts +2 -2
  90. package/dest/private_kernel/hints/index.d.ts.map +1 -1
  91. package/dest/private_kernel/hints/index.js +1 -1
  92. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +28 -0
  93. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -0
  94. package/dest/private_kernel/hints/{build_private_kernel_reset_private_inputs.js → private_kernel_reset_private_inputs_builder.js} +13 -7
  95. package/dest/private_kernel/private_kernel_execution_prover.d.ts +3 -2
  96. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  97. package/dest/private_kernel/private_kernel_execution_prover.js +6 -7
  98. package/dest/private_kernel/private_kernel_oracle.d.ts +24 -28
  99. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  100. package/dest/private_kernel/private_kernel_oracle.js +90 -2
  101. package/dest/pxe.d.ts +9 -36
  102. package/dest/pxe.d.ts.map +1 -1
  103. package/dest/pxe.js +87 -97
  104. package/dest/storage/address_store/address_store.d.ts +1 -1
  105. package/dest/storage/address_store/address_store.d.ts.map +1 -1
  106. package/dest/storage/address_store/address_store.js +12 -11
  107. package/dest/storage/anchor_block_store/anchor_block_store.d.ts +9 -1
  108. package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -1
  109. package/dest/storage/anchor_block_store/anchor_block_store.js +8 -1
  110. package/dest/storage/capsule_store/capsule_store.d.ts +24 -9
  111. package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -1
  112. package/dest/storage/capsule_store/capsule_store.js +130 -23
  113. package/dest/storage/contract_store/contract_store.d.ts +1 -2
  114. package/dest/storage/contract_store/contract_store.d.ts.map +1 -1
  115. package/dest/storage/contract_store/contract_store.js +22 -25
  116. package/dest/storage/metadata.d.ts +1 -1
  117. package/dest/storage/metadata.js +1 -1
  118. package/dest/storage/note_store/note_store.d.ts +51 -52
  119. package/dest/storage/note_store/note_store.d.ts.map +1 -1
  120. package/dest/storage/note_store/note_store.js +282 -263
  121. package/dest/storage/note_store/stored_note.d.ts +16 -0
  122. package/dest/storage/note_store/stored_note.d.ts.map +1 -0
  123. package/dest/storage/note_store/stored_note.js +43 -0
  124. package/dest/storage/private_event_store/private_event_store.d.ts +47 -7
  125. package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -1
  126. package/dest/storage/private_event_store/private_event_store.js +231 -73
  127. package/dest/storage/private_event_store/stored_private_event.d.ts +23 -0
  128. package/dest/storage/private_event_store/stored_private_event.d.ts.map +1 -0
  129. package/dest/storage/private_event_store/stored_private_event.js +56 -0
  130. package/dest/storage/tagging_store/recipient_tagging_store.d.ts +15 -8
  131. package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -1
  132. package/dest/storage/tagging_store/recipient_tagging_store.js +88 -19
  133. package/dest/storage/tagging_store/sender_address_book_store.d.ts +1 -1
  134. package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +1 -1
  135. package/dest/storage/tagging_store/sender_address_book_store.js +20 -14
  136. package/dest/storage/tagging_store/sender_tagging_store.d.ts +19 -9
  137. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -1
  138. package/dest/storage/tagging_store/sender_tagging_store.js +253 -101
  139. package/dest/tagging/constants.d.ts +2 -0
  140. package/dest/tagging/constants.d.ts.map +1 -0
  141. package/dest/tagging/constants.js +10 -0
  142. package/dest/tagging/get_all_logs_by_tags.d.ts +24 -0
  143. package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -0
  144. package/dest/tagging/get_all_logs_by_tags.js +46 -0
  145. package/dest/tagging/index.d.ts +3 -2
  146. package/dest/tagging/index.d.ts.map +1 -1
  147. package/dest/tagging/index.js +2 -10
  148. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +3 -2
  149. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +1 -1
  150. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +8 -8
  151. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +3 -2
  152. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +1 -1
  153. package/dest/tagging/recipient_sync/utils/load_logs_for_range.js +5 -2
  154. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +3 -2
  155. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -1
  156. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +8 -8
  157. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +1 -1
  158. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -1
  159. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +5 -8
  160. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +5 -2
  161. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -1
  162. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +10 -5
  163. package/package.json +27 -18
  164. package/src/bin/check_oracle_version.ts +1 -0
  165. package/src/block_synchronizer/block_synchronizer.ts +93 -32
  166. package/src/config/index.ts +14 -0
  167. package/src/config/package_info.ts +1 -1
  168. package/src/contract_function_simulator/benchmarked_node.ts +103 -0
  169. package/src/contract_function_simulator/contract_function_simulator.ts +46 -32
  170. package/src/contract_function_simulator/execution_note_cache.ts +44 -25
  171. package/src/contract_function_simulator/index.ts +1 -1
  172. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +5 -1
  173. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +1 -1
  174. package/src/contract_function_simulator/noir-structs/utility_context.ts +6 -25
  175. package/src/contract_function_simulator/oracle/interfaces.ts +21 -11
  176. package/src/contract_function_simulator/oracle/note_packing_utils.ts +10 -10
  177. package/src/contract_function_simulator/oracle/oracle.ts +76 -44
  178. package/src/contract_function_simulator/oracle/private_execution.ts +1 -69
  179. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +41 -49
  180. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +108 -90
  181. package/src/contract_sync/contract_sync_service.ts +129 -0
  182. package/src/contract_sync/helpers.ts +93 -0
  183. package/src/debug/pxe_debug_utils.ts +65 -17
  184. package/src/entrypoints/client/bundle/utils.ts +15 -16
  185. package/src/entrypoints/client/lazy/utils.ts +16 -17
  186. package/src/entrypoints/pxe_creation_options.ts +4 -2
  187. package/src/entrypoints/server/index.ts +2 -0
  188. package/src/entrypoints/server/utils.ts +26 -34
  189. package/src/events/event_service.ts +19 -25
  190. package/src/events/private_event_filter_validator.ts +3 -5
  191. package/src/job_coordinator/job_coordinator.ts +150 -0
  192. package/src/logs/log_service.ts +34 -16
  193. package/src/notes/note_service.ts +38 -43
  194. package/src/oracle_version.ts +4 -3
  195. package/src/private_kernel/hints/index.ts +1 -1
  196. package/src/private_kernel/hints/{build_private_kernel_reset_private_inputs.ts → private_kernel_reset_private_inputs_builder.ts} +33 -22
  197. package/src/private_kernel/private_kernel_execution_prover.ts +9 -8
  198. package/src/private_kernel/private_kernel_oracle.ts +116 -36
  199. package/src/pxe.ts +156 -132
  200. package/src/storage/address_store/address_store.ts +15 -15
  201. package/src/storage/anchor_block_store/anchor_block_store.ts +8 -0
  202. package/src/storage/capsule_store/capsule_store.ts +159 -23
  203. package/src/storage/contract_store/contract_store.ts +22 -31
  204. package/src/storage/metadata.ts +1 -1
  205. package/src/storage/note_store/note_store.ts +317 -318
  206. package/src/storage/note_store/stored_note.ts +48 -0
  207. package/src/storage/private_event_store/private_event_store.ts +301 -79
  208. package/src/storage/private_event_store/stored_private_event.ts +73 -0
  209. package/src/storage/tagging_store/recipient_tagging_store.ts +106 -20
  210. package/src/storage/tagging_store/sender_address_book_store.ts +20 -14
  211. package/src/storage/tagging_store/sender_tagging_store.ts +294 -109
  212. package/src/tagging/constants.ts +10 -0
  213. package/src/tagging/get_all_logs_by_tags.ts +68 -0
  214. package/src/tagging/index.ts +2 -11
  215. package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +21 -7
  216. package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +7 -1
  217. package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +10 -7
  218. package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +5 -13
  219. package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +16 -4
  220. package/dest/contract_function_simulator/proxied_node.d.ts +0 -9
  221. package/dest/contract_function_simulator/proxied_node.d.ts.map +0 -1
  222. package/dest/contract_function_simulator/proxied_node.js +0 -27
  223. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts +0 -28
  224. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts.map +0 -1
  225. package/dest/private_kernel/private_kernel_oracle_impl.d.ts +0 -46
  226. package/dest/private_kernel/private_kernel_oracle_impl.d.ts.map +0 -1
  227. package/dest/private_kernel/private_kernel_oracle_impl.js +0 -86
  228. package/dest/public_storage/public_storage_service.d.ts +0 -24
  229. package/dest/public_storage/public_storage_service.d.ts.map +0 -1
  230. package/dest/public_storage/public_storage_service.js +0 -26
  231. package/dest/tree_membership/tree_membership_service.d.ts +0 -52
  232. package/dest/tree_membership/tree_membership_service.d.ts.map +0 -1
  233. package/dest/tree_membership/tree_membership_service.js +0 -84
  234. package/src/contract_function_simulator/proxied_node.ts +0 -33
  235. package/src/private_kernel/private_kernel_oracle_impl.ts +0 -133
  236. package/src/public_storage/public_storage_service.ts +0 -33
  237. package/src/tree_membership/tree_membership_service.ts +0 -112
@@ -1,6 +1,12 @@
1
+ import type { FunctionCall } from '@aztec/stdlib/abi';
2
+ import type { AuthWitness } from '@aztec/stdlib/auth-witness';
3
+ import type { AztecAddress } from '@aztec/stdlib/aztec-address';
1
4
  import type { NoteDao, NotesFilter } from '@aztec/stdlib/note';
2
- import type { PXE } from '../pxe.js';
3
- import type { ContractStore } from '../storage/contract_store/contract_store.js';
5
+ import type { BlockHeader, ContractOverrides } from '@aztec/stdlib/tx';
6
+ import type { BlockSynchronizer } from '../block_synchronizer/block_synchronizer.js';
7
+ import type { ContractFunctionSimulator } from '../contract_function_simulator/contract_function_simulator.js';
8
+ import type { ContractSyncService } from '../contract_sync/contract_sync_service.js';
9
+ import type { AnchorBlockStore } from '../storage/index.js';
4
10
  import type { NoteStore } from '../storage/note_store/note_store.js';
5
11
  /**
6
12
  * Methods provided by this class might help debugging but must not be used in production.
@@ -8,13 +14,15 @@ import type { NoteStore } from '../storage/note_store/note_store.js';
8
14
  */
9
15
  export declare class PXEDebugUtils {
10
16
  #private;
11
- private contractStore;
17
+ private contractSyncService;
12
18
  private noteStore;
13
- constructor(contractStore: ContractStore, noteStore: NoteStore);
14
- /**
15
- * Not injected through constructor since they're are co-dependant.
16
- */
17
- setPXE(pxe: PXE): void;
19
+ private blockStateSynchronizer;
20
+ private anchorBlockStore;
21
+ constructor(contractSyncService: ContractSyncService, noteStore: NoteStore, blockStateSynchronizer: BlockSynchronizer, anchorBlockStore: AnchorBlockStore);
22
+ /** Not injected through constructor since they're are co-dependant */
23
+ setPXEHelpers(putJobInQueue: <T>(job: (jobId: string) => Promise<T>) => Promise<T>, getSimulatorForTx: (overrides?: {
24
+ contracts?: ContractOverrides;
25
+ }) => ContractFunctionSimulator, simulateUtility: (contractFunctionSimulator: ContractFunctionSimulator, call: FunctionCall, authWitnesses: AuthWitness[] | undefined, scopes: AztecAddress[] | undefined, jobId: string) => Promise<any>): void;
18
26
  /**
19
27
  * A debugging utility to get notes based on the provided filter.
20
28
  *
@@ -27,5 +35,12 @@ export declare class PXEDebugUtils {
27
35
  * @returns The requested notes.
28
36
  */
29
37
  getNotes(filter: NotesFilter): Promise<NoteDao[]>;
38
+ /** Returns the block header up to which the PXE has synced. */
39
+ getSyncedBlockHeader(): Promise<BlockHeader>;
40
+ /**
41
+ * Triggers a sync of the PXE with the node.
42
+ * Blocks until the sync is complete.
43
+ */
44
+ sync(): Promise<void>;
30
45
  }
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHhlX2RlYnVnX3V0aWxzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVidWcvcHhlX2RlYnVnX3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUvRCxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDakYsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFckU7OztHQUdHO0FBQ0gscUJBQWEsYUFBYTs7SUFJdEIsT0FBTyxDQUFDLGFBQWE7SUFDckIsT0FBTyxDQUFDLFNBQVM7SUFGbkIsWUFDVSxhQUFhLEVBQUUsYUFBYSxFQUM1QixTQUFTLEVBQUUsU0FBUyxFQUMxQjtJQUVKOztPQUVHO0lBQ0ksTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLFFBRXJCO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNVLFFBQVEsQ0FBQyxNQUFNLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQVU3RDtDQUNGIn0=
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHhlX2RlYnVnX3V0aWxzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVidWcvcHhlX2RlYnVnX3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RELE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvRCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUV2RSxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3JGLE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDL0csT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNyRixPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXJFOzs7R0FHRztBQUNILHFCQUFhLGFBQWE7O0lBWXRCLE9BQU8sQ0FBQyxtQkFBbUI7SUFDM0IsT0FBTyxDQUFDLFNBQVM7SUFDakIsT0FBTyxDQUFDLHNCQUFzQjtJQUM5QixPQUFPLENBQUMsZ0JBQWdCO0lBSjFCLFlBQ1UsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQ3hDLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLHNCQUFzQixFQUFFLGlCQUFpQixFQUN6QyxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFDeEM7SUFFSixzRUFBc0U7SUFDL0QsYUFBYSxDQUNsQixhQUFhLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUNwRSxpQkFBaUIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1FBQUUsU0FBUyxDQUFDLEVBQUUsaUJBQWlCLENBQUE7S0FBRSxLQUFLLHlCQUF5QixFQUMvRixlQUFlLEVBQUUsQ0FDZix5QkFBeUIsRUFBRSx5QkFBeUIsRUFDcEQsSUFBSSxFQUFFLFlBQVksRUFDbEIsYUFBYSxFQUFFLFdBQVcsRUFBRSxHQUFHLFNBQVMsRUFDeEMsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFHLFNBQVMsRUFDbEMsS0FBSyxFQUFFLE1BQU0sS0FDVixPQUFPLENBQUMsR0FBRyxDQUFDLFFBS2xCO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLFFBQVEsQ0FBQyxNQUFNLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQW1CdkQ7SUFFRCwrREFBK0Q7SUFDeEQsb0JBQW9CLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUVsRDtJQUVEOzs7T0FHRztJQUNJLElBQUksSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBRTNCO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"pxe_debug_utils.d.ts","sourceRoot":"","sources":["../../src/debug/pxe_debug_utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AACjF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAErE;;;GAGG;AACH,qBAAa,aAAa;;IAItB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,SAAS;IAFnB,YACU,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,SAAS,EAC1B;IAEJ;;OAEG;IACI,MAAM,CAAC,GAAG,EAAE,GAAG,QAErB;IAED;;;;;;;;;;OAUG;IACU,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAU7D;CACF"}
1
+ {"version":3,"file":"pxe_debug_utils.d.ts","sourceRoot":"","sources":["../../src/debug/pxe_debug_utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+DAA+D,CAAC;AAC/G,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AACrF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAErE;;;GAGG;AACH,qBAAa,aAAa;;IAYtB,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,sBAAsB;IAC9B,OAAO,CAAC,gBAAgB;IAJ1B,YACU,mBAAmB,EAAE,mBAAmB,EACxC,SAAS,EAAE,SAAS,EACpB,sBAAsB,EAAE,iBAAiB,EACzC,gBAAgB,EAAE,gBAAgB,EACxC;IAEJ,sEAAsE;IAC/D,aAAa,CAClB,aAAa,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EACpE,iBAAiB,EAAE,CAAC,SAAS,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,iBAAiB,CAAA;KAAE,KAAK,yBAAyB,EAC/F,eAAe,EAAE,CACf,yBAAyB,EAAE,yBAAyB,EACpD,IAAI,EAAE,YAAY,EAClB,aAAa,EAAE,WAAW,EAAE,GAAG,SAAS,EACxC,MAAM,EAAE,YAAY,EAAE,GAAG,SAAS,EAClC,KAAK,EAAE,MAAM,KACV,OAAO,CAAC,GAAG,CAAC,QAKlB;IAED;;;;;;;;;;OAUG;IACI,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAmBvD;IAED,+DAA+D;IACxD,oBAAoB,IAAI,OAAO,CAAC,WAAW,CAAC,CAElD;IAED;;;OAGG;IACI,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3B;CACF"}
@@ -2,18 +2,23 @@
2
2
  * Methods provided by this class might help debugging but must not be used in production.
3
3
  * No backwards compatibility or API stability should be expected. Use at your own risk.
4
4
  */ export class PXEDebugUtils {
5
- contractStore;
5
+ contractSyncService;
6
6
  noteStore;
7
- #pxe;
8
- constructor(contractStore, noteStore){
9
- this.contractStore = contractStore;
7
+ blockStateSynchronizer;
8
+ anchorBlockStore;
9
+ #putJobInQueue;
10
+ #getSimulatorForTx;
11
+ #simulateUtility;
12
+ constructor(contractSyncService, noteStore, blockStateSynchronizer, anchorBlockStore){
13
+ this.contractSyncService = contractSyncService;
10
14
  this.noteStore = noteStore;
11
- this.#pxe = undefined;
15
+ this.blockStateSynchronizer = blockStateSynchronizer;
16
+ this.anchorBlockStore = anchorBlockStore;
12
17
  }
13
- /**
14
- * Not injected through constructor since they're are co-dependant.
15
- */ setPXE(pxe) {
16
- this.#pxe = pxe;
18
+ /** Not injected through constructor since they're are co-dependant */ setPXEHelpers(putJobInQueue, getSimulatorForTx, simulateUtility) {
19
+ this.#putJobInQueue = putJobInQueue;
20
+ this.#getSimulatorForTx = getSimulatorForTx;
21
+ this.#simulateUtility = simulateUtility;
17
22
  }
18
23
  /**
19
24
  * A debugging utility to get notes based on the provided filter.
@@ -25,13 +30,22 @@
25
30
  *
26
31
  * @param filter - The filter to apply to the notes.
27
32
  * @returns The requested notes.
28
- */ async getNotes(filter) {
29
- if (!this.#pxe) {
30
- throw new Error('Cannot getNotes because no PXE is set');
31
- }
32
- // We need to manually trigger private state sync to have a guarantee that all the notes are available.
33
- const call = await this.contractStore.getFunctionCall('sync_private_state', [], filter.contractAddress);
34
- await this.#pxe.simulateUtility(call);
35
- return this.noteStore.getNotes(filter);
33
+ */ getNotes(filter) {
34
+ return this.#putJobInQueue(async (jobId)=>{
35
+ await this.blockStateSynchronizer.sync();
36
+ const anchorBlockHeader = await this.anchorBlockStore.getBlockHeader();
37
+ const contractFunctionSimulator = this.#getSimulatorForTx();
38
+ await this.contractSyncService.ensureContractSynced(filter.contractAddress, null, async (privateSyncCall)=>await this.#simulateUtility(contractFunctionSimulator, privateSyncCall, [], undefined, jobId), anchorBlockHeader, jobId);
39
+ return this.noteStore.getNotes(filter, jobId);
40
+ });
41
+ }
42
+ /** Returns the block header up to which the PXE has synced. */ getSyncedBlockHeader() {
43
+ return this.anchorBlockStore.getBlockHeader();
44
+ }
45
+ /**
46
+ * Triggers a sync of the PXE with the node.
47
+ * Blocks until the sync is complete.
48
+ */ sync() {
49
+ return this.#putJobInQueue(()=>this.blockStateSynchronizer.sync());
36
50
  }
37
51
  }
@@ -13,4 +13,4 @@ import type { PXECreationOptions } from '../../pxe_creation_options.js';
13
13
  * @returns A Promise that resolves to the started PXE instance.
14
14
  */
15
15
  export declare function createPXE(aztecNode: AztecNode, config: PXEConfig, options?: PXECreationOptions): Promise<PXE>;
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbnRyeXBvaW50cy9jbGllbnQvYnVuZGxlL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRWpFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0QyxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRXhFOzs7Ozs7Ozs7R0FTRztBQUNILHdCQUFzQixTQUFTLENBQzdCLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLE1BQU0sRUFBRSxTQUFTLEVBQ2pCLE9BQU8sR0FBRSxrQkFBb0MsZ0JBZ0M5QyJ9
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbnRyeXBvaW50cy9jbGllbnQvYnVuZGxlL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRWpFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV0QyxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRXhFOzs7Ozs7Ozs7R0FTRztBQUNILHdCQUFzQixTQUFTLENBQzdCLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLE1BQU0sRUFBRSxTQUFTLEVBQ2pCLE9BQU8sR0FBRSxrQkFBb0MsZ0JBOEI5QyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/entrypoints/client/bundle/utils.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAExE;;;;;;;;;GASG;AACH,wBAAsB,SAAS,CAC7B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,SAAS,EACjB,OAAO,GAAE,kBAAoC,gBAgC9C"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/entrypoints/client/bundle/utils.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAEtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAExE;;;;;;;;;GASG;AACH,wBAAsB,SAAS,CAC7B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,SAAS,EACjB,OAAO,GAAE,kBAAoC,gBA8B9C"}
@@ -1,10 +1,11 @@
1
+ import { BBPrivateKernelProver } from '@aztec/bb-prover/client';
1
2
  import { BBBundlePrivateKernelProver } from '@aztec/bb-prover/client/bundle';
2
- import { randomBytes } from '@aztec/foundation/crypto/random';
3
3
  import { createLogger } from '@aztec/foundation/log';
4
4
  import { createStore } from '@aztec/kv-store/indexeddb';
5
5
  import { BundledProtocolContractsProvider } from '@aztec/protocol-contracts/providers/bundle';
6
6
  import { WASMSimulator } from '@aztec/simulator/client';
7
7
  import { PXE } from '../../../pxe.js';
8
+ import { PXE_DATA_SCHEMA_VERSION } from '../../../storage/metadata.js';
8
9
  /**
9
10
  * Create and start an PXE instance with the given AztecNode.
10
11
  * If no keyStore or database is provided, it will use KeyStore and MemoryDB as default values.
@@ -17,20 +18,34 @@ import { PXE } from '../../../pxe.js';
17
18
  */ export async function createPXE(aztecNode, config, options = {
18
19
  loggers: {}
19
20
  }) {
20
- const logSuffix = typeof options.useLogSuffix === 'boolean' ? options.useLogSuffix ? randomBytes(3).toString('hex') : undefined : options.useLogSuffix;
21
+ const actor = options.loggerActorLabel;
21
22
  const loggers = options.loggers ?? {};
22
23
  const l1Contracts = await aztecNode.getL1ContractAddresses();
23
24
  const configWithContracts = {
24
25
  ...config,
25
26
  l1Contracts
26
27
  };
27
- const storeLogger = loggers.store ? loggers.store : createLogger('pxe:data:idb' + (logSuffix ? `:${logSuffix}` : ''));
28
- const store = options.store ?? await createStore('pxe_data', configWithContracts, storeLogger);
28
+ const storeLogger = loggers.store ?? createLogger('pxe:data:idb', {
29
+ actor
30
+ });
31
+ const store = options.store ?? await createStore('pxe_data', configWithContracts, PXE_DATA_SCHEMA_VERSION, storeLogger);
29
32
  const simulator = options.simulator ?? new WASMSimulator();
30
- const proverLogger = loggers.prover ? loggers.prover : createLogger('pxe:bb:wasm:bundle' + (logSuffix ? `:${logSuffix}` : ''));
31
- const prover = options.prover ?? new BBBundlePrivateKernelProver(simulator, proverLogger);
33
+ const proverLogger = loggers.prover ?? createLogger('pxe:bb:wasm:bundle', {
34
+ actor
35
+ });
36
+ let prover;
37
+ if (options.proverOrOptions instanceof BBPrivateKernelProver) {
38
+ prover = options.proverOrOptions;
39
+ } else {
40
+ prover = new BBBundlePrivateKernelProver(simulator, {
41
+ ...options.proverOrOptions,
42
+ logger: proverLogger
43
+ });
44
+ }
32
45
  const protocolContractsProvider = new BundledProtocolContractsProvider();
33
- const pxeLogger = loggers.pxe ? loggers.pxe : createLogger('pxe:service' + (logSuffix ? `:${logSuffix}` : ''));
46
+ const pxeLogger = loggers.pxe ?? createLogger('pxe:service', {
47
+ actor
48
+ });
34
49
  const pxe = await PXE.create(aztecNode, store, prover, simulator, protocolContractsProvider, config, pxeLogger);
35
50
  return pxe;
36
51
  }
@@ -8,8 +8,8 @@ import type { PXECreationOptions } from '../../pxe_creation_options.js';
8
8
  *
9
9
  * @param aztecNode - The AztecNode instance to be used by the server.
10
10
  * @param config - The PXE Config to use
11
- * @param
11
+ * @param options - (Optional) Optional information for creating an PXE.
12
12
  * @returns A Promise that resolves to the started PXE instance.
13
13
  */
14
14
  export declare function createPXE(aztecNode: AztecNode, config: PXEConfig, options?: PXECreationOptions): Promise<PXE>;
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbnRyeXBvaW50cy9jbGllbnQvbGF6eS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVqRSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEMsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUV4RTs7Ozs7Ozs7R0FRRztBQUNILHdCQUFzQixTQUFTLENBQzdCLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLE1BQU0sRUFBRSxTQUFTLEVBQ2pCLE9BQU8sR0FBRSxrQkFBb0MsZ0JBaUM5QyJ9
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbnRyeXBvaW50cy9jbGllbnQvbGF6eS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVqRSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFdEMsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUV4RTs7Ozs7Ozs7R0FRRztBQUNILHdCQUFzQixTQUFTLENBQzdCLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLE1BQU0sRUFBRSxTQUFTLEVBQ2pCLE9BQU8sR0FBRSxrQkFBb0MsZ0JBK0I5QyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/entrypoints/client/lazy/utils.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAExE;;;;;;;;GAQG;AACH,wBAAsB,SAAS,CAC7B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,SAAS,EACjB,OAAO,GAAE,kBAAoC,gBAiC9C"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/entrypoints/client/lazy/utils.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAEtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAExE;;;;;;;;GAQG;AACH,wBAAsB,SAAS,CAC7B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,SAAS,EACjB,OAAO,GAAE,kBAAoC,gBA+B9C"}
@@ -1,35 +1,50 @@
1
+ import { BBPrivateKernelProver } from '@aztec/bb-prover/client';
1
2
  import { BBLazyPrivateKernelProver } from '@aztec/bb-prover/client/lazy';
2
- import { randomBytes } from '@aztec/foundation/crypto/random';
3
3
  import { createLogger } from '@aztec/foundation/log';
4
4
  import { createStore } from '@aztec/kv-store/indexeddb';
5
5
  import { LazyProtocolContractsProvider } from '@aztec/protocol-contracts/providers/lazy';
6
6
  import { WASMSimulator } from '@aztec/simulator/client';
7
7
  import { PXE } from '../../../pxe.js';
8
+ import { PXE_DATA_SCHEMA_VERSION } from '../../../storage/metadata.js';
8
9
  /**
9
10
  * Create and start an PXE instance with the given AztecNode.
10
11
  * Returns a Promise that resolves to the started PXE instance.
11
12
  *
12
13
  * @param aztecNode - The AztecNode instance to be used by the server.
13
14
  * @param config - The PXE Config to use
14
- * @param
15
+ * @param options - (Optional) Optional information for creating an PXE.
15
16
  * @returns A Promise that resolves to the started PXE instance.
16
17
  */ export async function createPXE(aztecNode, config, options = {
17
18
  loggers: {}
18
19
  }) {
19
- const logSuffix = typeof options.useLogSuffix === 'boolean' ? options.useLogSuffix ? randomBytes(3).toString('hex') : undefined : options.useLogSuffix;
20
+ const actor = options.loggerActorLabel;
20
21
  const l1Contracts = await aztecNode.getL1ContractAddresses();
21
22
  const configWithContracts = {
22
23
  ...config,
23
24
  l1Contracts
24
25
  };
25
26
  const loggers = options.loggers ?? {};
26
- const storeLogger = loggers.store ? loggers.store : createLogger('pxe:data:idb' + (logSuffix ? `:${logSuffix}` : ''));
27
- const store = options.store ?? await createStore('pxe_data', configWithContracts, storeLogger);
27
+ const storeLogger = loggers.store ?? createLogger('pxe:data:idb', {
28
+ actor
29
+ });
30
+ const store = options.store ?? await createStore('pxe_data', configWithContracts, PXE_DATA_SCHEMA_VERSION, storeLogger);
28
31
  const simulator = options.simulator ?? new WASMSimulator();
29
- const proverLogger = loggers.prover ? loggers.prover : createLogger('pxe:bb:wasm:bundle' + (logSuffix ? `:${logSuffix}` : ''));
30
- const prover = options.prover ?? new BBLazyPrivateKernelProver(simulator, proverLogger);
32
+ const proverLogger = loggers.prover ?? createLogger('pxe:bb:wasm:bundle', {
33
+ actor
34
+ });
35
+ let prover;
36
+ if (options.proverOrOptions instanceof BBPrivateKernelProver) {
37
+ prover = options.proverOrOptions;
38
+ } else {
39
+ prover = new BBLazyPrivateKernelProver(simulator, {
40
+ ...options.proverOrOptions,
41
+ logger: proverLogger
42
+ });
43
+ }
31
44
  const protocolContractsProvider = new LazyProtocolContractsProvider();
32
- const pxeLogger = loggers.pxe ? loggers.pxe : createLogger('pxe:service' + (logSuffix ? `:${logSuffix}` : ''));
45
+ const pxeLogger = loggers.pxe ?? createLogger('pxe:service', {
46
+ actor
47
+ });
33
48
  const pxe = await PXE.create(aztecNode, store, prover, simulator, protocolContractsProvider, config, pxeLogger);
34
49
  return pxe;
35
50
  }
@@ -1,3 +1,4 @@
1
+ import type { BBPrivateKernelProverOptions } from '@aztec/bb-prover/client';
1
2
  import type { Logger } from '@aztec/foundation/log';
2
3
  import type { AztecAsyncKVStore } from '@aztec/kv-store';
3
4
  import type { CircuitSimulator } from '@aztec/simulator/client';
@@ -8,9 +9,10 @@ export type PXECreationOptions = {
8
9
  pxe?: Logger;
9
10
  prover?: Logger;
10
11
  };
11
- useLogSuffix?: boolean | string;
12
- prover?: PrivateKernelProver;
12
+ /** Actor label to include in log output (e.g., 'pxe-0', 'pxe-test'). */
13
+ loggerActorLabel?: string;
14
+ proverOrOptions?: PrivateKernelProver | BBPrivateKernelProverOptions;
13
15
  store?: AztecAsyncKVStore;
14
16
  simulator?: CircuitSimulator;
15
17
  };
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHhlX2NyZWF0aW9uX29wdGlvbnMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbnRyeXBvaW50cy9weGVfY3JlYXRpb25fb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUUzRSxNQUFNLE1BQU0sa0JBQWtCLEdBQUc7SUFDL0IsT0FBTyxDQUFDLEVBQUU7UUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLENBQUM7UUFBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUM7UUFBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUE7S0FBRSxDQUFDO0lBQzVELFlBQVksQ0FBQyxFQUFFLE9BQU8sR0FBRyxNQUFNLENBQUM7SUFDaEMsTUFBTSxDQUFDLEVBQUUsbUJBQW1CLENBQUM7SUFDN0IsS0FBSyxDQUFDLEVBQUUsaUJBQWlCLENBQUM7SUFDMUIsU0FBUyxDQUFDLEVBQUUsZ0JBQWdCLENBQUM7Q0FDOUIsQ0FBQyJ9
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHhlX2NyZWF0aW9uX29wdGlvbnMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbnRyeXBvaW50cy9weGVfY3JlYXRpb25fb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVFLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTNFLE1BQU0sTUFBTSxrQkFBa0IsR0FBRztJQUMvQixPQUFPLENBQUMsRUFBRTtRQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQTtLQUFFLENBQUM7SUFDNUQsd0VBQXdFO0lBQ3hFLGdCQUFnQixDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQzFCLGVBQWUsQ0FBQyxFQUFFLG1CQUFtQixHQUFHLDRCQUE0QixDQUFDO0lBQ3JFLEtBQUssQ0FBQyxFQUFFLGlCQUFpQixDQUFDO0lBQzFCLFNBQVMsQ0FBQyxFQUFFLGdCQUFnQixDQUFDO0NBQzlCLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"pxe_creation_options.d.ts","sourceRoot":"","sources":["../../src/entrypoints/pxe_creation_options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5D,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAChC,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC9B,CAAC"}
1
+ {"version":3,"file":"pxe_creation_options.d.ts","sourceRoot":"","sources":["../../src/entrypoints/pxe_creation_options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5D,wEAAwE;IACxE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,mBAAmB,GAAG,4BAA4B,CAAC;IACrE,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC9B,CAAC"}
@@ -6,4 +6,6 @@ export * from './utils.js';
6
6
  export { NoteService } from '../../notes/note_service.js';
7
7
  export { ORACLE_VERSION } from '../../oracle_version.js';
8
8
  export { type PXECreationOptions } from '../pxe_creation_options.js';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbnRyeXBvaW50cy9zZXJ2ZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxZQUFZLENBQUM7QUFDM0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsS0FBSyxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDIn0=
9
+ export { JobCoordinator } from '../../job_coordinator/job_coordinator.js';
10
+ export { ContractSyncService } from '../../contract_sync/contract_sync_service.js';
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbnRyeXBvaW50cy9zZXJ2ZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxZQUFZLENBQUM7QUFDM0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsS0FBSyxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/entrypoints/server/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/entrypoints/server/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC"}
@@ -5,3 +5,5 @@ export * from '../../storage/index.js';
5
5
  export * from './utils.js';
6
6
  export { NoteService } from '../../notes/note_service.js';
7
7
  export { ORACLE_VERSION } from '../../oracle_version.js';
8
+ export { JobCoordinator } from '../../job_coordinator/job_coordinator.js';
9
+ export { ContractSyncService } from '../../contract_sync/contract_sync_service.js';
@@ -5,4 +5,4 @@ import type { PXECreationOptions } from '../pxe_creation_options.js';
5
5
  type PXEConfigWithoutDefaults = Omit<PXEConfig, 'l1Contracts' | 'l1ChainId' | 'l2BlockBatchSize' | 'rollupVersion'>;
6
6
  export declare function createPXE(aztecNode: AztecNode, config: PXEConfigWithoutDefaults, options?: PXECreationOptions): Promise<PXE>;
7
7
  export {};
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbnRyeXBvaW50cy9zZXJ2ZXIvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV0EsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFakUsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVuQyxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXJFLEtBQUssd0JBQXdCLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxhQUFhLEdBQUcsV0FBVyxHQUFHLGtCQUFrQixHQUFHLGVBQWUsQ0FBQyxDQUFDO0FBRXBILHdCQUFzQixTQUFTLENBQzdCLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLE1BQU0sRUFBRSx3QkFBd0IsRUFDaEMsT0FBTyxHQUFFLGtCQUFvQyxnQkFtRDlDIn0=
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbnRyeXBvaW50cy9zZXJ2ZXIvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFakUsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVuQyxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXJFLEtBQUssd0JBQXdCLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxhQUFhLEdBQUcsV0FBVyxHQUFHLGtCQUFrQixHQUFHLGVBQWUsQ0FBQyxDQUFDO0FBRXBILHdCQUFzQixTQUFTLENBQzdCLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLE1BQU0sRUFBRSx3QkFBd0IsRUFDaEMsT0FBTyxHQUFFLGtCQUFvQyxnQkFtRDlDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/entrypoints/server/utils.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,KAAK,wBAAwB,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,GAAG,WAAW,GAAG,kBAAkB,GAAG,eAAe,CAAC,CAAC;AAEpH,wBAAsB,SAAS,CAC7B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,wBAAwB,EAChC,OAAO,GAAE,kBAAoC,gBAmD9C"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/entrypoints/server/utils.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,KAAK,wBAAwB,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,GAAG,WAAW,GAAG,kBAAkB,GAAG,eAAe,CAAC,CAAC;AAEpH,wBAAsB,SAAS,CAC7B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,wBAAwB,EAChC,OAAO,GAAE,kBAAoC,gBAmD9C"}
@@ -1,6 +1,7 @@
1
+ import { BBPrivateKernelProver } from '@aztec/bb-prover/client';
1
2
  import { BBBundlePrivateKernelProver } from '@aztec/bb-prover/client/bundle';
2
- import { randomBytes } from '@aztec/foundation/crypto/random';
3
3
  import { createLogger } from '@aztec/foundation/log';
4
+ import { createStore } from '@aztec/kv-store/lmdb-v2';
4
5
  import { BundledProtocolContractsProvider } from '@aztec/protocol-contracts/providers/bundle';
5
6
  import { MemoryCircuitRecorder, SimulatorRecorderWrapper, WASMSimulator } from '@aztec/simulator/client';
6
7
  import { FileCircuitRecorder } from '@aztec/simulator/testing';
@@ -9,9 +10,15 @@ import { PXE_DATA_SCHEMA_VERSION } from '../../storage/index.js';
9
10
  export async function createPXE(aztecNode, config, options = {
10
11
  loggers: {}
11
12
  }) {
12
- const recorder = process.env.CIRCUIT_RECORD_DIR ? new FileCircuitRecorder(process.env.CIRCUIT_RECORD_DIR) : new MemoryCircuitRecorder();
13
- const simulator = new SimulatorRecorderWrapper(new WASMSimulator(), recorder);
14
- const logSuffix = typeof options.useLogSuffix === 'boolean' ? options.useLogSuffix ? randomBytes(3).toString('hex') : undefined : options.useLogSuffix;
13
+ const actor = options.loggerActorLabel;
14
+ const recorderLogger = createLogger('simulator:acvm:recording', {
15
+ actor
16
+ });
17
+ const recorder = process.env.CIRCUIT_RECORD_DIR ? new FileCircuitRecorder(process.env.CIRCUIT_RECORD_DIR, recorderLogger) : new MemoryCircuitRecorder(recorderLogger);
18
+ const simulatorLogger = createLogger('wasm-simulator', {
19
+ actor
20
+ });
21
+ const simulator = new SimulatorRecorderWrapper(new WASMSimulator(simulatorLogger), recorder);
15
22
  const loggers = options.loggers ?? {};
16
23
  const { l1ChainId, l1ContractAddresses: l1Contracts, rollupVersion } = await aztecNode.getNodeInfo();
17
24
  const configWithContracts = {
@@ -22,19 +29,27 @@ export async function createPXE(aztecNode, config, options = {
22
29
  l2BlockBatchSize: 50
23
30
  };
24
31
  if (!options.store) {
25
- // TODO once https://github.com/AztecProtocol/aztec-packages/issues/13656 is fixed, we can remove this and always
26
- // import the lmdb-v2 version
27
- const { createStore } = await import('@aztec/kv-store/lmdb-v2');
28
- const storeLogger = loggers.store ? loggers.store : createLogger('pxe:data:lmdb' + (logSuffix ? `:${logSuffix}` : ''));
29
- options.store = await createStore('pxe_data', PXE_DATA_SCHEMA_VERSION, configWithContracts, storeLogger);
32
+ const storeLogger = loggers.store ?? createLogger('pxe:data:lmdb', {
33
+ actor
34
+ });
35
+ options.store = await createStore('pxe_data', PXE_DATA_SCHEMA_VERSION, configWithContracts, storeLogger.getBindings());
36
+ }
37
+ const proverLogger = loggers.prover ?? createLogger('pxe:bb:native', {
38
+ actor
39
+ });
40
+ let prover;
41
+ if (options.proverOrOptions instanceof BBPrivateKernelProver) {
42
+ prover = options.proverOrOptions;
43
+ } else {
44
+ prover = new BBBundlePrivateKernelProver(simulator, {
45
+ ...options.proverOrOptions,
46
+ logger: proverLogger
47
+ });
30
48
  }
31
- const proverLogger = loggers.prover ? loggers.prover : createLogger('pxe:bb:native' + (logSuffix ? `:${logSuffix}` : ''));
32
- const prover = options.prover ?? createProver(simulator, proverLogger);
33
49
  const protocolContractsProvider = new BundledProtocolContractsProvider();
34
- const pxeLogger = loggers.pxe ? loggers.pxe : createLogger('pxe:service' + (logSuffix ? `:${logSuffix}` : ''));
50
+ const pxeLogger = loggers.pxe ?? createLogger('pxe:service', {
51
+ actor
52
+ });
35
53
  const pxe = await PXE.create(aztecNode, options.store, prover, simulator, protocolContractsProvider, configWithContracts, pxeLogger);
36
54
  return pxe;
37
55
  }
38
- function createProver(simulator, logger) {
39
- return new BBBundlePrivateKernelProver(simulator, logger);
40
- }
@@ -2,14 +2,14 @@ import type { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import type { EventSelector } from '@aztec/stdlib/abi';
3
3
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
4
4
  import type { AztecNode } from '@aztec/stdlib/interfaces/server';
5
- import type { TxHash } from '@aztec/stdlib/tx';
6
- import { AnchorBlockStore } from '../storage/anchor_block_store/anchor_block_store.js';
5
+ import type { BlockHeader, TxHash } from '@aztec/stdlib/tx';
7
6
  import { PrivateEventStore } from '../storage/private_event_store/private_event_store.js';
8
7
  export declare class EventService {
9
- private readonly anchorBlockStore;
8
+ private readonly anchorBlockHeader;
10
9
  private readonly aztecNode;
11
10
  private readonly privateEventStore;
12
- constructor(anchorBlockStore: AnchorBlockStore, aztecNode: AztecNode, privateEventStore: PrivateEventStore);
13
- deliverEvent(contractAddress: AztecAddress, selector: EventSelector, content: Fr[], eventCommitment: Fr, txHash: TxHash, scope: AztecAddress): Promise<void>;
11
+ private readonly jobId;
12
+ constructor(anchorBlockHeader: BlockHeader, aztecNode: AztecNode, privateEventStore: PrivateEventStore, jobId: string);
13
+ validateAndStoreEvent(contractAddress: AztecAddress, selector: EventSelector, randomness: Fr, content: Fr[], eventCommitment: Fr, txHash: TxHash, scope: AztecAddress): Promise<void>;
14
14
  }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRfc2VydmljZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2V2ZW50cy9ldmVudF9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRWhFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRWpFLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBRTFGLHFCQUFhLFlBQVk7SUFFckIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0I7SUFDakMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTO0lBQzFCLE9BQU8sQ0FBQyxRQUFRLENBQUMsaUJBQWlCO0lBSHBDLFlBQ21CLGdCQUFnQixFQUFFLGdCQUFnQixFQUNsQyxTQUFTLEVBQUUsU0FBUyxFQUNwQixpQkFBaUIsRUFBRSxpQkFBaUIsRUFDbkQ7SUFFUyxZQUFZLENBQ3ZCLGVBQWUsRUFBRSxZQUFZLEVBQzdCLFFBQVEsRUFBRSxhQUFhLEVBQ3ZCLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFDYixlQUFlLEVBQUUsRUFBRSxFQUNuQixNQUFNLEVBQUUsTUFBTSxFQUNkLEtBQUssRUFBRSxZQUFZLEdBQ2xCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FrRGY7Q0FDRiJ9
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRfc2VydmljZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2V2ZW50cy9ldmVudF9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRWhFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUUxRixxQkFBYSxZQUFZO0lBRXJCLE9BQU8sQ0FBQyxRQUFRLENBQUMsaUJBQWlCO0lBQ2xDLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUztJQUMxQixPQUFPLENBQUMsUUFBUSxDQUFDLGlCQUFpQjtJQUNsQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUs7SUFKeEIsWUFDbUIsaUJBQWlCLEVBQUUsV0FBVyxFQUM5QixTQUFTLEVBQUUsU0FBUyxFQUNwQixpQkFBaUIsRUFBRSxpQkFBaUIsRUFDcEMsS0FBSyxFQUFFLE1BQU0sRUFDNUI7SUFFUyxxQkFBcUIsQ0FDaEMsZUFBZSxFQUFFLFlBQVksRUFDN0IsUUFBUSxFQUFFLGFBQWEsRUFDdkIsVUFBVSxFQUFFLEVBQUUsRUFDZCxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQ2IsZUFBZSxFQUFFLEVBQUUsRUFDbkIsTUFBTSxFQUFFLE1BQU0sRUFDZCxLQUFLLEVBQUUsWUFBWSxHQUNsQixPQUFPLENBQUMsSUFBSSxDQUFDLENBNENmO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"event_service.d.ts","sourceRoot":"","sources":["../../src/events/event_service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qDAAqD,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,uDAAuD,CAAC;AAE1F,qBAAa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAHpC,YACmB,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,SAAS,EACpB,iBAAiB,EAAE,iBAAiB,EACnD;IAES,YAAY,CACvB,eAAe,EAAE,YAAY,EAC7B,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,EAAE,EAAE,EACb,eAAe,EAAE,EAAE,EACnB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,IAAI,CAAC,CAkDf;CACF"}
1
+ {"version":3,"file":"event_service.d.ts","sourceRoot":"","sources":["../../src/events/event_service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uDAAuD,CAAC;AAE1F,qBAAa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK;IAJxB,YACmB,iBAAiB,EAAE,WAAW,EAC9B,SAAS,EAAE,SAAS,EACpB,iBAAiB,EAAE,iBAAiB,EACpC,KAAK,EAAE,MAAM,EAC5B;IAES,qBAAqB,CAChC,eAAe,EAAE,YAAY,EAC7B,QAAQ,EAAE,aAAa,EACvB,UAAU,EAAE,EAAE,EACd,OAAO,EAAE,EAAE,EAAE,EACb,eAAe,EAAE,EAAE,EACnB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,IAAI,CAAC,CA4Cf;CACF"}
@@ -1,47 +1,44 @@
1
1
  import { siloNullifier } from '@aztec/stdlib/hash';
2
- import { MerkleTreeId } from '@aztec/stdlib/trees';
3
2
  export class EventService {
4
- anchorBlockStore;
3
+ anchorBlockHeader;
5
4
  aztecNode;
6
5
  privateEventStore;
7
- constructor(anchorBlockStore, aztecNode, privateEventStore){
8
- this.anchorBlockStore = anchorBlockStore;
6
+ jobId;
7
+ constructor(anchorBlockHeader, aztecNode, privateEventStore, jobId){
8
+ this.anchorBlockHeader = anchorBlockHeader;
9
9
  this.aztecNode = aztecNode;
10
10
  this.privateEventStore = privateEventStore;
11
+ this.jobId = jobId;
11
12
  }
12
- async deliverEvent(contractAddress, selector, content, eventCommitment, txHash, scope) {
13
+ async validateAndStoreEvent(contractAddress, selector, randomness, content, eventCommitment, txHash, scope) {
13
14
  // While using 'latest' block number would be fine for private events since they cannot be accessed from Aztec.nr
14
15
  // (and thus we're less concerned about being ahead of the synced block), we use the synced block number to
15
16
  // maintain consistent behavior in the PXE. Additionally, events should never be ahead of the synced block here
16
17
  // since `fetchTaggedLogs` only processes logs up to the synced block.
17
- const [syncedBlockHeader, siloedEventCommitment, txEffect] = await Promise.all([
18
- this.anchorBlockStore.getBlockHeader(),
18
+ const [siloedEventCommitment, txEffect] = await Promise.all([
19
19
  siloNullifier(contractAddress, eventCommitment),
20
20
  this.aztecNode.getTxEffect(txHash)
21
21
  ]);
22
- const syncedBlockNumber = syncedBlockHeader.getBlockNumber();
22
+ const anchorBlockNumber = this.anchorBlockHeader.getBlockNumber();
23
23
  if (!txEffect) {
24
24
  throw new Error(`Could not find tx effect for tx hash ${txHash}`);
25
25
  }
26
- if (txEffect.l2BlockNumber > syncedBlockNumber) {
27
- throw new Error(`Could not find tx effect for tx hash ${txHash} as of block number ${syncedBlockNumber}`);
26
+ if (txEffect.l2BlockNumber > anchorBlockNumber) {
27
+ throw new Error(`Could not find tx effect for tx hash ${txHash} as of block number ${anchorBlockNumber}`);
28
28
  }
29
- const eventInTx = txEffect.data.nullifiers.some((n)=>n.equals(siloedEventCommitment));
30
- if (!eventInTx) {
29
+ // Find the index of the event commitment in the nullifiers array to determine event ordering within the tx
30
+ const eventIndexInTx = txEffect.data.nullifiers.findIndex((n)=>n.equals(siloedEventCommitment));
31
+ if (eventIndexInTx === -1) {
31
32
  throw new Error(`Event commitment ${eventCommitment} (siloed as ${siloedEventCommitment}) is not present in tx ${txHash}`);
32
33
  }
33
- const [nullifierIndex] = await this.aztecNode.findLeavesIndexes(syncedBlockNumber, MerkleTreeId.NULLIFIER_TREE, [
34
- siloedEventCommitment
35
- ]);
36
- if (nullifierIndex === undefined) {
37
- throw new Error(`Event commitment ${eventCommitment} (siloed as ${siloedEventCommitment}) is not present on the nullifier tree at block ${syncedBlockNumber} (from tx ${txHash})`);
38
- }
39
- return this.privateEventStore.storePrivateEventLog(selector, content, Number(nullifierIndex.data), {
34
+ return this.privateEventStore.storePrivateEventLog(selector, randomness, content, siloedEventCommitment, {
40
35
  contractAddress,
41
36
  scope,
42
37
  txHash,
43
- l2BlockNumber: nullifierIndex.l2BlockNumber,
44
- l2BlockHash: nullifierIndex.l2BlockHash
45
- });
38
+ l2BlockNumber: txEffect.l2BlockNumber,
39
+ l2BlockHash: txEffect.l2BlockHash,
40
+ txIndexInBlock: txEffect.txIndexInBlock,
41
+ eventIndexInTx
42
+ }, this.jobId);
46
43
  }
47
44
  }
@@ -1,9 +1,9 @@
1
1
  import type { PrivateEventFilter } from '@aztec/aztec.js/wallet';
2
- import { AnchorBlockStore } from '../storage/anchor_block_store/anchor_block_store.js';
2
+ import { BlockNumber } from '@aztec/foundation/branded-types';
3
3
  import type { PrivateEventStoreFilter } from '../storage/private_event_store/private_event_store.js';
4
4
  export declare class PrivateEventFilterValidator {
5
- private anchorBlockStore;
6
- constructor(anchorBlockStore: AnchorBlockStore);
7
- validate(filter: PrivateEventFilter): Promise<PrivateEventStoreFilter>;
5
+ private lastBlock;
6
+ constructor(lastBlock: BlockNumber);
7
+ validate(filter: PrivateEventFilter): PrivateEventStoreFilter;
8
8
  }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9ldmVudF9maWx0ZXJfdmFsaWRhdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXZlbnRzL3ByaXZhdGVfZXZlbnRfZmlsdGVyX3ZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBSWpFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ3ZGLE9BQU8sS0FBSyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFFckcscUJBQWEsMkJBQTJCO0lBQzFCLE9BQU8sQ0FBQyxnQkFBZ0I7SUFBcEMsWUFBb0IsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUk7SUFFcEQsUUFBUSxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsR0FBRyxPQUFPLENBQUMsdUJBQXVCLENBQUMsQ0FvQzNFO0NBQ0YifQ==
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9ldmVudF9maWx0ZXJfdmFsaWRhdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXZlbnRzL3ByaXZhdGVfZXZlbnRfZmlsdGVyX3ZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRWpFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU5RCxPQUFPLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBRXJHLHFCQUFhLDJCQUEyQjtJQUMxQixPQUFPLENBQUMsU0FBUztJQUE3QixZQUFvQixTQUFTLEVBQUUsV0FBVyxFQUFJO0lBRTlDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLEdBQUcsdUJBQXVCLENBbUM1RDtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"private_event_filter_validator.d.ts","sourceRoot":"","sources":["../../src/events/private_event_filter_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAIjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qDAAqD,CAAC;AACvF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uDAAuD,CAAC;AAErG,qBAAa,2BAA2B;IAC1B,OAAO,CAAC,gBAAgB;IAApC,YAAoB,gBAAgB,EAAE,gBAAgB,EAAI;IAEpD,QAAQ,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAoC3E;CACF"}
1
+ {"version":3,"file":"private_event_filter_validator.d.ts","sourceRoot":"","sources":["../../src/events/private_event_filter_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uDAAuD,CAAC;AAErG,qBAAa,2BAA2B;IAC1B,OAAO,CAAC,SAAS;IAA7B,YAAoB,SAAS,EAAE,WAAW,EAAI;IAE9C,QAAQ,CAAC,MAAM,EAAE,kBAAkB,GAAG,uBAAuB,CAmC5D;CACF"}
@@ -1,20 +1,19 @@
1
1
  import { INITIAL_L2_BLOCK_NUM } from '@aztec/constants';
2
2
  import { BlockNumber } from '@aztec/foundation/branded-types';
3
3
  export class PrivateEventFilterValidator {
4
- anchorBlockStore;
5
- constructor(anchorBlockStore){
6
- this.anchorBlockStore = anchorBlockStore;
4
+ lastBlock;
5
+ constructor(lastBlock){
6
+ this.lastBlock = lastBlock;
7
7
  }
8
- async validate(filter) {
8
+ validate(filter) {
9
9
  let { fromBlock, toBlock } = filter;
10
10
  // Block range filters in Aztec Node are defined as closed-open intervals [fromBlock, toBlock), so
11
11
  // we respect that convention here for consistency.
12
12
  // We then default to [INITIAL_L2_BLOCK_NUM, latestKnownBlock + 1), ie: by default return events from
13
13
  // the first block to the latest known block.
14
14
  if (!fromBlock || !toBlock) {
15
- const lastKnownBlock = (await this.anchorBlockStore.getBlockHeader()).getBlockNumber();
16
15
  fromBlock = fromBlock ?? BlockNumber(INITIAL_L2_BLOCK_NUM);
17
- toBlock = toBlock ?? BlockNumber(lastKnownBlock + 1);
16
+ toBlock = toBlock ?? BlockNumber(this.lastBlock + 1);
18
17
  }
19
18
  if (filter.scopes.length === 0) {
20
19
  throw new Error('At least one scope is required to get private events');