@aztec/pxe 0.0.1-commit.03f7ef2 → 0.0.1-commit.04852196a

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 (380) 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 +4 -2
  9. package/dest/config/index.d.ts.map +1 -1
  10. package/dest/config/index.js +18 -1
  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 +212 -92
  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/execution_tagging_index_cache.d.ts +5 -5
  22. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -1
  23. package/dest/contract_function_simulator/execution_tagging_index_cache.js +3 -3
  24. package/dest/contract_function_simulator/index.d.ts +2 -2
  25. package/dest/contract_function_simulator/index.d.ts.map +1 -1
  26. package/dest/contract_function_simulator/index.js +1 -1
  27. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +4 -3
  28. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
  29. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +7 -4
  30. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +3 -3
  31. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
  32. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +2 -2
  33. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +4 -10
  34. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -1
  35. package/dest/contract_function_simulator/noir-structs/utility_context.js +7 -18
  36. package/dest/contract_function_simulator/oracle/interfaces.d.ts +55 -47
  37. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
  38. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +3 -1
  39. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -1
  40. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +6 -6
  41. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -1
  42. package/dest/contract_function_simulator/oracle/note_packing_utils.js +8 -8
  43. package/dest/contract_function_simulator/oracle/oracle.d.ts +44 -42
  44. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
  45. package/dest/contract_function_simulator/oracle/oracle.js +178 -112
  46. package/dest/contract_function_simulator/oracle/private_execution.d.ts +2 -26
  47. package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
  48. package/dest/contract_function_simulator/oracle/private_execution.js +2 -38
  49. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +63 -63
  50. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  51. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +120 -88
  52. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +106 -70
  53. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  54. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +167 -145
  55. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +4 -4
  56. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -1
  57. package/dest/contract_function_simulator/proxied_contract_data_source.js +5 -5
  58. package/dest/contract_logging.d.ts +22 -0
  59. package/dest/contract_logging.d.ts.map +1 -0
  60. package/dest/contract_logging.js +23 -0
  61. package/dest/contract_sync/contract_sync_service.d.ts +43 -0
  62. package/dest/contract_sync/contract_sync_service.d.ts.map +1 -0
  63. package/dest/contract_sync/contract_sync_service.js +97 -0
  64. package/dest/contract_sync/helpers.d.ts +29 -0
  65. package/dest/contract_sync/helpers.d.ts.map +1 -0
  66. package/dest/contract_sync/helpers.js +55 -0
  67. package/dest/debug/pxe_debug_utils.d.ts +26 -12
  68. package/dest/debug/pxe_debug_utils.d.ts.map +1 -1
  69. package/dest/debug/pxe_debug_utils.js +30 -19
  70. package/dest/entrypoints/client/bundle/index.d.ts +4 -1
  71. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  72. package/dest/entrypoints/client/bundle/index.js +3 -0
  73. package/dest/entrypoints/client/bundle/utils.d.ts +1 -1
  74. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  75. package/dest/entrypoints/client/bundle/utils.js +31 -8
  76. package/dest/entrypoints/client/lazy/index.d.ts +4 -1
  77. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  78. package/dest/entrypoints/client/lazy/index.js +3 -0
  79. package/dest/entrypoints/client/lazy/utils.d.ts +2 -2
  80. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  81. package/dest/entrypoints/client/lazy/utils.js +32 -9
  82. package/dest/entrypoints/pxe_creation_options.d.ts +5 -3
  83. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  84. package/dest/entrypoints/server/index.d.ts +5 -1
  85. package/dest/entrypoints/server/index.d.ts.map +1 -1
  86. package/dest/entrypoints/server/index.js +4 -0
  87. package/dest/entrypoints/server/utils.d.ts +1 -1
  88. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  89. package/dest/entrypoints/server/utils.js +39 -16
  90. package/dest/error_enriching.d.ts +4 -4
  91. package/dest/error_enriching.d.ts.map +1 -1
  92. package/dest/error_enriching.js +6 -6
  93. package/dest/events/event_service.d.ts +8 -8
  94. package/dest/events/event_service.d.ts.map +1 -1
  95. package/dest/events/event_service.js +21 -24
  96. package/dest/events/private_event_filter_validator.d.ts +6 -6
  97. package/dest/events/private_event_filter_validator.d.ts.map +1 -1
  98. package/dest/events/private_event_filter_validator.js +5 -6
  99. package/dest/job_coordinator/job_coordinator.d.ts +75 -0
  100. package/dest/job_coordinator/job_coordinator.d.ts.map +1 -0
  101. package/dest/job_coordinator/job_coordinator.js +94 -0
  102. package/dest/logs/log_service.d.ts +18 -32
  103. package/dest/logs/log_service.d.ts.map +1 -1
  104. package/dest/logs/log_service.js +76 -197
  105. package/dest/notes/note_service.d.ts +13 -12
  106. package/dest/notes/note_service.d.ts.map +1 -1
  107. package/dest/notes/note_service.js +42 -46
  108. package/dest/notes_filter.d.ts +25 -0
  109. package/dest/notes_filter.d.ts.map +1 -0
  110. package/dest/notes_filter.js +4 -0
  111. package/dest/oracle_version.d.ts +3 -3
  112. package/dest/oracle_version.d.ts.map +1 -1
  113. package/dest/oracle_version.js +5 -4
  114. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts +4 -0
  115. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts.map +1 -0
  116. package/dest/private_kernel/hints/{compute_tx_include_by_timestamp.js → compute_tx_expiration_timestamp.js} +12 -12
  117. package/dest/private_kernel/hints/index.d.ts +3 -3
  118. package/dest/private_kernel/hints/index.d.ts.map +1 -1
  119. package/dest/private_kernel/hints/index.js +2 -2
  120. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +29 -0
  121. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -0
  122. package/dest/private_kernel/hints/{build_private_kernel_reset_private_inputs.js → private_kernel_reset_private_inputs_builder.js} +141 -74
  123. package/dest/private_kernel/hints/test_utils.d.ts +122 -0
  124. package/dest/private_kernel/hints/test_utils.d.ts.map +1 -0
  125. package/dest/private_kernel/hints/test_utils.js +203 -0
  126. package/dest/private_kernel/private_kernel_execution_prover.d.ts +3 -2
  127. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  128. package/dest/private_kernel/private_kernel_execution_prover.js +24 -17
  129. package/dest/private_kernel/private_kernel_oracle.d.ts +24 -24
  130. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  131. package/dest/private_kernel/private_kernel_oracle.js +94 -2
  132. package/dest/pxe.d.ts +87 -67
  133. package/dest/pxe.d.ts.map +1 -1
  134. package/dest/pxe.js +211 -189
  135. package/dest/storage/address_store/address_store.d.ts +11 -0
  136. package/dest/storage/address_store/address_store.d.ts.map +1 -0
  137. package/dest/storage/{address_data_provider/address_data_provider.js → address_store/address_store.js} +13 -12
  138. package/dest/storage/address_store/index.d.ts +2 -0
  139. package/dest/storage/address_store/index.d.ts.map +1 -0
  140. package/dest/storage/address_store/index.js +1 -0
  141. package/dest/storage/anchor_block_store/anchor_block_store.d.ts +17 -0
  142. package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -0
  143. package/dest/storage/{anchor_block_data_provider/anchor_block_data_provider.js → anchor_block_store/anchor_block_store.js} +9 -2
  144. package/dest/storage/anchor_block_store/index.d.ts +2 -0
  145. package/dest/storage/anchor_block_store/index.d.ts.map +1 -0
  146. package/dest/storage/anchor_block_store/index.js +1 -0
  147. package/dest/storage/capsule_store/capsule_store.d.ts +72 -0
  148. package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -0
  149. package/dest/storage/capsule_store/capsule_store.js +253 -0
  150. package/dest/storage/capsule_store/index.d.ts +2 -0
  151. package/dest/storage/capsule_store/index.d.ts.map +1 -0
  152. package/dest/storage/capsule_store/index.js +1 -0
  153. package/dest/storage/contract_store/contract_store.d.ts +93 -0
  154. package/dest/storage/contract_store/contract_store.d.ts.map +1 -0
  155. package/dest/storage/contract_store/contract_store.js +309 -0
  156. package/dest/storage/contract_store/index.d.ts +2 -0
  157. package/dest/storage/contract_store/index.d.ts.map +1 -0
  158. package/dest/storage/contract_store/index.js +1 -0
  159. package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.d.ts +1 -1
  160. package/dest/storage/contract_store/private_functions_tree.d.ts.map +1 -0
  161. package/dest/storage/index.d.ts +8 -8
  162. package/dest/storage/index.d.ts.map +1 -1
  163. package/dest/storage/index.js +7 -7
  164. package/dest/storage/metadata.d.ts +1 -1
  165. package/dest/storage/metadata.js +1 -1
  166. package/dest/storage/note_store/index.d.ts +3 -0
  167. package/dest/storage/note_store/index.d.ts.map +1 -0
  168. package/dest/storage/note_store/index.js +2 -0
  169. package/dest/storage/note_store/note_store.d.ts +83 -0
  170. package/dest/storage/note_store/note_store.d.ts.map +1 -0
  171. package/dest/storage/note_store/note_store.js +343 -0
  172. package/dest/storage/note_store/stored_note.d.ts +16 -0
  173. package/dest/storage/note_store/stored_note.d.ts.map +1 -0
  174. package/dest/storage/note_store/stored_note.js +43 -0
  175. package/dest/storage/private_event_store/private_event_store.d.ts +91 -0
  176. package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -0
  177. package/dest/storage/private_event_store/private_event_store.js +273 -0
  178. package/dest/storage/private_event_store/stored_private_event.d.ts +23 -0
  179. package/dest/storage/private_event_store/stored_private_event.d.ts.map +1 -0
  180. package/dest/storage/private_event_store/stored_private_event.js +56 -0
  181. package/dest/storage/tagging_store/index.d.ts +4 -0
  182. package/dest/storage/tagging_store/index.d.ts.map +1 -0
  183. package/dest/storage/tagging_store/index.js +3 -0
  184. package/dest/storage/tagging_store/recipient_tagging_store.d.ts +28 -0
  185. package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -0
  186. package/dest/storage/tagging_store/recipient_tagging_store.js +111 -0
  187. package/dest/storage/tagging_store/sender_address_book_store.d.ts +14 -0
  188. package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +1 -0
  189. package/dest/storage/tagging_store/sender_address_book_store.js +36 -0
  190. package/dest/storage/{tagging_data_provider/sender_tagging_data_provider.d.ts → tagging_store/sender_tagging_store.d.ts} +20 -10
  191. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -0
  192. package/dest/storage/tagging_store/sender_tagging_store.js +348 -0
  193. package/dest/tagging/constants.d.ts +2 -2
  194. package/dest/tagging/constants.d.ts.map +1 -1
  195. package/dest/tagging/constants.js +10 -3
  196. package/dest/tagging/get_all_logs_by_tags.d.ts +24 -0
  197. package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -0
  198. package/dest/tagging/get_all_logs_by_tags.js +60 -0
  199. package/dest/tagging/index.d.ts +16 -4
  200. package/dest/tagging/index.d.ts.map +1 -1
  201. package/dest/tagging/index.js +15 -3
  202. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +6 -6
  203. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +1 -1
  204. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +13 -13
  205. package/dest/tagging/recipient_sync/utils/find_highest_indexes.js +2 -2
  206. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +7 -7
  207. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +1 -1
  208. package/dest/tagging/recipient_sync/utils/load_logs_for_range.js +16 -12
  209. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +17 -0
  210. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -0
  211. package/dest/tagging/{sync → sender_sync}/sync_sender_tagging_indexes.js +9 -27
  212. package/dest/tagging/{sync → sender_sync}/utils/get_status_change_of_pending.d.ts +1 -1
  213. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -0
  214. package/dest/tagging/{sync → sender_sync}/utils/get_status_change_of_pending.js +5 -8
  215. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +18 -0
  216. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -0
  217. package/dest/tagging/{sync → sender_sync}/utils/load_and_store_new_tagging_indexes.js +25 -21
  218. package/package.json +27 -18
  219. package/src/access_scopes.ts +9 -0
  220. package/src/bin/check_oracle_version.ts +1 -0
  221. package/src/block_synchronizer/block_synchronizer.ts +99 -46
  222. package/src/config/index.ts +15 -1
  223. package/src/config/package_info.ts +1 -1
  224. package/src/contract_function_simulator/benchmarked_node.ts +103 -0
  225. package/src/contract_function_simulator/contract_function_simulator.ts +366 -156
  226. package/src/contract_function_simulator/execution_note_cache.ts +44 -25
  227. package/src/contract_function_simulator/execution_tagging_index_cache.ts +5 -5
  228. package/src/contract_function_simulator/index.ts +1 -1
  229. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +6 -2
  230. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +2 -2
  231. package/src/contract_function_simulator/noir-structs/utility_context.ts +6 -25
  232. package/src/contract_function_simulator/oracle/interfaces.ts +62 -49
  233. package/src/contract_function_simulator/oracle/note_packing_utils.ts +10 -10
  234. package/src/contract_function_simulator/oracle/oracle.ts +194 -134
  235. package/src/contract_function_simulator/oracle/private_execution.ts +2 -70
  236. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +157 -168
  237. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +245 -167
  238. package/src/contract_function_simulator/proxied_contract_data_source.ts +7 -7
  239. package/src/contract_logging.ts +39 -0
  240. package/src/contract_sync/contract_sync_service.ts +152 -0
  241. package/src/contract_sync/helpers.ts +98 -0
  242. package/src/debug/pxe_debug_utils.ts +65 -20
  243. package/src/entrypoints/client/bundle/index.ts +3 -0
  244. package/src/entrypoints/client/bundle/utils.ts +23 -16
  245. package/src/entrypoints/client/lazy/index.ts +3 -0
  246. package/src/entrypoints/client/lazy/utils.ts +24 -17
  247. package/src/entrypoints/pxe_creation_options.ts +4 -2
  248. package/src/entrypoints/server/index.ts +4 -0
  249. package/src/entrypoints/server/utils.ts +33 -41
  250. package/src/error_enriching.ts +7 -15
  251. package/src/events/event_service.ts +22 -28
  252. package/src/events/private_event_filter_validator.ts +4 -6
  253. package/src/job_coordinator/job_coordinator.ts +150 -0
  254. package/src/logs/log_service.ts +122 -273
  255. package/src/notes/note_service.ts +45 -49
  256. package/src/notes_filter.ts +26 -0
  257. package/src/oracle_version.ts +5 -4
  258. package/src/private_kernel/hints/{compute_tx_include_by_timestamp.ts → compute_tx_expiration_timestamp.ts} +13 -13
  259. package/src/private_kernel/hints/index.ts +2 -2
  260. package/src/private_kernel/hints/{build_private_kernel_reset_private_inputs.ts → private_kernel_reset_private_inputs_builder.ts} +196 -138
  261. package/src/private_kernel/hints/test_utils.ts +325 -0
  262. package/src/private_kernel/private_kernel_execution_prover.ts +27 -19
  263. package/src/private_kernel/private_kernel_oracle.ts +116 -36
  264. package/src/pxe.ts +339 -261
  265. package/src/storage/{address_data_provider/address_data_provider.ts → address_store/address_store.ts} +16 -16
  266. package/src/storage/address_store/index.ts +1 -0
  267. package/src/storage/{anchor_block_data_provider/anchor_block_data_provider.ts → anchor_block_store/anchor_block_store.ts} +9 -1
  268. package/src/storage/anchor_block_store/index.ts +1 -0
  269. package/src/storage/capsule_store/capsule_store.ts +315 -0
  270. package/src/storage/capsule_store/index.ts +1 -0
  271. package/src/storage/contract_store/contract_store.ts +429 -0
  272. package/src/storage/contract_store/index.ts +1 -0
  273. package/src/storage/index.ts +7 -7
  274. package/src/storage/metadata.ts +1 -1
  275. package/src/storage/note_store/index.ts +2 -0
  276. package/src/storage/note_store/note_store.ts +418 -0
  277. package/src/storage/note_store/stored_note.ts +48 -0
  278. package/src/storage/private_event_store/private_event_store.ts +384 -0
  279. package/src/storage/private_event_store/stored_private_event.ts +73 -0
  280. package/src/storage/tagging_store/index.ts +3 -0
  281. package/src/storage/tagging_store/recipient_tagging_store.ts +143 -0
  282. package/src/storage/tagging_store/sender_address_book_store.ts +48 -0
  283. package/src/storage/tagging_store/sender_tagging_store.ts +429 -0
  284. package/src/tagging/constants.ts +10 -3
  285. package/src/tagging/get_all_logs_by_tags.ts +92 -0
  286. package/src/tagging/index.ts +18 -3
  287. package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +29 -18
  288. package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +2 -2
  289. package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +17 -16
  290. package/src/tagging/{sync → sender_sync}/sync_sender_tagging_indexes.ts +15 -33
  291. package/src/tagging/{sync → sender_sync}/utils/get_status_change_of_pending.ts +5 -13
  292. package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +75 -0
  293. package/dest/contract_function_simulator/proxied_node.d.ts +0 -9
  294. package/dest/contract_function_simulator/proxied_node.d.ts.map +0 -1
  295. package/dest/contract_function_simulator/proxied_node.js +0 -27
  296. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts +0 -28
  297. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts.map +0 -1
  298. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts +0 -4
  299. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts.map +0 -1
  300. package/dest/private_kernel/private_kernel_oracle_impl.d.ts +0 -46
  301. package/dest/private_kernel/private_kernel_oracle_impl.d.ts.map +0 -1
  302. package/dest/private_kernel/private_kernel_oracle_impl.js +0 -86
  303. package/dest/public_storage/public_storage_service.d.ts +0 -24
  304. package/dest/public_storage/public_storage_service.d.ts.map +0 -1
  305. package/dest/public_storage/public_storage_service.js +0 -26
  306. package/dest/storage/address_data_provider/address_data_provider.d.ts +0 -11
  307. package/dest/storage/address_data_provider/address_data_provider.d.ts.map +0 -1
  308. package/dest/storage/address_data_provider/index.d.ts +0 -2
  309. package/dest/storage/address_data_provider/index.d.ts.map +0 -1
  310. package/dest/storage/address_data_provider/index.js +0 -1
  311. package/dest/storage/anchor_block_data_provider/anchor_block_data_provider.d.ts +0 -9
  312. package/dest/storage/anchor_block_data_provider/anchor_block_data_provider.d.ts.map +0 -1
  313. package/dest/storage/anchor_block_data_provider/index.d.ts +0 -2
  314. package/dest/storage/anchor_block_data_provider/index.d.ts.map +0 -1
  315. package/dest/storage/anchor_block_data_provider/index.js +0 -1
  316. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts +0 -57
  317. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts.map +0 -1
  318. package/dest/storage/capsule_data_provider/capsule_data_provider.js +0 -146
  319. package/dest/storage/capsule_data_provider/index.d.ts +0 -2
  320. package/dest/storage/capsule_data_provider/index.d.ts.map +0 -1
  321. package/dest/storage/capsule_data_provider/index.js +0 -1
  322. package/dest/storage/contract_data_provider/contract_data_provider.d.ts +0 -66
  323. package/dest/storage/contract_data_provider/contract_data_provider.d.ts.map +0 -1
  324. package/dest/storage/contract_data_provider/contract_data_provider.js +0 -224
  325. package/dest/storage/contract_data_provider/index.d.ts +0 -2
  326. package/dest/storage/contract_data_provider/index.d.ts.map +0 -1
  327. package/dest/storage/contract_data_provider/index.js +0 -1
  328. package/dest/storage/contract_data_provider/private_functions_tree.d.ts.map +0 -1
  329. package/dest/storage/note_data_provider/index.d.ts +0 -3
  330. package/dest/storage/note_data_provider/index.d.ts.map +0 -1
  331. package/dest/storage/note_data_provider/index.js +0 -2
  332. package/dest/storage/note_data_provider/note_data_provider.d.ts +0 -84
  333. package/dest/storage/note_data_provider/note_data_provider.d.ts.map +0 -1
  334. package/dest/storage/note_data_provider/note_data_provider.js +0 -322
  335. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts +0 -51
  336. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts.map +0 -1
  337. package/dest/storage/private_event_data_provider/private_event_data_provider.js +0 -115
  338. package/dest/storage/tagging_data_provider/index.d.ts +0 -3
  339. package/dest/storage/tagging_data_provider/index.d.ts.map +0 -1
  340. package/dest/storage/tagging_data_provider/index.js +0 -2
  341. package/dest/storage/tagging_data_provider/recipient_tagging_data_provider.d.ts +0 -31
  342. package/dest/storage/tagging_data_provider/recipient_tagging_data_provider.d.ts.map +0 -1
  343. package/dest/storage/tagging_data_provider/recipient_tagging_data_provider.js +0 -65
  344. package/dest/storage/tagging_data_provider/sender_tagging_data_provider.d.ts.map +0 -1
  345. package/dest/storage/tagging_data_provider/sender_tagging_data_provider.js +0 -196
  346. package/dest/tagging/recipient_sync/new_recipient_tagging_data_provider.d.ts +0 -21
  347. package/dest/tagging/recipient_sync/new_recipient_tagging_data_provider.d.ts.map +0 -1
  348. package/dest/tagging/recipient_sync/new_recipient_tagging_data_provider.js +0 -42
  349. package/dest/tagging/sync/sync_sender_tagging_indexes.d.ts +0 -21
  350. package/dest/tagging/sync/sync_sender_tagging_indexes.d.ts.map +0 -1
  351. package/dest/tagging/sync/utils/get_status_change_of_pending.d.ts.map +0 -1
  352. package/dest/tagging/sync/utils/load_and_store_new_tagging_indexes.d.ts +0 -18
  353. package/dest/tagging/sync/utils/load_and_store_new_tagging_indexes.d.ts.map +0 -1
  354. package/dest/tagging/utils.d.ts +0 -18
  355. package/dest/tagging/utils.d.ts.map +0 -1
  356. package/dest/tagging/utils.js +0 -25
  357. package/dest/tree_membership/tree_membership_service.d.ts +0 -52
  358. package/dest/tree_membership/tree_membership_service.d.ts.map +0 -1
  359. package/dest/tree_membership/tree_membership_service.js +0 -84
  360. package/src/contract_function_simulator/proxied_node.ts +0 -33
  361. package/src/private_kernel/private_kernel_oracle_impl.ts +0 -133
  362. package/src/public_storage/public_storage_service.ts +0 -33
  363. package/src/storage/address_data_provider/index.ts +0 -1
  364. package/src/storage/anchor_block_data_provider/index.ts +0 -1
  365. package/src/storage/capsule_data_provider/capsule_data_provider.ts +0 -179
  366. package/src/storage/capsule_data_provider/index.ts +0 -1
  367. package/src/storage/contract_data_provider/contract_data_provider.ts +0 -319
  368. package/src/storage/contract_data_provider/index.ts +0 -1
  369. package/src/storage/note_data_provider/index.ts +0 -2
  370. package/src/storage/note_data_provider/note_data_provider.ts +0 -412
  371. package/src/storage/private_event_data_provider/private_event_data_provider.ts +0 -162
  372. package/src/storage/tagging_data_provider/index.ts +0 -2
  373. package/src/storage/tagging_data_provider/recipient_tagging_data_provider.ts +0 -86
  374. package/src/storage/tagging_data_provider/sender_tagging_data_provider.ts +0 -244
  375. package/src/tagging/recipient_sync/new_recipient_tagging_data_provider.ts +0 -53
  376. package/src/tagging/sync/utils/load_and_store_new_tagging_indexes.ts +0 -72
  377. package/src/tagging/utils.ts +0 -32
  378. package/src/tree_membership/tree_membership_service.ts +0 -112
  379. /package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.js +0 -0
  380. /package/src/storage/{contract_data_provider → contract_store}/private_functions_tree.ts +0 -0
