@aztec/pxe 0.0.1-fake-c83136db25 → 0.0.2-commit.217f559981

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 (418) 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.d.ts +1 -1
  5. package/dest/bin/check_oracle_version.js +105 -15
  6. package/dest/block_synchronizer/block_synchronizer.d.ts +45 -0
  7. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -0
  8. package/dest/block_synchronizer/block_synchronizer.js +153 -0
  9. package/dest/block_synchronizer/index.d.ts +2 -0
  10. package/dest/block_synchronizer/index.d.ts.map +1 -0
  11. package/dest/block_synchronizer/index.js +1 -0
  12. package/dest/config/index.d.ts +6 -12
  13. package/dest/config/index.d.ts.map +1 -1
  14. package/dest/config/index.js +24 -13
  15. package/dest/config/package_info.d.ts +1 -1
  16. package/dest/config/package_info.js +1 -1
  17. package/dest/contract_function_simulator/benchmarked_node.d.ts +9 -0
  18. package/dest/contract_function_simulator/benchmarked_node.d.ts.map +1 -0
  19. package/dest/contract_function_simulator/benchmarked_node.js +77 -0
  20. package/dest/contract_function_simulator/contract_function_simulator.d.ts +78 -26
  21. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  22. package/dest/contract_function_simulator/contract_function_simulator.js +224 -80
  23. package/dest/contract_function_simulator/execution_note_cache.d.ts +25 -14
  24. package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
  25. package/dest/contract_function_simulator/execution_note_cache.js +59 -34
  26. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +2 -2
  27. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -1
  28. package/dest/contract_function_simulator/execution_tagging_index_cache.js +1 -1
  29. package/dest/contract_function_simulator/hashed_values_cache.d.ts +2 -2
  30. package/dest/contract_function_simulator/hashed_values_cache.d.ts.map +1 -1
  31. package/dest/contract_function_simulator/index.d.ts +2 -2
  32. package/dest/contract_function_simulator/index.d.ts.map +1 -1
  33. package/dest/contract_function_simulator/index.js +1 -1
  34. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +5 -4
  35. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
  36. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +7 -4
  37. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +5 -4
  38. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts.map +1 -1
  39. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +7 -6
  40. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +3 -3
  41. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -1
  42. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +1 -1
  43. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +7 -5
  44. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
  45. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +13 -4
  46. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +4 -10
  47. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -1
  48. package/dest/contract_function_simulator/noir-structs/utility_context.js +7 -18
  49. package/dest/contract_function_simulator/oracle/index.d.ts +1 -1
  50. package/dest/contract_function_simulator/oracle/interfaces.d.ts +30 -20
  51. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
  52. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +2 -2
  53. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -1
  54. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.js +1 -1
  55. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +14 -8
  56. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -1
  57. package/dest/contract_function_simulator/oracle/note_packing_utils.js +16 -11
  58. package/dest/contract_function_simulator/oracle/oracle.d.ts +15 -12
  59. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
  60. package/dest/contract_function_simulator/oracle/oracle.js +93 -53
  61. package/dest/contract_function_simulator/oracle/private_execution.d.ts +2 -27
  62. package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
  63. package/dest/contract_function_simulator/oracle/private_execution.js +2 -38
  64. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +56 -52
  65. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  66. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +117 -63
  67. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +114 -39
  68. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  69. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +214 -86
  70. package/dest/contract_function_simulator/pick_notes.d.ts +2 -2
  71. package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -1
  72. package/dest/contract_function_simulator/pick_notes.js +1 -1
  73. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +4 -4
  74. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -1
  75. package/dest/contract_function_simulator/proxied_contract_data_source.js +23 -5
  76. package/dest/contract_logging.d.ts +22 -0
  77. package/dest/contract_logging.d.ts.map +1 -0
  78. package/dest/contract_logging.js +23 -0
  79. package/dest/contract_sync/contract_sync_service.d.ts +43 -0
  80. package/dest/contract_sync/contract_sync_service.d.ts.map +1 -0
  81. package/dest/contract_sync/contract_sync_service.js +97 -0
  82. package/dest/contract_sync/helpers.d.ts +29 -0
  83. package/dest/contract_sync/helpers.d.ts.map +1 -0
  84. package/dest/contract_sync/helpers.js +55 -0
  85. package/dest/debug/pxe_debug_utils.d.ts +45 -0
  86. package/dest/debug/pxe_debug_utils.d.ts.map +1 -0
  87. package/dest/debug/pxe_debug_utils.js +48 -0
  88. package/dest/entrypoints/client/bundle/index.d.ts +4 -2
  89. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  90. package/dest/entrypoints/client/bundle/index.js +3 -1
  91. package/dest/entrypoints/client/bundle/utils.d.ts +1 -1
  92. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  93. package/dest/entrypoints/client/bundle/utils.js +33 -10
  94. package/dest/entrypoints/client/lazy/index.d.ts +4 -2
  95. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  96. package/dest/entrypoints/client/lazy/index.js +3 -1
  97. package/dest/entrypoints/client/lazy/utils.d.ts +2 -2
  98. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  99. package/dest/entrypoints/client/lazy/utils.js +34 -11
  100. package/dest/entrypoints/pxe_creation_options.d.ts +7 -3
  101. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  102. package/dest/entrypoints/server/index.d.ts +6 -2
  103. package/dest/entrypoints/server/index.d.ts.map +1 -1
  104. package/dest/entrypoints/server/index.js +5 -1
  105. package/dest/entrypoints/server/utils.d.ts +1 -1
  106. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  107. package/dest/entrypoints/server/utils.js +40 -28
  108. package/dest/error_enriching.d.ts +4 -4
  109. package/dest/error_enriching.d.ts.map +1 -1
  110. package/dest/error_enriching.js +6 -6
  111. package/dest/events/event_service.d.ts +15 -0
  112. package/dest/events/event_service.d.ts.map +1 -0
  113. package/dest/events/event_service.js +44 -0
  114. package/dest/events/index.d.ts +2 -0
  115. package/dest/events/index.d.ts.map +1 -0
  116. package/dest/events/index.js +1 -0
  117. package/dest/events/private_event_filter_validator.d.ts +9 -0
  118. package/dest/events/private_event_filter_validator.d.ts.map +1 -0
  119. package/dest/events/private_event_filter_validator.js +38 -0
  120. package/dest/job_coordinator/job_coordinator.d.ts +75 -0
  121. package/dest/job_coordinator/job_coordinator.d.ts.map +1 -0
  122. package/dest/job_coordinator/job_coordinator.js +94 -0
  123. package/dest/logs/log_service.d.ts +29 -0
  124. package/dest/logs/log_service.d.ts.map +1 -0
  125. package/dest/logs/log_service.js +118 -0
  126. package/dest/notes/index.d.ts +2 -0
  127. package/dest/notes/index.d.ts.map +1 -0
  128. package/dest/notes/index.js +1 -0
  129. package/dest/notes/note_service.d.ts +49 -0
  130. package/dest/notes/note_service.d.ts.map +1 -0
  131. package/dest/notes/note_service.js +148 -0
  132. package/dest/notes_filter.d.ts +25 -0
  133. package/dest/notes_filter.d.ts.map +1 -0
  134. package/dest/notes_filter.js +4 -0
  135. package/dest/oracle_version.d.ts +3 -3
  136. package/dest/oracle_version.d.ts.map +1 -1
  137. package/dest/oracle_version.js +4 -3
  138. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts +4 -0
  139. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts.map +1 -0
  140. package/dest/private_kernel/hints/{compute_tx_include_by_timestamp.js → compute_tx_expiration_timestamp.js} +12 -12
  141. package/dest/private_kernel/hints/index.d.ts +3 -3
  142. package/dest/private_kernel/hints/index.d.ts.map +1 -1
  143. package/dest/private_kernel/hints/index.js +2 -2
  144. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +28 -0
  145. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -0
  146. package/dest/private_kernel/hints/{build_private_kernel_reset_private_inputs.js → private_kernel_reset_private_inputs_builder.js} +22 -16
  147. package/dest/private_kernel/index.d.ts +1 -1
  148. package/dest/private_kernel/private_kernel_execution_prover.d.ts +3 -2
  149. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  150. package/dest/private_kernel/private_kernel_execution_prover.js +23 -23
  151. package/dest/private_kernel/private_kernel_oracle.d.ts +26 -25
  152. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  153. package/dest/private_kernel/private_kernel_oracle.js +94 -2
  154. package/dest/pxe.d.ts +120 -103
  155. package/dest/pxe.d.ts.map +1 -1
  156. package/dest/pxe.js +260 -275
  157. package/dest/storage/address_store/address_store.d.ts +11 -0
  158. package/dest/storage/address_store/address_store.d.ts.map +1 -0
  159. package/dest/storage/{address_data_provider/address_data_provider.js → address_store/address_store.js} +13 -12
  160. package/dest/storage/address_store/index.d.ts +2 -0
  161. package/dest/storage/address_store/index.d.ts.map +1 -0
  162. package/dest/storage/address_store/index.js +1 -0
  163. package/dest/storage/anchor_block_store/anchor_block_store.d.ts +17 -0
  164. package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -0
  165. package/dest/storage/{sync_data_provider/sync_data_provider.js → anchor_block_store/anchor_block_store.js} +10 -10
  166. package/dest/storage/anchor_block_store/index.d.ts +2 -0
  167. package/dest/storage/anchor_block_store/index.d.ts.map +1 -0
  168. package/dest/storage/anchor_block_store/index.js +1 -0
  169. package/dest/storage/capsule_store/capsule_store.d.ts +72 -0
  170. package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -0
  171. package/dest/storage/capsule_store/capsule_store.js +253 -0
  172. package/dest/storage/capsule_store/index.d.ts +2 -0
  173. package/dest/storage/capsule_store/index.d.ts.map +1 -0
  174. package/dest/storage/capsule_store/index.js +1 -0
  175. package/dest/storage/contract_store/contract_store.d.ts +93 -0
  176. package/dest/storage/contract_store/contract_store.d.ts.map +1 -0
  177. package/dest/storage/contract_store/contract_store.js +309 -0
  178. package/dest/storage/contract_store/index.d.ts +2 -0
  179. package/dest/storage/contract_store/index.d.ts.map +1 -0
  180. package/dest/storage/contract_store/index.js +1 -0
  181. package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.d.ts +1 -1
  182. package/dest/storage/contract_store/private_functions_tree.d.ts.map +1 -0
  183. package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.js +1 -1
  184. package/dest/storage/index.d.ts +8 -8
  185. package/dest/storage/index.d.ts.map +1 -1
  186. package/dest/storage/index.js +7 -7
  187. package/dest/storage/metadata.d.ts +2 -2
  188. package/dest/storage/metadata.js +1 -1
  189. package/dest/storage/note_store/index.d.ts +3 -0
  190. package/dest/storage/note_store/index.d.ts.map +1 -0
  191. package/dest/storage/note_store/index.js +2 -0
  192. package/dest/storage/note_store/note_store.d.ts +83 -0
  193. package/dest/storage/note_store/note_store.d.ts.map +1 -0
  194. package/dest/storage/note_store/note_store.js +343 -0
  195. package/dest/storage/note_store/stored_note.d.ts +16 -0
  196. package/dest/storage/note_store/stored_note.d.ts.map +1 -0
  197. package/dest/storage/note_store/stored_note.js +43 -0
  198. package/dest/storage/private_event_store/private_event_store.d.ts +91 -0
  199. package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -0
  200. package/dest/storage/private_event_store/private_event_store.js +273 -0
  201. package/dest/storage/private_event_store/stored_private_event.d.ts +23 -0
  202. package/dest/storage/private_event_store/stored_private_event.d.ts.map +1 -0
  203. package/dest/storage/private_event_store/stored_private_event.js +56 -0
  204. package/dest/storage/tagging_store/index.d.ts +4 -0
  205. package/dest/storage/tagging_store/index.d.ts.map +1 -0
  206. package/dest/storage/tagging_store/index.js +3 -0
  207. package/dest/storage/tagging_store/recipient_tagging_store.d.ts +28 -0
  208. package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -0
  209. package/dest/storage/tagging_store/recipient_tagging_store.js +111 -0
  210. package/dest/storage/tagging_store/sender_address_book_store.d.ts +14 -0
  211. package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +1 -0
  212. package/dest/storage/tagging_store/sender_address_book_store.js +36 -0
  213. package/dest/storage/tagging_store/sender_tagging_store.d.ts +77 -0
  214. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -0
  215. package/dest/storage/tagging_store/sender_tagging_store.js +348 -0
  216. package/dest/tagging/constants.d.ts +2 -2
  217. package/dest/tagging/constants.d.ts.map +1 -1
  218. package/dest/tagging/constants.js +10 -2
  219. package/dest/tagging/get_all_logs_by_tags.d.ts +24 -0
  220. package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -0
  221. package/dest/tagging/get_all_logs_by_tags.js +60 -0
  222. package/dest/tagging/index.d.ts +16 -6
  223. package/dest/tagging/index.d.ts.map +1 -1
  224. package/dest/tagging/index.js +15 -5
  225. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +15 -0
  226. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +1 -0
  227. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +99 -0
  228. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts +12 -0
  229. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts.map +1 -0
  230. package/dest/tagging/recipient_sync/utils/find_highest_indexes.js +20 -0
  231. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +15 -0
  232. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +1 -0
  233. package/dest/tagging/recipient_sync/utils/load_logs_for_range.js +32 -0
  234. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +21 -0
  235. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -0
  236. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +74 -0
  237. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +11 -0
  238. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -0
  239. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +29 -0
  240. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +21 -0
  241. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -0
  242. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +60 -0
  243. package/package.json +29 -19
  244. package/src/access_scopes.ts +9 -0
  245. package/src/bin/check_oracle_version.ts +131 -20
  246. package/src/block_synchronizer/block_synchronizer.ts +178 -0
  247. package/src/block_synchronizer/index.ts +1 -0
  248. package/src/config/index.ts +24 -25
  249. package/src/config/package_info.ts +1 -1
  250. package/src/contract_function_simulator/benchmarked_node.ts +103 -0
  251. package/src/contract_function_simulator/contract_function_simulator.ts +394 -113
  252. package/src/contract_function_simulator/execution_note_cache.ts +58 -28
  253. package/src/contract_function_simulator/execution_tagging_index_cache.ts +1 -1
  254. package/src/contract_function_simulator/hashed_values_cache.ts +1 -1
  255. package/src/contract_function_simulator/index.ts +1 -1
  256. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +7 -3
  257. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +6 -5
  258. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +2 -2
  259. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +15 -3
  260. package/src/contract_function_simulator/noir-structs/utility_context.ts +6 -25
  261. package/src/contract_function_simulator/oracle/interfaces.ts +43 -18
  262. package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +1 -1
  263. package/src/contract_function_simulator/oracle/note_packing_utils.ts +30 -14
  264. package/src/contract_function_simulator/oracle/oracle.ts +111 -49
  265. package/src/contract_function_simulator/oracle/private_execution.ts +2 -68
  266. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +163 -98
  267. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +350 -91
  268. package/src/contract_function_simulator/pick_notes.ts +1 -1
  269. package/src/contract_function_simulator/proxied_contract_data_source.ts +24 -7
  270. package/src/contract_logging.ts +39 -0
  271. package/src/contract_sync/contract_sync_service.ts +152 -0
  272. package/src/contract_sync/helpers.ts +98 -0
  273. package/src/debug/pxe_debug_utils.ts +93 -0
  274. package/src/entrypoints/client/bundle/index.ts +3 -1
  275. package/src/entrypoints/client/bundle/utils.ts +25 -18
  276. package/src/entrypoints/client/lazy/index.ts +3 -1
  277. package/src/entrypoints/client/lazy/utils.ts +26 -19
  278. package/src/entrypoints/pxe_creation_options.ts +6 -2
  279. package/src/entrypoints/server/index.ts +5 -1
  280. package/src/entrypoints/server/utils.ts +34 -56
  281. package/src/error_enriching.ts +7 -15
  282. package/src/events/event_service.ts +71 -0
  283. package/src/events/index.ts +1 -0
  284. package/src/events/private_event_filter_validator.ts +46 -0
  285. package/src/job_coordinator/job_coordinator.ts +150 -0
  286. package/src/logs/log_service.ts +208 -0
  287. package/src/notes/index.ts +1 -0
  288. package/src/notes/note_service.ts +196 -0
  289. package/src/notes_filter.ts +26 -0
  290. package/src/oracle_version.ts +4 -3
  291. package/src/private_kernel/hints/{compute_tx_include_by_timestamp.ts → compute_tx_expiration_timestamp.ts} +13 -13
  292. package/src/private_kernel/hints/index.ts +2 -2
  293. package/src/private_kernel/hints/{build_private_kernel_reset_private_inputs.ts → private_kernel_reset_private_inputs_builder.ts} +44 -37
  294. package/src/private_kernel/private_kernel_execution_prover.ts +27 -30
  295. package/src/private_kernel/private_kernel_oracle.ts +118 -37
  296. package/src/pxe.ts +402 -373
  297. package/src/storage/{address_data_provider/address_data_provider.ts → address_store/address_store.ts} +16 -16
  298. package/src/storage/address_store/index.ts +1 -0
  299. package/src/storage/{sync_data_provider/sync_data_provider.ts → anchor_block_store/anchor_block_store.ts} +10 -11
  300. package/src/storage/anchor_block_store/index.ts +1 -0
  301. package/src/storage/capsule_store/capsule_store.ts +315 -0
  302. package/src/storage/capsule_store/index.ts +1 -0
  303. package/src/storage/contract_store/contract_store.ts +429 -0
  304. package/src/storage/contract_store/index.ts +1 -0
  305. package/src/storage/{contract_data_provider → contract_store}/private_functions_tree.ts +1 -1
  306. package/src/storage/index.ts +7 -7
  307. package/src/storage/metadata.ts +1 -1
  308. package/src/storage/note_store/index.ts +2 -0
  309. package/src/storage/note_store/note_store.ts +418 -0
  310. package/src/storage/note_store/stored_note.ts +48 -0
  311. package/src/storage/private_event_store/private_event_store.ts +384 -0
  312. package/src/storage/private_event_store/stored_private_event.ts +73 -0
  313. package/src/storage/tagging_store/index.ts +3 -0
  314. package/src/storage/tagging_store/recipient_tagging_store.ts +139 -0
  315. package/src/storage/tagging_store/sender_address_book_store.ts +48 -0
  316. package/src/storage/tagging_store/sender_tagging_store.ts +429 -0
  317. package/src/tagging/constants.ts +10 -2
  318. package/src/tagging/get_all_logs_by_tags.ts +92 -0
  319. package/src/tagging/index.ts +18 -5
  320. package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +143 -0
  321. package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +34 -0
  322. package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +49 -0
  323. package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +99 -0
  324. package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +36 -0
  325. package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +84 -0
  326. package/dest/contract_function_simulator/execution_data_provider.d.ts +0 -274
  327. package/dest/contract_function_simulator/execution_data_provider.d.ts.map +0 -1
  328. package/dest/contract_function_simulator/execution_data_provider.js +0 -14
  329. package/dest/contract_function_simulator/proxied_node.d.ts +0 -9
  330. package/dest/contract_function_simulator/proxied_node.d.ts.map +0 -1
  331. package/dest/contract_function_simulator/proxied_node.js +0 -27
  332. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts +0 -122
  333. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts.map +0 -1
  334. package/dest/contract_function_simulator/pxe_oracle_interface.js +0 -688
  335. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts +0 -28
  336. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts.map +0 -1
  337. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts +0 -4
  338. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts.map +0 -1
  339. package/dest/private_kernel/private_kernel_oracle_impl.d.ts +0 -45
  340. package/dest/private_kernel/private_kernel_oracle_impl.d.ts.map +0 -1
  341. package/dest/private_kernel/private_kernel_oracle_impl.js +0 -86
  342. package/dest/storage/address_data_provider/address_data_provider.d.ts +0 -11
  343. package/dest/storage/address_data_provider/address_data_provider.d.ts.map +0 -1
  344. package/dest/storage/address_data_provider/index.d.ts +0 -2
  345. package/dest/storage/address_data_provider/index.d.ts.map +0 -1
  346. package/dest/storage/address_data_provider/index.js +0 -1
  347. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts +0 -25
  348. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts.map +0 -1
  349. package/dest/storage/capsule_data_provider/capsule_data_provider.js +0 -118
  350. package/dest/storage/capsule_data_provider/index.d.ts +0 -2
  351. package/dest/storage/capsule_data_provider/index.d.ts.map +0 -1
  352. package/dest/storage/capsule_data_provider/index.js +0 -1
  353. package/dest/storage/contract_data_provider/contract_data_provider.d.ts +0 -74
  354. package/dest/storage/contract_data_provider/contract_data_provider.d.ts.map +0 -1
  355. package/dest/storage/contract_data_provider/contract_data_provider.js +0 -205
  356. package/dest/storage/contract_data_provider/index.d.ts +0 -2
  357. package/dest/storage/contract_data_provider/index.d.ts.map +0 -1
  358. package/dest/storage/contract_data_provider/index.js +0 -1
  359. package/dest/storage/contract_data_provider/private_functions_tree.d.ts.map +0 -1
  360. package/dest/storage/note_data_provider/index.d.ts +0 -3
  361. package/dest/storage/note_data_provider/index.d.ts.map +0 -1
  362. package/dest/storage/note_data_provider/index.js +0 -2
  363. package/dest/storage/note_data_provider/note_dao.d.ts +0 -100
  364. package/dest/storage/note_data_provider/note_dao.d.ts.map +0 -1
  365. package/dest/storage/note_data_provider/note_dao.js +0 -102
  366. package/dest/storage/note_data_provider/note_data_provider.d.ts +0 -83
  367. package/dest/storage/note_data_provider/note_data_provider.d.ts.map +0 -1
  368. package/dest/storage/note_data_provider/note_data_provider.js +0 -308
  369. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts +0 -35
  370. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts.map +0 -1
  371. package/dest/storage/private_event_data_provider/private_event_data_provider.js +0 -93
  372. package/dest/storage/sync_data_provider/index.d.ts +0 -2
  373. package/dest/storage/sync_data_provider/index.d.ts.map +0 -1
  374. package/dest/storage/sync_data_provider/index.js +0 -1
  375. package/dest/storage/sync_data_provider/sync_data_provider.d.ts +0 -10
  376. package/dest/storage/sync_data_provider/sync_data_provider.d.ts.map +0 -1
  377. package/dest/storage/tagging_data_provider/index.d.ts +0 -2
  378. package/dest/storage/tagging_data_provider/index.d.ts.map +0 -1
  379. package/dest/storage/tagging_data_provider/index.js +0 -1
  380. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts +0 -40
  381. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts.map +0 -1
  382. package/dest/storage/tagging_data_provider/tagging_data_provider.js +0 -89
  383. package/dest/synchronizer/index.d.ts +0 -2
  384. package/dest/synchronizer/index.d.ts.map +0 -1
  385. package/dest/synchronizer/index.js +0 -1
  386. package/dest/synchronizer/synchronizer.d.ts +0 -35
  387. package/dest/synchronizer/synchronizer.d.ts.map +0 -1
  388. package/dest/synchronizer/synchronizer.js +0 -101
  389. package/dest/tagging/siloed_tag.d.ts +0 -14
  390. package/dest/tagging/siloed_tag.d.ts.map +0 -1
  391. package/dest/tagging/siloed_tag.js +0 -20
  392. package/dest/tagging/tag.d.ts +0 -12
  393. package/dest/tagging/tag.d.ts.map +0 -1
  394. package/dest/tagging/tag.js +0 -17
  395. package/dest/tagging/utils.d.ts +0 -18
  396. package/dest/tagging/utils.d.ts.map +0 -1
  397. package/dest/tagging/utils.js +0 -24
  398. package/src/contract_function_simulator/execution_data_provider.ts +0 -343
  399. package/src/contract_function_simulator/proxied_node.ts +0 -33
  400. package/src/contract_function_simulator/pxe_oracle_interface.ts +0 -1001
  401. package/src/private_kernel/private_kernel_oracle_impl.ts +0 -132
  402. package/src/storage/address_data_provider/index.ts +0 -1
  403. package/src/storage/capsule_data_provider/capsule_data_provider.ts +0 -147
  404. package/src/storage/capsule_data_provider/index.ts +0 -1
  405. package/src/storage/contract_data_provider/contract_data_provider.ts +0 -294
  406. package/src/storage/contract_data_provider/index.ts +0 -1
  407. package/src/storage/note_data_provider/index.ts +0 -2
  408. package/src/storage/note_data_provider/note_dao.ts +0 -154
  409. package/src/storage/note_data_provider/note_data_provider.ts +0 -393
  410. package/src/storage/private_event_data_provider/private_event_data_provider.ts +0 -128
  411. package/src/storage/sync_data_provider/index.ts +0 -1
  412. package/src/storage/tagging_data_provider/index.ts +0 -1
  413. package/src/storage/tagging_data_provider/tagging_data_provider.ts +0 -120
  414. package/src/synchronizer/index.ts +0 -1
  415. package/src/synchronizer/synchronizer.ts +0 -120
  416. package/src/tagging/siloed_tag.ts +0 -22
  417. package/src/tagging/tag.ts +0 -16
  418. package/src/tagging/utils.ts +0 -31
