@aztec/pxe 0.0.1-commit.03f7ef2 → 0.0.1-commit.0658669b3

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 (373) hide show
  1. package/dest/access_scopes.d.ts +9 -0
  2. package/dest/access_scopes.d.ts.map +1 -0
  3. package/dest/access_scopes.js +6 -0
  4. package/dest/bin/check_oracle_version.js +1 -1
  5. package/dest/block_synchronizer/block_synchronizer.d.ts +17 -11
  6. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
  7. package/dest/block_synchronizer/block_synchronizer.js +80 -34
  8. package/dest/config/index.d.ts +3 -1
  9. package/dest/config/index.d.ts.map +1 -1
  10. package/dest/config/index.js +17 -0
  11. package/dest/config/package_info.js +1 -1
  12. package/dest/contract_function_simulator/benchmarked_node.d.ts +9 -0
  13. package/dest/contract_function_simulator/benchmarked_node.d.ts.map +1 -0
  14. package/dest/contract_function_simulator/benchmarked_node.js +77 -0
  15. package/dest/contract_function_simulator/contract_function_simulator.d.ts +65 -40
  16. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  17. package/dest/contract_function_simulator/contract_function_simulator.js +209 -89
  18. package/dest/contract_function_simulator/execution_note_cache.d.ts +18 -9
  19. package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
  20. package/dest/contract_function_simulator/execution_note_cache.js +45 -28
  21. package/dest/contract_function_simulator/index.d.ts +2 -2
  22. package/dest/contract_function_simulator/index.d.ts.map +1 -1
  23. package/dest/contract_function_simulator/index.js +1 -1
  24. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +4 -3
  25. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
  26. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +7 -4
  27. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +3 -3
  28. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
  29. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +2 -2
  30. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +4 -10
  31. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -1
  32. package/dest/contract_function_simulator/noir-structs/utility_context.js +7 -18
  33. package/dest/contract_function_simulator/oracle/interfaces.d.ts +17 -13
  34. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
  35. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +3 -1
  36. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -1
  37. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +6 -6
  38. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -1
  39. package/dest/contract_function_simulator/oracle/note_packing_utils.js +8 -8
  40. package/dest/contract_function_simulator/oracle/oracle.d.ts +12 -10
  41. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
  42. package/dest/contract_function_simulator/oracle/oracle.js +67 -44
  43. package/dest/contract_function_simulator/oracle/private_execution.d.ts +2 -26
  44. package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
  45. package/dest/contract_function_simulator/oracle/private_execution.js +1 -37
  46. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +46 -46
  47. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  48. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +88 -56
  49. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +82 -48
  50. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  51. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +141 -120
  52. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +4 -4
  53. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -1
  54. package/dest/contract_function_simulator/proxied_contract_data_source.js +5 -5
  55. package/dest/contract_logging.d.ts +22 -0
  56. package/dest/contract_logging.d.ts.map +1 -0
  57. package/dest/contract_logging.js +23 -0
  58. package/dest/contract_sync/contract_sync_service.d.ts +43 -0
  59. package/dest/contract_sync/contract_sync_service.d.ts.map +1 -0
  60. package/dest/contract_sync/contract_sync_service.js +97 -0
  61. package/dest/contract_sync/helpers.d.ts +29 -0
  62. package/dest/contract_sync/helpers.d.ts.map +1 -0
  63. package/dest/contract_sync/helpers.js +55 -0
  64. package/dest/debug/pxe_debug_utils.d.ts +26 -12
  65. package/dest/debug/pxe_debug_utils.d.ts.map +1 -1
  66. package/dest/debug/pxe_debug_utils.js +30 -19
  67. package/dest/entrypoints/client/bundle/index.d.ts +4 -1
  68. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  69. package/dest/entrypoints/client/bundle/index.js +3 -0
  70. package/dest/entrypoints/client/bundle/utils.d.ts +1 -1
  71. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  72. package/dest/entrypoints/client/bundle/utils.js +31 -8
  73. package/dest/entrypoints/client/lazy/index.d.ts +4 -1
  74. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  75. package/dest/entrypoints/client/lazy/index.js +3 -0
  76. package/dest/entrypoints/client/lazy/utils.d.ts +2 -2
  77. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  78. package/dest/entrypoints/client/lazy/utils.js +32 -9
  79. package/dest/entrypoints/pxe_creation_options.d.ts +5 -3
  80. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  81. package/dest/entrypoints/server/index.d.ts +5 -1
  82. package/dest/entrypoints/server/index.d.ts.map +1 -1
  83. package/dest/entrypoints/server/index.js +4 -0
  84. package/dest/entrypoints/server/utils.d.ts +1 -1
  85. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  86. package/dest/entrypoints/server/utils.js +39 -16
  87. package/dest/error_enriching.d.ts +4 -4
  88. package/dest/error_enriching.d.ts.map +1 -1
  89. package/dest/error_enriching.js +6 -6
  90. package/dest/events/event_service.d.ts +8 -8
  91. package/dest/events/event_service.d.ts.map +1 -1
  92. package/dest/events/event_service.js +21 -24
  93. package/dest/events/private_event_filter_validator.d.ts +6 -6
  94. package/dest/events/private_event_filter_validator.d.ts.map +1 -1
  95. package/dest/events/private_event_filter_validator.js +5 -6
  96. package/dest/job_coordinator/job_coordinator.d.ts +75 -0
  97. package/dest/job_coordinator/job_coordinator.d.ts.map +1 -0
  98. package/dest/job_coordinator/job_coordinator.js +94 -0
  99. package/dest/logs/log_service.d.ts +18 -32
  100. package/dest/logs/log_service.d.ts.map +1 -1
  101. package/dest/logs/log_service.js +76 -197
  102. package/dest/notes/note_service.d.ts +13 -12
  103. package/dest/notes/note_service.d.ts.map +1 -1
  104. package/dest/notes/note_service.js +42 -46
  105. package/dest/notes_filter.d.ts +25 -0
  106. package/dest/notes_filter.d.ts.map +1 -0
  107. package/dest/notes_filter.js +4 -0
  108. package/dest/oracle_version.d.ts +3 -3
  109. package/dest/oracle_version.d.ts.map +1 -1
  110. package/dest/oracle_version.js +4 -3
  111. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts +4 -0
  112. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts.map +1 -0
  113. package/dest/private_kernel/hints/{compute_tx_include_by_timestamp.js → compute_tx_expiration_timestamp.js} +12 -12
  114. package/dest/private_kernel/hints/index.d.ts +3 -3
  115. package/dest/private_kernel/hints/index.d.ts.map +1 -1
  116. package/dest/private_kernel/hints/index.js +2 -2
  117. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +29 -0
  118. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -0
  119. package/dest/private_kernel/hints/{build_private_kernel_reset_private_inputs.js → private_kernel_reset_private_inputs_builder.js} +141 -74
  120. package/dest/private_kernel/hints/test_utils.d.ts +122 -0
  121. package/dest/private_kernel/hints/test_utils.d.ts.map +1 -0
  122. package/dest/private_kernel/hints/test_utils.js +203 -0
  123. package/dest/private_kernel/private_kernel_execution_prover.d.ts +3 -2
  124. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  125. package/dest/private_kernel/private_kernel_execution_prover.js +24 -17
  126. package/dest/private_kernel/private_kernel_oracle.d.ts +24 -24
  127. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  128. package/dest/private_kernel/private_kernel_oracle.js +94 -2
  129. package/dest/pxe.d.ts +85 -66
  130. package/dest/pxe.d.ts.map +1 -1
  131. package/dest/pxe.js +203 -185
  132. package/dest/storage/address_store/address_store.d.ts +11 -0
  133. package/dest/storage/address_store/address_store.d.ts.map +1 -0
  134. package/dest/storage/{address_data_provider/address_data_provider.js → address_store/address_store.js} +13 -12
  135. package/dest/storage/address_store/index.d.ts +2 -0
  136. package/dest/storage/address_store/index.d.ts.map +1 -0
  137. package/dest/storage/address_store/index.js +1 -0
  138. package/dest/storage/anchor_block_store/anchor_block_store.d.ts +17 -0
  139. package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -0
  140. package/dest/storage/{anchor_block_data_provider/anchor_block_data_provider.js → anchor_block_store/anchor_block_store.js} +9 -2
  141. package/dest/storage/anchor_block_store/index.d.ts +2 -0
  142. package/dest/storage/anchor_block_store/index.d.ts.map +1 -0
  143. package/dest/storage/anchor_block_store/index.js +1 -0
  144. package/dest/storage/capsule_store/capsule_store.d.ts +72 -0
  145. package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -0
  146. package/dest/storage/capsule_store/capsule_store.js +253 -0
  147. package/dest/storage/capsule_store/index.d.ts +2 -0
  148. package/dest/storage/capsule_store/index.d.ts.map +1 -0
  149. package/dest/storage/capsule_store/index.js +1 -0
  150. package/dest/storage/contract_store/contract_store.d.ts +93 -0
  151. package/dest/storage/contract_store/contract_store.d.ts.map +1 -0
  152. package/dest/storage/contract_store/contract_store.js +309 -0
  153. package/dest/storage/contract_store/index.d.ts +2 -0
  154. package/dest/storage/contract_store/index.d.ts.map +1 -0
  155. package/dest/storage/contract_store/index.js +1 -0
  156. package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.d.ts +1 -1
  157. package/dest/storage/contract_store/private_functions_tree.d.ts.map +1 -0
  158. package/dest/storage/index.d.ts +8 -8
  159. package/dest/storage/index.d.ts.map +1 -1
  160. package/dest/storage/index.js +7 -7
  161. package/dest/storage/metadata.d.ts +1 -1
  162. package/dest/storage/metadata.js +1 -1
  163. package/dest/storage/note_store/index.d.ts +3 -0
  164. package/dest/storage/note_store/index.d.ts.map +1 -0
  165. package/dest/storage/note_store/index.js +2 -0
  166. package/dest/storage/note_store/note_store.d.ts +83 -0
  167. package/dest/storage/note_store/note_store.d.ts.map +1 -0
  168. package/dest/storage/note_store/note_store.js +343 -0
  169. package/dest/storage/note_store/stored_note.d.ts +16 -0
  170. package/dest/storage/note_store/stored_note.d.ts.map +1 -0
  171. package/dest/storage/note_store/stored_note.js +43 -0
  172. package/dest/storage/private_event_store/private_event_store.d.ts +91 -0
  173. package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -0
  174. package/dest/storage/private_event_store/private_event_store.js +273 -0
  175. package/dest/storage/private_event_store/stored_private_event.d.ts +23 -0
  176. package/dest/storage/private_event_store/stored_private_event.d.ts.map +1 -0
  177. package/dest/storage/private_event_store/stored_private_event.js +56 -0
  178. package/dest/storage/tagging_store/index.d.ts +4 -0
  179. package/dest/storage/tagging_store/index.d.ts.map +1 -0
  180. package/dest/storage/tagging_store/index.js +3 -0
  181. package/dest/storage/tagging_store/recipient_tagging_store.d.ts +28 -0
  182. package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -0
  183. package/dest/storage/tagging_store/recipient_tagging_store.js +111 -0
  184. package/dest/storage/tagging_store/sender_address_book_store.d.ts +14 -0
  185. package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +1 -0
  186. package/dest/storage/tagging_store/sender_address_book_store.js +36 -0
  187. package/dest/storage/{tagging_data_provider/sender_tagging_data_provider.d.ts → tagging_store/sender_tagging_store.d.ts} +19 -9
  188. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -0
  189. package/dest/storage/tagging_store/sender_tagging_store.js +348 -0
  190. package/dest/tagging/constants.d.ts +2 -2
  191. package/dest/tagging/constants.d.ts.map +1 -1
  192. package/dest/tagging/constants.js +10 -3
  193. package/dest/tagging/get_all_logs_by_tags.d.ts +24 -0
  194. package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -0
  195. package/dest/tagging/get_all_logs_by_tags.js +60 -0
  196. package/dest/tagging/index.d.ts +15 -3
  197. package/dest/tagging/index.d.ts.map +1 -1
  198. package/dest/tagging/index.js +14 -2
  199. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +4 -3
  200. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +1 -1
  201. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +12 -12
  202. package/dest/tagging/recipient_sync/utils/find_highest_indexes.js +2 -2
  203. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +3 -2
  204. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +1 -1
  205. package/dest/tagging/recipient_sync/utils/load_logs_for_range.js +5 -2
  206. package/dest/tagging/{sync → sender_sync}/sync_sender_tagging_indexes.d.ts +4 -4
  207. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -0
  208. package/dest/tagging/{sync → sender_sync}/sync_sender_tagging_indexes.js +8 -23
  209. package/dest/tagging/{sync → sender_sync}/utils/get_status_change_of_pending.d.ts +1 -1
  210. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -0
  211. package/dest/tagging/{sync → sender_sync}/utils/get_status_change_of_pending.js +5 -8
  212. package/dest/tagging/{sync → sender_sync}/utils/load_and_store_new_tagging_indexes.d.ts +7 -4
  213. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -0
  214. package/dest/tagging/{sync → sender_sync}/utils/load_and_store_new_tagging_indexes.js +12 -7
  215. package/package.json +27 -18
  216. package/src/access_scopes.ts +9 -0
  217. package/src/bin/check_oracle_version.ts +1 -0
  218. package/src/block_synchronizer/block_synchronizer.ts +99 -46
  219. package/src/config/index.ts +14 -0
  220. package/src/config/package_info.ts +1 -1
  221. package/src/contract_function_simulator/benchmarked_node.ts +103 -0
  222. package/src/contract_function_simulator/contract_function_simulator.ts +363 -153
  223. package/src/contract_function_simulator/execution_note_cache.ts +44 -25
  224. package/src/contract_function_simulator/index.ts +1 -1
  225. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +6 -2
  226. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +2 -2
  227. package/src/contract_function_simulator/noir-structs/utility_context.ts +6 -25
  228. package/src/contract_function_simulator/oracle/interfaces.ts +22 -12
  229. package/src/contract_function_simulator/oracle/note_packing_utils.ts +10 -10
  230. package/src/contract_function_simulator/oracle/oracle.ts +79 -47
  231. package/src/contract_function_simulator/oracle/private_execution.ts +1 -69
  232. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +121 -135
  233. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +217 -132
  234. package/src/contract_function_simulator/proxied_contract_data_source.ts +7 -7
  235. package/src/contract_logging.ts +39 -0
  236. package/src/contract_sync/contract_sync_service.ts +152 -0
  237. package/src/contract_sync/helpers.ts +98 -0
  238. package/src/debug/pxe_debug_utils.ts +65 -20
  239. package/src/entrypoints/client/bundle/index.ts +3 -0
  240. package/src/entrypoints/client/bundle/utils.ts +23 -16
  241. package/src/entrypoints/client/lazy/index.ts +3 -0
  242. package/src/entrypoints/client/lazy/utils.ts +24 -17
  243. package/src/entrypoints/pxe_creation_options.ts +4 -2
  244. package/src/entrypoints/server/index.ts +4 -0
  245. package/src/entrypoints/server/utils.ts +33 -41
  246. package/src/error_enriching.ts +7 -15
  247. package/src/events/event_service.ts +22 -28
  248. package/src/events/private_event_filter_validator.ts +4 -6
  249. package/src/job_coordinator/job_coordinator.ts +150 -0
  250. package/src/logs/log_service.ts +118 -274
  251. package/src/notes/note_service.ts +45 -49
  252. package/src/notes_filter.ts +26 -0
  253. package/src/oracle_version.ts +4 -3
  254. package/src/private_kernel/hints/{compute_tx_include_by_timestamp.ts → compute_tx_expiration_timestamp.ts} +13 -13
  255. package/src/private_kernel/hints/index.ts +2 -2
  256. package/src/private_kernel/hints/{build_private_kernel_reset_private_inputs.ts → private_kernel_reset_private_inputs_builder.ts} +196 -138
  257. package/src/private_kernel/hints/test_utils.ts +325 -0
  258. package/src/private_kernel/private_kernel_execution_prover.ts +27 -19
  259. package/src/private_kernel/private_kernel_oracle.ts +116 -36
  260. package/src/pxe.ts +331 -257
  261. package/src/storage/{address_data_provider/address_data_provider.ts → address_store/address_store.ts} +16 -16
  262. package/src/storage/address_store/index.ts +1 -0
  263. package/src/storage/{anchor_block_data_provider/anchor_block_data_provider.ts → anchor_block_store/anchor_block_store.ts} +9 -1
  264. package/src/storage/anchor_block_store/index.ts +1 -0
  265. package/src/storage/capsule_store/capsule_store.ts +315 -0
  266. package/src/storage/capsule_store/index.ts +1 -0
  267. package/src/storage/contract_store/contract_store.ts +429 -0
  268. package/src/storage/contract_store/index.ts +1 -0
  269. package/src/storage/index.ts +7 -7
  270. package/src/storage/metadata.ts +1 -1
  271. package/src/storage/note_store/index.ts +2 -0
  272. package/src/storage/note_store/note_store.ts +418 -0
  273. package/src/storage/note_store/stored_note.ts +48 -0
  274. package/src/storage/private_event_store/private_event_store.ts +384 -0
  275. package/src/storage/private_event_store/stored_private_event.ts +73 -0
  276. package/src/storage/tagging_store/index.ts +3 -0
  277. package/src/storage/tagging_store/recipient_tagging_store.ts +139 -0
  278. package/src/storage/tagging_store/sender_address_book_store.ts +48 -0
  279. package/src/storage/tagging_store/sender_tagging_store.ts +429 -0
  280. package/src/tagging/constants.ts +10 -3
  281. package/src/tagging/get_all_logs_by_tags.ts +92 -0
  282. package/src/tagging/index.ts +17 -2
  283. package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +27 -13
  284. package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +2 -2
  285. package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +7 -1
  286. package/src/tagging/{sync → sender_sync}/sync_sender_tagging_indexes.ts +12 -25
  287. package/src/tagging/{sync → sender_sync}/utils/get_status_change_of_pending.ts +5 -13
  288. package/src/tagging/{sync → sender_sync}/utils/load_and_store_new_tagging_indexes.ts +19 -7
  289. package/dest/contract_function_simulator/proxied_node.d.ts +0 -9
  290. package/dest/contract_function_simulator/proxied_node.d.ts.map +0 -1
  291. package/dest/contract_function_simulator/proxied_node.js +0 -27
  292. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts +0 -28
  293. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts.map +0 -1
  294. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts +0 -4
  295. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts.map +0 -1
  296. package/dest/private_kernel/private_kernel_oracle_impl.d.ts +0 -46
  297. package/dest/private_kernel/private_kernel_oracle_impl.d.ts.map +0 -1
  298. package/dest/private_kernel/private_kernel_oracle_impl.js +0 -86
  299. package/dest/public_storage/public_storage_service.d.ts +0 -24
  300. package/dest/public_storage/public_storage_service.d.ts.map +0 -1
  301. package/dest/public_storage/public_storage_service.js +0 -26
  302. package/dest/storage/address_data_provider/address_data_provider.d.ts +0 -11
  303. package/dest/storage/address_data_provider/address_data_provider.d.ts.map +0 -1
  304. package/dest/storage/address_data_provider/index.d.ts +0 -2
  305. package/dest/storage/address_data_provider/index.d.ts.map +0 -1
  306. package/dest/storage/address_data_provider/index.js +0 -1
  307. package/dest/storage/anchor_block_data_provider/anchor_block_data_provider.d.ts +0 -9
  308. package/dest/storage/anchor_block_data_provider/anchor_block_data_provider.d.ts.map +0 -1
  309. package/dest/storage/anchor_block_data_provider/index.d.ts +0 -2
  310. package/dest/storage/anchor_block_data_provider/index.d.ts.map +0 -1
  311. package/dest/storage/anchor_block_data_provider/index.js +0 -1
  312. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts +0 -57
  313. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts.map +0 -1
  314. package/dest/storage/capsule_data_provider/capsule_data_provider.js +0 -146
  315. package/dest/storage/capsule_data_provider/index.d.ts +0 -2
  316. package/dest/storage/capsule_data_provider/index.d.ts.map +0 -1
  317. package/dest/storage/capsule_data_provider/index.js +0 -1
  318. package/dest/storage/contract_data_provider/contract_data_provider.d.ts +0 -66
  319. package/dest/storage/contract_data_provider/contract_data_provider.d.ts.map +0 -1
  320. package/dest/storage/contract_data_provider/contract_data_provider.js +0 -224
  321. package/dest/storage/contract_data_provider/index.d.ts +0 -2
  322. package/dest/storage/contract_data_provider/index.d.ts.map +0 -1
  323. package/dest/storage/contract_data_provider/index.js +0 -1
  324. package/dest/storage/contract_data_provider/private_functions_tree.d.ts.map +0 -1
  325. package/dest/storage/note_data_provider/index.d.ts +0 -3
  326. package/dest/storage/note_data_provider/index.d.ts.map +0 -1
  327. package/dest/storage/note_data_provider/index.js +0 -2
  328. package/dest/storage/note_data_provider/note_data_provider.d.ts +0 -84
  329. package/dest/storage/note_data_provider/note_data_provider.d.ts.map +0 -1
  330. package/dest/storage/note_data_provider/note_data_provider.js +0 -322
  331. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts +0 -51
  332. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts.map +0 -1
  333. package/dest/storage/private_event_data_provider/private_event_data_provider.js +0 -115
  334. package/dest/storage/tagging_data_provider/index.d.ts +0 -3
  335. package/dest/storage/tagging_data_provider/index.d.ts.map +0 -1
  336. package/dest/storage/tagging_data_provider/index.js +0 -2
  337. package/dest/storage/tagging_data_provider/recipient_tagging_data_provider.d.ts +0 -31
  338. package/dest/storage/tagging_data_provider/recipient_tagging_data_provider.d.ts.map +0 -1
  339. package/dest/storage/tagging_data_provider/recipient_tagging_data_provider.js +0 -65
  340. package/dest/storage/tagging_data_provider/sender_tagging_data_provider.d.ts.map +0 -1
  341. package/dest/storage/tagging_data_provider/sender_tagging_data_provider.js +0 -196
  342. package/dest/tagging/recipient_sync/new_recipient_tagging_data_provider.d.ts +0 -21
  343. package/dest/tagging/recipient_sync/new_recipient_tagging_data_provider.d.ts.map +0 -1
  344. package/dest/tagging/recipient_sync/new_recipient_tagging_data_provider.js +0 -42
  345. package/dest/tagging/sync/sync_sender_tagging_indexes.d.ts.map +0 -1
  346. package/dest/tagging/sync/utils/get_status_change_of_pending.d.ts.map +0 -1
  347. package/dest/tagging/sync/utils/load_and_store_new_tagging_indexes.d.ts.map +0 -1
  348. package/dest/tagging/utils.d.ts +0 -18
  349. package/dest/tagging/utils.d.ts.map +0 -1
  350. package/dest/tagging/utils.js +0 -25
  351. package/dest/tree_membership/tree_membership_service.d.ts +0 -52
  352. package/dest/tree_membership/tree_membership_service.d.ts.map +0 -1
  353. package/dest/tree_membership/tree_membership_service.js +0 -84
  354. package/src/contract_function_simulator/proxied_node.ts +0 -33
  355. package/src/private_kernel/private_kernel_oracle_impl.ts +0 -133
  356. package/src/public_storage/public_storage_service.ts +0 -33
  357. package/src/storage/address_data_provider/index.ts +0 -1
  358. package/src/storage/anchor_block_data_provider/index.ts +0 -1
  359. package/src/storage/capsule_data_provider/capsule_data_provider.ts +0 -179
  360. package/src/storage/capsule_data_provider/index.ts +0 -1
  361. package/src/storage/contract_data_provider/contract_data_provider.ts +0 -319
  362. package/src/storage/contract_data_provider/index.ts +0 -1
  363. package/src/storage/note_data_provider/index.ts +0 -2
  364. package/src/storage/note_data_provider/note_data_provider.ts +0 -412
  365. package/src/storage/private_event_data_provider/private_event_data_provider.ts +0 -162
  366. package/src/storage/tagging_data_provider/index.ts +0 -2
  367. package/src/storage/tagging_data_provider/recipient_tagging_data_provider.ts +0 -86
  368. package/src/storage/tagging_data_provider/sender_tagging_data_provider.ts +0 -244
  369. package/src/tagging/recipient_sync/new_recipient_tagging_data_provider.ts +0 -53
  370. package/src/tagging/utils.ts +0 -32
  371. package/src/tree_membership/tree_membership_service.ts +0 -112
  372. /package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.js +0 -0
  373. /package/src/storage/{contract_data_provider → contract_store}/private_functions_tree.ts +0 -0
