@aztec/pxe 0.0.1-commit.03f7ef2 → 0.0.1-commit.1142ef1

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 (241) hide show
  1. package/dest/block_synchronizer/block_synchronizer.d.ts +8 -8
  2. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
  3. package/dest/block_synchronizer/block_synchronizer.js +15 -20
  4. package/dest/config/package_info.js +1 -1
  5. package/dest/contract_function_simulator/contract_function_simulator.d.ts +25 -22
  6. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  7. package/dest/contract_function_simulator/contract_function_simulator.js +34 -28
  8. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +3 -2
  9. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
  10. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +5 -2
  11. package/dest/contract_function_simulator/oracle/private_execution.d.ts +4 -4
  12. package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
  13. package/dest/contract_function_simulator/oracle/private_execution.js +4 -5
  14. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +17 -26
  15. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  16. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +14 -39
  17. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +20 -19
  18. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  19. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +47 -45
  20. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +4 -4
  21. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -1
  22. package/dest/contract_function_simulator/proxied_contract_data_source.js +5 -5
  23. package/dest/debug/pxe_debug_utils.d.ts +6 -6
  24. package/dest/debug/pxe_debug_utils.d.ts.map +1 -1
  25. package/dest/debug/pxe_debug_utils.js +7 -7
  26. package/dest/entrypoints/client/bundle/utils.d.ts +1 -1
  27. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  28. package/dest/entrypoints/client/bundle/utils.js +10 -1
  29. package/dest/entrypoints/client/lazy/utils.d.ts +1 -1
  30. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  31. package/dest/entrypoints/client/lazy/utils.js +10 -1
  32. package/dest/entrypoints/pxe_creation_options.d.ts +3 -2
  33. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  34. package/dest/entrypoints/server/utils.d.ts +1 -1
  35. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  36. package/dest/entrypoints/server/utils.js +11 -7
  37. package/dest/error_enriching.d.ts +4 -4
  38. package/dest/error_enriching.d.ts.map +1 -1
  39. package/dest/error_enriching.js +6 -6
  40. package/dest/events/event_service.d.ts +7 -7
  41. package/dest/events/event_service.d.ts.map +1 -1
  42. package/dest/events/event_service.js +8 -8
  43. package/dest/events/private_event_filter_validator.d.ts +6 -6
  44. package/dest/events/private_event_filter_validator.d.ts.map +1 -1
  45. package/dest/events/private_event_filter_validator.js +4 -4
  46. package/dest/job_coordinator/job_coordinator.d.ts +74 -0
  47. package/dest/job_coordinator/job_coordinator.d.ts.map +1 -0
  48. package/dest/job_coordinator/job_coordinator.js +93 -0
  49. package/dest/logs/log_service.d.ts +14 -31
  50. package/dest/logs/log_service.d.ts.map +1 -1
  51. package/dest/logs/log_service.js +61 -180
  52. package/dest/notes/note_service.d.ts +7 -7
  53. package/dest/notes/note_service.d.ts.map +1 -1
  54. package/dest/notes/note_service.js +14 -14
  55. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts +2 -2
  56. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts.map +1 -1
  57. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.js +2 -2
  58. package/dest/private_kernel/private_kernel_execution_prover.d.ts +1 -1
  59. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  60. package/dest/private_kernel/private_kernel_execution_prover.js +3 -4
  61. package/dest/private_kernel/private_kernel_oracle.d.ts +3 -2
  62. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  63. package/dest/private_kernel/private_kernel_oracle_impl.d.ts +5 -5
  64. package/dest/private_kernel/private_kernel_oracle_impl.d.ts.map +1 -1
  65. package/dest/private_kernel/private_kernel_oracle_impl.js +9 -10
  66. package/dest/public_storage/public_storage_service.d.ts +4 -4
  67. package/dest/public_storage/public_storage_service.d.ts.map +1 -1
  68. package/dest/public_storage/public_storage_service.js +4 -4
  69. package/dest/pxe.d.ts +11 -9
  70. package/dest/pxe.d.ts.map +1 -1
  71. package/dest/pxe.js +113 -87
  72. package/dest/storage/address_store/address_store.d.ts +11 -0
  73. package/dest/storage/address_store/address_store.d.ts.map +1 -0
  74. package/dest/storage/{address_data_provider/address_data_provider.js → address_store/address_store.js} +1 -1
  75. package/dest/storage/address_store/index.d.ts +2 -0
  76. package/dest/storage/address_store/index.d.ts.map +1 -0
  77. package/dest/storage/address_store/index.js +1 -0
  78. package/dest/storage/anchor_block_store/anchor_block_store.d.ts +9 -0
  79. package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -0
  80. package/dest/storage/{anchor_block_data_provider/anchor_block_data_provider.js → anchor_block_store/anchor_block_store.js} +1 -1
  81. package/dest/storage/anchor_block_store/index.d.ts +2 -0
  82. package/dest/storage/anchor_block_store/index.d.ts.map +1 -0
  83. package/dest/storage/anchor_block_store/index.js +1 -0
  84. package/dest/storage/{capsule_data_provider/capsule_data_provider.d.ts → capsule_store/capsule_store.d.ts} +2 -2
  85. package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -0
  86. package/dest/storage/{capsule_data_provider/capsule_data_provider.js → capsule_store/capsule_store.js} +1 -1
  87. package/dest/storage/capsule_store/index.d.ts +2 -0
  88. package/dest/storage/capsule_store/index.d.ts.map +1 -0
  89. package/dest/storage/capsule_store/index.js +1 -0
  90. package/dest/storage/{contract_data_provider/contract_data_provider.d.ts → contract_store/contract_store.d.ts} +4 -3
  91. package/dest/storage/contract_store/contract_store.d.ts.map +1 -0
  92. package/dest/storage/{contract_data_provider/contract_data_provider.js → contract_store/contract_store.js} +14 -2
  93. package/dest/storage/contract_store/index.d.ts +2 -0
  94. package/dest/storage/contract_store/index.d.ts.map +1 -0
  95. package/dest/storage/contract_store/index.js +1 -0
  96. package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.d.ts +1 -1
  97. package/dest/storage/contract_store/private_functions_tree.d.ts.map +1 -0
  98. package/dest/storage/index.d.ts +8 -8
  99. package/dest/storage/index.d.ts.map +1 -1
  100. package/dest/storage/index.js +7 -7
  101. package/dest/storage/note_store/index.d.ts +3 -0
  102. package/dest/storage/note_store/index.d.ts.map +1 -0
  103. package/dest/storage/note_store/index.js +2 -0
  104. package/dest/storage/{note_data_provider/note_data_provider.d.ts → note_store/note_store.d.ts} +7 -7
  105. package/dest/storage/note_store/note_store.d.ts.map +1 -0
  106. package/dest/storage/{note_data_provider/note_data_provider.js → note_store/note_store.js} +6 -6
  107. package/dest/storage/private_event_store/private_event_store.d.ts +56 -0
  108. package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -0
  109. package/dest/storage/{private_event_data_provider/private_event_data_provider.js → private_event_store/private_event_store.js} +59 -16
  110. package/dest/storage/tagging_store/index.d.ts +4 -0
  111. package/dest/storage/tagging_store/index.d.ts.map +1 -0
  112. package/dest/storage/tagging_store/index.js +3 -0
  113. package/dest/storage/tagging_store/recipient_tagging_store.d.ts +21 -0
  114. package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -0
  115. package/dest/{tagging/recipient_sync/new_recipient_tagging_data_provider.js → storage/tagging_store/recipient_tagging_store.js} +3 -3
  116. package/dest/storage/tagging_store/sender_address_book_store.d.ts +14 -0
  117. package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +1 -0
  118. package/dest/storage/tagging_store/sender_address_book_store.js +30 -0
  119. package/dest/storage/{tagging_data_provider/sender_tagging_data_provider.d.ts → tagging_store/sender_tagging_store.d.ts} +3 -3
  120. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -0
  121. package/dest/storage/{tagging_data_provider/sender_tagging_data_provider.js → tagging_store/sender_tagging_store.js} +3 -3
  122. package/dest/tagging/constants.d.ts +2 -2
  123. package/dest/tagging/constants.d.ts.map +1 -1
  124. package/dest/tagging/constants.js +10 -3
  125. package/dest/tagging/index.d.ts +14 -3
  126. package/dest/tagging/index.d.ts.map +1 -1
  127. package/dest/tagging/index.js +13 -2
  128. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +3 -3
  129. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +1 -1
  130. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +7 -7
  131. package/dest/tagging/{sync → sender_sync}/sync_sender_tagging_indexes.d.ts +3 -4
  132. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -0
  133. package/dest/tagging/{sync → sender_sync}/sync_sender_tagging_indexes.js +8 -23
  134. package/dest/tagging/{sync → sender_sync}/utils/get_status_change_of_pending.d.ts +1 -1
  135. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -0
  136. package/dest/tagging/{sync → sender_sync}/utils/get_status_change_of_pending.js +2 -2
  137. package/dest/tagging/{sync → sender_sync}/utils/load_and_store_new_tagging_indexes.d.ts +4 -4
  138. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -0
  139. package/dest/tagging/{sync → sender_sync}/utils/load_and_store_new_tagging_indexes.js +3 -3
  140. package/dest/tree_membership/tree_membership_service.d.ts +4 -4
  141. package/dest/tree_membership/tree_membership_service.d.ts.map +1 -1
  142. package/dest/tree_membership/tree_membership_service.js +5 -5
  143. package/package.json +16 -16
  144. package/src/block_synchronizer/block_synchronizer.ts +14 -19
  145. package/src/config/package_info.ts +1 -1
  146. package/src/contract_function_simulator/contract_function_simulator.ts +57 -48
  147. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +4 -0
  148. package/src/contract_function_simulator/oracle/private_execution.ts +4 -6
  149. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +52 -80
  150. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +53 -49
  151. package/src/contract_function_simulator/proxied_contract_data_source.ts +7 -7
  152. package/src/debug/pxe_debug_utils.ts +6 -6
  153. package/src/entrypoints/client/bundle/utils.ts +7 -1
  154. package/src/entrypoints/client/lazy/utils.ts +7 -2
  155. package/src/entrypoints/pxe_creation_options.ts +2 -1
  156. package/src/entrypoints/server/utils.ts +11 -15
  157. package/src/error_enriching.ts +7 -15
  158. package/src/events/event_service.ts +8 -6
  159. package/src/events/private_event_filter_validator.ts +5 -5
  160. package/src/job_coordinator/job_coordinator.ts +149 -0
  161. package/src/logs/log_service.ts +92 -254
  162. package/src/notes/note_service.ts +13 -13
  163. package/src/private_kernel/hints/build_private_kernel_reset_private_inputs.ts +1 -2
  164. package/src/private_kernel/private_kernel_execution_prover.ts +2 -4
  165. package/src/private_kernel/private_kernel_oracle.ts +2 -1
  166. package/src/private_kernel/private_kernel_oracle_impl.ts +8 -14
  167. package/src/public_storage/public_storage_service.ts +3 -3
  168. package/src/pxe.ts +154 -106
  169. package/src/storage/{address_data_provider/address_data_provider.ts → address_store/address_store.ts} +1 -1
  170. package/src/storage/address_store/index.ts +1 -0
  171. package/src/storage/{anchor_block_data_provider/anchor_block_data_provider.ts → anchor_block_store/anchor_block_store.ts} +1 -1
  172. package/src/storage/anchor_block_store/index.ts +1 -0
  173. package/src/storage/{capsule_data_provider/capsule_data_provider.ts → capsule_store/capsule_store.ts} +1 -1
  174. package/src/storage/capsule_store/index.ts +1 -0
  175. package/src/storage/{contract_data_provider/contract_data_provider.ts → contract_store/contract_store.ts} +22 -2
  176. package/src/storage/contract_store/index.ts +1 -0
  177. package/src/storage/index.ts +7 -7
  178. package/src/storage/note_store/index.ts +2 -0
  179. package/src/storage/{note_data_provider/note_data_provider.ts → note_store/note_store.ts} +7 -7
  180. package/src/storage/{private_event_data_provider/private_event_data_provider.ts → private_event_store/private_event_store.ts} +72 -18
  181. package/src/storage/tagging_store/index.ts +3 -0
  182. package/src/{tagging/recipient_sync/new_recipient_tagging_data_provider.ts → storage/tagging_store/recipient_tagging_store.ts} +3 -3
  183. package/src/storage/tagging_store/sender_address_book_store.ts +42 -0
  184. package/src/storage/{tagging_data_provider/sender_tagging_data_provider.ts → tagging_store/sender_tagging_store.ts} +3 -3
  185. package/src/tagging/constants.ts +10 -3
  186. package/src/tagging/index.ts +16 -2
  187. package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +11 -8
  188. package/src/tagging/{sync → sender_sync}/sync_sender_tagging_indexes.ts +9 -25
  189. package/src/tagging/{sync → sender_sync}/utils/get_status_change_of_pending.ts +6 -2
  190. package/src/tagging/{sync → sender_sync}/utils/load_and_store_new_tagging_indexes.ts +4 -4
  191. package/src/tree_membership/tree_membership_service.ts +4 -4
  192. package/dest/storage/address_data_provider/address_data_provider.d.ts +0 -11
  193. package/dest/storage/address_data_provider/address_data_provider.d.ts.map +0 -1
  194. package/dest/storage/address_data_provider/index.d.ts +0 -2
  195. package/dest/storage/address_data_provider/index.d.ts.map +0 -1
  196. package/dest/storage/address_data_provider/index.js +0 -1
  197. package/dest/storage/anchor_block_data_provider/anchor_block_data_provider.d.ts +0 -9
  198. package/dest/storage/anchor_block_data_provider/anchor_block_data_provider.d.ts.map +0 -1
  199. package/dest/storage/anchor_block_data_provider/index.d.ts +0 -2
  200. package/dest/storage/anchor_block_data_provider/index.d.ts.map +0 -1
  201. package/dest/storage/anchor_block_data_provider/index.js +0 -1
  202. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts.map +0 -1
  203. package/dest/storage/capsule_data_provider/index.d.ts +0 -2
  204. package/dest/storage/capsule_data_provider/index.d.ts.map +0 -1
  205. package/dest/storage/capsule_data_provider/index.js +0 -1
  206. package/dest/storage/contract_data_provider/contract_data_provider.d.ts.map +0 -1
  207. package/dest/storage/contract_data_provider/index.d.ts +0 -2
  208. package/dest/storage/contract_data_provider/index.d.ts.map +0 -1
  209. package/dest/storage/contract_data_provider/index.js +0 -1
  210. package/dest/storage/contract_data_provider/private_functions_tree.d.ts.map +0 -1
  211. package/dest/storage/note_data_provider/index.d.ts +0 -3
  212. package/dest/storage/note_data_provider/index.d.ts.map +0 -1
  213. package/dest/storage/note_data_provider/index.js +0 -2
  214. package/dest/storage/note_data_provider/note_data_provider.d.ts.map +0 -1
  215. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts +0 -51
  216. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts.map +0 -1
  217. package/dest/storage/tagging_data_provider/index.d.ts +0 -3
  218. package/dest/storage/tagging_data_provider/index.d.ts.map +0 -1
  219. package/dest/storage/tagging_data_provider/index.js +0 -2
  220. package/dest/storage/tagging_data_provider/recipient_tagging_data_provider.d.ts +0 -31
  221. package/dest/storage/tagging_data_provider/recipient_tagging_data_provider.d.ts.map +0 -1
  222. package/dest/storage/tagging_data_provider/recipient_tagging_data_provider.js +0 -65
  223. package/dest/storage/tagging_data_provider/sender_tagging_data_provider.d.ts.map +0 -1
  224. package/dest/tagging/recipient_sync/new_recipient_tagging_data_provider.d.ts +0 -21
  225. package/dest/tagging/recipient_sync/new_recipient_tagging_data_provider.d.ts.map +0 -1
  226. package/dest/tagging/sync/sync_sender_tagging_indexes.d.ts.map +0 -1
  227. package/dest/tagging/sync/utils/get_status_change_of_pending.d.ts.map +0 -1
  228. package/dest/tagging/sync/utils/load_and_store_new_tagging_indexes.d.ts.map +0 -1
  229. package/dest/tagging/utils.d.ts +0 -18
  230. package/dest/tagging/utils.d.ts.map +0 -1
  231. package/dest/tagging/utils.js +0 -25
  232. package/src/storage/address_data_provider/index.ts +0 -1
  233. package/src/storage/anchor_block_data_provider/index.ts +0 -1
  234. package/src/storage/capsule_data_provider/index.ts +0 -1
  235. package/src/storage/contract_data_provider/index.ts +0 -1
  236. package/src/storage/note_data_provider/index.ts +0 -2
  237. package/src/storage/tagging_data_provider/index.ts +0 -2
  238. package/src/storage/tagging_data_provider/recipient_tagging_data_provider.ts +0 -86
  239. package/src/tagging/utils.ts +0 -32
  240. /package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.js +0 -0
  241. /package/src/storage/{contract_data_provider → contract_store}/private_functions_tree.ts +0 -0
