@aztec/pxe 4.0.0-nightly.20250907 → 4.0.0-nightly.20260107

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 (379) hide show
  1. package/README.md +5 -5
  2. package/dest/bin/check_oracle_version.d.ts +1 -1
  3. package/dest/bin/check_oracle_version.js +110 -10
  4. package/dest/block_synchronizer/block_synchronizer.d.ts +39 -0
  5. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -0
  6. package/dest/{synchronizer/synchronizer.js → block_synchronizer/block_synchronizer.js} +23 -23
  7. package/dest/block_synchronizer/index.d.ts +2 -0
  8. package/dest/block_synchronizer/index.d.ts.map +1 -0
  9. package/dest/block_synchronizer/index.js +1 -0
  10. package/dest/config/index.d.ts +9 -17
  11. package/dest/config/index.d.ts.map +1 -1
  12. package/dest/config/index.js +10 -16
  13. package/dest/config/package_info.d.ts +1 -1
  14. package/dest/config/package_info.js +1 -1
  15. package/dest/contract_function_simulator/contract_function_simulator.d.ts +44 -15
  16. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  17. package/dest/contract_function_simulator/contract_function_simulator.js +142 -57
  18. package/dest/contract_function_simulator/execution_note_cache.d.ts +11 -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 +28 -17
  21. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +16 -0
  22. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -0
  23. package/dest/contract_function_simulator/execution_tagging_index_cache.js +26 -0
  24. package/dest/contract_function_simulator/hashed_values_cache.d.ts +2 -2
  25. package/dest/contract_function_simulator/hashed_values_cache.d.ts.map +1 -1
  26. package/dest/contract_function_simulator/index.d.ts +4 -2
  27. package/dest/contract_function_simulator/index.d.ts.map +1 -1
  28. package/dest/contract_function_simulator/index.js +2 -1
  29. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +2 -2
  30. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
  31. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +5 -4
  32. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts.map +1 -1
  33. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +7 -6
  34. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +3 -3
  35. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -1
  36. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +8 -4
  37. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +6 -3
  38. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
  39. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +12 -3
  40. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +22 -0
  41. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -0
  42. package/dest/contract_function_simulator/noir-structs/utility_context.js +33 -0
  43. package/dest/contract_function_simulator/oracle/index.d.ts +2 -2
  44. package/dest/contract_function_simulator/oracle/index.d.ts.map +1 -1
  45. package/dest/contract_function_simulator/oracle/index.js +1 -1
  46. package/dest/contract_function_simulator/oracle/interfaces.d.ts +103 -0
  47. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -0
  48. package/dest/contract_function_simulator/oracle/interfaces.js +4 -0
  49. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +2 -4
  50. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -1
  51. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.js +1 -1
  52. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +10 -4
  53. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -1
  54. package/dest/contract_function_simulator/oracle/note_packing_utils.js +10 -5
  55. package/dest/contract_function_simulator/oracle/oracle.d.ts +17 -15
  56. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
  57. package/dest/contract_function_simulator/oracle/oracle.js +101 -81
  58. package/dest/contract_function_simulator/oracle/private_execution.d.ts +11 -12
  59. package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
  60. package/dest/contract_function_simulator/oracle/private_execution.js +15 -24
  61. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +51 -25
  62. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  63. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +103 -27
  64. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +65 -36
  65. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  66. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +171 -69
  67. package/dest/contract_function_simulator/pick_notes.d.ts +2 -2
  68. package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -1
  69. package/dest/contract_function_simulator/pick_notes.js +1 -1
  70. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +4 -4
  71. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -1
  72. package/dest/contract_function_simulator/proxied_contract_data_source.js +23 -5
  73. package/dest/contract_function_simulator/proxied_node.d.ts +1 -1
  74. package/dest/contract_function_simulator/proxied_node.d.ts.map +1 -1
  75. package/dest/debug/pxe_debug_utils.d.ts +31 -0
  76. package/dest/debug/pxe_debug_utils.d.ts.map +1 -0
  77. package/dest/debug/pxe_debug_utils.js +37 -0
  78. package/dest/entrypoints/client/bundle/index.d.ts +4 -3
  79. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  80. package/dest/entrypoints/client/bundle/index.js +2 -2
  81. package/dest/entrypoints/client/bundle/utils.d.ts +9 -9
  82. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  83. package/dest/entrypoints/client/bundle/utils.js +21 -12
  84. package/dest/entrypoints/client/lazy/index.d.ts +4 -3
  85. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  86. package/dest/entrypoints/client/lazy/index.js +2 -2
  87. package/dest/entrypoints/client/lazy/utils.d.ts +8 -8
  88. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  89. package/dest/entrypoints/client/lazy/utils.js +20 -11
  90. package/dest/entrypoints/pxe_creation_options.d.ts +5 -2
  91. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  92. package/dest/entrypoints/server/index.d.ts +5 -3
  93. package/dest/entrypoints/server/index.d.ts.map +1 -1
  94. package/dest/entrypoints/server/index.js +3 -2
  95. package/dest/entrypoints/server/utils.d.ts +5 -24
  96. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  97. package/dest/entrypoints/server/utils.js +17 -45
  98. package/dest/error_enriching.d.ts +11 -0
  99. package/dest/error_enriching.d.ts.map +1 -0
  100. package/dest/{pxe_service/error_enriching.js → error_enriching.js} +9 -6
  101. package/dest/events/event_service.d.ts +15 -0
  102. package/dest/events/event_service.d.ts.map +1 -0
  103. package/dest/events/event_service.js +47 -0
  104. package/dest/events/index.d.ts +2 -0
  105. package/dest/events/index.d.ts.map +1 -0
  106. package/dest/events/index.js +1 -0
  107. package/dest/events/private_event_filter_validator.d.ts +9 -0
  108. package/dest/events/private_event_filter_validator.d.ts.map +1 -0
  109. package/dest/events/private_event_filter_validator.js +39 -0
  110. package/dest/logs/log_service.d.ts +26 -0
  111. package/dest/logs/log_service.d.ts.map +1 -0
  112. package/dest/logs/log_service.js +120 -0
  113. package/dest/notes/index.d.ts +2 -0
  114. package/dest/notes/index.d.ts.map +1 -0
  115. package/dest/notes/index.js +1 -0
  116. package/dest/notes/note_service.d.ts +48 -0
  117. package/dest/notes/note_service.d.ts.map +1 -0
  118. package/dest/notes/note_service.js +152 -0
  119. package/dest/oracle_version.d.ts +3 -3
  120. package/dest/oracle_version.js +2 -2
  121. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts +3 -3
  122. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts.map +1 -1
  123. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.js +7 -7
  124. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts +1 -1
  125. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.js +6 -6
  126. package/dest/private_kernel/hints/index.d.ts +1 -1
  127. package/dest/private_kernel/index.d.ts +1 -1
  128. package/dest/private_kernel/private_kernel_execution_prover.d.ts +9 -2
  129. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  130. package/dest/private_kernel/private_kernel_execution_prover.js +38 -32
  131. package/dest/private_kernel/private_kernel_oracle.d.ts +3 -2
  132. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  133. package/dest/private_kernel/private_kernel_oracle_impl.d.ts +10 -9
  134. package/dest/private_kernel/private_kernel_oracle_impl.d.ts.map +1 -1
  135. package/dest/private_kernel/private_kernel_oracle_impl.js +7 -7
  136. package/dest/public_storage/public_storage_service.d.ts +24 -0
  137. package/dest/public_storage/public_storage_service.d.ts.map +1 -0
  138. package/dest/public_storage/public_storage_service.js +26 -0
  139. package/dest/pxe.d.ts +232 -0
  140. package/dest/pxe.d.ts.map +1 -0
  141. package/dest/{pxe_service/pxe_service.js → pxe.js} +299 -324
  142. package/dest/storage/address_store/address_store.d.ts +11 -0
  143. package/dest/storage/address_store/address_store.d.ts.map +1 -0
  144. package/dest/storage/{address_data_provider/address_data_provider.js → address_store/address_store.js} +1 -4
  145. package/dest/storage/address_store/index.d.ts +2 -0
  146. package/dest/storage/address_store/index.d.ts.map +1 -0
  147. package/dest/storage/address_store/index.js +1 -0
  148. package/dest/storage/anchor_block_store/anchor_block_store.d.ts +9 -0
  149. package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -0
  150. package/dest/storage/{sync_data_provider/sync_data_provider.js → anchor_block_store/anchor_block_store.js} +2 -12
  151. package/dest/storage/anchor_block_store/index.d.ts +2 -0
  152. package/dest/storage/anchor_block_store/index.d.ts.map +1 -0
  153. package/dest/storage/anchor_block_store/index.js +1 -0
  154. package/dest/storage/capsule_store/capsule_store.d.ts +57 -0
  155. package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -0
  156. package/dest/storage/{capsule_data_provider/capsule_data_provider.js → capsule_store/capsule_store.js} +34 -10
  157. package/dest/storage/capsule_store/index.d.ts +2 -0
  158. package/dest/storage/capsule_store/index.d.ts.map +1 -0
  159. package/dest/storage/capsule_store/index.js +1 -0
  160. package/dest/storage/{contract_data_provider/contract_data_provider.d.ts → contract_store/contract_store.d.ts} +10 -18
  161. package/dest/storage/contract_store/contract_store.d.ts.map +1 -0
  162. package/dest/storage/{contract_data_provider/contract_data_provider.js → contract_store/contract_store.js} +46 -18
  163. package/dest/storage/contract_store/index.d.ts +2 -0
  164. package/dest/storage/contract_store/index.d.ts.map +1 -0
  165. package/dest/storage/contract_store/index.js +1 -0
  166. package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.d.ts +1 -1
  167. package/dest/storage/contract_store/private_functions_tree.d.ts.map +1 -0
  168. package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.js +1 -1
  169. package/dest/storage/index.d.ts +8 -9
  170. package/dest/storage/index.d.ts.map +1 -1
  171. package/dest/storage/index.js +7 -8
  172. package/dest/storage/metadata.d.ts +1 -1
  173. package/dest/storage/note_store/index.d.ts +3 -0
  174. package/dest/storage/note_store/index.d.ts.map +1 -0
  175. package/dest/storage/note_store/index.js +2 -0
  176. package/dest/storage/note_store/note_store.d.ts +84 -0
  177. package/dest/storage/note_store/note_store.d.ts.map +1 -0
  178. package/dest/storage/{note_data_provider/note_data_provider.js → note_store/note_store.js} +144 -82
  179. package/dest/storage/private_event_store/private_event_store.d.ts +56 -0
  180. package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -0
  181. package/dest/storage/private_event_store/private_event_store.js +157 -0
  182. package/dest/storage/tagging_store/index.d.ts +4 -0
  183. package/dest/storage/tagging_store/index.d.ts.map +1 -0
  184. package/dest/storage/tagging_store/index.js +3 -0
  185. package/dest/storage/tagging_store/recipient_tagging_store.d.ts +21 -0
  186. package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -0
  187. package/dest/storage/tagging_store/recipient_tagging_store.js +42 -0
  188. package/dest/storage/tagging_store/sender_address_book_store.d.ts +14 -0
  189. package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +1 -0
  190. package/dest/storage/tagging_store/sender_address_book_store.js +30 -0
  191. package/dest/storage/tagging_store/sender_tagging_store.d.ts +67 -0
  192. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -0
  193. package/dest/storage/tagging_store/sender_tagging_store.js +196 -0
  194. package/dest/tagging/index.d.ts +16 -0
  195. package/dest/tagging/index.d.ts.map +1 -0
  196. package/dest/tagging/index.js +23 -0
  197. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +14 -0
  198. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +1 -0
  199. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +99 -0
  200. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts +12 -0
  201. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts.map +1 -0
  202. package/dest/tagging/recipient_sync/utils/find_highest_indexes.js +20 -0
  203. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +14 -0
  204. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +1 -0
  205. package/dest/tagging/recipient_sync/utils/load_logs_for_range.js +29 -0
  206. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +20 -0
  207. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -0
  208. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +74 -0
  209. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +11 -0
  210. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -0
  211. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +32 -0
  212. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +18 -0
  213. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -0
  214. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +55 -0
  215. package/dest/tree_membership/tree_membership_service.d.ts +52 -0
  216. package/dest/tree_membership/tree_membership_service.d.ts.map +1 -0
  217. package/dest/tree_membership/tree_membership_service.js +84 -0
  218. package/package.json +22 -24
  219. package/src/bin/check_oracle_version.ts +134 -10
  220. package/src/{synchronizer/synchronizer.ts → block_synchronizer/block_synchronizer.ts} +22 -23
  221. package/src/block_synchronizer/index.ts +1 -0
  222. package/src/config/index.ts +18 -32
  223. package/src/config/package_info.ts +1 -1
  224. package/src/contract_function_simulator/contract_function_simulator.ts +233 -75
  225. package/src/contract_function_simulator/execution_note_cache.ts +33 -17
  226. package/src/contract_function_simulator/execution_tagging_index_cache.ts +32 -0
  227. package/src/contract_function_simulator/hashed_values_cache.ts +1 -1
  228. package/src/contract_function_simulator/index.ts +3 -1
  229. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +1 -1
  230. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +6 -5
  231. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +10 -5
  232. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +14 -2
  233. package/src/contract_function_simulator/noir-structs/utility_context.ts +42 -0
  234. package/src/contract_function_simulator/oracle/index.ts +1 -1
  235. package/src/contract_function_simulator/oracle/interfaces.ts +175 -0
  236. package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +1 -1
  237. package/src/contract_function_simulator/oracle/note_packing_utils.ts +21 -5
  238. package/src/contract_function_simulator/oracle/oracle.ts +135 -80
  239. package/src/contract_function_simulator/oracle/private_execution.ts +22 -28
  240. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +200 -56
  241. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +260 -109
  242. package/src/contract_function_simulator/pick_notes.ts +1 -1
  243. package/src/contract_function_simulator/proxied_contract_data_source.ts +24 -7
  244. package/src/debug/pxe_debug_utils.ts +48 -0
  245. package/src/entrypoints/client/bundle/index.ts +3 -2
  246. package/src/entrypoints/client/bundle/utils.ts +21 -23
  247. package/src/entrypoints/client/lazy/index.ts +3 -2
  248. package/src/entrypoints/client/lazy/utils.ts +20 -23
  249. package/src/entrypoints/pxe_creation_options.ts +4 -1
  250. package/src/entrypoints/server/index.ts +4 -2
  251. package/src/entrypoints/server/utils.ts +20 -68
  252. package/src/{pxe_service/error_enriching.ts → error_enriching.ts} +11 -15
  253. package/src/events/event_service.ts +77 -0
  254. package/src/events/index.ts +1 -0
  255. package/src/events/private_event_filter_validator.ts +48 -0
  256. package/src/logs/log_service.ts +202 -0
  257. package/src/notes/index.ts +1 -0
  258. package/src/notes/note_service.ts +200 -0
  259. package/src/oracle_version.ts +2 -2
  260. package/src/private_kernel/hints/build_private_kernel_reset_private_inputs.ts +5 -9
  261. package/src/private_kernel/hints/compute_tx_include_by_timestamp.ts +6 -6
  262. package/src/private_kernel/private_kernel_execution_prover.ts +51 -43
  263. package/src/private_kernel/private_kernel_oracle.ts +2 -1
  264. package/src/private_kernel/private_kernel_oracle_impl.ts +10 -9
  265. package/src/public_storage/public_storage_service.ts +33 -0
  266. package/src/{pxe_service/pxe_service.ts → pxe.ts} +349 -410
  267. package/src/storage/{address_data_provider/address_data_provider.ts → address_store/address_store.ts} +1 -7
  268. package/src/storage/address_store/index.ts +1 -0
  269. package/src/storage/{sync_data_provider/sync_data_provider.ts → anchor_block_store/anchor_block_store.ts} +2 -17
  270. package/src/storage/anchor_block_store/index.ts +1 -0
  271. package/src/storage/{capsule_data_provider/capsule_data_provider.ts → capsule_store/capsule_store.ts} +34 -12
  272. package/src/storage/capsule_store/index.ts +1 -0
  273. package/src/storage/{contract_data_provider/contract_data_provider.ts → contract_store/contract_store.ts} +67 -28
  274. package/src/storage/contract_store/index.ts +1 -0
  275. package/src/storage/{contract_data_provider → contract_store}/private_functions_tree.ts +1 -1
  276. package/src/storage/index.ts +7 -8
  277. package/src/storage/note_store/index.ts +2 -0
  278. package/src/storage/{note_data_provider/note_data_provider.ts → note_store/note_store.ts} +173 -111
  279. package/src/storage/private_event_store/private_event_store.ts +213 -0
  280. package/src/storage/tagging_store/index.ts +3 -0
  281. package/src/storage/tagging_store/recipient_tagging_store.ts +53 -0
  282. package/src/storage/tagging_store/sender_address_book_store.ts +42 -0
  283. package/src/storage/tagging_store/sender_tagging_store.ts +244 -0
  284. package/src/tagging/index.ts +28 -0
  285. package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +129 -0
  286. package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +34 -0
  287. package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +43 -0
  288. package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +96 -0
  289. package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +44 -0
  290. package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +72 -0
  291. package/src/tree_membership/tree_membership_service.ts +112 -0
  292. package/dest/bin/index.d.ts +0 -3
  293. package/dest/bin/index.d.ts.map +0 -1
  294. package/dest/bin/index.js +0 -48
  295. package/dest/contract_function_simulator/execution_data_provider.d.ts +0 -285
  296. package/dest/contract_function_simulator/execution_data_provider.d.ts.map +0 -1
  297. package/dest/contract_function_simulator/execution_data_provider.js +0 -14
  298. package/dest/contract_function_simulator/oracle/typed_oracle.d.ts +0 -87
  299. package/dest/contract_function_simulator/oracle/typed_oracle.d.ts.map +0 -1
  300. package/dest/contract_function_simulator/oracle/typed_oracle.js +0 -146
  301. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts +0 -158
  302. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts.map +0 -1
  303. package/dest/contract_function_simulator/pxe_oracle_interface.js +0 -701
  304. package/dest/contract_function_simulator/tagging_utils.d.ts +0 -17
  305. package/dest/contract_function_simulator/tagging_utils.d.ts.map +0 -1
  306. package/dest/contract_function_simulator/tagging_utils.js +0 -23
  307. package/dest/pxe_service/error_enriching.d.ts +0 -11
  308. package/dest/pxe_service/error_enriching.d.ts.map +0 -1
  309. package/dest/pxe_service/index.d.ts +0 -3
  310. package/dest/pxe_service/index.d.ts.map +0 -1
  311. package/dest/pxe_service/index.js +0 -2
  312. package/dest/pxe_service/pxe_service.d.ts +0 -100
  313. package/dest/pxe_service/pxe_service.d.ts.map +0 -1
  314. package/dest/storage/address_data_provider/address_data_provider.d.ts +0 -13
  315. package/dest/storage/address_data_provider/address_data_provider.d.ts.map +0 -1
  316. package/dest/storage/address_data_provider/index.d.ts +0 -2
  317. package/dest/storage/address_data_provider/index.d.ts.map +0 -1
  318. package/dest/storage/address_data_provider/index.js +0 -1
  319. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts +0 -27
  320. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts.map +0 -1
  321. package/dest/storage/capsule_data_provider/index.d.ts +0 -2
  322. package/dest/storage/capsule_data_provider/index.d.ts.map +0 -1
  323. package/dest/storage/capsule_data_provider/index.js +0 -1
  324. package/dest/storage/contract_data_provider/contract_data_provider.d.ts.map +0 -1
  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/data_provider.d.ts +0 -4
  330. package/dest/storage/data_provider.d.ts.map +0 -1
  331. package/dest/storage/data_provider.js +0 -1
  332. package/dest/storage/note_data_provider/index.d.ts +0 -3
  333. package/dest/storage/note_data_provider/index.d.ts.map +0 -1
  334. package/dest/storage/note_data_provider/index.js +0 -2
  335. package/dest/storage/note_data_provider/note_dao.d.ts +0 -100
  336. package/dest/storage/note_data_provider/note_dao.d.ts.map +0 -1
  337. package/dest/storage/note_data_provider/note_dao.js +0 -102
  338. package/dest/storage/note_data_provider/note_data_provider.d.ts +0 -20
  339. package/dest/storage/note_data_provider/note_data_provider.d.ts.map +0 -1
  340. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts +0 -37
  341. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts.map +0 -1
  342. package/dest/storage/private_event_data_provider/private_event_data_provider.js +0 -96
  343. package/dest/storage/sync_data_provider/index.d.ts +0 -2
  344. package/dest/storage/sync_data_provider/index.d.ts.map +0 -1
  345. package/dest/storage/sync_data_provider/index.js +0 -1
  346. package/dest/storage/sync_data_provider/sync_data_provider.d.ts +0 -12
  347. package/dest/storage/sync_data_provider/sync_data_provider.d.ts.map +0 -1
  348. package/dest/storage/tagging_data_provider/index.d.ts +0 -2
  349. package/dest/storage/tagging_data_provider/index.d.ts.map +0 -1
  350. package/dest/storage/tagging_data_provider/index.js +0 -1
  351. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts +0 -18
  352. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts.map +0 -1
  353. package/dest/storage/tagging_data_provider/tagging_data_provider.js +0 -82
  354. package/dest/synchronizer/index.d.ts +0 -2
  355. package/dest/synchronizer/index.d.ts.map +0 -1
  356. package/dest/synchronizer/index.js +0 -1
  357. package/dest/synchronizer/synchronizer.d.ts +0 -35
  358. package/dest/synchronizer/synchronizer.d.ts.map +0 -1
  359. package/dest/test/pxe_test_suite.d.ts +0 -3
  360. package/dest/test/pxe_test_suite.d.ts.map +0 -1
  361. package/dest/test/pxe_test_suite.js +0 -97
  362. package/src/bin/index.ts +0 -62
  363. package/src/contract_function_simulator/execution_data_provider.ts +0 -361
  364. package/src/contract_function_simulator/oracle/typed_oracle.ts +0 -289
  365. package/src/contract_function_simulator/pxe_oracle_interface.ts +0 -1020
  366. package/src/contract_function_simulator/tagging_utils.ts +0 -32
  367. package/src/pxe_service/index.ts +0 -2
  368. package/src/storage/address_data_provider/index.ts +0 -1
  369. package/src/storage/capsule_data_provider/index.ts +0 -1
  370. package/src/storage/contract_data_provider/index.ts +0 -1
  371. package/src/storage/data_provider.ts +0 -3
  372. package/src/storage/note_data_provider/index.ts +0 -2
  373. package/src/storage/note_data_provider/note_dao.ts +0 -154
  374. package/src/storage/private_event_data_provider/private_event_data_provider.ts +0 -134
  375. package/src/storage/sync_data_provider/index.ts +0 -1
  376. package/src/storage/tagging_data_provider/index.ts +0 -1
  377. package/src/storage/tagging_data_provider/tagging_data_provider.ts +0 -123
  378. package/src/synchronizer/index.ts +0 -1
  379. package/src/test/pxe_test_suite.ts +0 -113