@@ -1,40 +1,60 @@
1
1
  import { MAX_FR_CALLDATA_TO_ALL_ENQUEUED_CALLS, PRIVATE_CONTEXT_INPUTS_LENGTH } from '@aztec/constants';
2
- import { Fr } from '@aztec/foundation/fields';
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
5
  import { type CircuitSimulator, toACVMWitness } from '@aztec/simulator/client';
6
6
  import {
7
7
  type FunctionAbi,
8
8
  type FunctionArtifact,
9
+ type FunctionCall,
9
10
  FunctionSelector,
10
11
  type NoteSelector,
11
12
  countArgumentsSize,
12
13
  } from '@aztec/stdlib/abi';
13
- import type { AuthWitness } from '@aztec/stdlib/auth-witness';
14
14
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
15
- import { computeUniqueNoteHash, siloNoteHash, siloNullifier } from '@aztec/stdlib/hash';
15
+ import { siloNullifier } from '@aztec/stdlib/hash';
16
16
  import { PrivateContextInputs } from '@aztec/stdlib/kernel';
17
- import type { ContractClassLog, DirectionalAppTaggingSecret, PreTag } from '@aztec/stdlib/logs';
17
+ import { type ContractClassLog, DirectionalAppTaggingSecret, type PreTag } from '@aztec/stdlib/logs';
18
+ import { Tag } from '@aztec/stdlib/logs';
18
19
  import { Note, type NoteStatus } from '@aztec/stdlib/note';