package/src/pxe.ts CHANGED
@@ -59,23 +59,26 @@ import {
59
59
  generateSimulatedProvingResult,
60
60
  } from './contract_function_simulator/contract_function_simulator.js';
61
61
  import { readCurrentClassId } from './contract_function_simulator/oracle/private_execution.js';
62
- import { ProxiedContractDataProviderFactory } from './contract_function_simulator/proxied_contract_data_source.js';
62
+ import { ProxiedContractStoreFactory } from './contract_function_simulator/proxied_contract_data_source.js';
63
+ import { ProxiedNodeFactory } from './contract_function_simulator/proxied_node.js';
63
64
  import { PXEDebugUtils } from './debug/pxe_debug_utils.js';
64
65
  import { enrichPublicSimulationError, enrichSimulationError } from './error_enriching.js';
65
66
  import { PrivateEventFilterValidator } from './events/private_event_filter_validator.js';
67
+ import { JobCoordinator } from './job_coordinator/job_coordinator.js';
66
68
  import {
67
69
  PrivateKernelExecutionProver,
68
70
  type PrivateKernelExecutionProverConfig,
69
71
  } from './private_kernel/private_kernel_execution_prover.js';
70
72
  import { PrivateKernelOracleImpl } from './private_kernel/private_kernel_oracle_impl.js';