@@ -1,9 +1,7 @@
1
1
  import { PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH, PRIVATE_CONTEXT_INPUTS_LENGTH } from '@aztec/constants';
2
- import { BlockNumber } from '@aztec/foundation/branded-types';
3
2
  import { Fr } from '@aztec/foundation/curves/bn254';
4
3
  import { createLogger } from '@aztec/foundation/log';
5
4
  import { Timer } from '@aztec/foundation/timer';
6
- import { ProtocolContractAddress } from '@aztec/protocol-contracts';
7
5
  import {
8
6
  type ACVMWitness,
9
7
  type CircuitSimulator,
@@ -19,15 +17,10 @@ import {
19
17
  countArgumentsSize,
20
18
  } from '@aztec/stdlib/abi';
21
19
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
22
- import type { ContractInstance } from '@aztec/stdlib/contract';
23
- import { DelayedPublicMutableValues, DelayedPublicMutableValuesWithHash } from '@aztec/stdlib/delayed-public-mutable';
24
- import type { AztecNode } from '@aztec/stdlib/interfaces/client';
25
20
  import { PrivateCircuitPublicInputs } from '@aztec/stdlib/kernel';
26
21
  import type { CircuitWitnessGenerationStats } from '@aztec/stdlib/stats';
27
- import { BlockHeader, PrivateCallExecutionResult } from '@aztec/stdlib/tx';
28
- import type { UInt64 } from '@aztec/stdlib/types';
22
+ import { PrivateCallExecutionResult } from '@aztec/stdlib/tx';
29
23
 
30
- import { ContractDataProvider } from '../../storage/contract_data_provider/index.js';
31
24
  import { Oracle } from './oracle.js';
32
25
  import type { PrivateExecutionOracle } from './private_execution_oracle.js';
33
26
 
@@ -85,7 +78,6 @@ export async function executePrivateFunction(
85
78
 
86
79
  const rawReturnValues = await privateExecutionOracle.privateLoadFromExecutionCache(publicInputs.returnsHash);
87
80
 
88
- const noteHashLeafIndexMap = privateExecutionOracle.getNoteHashLeafIndexMap();
89
81
  const newNotes = privateExecutionOracle.getNewNotes();
90
82
  const noteHashNullifierCounterMap = privateExecutionOracle.getNoteHashNullifierCounterMap();
91
83
  const offchainEffects = privateExecutionOracle.getOffchainEffects();
@@ -108,7 +100,6 @@ export async function executePrivateFunction(
108
100
  Buffer.from(artifact.verificationKey!, 'base64'),
109
101
  partialWitness,
110
102
  publicInputs,
111
- noteHashLeafIndexMap,
112
103
  newNotes,
113
104
  noteHashNullifierCounterMap,
114
105
  rawReturnValues,
@@ -148,62 +139,3 @@ export function extractPrivateCircuitPublicInputs(
148
139
  }
149
140
  return PrivateCircuitPublicInputs.fromFields(returnData);
150
141
  }
151
-
152
- /**
153
- * Read the current class id of a contract from the execution data provider or AztecNode. If not found, class id
154
- * from the instance is used.
155
- * @param contractAddress - The address of the contract to read the class id for.
156
- * @param instance - The instance of the contract.
157
- * @param executionDataProvider - The execution data provider.
158
- * @param blockNumber - The block number at which to load the DelayedPublicMutable storing the class id.
159
- * @param timestamp - The timestamp at which to obtain the class id from the DelayedPublicMutable.
160
- * @returns The current class id.
161
- */
162
- export async function readCurrentClassId(
163
- contractAddress: AztecAddress,
164
- instance: ContractInstance,
165
- aztecNode: AztecNode,
166
- blockNumber: BlockNumber,
167
- timestamp: UInt64,
168
- ) {
169
- const { delayedPublicMutableSlot } = await DelayedPublicMutableValuesWithHash.getContractUpdateSlots(contractAddress);
170
- const delayedPublicMutableValues = await DelayedPublicMutableValues.readFromTree(delayedPublicMutableSlot, slot =>
171
- aztecNode.getPublicStorageAt(blockNumber, ProtocolContractAddress.ContractInstanceRegistry, slot),
172
- );
173
- let currentClassId = delayedPublicMutableValues.svc.getCurrentAt(timestamp)[0];
174
- if (currentClassId.isZero()) {
175
- currentClassId = instance.originalContractClassId;
176
- }
177
- return currentClassId;
178
- }
179
-
180
- /**
181
- * Verify that the current class id of a contract obtained from AztecNode is the same as the one in contract data
182
- * provider (i.e. PXE's own storage).
183
- * @param header - The header of the block at which to verify the current class id. If not provided, the anchor block
184
- * header of the execution data provider is used.
185
- */
186
- export async function verifyCurrentClassId(
187
- contractAddress: AztecAddress,
188
- aztecNode: AztecNode,
189
- contractDataProvider: ContractDataProvider,
190
- header: BlockHeader,
191
- ) {
192
- const instance = await contractDataProvider.getContractInstance(contractAddress);
193
- if (!instance) {
194
- throw new Error(`No contract instance found for address ${contractAddress.toString()}`);
195
- }
196
-
197
- const currentClassId = await readCurrentClassId(
198
- contractAddress,
199
- instance,
200
- aztecNode,
201
- header.globalVariables.blockNumber,
202
- header.globalVariables.timestamp,
203
- );
204
- if (!instance.currentContractClassId.equals(currentClassId)) {
205
- throw new Error(
206
- `Contract ${contractAddress} is outdated, current class id is ${currentClassId}, local class id is ${instance.currentContractClassId}`,
207
- );
208
- }
209
- }
@@ -2,50 +2,59 @@ import { MAX_FR_CALLDATA_TO_ALL_ENQUEUED_CALLS, PRIVATE_CONTEXT_INPUTS_LENGTH }
2
2
  import { Fr } from '@aztec/foundation/curves/bn254';
3
3
  import { createLogger } from '@aztec/foundation/log';
4
4
  import { Timer } from '@aztec/foundation/timer';
5
- import type { KeyStore } from '@aztec/key-store';
6
5
  import { type CircuitSimulator, toACVMWitness } from '@aztec/simulator/client';
7
6
  import {
8
7
  type FunctionAbi,
9
8
  type FunctionArtifact,
9
+ type FunctionCall,
10
10
  FunctionSelector,
11
11
  type NoteSelector,
12
12
  countArgumentsSize,
13
13
  } from '@aztec/stdlib/abi';
14
- import type { AuthWitness } from '@aztec/stdlib/auth-witness';
15
14
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
16
- import { computeUniqueNoteHash, siloNoteHash, siloNullifier } from '@aztec/stdlib/hash';
17
- import type { AztecNode } from '@aztec/stdlib/interfaces/client';
15
+ import { siloNullifier } from '@aztec/stdlib/hash';
18
16
  import { PrivateContextInputs } from '@aztec/stdlib/kernel';
19
17
  import { type ContractClassLog, DirectionalAppTaggingSecret, type PreTag } from '@aztec/stdlib/logs';
20
18
  import { Tag } from '@aztec/stdlib/logs';
21
19
  import { Note, type NoteStatus } from '@aztec/stdlib/note';
22
20
  import {
23
- type BlockHeader,
24
21
  CallContext,
25
- Capsule,
26
22
  CountedContractClassLog,
27
23
  NoteAndSlot,
28
24
  PrivateCallExecutionResult,
29
25
  type TxContext,
30
26
  } from '@aztec/stdlib/tx';
31
27
 
28
+ import type { AccessScopes } from '../../access_scopes.js';
29
+ import type { ContractSyncService } from '../../contract_sync/contract_sync_service.js';
32
30
  import { NoteService } from '../../notes/note_service.js';
33
- import type { AddressDataProvider } from '../../storage/address_data_provider/address_data_provider.js';
34
- import type { AnchorBlockDataProvider } from '../../storage/anchor_block_data_provider/anchor_block_data_provider.js';
35
- import type { CapsuleDataProvider } from '../../storage/capsule_data_provider/capsule_data_provider.js';
36
- import type { ContractDataProvider } from '../../storage/contract_data_provider/contract_data_provider.js';
37
- import type { NoteDataProvider } from '../../storage/note_data_provider/note_data_provider.js';
38
- import type { PrivateEventDataProvider } from '../../storage/private_event_data_provider/private_event_data_provider.js';
39
- import type { RecipientTaggingDataProvider } from '../../storage/tagging_data_provider/recipient_tagging_data_provider.js';
40
- import type { SenderTaggingDataProvider } from '../../storage/tagging_data_provider/sender_tagging_data_provider.js';
41
- import { syncSenderTaggingIndexes } from '../../tagging/sync/sync_sender_tagging_indexes.js';
31
+ import type { SenderTaggingStore } from '../../storage/tagging_store/sender_tagging_store.js';
32
+ import { syncSenderTaggingIndexes } from '../../tagging/index.js';
42
33
  import type { ExecutionNoteCache } from '../execution_note_cache.js';
43
34
  import { ExecutionTaggingIndexCache } from '../execution_tagging_index_cache.js';
44
35
  import type { HashedValuesCache } from '../hashed_values_cache.js';
45
36
  import { pickNotes } from '../pick_notes.js';
46
37
  import type { IPrivateExecutionOracle, NoteData } from './interfaces.js';
47
- import { executePrivateFunction, verifyCurrentClassId } from './private_execution.js';
48
- import { UtilityExecutionOracle } from './utility_execution_oracle.js';
38
+ import { executePrivateFunction } from './private_execution.js';
39
+ import { UtilityExecutionOracle, type UtilityExecutionOracleArgs } from './utility_execution_oracle.js';
40
+
41
+ /** Args for PrivateExecutionOracle constructor. */
42
+ export type PrivateExecutionOracleArgs = Omit<UtilityExecutionOracleArgs, 'contractAddress'> & {
43
+ argsHash: Fr;
44
+ txContext: TxContext;
45
+ callContext: CallContext;
46
+ /** Needed to trigger contract synchronization before nested calls */
47
+ utilityExecutor: (call: FunctionCall, scopes: AccessScopes) => Promise<void>;
48
+ executionCache: HashedValuesCache;
49
+ noteCache: ExecutionNoteCache;
50
+ taggingIndexCache: ExecutionTaggingIndexCache;
51
+ senderTaggingStore: SenderTaggingStore;
52
+ contractSyncService: ContractSyncService;
53
+ totalPublicCalldataCount?: number;
54
+ sideEffectCounter?: number;
55
+ senderForTags?: AztecAddress;
56
+ simulator?: CircuitSimulator;
57
+ };
49
58
 
50
59
  /**
51
60
  * The execution oracle for the private part of a transaction.
@@ -62,68 +71,44 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
62
71
  * Users can also use this to get a clearer idea of what's happened during a simulation.
63
72
  */
64
73
  private newNotes: NoteAndSlot[] = [];
65
- /**
66
- * Notes from previous transactions that are returned to the oracle call `getNotes` during this execution.
67
- * The mapping maps from the unique siloed note hash to the index for notes created in private executions.
68
- * It maps from siloed note hash to the index for notes created by public functions.
69
- *
70
- * They are not part of the ExecutionNoteCache and being forwarded to nested contexts via `extend()`
71
- * because these notes are meant to be maintained on a per-call basis
72
- * They should act as references for the read requests output by an app circuit via public inputs.
73
- */
74
- private noteHashLeafIndexMap: Map<bigint, bigint> = new Map();
75
74
  private noteHashNullifierCounterMap: Map<number, number> = new Map();
76
75
  private contractClassLogs: CountedContractClassLog[] = [];
77
76
  private offchainEffects: { data: Fr[] }[] = [];
78
77
  private nestedExecutionResults: PrivateCallExecutionResult[] = [];
79
78
 
80
- constructor(
81
- private readonly argsHash: Fr,
82
- private readonly txContext: TxContext,
83
- private readonly callContext: CallContext,
84
- /** Header of a block whose state is used during private execution (not the block the transaction is included in). */
85
- protected override readonly anchorBlockHeader: BlockHeader,
86
- /** List of transient auth witnesses to be used during this simulation */
87
- authWitnesses: AuthWitness[],
88
- capsules: Capsule[],
89
- private readonly executionCache: HashedValuesCache,
90
- private readonly noteCache: ExecutionNoteCache,
91
- private readonly taggingIndexCache: ExecutionTaggingIndexCache,
92
- contractDataProvider: ContractDataProvider,
93
- noteDataProvider: NoteDataProvider,
94
- keyStore: KeyStore,
95
- addressDataProvider: AddressDataProvider,
96
- aztecNode: AztecNode,
97
- anchorBlockDataProvider: AnchorBlockDataProvider,
98
- senderTaggingDataProvider: SenderTaggingDataProvider,
99
- recipientTaggingDataProvider: RecipientTaggingDataProvider,
100
- capsuleDataProvider: CapsuleDataProvider,
101
- privateEventDataProvider: PrivateEventDataProvider,
102
- private totalPublicCalldataCount: number = 0,
103
- protected sideEffectCounter: number = 0,
104
- log = createLogger('simulator:client_execution_context'),
105
- scopes?: AztecAddress[],
106
- private senderForTags?: AztecAddress,
107
- private simulator?: CircuitSimulator,
108
- ) {
109
- super(
110
- callContext.contractAddress,
111
- authWitnesses,
112
- capsules,
113
- anchorBlockHeader,
114
- contractDataProvider,
115
- noteDataProvider,
116
- keyStore,
117
- addressDataProvider,
118
- aztecNode,
119
- anchorBlockDataProvider,
120
- senderTaggingDataProvider,
121
- recipientTaggingDataProvider,
122
- capsuleDataProvider,
123
- privateEventDataProvider,
124
- log,
125
- scopes,
126
- );
79
+ private readonly argsHash: Fr;
80
+ private readonly txContext: TxContext;
81
+ private readonly callContext: CallContext;
82
+ private readonly utilityExecutor: (call: FunctionCall, scopes: AccessScopes) => Promise<void>;
83
+ private readonly executionCache: HashedValuesCache;
84
+ private readonly noteCache: ExecutionNoteCache;
85
+ private readonly taggingIndexCache: ExecutionTaggingIndexCache;
86
+ private readonly senderTaggingStore: SenderTaggingStore;
87
+ private readonly contractSyncService: ContractSyncService;
88
+ private totalPublicCalldataCount: number;
89
+ protected sideEffectCounter: number;
90
+ private senderForTags?: AztecAddress;
91
+ private readonly simulator?: CircuitSimulator;
92
+
93
+ constructor(args: PrivateExecutionOracleArgs) {
94
+ super({
95
+ ...args,
96
+ contractAddress: args.callContext.contractAddress,
97
+ log: args.log ?? createLogger('simulator:client_execution_context'),
98
+ });
99
+ this.argsHash = args.argsHash;
100
+ this.txContext = args.txContext;
101
+ this.callContext = args.callContext;
102
+ this.utilityExecutor = args.utilityExecutor;
103
+ this.executionCache = args.executionCache;
104
+ this.noteCache = args.noteCache;
105
+ this.taggingIndexCache = args.taggingIndexCache;
106
+ this.senderTaggingStore = args.senderTaggingStore;
107
+ this.contractSyncService = args.contractSyncService;
108
+ this.totalPublicCalldataCount = args.totalPublicCalldataCount ?? 0;
109
+ this.sideEffectCounter = args.sideEffectCounter ?? 0;
110
+ this.senderForTags = args.senderForTags;
111
+ this.simulator = args.simulator;
127
112
  }
128
113
 
129
114
  public getPrivateContextInputs(): PrivateContextInputs {
@@ -155,14 +140,6 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
155
140
  return toACVMWitness(0, fields);
156
141
  }
157
142
 
158
- /**
159
- * The KernelProver will use this to fully populate witnesses and provide hints to the kernel circuit
160
- * regarding which note hash each settled read request corresponds to.
161
- */
162
- public getNoteHashLeafIndexMap() {
163
- return this.noteHashLeafIndexMap;
164
- }
165
-
166
143
  /**
167
144
  * Get the data for the newly created notes.
168
145
  */
@@ -255,7 +232,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
255
232
  sender: AztecAddress,
256
233
  recipient: AztecAddress,
257
234
  ) {
258
- const senderCompleteAddress = await this.getCompleteAddress(sender);
235
+ const senderCompleteAddress = await this.getCompleteAddressOrFail(sender);
259
236
  const senderIvsk = await this.keyStore.getMasterIncomingViewingSecretKey(sender);
260
237
  return DirectionalAppTaggingSecret.compute(
261
238
  senderCompleteAddress,
@@ -276,9 +253,16 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
276
253
  // This is a tagging secret we've not yet used in this tx, so first sync our store to make sure its indices
277
254
  // are up to date. We do this here because this store is not synced as part of the global sync because
278
255
  // that'd be wasteful as most tagging secrets are not used in each tx.
279
- await syncSenderTaggingIndexes(secret, this.contractAddress, this.aztecNode, this.senderTaggingDataProvider);
280
-
281
- const lastUsedIndex = await this.senderTaggingDataProvider.getLastUsedIndex(secret);
256
+ await syncSenderTaggingIndexes(
257
+ secret,
258
+ this.contractAddress,
259
+ this.aztecNode,
260
+ this.senderTaggingStore,
261
+ await this.anchorBlockHeader.hash(),
262
+ this.jobId,
263
+ );
264
+
265
+ const lastUsedIndex = await this.senderTaggingStore.getLastUsedIndex(secret, this.jobId);
282
266
  // If lastUsedIndex is undefined, we've never used this secret, so start from 0
283
267
  // Otherwise, the next index to use is one past the last used index
284
268
  return lastUsedIndex === undefined ? 0 : lastUsedIndex + 1;
@@ -367,7 +351,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
367
351
 
368
352
  const pendingNullifiers = this.noteCache.getNullifiers(this.callContext.contractAddress);
369
353
 
370
- const noteService = new NoteService(this.noteDataProvider, this.aztecNode, this.anchorBlockDataProvider);
354
+ const noteService = new NoteService(this.noteStore, this.aztecNode, this.anchorBlockHeader, this.jobId);
371
355
  const dbNotes = await noteService.getNotes(
372
356
  this.callContext.contractAddress,
373
357
  owner,
@@ -397,23 +381,6 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
397
381
  .join(', ')}`,
398
382
  );
399
383
 
400
- const noteHashesAndIndexes = await Promise.all(
401
- notes.map(async n => {
402
- if (n.index !== undefined) {
403
- const siloedNoteHash = await siloNoteHash(n.contractAddress, n.noteHash);
404
- const uniqueNoteHash = await computeUniqueNoteHash(n.noteNonce, siloedNoteHash);
405
-
406
- return { hash: uniqueNoteHash, index: n.index };
407
- }
408
- }),
409
- );
410
-
411
- noteHashesAndIndexes
412
- .filter(n => n !== undefined)
413
- .forEach(n => {
414
- this.noteHashLeafIndexMap.set(n!.hash.toBigInt(), n!.index);
415
- });
416
-
417
384
  return notes;
418
385
  }
419
386
 
@@ -456,6 +423,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
456
423
  note,
457
424
  siloedNullifier: undefined, // Siloed nullifier cannot be known for newly created note.
458
425
  noteHash,
426
+ isPending: true, // This note has just been created and hence is not settled yet.
459
427
  },
460
428
  counter,
461
429
  );
@@ -490,6 +458,19 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
490
458
  return this.noteCache.nullifierCreated(this.callContext.contractAddress, innerNullifier);
491
459
  }
492
460
 
461
+ /**
462
+ * Check if a nullifier has been emitted in the same transaction, i.e. if privateNotifyCreatedNullifier has been
463
+ * called for this inner nullifier from the contract with the specified address.
464
+ * @param innerNullifier - The inner nullifier to check.
465
+ * @param contractAddress - Address of the contract that emitted the nullifier.
466
+ * @returns A boolean indicating whether the nullifier is pending or not.
467
+ */
468
+ public async privateIsNullifierPending(innerNullifier: Fr, contractAddress: AztecAddress): Promise<boolean> {
469
+ const siloedNullifier = await siloNullifier(contractAddress, innerNullifier);
470
+ const isNullifierPending = this.noteCache.getNullifiers(contractAddress).has(siloedNullifier.toBigInt());
471
+ return Promise.resolve(isNullifierPending);
472
+ }
473
+
493
474
  /**
494
475
  * Emit a contract class log.
495
476
  * This fn exists because we only carry a poseidon hash through the kernels, and need to
@@ -546,14 +527,16 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
546
527
 
547
528
  isStaticCall = isStaticCall || this.callContext.isStaticCall;
548
529
 
549
- await verifyCurrentClassId(
530
+ await this.contractSyncService.ensureContractSynced(
550
531
  targetContractAddress,
551
- this.aztecNode,
552
- this.contractDataProvider,
532
+ functionSelector,
533
+ this.utilityExecutor,
553
534
  this.anchorBlockHeader,
535
+ this.jobId,
536
+ this.scopes,
554
537
  );
555
538
 
556
- const targetArtifact = await this.contractDataProvider.getFunctionArtifactWithDebugMetadata(
539
+ const targetArtifact = await this.contractStore.getFunctionArtifactWithDebugMetadata(
557
540
  targetContractAddress,
558
541
  functionSelector,
559
542
  );
@@ -562,38 +545,41 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
562
545
 
563
546
  const derivedCallContext = await this.deriveCallContext(targetContractAddress, targetArtifact, isStaticCall);
564
547
 
565
- const privateExecutionOracle = new PrivateExecutionOracle(
548
+ const privateExecutionOracle = new PrivateExecutionOracle({
566
549
  argsHash,
567
- derivedTxContext,
568
- derivedCallContext,
569
- this.anchorBlockHeader,
570
- this.authWitnesses,
571
- this.capsules,
572
- this.executionCache,
573
- this.noteCache,
574
- this.taggingIndexCache,
575
- this.contractDataProvider,
576
- this.noteDataProvider,
577
- this.keyStore,
578
- this.addressDataProvider,
579
- this.aztecNode,
580
- this.anchorBlockDataProvider,
581
- this.senderTaggingDataProvider,
582
- this.recipientTaggingDataProvider,
583
- this.capsuleDataProvider,
584
- this.privateEventDataProvider,
585
- this.totalPublicCalldataCount,
550
+ txContext: derivedTxContext,
551
+ callContext: derivedCallContext,
552
+ anchorBlockHeader: this.anchorBlockHeader,
553
+ utilityExecutor: this.utilityExecutor,
554
+ authWitnesses: this.authWitnesses,
555
+ capsules: this.capsules,
556
+ executionCache: this.executionCache,
557
+ noteCache: this.noteCache,
558
+ taggingIndexCache: this.taggingIndexCache,
559
+ contractStore: this.contractStore,
560
+ noteStore: this.noteStore,
561
+ keyStore: this.keyStore,
562
+ addressStore: this.addressStore,
563
+ aztecNode: this.aztecNode,
564
+ senderTaggingStore: this.senderTaggingStore,
565
+ recipientTaggingStore: this.recipientTaggingStore,
566
+ senderAddressBookStore: this.senderAddressBookStore,
567
+ capsuleStore: this.capsuleStore,
568
+ privateEventStore: this.privateEventStore,
569
+ contractSyncService: this.contractSyncService,
570
+ jobId: this.jobId,
571
+ totalPublicCalldataCount: this.totalPublicCalldataCount,
586
572
  sideEffectCounter,
587
- this.log,
588
- this.scopes,
589
- this.senderForTags,
590
- this.simulator,
591
- );
573
+ log: this.log,
574
+ scopes: this.scopes,
575
+ senderForTags: this.senderForTags,
576
+ simulator: this.simulator!,
577
+ });
592
578
 
593
579
  const setupTime = simulatorSetupTimer.ms();
594
580
 
595
581
  const childExecutionResult = await executePrivateFunction(
596
- this.simulator,
582
+ this.simulator!,
597
583
  privateExecutionOracle,
598
584
  targetArtifact,
599
585
  targetContractAddress,
@@ -694,7 +680,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
694
680
  }
695
681
 
696
682
  public getDebugFunctionName() {
697
- return this.contractDataProvider.getDebugFunctionName(this.contractAddress, this.callContext.functionSelector);
683
+ return this.contractStore.getDebugFunctionName(this.contractAddress, this.callContext.functionSelector);
698
684
  }
699
685
 
700
686
  public utilityEmitOffchainEffect(data: Fr[]): Promise<void> {