19
20
  import {
20
- type BlockHeader,
21
21
  CallContext,
22
- Capsule,
23
22
  CountedContractClassLog,
24
23
  NoteAndSlot,
25
24
  PrivateCallExecutionResult,
26
25
  type TxContext,
27
26
  } from '@aztec/stdlib/tx';
28
27
 
29
- import { Tag } from '../../tagging/tag.js';
30
- import type { ExecutionDataProvider } from '../execution_data_provider.js';
28
+ import type { AccessScopes } from '../../access_scopes.js';
29
+ import type { ContractSyncService } from '../../contract_sync/contract_sync_service.js';
30
+ import { NoteService } from '../../notes/note_service.js';
31
+ import type { SenderTaggingStore } from '../../storage/tagging_store/sender_tagging_store.js';
32
+ import { syncSenderTaggingIndexes } from '../../tagging/index.js';
31
33
  import type { ExecutionNoteCache } from '../execution_note_cache.js';
32
34
  import { ExecutionTaggingIndexCache } from '../execution_tagging_index_cache.js';
33
35
  import type { HashedValuesCache } from '../hashed_values_cache.js';
34
36
  import { pickNotes } from '../pick_notes.js';
35
37
  import type { IPrivateExecutionOracle, NoteData } from './interfaces.js';