71
- import { AddressDataProvider } from './storage/address_data_provider/address_data_provider.js';
72
- import { AnchorBlockDataProvider } from './storage/anchor_block_data_provider/anchor_block_data_provider.js';
73
- import { CapsuleDataProvider } from './storage/capsule_data_provider/capsule_data_provider.js';
74
- import { ContractDataProvider } from './storage/contract_data_provider/contract_data_provider.js';
75
- import { NoteDataProvider } from './storage/note_data_provider/note_data_provider.js';
76
- import { PrivateEventDataProvider } from './storage/private_event_data_provider/private_event_data_provider.js';
77
- import { RecipientTaggingDataProvider } from './storage/tagging_data_provider/recipient_tagging_data_provider.js';
78
- import { SenderTaggingDataProvider } from './storage/tagging_data_provider/sender_tagging_data_provider.js';
73
+ import { AddressStore } from './storage/address_store/address_store.js';
74
+ import { AnchorBlockStore } from './storage/anchor_block_store/anchor_block_store.js';
75
+ import { CapsuleStore } from './storage/capsule_store/capsule_store.js';
76
+ import { ContractStore } from './storage/contract_store/contract_store.js';
77
+ import { NoteStore } from './storage/note_store/note_store.js';
78
+ import { PrivateEventStore } from './storage/private_event_store/private_event_store.js';
79
+ import { RecipientTaggingStore } from './storage/tagging_store/recipient_tagging_store.js';
80
+ import { SenderAddressBookStore } from './storage/tagging_store/sender_address_book_store.js';
81
+ import { SenderTaggingStore } from './storage/tagging_store/sender_tagging_store.js';
79
82
 