@@ -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
- import { type ContractClassLog, DirectionalAppTaggingSecret, type PreTag } from '@aztec/stdlib/logs';
17
+ import { type ContractClassLog, ExtendedDirectionalAppTaggingSecret, 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
  */
@@ -212,7 +189,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
212
189
  * The value persists through nested calls, meaning all calls down the stack will use the same
213
190
  * 'senderForTags' value (unless it is replaced).
214
191
  */
215
- public privateGetSenderForTags(): Promise<AztecAddress | undefined> {
192
+ public getSenderForTags(): Promise<AztecAddress | undefined> {
216
193
  return Promise.resolve(this.senderForTags);
217
194
  }
218
195
 
@@ -227,7 +204,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
227
204
  * through nested calls, meaning all calls down the stack will use the same 'senderForTags'
228
205
  * value (unless it is replaced by another call to this setter).
229
206
  */
230
- public privateSetSenderForTags(senderForTags: AztecAddress): Promise<void> {
207
+ public setSenderForTags(senderForTags: AztecAddress): Promise<void> {
231
208
  this.senderForTags = senderForTags;
232
209
  return Promise.resolve();
233
210
  }
@@ -238,26 +215,30 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
238
215
  * @param recipient - The address receiving the log
239
216
  * @returns An app tag to be used in a log.
240
217
  */
241
- public async privateGetNextAppTagAsSender(sender: AztecAddress, recipient: AztecAddress): Promise<Tag> {
242
- const secret = await this.#calculateDirectionalAppTaggingSecret(this.contractAddress, sender, recipient);
218
+ public async getNextAppTagAsSender(sender: AztecAddress, recipient: AztecAddress): Promise<Tag> {
219
+ const extendedSecret = await this.#calculateExtendedDirectionalAppTaggingSecret(
220
+ this.contractAddress,
221
+ sender,
222
+ recipient,
223
+ );
243
224
 
244
- const index = await this.#getIndexToUseForSecret(secret);
245
- this.log.debug(
225
+ const index = await this.#getIndexToUseForSecret(extendedSecret);
226
+ this.logger.debug(
246
227
  `Incrementing tagging index for sender: ${sender}, recipient: ${recipient}, contract: ${this.contractAddress} to ${index}`,
247
228
  );
248
- this.taggingIndexCache.setLastUsedIndex(secret, index);
229
+ this.taggingIndexCache.setLastUsedIndex(extendedSecret, index);
249
230
 
250
- return Tag.compute({ secret, index });
231
+ return Tag.compute({ extendedSecret, index });
251
232
  }
252
233
 
253
- async #calculateDirectionalAppTaggingSecret(
234
+ async #calculateExtendedDirectionalAppTaggingSecret(
254
235
  contractAddress: AztecAddress,
255
236
  sender: AztecAddress,
256
237
  recipient: AztecAddress,
257
238
  ) {
258
- const senderCompleteAddress = await this.getCompleteAddress(sender);
239
+ const senderCompleteAddress = await this.getCompleteAddressOrFail(sender);
259
240
  const senderIvsk = await this.keyStore.getMasterIncomingViewingSecretKey(sender);
260
- return DirectionalAppTaggingSecret.compute(
241
+ return ExtendedDirectionalAppTaggingSecret.compute(
261
242
  senderCompleteAddress,
262
243
  senderIvsk,
263
244
  recipient,
@@ -266,7 +247,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
266
247
  );
267
248
  }
268
249
 
269
- async #getIndexToUseForSecret(secret: DirectionalAppTaggingSecret): Promise<number> {
250
+ async #getIndexToUseForSecret(secret: ExtendedDirectionalAppTaggingSecret): Promise<number> {
270
251
  // If we have the tagging index in the cache, we use it. If not we obtain it from the execution data provider.
271
252
  const lastUsedIndexInTx = this.taggingIndexCache.getLastUsedIndex(secret);
272
253
 
@@ -276,9 +257,15 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
276
257
  // This is a tagging secret we've not yet used in this tx, so first sync our store to make sure its indices
277
258
  // are up to date. We do this here because this store is not synced as part of the global sync because
278
259
  // 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);
260
+ await syncSenderTaggingIndexes(
261
+ secret,
262
+ this.aztecNode,
263
+ this.senderTaggingStore,
264
+ await this.anchorBlockHeader.hash(),
265
+ this.jobId,
266
+ );
267
+
268
+ const lastUsedIndex = await this.senderTaggingStore.getLastUsedIndex(secret, this.jobId);
282
269
  // If lastUsedIndex is undefined, we've never used this secret, so start from 0
283
270
  // Otherwise, the next index to use is one past the last used index
284
271
  return lastUsedIndex === undefined ? 0 : lastUsedIndex + 1;
@@ -290,7 +277,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
290
277
  * @param values - Values to store.
291
278
  * @returns The hash of the values.
292
279
  */
293
- public privateStoreInExecutionCache(values: Fr[], hash: Fr) {
280
+ public storeInExecutionCache(values: Fr[], hash: Fr) {
294
281
  return this.executionCache.store(values, hash);
295
282
  }
296
283
 
@@ -299,7 +286,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
299
286
  * @param hash - Hash of the values.
300
287
  * @returns The values.
301
288
  */
302
- public privateLoadFromExecutionCache(hash: Fr): Promise<Fr[]> {
289
+ public loadFromExecutionCache(hash: Fr): Promise<Fr[]> {
303
290
  const preimage = this.executionCache.getPreimage(hash);
304
291
  if (!preimage) {
305
292
  throw new Error(`Preimage for hash ${hash.toString()} not found in cache`);
@@ -307,12 +294,12 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
307
294
  return Promise.resolve(preimage);
308
295
  }
309
296
 
310
- override async utilityCheckNullifierExists(innerNullifier: Fr): Promise<boolean> {
297
+ override async checkNullifierExists(innerNullifier: Fr): Promise<boolean> {
311
298
  // This oracle must be overridden because while utility execution can only meaningfully check if a nullifier exists
312
299
  // in the synched block, during private execution there's also the possibility of it being pending, i.e. created
313
300
  // in the current transaction.
314
301
 
315
- this.log.debug(`Checking existence of inner nullifier ${innerNullifier}`, {
302
+ this.logger.debug(`Checking existence of inner nullifier ${innerNullifier}`, {
316
303
  contractAddress: this.contractAddress,
317
304
  });
318
305
 
@@ -320,7 +307,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
320
307
 
321
308
  return (
322
309
  this.noteCache.getNullifiers(this.contractAddress).has(nullifier) ||
323
- (await super.utilityCheckNullifierExists(innerNullifier))
310
+ (await super.checkNullifierExists(innerNullifier))
324
311
  );
325
312
  }
326
313
 
@@ -345,7 +332,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
345
332
  * @param status - The status of notes to fetch.
346
333
  * @returns Array of note data.
347
334
  */
348
- public override async utilityGetNotes(
335
+ public override async getNotes(
349
336
  owner: AztecAddress | undefined,
350
337
  storageSlot: Fr,
351
338
  numSelects: number,
@@ -367,7 +354,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
367
354
 
368
355
  const pendingNullifiers = this.noteCache.getNullifiers(this.callContext.contractAddress);
369
356
 
370
- const noteService = new NoteService(this.noteDataProvider, this.aztecNode, this.anchorBlockDataProvider);
357
+ const noteService = new NoteService(this.noteStore, this.aztecNode, this.anchorBlockHeader, this.jobId);
371
358
  const dbNotes = await noteService.getNotes(
372
359
  this.callContext.contractAddress,
373
360
  owner,
@@ -391,29 +378,12 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
391
378
  offset,
392
379
  });
393
380
 
394
- this.log.debug(
381
+ this.logger.debug(
395
382
  `Returning ${notes.length} notes for ${this.callContext.contractAddress} at ${storageSlot}: ${notes
396
383
  .map(n => `${n.noteNonce.toString()}:[${n.note.items.map(i => i.toString()).join(',')}]`)
397
384
  .join(', ')}`,
398
385
  );
399
386
 
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
387
  return notes;
418
388
  }
419
389
 
@@ -428,7 +398,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
428
398
  * @param noteHash - A hash of the new note.
429
399
  * @returns
430
400
  */
431
- public privateNotifyCreatedNote(
401
+ public notifyCreatedNote(
432
402
  owner: AztecAddress,
433
403
  storageSlot: Fr,
434
404
  randomness: Fr,
@@ -437,7 +407,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
437
407
  noteHash: Fr,
438
408
  counter: number,
439
409
  ) {
440
- this.log.debug(`Notified of new note with inner hash ${noteHash}`, {
410
+ this.logger.debug(`Notified of new note with inner hash ${noteHash}`, {
441
411
  contractAddress: this.callContext.contractAddress,
442
412
  storageSlot,
443
413
  randomness,
@@ -456,6 +426,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
456
426
  note,
457
427
  siloedNullifier: undefined, // Siloed nullifier cannot be known for newly created note.
458
428
  noteHash,
429
+ isPending: true, // This note has just been created and hence is not settled yet.
459
430
  },
460
431
  counter,
461
432
  );
@@ -468,7 +439,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
468
439
  * @param innerNullifier - The pending nullifier to add in the list (not yet siloed by contract address).
469
440
  * @param noteHash - A hash of the new note.
470
441
  */
471
- public async privateNotifyNullifiedNote(innerNullifier: Fr, noteHash: Fr, counter: number) {
442
+ public async notifyNullifiedNote(innerNullifier: Fr, noteHash: Fr, counter: number) {
472
443
  const nullifiedNoteHashCounter = await this.noteCache.nullifyNote(
473
444
  this.callContext.contractAddress,
474
445
  innerNullifier,
@@ -485,11 +456,24 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
485
456
  * @param innerNullifier - The pending nullifier to add in the list (not yet siloed by contract address).
486
457
  * @param noteHash - A hash of the new note.
487
458
  */
488
- public privateNotifyCreatedNullifier(innerNullifier: Fr) {
489
- this.log.debug(`Notified of new inner nullifier ${innerNullifier}`, { contractAddress: this.contractAddress });
459
+ public notifyCreatedNullifier(innerNullifier: Fr) {
460
+ this.logger.debug(`Notified of new inner nullifier ${innerNullifier}`, { contractAddress: this.contractAddress });
490
461
  return this.noteCache.nullifierCreated(this.callContext.contractAddress, innerNullifier);
491
462
  }
492
463
 
464
+ /**
465
+ * Check if a nullifier has been emitted in the same transaction, i.e. if notifyCreatedNullifier has been
466
+ * called for this inner nullifier from the contract with the specified address.
467
+ * @param innerNullifier - The inner nullifier to check.
468
+ * @param contractAddress - Address of the contract that emitted the nullifier.
469
+ * @returns A boolean indicating whether the nullifier is pending or not.
470
+ */
471
+ public async isNullifierPending(innerNullifier: Fr, contractAddress: AztecAddress): Promise<boolean> {
472
+ const siloedNullifier = await siloNullifier(contractAddress, innerNullifier);
473
+ const isNullifierPending = this.noteCache.getNullifiers(contractAddress).has(siloedNullifier.toBigInt());
474
+ return Promise.resolve(isNullifierPending);
475
+ }
476
+
493
477
  /**
494
478
  * Emit a contract class log.
495
479
  * This fn exists because we only carry a poseidon hash through the kernels, and need to
@@ -497,10 +481,10 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
497
481
  * @param log - The contract class log to be emitted.
498
482
  * @param counter - The contract class log's counter.
499
483
  */
500
- public privateNotifyCreatedContractClassLog(log: ContractClassLog, counter: number) {
484
+ public notifyCreatedContractClassLog(log: ContractClassLog, counter: number) {
501
485
  this.contractClassLogs.push(new CountedContractClassLog(log, counter));
502
486
  const text = log.toBuffer().toString('hex');
503
- this.log.verbose(
487
+ this.logger.verbose(
504
488
  `Emitted log from ContractClassRegistry: "${text.length > 100 ? text.slice(0, 100) + '...' : text}"`,
505
489
  );
506
490
  }
@@ -526,7 +510,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
526
510
  * @param isStaticCall - Whether the call is a static call.
527
511
  * @returns The execution result.
528
512
  */
529
- async privateCallPrivateFunction(
513
+ async callPrivateFunction(
530
514
  targetContractAddress: AztecAddress,
531
515
  functionSelector: FunctionSelector,
532
516
  argsHash: Fr,
@@ -540,20 +524,22 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
540
524
  }
541
525
 
542
526
  const simulatorSetupTimer = new Timer();
543
- this.log.debug(
527
+ this.logger.debug(
544
528
  `Calling private function ${targetContractAddress}:${functionSelector} from ${this.callContext.contractAddress}`,
545
529
  );
546
530
 
547
531
  isStaticCall = isStaticCall || this.callContext.isStaticCall;
548
532
 
549
- await verifyCurrentClassId(
533
+ await this.contractSyncService.ensureContractSynced(
550
534
  targetContractAddress,
551
- this.aztecNode,
552
- this.contractDataProvider,
535
+ functionSelector,
536
+ this.utilityExecutor,
553
537
  this.anchorBlockHeader,
538
+ this.jobId,
539
+ this.scopes,
554
540
  );
555
541
 
556
- const targetArtifact = await this.contractDataProvider.getFunctionArtifactWithDebugMetadata(
542
+ const targetArtifact = await this.contractStore.getFunctionArtifactWithDebugMetadata(
557
543
  targetContractAddress,
558
544
  functionSelector,
559
545
  );
@@ -562,38 +548,41 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
562
548
 
563
549
  const derivedCallContext = await this.deriveCallContext(targetContractAddress, targetArtifact, isStaticCall);
564
550
 
565
- const privateExecutionOracle = new PrivateExecutionOracle(
551
+ const privateExecutionOracle = new PrivateExecutionOracle({
566
552
  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,
553
+ txContext: derivedTxContext,
554
+ callContext: derivedCallContext,
555
+ anchorBlockHeader: this.anchorBlockHeader,
556
+ utilityExecutor: this.utilityExecutor,
557
+ authWitnesses: this.authWitnesses,
558
+ capsules: this.capsules,
559
+ executionCache: this.executionCache,
560
+ noteCache: this.noteCache,
561
+ taggingIndexCache: this.taggingIndexCache,
562
+ contractStore: this.contractStore,
563
+ noteStore: this.noteStore,
564
+ keyStore: this.keyStore,
565
+ addressStore: this.addressStore,
566
+ aztecNode: this.aztecNode,
567
+ senderTaggingStore: this.senderTaggingStore,
568
+ recipientTaggingStore: this.recipientTaggingStore,
569
+ senderAddressBookStore: this.senderAddressBookStore,
570
+ capsuleStore: this.capsuleStore,
571
+ privateEventStore: this.privateEventStore,
572
+ contractSyncService: this.contractSyncService,
573
+ jobId: this.jobId,
574
+ totalPublicCalldataCount: this.totalPublicCalldataCount,
586
575
  sideEffectCounter,
587
- this.log,
588
- this.scopes,
589
- this.senderForTags,
590
- this.simulator,
591
- );
576
+ log: this.logger,
577
+ scopes: this.scopes,
578
+ senderForTags: this.senderForTags,
579
+ simulator: this.simulator!,
580
+ });
592
581
 
593
582
  const setupTime = simulatorSetupTimer.ms();
594
583
 
595
584
  const childExecutionResult = await executePrivateFunction(
596
- this.simulator,
585
+ this.simulator!,
597
586
  privateExecutionOracle,
598
587
  targetArtifact,
599
588
  targetContractAddress,
@@ -638,7 +627,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
638
627
  * @param sideEffectCounter - The side effect counter at the start of the call.
639
628
  * @param isStaticCall - Whether the call is a static call.
640
629
  */
641
- public privateNotifyEnqueuedPublicFunctionCall(
630
+ public notifyEnqueuedPublicFunctionCall(
642
631
  _targetContractAddress: AztecAddress,
643
632
  calldataHash: Fr,
644
633
  _sideEffectCounter: number,
@@ -655,7 +644,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
655
644
  * @param sideEffectCounter - The side effect counter at the start of the call.
656
645
  * @param isStaticCall - Whether the call is a static call.
657
646
  */
658
- public privateNotifySetPublicTeardownFunctionCall(
647
+ public notifySetPublicTeardownFunctionCall(
659
648
  _targetContractAddress: AztecAddress,
660
649
  calldataHash: Fr,
661
650
  _sideEffectCounter: number,
@@ -665,11 +654,11 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
665
654
  return Promise.resolve();
666
655
  }
667
656
 
668
- public privateNotifySetMinRevertibleSideEffectCounter(minRevertibleSideEffectCounter: number): Promise<void> {
657
+ public notifySetMinRevertibleSideEffectCounter(minRevertibleSideEffectCounter: number): Promise<void> {
669
658
  return this.noteCache.setMinRevertibleSideEffectCounter(minRevertibleSideEffectCounter);
670
659
  }
671
660
 
672
- public privateIsSideEffectCounterRevertible(sideEffectCounter: number): Promise<boolean> {
661
+ public isSideEffectCounterRevertible(sideEffectCounter: number): Promise<boolean> {
673
662
  return Promise.resolve(this.noteCache.isSideEffectCounterRevertible(sideEffectCounter));
674
663
  }
675
664
 
@@ -694,10 +683,10 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
694
683
  }
695
684
 
696
685
  public getDebugFunctionName() {
697
- return this.contractDataProvider.getDebugFunctionName(this.contractAddress, this.callContext.functionSelector);
686
+ return this.contractStore.getDebugFunctionName(this.contractAddress, this.callContext.functionSelector);
698
687
  }
699
688
 
700
- public utilityEmitOffchainEffect(data: Fr[]): Promise<void> {
689
+ public emitOffchainEffect(data: Fr[]): Promise<void> {
701
690
  this.offchainEffects.push({ data });
702
691
  return Promise.resolve();
703
692
  }