36
- import { executePrivateFunction, verifyCurrentClassId } from './private_execution.js';
37
- 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
+ };
38
58
 
39
59
  /**
40
60
  * The execution oracle for the private part of a transaction.
@@ -51,42 +71,44 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
51
71
  * Users can also use this to get a clearer idea of what's happened during a simulation.
52
72
  */
53
73
  private newNotes: NoteAndSlot[] = [];
54
- /**
55
- * Notes from previous transactions that are returned to the oracle call `getNotes` during this execution.
56
- * The mapping maps from the unique siloed note hash to the index for notes created in private executions.
57
- * It maps from siloed note hash to the index for notes created by public functions.
58
- *
59
- * They are not part of the ExecutionNoteCache and being forwarded to nested contexts via `extend()`
60
- * because these notes are meant to be maintained on a per-call basis
61
- * They should act as references for the read requests output by an app circuit via public inputs.
62
- */
63
- private noteHashLeafIndexMap: Map<bigint, bigint> = new Map();
64
74
  private noteHashNullifierCounterMap: Map<number, number> = new Map();
65
75
  private contractClassLogs: CountedContractClassLog[] = [];
66
76
  private offchainEffects: { data: Fr[] }[] = [];
67
77
  private nestedExecutionResults: PrivateCallExecutionResult[] = [];