80
83
  export type PackedPrivateEvent = InTx & {
81
84
  packedEvent: Fr[];
@@ -91,20 +94,22 @@ export class PXE {
91
94
  private node: AztecNode,
92
95
  private blockStateSynchronizer: BlockSynchronizer,
93
96
  private keyStore: KeyStore,
94
- private contractDataProvider: ContractDataProvider,
95
- private noteDataProvider: NoteDataProvider,
96
- private capsuleDataProvider: CapsuleDataProvider,
97
- private anchorBlockDataProvider: AnchorBlockDataProvider,
98
- private senderTaggingDataProvider: SenderTaggingDataProvider,
99
- private recipientTaggingDataProvider: RecipientTaggingDataProvider,
100
- private addressDataProvider: AddressDataProvider,
101
- private privateEventDataProvider: PrivateEventDataProvider,
97
+ private contractStore: ContractStore,
98
+ private noteStore: NoteStore,
99
+ private capsuleStore: CapsuleStore,
100
+ private anchorBlockStore: AnchorBlockStore,
101
+ private senderTaggingStore: SenderTaggingStore,
102
+ private senderAddressBookStore: SenderAddressBookStore,
103
+ private recipientTaggingStore: RecipientTaggingStore,
104
+ private addressStore: AddressStore,
105
+ private privateEventStore: PrivateEventStore,
102
106
  private simulator: CircuitSimulator,
103
107
  private proverEnabled: boolean,
104
108
  private proofCreator: PrivateKernelProver,
105
109
  private protocolContractsProvider: ProtocolContractsProvider,
106
110
  private log: Logger,
107
111
  private jobQueue: SerialQueue,
112
+ private jobCoordinator: JobCoordinator,
108
113
  public debug: PXEDebugUtils,
109
114
  ) {}
110
115
 
@@ -130,27 +135,30 @@ export class PXE {
130
135
  : loggerOrSuffix;
131
136
 
132
137
  const proverEnabled = !!config.proverEnabled;
133
- const addressDataProvider = new AddressDataProvider(store);
134
- const privateEventDataProvider = new PrivateEventDataProvider(store);
135
- const contractDataProvider = new ContractDataProvider(store);
136
- const noteDataProvider = await NoteDataProvider.create(store);
137
- const anchorBlockDataProvider = new AnchorBlockDataProvider(store);
138
- const senderTaggingDataProvider = new SenderTaggingDataProvider(store);
139
- const recipientTaggingDataProvider = new RecipientTaggingDataProvider(store);
140
- const capsuleDataProvider = new CapsuleDataProvider(store);
138
+ const addressStore = new AddressStore(store);
139
+ const privateEventStore = new PrivateEventStore(store);
140
+ const contractStore = new ContractStore(store);
141
+ const noteStore = await NoteStore.create(store);
142
+ const anchorBlockStore = new AnchorBlockStore(store);
143
+ const senderTaggingStore = new SenderTaggingStore(store);
144
+ const senderAddressBookStore = new SenderAddressBookStore(store);
145
+ const recipientTaggingStore = new RecipientTaggingStore(store);
146
+ const capsuleStore = new CapsuleStore(store);
141
147
  const keyStore = new KeyStore(store);
142
148
  const tipsStore = new L2TipsKVStore(store, 'pxe');
143
149
  const synchronizer = new BlockSynchronizer(
144
150
  node,
145
- anchorBlockDataProvider,
146
- noteDataProvider,
147
- recipientTaggingDataProvider,
151
+ anchorBlockStore,
152
+ noteStore,
153
+ privateEventStore,
148
154
  tipsStore,
149
155
  config,
150
156
  loggerOrSuffix,
151
157
  );
152
158
 
153
- const debugUtils = new PXEDebugUtils(contractDataProvider, noteDataProvider);
159
+ const jobCoordinator = new JobCoordinator(store);
160
+
161
+ const debugUtils = new PXEDebugUtils(contractStore, noteStore);
154
162
 
155
163
  const jobQueue = new SerialQueue();
156
164
 
@@ -158,20 +166,22 @@ export class PXE {
158
166
  node,
159
167
  synchronizer,
160
168
  keyStore,
161
- contractDataProvider,
162
- noteDataProvider,
163
- capsuleDataProvider,
164
- anchorBlockDataProvider,
165
- senderTaggingDataProvider,
166
- recipientTaggingDataProvider,
167
- addressDataProvider,
168
- privateEventDataProvider,
169
+ contractStore,
170
+ noteStore,
171
+ capsuleStore,
172
+ anchorBlockStore,
173
+ senderTaggingStore,
174
+ senderAddressBookStore,
175
+ recipientTaggingStore,
176
+ addressStore,
177
+ privateEventStore,
169
178
  simulator,
170
179
  proverEnabled,
171
180
  proofCreator,
172
181
  protocolContractsProvider,
173
182
  log,
174
183
  jobQueue,
184
+ jobCoordinator,
175
185
  debugUtils,
176
186
  );
177
187
 
@@ -188,22 +198,20 @@ export class PXE {
188
198
  // Internal methods
189
199
 
190
200
  #getSimulatorForTx(overrides?: { contracts?: ContractOverrides }) {
191
- const proxyContractDataProvider = ProxiedContractDataProviderFactory.create(
192
- this.contractDataProvider,
193
- overrides?.contracts,
194
- );
201
+ const proxyContractStore = ProxiedContractStoreFactory.create(this.contractStore, overrides?.contracts);
195
202
 
196
203
  return new ContractFunctionSimulator(
197
- proxyContractDataProvider,
198
- this.noteDataProvider,
204
+ proxyContractStore,
205
+ this.noteStore,
199
206
  this.keyStore,
200
- this.addressDataProvider,
201
- this.node,
202
- this.anchorBlockDataProvider,
203
- this.senderTaggingDataProvider,
204
- this.recipientTaggingDataProvider,
205
- this.capsuleDataProvider,
206
- this.privateEventDataProvider,
207
+ this.addressStore,
208
+ ProxiedNodeFactory.create(this.node),
209
+ this.anchorBlockStore,
210
+ this.senderTaggingStore,
211
+ this.recipientTaggingStore,
212
+ this.senderAddressBookStore,
213
+ this.capsuleStore,
214
+ this.privateEventStore,
207
215
  this.simulator,
208
216
  );
209
217
  }
@@ -228,7 +236,7 @@ export class PXE {
228
236
  *
229
237
  * Useful for tasks that cannot run concurrently, such as contract function simulation.
230
238
  */
231
- #putInJobQueue<T>(fn: () => Promise<T>): Promise<T> {
239
+ #putInJobQueue<T>(fn: (jobId: string) => Promise<T>): Promise<T> {
232
240
  // TODO(#12636): relax the conditions under which we forbid concurrency.
233
241
  if (this.jobQueue.length() != 0) {
234
242
  this.log.warn(
@@ -236,7 +244,22 @@ export class PXE {
236
244
  );
237
245
  }
238
246
 
239
- return this.jobQueue.put(fn);
247
+ return this.jobQueue.put(async () => {
248
+ const jobId = this.jobCoordinator.beginJob();
249
+ this.log.verbose(`Beginning job ${jobId}`);
250
+
251
+ try {
252
+ const result = await fn(jobId);
253
+ this.log.verbose(`Committing job ${jobId}`);
254
+
255
+ await this.jobCoordinator.commitJob(jobId);
256
+ return result;
257
+ } catch (err) {
258
+ this.log.verbose(`Aborting job ${jobId}`);
259
+ await this.jobCoordinator.abortJob(jobId);
260
+ throw err;
261
+ }
262
+ });
240
263
  }
241
264
 
242
265
  async #registerProtocolContracts() {
@@ -244,8 +267,8 @@ export class PXE {
244
267
  for (const name of protocolContractNames) {
245
268
  const { address, contractClass, instance, artifact } =
246
269
  await this.protocolContractsProvider.getProtocolContractArtifact(name);
247
- await this.contractDataProvider.addContractArtifact(contractClass.id, artifact);
248
- await this.contractDataProvider.addContractInstance(instance);
270
+ await this.contractStore.addContractArtifact(contractClass.id, artifact);
271
+ await this.contractStore.addContractInstance(instance);
249
272
  registered[name] = address.toString();
250
273
  }
251
274
  this.log.verbose(`Registered protocol contracts in pxe`, registered);
@@ -269,12 +292,13 @@ export class PXE {
269
292
  async #executePrivate(
270
293
  contractFunctionSimulator: ContractFunctionSimulator,
271
294
  txRequest: TxExecutionRequest,
272
- scopes?: AztecAddress[],
295
+ scopes: AztecAddress[] | undefined,
296
+ jobId: string,
273
297
  ): Promise<PrivateExecutionResult> {
274
298
  const { origin: contractAddress, functionSelector } = txRequest;
275
299
 
276
300
  try {
277
- const anchorBlockHeader = await this.anchorBlockDataProvider.getBlockHeader();
301
+ const anchorBlockHeader = await this.anchorBlockStore.getBlockHeader();
278
302
 
279
303
  const result = await contractFunctionSimulator.run(
280
304
  txRequest,
@@ -286,12 +310,13 @@ export class PXE {
286
310
  // contract entrypoint
287
311
  undefined, // senderForTags
288
312
  scopes,
313
+ jobId,
289
314
  );
290
315
  this.log.debug(`Private simulation completed for ${contractAddress.toString()}:${functionSelector}`);
291
316
  return result;
292
317
  } catch (err) {
293
318
  if (err instanceof SimulationError) {
294
- await enrichSimulationError(err, this.contractDataProvider, this.log);
319
+ await enrichSimulationError(err, this.contractStore, this.log);
295
320
  }
296
321
  throw err;
297
322
  }
@@ -304,20 +329,22 @@ export class PXE {
304
329
  * @param authWitnesses - Authentication witnesses required for the function call.
305
330
  * @param scopes - Optional array of account addresses whose notes can be accessed in this call. Defaults to all
306
331
  * accounts if not specified.
332
+ * @param jobId - The job ID for staged writes.
307
333
  * @returns The simulation result containing the outputs of the utility function.
308
334
  */
309
335
  async #simulateUtility(
310
336
  contractFunctionSimulator: ContractFunctionSimulator,
311
337
  call: FunctionCall,
312
- authWitnesses?: AuthWitness[],
313
- scopes?: AztecAddress[],
338
+ authWitnesses: AuthWitness[] | undefined,
339
+ scopes: AztecAddress[] | undefined,
340
+ jobId: string,
314
341
  ) {
315
342
  try {
316
- const anchorBlockHeader = await this.anchorBlockDataProvider.getBlockHeader();
317
- return contractFunctionSimulator.runUtility(call, authWitnesses ?? [], anchorBlockHeader, scopes);
343
+ const anchorBlockHeader = await this.anchorBlockStore.getBlockHeader();
344
+ return contractFunctionSimulator.runUtility(call, authWitnesses ?? [], anchorBlockHeader, scopes, jobId);
318
345
  } catch (err) {
319
346
  if (err instanceof SimulationError) {
320
- await enrichSimulationError(err, this.contractDataProvider, this.log);
347
+ await enrichSimulationError(err, this.contractStore, this.log);
321
348
  }
322
349
  throw err;
323
350
  }
@@ -341,7 +368,7 @@ export class PXE {
341
368
  } catch (err) {
342
369
  if (err instanceof SimulationError) {
343
370
  try {
344
- await enrichPublicSimulationError(err, this.contractDataProvider, this.log);
371
+ await enrichPublicSimulationError(err, this.contractStore, this.log);
345
372
  } catch (enrichErr) {
346
373
  this.log.error(`Failed to enrich public simulation error: ${enrichErr}`);
347
374
  }
@@ -369,7 +396,7 @@ export class PXE {
369
396
  ): Promise<PrivateKernelExecutionProofOutput<PrivateKernelTailCircuitPublicInputs>> {
370
397
  const simulationAnchorBlock = privateExecutionResult.getSimulationAnchorBlockNumber();
371
398
  const kernelOracle = new PrivateKernelOracleImpl(
372
- this.contractDataProvider,
399
+ this.contractStore,
373
400
  this.keyStore,
374
401
  this.node,
375
402
  simulationAnchorBlock,
@@ -382,7 +409,7 @@ export class PXE {
382
409
  // Public API
383
410
 
384
411
  public getContractInstance(address: AztecAddress): Promise<ContractInstanceWithAddress | undefined> {
385
- return this.contractDataProvider.getContractInstance(address);
412
+ return this.contractStore.getContractInstance(address);
386
413
  }
387
414
 
388
415
  /**
@@ -407,7 +434,7 @@ export class PXE {
407
434
  isContractClassPubliclyRegistered: boolean;
408
435
  artifact: ContractArtifact | undefined;
409
436
  }> {
410
- const artifact = await this.contractDataProvider.getContractArtifact(id);
437
+ const artifact = await this.contractStore.getContractArtifact(id);
411
438
  if (!artifact) {
412
439
  this.log.warn(`No artifact found for contract class ${id.toString()} when looking for its metadata`);
413
440
  }
@@ -437,7 +464,7 @@ export class PXE {
437
464
  }> {
438
465
  let instance;
439
466
  try {
440
- instance = await this.contractDataProvider.getContractInstance(address);
467
+ instance = await this.contractStore.getContractInstance(address);
441
468
  } catch {
442
469
  this.log.warn(`No instance found for contract ${address.toString()} when looking for its metadata`);
443
470
  }
@@ -469,8 +496,8 @@ export class PXE {
469
496
  this.log.debug(`Registered account\n ${accountCompleteAddress.toReadableString()}`);
470
497
  }
471
498
 
472
- await this.addressDataProvider.addCompleteAddress(accountCompleteAddress);
473
- await this.noteDataProvider.addScope(accountCompleteAddress.address);
499
+ await this.addressStore.addCompleteAddress(accountCompleteAddress);
500
+ await this.noteStore.addScope(accountCompleteAddress.address);
474
501
  return accountCompleteAddress;
475
502
  }
476
503
 
@@ -491,7 +518,7 @@ export class PXE {
491
518
  return sender;
492
519
  }
493
520
 
494
- const wasAdded = await this.recipientTaggingDataProvider.addSenderAddress(sender);
521
+ const wasAdded = await this.senderAddressBookStore.addSender(sender);
495
522
 
496
523
  if (wasAdded) {
497
524
  this.log.info(`Added sender:\n ${sender.toString()}`);
@@ -507,7 +534,7 @@ export class PXE {
507
534
  * @returns Senders registered in this PXE.
508
535
  */
509
536
  public getSenders(): Promise<AztecAddress[]> {
510
- return this.recipientTaggingDataProvider.getSenderAddresses();
537
+ return this.senderAddressBookStore.getSenders();
511
538
  }
512
539
 
513
540
  /**
@@ -515,7 +542,7 @@ export class PXE {
515
542
  * @param sender - The address of the sender to remove.
516
543
  */
517
544
  public async removeSender(sender: AztecAddress): Promise<void> {
518
- const wasRemoved = await this.recipientTaggingDataProvider.removeSenderAddress(sender);
545
+ const wasRemoved = await this.senderAddressBookStore.removeSender(sender);
519
546
 
520
547
  if (wasRemoved) {
521
548
  this.log.info(`Removed sender:\n ${sender.toString()}`);
@@ -530,7 +557,7 @@ export class PXE {
530
557
  */
531
558
  public async getRegisteredAccounts(): Promise<CompleteAddress[]> {
532
559
  // Get complete addresses of both the recipients and the accounts
533
- const completeAddresses = await this.addressDataProvider.getCompleteAddresses();
560
+ const completeAddresses = await this.addressStore.getCompleteAddresses();
534
561
  // Filter out the addresses not corresponding to accounts
535
562
  const accounts = await this.keyStore.getAccounts();
536
563
  return completeAddresses.filter(completeAddress =>
@@ -545,7 +572,7 @@ export class PXE {
545
572
  */
546
573
  public async registerContractClass(artifact: ContractArtifact): Promise<void> {
547
574
  const { id: contractClassId } = await getContractClassFromArtifact(artifact);
548
- await this.contractDataProvider.addContractArtifact(contractClassId, artifact);
575
+ await this.contractStore.addContractArtifact(contractClassId, artifact);
549
576
  this.log.info(`Added contract class ${artifact.name} with id ${contractClassId}`);
550
577
  }
551
578
 
@@ -574,7 +601,7 @@ export class PXE {
574
601
  if (!computedAddress.equals(instance.address)) {
575
602
  throw new Error('Added a contract in which the address does not match the contract instance.');
576
603
  }
577
- await this.contractDataProvider.addContractArtifact(contractClass.id, artifact);
604
+ await this.contractStore.addContractArtifact(contractClass.id, artifact);
578
605
 
579
606
  const publicFunctionSignatures = artifact.functions
580
607
  .filter(fn => fn.functionType === FunctionType.PUBLIC)
@@ -582,7 +609,7 @@ export class PXE {
582
609
  await this.node.registerContractFunctionSignatures(publicFunctionSignatures);
583
610
  } else {
584
611
  // Otherwise, make sure there is an artifact already registered for that class id
585
- artifact = await this.contractDataProvider.getContractArtifact(instance.currentContractClassId);
612
+ artifact = await this.contractStore.getContractArtifact(instance.currentContractClassId);
586
613
  if (!artifact) {
587
614
  throw new Error(
588
615
  `Artifact not found when registering an instance. Contract class: ${instance.currentContractClassId}.`,
@@ -590,7 +617,7 @@ export class PXE {
590
617
  }
591
618
  }
592
619
 
593
- await this.contractDataProvider.addContractInstance(instance);
620
+ await this.contractStore.addContractInstance(instance);
594
621
  this.log.info(
595
622
  `Added contract ${artifact.name} at ${instance.address.toString()} with class ${instance.currentContractClassId}`,
596
623
  );
@@ -609,14 +636,14 @@ export class PXE {
609
636
  // We disable concurrently updating contracts to avoid concurrently syncing with the node, or changing a contract's
610
637
  // class while we're simulating it.
611
638
  return this.#putInJobQueue(async () => {
612
- const currentInstance = await this.contractDataProvider.getContractInstance(contractAddress);
639
+ const currentInstance = await this.contractStore.getContractInstance(contractAddress);
613
640
  if (!currentInstance) {
614
641
  throw new Error(`Instance not found when updating a contract. Contract address: ${contractAddress}.`);
615
642
  }
616
643
  const contractClass = await getContractClassFromArtifact(artifact);
617
644
  await this.blockStateSynchronizer.sync();
618
645
 
619
- const header = await this.anchorBlockDataProvider.getBlockHeader();
646
+ const header = await this.anchorBlockStore.getBlockHeader();
620
647
 
621
648
  const currentClassId = await readCurrentClassId(
622
649
  contractAddress,
@@ -629,7 +656,7 @@ export class PXE {
629
656
  throw new Error('Could not update contract to a class different from the current one.');
630
657
  }
631
658
 
632
- await this.contractDataProvider.addContractArtifact(contractClass.id, artifact);
659
+ await this.contractStore.addContractArtifact(contractClass.id, artifact);
633
660
 
634
661
  const publicFunctionSignatures = artifact.functions
635
662
  .filter(fn => fn.functionType === FunctionType.PUBLIC)
@@ -637,7 +664,7 @@ export class PXE {
637
664
  await this.node.registerContractFunctionSignatures(publicFunctionSignatures);
638
665
 
639
666
  currentInstance.currentContractClassId = contractClass.id;
640
- await this.contractDataProvider.addContractInstance(currentInstance);
667
+ await this.contractStore.addContractInstance(currentInstance);
641
668
  this.log.info(`Updated contract ${artifact.name} at ${contractAddress.toString()} to class ${contractClass.id}`);
642
669
  });
643
670
  }
@@ -647,7 +674,7 @@ export class PXE {
647
674
  * @returns An array of contracts addresses registered on this PXE.
648
675
  */
649
676
  public getContracts(): Promise<AztecAddress[]> {
650
- return this.contractDataProvider.getContractsAddresses();
677
+ return this.contractStore.getContractsAddresses();
651
678
  }
652
679
 
653
680
  /**
@@ -663,14 +690,14 @@ export class PXE {
663
690
  let privateExecutionResult: PrivateExecutionResult;
664
691
  // We disable proving concurrently mostly out of caution, since it accesses some of our stores. Proving is so
665
692
  // computationally demanding that it'd be rare for someone to try to do it concurrently regardless.
666
- return this.#putInJobQueue(async () => {
693
+ return this.#putInJobQueue(async jobId => {
667
694
  const totalTimer = new Timer();
668
695
  try {
669
696
  const syncTimer = new Timer();
670
697
  await this.blockStateSynchronizer.sync();
671
698
  const syncTime = syncTimer.ms();
672
699
  const contractFunctionSimulator = this.#getSimulatorForTx();
673
- privateExecutionResult = await this.#executePrivate(contractFunctionSimulator, txRequest);
700
+ privateExecutionResult = await this.#executePrivate(contractFunctionSimulator, txRequest, undefined, jobId);
674
701
 
675
702
  const {
676
703
  publicInputs,
@@ -717,7 +744,7 @@ export class PXE {
717
744
  // TODO(benesjan): The following is an expensive operation. Figure out a way to avoid it.
718
745
  const txHash = (await txProvingResult.toTx()).txHash;
719
746
 
720
- await this.senderTaggingDataProvider.storePendingIndexes(preTagsUsedInTheTx, txHash);
747
+ await this.senderTaggingStore.storePendingIndexes(preTagsUsedInTheTx, txHash);
721
748
  this.log.debug(`Stored used pre-tags as sender for the tx`, {
722
749
  preTagsUsedInTheTx,
723
750
  });
@@ -747,7 +774,7 @@ export class PXE {
747
774
  skipProofGeneration: boolean = true,
748
775
  ): Promise<TxProfileResult> {
749
776
  // We disable concurrent profiles for consistency with simulateTx.
750
- return this.#putInJobQueue(async () => {
777
+ return this.#putInJobQueue(async jobId => {
751
778
  const totalTimer = new Timer();
752
779
  try {
753
780
  const txInfo = {
@@ -767,7 +794,12 @@ export class PXE {
767
794
  const syncTime = syncTimer.ms();
768
795
 
769
796
  const contractFunctionSimulator = this.#getSimulatorForTx();
770
- const privateExecutionResult = await this.#executePrivate(contractFunctionSimulator, txRequest);
797
+ const privateExecutionResult = await this.#executePrivate(
798
+ contractFunctionSimulator,
799
+ txRequest,
800
+ undefined,
801
+ jobId,
802
+ );
771
803
 
772
804
  const { executionSteps, timings: { proving } = {} } = await this.#prove(
773
805
  txRequest,
@@ -847,7 +879,7 @@ export class PXE {
847
879
  // We disable concurrent simulations since those might execute oracles which read and write to the PXE stores (e.g.
848
880
  // to the capsules), and we need to prevent concurrent runs from interfering with one another (e.g. attempting to
849
881
  // delete the same read value, or reading values that another simulation is currently modifying).
850
- return this.#putInJobQueue(async () => {
882
+ return this.#putInJobQueue(async jobId => {
851
883
  try {
852
884
  const totalTimer = new Timer();
853
885
  const txInfo = {
@@ -873,7 +905,7 @@ export class PXE {
873
905
  const skipKernels = overrides?.contracts !== undefined && Object.keys(overrides.contracts ?? {}).length > 0;
874
906
 
875
907
  // Execution of private functions only; no proving, and no kernel logic.
876
- const privateExecutionResult = await this.#executePrivate(contractFunctionSimulator, txRequest, scopes);
908
+ const privateExecutionResult = await this.#executePrivate(contractFunctionSimulator, txRequest, scopes, jobId);
877
909
 
878
910
  let publicInputs: PrivateKernelTailCircuitPublicInputs | undefined;
879
911
  let executionSteps: PrivateExecutionStep[] = [];
@@ -887,7 +919,7 @@ export class PXE {
887
919
  ({ publicInputs, executionSteps } = await generateSimulatedProvingResult(
888
920
  privateExecutionResult,
889
921
  nonceGenerator,
890
- this.contractDataProvider,
922
+ this.contractStore,
891
923
  ));
892
924
  } else {
893
925
  // Kernel logic, plus proving of all private functions and kernels.
@@ -988,7 +1020,7 @@ export class PXE {
988
1020
  // We disable concurrent simulations since those might execute oracles which read and write to the PXE stores (e.g.
989
1021
  // to the capsules), and we need to prevent concurrent runs from interfering with one another (e.g. attempting to
990
1022
  // delete the same read value, or reading values that another simulation is currently modifying).
991
- return this.#putInJobQueue(async () => {
1023
+ return this.#putInJobQueue(async jobId => {
992
1024
  try {
993
1025
  const totalTimer = new Timer();
994
1026
  const syncTimer = new Timer();
@@ -996,7 +1028,18 @@ export class PXE {
996
1028
  const syncTime = syncTimer.ms();
997
1029
  const functionTimer = new Timer();
998
1030
  const contractFunctionSimulator = this.#getSimulatorForTx();
999
- const executionResult = await this.#simulateUtility(contractFunctionSimulator, call, authwits ?? [], scopes);
1031
+
1032
+ await this.contractStore.syncPrivateState(call.to, call.selector, privateSyncCall =>
1033
+ this.#simulateUtility(contractFunctionSimulator, privateSyncCall, [], undefined, jobId),
1034
+ );
1035
+
1036
+ const executionResult = await this.#simulateUtility(
1037
+ contractFunctionSimulator,
1038
+ call,
1039
+ authwits ?? [],
1040
+ scopes,
1041
+ jobId,
1042
+ );
1000
1043
  const functionTime = functionTimer.ms();
1001
1044
 
1002
1045
  const totalTime = totalTimer.ms();
@@ -1037,21 +1080,26 @@ export class PXE {
1037
1080
  * Defaults to the latest known block to PXE + 1.
1038
1081
  * @returns - The packed events with block and tx metadata.
1039
1082
  */
1040
- public async getPrivateEvents(
1041
- eventSelector: EventSelector,
1042
- filter: PrivateEventFilter,
1043
- ): Promise<PackedPrivateEvent[]> {
1044
- // We need to manually trigger private state sync to have a guarantee that all the events are available.
1045
- const call = await this.contractDataProvider.getFunctionCall('sync_private_state', [], filter.contractAddress);
1046
- await this.simulateUtility(call);
1047
-
1048
- const sanitizedFilter = await new PrivateEventFilterValidator(this.anchorBlockDataProvider).validate(filter);
1049
-
1050
- this.log.debug(
1051
- `Getting private events for ${sanitizedFilter.contractAddress.toString()} from ${sanitizedFilter.fromBlock} to ${sanitizedFilter.toBlock}`,
1052
- );
1083
+ public getPrivateEvents(eventSelector: EventSelector, filter: PrivateEventFilter): Promise<PackedPrivateEvent[]> {
1084
+ return this.#putInJobQueue(async jobId => {
1085
+ await this.blockStateSynchronizer.sync();
1086
+ const contractFunctionSimulator = this.#getSimulatorForTx();
1053
1087
 
1054
- return this.privateEventDataProvider.getPrivateEvents(eventSelector, sanitizedFilter);
1088
+ await this.contractStore.syncPrivateState(
1089
+ filter.contractAddress,
1090
+ null,
1091
+ async privateSyncCall =>
1092
+ await this.#simulateUtility(contractFunctionSimulator, privateSyncCall, [], undefined, jobId),
1093
+ );
1094
+
1095
+ const sanitizedFilter = await new PrivateEventFilterValidator(this.anchorBlockStore).validate(filter);
1096
+
1097
+ this.log.debug(
1098
+ `Getting private events for ${sanitizedFilter.contractAddress.toString()} from ${sanitizedFilter.fromBlock} to ${sanitizedFilter.toBlock}`,
1099
+ );
1100
+
1101
+ return this.privateEventStore.getPrivateEvents(eventSelector, sanitizedFilter);
1102
+ });
1055
1103
  }
1056
1104
 
1057
1105
  /**
@@ -3,7 +3,7 @@ import type { AztecAsyncArray, AztecAsyncKVStore, AztecAsyncMap } from '@aztec/k
3
3
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
4
4
  import { CompleteAddress } from '@aztec/stdlib/contract';
5
5
 
6
- export class AddressDataProvider {
6
+ export class AddressStore {
7
7
  #store: AztecAsyncKVStore;
8
8
  #completeAddresses: AztecAsyncArray<Buffer>;
9
9
  #completeAddressIndex: AztecAsyncMap<string, number>;
@@ -0,0 +1 @@
1
+ export { AddressStore } from './address_store.js';
@@ -1,7 +1,7 @@
1
1
  import type { AztecAsyncKVStore, AztecAsyncSingleton } from '@aztec/kv-store';
2
2
  import { BlockHeader } from '@aztec/stdlib/tx';
3
3
 
4
- export class AnchorBlockDataProvider {
4
+ export class AnchorBlockStore {
5
5
  #store: AztecAsyncKVStore;
6
6
  #synchronizedHeader: AztecAsyncSingleton<Buffer>;
7
7
 
@@ -0,0 +1 @@
1
+ export { AnchorBlockStore } from './anchor_block_store.js';
@@ -3,7 +3,7 @@ import { type Logger, createLogger } from '@aztec/foundation/log';
3
3
  import type { AztecAsyncKVStore, AztecAsyncMap } from '@aztec/kv-store';
4
4
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
5
5
 
6
- export class CapsuleDataProvider {
6
+ export class CapsuleStore {
7
7
  #store: AztecAsyncKVStore;
8
8
 
9
9
  // Arbitrary data stored by contracts. Key is computed as `${contractAddress}:${key}`
@@ -0,0 +1 @@
1
+ export { CapsuleStore } from './capsule_store.js';