@@ -1,4 +1,6 @@
1
- import { Fr, Point } from '@aztec/foundation/fields';
1
+ import { BlockNumber } from '@aztec/foundation/branded-types';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
+ import { Point } from '@aztec/foundation/curves/grumpkin';
2
4
  import {
3
5
  type ACIRCallback,
4
6
  type ACVMField,
@@ -13,21 +15,54 @@ import { AztecAddress } from '@aztec/stdlib/aztec-address';
13
15
  import { ContractClassLog, ContractClassLogFields } from '@aztec/stdlib/logs';
14
16
  import { MerkleTreeId } from '@aztec/stdlib/trees';
15
17
 
18
+ import type { IMiscOracle, IPrivateExecutionOracle, IUtilityExecutionOracle } from './interfaces.js';
16
19
  import { packAsRetrievedNote } from './note_packing_utils.js';
17
- import type { TypedOracle } from './typed_oracle.js';
20
+
21
+ export class UnavailableOracleError extends Error {
22
+ constructor(oracleName: string) {
23
+ super(`${oracleName} oracles not available with the current handler`);
24
+ }
25
+ }
18
26
 
19
27
  /**
20
28
  * A data source that has all the apis required by Aztec.nr.
21
29
  */
22
30
  export class Oracle {
23
- private typedOracle: TypedOracle;
31
+ constructor(private handler: IMiscOracle | IUtilityExecutionOracle | IPrivateExecutionOracle) {}
32
+
33
+ private handlerAsMisc(): IMiscOracle {
34
+ if (!('isMisc' in this.handler)) {
35
+ throw new UnavailableOracleError('Misc');
36
+ }
24
37
 
25
- constructor(typedOracle: TypedOracle) {
26
- this.typedOracle = typedOracle;
38
+ return this.handler;
39
+ }
40
+
41
+ private handlerAsUtility(): IUtilityExecutionOracle {
42
+ if (!('isUtility' in this.handler)) {
43
+ throw new UnavailableOracleError('Utility');
44
+ }
45
+
46
+ return this.handler;
47
+ }
48
+
49
+ private handlerAsPrivate(): IPrivateExecutionOracle {
50
+ if (!('isPrivate' in this.handler)) {
51
+ throw new UnavailableOracleError('Private');
52
+ }
53
+
54
+ return this.handler;
27
55
  }
28
56
 
29
57
  toACIRCallback(): ACIRCallback {
30
- const excludedProps = ['typedOracle', 'constructor', 'toACIRCallback'] as const;
58
+ const excludedProps = [
59
+ 'handler',
60
+ 'constructor',
61
+ 'toACIRCallback',
62
+ 'handlerAsMisc',
63
+ 'handlerAsUtility',
64
+ 'handlerAsPrivate',
65
+ ] as const;
31
66
 
32
67
  // Get all the oracle function names
33
68
  const oracleNames = Object.getOwnPropertyNames(Oracle.prototype).filter(
@@ -58,54 +93,40 @@ export class Oracle {
58
93
  }
59
94
 
60
95
  utilityAssertCompatibleOracleVersion([version]: ACVMField[]) {
61
- this.typedOracle.utilityAssertCompatibleOracleVersion(Fr.fromString(version).toNumber());
96
+ this.handlerAsMisc().utilityAssertCompatibleOracleVersion(Fr.fromString(version).toNumber());
62
97
  return Promise.resolve([]);
63
98
  }
64
99
 
65
100
  utilityGetRandomField(): Promise<ACVMField[]> {
66
- const val = this.typedOracle.utilityGetRandomField();
101
+ const val = this.handlerAsMisc().utilityGetRandomField();
67
102
  return Promise.resolve([toACVMField(val)]);
68
103
  }
69
104
 
70
- // Since the argument is a slice, noir automatically adds a length field to oracle call.
71
- privateStoreInExecutionCache(_length: ACVMField[], values: ACVMField[], [hash]: ACVMField[]): Promise<ACVMField[]> {
72
- this.typedOracle.privateStoreInExecutionCache(values.map(Fr.fromString), Fr.fromString(hash));
105
+ privateStoreInExecutionCache(values: ACVMField[], [hash]: ACVMField[]): Promise<ACVMField[]> {
106
+ this.handlerAsPrivate().privateStoreInExecutionCache(values.map(Fr.fromString), Fr.fromString(hash));
73
107
  return Promise.resolve([]);
74
108
  }
75
109
 
76
110
  async privateLoadFromExecutionCache([returnsHash]: ACVMField[]): Promise<ACVMField[][]> {
77
- const values = await this.typedOracle.privateLoadFromExecutionCache(Fr.fromString(returnsHash));
111
+ const values = await this.handlerAsPrivate().privateLoadFromExecutionCache(Fr.fromString(returnsHash));
78
112
  return [values.map(toACVMField)];
79
113
  }
80
114
 
81
- async utilityGetBlockNumber(): Promise<ACVMField[]> {
82
- return [toACVMField(await this.typedOracle.utilityGetBlockNumber())];
83
- }
84
-
85
- async utilityGetTimestamp(): Promise<ACVMField[]> {
86
- return [toACVMField(await this.typedOracle.utilityGetTimestamp())];
87
- }
88
-
89
- async utilityGetContractAddress(): Promise<ACVMField[]> {
90
- return [toACVMField(await this.typedOracle.utilityGetContractAddress())];
91
- }
92
-
93
- async utilityGetVersion(): Promise<ACVMField[]> {
94
- return [toACVMField(await this.typedOracle.utilityGetVersion())];
95
- }
96
-
97
- async utilityGetChainId(): Promise<ACVMField[]> {
98
- return [toACVMField(await this.typedOracle.utilityGetChainId())];
115
+ utilityGetUtilityContext(): Promise<(ACVMField | ACVMField[])[]> {
116
+ const context = this.handlerAsUtility().utilityGetUtilityContext();
117
+ return Promise.resolve(context.toNoirRepresentation());
99
118
  }
100
119
 
101
120
  async utilityGetKeyValidationRequest([pkMHash]: ACVMField[]): Promise<ACVMField[]> {
102
- const keyValidationRequest = await this.typedOracle.utilityGetKeyValidationRequest(Fr.fromString(pkMHash));
121
+ const keyValidationRequest = await this.handlerAsUtility().utilityGetKeyValidationRequest(Fr.fromString(pkMHash));
103
122
 
104
123
  return keyValidationRequest.toFields().map(toACVMField);
105
124
  }
106
125
 
107
126
  async utilityGetContractInstance([address]: ACVMField[]): Promise<ACVMField[]> {
108
- const instance = await this.typedOracle.utilityGetContractInstance(AztecAddress.fromField(Fr.fromString(address)));
127
+ const instance = await this.handlerAsUtility().utilityGetContractInstance(
128
+ AztecAddress.fromField(Fr.fromString(address)),
129
+ );
109
130
 
110
131
  return [
111
132
  instance.salt,
@@ -125,8 +146,8 @@ export class Oracle {
125
146
  const parsedTreeId = Fr.fromString(treeId).toNumber();
126
147
  const parsedLeafValue = Fr.fromString(leafValue);
127
148
 
128
- const witness = await this.typedOracle.utilityGetMembershipWitness(
129
- parsedBlockNumber,
149
+ const witness = await this.handlerAsUtility().utilityGetMembershipWitness(
150
+ BlockNumber(parsedBlockNumber),
130
151
  parsedTreeId,
131
152
  parsedLeafValue,
132
153
  );
@@ -145,7 +166,10 @@ export class Oracle {
145
166
  const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
146
167
  const parsedNullifier = Fr.fromString(nullifier);
147
168
 
148
- const witness = await this.typedOracle.utilityGetNullifierMembershipWitness(parsedBlockNumber, parsedNullifier);
169
+ const witness = await this.handlerAsUtility().utilityGetNullifierMembershipWitness(
170
+ BlockNumber(parsedBlockNumber),
171
+ parsedNullifier,
172
+ );
149
173
  if (!witness) {
150
174
  throw new Error(`Nullifier witness not found for nullifier ${parsedNullifier} at block ${parsedBlockNumber}.`);
151
175
  }
@@ -159,7 +183,10 @@ export class Oracle {
159
183
  const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
160
184
  const parsedNullifier = Fr.fromString(nullifier);
161
185
 
162
- const witness = await this.typedOracle.utilityGetLowNullifierMembershipWitness(parsedBlockNumber, parsedNullifier);
186
+ const witness = await this.handlerAsUtility().utilityGetLowNullifierMembershipWitness(
187
+ BlockNumber(parsedBlockNumber),
188
+ parsedNullifier,
189
+ );
163
190
  if (!witness) {
164
191
  throw new Error(
165
192
  `Low nullifier witness not found for nullifier ${parsedNullifier} at block ${parsedBlockNumber}.`,
@@ -175,7 +202,10 @@ export class Oracle {
175
202
  const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
176
203
  const parsedLeafSlot = Fr.fromString(leafSlot);
177
204
 
178
- const witness = await this.typedOracle.utilityGetPublicDataWitness(parsedBlockNumber, parsedLeafSlot);
205
+ const witness = await this.handlerAsUtility().utilityGetPublicDataWitness(
206
+ BlockNumber(parsedBlockNumber),
207
+ parsedLeafSlot,
208
+ );
179
209
  if (!witness) {
180
210
  throw new Error(`Public data witness not found for slot ${parsedLeafSlot} at block ${parsedBlockNumber}.`);
181
211
  }
@@ -185,7 +215,7 @@ export class Oracle {
185
215
  async utilityGetBlockHeader([blockNumber]: ACVMField[]): Promise<ACVMField[]> {
186
216
  const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
187
217
 
188
- const header = await this.typedOracle.utilityGetBlockHeader(parsedBlockNumber);
218
+ const header = await this.handlerAsUtility().utilityGetBlockHeader(BlockNumber(parsedBlockNumber));
189
219
  if (!header) {
190
220
  throw new Error(`Block header not found for block ${parsedBlockNumber}.`);
191
221
  }
@@ -194,22 +224,24 @@ export class Oracle {
194
224
 
195
225
  async utilityGetAuthWitness([messageHash]: ACVMField[]): Promise<ACVMField[][]> {
196
226
  const messageHashField = Fr.fromString(messageHash);
197
- const witness = await this.typedOracle.utilityGetAuthWitness(messageHashField);
227
+ const witness = await this.handlerAsUtility().utilityGetAuthWitness(messageHashField);
198
228
  if (!witness) {
199
229
  throw new Error(`Unknown auth witness for message hash ${messageHashField}`);
200
230
  }
201
231
  return [witness.map(toACVMField)];
202
232
  }
203
233
 
204
- // TODO(benesjan): This doesn't map to the underlying oracle name which is just ugly.
205
234
  async utilityGetPublicKeysAndPartialAddress([address]: ACVMField[]): Promise<ACVMField[][]> {
206
235
  const parsedAddress = AztecAddress.fromField(Fr.fromString(address));
207
- const { publicKeys, partialAddress } = await this.typedOracle.utilityGetCompleteAddress(parsedAddress);
236
+ const { publicKeys, partialAddress } =
237
+ await this.handlerAsUtility().utilityGetPublicKeysAndPartialAddress(parsedAddress);
208
238
 
209
239
  return [[...publicKeys.toFields(), partialAddress].map(toACVMField)];
210
240
  }
211
241
 
212
242
  async utilityGetNotes(
243
+ [ownerSome]: ACVMField[],
244
+ [ownerValue]: ACVMField[],
213
245
  [storageSlot]: ACVMField[],
214
246
  [numSelects]: ACVMField[],
215
247
  selectByIndexes: ACVMField[],
@@ -227,7 +259,10 @@ export class Oracle {
227
259
  [maxNotes]: ACVMField[],
228
260
  [packedRetrievedNoteLength]: ACVMField[],
229
261
  ): Promise<(ACVMField | ACVMField[])[]> {
230
- const noteDatas = await this.typedOracle.utilityGetNotes(
262
+ // Parse Option<AztecAddress>: ownerSome is 0 for None, 1 for Some
263
+ const owner = Fr.fromString(ownerSome).toNumber() === 1 ? AztecAddress.fromString(ownerValue) : undefined;
264
+ const noteDatas = await this.handlerAsUtility().utilityGetNotes(
265
+ owner,
231
266
  Fr.fromString(storageSlot),
232
267
  +numSelects,
233
268
  selectByIndexes.map(s => +s),
@@ -244,7 +279,17 @@ export class Oracle {
244
279
  +status,
245
280
  );
246
281
 
247
- const returnDataAsArrayOfPackedRetrievedNotes = noteDatas.map(packAsRetrievedNote);
282
+ const returnDataAsArrayOfPackedRetrievedNotes = noteDatas.map(noteData =>
283
+ packAsRetrievedNote({
284
+ contractAddress: noteData.contractAddress,
285
+ owner: noteData.owner,
286
+ randomness: noteData.randomness,
287
+ storageSlot: noteData.storageSlot,
288
+ noteNonce: noteData.noteNonce,
289
+ index: noteData.index,
290
+ note: noteData.note,
291
+ }),
292
+ );
248
293
 
249
294
  // Now we convert each sub-array to an array of ACVMField
250
295
  const returnDataAsArrayOfACVMFieldArrays = returnDataAsArrayOfPackedRetrievedNotes.map(subArray =>
@@ -256,14 +301,18 @@ export class Oracle {
256
301
  }
257
302
 
258
303
  privateNotifyCreatedNote(
304
+ [owner]: ACVMField[],
259
305
  [storageSlot]: ACVMField[],
306
+ [randomness]: ACVMField[],
260
307
  [noteTypeId]: ACVMField[],
261
308
  note: ACVMField[],
262
309
  [noteHash]: ACVMField[],
263
310
  [counter]: ACVMField[],
264
311
  ): Promise<ACVMField[]> {
265
- this.typedOracle.privateNotifyCreatedNote(
312
+ this.handlerAsPrivate().privateNotifyCreatedNote(
313
+ AztecAddress.fromString(owner),
266
314
  Fr.fromString(storageSlot),
315
+ Fr.fromString(randomness),
267
316
  NoteSelector.fromField(Fr.fromString(noteTypeId)),
268
317
  note.map(Fr.fromString),
269
318
  Fr.fromString(noteHash),
@@ -277,17 +326,21 @@ export class Oracle {
277
326
  [noteHash]: ACVMField[],
278
327
  [counter]: ACVMField[],
279
328
  ): Promise<ACVMField[]> {
280
- await this.typedOracle.privateNotifyNullifiedNote(Fr.fromString(innerNullifier), Fr.fromString(noteHash), +counter);
329
+ await this.handlerAsPrivate().privateNotifyNullifiedNote(
330
+ Fr.fromString(innerNullifier),
331
+ Fr.fromString(noteHash),
332
+ +counter,
333
+ );
281
334
  return [];
282
335
  }
283
336
 
284
337
  async privateNotifyCreatedNullifier([innerNullifier]: ACVMField[]): Promise<ACVMField[]> {
285
- await this.typedOracle.privateNotifyCreatedNullifier(Fr.fromString(innerNullifier));
338
+ await this.handlerAsPrivate().privateNotifyCreatedNullifier(Fr.fromString(innerNullifier));
286
339
  return [];
287
340
  }
288
341
 
289
342
  async utilityCheckNullifierExists([innerNullifier]: ACVMField[]): Promise<ACVMField[]> {
290
- const exists = await this.typedOracle.utilityCheckNullifierExists(Fr.fromString(innerNullifier));
343
+ const exists = await this.handlerAsUtility().utilityCheckNullifierExists(Fr.fromString(innerNullifier));
291
344
  return [toACVMField(exists)];
292
345
  }
293
346
 
@@ -296,7 +349,7 @@ export class Oracle {
296
349
  [messageHash]: ACVMField[],
297
350
  [secret]: ACVMField[],
298
351
  ): Promise<(ACVMField | ACVMField[])[]> {
299
- const message = await this.typedOracle.utilityGetL1ToL2MembershipWitness(
352
+ const message = await this.handlerAsUtility().utilityGetL1ToL2MembershipWitness(
300
353
  AztecAddress.fromString(contractAddress),
301
354
  Fr.fromString(messageHash),
302
355
  Fr.fromString(secret),
@@ -310,10 +363,10 @@ export class Oracle {
310
363
  [blockNumber]: ACVMField[],
311
364
  [numberOfElements]: ACVMField[],
312
365
  ): Promise<ACVMField[][]> {
313
- const values = await this.typedOracle.utilityStorageRead(
366
+ const values = await this.handlerAsUtility().utilityStorageRead(
314
367
  new AztecAddress(Fr.fromString(contractAddress)),
315
368
  Fr.fromString(startStorageSlot),
316
- +blockNumber,
369
+ BlockNumber(+blockNumber),
317
370
  +numberOfElements,
318
371
  );
319
372
  return [values.map(toACVMField)];
@@ -328,14 +381,20 @@ export class Oracle {
328
381
  const logFields = new ContractClassLogFields(message.map(Fr.fromString));
329
382
  const log = new ContractClassLog(new AztecAddress(Fr.fromString(contractAddress)), logFields, +length);
330
383
 
331
- this.typedOracle.privateNotifyCreatedContractClassLog(log, +counter);
384
+ this.handlerAsPrivate().privateNotifyCreatedContractClassLog(log, +counter);
332
385
  return Promise.resolve([]);
333
386
  }
334
387
 
335
- utilityDebugLog(message: ACVMField[], _ignoredFieldsSize: ACVMField[], fields: ACVMField[]): Promise<ACVMField[]> {
388
+ utilityDebugLog(
389
+ level: ACVMField[],
390
+ message: ACVMField[],
391
+ _ignoredFieldsSize: ACVMField[],
392
+ fields: ACVMField[],
393
+ ): Promise<ACVMField[]> {
394
+ const levelFr = Fr.fromString(level[0]);
336
395
  const messageStr = message.map(acvmField => String.fromCharCode(Fr.fromString(acvmField).toNumber())).join('');
337
396
  const fieldsFr = fields.map(Fr.fromString);
338
- this.typedOracle.utilityDebugLog(messageStr, fieldsFr);
397
+ this.handlerAsMisc().utilityDebugLog(levelFr.toNumber(), messageStr, fieldsFr);
339
398
  return Promise.resolve([]);
340
399
  }
341
400
 
@@ -348,7 +407,7 @@ export class Oracle {
348
407
  [sideEffectCounter]: ACVMField[],
349
408
  [isStaticCall]: ACVMField[],
350
409
  ): Promise<ACVMField[][]> {
351
- const { endSideEffectCounter, returnsHash } = await this.typedOracle.privateCallPrivateFunction(
410
+ const { endSideEffectCounter, returnsHash } = await this.handlerAsPrivate().privateCallPrivateFunction(
352
411
  AztecAddress.fromField(Fr.fromString(contractAddress)),
353
412
  FunctionSelector.fromField(Fr.fromString(functionSelector)),
354
413
  Fr.fromString(argsHash),
@@ -364,7 +423,7 @@ export class Oracle {
364
423
  [sideEffectCounter]: ACVMField[],
365
424
  [isStaticCall]: ACVMField[],
366
425
  ): Promise<ACVMField[]> {
367
- await this.typedOracle.privateNotifyEnqueuedPublicFunctionCall(
426
+ await this.handlerAsPrivate().privateNotifyEnqueuedPublicFunctionCall(
368
427
  AztecAddress.fromString(contractAddress),
369
428
  Fr.fromString(calldataHash),
370
429
  Fr.fromString(sideEffectCounter).toNumber(),
@@ -379,7 +438,7 @@ export class Oracle {
379
438
  [sideEffectCounter]: ACVMField[],
380
439
  [isStaticCall]: ACVMField[],
381
440
  ): Promise<ACVMField[]> {
382
- await this.typedOracle.privateNotifySetPublicTeardownFunctionCall(
441
+ await this.handlerAsPrivate().privateNotifySetPublicTeardownFunctionCall(
383
442
  AztecAddress.fromString(contractAddress),
384
443
  Fr.fromString(calldataHash),
385
444
  Fr.fromString(sideEffectCounter).toNumber(),
@@ -391,33 +450,29 @@ export class Oracle {
391
450
  async privateNotifySetMinRevertibleSideEffectCounter([minRevertibleSideEffectCounter]: ACVMField[]): Promise<
392
451
  ACVMField[]
393
452
  > {
394
- await this.typedOracle.privateNotifySetMinRevertibleSideEffectCounter(
453
+ await this.handlerAsPrivate().privateNotifySetMinRevertibleSideEffectCounter(
395
454
  Fr.fromString(minRevertibleSideEffectCounter).toNumber(),
396
455
  );
397
456
  return Promise.resolve([]);
398
457
  }
399
458
 
400
- async utilityGetIndexedTaggingSecretAsSender([sender]: ACVMField[], [recipient]: ACVMField[]): Promise<ACVMField[]> {
401
- const taggingSecret = await this.typedOracle.utilityGetIndexedTaggingSecretAsSender(
402
- AztecAddress.fromString(sender),
403
- AztecAddress.fromString(recipient),
459
+ async privateIsSideEffectCounterRevertible([sideEffectCounter]: ACVMField[]): Promise<ACVMField[]> {
460
+ const isRevertible = await this.handlerAsPrivate().privateIsSideEffectCounterRevertible(
461
+ Fr.fromString(sideEffectCounter).toNumber(),
404
462
  );
405
- return taggingSecret.toFields().map(toACVMField);
463
+ return Promise.resolve([toACVMField(isRevertible)]);
406
464
  }
407
465
 
408
- async privateIncrementAppTaggingSecretIndexAsSender(
409
- [sender]: ACVMField[],
410
- [recipient]: ACVMField[],
411
- ): Promise<ACVMField[]> {
412
- await this.typedOracle.privateIncrementAppTaggingSecretIndexAsSender(
466
+ async privateGetNextAppTagAsSender([sender]: ACVMField[], [recipient]: ACVMField[]): Promise<ACVMField[]> {
467
+ const tag = await this.handlerAsPrivate().privateGetNextAppTagAsSender(
413
468
  AztecAddress.fromString(sender),
414
469
  AztecAddress.fromString(recipient),
415
470
  );
416
- return [];
471
+ return [toACVMField(tag.value)];
417
472
  }
418
473
 
419
474
  async utilityFetchTaggedLogs([pendingTaggedLogArrayBaseSlot]: ACVMField[]): Promise<ACVMField[]> {
420
- await this.typedOracle.utilityFetchTaggedLogs(Fr.fromString(pendingTaggedLogArrayBaseSlot));
475
+ await this.handlerAsUtility().utilityFetchTaggedLogs(Fr.fromString(pendingTaggedLogArrayBaseSlot));
421
476
  return [];
422
477
  }
423
478
 
@@ -426,7 +481,7 @@ export class Oracle {
426
481
  [noteValidationRequestsArrayBaseSlot]: ACVMField[],
427
482
  [eventValidationRequestsArrayBaseSlot]: ACVMField[],
428
483
  ): Promise<ACVMField[]> {
429
- await this.typedOracle.utilityValidateEnqueuedNotesAndEvents(
484
+ await this.handlerAsUtility().utilityValidateEnqueuedNotesAndEvents(
430
485
  AztecAddress.fromString(contractAddress),
431
486
  Fr.fromString(noteValidationRequestsArrayBaseSlot),
432
487
  Fr.fromString(eventValidationRequestsArrayBaseSlot),
@@ -440,7 +495,7 @@ export class Oracle {
440
495
  [logRetrievalRequestsArrayBaseSlot]: ACVMField[],
441
496
  [logRetrievalResponsesArrayBaseSlot]: ACVMField[],
442
497
  ): Promise<ACVMField[]> {
443
- await this.typedOracle.utilityBulkRetrieveLogs(
498
+ await this.handlerAsUtility().utilityBulkRetrieveLogs(
444
499
  AztecAddress.fromString(contractAddress),
445
500
  Fr.fromString(logRetrievalRequestsArrayBaseSlot),
446
501
  Fr.fromString(logRetrievalResponsesArrayBaseSlot),
@@ -453,7 +508,7 @@ export class Oracle {
453
508
  [slot]: ACVMField[],
454
509
  capsule: ACVMField[],
455
510
  ): Promise<ACVMField[]> {
456
- await this.typedOracle.utilityStoreCapsule(
511
+ await this.handlerAsUtility().utilityStoreCapsule(
457
512
  AztecAddress.fromField(Fr.fromString(contractAddress)),
458
513
  Fr.fromString(slot),
459
514
  capsule.map(Fr.fromString),
@@ -466,7 +521,7 @@ export class Oracle {
466
521
  [slot]: ACVMField[],
467
522
  [tSize]: ACVMField[],
468
523
  ): Promise<(ACVMField | ACVMField[])[]> {
469
- const values = await this.typedOracle.utilityLoadCapsule(
524
+ const values = await this.handlerAsUtility().utilityLoadCapsule(
470
525
  AztecAddress.fromField(Fr.fromString(contractAddress)),
471
526
  Fr.fromString(slot),
472
527
  );
@@ -483,7 +538,7 @@ export class Oracle {
483
538
  }
484
539
 
485
540
  async utilityDeleteCapsule([contractAddress]: ACVMField[], [slot]: ACVMField[]): Promise<ACVMField[]> {
486
- await this.typedOracle.utilityDeleteCapsule(
541
+ await this.handlerAsUtility().utilityDeleteCapsule(
487
542
  AztecAddress.fromField(Fr.fromString(contractAddress)),
488
543
  Fr.fromString(slot),
489
544
  );
@@ -496,7 +551,7 @@ export class Oracle {
496
551
  [dstSlot]: ACVMField[],
497
552
  [numEntries]: ACVMField[],
498
553
  ): Promise<ACVMField[]> {
499
- await this.typedOracle.utilityCopyCapsule(
554
+ await this.handlerAsUtility().utilityCopyCapsule(
500
555
  AztecAddress.fromField(Fr.fromString(contractAddress)),
501
556
  Fr.fromString(srcSlot),
502
557
  Fr.fromString(dstSlot),
@@ -515,7 +570,7 @@ export class Oracle {
515
570
  const ivBuffer = fromUintArray(iv, 8);
516
571
  const symKeyBuffer = fromUintArray(symKey, 8);
517
572
 
518
- const plaintext = await this.typedOracle.utilityAes128Decrypt(ciphertext, ivBuffer, symKeyBuffer);
573
+ const plaintext = await this.handlerAsUtility().utilityAes128Decrypt(ciphertext, ivBuffer, symKeyBuffer);
519
574
  return bufferToBoundedVec(plaintext, ciphertextBVecStorage.length);
520
575
  }
521
576
 
@@ -525,7 +580,7 @@ export class Oracle {
525
580
  [ephPKField1]: ACVMField[],
526
581
  [ephPKField2]: ACVMField[],
527
582
  ): Promise<ACVMField[]> {
528
- const secret = await this.typedOracle.utilityGetSharedSecret(
583
+ const secret = await this.handlerAsUtility().utilityGetSharedSecret(
529
584
  AztecAddress.fromField(Fr.fromString(address)),
530
585
  Point.fromFields([ephPKField0, ephPKField1, ephPKField2].map(Fr.fromString)),
531
586
  );
@@ -533,18 +588,18 @@ export class Oracle {
533
588
  }
534
589
 
535
590
  async utilityEmitOffchainEffect(data: ACVMField[]) {
536
- await this.typedOracle.utilityEmitOffchainEffect(data.map(Fr.fromString));
591
+ await this.handlerAsPrivate().utilityEmitOffchainEffect(data.map(Fr.fromString));
537
592
  return [];
538
593
  }
539
594
 
540
595
  async privateGetSenderForTags(): Promise<ACVMField[]> {
541
- const sender = await this.typedOracle.privateGetSenderForTags();
596
+ const sender = await this.handlerAsPrivate().privateGetSenderForTags();
542
597
  // Return [1, address] for Some(address), [0, 0] for None
543
598
  return sender ? [toACVMField(1n), toACVMField(sender)] : [toACVMField(0n), toACVMField(0n)];
544
599
  }
545
600
 
546
601
  async privateSetSenderForTags([senderForTags]: ACVMField[]): Promise<ACVMField[]> {
547
- await this.typedOracle.privateSetSenderForTags(AztecAddress.fromField(Fr.fromString(senderForTags)));
602
+ await this.handlerAsPrivate().privateSetSenderForTags(AztecAddress.fromField(Fr.fromString(senderForTags)));
548
603
  return [];
549
604
  }
550
605
  }
@@ -1,5 +1,6 @@
1
1
  import { PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH, PRIVATE_CONTEXT_INPUTS_LENGTH } from '@aztec/constants';
2
- import { Fr } from '@aztec/foundation/fields';
2
+ import { BlockNumber } from '@aztec/foundation/branded-types';
3
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
4
  import { createLogger } from '@aztec/foundation/log';
4
5
  import { Timer } from '@aztec/foundation/timer';
5
6
  import { ProtocolContractAddress } from '@aztec/protocol-contracts';
@@ -26,7 +27,7 @@ import type { CircuitWitnessGenerationStats } from '@aztec/stdlib/stats';
26
27
  import { BlockHeader, PrivateCallExecutionResult } from '@aztec/stdlib/tx';
27
28
  import type { UInt64 } from '@aztec/stdlib/types';
28
29
 
29
- import type { ExecutionDataProvider } from '../execution_data_provider.js';
30
+ import { ContractStore } from '../../storage/contract_store/index.js';
30
31
  import { Oracle } from './oracle.js';
31
32
  import type { PrivateExecutionOracle } from './private_execution_oracle.js';
32
33
 
@@ -88,6 +89,7 @@ export async function executePrivateFunction(
88
89
  const newNotes = privateExecutionOracle.getNewNotes();
89
90
  const noteHashNullifierCounterMap = privateExecutionOracle.getNoteHashNullifierCounterMap();
90
91
  const offchainEffects = privateExecutionOracle.getOffchainEffects();
92
+ const preTags = privateExecutionOracle.getUsedPreTags();
91
93
  const nestedExecutionResults = privateExecutionOracle.getNestedExecutionResults();
92
94
 
93
95
  let timerSubtractionList = nestedExecutionResults;
@@ -111,6 +113,7 @@ export async function executePrivateFunction(
111
113
  noteHashNullifierCounterMap,
112
114
  rawReturnValues,
113
115
  offchainEffects,
116
+ preTags,
114
117
  nestedExecutionResults,
115
118
  contractClassLogs,
116
119
  {
@@ -151,7 +154,7 @@ export function extractPrivateCircuitPublicInputs(
151
154
  * from the instance is used.
152
155
  * @param contractAddress - The address of the contract to read the class id for.
153
156
  * @param instance - The instance of the contract.
154
- * @param executionDataProvider - The execution data provider.
157
+ * @param executionStore - The execution data provider.
155
158
  * @param blockNumber - The block number at which to load the DelayedPublicMutable storing the class id.
156
159
  * @param timestamp - The timestamp at which to obtain the class id from the DelayedPublicMutable.
157
160
  * @returns The current class id.
@@ -159,13 +162,13 @@ export function extractPrivateCircuitPublicInputs(
159
162
  export async function readCurrentClassId(
160
163
  contractAddress: AztecAddress,
161
164
  instance: ContractInstance,
162
- executionDataProvider: ExecutionDataProvider | AztecNode,
163
- blockNumber: number,
165
+ aztecNode: AztecNode,
166
+ blockNumber: BlockNumber,
164
167
  timestamp: UInt64,
165
168
  ) {
166
169
  const { delayedPublicMutableSlot } = await DelayedPublicMutableValuesWithHash.getContractUpdateSlots(contractAddress);
167
170
  const delayedPublicMutableValues = await DelayedPublicMutableValues.readFromTree(delayedPublicMutableSlot, slot =>
168
- executionDataProvider.getPublicStorageAt(blockNumber, ProtocolContractAddress.ContractInstanceRegistry, slot),
171
+ aztecNode.getPublicStorageAt(blockNumber, ProtocolContractAddress.ContractInstanceRegistry, slot),
169
172
  );
170
173
  let currentClassId = delayedPublicMutableValues.svc.getCurrentAt(timestamp)[0];
171
174
  if (currentClassId.isZero()) {
@@ -175,37 +178,28 @@ export async function readCurrentClassId(
175
178
  }
176
179
 
177
180
  /**
178
- * Verify that the current class id of a contract obtained from AztecNode is the same as the one in the execution data
179
- * provider (i.e. PXE).
180
- * @param contractAddress - The address of the contract to verify class id for.
181
- * @param executionDataProvider - The execution data provider.
182
- * @param header - The header of the block at which to verify the current class id. If not provided, the current block
183
- * number and timestamp from the execution data provider will be used.
181
+ * Verify that the current class id of a contract obtained from AztecNode is the same as the one in contract data
182
+ * provider (i.e. PXE's own storage).
183
+ * @param header - The header of the block at which to verify the current class id. If not provided, the anchor block
184
+ * header of the execution data provider is used.
184
185
  */
185
186
  export async function verifyCurrentClassId(
186
187
  contractAddress: AztecAddress,
187
- executionDataProvider: ExecutionDataProvider,
188
- header?: BlockHeader,
188
+ aztecNode: AztecNode,
189
+ contractStore: ContractStore,
190
+ header: BlockHeader,
189
191
  ) {
190
- let blockNumber: number;
191
- let timestamp: UInt64;
192
- if (header) {
193
- blockNumber = header.globalVariables.blockNumber;
194
- timestamp = header.globalVariables.timestamp;
195
- } else {
196
- [blockNumber, timestamp] = await Promise.all([
197
- executionDataProvider.getBlockNumber(),
198
- executionDataProvider.getTimestamp(),
199
- ]);
192
+ const instance = await contractStore.getContractInstance(contractAddress);
193
+ if (!instance) {
194
+ throw new Error(`No contract instance found for address ${contractAddress.toString()}`);
200
195
  }
201
196
 
202
- const instance = await executionDataProvider.getContractInstance(contractAddress);
203
197
  const currentClassId = await readCurrentClassId(
204
198
  contractAddress,
205
199
  instance,
206
- executionDataProvider,
207
- blockNumber,
208
- timestamp,
200
+ aztecNode,
201
+ header.globalVariables.blockNumber,
202
+ header.globalVariables.timestamp,
209
203
  );
210
204
  if (!instance.currentContractClassId.equals(currentClassId)) {
211
205
  throw new Error(