@aztec/pxe 0.0.1-commit.1142ef1 → 0.0.1-commit.11bf3dd6e

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 (302) hide show
  1. package/dest/bin/check_oracle_version.js +5 -5
  2. package/dest/block_synchronizer/block_synchronizer.d.ts +16 -6
  3. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
  4. package/dest/block_synchronizer/block_synchronizer.js +91 -22
  5. package/dest/config/index.d.ts +4 -2
  6. package/dest/config/index.d.ts.map +1 -1
  7. package/dest/config/index.js +12 -2
  8. package/dest/config/package_info.js +1 -1
  9. package/dest/contract_function_simulator/benchmarked_node.d.ts +9 -0
  10. package/dest/contract_function_simulator/benchmarked_node.d.ts.map +1 -0
  11. package/dest/contract_function_simulator/benchmarked_node.js +77 -0
  12. package/dest/contract_function_simulator/contract_function_simulator.d.ts +66 -36
  13. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  14. package/dest/contract_function_simulator/contract_function_simulator.js +230 -89
  15. package/dest/contract_function_simulator/ephemeral_array_service.d.ts +28 -0
  16. package/dest/contract_function_simulator/ephemeral_array_service.d.ts.map +1 -0
  17. package/dest/contract_function_simulator/ephemeral_array_service.js +78 -0
  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 +7 -7
  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 +19 -11
  24. package/dest/contract_function_simulator/index.d.ts +3 -2
  25. package/dest/contract_function_simulator/index.d.ts.map +1 -1
  26. package/dest/contract_function_simulator/index.js +2 -1
  27. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +5 -7
  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 +9 -11
  30. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +1 -1
  31. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +1 -1
  32. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +2 -2
  33. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -1
  34. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +2 -4
  35. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +5 -8
  36. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
  37. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +7 -12
  38. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +4 -10
  39. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -1
  40. package/dest/contract_function_simulator/noir-structs/utility_context.js +7 -18
  41. package/dest/contract_function_simulator/oracle/interfaces.d.ts +67 -47
  42. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
  43. package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.d.ts +9 -0
  44. package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.d.ts.map +1 -0
  45. package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.js +47 -0
  46. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +3 -1
  47. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -1
  48. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +6 -6
  49. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -1
  50. package/dest/contract_function_simulator/oracle/note_packing_utils.js +8 -8
  51. package/dest/contract_function_simulator/oracle/oracle.d.ts +75 -42
  52. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
  53. package/dest/contract_function_simulator/oracle/oracle.js +327 -119
  54. package/dest/contract_function_simulator/oracle/private_execution.d.ts +2 -26
  55. package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
  56. package/dest/contract_function_simulator/oracle/private_execution.js +5 -38
  57. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +59 -76
  58. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  59. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +125 -90
  60. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +140 -73
  61. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  62. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +347 -162
  63. package/dest/contract_function_simulator/pick_notes.d.ts +1 -1
  64. package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -1
  65. package/dest/contract_function_simulator/pick_notes.js +20 -3
  66. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +1 -1
  67. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -1
  68. package/dest/contract_function_simulator/proxied_contract_data_source.js +3 -0
  69. package/dest/contract_logging.d.ts +27 -0
  70. package/dest/contract_logging.d.ts.map +1 -0
  71. package/dest/contract_logging.js +38 -0
  72. package/dest/contract_sync/contract_sync_service.d.ts +44 -0
  73. package/dest/contract_sync/contract_sync_service.d.ts.map +1 -0
  74. package/dest/contract_sync/contract_sync_service.js +116 -0
  75. package/dest/contract_sync/helpers.d.ts +28 -0
  76. package/dest/contract_sync/helpers.d.ts.map +1 -0
  77. package/dest/contract_sync/helpers.js +60 -0
  78. package/dest/debug/pxe_debug_utils.d.ts +24 -10
  79. package/dest/debug/pxe_debug_utils.d.ts.map +1 -1
  80. package/dest/debug/pxe_debug_utils.js +28 -17
  81. package/dest/entrypoints/client/bundle/index.d.ts +3 -1
  82. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  83. package/dest/entrypoints/client/bundle/index.js +2 -0
  84. package/dest/entrypoints/client/bundle/utils.d.ts +2 -2
  85. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  86. package/dest/entrypoints/client/bundle/utils.js +23 -9
  87. package/dest/entrypoints/client/lazy/index.d.ts +3 -1
  88. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  89. package/dest/entrypoints/client/lazy/index.js +2 -0
  90. package/dest/entrypoints/client/lazy/utils.d.ts +3 -3
  91. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  92. package/dest/entrypoints/client/lazy/utils.js +24 -10
  93. package/dest/entrypoints/pxe_creation_options.d.ts +5 -2
  94. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  95. package/dest/entrypoints/pxe_creation_options.js +3 -1
  96. package/dest/entrypoints/server/index.d.ts +5 -2
  97. package/dest/entrypoints/server/index.d.ts.map +1 -1
  98. package/dest/entrypoints/server/index.js +4 -1
  99. package/dest/entrypoints/server/utils.d.ts +2 -2
  100. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  101. package/dest/entrypoints/server/utils.js +30 -11
  102. package/dest/events/event_service.d.ts +7 -6
  103. package/dest/events/event_service.d.ts.map +1 -1
  104. package/dest/events/event_service.js +33 -24
  105. package/dest/events/private_event_filter_validator.d.ts +6 -5
  106. package/dest/events/private_event_filter_validator.d.ts.map +1 -1
  107. package/dest/events/private_event_filter_validator.js +20 -6
  108. package/dest/job_coordinator/job_coordinator.d.ts +3 -2
  109. package/dest/job_coordinator/job_coordinator.d.ts.map +1 -1
  110. package/dest/job_coordinator/job_coordinator.js +3 -2
  111. package/dest/logs/log_service.d.ts +11 -9
  112. package/dest/logs/log_service.d.ts.map +1 -1
  113. package/dest/logs/log_service.js +52 -64
  114. package/dest/messages/message_context_service.d.ts +17 -0
  115. package/dest/messages/message_context_service.d.ts.map +1 -0
  116. package/dest/messages/message_context_service.js +36 -0
  117. package/dest/notes/note_service.d.ts +9 -9
  118. package/dest/notes/note_service.d.ts.map +1 -1
  119. package/dest/notes/note_service.js +45 -40
  120. package/dest/notes_filter.d.ts +24 -0
  121. package/dest/notes_filter.d.ts.map +1 -0
  122. package/dest/notes_filter.js +4 -0
  123. package/dest/oracle_version.d.ts +4 -3
  124. package/dest/oracle_version.d.ts.map +1 -1
  125. package/dest/oracle_version.js +20 -9
  126. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts +4 -0
  127. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts.map +1 -0
  128. package/dest/private_kernel/hints/{compute_tx_include_by_timestamp.js → compute_tx_expiration_timestamp.js} +12 -12
  129. package/dest/private_kernel/hints/index.d.ts +3 -3
  130. package/dest/private_kernel/hints/index.d.ts.map +1 -1
  131. package/dest/private_kernel/hints/index.js +2 -2
  132. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +29 -0
  133. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -0
  134. package/dest/private_kernel/hints/{build_private_kernel_reset_private_inputs.js → private_kernel_reset_private_inputs_builder.js} +140 -73
  135. package/dest/private_kernel/hints/test_utils.d.ts +122 -0
  136. package/dest/private_kernel/hints/test_utils.d.ts.map +1 -0
  137. package/dest/private_kernel/hints/test_utils.js +203 -0
  138. package/dest/private_kernel/private_kernel_execution_prover.d.ts +3 -2
  139. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  140. package/dest/private_kernel/private_kernel_execution_prover.js +21 -16
  141. package/dest/private_kernel/private_kernel_oracle.d.ts +24 -25
  142. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  143. package/dest/private_kernel/private_kernel_oracle.js +91 -2
  144. package/dest/pxe.d.ts +80 -59
  145. package/dest/pxe.d.ts.map +1 -1
  146. package/dest/pxe.js +163 -145
  147. package/dest/storage/address_store/address_store.d.ts +1 -1
  148. package/dest/storage/address_store/address_store.d.ts.map +1 -1
  149. package/dest/storage/address_store/address_store.js +12 -11
  150. package/dest/storage/anchor_block_store/anchor_block_store.d.ts +9 -1
  151. package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -1
  152. package/dest/storage/anchor_block_store/anchor_block_store.js +9 -2
  153. package/dest/storage/capsule_store/capsule_service.d.ts +21 -0
  154. package/dest/storage/capsule_store/capsule_service.d.ts.map +1 -0
  155. package/dest/storage/capsule_store/capsule_service.js +50 -0
  156. package/dest/storage/capsule_store/capsule_store.d.ts +25 -10
  157. package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -1
  158. package/dest/storage/capsule_store/capsule_store.js +143 -28
  159. package/dest/storage/capsule_store/index.d.ts +2 -1
  160. package/dest/storage/capsule_store/index.d.ts.map +1 -1
  161. package/dest/storage/capsule_store/index.js +1 -0
  162. package/dest/storage/contract_store/contract_store.d.ts +42 -16
  163. package/dest/storage/contract_store/contract_store.d.ts.map +1 -1
  164. package/dest/storage/contract_store/contract_store.js +160 -85
  165. package/dest/storage/metadata.d.ts +1 -1
  166. package/dest/storage/metadata.js +1 -1
  167. package/dest/storage/note_store/note_store.d.ts +50 -51
  168. package/dest/storage/note_store/note_store.d.ts.map +1 -1
  169. package/dest/storage/note_store/note_store.js +284 -263
  170. package/dest/storage/note_store/stored_note.d.ts +16 -0
  171. package/dest/storage/note_store/stored_note.d.ts.map +1 -0
  172. package/dest/storage/note_store/stored_note.js +43 -0
  173. package/dest/storage/private_event_store/private_event_store.d.ts +43 -8
  174. package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -1
  175. package/dest/storage/private_event_store/private_event_store.js +229 -111
  176. package/dest/storage/private_event_store/stored_private_event.d.ts +23 -0
  177. package/dest/storage/private_event_store/stored_private_event.d.ts.map +1 -0
  178. package/dest/storage/private_event_store/stored_private_event.js +56 -0
  179. package/dest/storage/tagging_store/recipient_tagging_store.d.ts +16 -9
  180. package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -1
  181. package/dest/storage/tagging_store/recipient_tagging_store.js +88 -19
  182. package/dest/storage/tagging_store/sender_address_book_store.d.ts +1 -1
  183. package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +1 -1
  184. package/dest/storage/tagging_store/sender_address_book_store.js +20 -14
  185. package/dest/storage/tagging_store/sender_tagging_store.d.ts +43 -32
  186. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -1
  187. package/dest/storage/tagging_store/sender_tagging_store.js +300 -122
  188. package/dest/tagging/get_all_logs_by_tags.d.ts +24 -0
  189. package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -0
  190. package/dest/tagging/get_all_logs_by_tags.js +60 -0
  191. package/dest/tagging/index.d.ts +4 -3
  192. package/dest/tagging/index.d.ts.map +1 -1
  193. package/dest/tagging/index.js +2 -1
  194. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +5 -5
  195. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +1 -1
  196. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +12 -26
  197. package/dest/tagging/recipient_sync/utils/find_highest_indexes.js +2 -2
  198. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +7 -7
  199. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +1 -1
  200. package/dest/tagging/recipient_sync/utils/load_logs_for_range.js +16 -12
  201. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +5 -8
  202. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -1
  203. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +18 -12
  204. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +4 -3
  205. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -1
  206. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +23 -16
  207. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +8 -7
  208. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -1
  209. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +44 -27
  210. package/package.json +27 -18
  211. package/src/bin/check_oracle_version.ts +5 -4
  212. package/src/block_synchronizer/block_synchronizer.ts +113 -35
  213. package/src/config/index.ts +9 -1
  214. package/src/config/package_info.ts +1 -1
  215. package/src/contract_function_simulator/benchmarked_node.ts +103 -0
  216. package/src/contract_function_simulator/contract_function_simulator.ts +392 -154
  217. package/src/contract_function_simulator/ephemeral_array_service.ts +110 -0
  218. package/src/contract_function_simulator/execution_note_cache.ts +44 -25
  219. package/src/contract_function_simulator/execution_tagging_index_cache.ts +19 -14
  220. package/src/contract_function_simulator/index.ts +2 -1
  221. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +10 -10
  222. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +1 -1
  223. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +2 -5
  224. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +5 -11
  225. package/src/contract_function_simulator/noir-structs/utility_context.ts +6 -25
  226. package/src/contract_function_simulator/oracle/interfaces.ts +97 -59
  227. package/src/contract_function_simulator/oracle/legacy_oracle_mappings.ts +104 -0
  228. package/src/contract_function_simulator/oracle/note_packing_utils.ts +10 -10
  229. package/src/contract_function_simulator/oracle/oracle.ts +422 -166
  230. package/src/contract_function_simulator/oracle/private_execution.ts +5 -71
  231. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +169 -185
  232. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +578 -193
  233. package/src/contract_function_simulator/pick_notes.ts +22 -3
  234. package/src/contract_function_simulator/proxied_contract_data_source.ts +8 -1
  235. package/src/contract_logging.ts +52 -0
  236. package/src/contract_sync/contract_sync_service.ts +176 -0
  237. package/src/contract_sync/helpers.ts +98 -0
  238. package/src/debug/pxe_debug_utils.ts +63 -18
  239. package/src/entrypoints/client/bundle/index.ts +2 -0
  240. package/src/entrypoints/client/bundle/utils.ts +18 -18
  241. package/src/entrypoints/client/lazy/index.ts +2 -0
  242. package/src/entrypoints/client/lazy/utils.ts +19 -18
  243. package/src/entrypoints/pxe_creation_options.ts +9 -1
  244. package/src/entrypoints/server/index.ts +4 -1
  245. package/src/entrypoints/server/utils.ts +24 -29
  246. package/src/events/event_service.ts +31 -26
  247. package/src/events/private_event_filter_validator.ts +23 -5
  248. package/src/job_coordinator/job_coordinator.ts +4 -3
  249. package/src/logs/log_service.ts +94 -104
  250. package/src/messages/message_context_service.ts +44 -0
  251. package/src/notes/note_service.ts +54 -48
  252. package/src/notes_filter.ts +24 -0
  253. package/src/oracle_version.ts +20 -9
  254. package/src/private_kernel/hints/{compute_tx_include_by_timestamp.ts → compute_tx_expiration_timestamp.ts} +13 -13
  255. package/src/private_kernel/hints/index.ts +2 -2
  256. package/src/private_kernel/hints/{build_private_kernel_reset_private_inputs.ts → private_kernel_reset_private_inputs_builder.ts} +195 -136
  257. package/src/private_kernel/hints/test_utils.ts +325 -0
  258. package/src/private_kernel/private_kernel_execution_prover.ts +25 -20
  259. package/src/private_kernel/private_kernel_oracle.ts +116 -37
  260. package/src/pxe.ts +297 -223
  261. package/src/storage/address_store/address_store.ts +15 -15
  262. package/src/storage/anchor_block_store/anchor_block_store.ts +9 -1
  263. package/src/storage/capsule_store/capsule_service.ts +90 -0
  264. package/src/storage/capsule_store/capsule_store.ts +183 -29
  265. package/src/storage/capsule_store/index.ts +1 -0
  266. package/src/storage/contract_store/contract_store.ts +193 -101
  267. package/src/storage/metadata.ts +1 -1
  268. package/src/storage/note_store/note_store.ts +323 -320
  269. package/src/storage/note_store/stored_note.ts +48 -0
  270. package/src/storage/private_event_store/private_event_store.ts +296 -124
  271. package/src/storage/private_event_store/stored_private_event.ts +73 -0
  272. package/src/storage/tagging_store/recipient_tagging_store.ts +111 -21
  273. package/src/storage/tagging_store/sender_address_book_store.ts +20 -14
  274. package/src/storage/tagging_store/sender_tagging_store.ts +366 -134
  275. package/src/tagging/get_all_logs_by_tags.ts +92 -0
  276. package/src/tagging/index.ts +3 -2
  277. package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +27 -29
  278. package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +2 -2
  279. package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +17 -16
  280. package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +31 -15
  281. package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +29 -26
  282. package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +42 -29
  283. package/dest/contract_function_simulator/proxied_node.d.ts +0 -9
  284. package/dest/contract_function_simulator/proxied_node.d.ts.map +0 -1
  285. package/dest/contract_function_simulator/proxied_node.js +0 -27
  286. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts +0 -28
  287. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts.map +0 -1
  288. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts +0 -4
  289. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts.map +0 -1
  290. package/dest/private_kernel/private_kernel_oracle_impl.d.ts +0 -46
  291. package/dest/private_kernel/private_kernel_oracle_impl.d.ts.map +0 -1
  292. package/dest/private_kernel/private_kernel_oracle_impl.js +0 -85
  293. package/dest/public_storage/public_storage_service.d.ts +0 -24
  294. package/dest/public_storage/public_storage_service.d.ts.map +0 -1
  295. package/dest/public_storage/public_storage_service.js +0 -26
  296. package/dest/tree_membership/tree_membership_service.d.ts +0 -52
  297. package/dest/tree_membership/tree_membership_service.d.ts.map +0 -1
  298. package/dest/tree_membership/tree_membership_service.js +0 -84
  299. package/src/contract_function_simulator/proxied_node.ts +0 -33
  300. package/src/private_kernel/private_kernel_oracle_impl.ts +0 -127
  301. package/src/public_storage/public_storage_service.ts +0 -33
  302. package/src/tree_membership/tree_membership_service.ts +0 -112