68
78
 
69
- constructor(
70
- private readonly argsHash: Fr,
71
- private readonly txContext: TxContext,
72
- private readonly callContext: CallContext,
73
- /** Header of a block whose state is used during private execution (not the block the transaction is included in). */
74
- protected readonly anchorBlockHeader: BlockHeader,
75
- /** List of transient auth witnesses to be used during this simulation */
76
- authWitnesses: AuthWitness[],
77
- capsules: Capsule[],
78
- private readonly executionCache: HashedValuesCache,
79
- private readonly noteCache: ExecutionNoteCache,
80
- private readonly taggingIndexCache: ExecutionTaggingIndexCache,
81
- executionDataProvider: ExecutionDataProvider,
82
- private totalPublicCalldataCount: number = 0,
83
- protected sideEffectCounter: number = 0,
84
- log = createLogger('simulator:client_execution_context'),
85
- scopes?: AztecAddress[],
86
- private senderForTags?: AztecAddress,
87
- private simulator?: CircuitSimulator,
88
- ) {
89
- super(callContext.contractAddress, authWitnesses, capsules, executionDataProvider, log, scopes);
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;
90
112
  }
91
113
 
92
114
  public getPrivateContextInputs(): PrivateContextInputs {
@@ -118,14 +140,6 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
118
140
  return toACVMWitness(0, fields);
119
141
  }
120
142
 
121
- /**
122
- * The KernelProver will use this to fully populate witnesses and provide hints to the kernel circuit
123
- * regarding which note hash each settled read request corresponds to.
124
- */
125
- public getNoteHashLeafIndexMap() {
126
- return this.noteHashLeafIndexMap;
127
- }
128
-
129
143
  /**
130
144
  * Get the data for the newly created notes.
131
145
  */
@@ -152,7 +166,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
152
166
  }
153
167
 
154
168
  /**
155
- * Returns the pre tags that were used in this execution (and that need to be stored in the db).
169
+ * Returns the pre-tags that were used in this execution (and that need to be stored in the db).
156
170
  */
157
171
  public getUsedPreTags(): PreTag[] {
158
172
  return this.taggingIndexCache.getUsedPreTags();
@@ -202,11 +216,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
202
216
  * @returns An app tag to be used in a log.
203
217
  */
204
218
  public async privateGetNextAppTagAsSender(sender: AztecAddress, recipient: AztecAddress): Promise<Tag> {
205
- const secret = await this.executionDataProvider.calculateDirectionalAppTaggingSecret(
206
- this.contractAddress,
207
- sender,
208
- recipient,
209
- );
219
+ const secret = await this.#calculateDirectionalAppTaggingSecret(this.contractAddress, sender, recipient);
210
220
 
211
221
  const index = await this.#getIndexToUseForSecret(secret);
212
222
  this.log.debug(
@@ -217,6 +227,22 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
217
227
  return Tag.compute({ secret, index });
218
228
  }
219
229
 
230
+ async #calculateDirectionalAppTaggingSecret(
231
+ contractAddress: AztecAddress,
232
+ sender: AztecAddress,
233
+ recipient: AztecAddress,
234
+ ) {
235
+ const senderCompleteAddress = await this.getCompleteAddressOrFail(sender);
236
+ const senderIvsk = await this.keyStore.getMasterIncomingViewingSecretKey(sender);
237
+ return DirectionalAppTaggingSecret.compute(
238
+ senderCompleteAddress,
239
+ senderIvsk,
240
+ recipient,
241
+ contractAddress,
242
+ recipient,
243
+ );
244
+ }
245
+
220
246
  async #getIndexToUseForSecret(secret: DirectionalAppTaggingSecret): Promise<number> {
221
247
  // If we have the tagging index in the cache, we use it. If not we obtain it from the execution data provider.
222
248
  const lastUsedIndexInTx = this.taggingIndexCache.getLastUsedIndex(secret);
@@ -227,8 +253,16 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
227
253
  // This is a tagging secret we've not yet used in this tx, so first sync our store to make sure its indices
228
254
  // are up to date. We do this here because this store is not synced as part of the global sync because
229
255
  // that'd be wasteful as most tagging secrets are not used in each tx.
230
- await this.executionDataProvider.syncTaggedLogsAsSender(secret, this.contractAddress);
231
- const lastUsedIndex = await this.executionDataProvider.getLastUsedIndexAsSender(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);
232
266
  // If lastUsedIndex is undefined, we've never used this secret, so start from 0
233
267
  // Otherwise, the next index to use is one past the last used index
234
268
  return lastUsedIndex === undefined ? 0 : lastUsedIndex + 1;
@@ -282,6 +316,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
282
316
  * Real notes coming from DB will have a leafIndex which
283
317
  * represents their index in the note hash tree.
284
318
  *
319
+ * @param owner - The owner of the notes. If undefined, returns notes for all owners.
285
320
  * @param storageSlot - The storage slot.
286
321
  * @param numSelects - The number of valid selects in selectBy and selectValues.
287
322
  * @param selectBy - An array of indices of the fields to selects.
@@ -295,6 +330,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
295
330
  * @returns Array of note data.
296
331
  */
297
332
  public override async utilityGetNotes(
333
+ owner: AztecAddress | undefined,
298
334
  storageSlot: Fr,
299
335
  numSelects: number,
300
336
  selectByIndexes: number[],
@@ -311,11 +347,14 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
311
347
  status: NoteStatus,
312
348
  ): Promise<NoteData[]> {
313
349
  // Nullified pending notes are already removed from the list.
314
- const pendingNotes = this.noteCache.getNotes(this.callContext.contractAddress, storageSlot);
350
+ const pendingNotes = this.noteCache.getNotes(this.callContext.contractAddress, owner, storageSlot);
315
351
 
316
352
  const pendingNullifiers = this.noteCache.getNullifiers(this.callContext.contractAddress);
317
- const dbNotes = await this.executionDataProvider.getNotes(
353
+
354
+ const noteService = new NoteService(this.noteStore, this.aztecNode, this.anchorBlockHeader, this.jobId);
355
+ const dbNotes = await noteService.getNotes(
318
356
  this.callContext.contractAddress,
357
+ owner,
319
358
  storageSlot,
320
359
  status,
321
360
  this.scopes,
@@ -342,38 +381,24 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
342
381
  .join(', ')}`,
343
382
  );
344
383
 
345
- const noteHashesAndIndexes = await Promise.all(
346
- notes.map(async n => {
347
- if (n.index !== undefined) {
348
- const siloedNoteHash = await siloNoteHash(n.contractAddress, n.noteHash);
349
- const uniqueNoteHash = await computeUniqueNoteHash(n.noteNonce, siloedNoteHash);
350
-
351
- return { hash: uniqueNoteHash, index: n.index };
352
- }
353
- }),
354
- );
355
-
356
- noteHashesAndIndexes
357
- .filter(n => n !== undefined)
358
- .forEach(n => {
359
- this.noteHashLeafIndexMap.set(n!.hash.toBigInt(), n!.index);
360
- });
361
-
362
384
  return notes;
363
385
  }
364
386
 
365
387
  /**
366
388
  * Keep track of the new note created during execution.
367
389
  * It can be used in subsequent calls (or transactions when chaining txs is possible).
368
- * @param contractAddress - The contract address.
390
+ * @param owner - The owner of the note.
369
391
  * @param storageSlot - The storage slot.
392
+ * @param randomness - The randomness injected into the note.
370
393
  * @param noteTypeId - The type ID of the note.
371
394
  * @param noteItems - The items to be included in a Note.
372
395
  * @param noteHash - A hash of the new note.
373
396
  * @returns
374
397
  */
375
398
  public privateNotifyCreatedNote(
399
+ owner: AztecAddress,
376
400
  storageSlot: Fr,
401
+ randomness: Fr,
377
402
  noteTypeId: NoteSelector,
378
403
  noteItems: Fr[],
379
404
  noteHash: Fr,
@@ -382,6 +407,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
382
407
  this.log.debug(`Notified of new note with inner hash ${noteHash}`, {
383
408
  contractAddress: this.callContext.contractAddress,
384
409
  storageSlot,
410
+ randomness,
385
411
  noteTypeId,
386
412
  counter,
387
413
  });
@@ -390,15 +416,18 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
390
416
  this.noteCache.addNewNote(
391
417
  {
392
418
  contractAddress: this.callContext.contractAddress,
419
+ owner,
393
420
  storageSlot,
421
+ randomness,
394
422
  noteNonce: Fr.ZERO, // Nonce cannot be known during private execution.
395
423
  note,
396
424
  siloedNullifier: undefined, // Siloed nullifier cannot be known for newly created note.
397
425
  noteHash,
426
+ isPending: true, // This note has just been created and hence is not settled yet.
398
427
  },
399
428
  counter,
400
429
  );
401
- this.newNotes.push(new NoteAndSlot(note, storageSlot, noteTypeId));
430
+ this.newNotes.push(NoteAndSlot.from({ note, storageSlot, randomness, noteTypeId }));
402
431
  }
403
432
 
404
433
  /**
@@ -429,6 +458,19 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
429
458
  return this.noteCache.nullifierCreated(this.callContext.contractAddress, innerNullifier);
430
459
  }
431
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
+
432
474
  /**
433
475
  * Emit a contract class log.
434
476
  * This fn exists because we only carry a poseidon hash through the kernels, and need to
@@ -485,9 +527,16 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
485
527
 
486
528
  isStaticCall = isStaticCall || this.callContext.isStaticCall;
487
529
 
488
- await verifyCurrentClassId(targetContractAddress, this.executionDataProvider, this.anchorBlockHeader);
530
+ await this.contractSyncService.ensureContractSynced(
531
+ targetContractAddress,
532
+ functionSelector,
533
+ this.utilityExecutor,
534
+ this.anchorBlockHeader,
535
+ this.jobId,
536
+ this.scopes,
537
+ );
489
538
 
490
- const targetArtifact = await this.executionDataProvider.getFunctionArtifact(
539
+ const targetArtifact = await this.contractStore.getFunctionArtifactWithDebugMetadata(
491
540
  targetContractAddress,
492
541
  functionSelector,
493
542
  );
@@ -496,29 +545,41 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
496
545
 
497
546
  const derivedCallContext = await this.deriveCallContext(targetContractAddress, targetArtifact, isStaticCall);
498
547
 
499
- const privateExecutionOracle = new PrivateExecutionOracle(
548
+ const privateExecutionOracle = new PrivateExecutionOracle({
500
549
  argsHash,
501
- derivedTxContext,
502
- derivedCallContext,
503
- this.anchorBlockHeader,
504
- this.authWitnesses,
505
- this.capsules,
506
- this.executionCache,
507
- this.noteCache,
508
- this.taggingIndexCache,
509
- this.executionDataProvider,
510
- 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,
511
572
  sideEffectCounter,
512
- this.log,
513
- this.scopes,
514
- this.senderForTags,
515
- this.simulator,
516
- );
573
+ log: this.log,
574
+ scopes: this.scopes,
575
+ senderForTags: this.senderForTags,
576
+ simulator: this.simulator!,
577
+ });
517
578
 
518
579
  const setupTime = simulatorSetupTimer.ms();
519
580
 
520
581
  const childExecutionResult = await executePrivateFunction(
521
- this.simulator,
582
+ this.simulator!,
522
583
  privateExecutionOracle,
523
584
  targetArtifact,
524
585
  targetContractAddress,
@@ -594,6 +655,10 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
594
655
  return this.noteCache.setMinRevertibleSideEffectCounter(minRevertibleSideEffectCounter);
595
656
  }
596
657
 
658
+ public privateIsSideEffectCounterRevertible(sideEffectCounter: number): Promise<boolean> {
659
+ return Promise.resolve(this.noteCache.isSideEffectCounterRevertible(sideEffectCounter));
660
+ }
661
+
597
662
  /**
598
663
  * Derives the call context for a nested execution.
599
664
  * @param targetContractAddress - The address of the contract being called.
@@ -615,7 +680,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
615
680
  }
616
681
 
617
682
  public getDebugFunctionName() {
618
- return this.executionDataProvider.getDebugFunctionName(this.contractAddress, this.callContext.functionSelector);
683
+ return this.contractStore.getDebugFunctionName(this.contractAddress, this.callContext.functionSelector);
619
684
  }
620
685
 
621
686
  public utilityEmitOffchainEffect(data: Fr[]): Promise<void> {