@@ -12,11 +12,13 @@ import {
12
12
  } from '@aztec/simulator/client';
13
13
  import { FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
14
14
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
15
+ import { BlockHash } from '@aztec/stdlib/block';
15
16
  import { ContractClassLog, ContractClassLogFields } from '@aztec/stdlib/logs';
16
- import { MerkleTreeId } from '@aztec/stdlib/trees';
17
17
 
18
+ import { ORACLE_VERSION_MAJOR, ORACLE_VERSION_MINOR } from '../../oracle_version.js';
18
19
  import type { IMiscOracle, IPrivateExecutionOracle, IUtilityExecutionOracle } from './interfaces.js';
19
- import { packAsRetrievedNote } from './note_packing_utils.js';
20
+ import { buildLegacyOracleCallbacks } from './legacy_oracle_mappings.js';
21
+ import { packAsHintedNote } from './note_packing_utils.js';
20
22
 
21
23
  export class UnavailableOracleError extends Error {
22
24
  constructor(oracleName: string) {
@@ -26,6 +28,25 @@ export class UnavailableOracleError extends Error {
26
28
 
27
29
  /**
28
30
  * A data source that has all the apis required by Aztec.nr.
31
+ *
32
+ * ## Oracle naming conventions
33
+ *
34
+ * We try to keep oracle naming consistent, please see below the conventions we adhere to.
35
+ *
36
+ * Each oracle method name has the form `aztec_{scope}_{verb}{Object}`, where:
37
+ *
38
+ * - **Scope prefix** indicates the execution context required:
39
+ * - `aztec_prv_` — available only during private function execution.
40
+ * - `aztec_utl_` — available during both utility and private execution.
41
+ *
42
+ * - **Verb** signals the operation's semantics (verb-first, then object):
43
+ * - `get` — read / lookup / get data from oracle into contract.
44
+ * - `does`/`is`/`has` — predicate (returns boolean).
45
+ * - `emit`/`notify` — propagate data from contract to oracle.
46
+ * - `set` — contract driven oracle state mutation (capsules, execution cache, tagging, etc).
47
+ * - `call` — trigger nested execution (control flow).
48
+ * - `assert` — validate a condition, throw on failure.
49
+ * - Standalone verbs (`delete`, `copy`, `decrypt`, `log`, etc) are used when no generic verb fits.
29
50
  */
30
51
  export class Oracle {
31
52
  constructor(private handler: IMiscOracle | IUtilityExecutionOracle | IPrivateExecutionOracle) {}
@@ -69,12 +90,12 @@ export class Oracle {
69
90
  name => !excludedProps.includes(name as (typeof excludedProps)[number]),
70
91
  );
71
92
 
72
- // Validate oracle names - these must be prefixed with either "private" or "utility" to indicate their scope
93
+ // Validate oracle names - these must be prefixed with either "aztec_prv_" or "aztec_utl_" to indicate their scope
73
94
  // and must correspond to a function on the Oracle class.
74
95
  oracleNames.forEach(name => {
75
- if (!name.startsWith('private') && !name.startsWith('utility')) {
96
+ if (!name.startsWith('aztec_prv_') && !name.startsWith('aztec_utl_')) {
76
97
  throw new Error(
77
- `Oracle function "${name}" must be prefixed with either "private" or "utility" to indicate its scope`,
98
+ `Oracle function "${name}" must be prefixed with either "aztec_prv_" or "aztec_utl_" to indicate its scope`,
78
99
  );
79
100
  }
80
101
 
@@ -85,48 +106,110 @@ export class Oracle {
85
106
  });
86
107
 
87
108
  // Build callback object and return it
88
- return oracleNames.reduce((acc, name) => {
109
+ const callback = oracleNames.reduce((acc, name) => {
89
110
  const method = this[name as keyof Omit<Oracle, (typeof excludedProps)[number]>];
90
111
  acc[name] = method.bind(this);
91
112
  return acc;
92
113
  }, {} as ACIRCallback);
114
+
115
+ const allCallbacks = { ...callback, ...buildLegacyOracleCallbacks(this) };
116
+
117
+ // Wrap in a Proxy to intercept access to missing oracle names and provide enhanced error messages when the
118
+ // contract's minor version is higher than the PXE's (i.e. the contract expects oracles that were added in a newer
119
+ // minor version).
120
+ const handler = this.handler;
121
+ return new Proxy(allCallbacks, {
122
+ get(target, prop: string) {
123
+ if (prop in target) {
124
+ return target[prop];
125
+ }
126
+ // Return a function that throws with an enhanced error message if applicable
127
+ return () => {
128
+ type NonOracleFunctionGetContractOracleVersion = {
129
+ nonOracleFunctionGetContractOracleVersion(): { major: number; minor: number } | undefined;
130
+ };
131
+
132
+ let contractVersion = undefined;
133
+ if ('nonOracleFunctionGetContractOracleVersion' in handler) {
134
+ contractVersion = (
135
+ handler as unknown as NonOracleFunctionGetContractOracleVersion
136
+ ).nonOracleFunctionGetContractOracleVersion();
137
+ }
138
+ if (!contractVersion) {
139
+ throw new Error(
140
+ `Oracle '${prop}' not found and the contract's oracle version is unknown (the version check oracle ` +
141
+ `was not called before '${prop}'). This usually means the contract was not compiled with the ` +
142
+ `#[aztec] macro, which injects the version check as the first oracle call in every private/utility ` +
143
+ `external function. If you're using a custom entry point, ensure assert_compatible_oracle_version() ` +
144
+ `is called before any other oracle calls. See https://docs.aztec.network/errors/8`,
145
+ );
146
+ } else if (contractVersion.minor > ORACLE_VERSION_MINOR) {
147
+ throw new Error(
148
+ `Oracle '${prop}' not found.` +
149
+ ` This usually means the contract requires a newer private execution environment than you have.` +
150
+ ` Upgrade your private execution environment to a compatible version. The contract was compiled with` +
151
+ ` Aztec.nr oracle version ${contractVersion.major}.${contractVersion.minor}, but this private` +
152
+ ` execution environment only supports up to ${ORACLE_VERSION_MAJOR}.${ORACLE_VERSION_MINOR}.` +
153
+ ` See https://docs.aztec.network/errors/8`,
154
+ );
155
+ } else {
156
+ throw new Error(
157
+ `Oracle '${prop}' not found.` +
158
+ ` The contract's oracle version (${contractVersion.major}.${contractVersion.minor}) is compatible` +
159
+ ` with this private execution environment (${ORACLE_VERSION_MAJOR}.${ORACLE_VERSION_MINOR}), so all` +
160
+ ` standard oracles should be available. This could mean the contract was compiled against a modified` +
161
+ ` version of Aztec.nr, or that it references an oracle that does not exist.` +
162
+ ` See https://docs.aztec.network/errors/8`,
163
+ );
164
+ }
165
+ };
166
+ },
167
+ });
93
168
  }
94
169
 
95
- utilityAssertCompatibleOracleVersion([version]: ACVMField[]) {
96
- this.handlerAsMisc().utilityAssertCompatibleOracleVersion(Fr.fromString(version).toNumber());
170
+ // eslint-disable-next-line camelcase
171
+ aztec_utl_assertCompatibleOracleVersionV2([major]: ACVMField[], [minor]: ACVMField[]) {
172
+ this.handlerAsMisc().assertCompatibleOracleVersion(
173
+ Fr.fromString(major).toNumber(),
174
+ Fr.fromString(minor).toNumber(),
175
+ );
97
176
  return Promise.resolve([]);
98
177
  }
99
178
 
100
- utilityGetRandomField(): Promise<ACVMField[]> {
101
- const val = this.handlerAsMisc().utilityGetRandomField();
179
+ // eslint-disable-next-line camelcase
180
+ aztec_utl_getRandomField(): Promise<ACVMField[]> {
181
+ const val = this.handlerAsMisc().getRandomField();
102
182
  return Promise.resolve([toACVMField(val)]);
103
183
  }
104
184
 
105
- privateStoreInExecutionCache(values: ACVMField[], [hash]: ACVMField[]): Promise<ACVMField[]> {
106
- this.handlerAsPrivate().privateStoreInExecutionCache(values.map(Fr.fromString), Fr.fromString(hash));
185
+ // eslint-disable-next-line camelcase
186
+ aztec_prv_setHashPreimage(values: ACVMField[], [hash]: ACVMField[]): Promise<ACVMField[]> {
187
+ this.handlerAsPrivate().setHashPreimage(values.map(Fr.fromString), Fr.fromString(hash));
107
188
  return Promise.resolve([]);
108
189
  }
109
190
 
110
- async privateLoadFromExecutionCache([returnsHash]: ACVMField[]): Promise<ACVMField[][]> {
111
- const values = await this.handlerAsPrivate().privateLoadFromExecutionCache(Fr.fromString(returnsHash));
191
+ // eslint-disable-next-line camelcase
192
+ async aztec_prv_getHashPreimage([returnsHash]: ACVMField[]): Promise<ACVMField[][]> {
193
+ const values = await this.handlerAsPrivate().getHashPreimage(Fr.fromString(returnsHash));
112
194
  return [values.map(toACVMField)];
113
195
  }
114
196
 
115
- utilityGetUtilityContext(): Promise<(ACVMField | ACVMField[])[]> {
116
- const context = this.handlerAsUtility().utilityGetUtilityContext();
197
+ // eslint-disable-next-line camelcase
198
+ aztec_utl_getUtilityContext(): Promise<(ACVMField | ACVMField[])[]> {
199
+ const context = this.handlerAsUtility().getUtilityContext();
117
200
  return Promise.resolve(context.toNoirRepresentation());
118
201
  }
119
202
 
120
- async utilityGetKeyValidationRequest([pkMHash]: ACVMField[]): Promise<ACVMField[]> {
121
- const keyValidationRequest = await this.handlerAsUtility().utilityGetKeyValidationRequest(Fr.fromString(pkMHash));
203
+ // eslint-disable-next-line camelcase
204
+ async aztec_utl_getKeyValidationRequest([pkMHash]: ACVMField[]): Promise<ACVMField[]> {
205
+ const keyValidationRequest = await this.handlerAsUtility().getKeyValidationRequest(Fr.fromString(pkMHash));
122
206
 
123
207
  return keyValidationRequest.toFields().map(toACVMField);
124
208
  }
125
209
 
126
- async utilityGetContractInstance([address]: ACVMField[]): Promise<ACVMField[]> {
127
- const instance = await this.handlerAsUtility().utilityGetContractInstance(
128
- AztecAddress.fromField(Fr.fromString(address)),
129
- );
210
+ // eslint-disable-next-line camelcase
211
+ async aztec_utl_getContractInstance([address]: ACVMField[]): Promise<ACVMField[]> {
212
+ const instance = await this.handlerAsUtility().getContractInstance(AztecAddress.fromField(Fr.fromString(address)));
130
213
 
131
214
  return [
132
215
  instance.salt,
@@ -137,109 +220,130 @@ export class Oracle {
137
220
  ].map(toACVMField);
138
221
  }
139
222
 
140
- async utilityGetMembershipWitness(
141
- [blockNumber]: ACVMField[],
142
- [treeId]: ACVMField[],
143
- [leafValue]: ACVMField[],
223
+ // eslint-disable-next-line camelcase
224
+ async aztec_utl_getNoteHashMembershipWitness(
225
+ [anchorBlockHash]: ACVMField[],
226
+ [noteHash]: ACVMField[],
144
227
  ): Promise<(ACVMField | ACVMField[])[]> {
145
- const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
146
- const parsedTreeId = Fr.fromString(treeId).toNumber();
147
- const parsedLeafValue = Fr.fromString(leafValue);
228
+ const parsedAnchorBlockHash = BlockHash.fromString(anchorBlockHash);
229
+ const parsedNoteHash = Fr.fromString(noteHash);
148
230
 
149
- const witness = await this.handlerAsUtility().utilityGetMembershipWitness(
150
- BlockNumber(parsedBlockNumber),
151
- parsedTreeId,
152
- parsedLeafValue,
153
- );
231
+ const witness = await this.handlerAsUtility().getNoteHashMembershipWitness(parsedAnchorBlockHash, parsedNoteHash);
154
232
  if (!witness) {
155
233
  throw new Error(
156
- `Leaf ${leafValue} not found in the tree ${MerkleTreeId[parsedTreeId]} at block ${parsedBlockNumber}.`,
234
+ `Note hash ${noteHash} not found in the note hash tree at anchor block hash ${parsedAnchorBlockHash.toString()}.`,
157
235
  );
158
236
  }
159
- return [toACVMField(witness[0]), witness.slice(1).map(toACVMField)];
237
+ return witness.toNoirRepresentation();
160
238
  }
161
239
 
162
- async utilityGetNullifierMembershipWitness(
163
- [blockNumber]: ACVMField[],
240
+ // eslint-disable-next-line camelcase
241
+ async aztec_utl_getBlockHashMembershipWitness(
242
+ [anchorBlockHash]: ACVMField[],
243
+ [blockHash]: ACVMField[],
244
+ ): Promise<(ACVMField | ACVMField[])[]> {
245
+ const parsedAnchorBlockHash = BlockHash.fromString(anchorBlockHash);
246
+ const parsedBlockHash = BlockHash.fromString(blockHash);
247
+
248
+ const witness = await this.handlerAsUtility().getBlockHashMembershipWitness(parsedAnchorBlockHash, parsedBlockHash);
249
+ if (!witness) {
250
+ throw new Error(
251
+ `Block hash ${parsedBlockHash.toString()} not found in the archive tree at anchor block ${parsedAnchorBlockHash.toString()}.`,
252
+ );
253
+ }
254
+ return witness.toNoirRepresentation();
255
+ }
256
+
257
+ // eslint-disable-next-line camelcase
258
+ async aztec_utl_getNullifierMembershipWitness(
259
+ [blockHash]: ACVMField[],
164
260
  [nullifier]: ACVMField[], // nullifier, we try to find the witness for (to prove inclusion)
165
261
  ): Promise<(ACVMField | ACVMField[])[]> {
166
- const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
262
+ const parsedBlockHash = BlockHash.fromString(blockHash);
167
263
  const parsedNullifier = Fr.fromString(nullifier);
168
264
 
169
- const witness = await this.handlerAsUtility().utilityGetNullifierMembershipWitness(
170
- BlockNumber(parsedBlockNumber),
171
- parsedNullifier,
172
- );
265
+ const witness = await this.handlerAsUtility().getNullifierMembershipWitness(parsedBlockHash, parsedNullifier);
173
266
  if (!witness) {
174
- throw new Error(`Nullifier witness not found for nullifier ${parsedNullifier} at block ${parsedBlockNumber}.`);
267
+ throw new Error(
268
+ `Nullifier witness not found for nullifier ${parsedNullifier} at block hash ${parsedBlockHash.toString()}.`,
269
+ );
175
270
  }
176
271
  return witness.toNoirRepresentation();
177
272
  }
178
273
 
179
- async utilityGetLowNullifierMembershipWitness(
180
- [blockNumber]: ACVMField[],
274
+ // eslint-disable-next-line camelcase
275
+ async aztec_utl_getLowNullifierMembershipWitness(
276
+ [blockHash]: ACVMField[],
181
277
  [nullifier]: ACVMField[], // nullifier, we try to find the low nullifier witness for (to prove non-inclusion)
182
278
  ): Promise<(ACVMField | ACVMField[])[]> {
183
- const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
279
+ const parsedBlockHash = BlockHash.fromString(blockHash);
184
280
  const parsedNullifier = Fr.fromString(nullifier);
185
281
 
186
- const witness = await this.handlerAsUtility().utilityGetLowNullifierMembershipWitness(
187
- BlockNumber(parsedBlockNumber),
188
- parsedNullifier,
189
- );
282
+ const witness = await this.handlerAsUtility().getLowNullifierMembershipWitness(parsedBlockHash, parsedNullifier);
190
283
  if (!witness) {
191
284
  throw new Error(
192
- `Low nullifier witness not found for nullifier ${parsedNullifier} at block ${parsedBlockNumber}.`,
285
+ `Low nullifier witness not found for nullifier ${parsedNullifier} at block hash ${parsedBlockHash.toString()}.`,
193
286
  );
194
287
  }
195
288
  return witness.toNoirRepresentation();
196
289
  }
197
290
 
198
- async utilityGetPublicDataWitness(
199
- [blockNumber]: ACVMField[],
291
+ // eslint-disable-next-line camelcase
292
+ async aztec_utl_getPublicDataWitness(
293
+ [blockHash]: ACVMField[],
200
294
  [leafSlot]: ACVMField[],
201
295
  ): Promise<(ACVMField | ACVMField[])[]> {
202
- const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
296
+ const parsedBlockHash = BlockHash.fromString(blockHash);
203
297
  const parsedLeafSlot = Fr.fromString(leafSlot);
204
298
 
205
- const witness = await this.handlerAsUtility().utilityGetPublicDataWitness(
206
- BlockNumber(parsedBlockNumber),
207
- parsedLeafSlot,
208
- );
299
+ const witness = await this.handlerAsUtility().getPublicDataWitness(parsedBlockHash, parsedLeafSlot);
209
300
  if (!witness) {
210
- throw new Error(`Public data witness not found for slot ${parsedLeafSlot} at block ${parsedBlockNumber}.`);
301
+ throw new Error(
302
+ `Public data witness not found for slot ${parsedLeafSlot} at block hash ${parsedBlockHash.toString()}.`,
303
+ );
211
304
  }
212
305
  return witness.toNoirRepresentation();
213
306
  }
214
307
 
215
- async utilityGetBlockHeader([blockNumber]: ACVMField[]): Promise<ACVMField[]> {
308
+ // eslint-disable-next-line camelcase
309
+ async aztec_utl_getBlockHeader([blockNumber]: ACVMField[]): Promise<ACVMField[]> {
216
310
  const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
217
311
 
218
- const header = await this.handlerAsUtility().utilityGetBlockHeader(BlockNumber(parsedBlockNumber));
312
+ const header = await this.handlerAsUtility().getBlockHeader(BlockNumber(parsedBlockNumber));
219
313
  if (!header) {
220
314
  throw new Error(`Block header not found for block ${parsedBlockNumber}.`);
221
315
  }
222
316
  return header.toFields().map(toACVMField);
223
317
  }
224
318
 
225
- async utilityGetAuthWitness([messageHash]: ACVMField[]): Promise<ACVMField[][]> {
319
+ // eslint-disable-next-line camelcase
320
+ async aztec_utl_getAuthWitness([messageHash]: ACVMField[]): Promise<ACVMField[][]> {
226
321
  const messageHashField = Fr.fromString(messageHash);
227
- const witness = await this.handlerAsUtility().utilityGetAuthWitness(messageHashField);
322
+ const witness = await this.handlerAsUtility().getAuthWitness(messageHashField);
228
323
  if (!witness) {
229
324
  throw new Error(`Unknown auth witness for message hash ${messageHashField}`);
230
325
  }
231
326
  return [witness.map(toACVMField)];
232
327
  }
233
328
 
234
- async utilityGetPublicKeysAndPartialAddress([address]: ACVMField[]): Promise<ACVMField[][]> {
329
+ // eslint-disable-next-line camelcase
330
+ async aztec_utl_getPublicKeysAndPartialAddress([address]: ACVMField[]): Promise<(ACVMField | ACVMField[])[]> {
235
331
  const parsedAddress = AztecAddress.fromField(Fr.fromString(address));
236
- const { publicKeys, partialAddress } =
237
- await this.handlerAsUtility().utilityGetPublicKeysAndPartialAddress(parsedAddress);
332
+ const result = await this.handlerAsUtility().getPublicKeysAndPartialAddress(parsedAddress);
238
333
 
239
- return [[...publicKeys.toFields(), partialAddress].map(toACVMField)];
334
+ // We are going to return a Noir Option struct to represent the possibility of null values. Options are a struct
335
+ // with two fields: `some` (a boolean) and `value` (a field array in this case).
336
+ if (result === undefined) {
337
+ // No data was found so we set `some` to 0 and pad `value` with zeros get the correct return size.
338
+ return [toACVMField(0), Array(13).fill(toACVMField(0))];
339
+ } else {
340
+ // Data was found so we set `some` to 1 and return it along with `value`.
341
+ return [toACVMField(1), [...result.publicKeys.toFields(), result.partialAddress].map(toACVMField)];
342
+ }
240
343
  }
241
344
 
242
- async utilityGetNotes(
345
+ // eslint-disable-next-line camelcase
346
+ async aztec_utl_getNotes(
243
347
  [ownerSome]: ACVMField[],
244
348
  [ownerValue]: ACVMField[],
245
349
  [storageSlot]: ACVMField[],
@@ -257,11 +361,11 @@ export class Oracle {
257
361
  [offset]: ACVMField[],
258
362
  [status]: ACVMField[],
259
363
  [maxNotes]: ACVMField[],
260
- [packedRetrievedNoteLength]: ACVMField[],
364
+ [packedHintedNoteLength]: ACVMField[],
261
365
  ): Promise<(ACVMField | ACVMField[])[]> {
262
366
  // Parse Option<AztecAddress>: ownerSome is 0 for None, 1 for Some
263
367
  const owner = Fr.fromString(ownerSome).toNumber() === 1 ? AztecAddress.fromString(ownerValue) : undefined;
264
- const noteDatas = await this.handlerAsUtility().utilityGetNotes(
368
+ const noteDatas = await this.handlerAsUtility().getNotes(
265
369
  owner,
266
370
  Fr.fromString(storageSlot),
267
371
  +numSelects,
@@ -279,28 +383,29 @@ export class Oracle {
279
383
  +status,
280
384
  );
281
385
 
282
- const returnDataAsArrayOfPackedRetrievedNotes = noteDatas.map(noteData =>
283
- packAsRetrievedNote({
386
+ const returnDataAsArrayOfPackedHintedNotes = noteDatas.map(noteData =>
387
+ packAsHintedNote({
284
388
  contractAddress: noteData.contractAddress,
285
389
  owner: noteData.owner,
286
390
  randomness: noteData.randomness,
287
391
  storageSlot: noteData.storageSlot,
288
392
  noteNonce: noteData.noteNonce,
289
- index: noteData.index,
393
+ isPending: noteData.isPending,
290
394
  note: noteData.note,
291
395
  }),
292
396
  );
293
397
 
294
398
  // Now we convert each sub-array to an array of ACVMField
295
- const returnDataAsArrayOfACVMFieldArrays = returnDataAsArrayOfPackedRetrievedNotes.map(subArray =>
399
+ const returnDataAsArrayOfACVMFieldArrays = returnDataAsArrayOfPackedHintedNotes.map(subArray =>
296
400
  subArray.map(toACVMField),
297
401
  );
298
402
 
299
403
  // At last we convert the array of arrays to a bounded vec of arrays
300
- return arrayOfArraysToBoundedVecOfArrays(returnDataAsArrayOfACVMFieldArrays, +maxNotes, +packedRetrievedNoteLength);
404
+ return arrayOfArraysToBoundedVecOfArrays(returnDataAsArrayOfACVMFieldArrays, +maxNotes, +packedHintedNoteLength);
301
405
  }
302
406
 
303
- privateNotifyCreatedNote(
407
+ // eslint-disable-next-line camelcase
408
+ aztec_prv_notifyCreatedNote(
304
409
  [owner]: ACVMField[],
305
410
  [storageSlot]: ACVMField[],
306
411
  [randomness]: ACVMField[],
@@ -309,7 +414,7 @@ export class Oracle {
309
414
  [noteHash]: ACVMField[],
310
415
  [counter]: ACVMField[],
311
416
  ): Promise<ACVMField[]> {
312
- this.handlerAsPrivate().privateNotifyCreatedNote(
417
+ this.handlerAsPrivate().notifyCreatedNote(
313
418
  AztecAddress.fromString(owner),
314
419
  Fr.fromString(storageSlot),
315
420
  Fr.fromString(randomness),
@@ -321,35 +426,47 @@ export class Oracle {
321
426
  return Promise.resolve([]);
322
427
  }
323
428
 
324
- async privateNotifyNullifiedNote(
429
+ // eslint-disable-next-line camelcase
430
+ async aztec_prv_notifyNullifiedNote(
325
431
  [innerNullifier]: ACVMField[],
326
432
  [noteHash]: ACVMField[],
327
433
  [counter]: ACVMField[],
328
434
  ): Promise<ACVMField[]> {
329
- await this.handlerAsPrivate().privateNotifyNullifiedNote(
330
- Fr.fromString(innerNullifier),
331
- Fr.fromString(noteHash),
332
- +counter,
333
- );
435
+ await this.handlerAsPrivate().notifyNullifiedNote(Fr.fromString(innerNullifier), Fr.fromString(noteHash), +counter);
334
436
  return [];
335
437
  }
336
438
 
337
- async privateNotifyCreatedNullifier([innerNullifier]: ACVMField[]): Promise<ACVMField[]> {
338
- await this.handlerAsPrivate().privateNotifyCreatedNullifier(Fr.fromString(innerNullifier));
439
+ // eslint-disable-next-line camelcase
440
+ async aztec_prv_notifyCreatedNullifier([innerNullifier]: ACVMField[]): Promise<ACVMField[]> {
441
+ await this.handlerAsPrivate().notifyCreatedNullifier(Fr.fromString(innerNullifier));
339
442
  return [];
340
443
  }
341
444
 
342
- async utilityCheckNullifierExists([innerNullifier]: ACVMField[]): Promise<ACVMField[]> {
343
- const exists = await this.handlerAsUtility().utilityCheckNullifierExists(Fr.fromString(innerNullifier));
445
+ // eslint-disable-next-line camelcase
446
+ async aztec_prv_isNullifierPending(
447
+ [innerNullifier]: ACVMField[],
448
+ [contractAddress]: ACVMField[],
449
+ ): Promise<ACVMField[]> {
450
+ const isPending = await this.handlerAsPrivate().isNullifierPending(
451
+ Fr.fromString(innerNullifier),
452
+ AztecAddress.fromString(contractAddress),
453
+ );
454
+ return [toACVMField(isPending)];
455
+ }
456
+
457
+ // eslint-disable-next-line camelcase
458
+ async aztec_utl_doesNullifierExist([innerNullifier]: ACVMField[]): Promise<ACVMField[]> {
459
+ const exists = await this.handlerAsUtility().doesNullifierExist(Fr.fromString(innerNullifier));
344
460
  return [toACVMField(exists)];
345
461
  }
346
462
 
347
- async utilityGetL1ToL2MembershipWitness(
463
+ // eslint-disable-next-line camelcase
464
+ async aztec_utl_getL1ToL2MembershipWitness(
348
465
  [contractAddress]: ACVMField[],
349
466
  [messageHash]: ACVMField[],
350
467
  [secret]: ACVMField[],
351
468
  ): Promise<(ACVMField | ACVMField[])[]> {
352
- const message = await this.handlerAsUtility().utilityGetL1ToL2MembershipWitness(
469
+ const message = await this.handlerAsUtility().getL1ToL2MembershipWitness(
353
470
  AztecAddress.fromString(contractAddress),
354
471
  Fr.fromString(messageHash),
355
472
  Fr.fromString(secret),
@@ -357,22 +474,24 @@ export class Oracle {
357
474
  return message.toNoirRepresentation();
358
475
  }
359
476
 
360
- async utilityStorageRead(
477
+ // eslint-disable-next-line camelcase
478
+ async aztec_utl_getFromPublicStorage(
479
+ [blockHash]: ACVMField[],
361
480
  [contractAddress]: ACVMField[],
362
481
  [startStorageSlot]: ACVMField[],
363
- [blockNumber]: ACVMField[],
364
482
  [numberOfElements]: ACVMField[],
365
483
  ): Promise<ACVMField[][]> {
366
- const values = await this.handlerAsUtility().utilityStorageRead(
484
+ const values = await this.handlerAsUtility().getFromPublicStorage(
485
+ BlockHash.fromString(blockHash),
367
486
  new AztecAddress(Fr.fromString(contractAddress)),
368
487
  Fr.fromString(startStorageSlot),
369
- BlockNumber(+blockNumber),
370
488
  +numberOfElements,
371
489
  );
372
490
  return [values.map(toACVMField)];
373
491
  }
374
492
 
375
- privateNotifyCreatedContractClassLog(
493
+ // eslint-disable-next-line camelcase
494
+ aztec_prv_notifyCreatedContractClassLog(
376
495
  [contractAddress]: ACVMField[],
377
496
  message: ACVMField[],
378
497
  [length]: ACVMField[],
@@ -381,11 +500,12 @@ export class Oracle {
381
500
  const logFields = new ContractClassLogFields(message.map(Fr.fromString));
382
501
  const log = new ContractClassLog(new AztecAddress(Fr.fromString(contractAddress)), logFields, +length);
383
502
 
384
- this.handlerAsPrivate().privateNotifyCreatedContractClassLog(log, +counter);
503
+ this.handlerAsPrivate().notifyCreatedContractClassLog(log, +counter);
385
504
  return Promise.resolve([]);
386
505
  }
387
506
 
388
- utilityDebugLog(
507
+ // eslint-disable-next-line camelcase
508
+ async aztec_utl_log(
389
509
  level: ACVMField[],
390
510
  message: ACVMField[],
391
511
  _ignoredFieldsSize: ACVMField[],
@@ -394,20 +514,21 @@ export class Oracle {
394
514
  const levelFr = Fr.fromString(level[0]);
395
515
  const messageStr = message.map(acvmField => String.fromCharCode(Fr.fromString(acvmField).toNumber())).join('');
396
516
  const fieldsFr = fields.map(Fr.fromString);
397
- this.handlerAsMisc().utilityDebugLog(levelFr.toNumber(), messageStr, fieldsFr);
398
- return Promise.resolve([]);
517
+ await this.handlerAsMisc().log(levelFr.toNumber(), messageStr, fieldsFr);
518
+ return [];
399
519
  }
400
520
 
401
521
  // This function's name is directly hardcoded in `circuit_recorder.ts`. Don't forget to update it there if you
402
522
  // change the name here.
403
- async privateCallPrivateFunction(
523
+ // eslint-disable-next-line camelcase
524
+ async aztec_prv_callPrivateFunction(
404
525
  [contractAddress]: ACVMField[],
405
526
  [functionSelector]: ACVMField[],
406
527
  [argsHash]: ACVMField[],
407
528
  [sideEffectCounter]: ACVMField[],
408
529
  [isStaticCall]: ACVMField[],
409
530
  ): Promise<ACVMField[][]> {
410
- const { endSideEffectCounter, returnsHash } = await this.handlerAsPrivate().privateCallPrivateFunction(
531
+ const { endSideEffectCounter, returnsHash } = await this.handlerAsPrivate().callPrivateFunction(
411
532
  AztecAddress.fromField(Fr.fromString(contractAddress)),
412
533
  FunctionSelector.fromField(Fr.fromString(functionSelector)),
413
534
  Fr.fromString(argsHash),
@@ -417,113 +538,165 @@ export class Oracle {
417
538
  return [[endSideEffectCounter, returnsHash].map(toACVMField)];
418
539
  }
419
540
 
420
- async privateNotifyEnqueuedPublicFunctionCall(
421
- [contractAddress]: ACVMField[],
422
- [calldataHash]: ACVMField[],
423
- [sideEffectCounter]: ACVMField[],
424
- [isStaticCall]: ACVMField[],
425
- ): Promise<ACVMField[]> {
426
- await this.handlerAsPrivate().privateNotifyEnqueuedPublicFunctionCall(
427
- AztecAddress.fromString(contractAddress),
428
- Fr.fromString(calldataHash),
429
- Fr.fromString(sideEffectCounter).toNumber(),
430
- Fr.fromString(isStaticCall).toBool(),
431
- );
541
+ // eslint-disable-next-line camelcase
542
+ async aztec_prv_assertValidPublicCalldata([calldataHash]: ACVMField[]): Promise<ACVMField[]> {
543
+ await this.handlerAsPrivate().assertValidPublicCalldata(Fr.fromString(calldataHash));
432
544
  return [];
433
545
  }
434
546
 
435
- async privateNotifySetPublicTeardownFunctionCall(
436
- [contractAddress]: ACVMField[],
437
- [calldataHash]: ACVMField[],
438
- [sideEffectCounter]: ACVMField[],
439
- [isStaticCall]: ACVMField[],
440
- ): Promise<ACVMField[]> {
441
- await this.handlerAsPrivate().privateNotifySetPublicTeardownFunctionCall(
442
- AztecAddress.fromString(contractAddress),
443
- Fr.fromString(calldataHash),
444
- Fr.fromString(sideEffectCounter).toNumber(),
445
- Fr.fromString(isStaticCall).toBool(),
446
- );
447
- return [];
448
- }
449
-
450
- async privateNotifySetMinRevertibleSideEffectCounter([minRevertibleSideEffectCounter]: ACVMField[]): Promise<
451
- ACVMField[]
452
- > {
453
- await this.handlerAsPrivate().privateNotifySetMinRevertibleSideEffectCounter(
454
- Fr.fromString(minRevertibleSideEffectCounter).toNumber(),
455
- );
547
+ // eslint-disable-next-line camelcase
548
+ async aztec_prv_notifyRevertiblePhaseStart([minRevertibleSideEffectCounter]: ACVMField[]): Promise<ACVMField[]> {
549
+ await this.handlerAsPrivate().notifyRevertiblePhaseStart(Fr.fromString(minRevertibleSideEffectCounter).toNumber());
456
550
  return Promise.resolve([]);
457
551
  }
458
552
 
459
- async privateIsSideEffectCounterRevertible([sideEffectCounter]: ACVMField[]): Promise<ACVMField[]> {
460
- const isRevertible = await this.handlerAsPrivate().privateIsSideEffectCounterRevertible(
553
+ // eslint-disable-next-line camelcase
554
+ async aztec_prv_isExecutionInRevertiblePhase([sideEffectCounter]: ACVMField[]): Promise<ACVMField[]> {
555
+ const isRevertible = await this.handlerAsPrivate().isExecutionInRevertiblePhase(
461
556
  Fr.fromString(sideEffectCounter).toNumber(),
462
557
  );
463
558
  return Promise.resolve([toACVMField(isRevertible)]);
464
559
  }
465
560
 
466
- async privateGetNextAppTagAsSender([sender]: ACVMField[], [recipient]: ACVMField[]): Promise<ACVMField[]> {
467
- const tag = await this.handlerAsPrivate().privateGetNextAppTagAsSender(
561
+ // eslint-disable-next-line camelcase
562
+ async aztec_prv_getNextAppTagAsSender([sender]: ACVMField[], [recipient]: ACVMField[]): Promise<ACVMField[]> {
563
+ const tag = await this.handlerAsPrivate().getNextAppTagAsSender(
468
564
  AztecAddress.fromString(sender),
469
565
  AztecAddress.fromString(recipient),
470
566
  );
471
567
  return [toACVMField(tag.value)];
472
568
  }
473
569
 
474
- async utilityFetchTaggedLogs([pendingTaggedLogArrayBaseSlot]: ACVMField[]): Promise<ACVMField[]> {
475
- await this.handlerAsUtility().utilityFetchTaggedLogs(Fr.fromString(pendingTaggedLogArrayBaseSlot));
570
+ // eslint-disable-next-line camelcase
571
+ async aztec_utl_getPendingTaggedLogs(
572
+ [pendingTaggedLogArrayBaseSlot]: ACVMField[],
573
+ [scope]: ACVMField[],
574
+ ): Promise<ACVMField[]> {
575
+ await this.handlerAsUtility().getPendingTaggedLogs(
576
+ Fr.fromString(pendingTaggedLogArrayBaseSlot),
577
+ AztecAddress.fromString(scope),
578
+ );
476
579
  return [];
477
580
  }
478
581
 
479
- async utilityValidateEnqueuedNotesAndEvents(
582
+ // eslint-disable-next-line camelcase
583
+ async aztec_utl_getPendingTaggedLogs_v2([scope]: ACVMField[]): Promise<ACVMField[]> {
584
+ const slot = await this.handlerAsUtility().getPendingTaggedLogsV2(AztecAddress.fromString(scope));
585
+ return [toACVMField(slot)];
586
+ }
587
+
588
+ // eslint-disable-next-line camelcase
589
+ async aztec_utl_validateAndStoreEnqueuedNotesAndEvents(
480
590
  [contractAddress]: ACVMField[],
481
591
  [noteValidationRequestsArrayBaseSlot]: ACVMField[],
482
592
  [eventValidationRequestsArrayBaseSlot]: ACVMField[],
593
+ [maxNotePackedLen]: ACVMField[],
594
+ [maxEventSerializedLen]: ACVMField[],
595
+ [scope]: ACVMField[],
483
596
  ): Promise<ACVMField[]> {
484
- await this.handlerAsUtility().utilityValidateEnqueuedNotesAndEvents(
597
+ await this.handlerAsUtility().validateAndStoreEnqueuedNotesAndEvents(
485
598
  AztecAddress.fromString(contractAddress),
486
599
  Fr.fromString(noteValidationRequestsArrayBaseSlot),
487
600
  Fr.fromString(eventValidationRequestsArrayBaseSlot),
601
+ Fr.fromString(maxNotePackedLen).toNumber(),
602
+ Fr.fromString(maxEventSerializedLen).toNumber(),
603
+ AztecAddress.fromString(scope),
488
604
  );
489
605
 
490
606
  return [];
491
607
  }
492
608
 
493
- async utilityBulkRetrieveLogs(
609
+ // eslint-disable-next-line camelcase
610
+ async aztec_utl_validateAndStoreEnqueuedNotesAndEvents_v2(
611
+ [noteValidationRequestsArrayBaseSlot]: ACVMField[],
612
+ [eventValidationRequestsArrayBaseSlot]: ACVMField[],
613
+ [maxNotePackedLen]: ACVMField[],
614
+ [maxEventSerializedLen]: ACVMField[],
615
+ [scope]: ACVMField[],
616
+ ): Promise<ACVMField[]> {
617
+ await this.handlerAsUtility().validateAndStoreEnqueuedNotesAndEventsV2(
618
+ Fr.fromString(noteValidationRequestsArrayBaseSlot),
619
+ Fr.fromString(eventValidationRequestsArrayBaseSlot),
620
+ Fr.fromString(maxNotePackedLen).toNumber(),
621
+ Fr.fromString(maxEventSerializedLen).toNumber(),
622
+ AztecAddress.fromString(scope),
623
+ );
624
+ return [];
625
+ }
626
+
627
+ // eslint-disable-next-line camelcase
628
+ async aztec_utl_getLogsByTag(
494
629
  [contractAddress]: ACVMField[],
495
630
  [logRetrievalRequestsArrayBaseSlot]: ACVMField[],
496
631
  [logRetrievalResponsesArrayBaseSlot]: ACVMField[],
632
+ [scope]: ACVMField[],
497
633
  ): Promise<ACVMField[]> {
498
- await this.handlerAsUtility().utilityBulkRetrieveLogs(
634
+ await this.handlerAsUtility().getLogsByTag(
499
635
  AztecAddress.fromString(contractAddress),
500
636
  Fr.fromString(logRetrievalRequestsArrayBaseSlot),
501
637
  Fr.fromString(logRetrievalResponsesArrayBaseSlot),
638
+ AztecAddress.fromString(scope),
502
639
  );
503
640
  return [];
504
641
  }
505
642
 
506
- async utilityStoreCapsule(
643
+ // eslint-disable-next-line camelcase
644
+ async aztec_utl_getMessageContextsByTxHash(
645
+ [contractAddress]: ACVMField[],
646
+ [messageContextRequestsArrayBaseSlot]: ACVMField[],
647
+ [messageContextResponsesArrayBaseSlot]: ACVMField[],
648
+ [scope]: ACVMField[],
649
+ ): Promise<ACVMField[]> {
650
+ await this.handlerAsUtility().getMessageContextsByTxHash(
651
+ AztecAddress.fromString(contractAddress),
652
+ Fr.fromString(messageContextRequestsArrayBaseSlot),
653
+ Fr.fromString(messageContextResponsesArrayBaseSlot),
654
+ AztecAddress.fromString(scope),
655
+ );
656
+ return [];
657
+ }
658
+
659
+ // eslint-disable-next-line camelcase
660
+ async aztec_utl_getLogsByTag_v2([requestArrayBaseSlot]: ACVMField[]): Promise<ACVMField[]> {
661
+ const responseSlot = await this.handlerAsUtility().getLogsByTagV2(Fr.fromString(requestArrayBaseSlot));
662
+ return [toACVMField(responseSlot)];
663
+ }
664
+
665
+ // eslint-disable-next-line camelcase
666
+ async aztec_utl_getMessageContextsByTxHash_v2([requestArrayBaseSlot]: ACVMField[]): Promise<ACVMField[]> {
667
+ const responseSlot = await this.handlerAsUtility().getMessageContextsByTxHashV2(
668
+ Fr.fromString(requestArrayBaseSlot),
669
+ );
670
+ return [toACVMField(responseSlot)];
671
+ }
672
+
673
+ // eslint-disable-next-line camelcase
674
+ aztec_utl_setCapsule(
507
675
  [contractAddress]: ACVMField[],
508
676
  [slot]: ACVMField[],
509
677
  capsule: ACVMField[],
678
+ [scope]: ACVMField[],
510
679
  ): Promise<ACVMField[]> {
511
- await this.handlerAsUtility().utilityStoreCapsule(
680
+ this.handlerAsUtility().setCapsule(
512
681
  AztecAddress.fromField(Fr.fromString(contractAddress)),
513
682
  Fr.fromString(slot),
514
683
  capsule.map(Fr.fromString),
684
+ AztecAddress.fromField(Fr.fromString(scope)),
515
685
  );
516
- return [];
686
+ return Promise.resolve([]);
517
687
  }
518
688
 
519
- async utilityLoadCapsule(
689
+ // eslint-disable-next-line camelcase
690
+ async aztec_utl_getCapsule(
520
691
  [contractAddress]: ACVMField[],
521
692
  [slot]: ACVMField[],
522
693
  [tSize]: ACVMField[],
694
+ [scope]: ACVMField[],
523
695
  ): Promise<(ACVMField | ACVMField[])[]> {
524
- const values = await this.handlerAsUtility().utilityLoadCapsule(
696
+ const values = await this.handlerAsUtility().getCapsule(
525
697
  AztecAddress.fromField(Fr.fromString(contractAddress)),
526
698
  Fr.fromString(slot),
699
+ AztecAddress.fromField(Fr.fromString(scope)),
527
700
  );
528
701
 
529
702
  // We are going to return a Noir Option struct to represent the possibility of null values. Options are a struct
@@ -537,30 +710,86 @@ export class Oracle {
537
710
  }
538
711
  }
539
712
 
540
- async utilityDeleteCapsule([contractAddress]: ACVMField[], [slot]: ACVMField[]): Promise<ACVMField[]> {
541
- await this.handlerAsUtility().utilityDeleteCapsule(
713
+ // eslint-disable-next-line camelcase
714
+ aztec_utl_deleteCapsule(
715
+ [contractAddress]: ACVMField[],
716
+ [slot]: ACVMField[],
717
+ [scope]: ACVMField[],
718
+ ): Promise<ACVMField[]> {
719
+ this.handlerAsUtility().deleteCapsule(
542
720
  AztecAddress.fromField(Fr.fromString(contractAddress)),
543
721
  Fr.fromString(slot),
722
+ AztecAddress.fromField(Fr.fromString(scope)),
544
723
  );
545
- return [];
724
+ return Promise.resolve([]);
546
725
  }
547
726
 
548
- async utilityCopyCapsule(
727
+ // eslint-disable-next-line camelcase
728
+ async aztec_utl_copyCapsule(
549
729
  [contractAddress]: ACVMField[],
550
730
  [srcSlot]: ACVMField[],
551
731
  [dstSlot]: ACVMField[],
552
732
  [numEntries]: ACVMField[],
733
+ [scope]: ACVMField[],
553
734
  ): Promise<ACVMField[]> {
554
- await this.handlerAsUtility().utilityCopyCapsule(
735
+ await this.handlerAsUtility().copyCapsule(
555
736
  AztecAddress.fromField(Fr.fromString(contractAddress)),
556
737
  Fr.fromString(srcSlot),
557
738
  Fr.fromString(dstSlot),
558
739
  Fr.fromString(numEntries).toNumber(),
740
+ AztecAddress.fromField(Fr.fromString(scope)),
559
741
  );
560
742
  return [];
561
743
  }
562
744
 
563
- async utilityAes128Decrypt(
745
+ // eslint-disable-next-line camelcase
746
+ aztec_utl_pushEphemeral([slot]: ACVMField[], elements: ACVMField[]): Promise<ACVMField[]> {
747
+ const newLen = this.handlerAsUtility().pushEphemeral(Fr.fromString(slot), elements.map(Fr.fromString));
748
+ return Promise.resolve([toACVMField(newLen)]);
749
+ }
750
+
751
+ // eslint-disable-next-line camelcase
752
+ aztec_utl_popEphemeral([slot]: ACVMField[]): Promise<ACVMField[][]> {
753
+ const element = this.handlerAsUtility().popEphemeral(Fr.fromString(slot));
754
+ return Promise.resolve([element.map(toACVMField)]);
755
+ }
756
+
757
+ // eslint-disable-next-line camelcase
758
+ aztec_utl_getEphemeral([slot]: ACVMField[], [index]: ACVMField[]): Promise<ACVMField[][]> {
759
+ const element = this.handlerAsUtility().getEphemeral(Fr.fromString(slot), Fr.fromString(index).toNumber());
760
+ return Promise.resolve([element.map(toACVMField)]);
761
+ }
762
+
763
+ // eslint-disable-next-line camelcase
764
+ aztec_utl_setEphemeral([slot]: ACVMField[], [index]: ACVMField[], elements: ACVMField[]): Promise<ACVMField[]> {
765
+ this.handlerAsUtility().setEphemeral(
766
+ Fr.fromString(slot),
767
+ Fr.fromString(index).toNumber(),
768
+ elements.map(Fr.fromString),
769
+ );
770
+ return Promise.resolve([]);
771
+ }
772
+
773
+ // eslint-disable-next-line camelcase
774
+ aztec_utl_getEphemeralLen([slot]: ACVMField[]): Promise<ACVMField[]> {
775
+ const len = this.handlerAsUtility().getEphemeralLen(Fr.fromString(slot));
776
+ return Promise.resolve([toACVMField(len)]);
777
+ }
778
+
779
+ // eslint-disable-next-line camelcase
780
+ aztec_utl_removeEphemeral([slot]: ACVMField[], [index]: ACVMField[]): Promise<ACVMField[]> {
781
+ this.handlerAsUtility().removeEphemeral(Fr.fromString(slot), Fr.fromString(index).toNumber());
782
+ return Promise.resolve([]);
783
+ }
784
+
785
+ // eslint-disable-next-line camelcase
786
+ aztec_utl_clearEphemeral([slot]: ACVMField[]): Promise<ACVMField[]> {
787
+ this.handlerAsUtility().clearEphemeral(Fr.fromString(slot));
788
+ return Promise.resolve([]);
789
+ }
790
+
791
+ // eslint-disable-next-line camelcase
792
+ async aztec_utl_decryptAes128(
564
793
  ciphertextBVecStorage: ACVMField[],
565
794
  [ciphertextLength]: ACVMField[],
566
795
  iv: ACVMField[],
@@ -570,36 +799,63 @@ export class Oracle {
570
799
  const ivBuffer = fromUintArray(iv, 8);
571
800
  const symKeyBuffer = fromUintArray(symKey, 8);
572
801
 
573
- const plaintext = await this.handlerAsUtility().utilityAes128Decrypt(ciphertext, ivBuffer, symKeyBuffer);
574
- return bufferToBoundedVec(plaintext, ciphertextBVecStorage.length);
802
+ // Noir Option<BoundedVec> is encoded as [is_some: Field, storage: Field[], length: Field].
803
+ try {
804
+ const plaintext = await this.handlerAsUtility().decryptAes128(ciphertext, ivBuffer, symKeyBuffer);
805
+ const [storage, length] = bufferToBoundedVec(plaintext, ciphertextBVecStorage.length);
806
+ return [toACVMField(1), storage, length];
807
+ } catch {
808
+ const zeroStorage = Array(ciphertextBVecStorage.length).fill(toACVMField(0));
809
+ return [toACVMField(0), zeroStorage, toACVMField(0)];
810
+ }
575
811
  }
576
812
 
577
- async utilityGetSharedSecret(
813
+ // eslint-disable-next-line camelcase
814
+ async aztec_utl_getSharedSecret(
578
815
  [address]: ACVMField[],
579
816
  [ephPKField0]: ACVMField[],
580
817
  [ephPKField1]: ACVMField[],
581
818
  [ephPKField2]: ACVMField[],
819
+ [contractAddress]: ACVMField[],
582
820
  ): Promise<ACVMField[]> {
583
- const secret = await this.handlerAsUtility().utilityGetSharedSecret(
821
+ const secret = await this.handlerAsUtility().getSharedSecret(
584
822
  AztecAddress.fromField(Fr.fromString(address)),
585
823
  Point.fromFields([ephPKField0, ephPKField1, ephPKField2].map(Fr.fromString)),
824
+ AztecAddress.fromField(Fr.fromString(contractAddress)),
825
+ );
826
+ return [toACVMField(secret)];
827
+ }
828
+
829
+ // eslint-disable-next-line camelcase
830
+ aztec_utl_setContractSyncCacheInvalid(
831
+ [contractAddress]: ACVMField[],
832
+ scopes: ACVMField[],
833
+ [scopeCount]: ACVMField[],
834
+ ): Promise<ACVMField[]> {
835
+ const scopeAddresses = scopes.slice(0, +scopeCount).map(s => AztecAddress.fromField(Fr.fromString(s)));
836
+ this.handlerAsUtility().setContractSyncCacheInvalid(
837
+ AztecAddress.fromField(Fr.fromString(contractAddress)),
838
+ scopeAddresses,
586
839
  );
587
- return secret.toFields().map(toACVMField);
840
+ return Promise.resolve([]);
588
841
  }
589
842
 
590
- async utilityEmitOffchainEffect(data: ACVMField[]) {
591
- await this.handlerAsPrivate().utilityEmitOffchainEffect(data.map(Fr.fromString));
843
+ // eslint-disable-next-line camelcase
844
+ async aztec_utl_emitOffchainEffect(data: ACVMField[]) {
845
+ await this.handlerAsUtility().emitOffchainEffect(data.map(Fr.fromString));
592
846
  return [];
593
847
  }
594
848
 
595
- async privateGetSenderForTags(): Promise<ACVMField[]> {
596
- const sender = await this.handlerAsPrivate().privateGetSenderForTags();
849
+ // eslint-disable-next-line camelcase
850
+ async aztec_prv_getSenderForTags(): Promise<ACVMField[]> {
851
+ const sender = await this.handlerAsPrivate().getSenderForTags();
597
852
  // Return [1, address] for Some(address), [0, 0] for None
598
853
  return sender ? [toACVMField(1n), toACVMField(sender)] : [toACVMField(0n), toACVMField(0n)];
599
854
  }
600
855
 
601
- async privateSetSenderForTags([senderForTags]: ACVMField[]): Promise<ACVMField[]> {
602
- await this.handlerAsPrivate().privateSetSenderForTags(AztecAddress.fromField(Fr.fromString(senderForTags)));
856
+ // eslint-disable-next-line camelcase
857
+ async aztec_prv_setSenderForTags([senderForTags]: ACVMField[]): Promise<ACVMField[]> {
858
+ await this.handlerAsPrivate().setSenderForTags(AztecAddress.fromField(Fr.fromString(senderForTags)));
603
859
  return [];
604
860
  }
605
861
  }