@aztec/pxe 0.0.1-commit.04852196a → 0.0.1-commit.04d373f

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 (312) hide show
  1. package/dest/bin/check_oracle_version.d.ts +12 -2
  2. package/dest/bin/check_oracle_version.d.ts.map +1 -1
  3. package/dest/bin/check_oracle_version.js +31 -25
  4. package/dest/bin/index.d.ts +2 -0
  5. package/dest/bin/index.d.ts.map +1 -0
  6. package/dest/bin/index.js +1 -0
  7. package/dest/block_synchronizer/block_stream_source.d.ts +10 -0
  8. package/dest/block_synchronizer/block_stream_source.d.ts.map +1 -0
  9. package/dest/block_synchronizer/block_stream_source.js +62 -0
  10. package/dest/block_synchronizer/block_synchronizer.d.ts +6 -2
  11. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
  12. package/dest/block_synchronizer/block_synchronizer.js +30 -10
  13. package/dest/config/index.d.ts +7 -1
  14. package/dest/config/index.d.ts.map +1 -1
  15. package/dest/config/index.js +12 -14
  16. package/dest/contract_function_simulator/contract_function_simulator.d.ts +16 -5
  17. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  18. package/dest/contract_function_simulator/contract_function_simulator.js +51 -16
  19. package/dest/contract_function_simulator/ephemeral_array_service.d.ts +28 -0
  20. package/dest/contract_function_simulator/ephemeral_array_service.d.ts.map +1 -0
  21. package/dest/contract_function_simulator/ephemeral_array_service.js +78 -0
  22. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +7 -11
  23. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -1
  24. package/dest/contract_function_simulator/execution_tagging_index_cache.js +19 -15
  25. package/dest/contract_function_simulator/index.d.ts +4 -1
  26. package/dest/contract_function_simulator/index.d.ts.map +1 -1
  27. package/dest/contract_function_simulator/index.js +3 -0
  28. package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts +48 -0
  29. package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts.map +1 -0
  30. package/dest/contract_function_simulator/noir-structs/bounded_vec.js +45 -0
  31. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +4 -6
  32. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
  33. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +8 -9
  34. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +13 -3
  35. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts.map +1 -1
  36. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +35 -4
  37. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +2 -2
  38. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -1
  39. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +2 -4
  40. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +4 -7
  41. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
  42. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +6 -10
  43. package/dest/contract_function_simulator/noir-structs/option.d.ts +61 -0
  44. package/dest/contract_function_simulator/noir-structs/option.d.ts.map +1 -0
  45. package/dest/contract_function_simulator/noir-structs/option.js +62 -0
  46. package/dest/contract_function_simulator/oracle/interfaces.d.ts +50 -38
  47. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
  48. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +2 -2
  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 +2 -2
  51. package/dest/contract_function_simulator/oracle/oracle.d.ts +73 -44
  52. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
  53. package/dest/contract_function_simulator/oracle/oracle.js +403 -262
  54. package/dest/contract_function_simulator/oracle/oracle_registry.d.ts +147 -0
  55. package/dest/contract_function_simulator/oracle/oracle_registry.d.ts.map +1 -0
  56. package/dest/contract_function_simulator/oracle/oracle_registry.js +1199 -0
  57. package/dest/contract_function_simulator/oracle/private_execution.js +5 -3
  58. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +36 -62
  59. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  60. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +77 -80
  61. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +100 -57
  62. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  63. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +375 -122
  64. package/dest/contract_function_simulator/pick_notes.d.ts +1 -1
  65. package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -1
  66. package/dest/contract_function_simulator/pick_notes.js +20 -3
  67. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +1 -1
  68. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -1
  69. package/dest/contract_function_simulator/proxied_contract_data_source.js +35 -64
  70. package/dest/contract_logging.d.ts +9 -4
  71. package/dest/contract_logging.d.ts.map +1 -1
  72. package/dest/contract_logging.js +21 -6
  73. package/dest/contract_sync/contract_sync_service.d.ts +7 -8
  74. package/dest/contract_sync/contract_sync_service.d.ts.map +1 -1
  75. package/dest/contract_sync/contract_sync_service.js +87 -49
  76. package/dest/contract_sync/helpers.d.ts +2 -4
  77. package/dest/contract_sync/helpers.d.ts.map +1 -1
  78. package/dest/contract_sync/helpers.js +12 -14
  79. package/dest/debug/pxe_debug_utils.d.ts +3 -8
  80. package/dest/debug/pxe_debug_utils.d.ts.map +1 -1
  81. package/dest/debug/pxe_debug_utils.js +0 -6
  82. package/dest/entrypoints/client/bundle/index.d.ts +1 -2
  83. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  84. package/dest/entrypoints/client/bundle/index.js +0 -1
  85. package/dest/entrypoints/client/bundle/utils.d.ts +2 -2
  86. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  87. package/dest/entrypoints/client/bundle/utils.js +13 -5
  88. package/dest/entrypoints/client/lazy/index.d.ts +1 -2
  89. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  90. package/dest/entrypoints/client/lazy/index.js +0 -1
  91. package/dest/entrypoints/client/lazy/utils.d.ts +2 -2
  92. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  93. package/dest/entrypoints/client/lazy/utils.js +13 -5
  94. package/dest/entrypoints/pxe_creation_options.d.ts +9 -1
  95. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  96. package/dest/entrypoints/pxe_creation_options.js +3 -1
  97. package/dest/entrypoints/server/index.d.ts +3 -3
  98. package/dest/entrypoints/server/index.d.ts.map +1 -1
  99. package/dest/entrypoints/server/index.js +2 -2
  100. package/dest/entrypoints/server/utils.d.ts +4 -3
  101. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  102. package/dest/entrypoints/server/utils.js +13 -5
  103. package/dest/events/event_service.d.ts +15 -6
  104. package/dest/events/event_service.d.ts.map +1 -1
  105. package/dest/events/event_service.js +44 -11
  106. package/dest/events/private_event_filter_validator.d.ts +3 -2
  107. package/dest/events/private_event_filter_validator.d.ts.map +1 -1
  108. package/dest/events/private_event_filter_validator.js +15 -0
  109. package/dest/hooks/authorize_utility_call.d.ts +41 -0
  110. package/dest/hooks/authorize_utility_call.d.ts.map +1 -0
  111. package/dest/hooks/authorize_utility_call.js +4 -0
  112. package/dest/hooks/execution_hooks.d.ts +42 -0
  113. package/dest/hooks/execution_hooks.d.ts.map +1 -0
  114. package/dest/hooks/execution_hooks.js +9 -0
  115. package/dest/hooks/index.d.ts +4 -0
  116. package/dest/hooks/index.d.ts.map +1 -0
  117. package/dest/hooks/index.js +1 -0
  118. package/dest/logs/log_service.d.ts +9 -9
  119. package/dest/logs/log_service.d.ts.map +1 -1
  120. package/dest/logs/log_service.js +122 -72
  121. package/dest/messages/message_context_service.d.ts +17 -0
  122. package/dest/messages/message_context_service.d.ts.map +1 -0
  123. package/dest/messages/message_context_service.js +38 -0
  124. package/dest/notes/note_service.d.ts +27 -6
  125. package/dest/notes/note_service.d.ts.map +1 -1
  126. package/dest/notes/note_service.js +80 -56
  127. package/dest/notes_filter.d.ts +2 -3
  128. package/dest/notes_filter.d.ts.map +1 -1
  129. package/dest/oracle_version.d.ts +4 -3
  130. package/dest/oracle_version.d.ts.map +1 -1
  131. package/dest/oracle_version.js +20 -10
  132. package/dest/private_kernel/batch_planner.d.ts +47 -0
  133. package/dest/private_kernel/batch_planner.d.ts.map +1 -0
  134. package/dest/private_kernel/batch_planner.js +104 -0
  135. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.js +1 -1
  136. package/dest/private_kernel/hints/test_utils.d.ts +1 -1
  137. package/dest/private_kernel/hints/test_utils.d.ts.map +1 -1
  138. package/dest/private_kernel/hints/test_utils.js +2 -3
  139. package/dest/private_kernel/private_kernel_execution_prover.d.ts +6 -2
  140. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  141. package/dest/private_kernel/private_kernel_execution_prover.js +152 -59
  142. package/dest/private_kernel/private_kernel_oracle.d.ts +10 -10
  143. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  144. package/dest/private_kernel/private_kernel_oracle.js +24 -22
  145. package/dest/pxe.d.ts +59 -10
  146. package/dest/pxe.d.ts.map +1 -1
  147. package/dest/pxe.js +154 -93
  148. package/dest/storage/anchor_block_store/anchor_block_store.js +1 -1
  149. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.d.ts +42 -0
  150. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.d.ts.map +1 -0
  151. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.js +93 -0
  152. package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts +15 -0
  153. package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts.map +1 -0
  154. package/dest/storage/backwards_compatibility_tests/schema_tests.js +591 -0
  155. package/dest/storage/backwards_compatibility_tests/store_spy.d.ts +19 -0
  156. package/dest/storage/backwards_compatibility_tests/store_spy.d.ts.map +1 -0
  157. package/dest/storage/backwards_compatibility_tests/store_spy.js +63 -0
  158. package/dest/storage/capsule_store/capsule_service.d.ts +21 -0
  159. package/dest/storage/capsule_store/capsule_service.d.ts.map +1 -0
  160. package/dest/storage/capsule_store/capsule_service.js +50 -0
  161. package/dest/storage/capsule_store/capsule_store.d.ts +9 -9
  162. package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -1
  163. package/dest/storage/capsule_store/capsule_store.js +36 -28
  164. package/dest/storage/capsule_store/index.d.ts +2 -1
  165. package/dest/storage/capsule_store/index.d.ts.map +1 -1
  166. package/dest/storage/capsule_store/index.js +1 -0
  167. package/dest/storage/contract_store/contract_store.d.ts +1 -1
  168. package/dest/storage/contract_store/contract_store.d.ts.map +1 -1
  169. package/dest/storage/contract_store/contract_store.js +9 -26
  170. package/dest/storage/metadata.d.ts +1 -1
  171. package/dest/storage/metadata.js +1 -1
  172. package/dest/storage/note_store/note_store.d.ts +1 -1
  173. package/dest/storage/note_store/note_store.d.ts.map +1 -1
  174. package/dest/storage/note_store/note_store.js +2 -2
  175. package/dest/storage/open_pxe_stores.d.ts +33 -0
  176. package/dest/storage/open_pxe_stores.d.ts.map +1 -0
  177. package/dest/storage/open_pxe_stores.js +27 -0
  178. package/dest/storage/private_event_store/private_event_store.d.ts +1 -1
  179. package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -1
  180. package/dest/storage/private_event_store/private_event_store.js +3 -0
  181. package/dest/storage/private_event_store/stored_private_event.js +1 -1
  182. package/dest/storage/tagging_store/recipient_tagging_store.d.ts +6 -6
  183. package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -1
  184. package/dest/storage/tagging_store/sender_tagging_store.d.ts +29 -28
  185. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -1
  186. package/dest/storage/tagging_store/sender_tagging_store.js +141 -115
  187. package/dest/tagging/get_all_logs_by_tags.d.ts +34 -10
  188. package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -1
  189. package/dest/tagging/get_all_logs_by_tags.js +36 -37
  190. package/dest/tagging/index.d.ts +6 -5
  191. package/dest/tagging/index.d.ts.map +1 -1
  192. package/dest/tagging/index.js +4 -3
  193. package/dest/tagging/persist_sender_tagging_index_ranges.d.ts +29 -0
  194. package/dest/tagging/persist_sender_tagging_index_ranges.d.ts.map +1 -0
  195. package/dest/tagging/persist_sender_tagging_index_ranges.js +42 -0
  196. package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts +56 -0
  197. package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts.map +1 -0
  198. package/dest/tagging/recipient_sync/sync_tagged_private_logs.js +163 -0
  199. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts +3 -3
  200. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts.map +1 -1
  201. package/dest/tagging/reconcile_tagging_index_ranges.d.ts +36 -0
  202. package/dest/tagging/reconcile_tagging_index_ranges.d.ts.map +1 -0
  203. package/dest/tagging/reconcile_tagging_index_ranges.js +74 -0
  204. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +4 -5
  205. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -1
  206. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +29 -10
  207. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +13 -7
  208. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -1
  209. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +41 -10
  210. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +5 -4
  211. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -1
  212. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +26 -13
  213. package/package.json +20 -17
  214. package/src/bin/check_oracle_version.ts +41 -31
  215. package/src/bin/index.ts +1 -0
  216. package/src/block_synchronizer/block_stream_source.ts +81 -0
  217. package/src/block_synchronizer/block_synchronizer.ts +33 -11
  218. package/src/config/index.ts +14 -8
  219. package/src/contract_function_simulator/contract_function_simulator.ts +80 -20
  220. package/src/contract_function_simulator/ephemeral_array_service.ts +110 -0
  221. package/src/contract_function_simulator/execution_tagging_index_cache.ts +19 -18
  222. package/src/contract_function_simulator/index.ts +3 -0
  223. package/src/contract_function_simulator/noir-structs/bounded_vec.ts +55 -0
  224. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +10 -9
  225. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +36 -3
  226. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +2 -5
  227. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +5 -10
  228. package/src/contract_function_simulator/noir-structs/option.ts +69 -0
  229. package/src/contract_function_simulator/oracle/interfaces.ts +65 -55
  230. package/src/contract_function_simulator/oracle/note_packing_utils.ts +3 -3
  231. package/src/contract_function_simulator/oracle/oracle.ts +497 -451
  232. package/src/contract_function_simulator/oracle/oracle_registry.ts +904 -0
  233. package/src/contract_function_simulator/oracle/private_execution.ts +4 -4
  234. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +102 -115
  235. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +531 -202
  236. package/src/contract_function_simulator/pick_notes.ts +22 -3
  237. package/src/contract_function_simulator/proxied_contract_data_source.ts +41 -64
  238. package/src/contract_logging.ts +18 -5
  239. package/src/contract_sync/contract_sync_service.ts +120 -83
  240. package/src/contract_sync/helpers.ts +13 -25
  241. package/src/debug/pxe_debug_utils.ts +3 -11
  242. package/src/entrypoints/client/bundle/index.ts +0 -1
  243. package/src/entrypoints/client/bundle/utils.ts +10 -5
  244. package/src/entrypoints/client/lazy/index.ts +0 -1
  245. package/src/entrypoints/client/lazy/utils.ts +10 -5
  246. package/src/entrypoints/pxe_creation_options.ts +14 -0
  247. package/src/entrypoints/server/index.ts +2 -2
  248. package/src/entrypoints/server/utils.ts +15 -6
  249. package/src/events/event_service.ts +69 -21
  250. package/src/events/private_event_filter_validator.ts +21 -1
  251. package/src/hooks/authorize_utility_call.ts +44 -0
  252. package/src/hooks/execution_hooks.ts +48 -0
  253. package/src/hooks/index.ts +7 -0
  254. package/src/logs/log_service.ts +153 -134
  255. package/src/messages/message_context_service.ts +45 -0
  256. package/src/notes/note_service.ts +119 -85
  257. package/src/notes_filter.ts +1 -3
  258. package/src/oracle_version.ts +20 -10
  259. package/src/private_kernel/batch_planner.ts +169 -0
  260. package/src/private_kernel/hints/private_kernel_reset_private_inputs_builder.ts +1 -1
  261. package/src/private_kernel/hints/test_utils.ts +2 -9
  262. package/src/private_kernel/private_kernel_execution_prover.ts +240 -82
  263. package/src/private_kernel/private_kernel_oracle.ts +35 -25
  264. package/src/pxe.ts +262 -98
  265. package/src/storage/anchor_block_store/anchor_block_store.ts +1 -1
  266. package/src/storage/backwards_compatibility_tests/__snapshots__/AddressStore.json +22 -0
  267. package/src/storage/backwards_compatibility_tests/__snapshots__/AnchorBlockStore.json +3 -0
  268. package/src/storage/backwards_compatibility_tests/__snapshots__/CapsuleStore.json +16 -0
  269. package/src/storage/backwards_compatibility_tests/__snapshots__/ContractStore.json +28 -0
  270. package/src/storage/backwards_compatibility_tests/__snapshots__/KeyStore.json +52 -0
  271. package/src/storage/backwards_compatibility_tests/__snapshots__/L2TipsKVStore.json +46 -0
  272. package/src/storage/backwards_compatibility_tests/__snapshots__/NoteStore.json +36 -0
  273. package/src/storage/backwards_compatibility_tests/__snapshots__/PrivateEventStore.json +44 -0
  274. package/src/storage/backwards_compatibility_tests/__snapshots__/RecipientTaggingStore.json +18 -0
  275. package/src/storage/backwards_compatibility_tests/__snapshots__/SenderAddressBookStore.json +16 -0
  276. package/src/storage/backwards_compatibility_tests/__snapshots__/SenderTaggingStore.json +22 -0
  277. package/src/storage/backwards_compatibility_tests/__snapshots__/opened_stores.json +97 -0
  278. package/src/storage/backwards_compatibility_tests/kv_store_snapshot.ts +122 -0
  279. package/src/storage/backwards_compatibility_tests/schema_tests.ts +712 -0
  280. package/src/storage/backwards_compatibility_tests/store_spy.ts +73 -0
  281. package/src/storage/capsule_store/capsule_service.ts +90 -0
  282. package/src/storage/capsule_store/capsule_store.ts +44 -26
  283. package/src/storage/capsule_store/index.ts +1 -0
  284. package/src/storage/contract_store/contract_store.ts +14 -35
  285. package/src/storage/metadata.ts +1 -1
  286. package/src/storage/note_store/note_store.ts +2 -5
  287. package/src/storage/open_pxe_stores.ts +49 -0
  288. package/src/storage/private_event_store/private_event_store.ts +4 -0
  289. package/src/storage/private_event_store/stored_private_event.ts +1 -1
  290. package/src/storage/tagging_store/recipient_tagging_store.ts +5 -9
  291. package/src/storage/tagging_store/sender_tagging_store.ts +185 -138
  292. package/src/tagging/get_all_logs_by_tags.ts +78 -50
  293. package/src/tagging/index.ts +5 -4
  294. package/src/tagging/persist_sender_tagging_index_ranges.ts +57 -0
  295. package/src/tagging/recipient_sync/sync_tagged_private_logs.ts +240 -0
  296. package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +2 -2
  297. package/src/tagging/reconcile_tagging_index_ranges.ts +102 -0
  298. package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +52 -12
  299. package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +44 -14
  300. package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +23 -14
  301. package/dest/access_scopes.d.ts +0 -9
  302. package/dest/access_scopes.d.ts.map +0 -1
  303. package/dest/access_scopes.js +0 -6
  304. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +0 -14
  305. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +0 -1
  306. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +0 -99
  307. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +0 -14
  308. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +0 -1
  309. package/dest/tagging/recipient_sync/utils/load_logs_for_range.js +0 -33
  310. package/src/access_scopes.ts +0 -9
  311. package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +0 -140
  312. package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +0 -44
@@ -1,22 +1,8 @@
1
- import { BlockNumber } from '@aztec/foundation/branded-types';
2
- import { Fr } from '@aztec/foundation/curves/bn254';
3
- import { Point } from '@aztec/foundation/curves/grumpkin';
4
- import {
5
- type ACIRCallback,
6
- type ACVMField,
7
- arrayOfArraysToBoundedVecOfArrays,
8
- bufferToBoundedVec,
9
- fromUintArray,
10
- fromUintBoundedVec,
11
- toACVMField,
12
- } from '@aztec/simulator/client';
13
- import { FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
14
- import { AztecAddress } from '@aztec/stdlib/aztec-address';
15
- import { BlockHash } from '@aztec/stdlib/block';
16
- import { ContractClassLog, ContractClassLogFields } from '@aztec/stdlib/logs';
1
+ import type { ACIRCallback, ACVMField } from '@aztec/simulator/client';
17
2
 
3
+ import { ORACLE_VERSION_MAJOR, ORACLE_VERSION_MINOR } from '../../oracle_version.js';
18
4
  import type { IMiscOracle, IPrivateExecutionOracle, IUtilityExecutionOracle } from './interfaces.js';
19
- import { packAsHintedNote } from './note_packing_utils.js';
5
+ import { callHandler } from './oracle_registry.js';
20
6
 
21
7
  export class UnavailableOracleError extends Error {
22
8
  constructor(oracleName: string) {
@@ -26,6 +12,25 @@ export class UnavailableOracleError extends Error {
26
12
 
27
13
  /**
28
14
  * A data source that has all the apis required by Aztec.nr.
15
+ *
16
+ * ## Oracle naming conventions
17
+ *
18
+ * We try to keep oracle naming consistent, please see below the conventions we adhere to.
19
+ *
20
+ * Each oracle method name has the form `aztec_{scope}_{verb}{Object}`, where:
21
+ *
22
+ * - **Scope prefix** indicates the execution context required:
23
+ * - `aztec_prv_` — available only during private function execution.
24
+ * - `aztec_utl_` — available during both utility and private execution.
25
+ *
26
+ * - **Verb** signals the operation's semantics (verb-first, then object):
27
+ * - `get` — read / lookup / get data from oracle into contract.
28
+ * - `does`/`is`/`has` — predicate (returns boolean).
29
+ * - `emit`/`notify` — propagate data from contract to oracle.
30
+ * - `set` — contract driven oracle state mutation (capsules, execution cache, tagging, etc).
31
+ * - `call` — trigger nested execution (control flow).
32
+ * - `assert` — validate a condition, throw on failure.
33
+ * - Standalone verbs (`delete`, `copy`, `decrypt`, `log`, etc) are used when no generic verb fits.
29
34
  */
30
35
  export class Oracle {
31
36
  constructor(private handler: IMiscOracle | IUtilityExecutionOracle | IPrivateExecutionOracle) {}
@@ -85,581 +90,622 @@ export class Oracle {
85
90
  });
86
91
 
87
92
  // Build callback object and return it
88
- return oracleNames.reduce((acc, name) => {
93
+ const callback = oracleNames.reduce((acc, name) => {
89
94
  const method = this[name as keyof Omit<Oracle, (typeof excludedProps)[number]>];
90
95
  acc[name] = method.bind(this);
91
96
  return acc;
92
97
  }, {} as ACIRCallback);
98
+
99
+ // Wrap in a Proxy to intercept access to missing oracle names and provide enhanced error messages when the
100
+ // contract's minor version is higher than the PXE's (i.e. the contract expects oracles that were added in a newer
101
+ // minor version).
102
+ const handler = this.handler;
103
+ return new Proxy(callback, {
104
+ get(target, prop: string) {
105
+ if (prop in target) {
106
+ return target[prop];
107
+ }
108
+ // Return a function that throws with an enhanced error message if applicable
109
+ return () => {
110
+ type NonOracleFunctionGetContractOracleVersion = {
111
+ nonOracleFunctionGetContractOracleVersion(): { major: number; minor: number } | undefined;
112
+ };
113
+
114
+ let contractVersion = undefined;
115
+ if ('nonOracleFunctionGetContractOracleVersion' in handler) {
116
+ contractVersion = (
117
+ handler as unknown as NonOracleFunctionGetContractOracleVersion
118
+ ).nonOracleFunctionGetContractOracleVersion();
119
+ }
120
+ if (!contractVersion) {
121
+ throw new Error(
122
+ `Oracle '${prop}' not found and the contract's oracle version is unknown (the version check oracle ` +
123
+ `was not called before '${prop}'). This usually means the contract was not compiled with the ` +
124
+ `#[aztec] macro, which injects the version check as the first oracle call in every private/utility ` +
125
+ `external function. If you're using a custom entry point, ensure assert_compatible_oracle_version() ` +
126
+ `is called before any other oracle calls. See https://docs.aztec.network/errors/8`,
127
+ );
128
+ } else if (contractVersion.minor > ORACLE_VERSION_MINOR) {
129
+ throw new Error(
130
+ `Oracle '${prop}' not found.` +
131
+ ` This usually means the contract requires a newer private execution environment than you have.` +
132
+ ` Upgrade your private execution environment to a compatible version. The contract was compiled with` +
133
+ ` Aztec.nr oracle version ${contractVersion.major}.${contractVersion.minor}, but this private` +
134
+ ` execution environment only supports up to ${ORACLE_VERSION_MAJOR}.${ORACLE_VERSION_MINOR}.` +
135
+ ` See https://docs.aztec.network/errors/8`,
136
+ );
137
+ } else {
138
+ throw new Error(
139
+ `Oracle '${prop}' not found.` +
140
+ ` The contract's oracle version (${contractVersion.major}.${contractVersion.minor}) is compatible` +
141
+ ` with this private execution environment (${ORACLE_VERSION_MAJOR}.${ORACLE_VERSION_MINOR}), so all` +
142
+ ` standard oracles should be available. This could mean the contract was compiled against a modified` +
143
+ ` version of Aztec.nr, or that it references an oracle that does not exist.` +
144
+ ` See https://docs.aztec.network/errors/8`,
145
+ );
146
+ }
147
+ };
148
+ },
149
+ });
93
150
  }
94
151
 
95
152
  // eslint-disable-next-line camelcase
96
- aztec_utl_assertCompatibleOracleVersion([version]: ACVMField[]) {
97
- this.handlerAsMisc().assertCompatibleOracleVersion(Fr.fromString(version).toNumber());
98
- return Promise.resolve([]);
153
+ aztec_utl_assertCompatibleOracleVersion(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
154
+ return callHandler({
155
+ oracle: 'aztec_utl_assertCompatibleOracleVersion',
156
+ inputs,
157
+ handler: ([major, minor]) => {
158
+ this.handlerAsMisc().assertCompatibleOracleVersion(major, minor);
159
+ },
160
+ });
99
161
  }
100
162
 
101
163
  // eslint-disable-next-line camelcase
102
- aztec_utl_getRandomField(): Promise<ACVMField[]> {
103
- const val = this.handlerAsMisc().getRandomField();
104
- return Promise.resolve([toACVMField(val)]);
164
+ aztec_utl_getRandomField(): Promise<(ACVMField | ACVMField[])[]> {
165
+ return callHandler({
166
+ oracle: 'aztec_utl_getRandomField',
167
+ inputs: [],
168
+ handler: () => this.handlerAsMisc().getRandomField(),
169
+ });
105
170
  }
106
171
 
107
172
  // eslint-disable-next-line camelcase
108
- aztec_prv_storeInExecutionCache(values: ACVMField[], [hash]: ACVMField[]): Promise<ACVMField[]> {
109
- this.handlerAsPrivate().storeInExecutionCache(values.map(Fr.fromString), Fr.fromString(hash));
110
- return Promise.resolve([]);
173
+ aztec_prv_setHashPreimage(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
174
+ return callHandler({
175
+ oracle: 'aztec_prv_setHashPreimage',
176
+ inputs,
177
+ handler: ([values, hash]) => {
178
+ this.handlerAsPrivate().setHashPreimage(values, hash);
179
+ },
180
+ });
111
181
  }
112
182
 
113
183
  // eslint-disable-next-line camelcase
114
- async aztec_prv_loadFromExecutionCache([returnsHash]: ACVMField[]): Promise<ACVMField[][]> {
115
- const values = await this.handlerAsPrivate().loadFromExecutionCache(Fr.fromString(returnsHash));
116
- return [values.map(toACVMField)];
184
+ aztec_prv_getHashPreimage(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
185
+ return callHandler({
186
+ oracle: 'aztec_prv_getHashPreimage',
187
+ inputs,
188
+ handler: ([returnsHash]) => this.handlerAsPrivate().getHashPreimage(returnsHash),
189
+ });
117
190
  }
118
191
 
119
192
  // eslint-disable-next-line camelcase
120
193
  aztec_utl_getUtilityContext(): Promise<(ACVMField | ACVMField[])[]> {
121
- const context = this.handlerAsUtility().getUtilityContext();
122
- return Promise.resolve(context.toNoirRepresentation());
194
+ return callHandler({
195
+ oracle: 'aztec_utl_getUtilityContext',
196
+ inputs: [],
197
+ handler: () => this.handlerAsUtility().getUtilityContext(),
198
+ });
123
199
  }
124
200
 
125
201
  // eslint-disable-next-line camelcase
126
- async aztec_utl_getKeyValidationRequest([pkMHash]: ACVMField[]): Promise<ACVMField[]> {
127
- const keyValidationRequest = await this.handlerAsUtility().getKeyValidationRequest(Fr.fromString(pkMHash));
128
-
129
- return keyValidationRequest.toFields().map(toACVMField);
202
+ aztec_utl_getKeyValidationRequest(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
203
+ return callHandler({
204
+ oracle: 'aztec_utl_getKeyValidationRequest',
205
+ inputs,
206
+ handler: ([pkMHash]) => this.handlerAsUtility().getKeyValidationRequest(pkMHash),
207
+ });
130
208
  }
131
209
 
132
210
  // eslint-disable-next-line camelcase
133
- async aztec_utl_getContractInstance([address]: ACVMField[]): Promise<ACVMField[]> {
134
- const instance = await this.handlerAsUtility().getContractInstance(AztecAddress.fromField(Fr.fromString(address)));
135
-
136
- return [
137
- instance.salt,
138
- instance.deployer,
139
- instance.currentContractClassId,
140
- instance.initializationHash,
141
- ...instance.publicKeys.toFields(),
142
- ].map(toACVMField);
211
+ aztec_utl_getContractInstance(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
212
+ return callHandler({
213
+ oracle: 'aztec_utl_getContractInstance',
214
+ inputs,
215
+ handler: ([address]) => this.handlerAsUtility().getContractInstance(address),
216
+ });
143
217
  }
144
218
 
145
219
  // eslint-disable-next-line camelcase
146
- async aztec_utl_getNoteHashMembershipWitness(
147
- [anchorBlockHash]: ACVMField[],
148
- [noteHash]: ACVMField[],
149
- ): Promise<(ACVMField | ACVMField[])[]> {
150
- const parsedAnchorBlockHash = BlockHash.fromString(anchorBlockHash);
151
- const parsedNoteHash = Fr.fromString(noteHash);
152
-
153
- const witness = await this.handlerAsUtility().getNoteHashMembershipWitness(parsedAnchorBlockHash, parsedNoteHash);
154
- if (!witness) {
155
- throw new Error(
156
- `Note hash ${noteHash} not found in the note hash tree at anchor block hash ${parsedAnchorBlockHash.toString()}.`,
157
- );
158
- }
159
- return witness.toNoirRepresentation();
220
+ aztec_utl_getNoteHashMembershipWitness(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
221
+ return callHandler({
222
+ oracle: 'aztec_utl_getNoteHashMembershipWitness',
223
+ inputs,
224
+ handler: ([anchorBlockHash, noteHash]) =>
225
+ this.handlerAsUtility().getNoteHashMembershipWitness(anchorBlockHash, noteHash),
226
+ });
160
227
  }
161
228
 
162
229
  // eslint-disable-next-line camelcase
163
- async aztec_utl_getBlockHashMembershipWitness(
164
- [anchorBlockHash]: ACVMField[],
165
- [blockHash]: ACVMField[],
166
- ): Promise<(ACVMField | ACVMField[])[]> {
167
- const parsedAnchorBlockHash = BlockHash.fromString(anchorBlockHash);
168
- const parsedBlockHash = BlockHash.fromString(blockHash);
169
-
170
- const witness = await this.handlerAsUtility().getBlockHashMembershipWitness(parsedAnchorBlockHash, parsedBlockHash);
171
- if (!witness) {
172
- throw new Error(
173
- `Block hash ${parsedBlockHash.toString()} not found in the archive tree at anchor block ${parsedAnchorBlockHash.toString()}.`,
174
- );
175
- }
176
- return witness.toNoirRepresentation();
230
+ aztec_utl_getBlockHashMembershipWitness(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
231
+ return callHandler({
232
+ oracle: 'aztec_utl_getBlockHashMembershipWitness',
233
+ inputs,
234
+ handler: ([anchorBlockHash, blockHash]) =>
235
+ this.handlerAsUtility().getBlockHashMembershipWitness(anchorBlockHash, blockHash),
236
+ });
177
237
  }
178
238
 
179
239
  // eslint-disable-next-line camelcase
180
- async aztec_utl_getNullifierMembershipWitness(
181
- [blockHash]: ACVMField[],
182
- [nullifier]: ACVMField[], // nullifier, we try to find the witness for (to prove inclusion)
183
- ): Promise<(ACVMField | ACVMField[])[]> {
184
- const parsedBlockHash = BlockHash.fromString(blockHash);
185
- const parsedNullifier = Fr.fromString(nullifier);
186
-
187
- const witness = await this.handlerAsUtility().getNullifierMembershipWitness(parsedBlockHash, parsedNullifier);
188
- if (!witness) {
189
- throw new Error(
190
- `Nullifier witness not found for nullifier ${parsedNullifier} at block hash ${parsedBlockHash.toString()}.`,
191
- );
192
- }
193
- return witness.toNoirRepresentation();
240
+ aztec_utl_getNullifierMembershipWitness(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
241
+ return callHandler({
242
+ oracle: 'aztec_utl_getNullifierMembershipWitness',
243
+ inputs,
244
+ handler: ([blockHash, nullifier]) => this.handlerAsUtility().getNullifierMembershipWitness(blockHash, nullifier),
245
+ });
194
246
  }
195
247
 
196
248
  // eslint-disable-next-line camelcase
197
- async aztec_utl_getLowNullifierMembershipWitness(
198
- [blockHash]: ACVMField[],
199
- [nullifier]: ACVMField[], // nullifier, we try to find the low nullifier witness for (to prove non-inclusion)
200
- ): Promise<(ACVMField | ACVMField[])[]> {
201
- const parsedBlockHash = BlockHash.fromString(blockHash);
202
- const parsedNullifier = Fr.fromString(nullifier);
249
+ aztec_utl_getLowNullifierMembershipWitness(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
250
+ return callHandler({
251
+ oracle: 'aztec_utl_getLowNullifierMembershipWitness',
252
+ inputs,
253
+ handler: ([blockHash, nullifier]) =>
254
+ this.handlerAsUtility().getLowNullifierMembershipWitness(blockHash, nullifier),
255
+ });
256
+ }
203
257
 
204
- const witness = await this.handlerAsUtility().getLowNullifierMembershipWitness(parsedBlockHash, parsedNullifier);
205
- if (!witness) {
206
- throw new Error(
207
- `Low nullifier witness not found for nullifier ${parsedNullifier} at block hash ${parsedBlockHash.toString()}.`,
208
- );
209
- }
210
- return witness.toNoirRepresentation();
258
+ // eslint-disable-next-line camelcase
259
+ aztec_utl_getPublicDataWitness(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
260
+ return callHandler({
261
+ oracle: 'aztec_utl_getPublicDataWitness',
262
+ inputs,
263
+ handler: ([blockHash, leafSlot]) => this.handlerAsUtility().getPublicDataWitness(blockHash, leafSlot),
264
+ });
211
265
  }
212
266
 
213
267
  // eslint-disable-next-line camelcase
214
- async aztec_utl_getPublicDataWitness(
215
- [blockHash]: ACVMField[],
216
- [leafSlot]: ACVMField[],
217
- ): Promise<(ACVMField | ACVMField[])[]> {
218
- const parsedBlockHash = BlockHash.fromString(blockHash);
219
- const parsedLeafSlot = Fr.fromString(leafSlot);
268
+ aztec_utl_getBlockHeader(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
269
+ return callHandler({
270
+ oracle: 'aztec_utl_getBlockHeader',
271
+ inputs,
272
+ handler: ([blockNumber]) => this.handlerAsUtility().getBlockHeader(blockNumber),
273
+ });
274
+ }
220
275
 
221
- const witness = await this.handlerAsUtility().getPublicDataWitness(parsedBlockHash, parsedLeafSlot);
222
- if (!witness) {
223
- throw new Error(
224
- `Public data witness not found for slot ${parsedLeafSlot} at block hash ${parsedBlockHash.toString()}.`,
225
- );
226
- }
227
- return witness.toNoirRepresentation();
276
+ // eslint-disable-next-line camelcase
277
+ aztec_utl_getAuthWitness(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
278
+ return callHandler({
279
+ oracle: 'aztec_utl_getAuthWitness',
280
+ inputs,
281
+ handler: ([messageHash]) => this.handlerAsUtility().getAuthWitness(messageHash),
282
+ });
228
283
  }
229
284
 
230
285
  // eslint-disable-next-line camelcase
231
- async aztec_utl_getBlockHeader([blockNumber]: ACVMField[]): Promise<ACVMField[]> {
232
- const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
286
+ aztec_utl_getPublicKeysAndPartialAddress(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
287
+ return callHandler({
288
+ oracle: 'aztec_utl_getPublicKeysAndPartialAddress',
289
+ inputs,
290
+ handler: ([address]) => this.handlerAsUtility().getPublicKeysAndPartialAddress(address),
291
+ });
292
+ }
233
293
 
234
- const header = await this.handlerAsUtility().getBlockHeader(BlockNumber(parsedBlockNumber));
235
- if (!header) {
236
- throw new Error(`Block header not found for block ${parsedBlockNumber}.`);
237
- }
238
- return header.toFields().map(toACVMField);
294
+ // eslint-disable-next-line camelcase
295
+ aztec_utl_getNotes(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
296
+ return callHandler({
297
+ oracle: 'aztec_utl_getNotes',
298
+ inputs,
299
+ handler: ([
300
+ owner,
301
+ storageSlot,
302
+ numSelects,
303
+ selectByIndexes,
304
+ selectByOffsets,
305
+ selectByLengths,
306
+ selectValues,
307
+ selectComparators,
308
+ sortByIndexes,
309
+ sortByOffsets,
310
+ sortByLengths,
311
+ sortOrder,
312
+ limit,
313
+ offset,
314
+ status,
315
+ maxNotes,
316
+ packedHintedNoteLength,
317
+ ]) =>
318
+ this.handlerAsUtility().getNotes(
319
+ owner,
320
+ storageSlot,
321
+ numSelects,
322
+ selectByIndexes,
323
+ selectByOffsets,
324
+ selectByLengths,
325
+ selectValues,
326
+ selectComparators,
327
+ sortByIndexes,
328
+ sortByOffsets,
329
+ sortByLengths,
330
+ sortOrder,
331
+ limit,
332
+ offset,
333
+ status,
334
+ maxNotes,
335
+ packedHintedNoteLength,
336
+ ),
337
+ });
239
338
  }
240
339
 
241
340
  // eslint-disable-next-line camelcase
242
- async aztec_utl_getAuthWitness([messageHash]: ACVMField[]): Promise<ACVMField[][]> {
243
- const messageHashField = Fr.fromString(messageHash);
244
- const witness = await this.handlerAsUtility().getAuthWitness(messageHashField);
245
- if (!witness) {
246
- throw new Error(`Unknown auth witness for message hash ${messageHashField}`);
247
- }
248
- return [witness.map(toACVMField)];
341
+ aztec_prv_notifyCreatedNote(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
342
+ return callHandler({
343
+ oracle: 'aztec_prv_notifyCreatedNote',
344
+ inputs,
345
+ handler: ([owner, storageSlot, randomness, noteTypeId, note, noteHash, counter]) => {
346
+ this.handlerAsPrivate().notifyCreatedNote(owner, storageSlot, randomness, noteTypeId, note, noteHash, counter);
347
+ },
348
+ });
249
349
  }
250
350
 
251
351
  // eslint-disable-next-line camelcase
252
- async aztec_utl_tryGetPublicKeysAndPartialAddress([address]: ACVMField[]): Promise<(ACVMField | ACVMField[])[]> {
253
- const parsedAddress = AztecAddress.fromField(Fr.fromString(address));
254
- const result = await this.handlerAsUtility().tryGetPublicKeysAndPartialAddress(parsedAddress);
352
+ aztec_prv_notifyNullifiedNote(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
353
+ return callHandler({
354
+ oracle: 'aztec_prv_notifyNullifiedNote',
355
+ inputs,
356
+ handler: ([innerNullifier, noteHash, counter]) =>
357
+ this.handlerAsPrivate().notifyNullifiedNote(innerNullifier, noteHash, counter),
358
+ });
359
+ }
255
360
 
256
- // We are going to return a Noir Option struct to represent the possibility of null values. Options are a struct
257
- // with two fields: `some` (a boolean) and `value` (a field array in this case).
258
- if (result === undefined) {
259
- // No data was found so we set `some` to 0 and pad `value` with zeros get the correct return size.
260
- return [toACVMField(0), Array(13).fill(toACVMField(0))];
261
- } else {
262
- // Data was found so we set `some` to 1 and return it along with `value`.
263
- return [toACVMField(1), [...result.publicKeys.toFields(), result.partialAddress].map(toACVMField)];
264
- }
361
+ // eslint-disable-next-line camelcase
362
+ aztec_prv_notifyCreatedNullifier(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
363
+ return callHandler({
364
+ oracle: 'aztec_prv_notifyCreatedNullifier',
365
+ inputs,
366
+ handler: ([innerNullifier]) => this.handlerAsPrivate().notifyCreatedNullifier(innerNullifier),
367
+ });
265
368
  }
266
369
 
267
370
  // eslint-disable-next-line camelcase
268
- async aztec_utl_getNotes(
269
- [ownerSome]: ACVMField[],
270
- [ownerValue]: ACVMField[],
271
- [storageSlot]: ACVMField[],
272
- [numSelects]: ACVMField[],
273
- selectByIndexes: ACVMField[],
274
- selectByOffsets: ACVMField[],
275
- selectByLengths: ACVMField[],
276
- selectValues: ACVMField[],
277
- selectComparators: ACVMField[],
278
- sortByIndexes: ACVMField[],
279
- sortByOffsets: ACVMField[],
280
- sortByLengths: ACVMField[],
281
- sortOrder: ACVMField[],
282
- [limit]: ACVMField[],
283
- [offset]: ACVMField[],
284
- [status]: ACVMField[],
285
- [maxNotes]: ACVMField[],
286
- [packedHintedNoteLength]: ACVMField[],
287
- ): Promise<(ACVMField | ACVMField[])[]> {
288
- // Parse Option<AztecAddress>: ownerSome is 0 for None, 1 for Some
289
- const owner = Fr.fromString(ownerSome).toNumber() === 1 ? AztecAddress.fromString(ownerValue) : undefined;
290
- const noteDatas = await this.handlerAsUtility().getNotes(
291
- owner,
292
- Fr.fromString(storageSlot),
293
- +numSelects,
294
- selectByIndexes.map(s => +s),
295
- selectByOffsets.map(s => +s),
296
- selectByLengths.map(s => +s),
297
- selectValues.map(Fr.fromString),
298
- selectComparators.map(s => +s),
299
- sortByIndexes.map(s => +s),
300
- sortByOffsets.map(s => +s),
301
- sortByLengths.map(s => +s),
302
- sortOrder.map(s => +s),
303
- +limit,
304
- +offset,
305
- +status,
306
- );
371
+ aztec_prv_isNullifierPending(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
372
+ return callHandler({
373
+ oracle: 'aztec_prv_isNullifierPending',
374
+ inputs,
375
+ handler: ([innerNullifier, contractAddress]) =>
376
+ this.handlerAsPrivate().isNullifierPending(innerNullifier, contractAddress),
377
+ });
378
+ }
307
379
 
308
- const returnDataAsArrayOfPackedHintedNotes = noteDatas.map(noteData =>
309
- packAsHintedNote({
310
- contractAddress: noteData.contractAddress,
311
- owner: noteData.owner,
312
- randomness: noteData.randomness,
313
- storageSlot: noteData.storageSlot,
314
- noteNonce: noteData.noteNonce,
315
- isPending: noteData.isPending,
316
- note: noteData.note,
317
- }),
318
- );
380
+ // eslint-disable-next-line camelcase
381
+ aztec_utl_doesNullifierExist(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
382
+ return callHandler({
383
+ oracle: 'aztec_utl_doesNullifierExist',
384
+ inputs,
385
+ handler: ([innerNullifier]) => this.handlerAsUtility().doesNullifierExist(innerNullifier),
386
+ });
387
+ }
319
388
 
320
- // Now we convert each sub-array to an array of ACVMField
321
- const returnDataAsArrayOfACVMFieldArrays = returnDataAsArrayOfPackedHintedNotes.map(subArray =>
322
- subArray.map(toACVMField),
323
- );
389
+ // eslint-disable-next-line camelcase
390
+ aztec_utl_getL1ToL2MembershipWitness(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
391
+ return callHandler({
392
+ oracle: 'aztec_utl_getL1ToL2MembershipWitness',
393
+ inputs,
394
+ handler: ([contractAddress, messageHash, secret]) =>
395
+ this.handlerAsUtility().getL1ToL2MembershipWitness(contractAddress, messageHash, secret),
396
+ });
397
+ }
324
398
 
325
- // At last we convert the array of arrays to a bounded vec of arrays
326
- return arrayOfArraysToBoundedVecOfArrays(returnDataAsArrayOfACVMFieldArrays, +maxNotes, +packedHintedNoteLength);
327
- }
328
-
329
- // eslint-disable-next-line camelcase
330
- aztec_prv_notifyCreatedNote(
331
- [owner]: ACVMField[],
332
- [storageSlot]: ACVMField[],
333
- [randomness]: ACVMField[],
334
- [noteTypeId]: ACVMField[],
335
- note: ACVMField[],
336
- [noteHash]: ACVMField[],
337
- [counter]: ACVMField[],
338
- ): Promise<ACVMField[]> {
339
- this.handlerAsPrivate().notifyCreatedNote(
340
- AztecAddress.fromString(owner),
341
- Fr.fromString(storageSlot),
342
- Fr.fromString(randomness),
343
- NoteSelector.fromField(Fr.fromString(noteTypeId)),
344
- note.map(Fr.fromString),
345
- Fr.fromString(noteHash),
346
- +counter,
347
- );
348
- return Promise.resolve([]);
399
+ // eslint-disable-next-line camelcase
400
+ aztec_utl_getFromPublicStorage(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
401
+ return callHandler({
402
+ oracle: 'aztec_utl_getFromPublicStorage',
403
+ inputs,
404
+ handler: ([blockHash, contractAddress, startStorageSlot, numberOfElements]) =>
405
+ this.handlerAsUtility().getFromPublicStorage(blockHash, contractAddress, startStorageSlot, numberOfElements),
406
+ });
349
407
  }
350
408
 
351
409
  // eslint-disable-next-line camelcase
352
- async aztec_prv_notifyNullifiedNote(
353
- [innerNullifier]: ACVMField[],
354
- [noteHash]: ACVMField[],
355
- [counter]: ACVMField[],
356
- ): Promise<ACVMField[]> {
357
- await this.handlerAsPrivate().notifyNullifiedNote(Fr.fromString(innerNullifier), Fr.fromString(noteHash), +counter);
358
- return [];
410
+ aztec_utl_callUtilityFunction(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
411
+ return callHandler({
412
+ oracle: 'aztec_utl_callUtilityFunction',
413
+ inputs,
414
+ handler: ([contractAddress, functionSelector, args]) =>
415
+ this.handlerAsUtility().callUtilityFunction(contractAddress, functionSelector, args),
416
+ });
359
417
  }
360
418
 
361
419
  // eslint-disable-next-line camelcase
362
- async aztec_prv_notifyCreatedNullifier([innerNullifier]: ACVMField[]): Promise<ACVMField[]> {
363
- await this.handlerAsPrivate().notifyCreatedNullifier(Fr.fromString(innerNullifier));
364
- return [];
420
+ aztec_prv_notifyCreatedContractClassLog(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
421
+ return callHandler({
422
+ oracle: 'aztec_prv_notifyCreatedContractClassLog',
423
+ inputs,
424
+ handler: ([log, counter]) => {
425
+ this.handlerAsPrivate().notifyCreatedContractClassLog(log, counter);
426
+ },
427
+ });
365
428
  }
366
429
 
367
430
  // eslint-disable-next-line camelcase
368
- async aztec_prv_isNullifierPending(
369
- [innerNullifier]: ACVMField[],
370
- [contractAddress]: ACVMField[],
371
- ): Promise<ACVMField[]> {
372
- const isPending = await this.handlerAsPrivate().isNullifierPending(
373
- Fr.fromString(innerNullifier),
374
- AztecAddress.fromString(contractAddress),
375
- );
376
- return [toACVMField(isPending)];
431
+ aztec_utl_log(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
432
+ return callHandler({
433
+ oracle: 'aztec_utl_log',
434
+ inputs,
435
+ handler: ([level, message, _, fields]) => this.handlerAsMisc().log(level, message, fields),
436
+ });
377
437
  }
378
438
 
439
+ // This function's name is directly hardcoded in `circuit_recorder.ts`. Don't forget to update it there if you
440
+ // change the name here.
379
441
  // eslint-disable-next-line camelcase
380
- async aztec_utl_checkNullifierExists([innerNullifier]: ACVMField[]): Promise<ACVMField[]> {
381
- const exists = await this.handlerAsUtility().checkNullifierExists(Fr.fromString(innerNullifier));
382
- return [toACVMField(exists)];
442
+ aztec_prv_callPrivateFunction(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
443
+ return callHandler({
444
+ oracle: 'aztec_prv_callPrivateFunction',
445
+ inputs,
446
+ handler: ([contractAddress, functionSelector, argsHash, sideEffectCounter, isStaticCall]) =>
447
+ this.handlerAsPrivate().callPrivateFunction(
448
+ contractAddress,
449
+ functionSelector,
450
+ argsHash,
451
+ sideEffectCounter,
452
+ isStaticCall,
453
+ ),
454
+ });
383
455
  }
384
456
 
385
457
  // eslint-disable-next-line camelcase
386
- async aztec_utl_getL1ToL2MembershipWitness(
387
- [contractAddress]: ACVMField[],
388
- [messageHash]: ACVMField[],
389
- [secret]: ACVMField[],
390
- ): Promise<(ACVMField | ACVMField[])[]> {
391
- const message = await this.handlerAsUtility().getL1ToL2MembershipWitness(
392
- AztecAddress.fromString(contractAddress),
393
- Fr.fromString(messageHash),
394
- Fr.fromString(secret),
395
- );
396
- return message.toNoirRepresentation();
458
+ aztec_prv_assertValidPublicCalldata(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
459
+ return callHandler({
460
+ oracle: 'aztec_prv_assertValidPublicCalldata',
461
+ inputs,
462
+ handler: ([calldataHash]) => this.handlerAsPrivate().assertValidPublicCalldata(calldataHash),
463
+ });
397
464
  }
398
465
 
399
466
  // eslint-disable-next-line camelcase
400
- async aztec_utl_storageRead(
401
- [blockHash]: ACVMField[],
402
- [contractAddress]: ACVMField[],
403
- [startStorageSlot]: ACVMField[],
404
- [numberOfElements]: ACVMField[],
405
- ): Promise<ACVMField[][]> {
406
- const values = await this.handlerAsUtility().storageRead(
407
- BlockHash.fromString(blockHash),
408
- new AztecAddress(Fr.fromString(contractAddress)),
409
- Fr.fromString(startStorageSlot),
410
- +numberOfElements,
411
- );
412
- return [values.map(toACVMField)];
467
+ aztec_prv_notifyRevertiblePhaseStart(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
468
+ return callHandler({
469
+ oracle: 'aztec_prv_notifyRevertiblePhaseStart',
470
+ inputs,
471
+ handler: ([minRevertibleSideEffectCounter]) =>
472
+ this.handlerAsPrivate().notifyRevertiblePhaseStart(minRevertibleSideEffectCounter),
473
+ });
413
474
  }
414
475
 
415
476
  // eslint-disable-next-line camelcase
416
- aztec_prv_notifyCreatedContractClassLog(
417
- [contractAddress]: ACVMField[],
418
- message: ACVMField[],
419
- [length]: ACVMField[],
420
- [counter]: ACVMField[],
421
- ): Promise<ACVMField[]> {
422
- const logFields = new ContractClassLogFields(message.map(Fr.fromString));
423
- const log = new ContractClassLog(new AztecAddress(Fr.fromString(contractAddress)), logFields, +length);
477
+ aztec_prv_isExecutionInRevertiblePhase(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
478
+ return callHandler({
479
+ oracle: 'aztec_prv_isExecutionInRevertiblePhase',
480
+ inputs,
481
+ handler: ([sideEffectCounter]) => this.handlerAsPrivate().isExecutionInRevertiblePhase(sideEffectCounter),
482
+ });
483
+ }
424
484
 
425
- this.handlerAsPrivate().notifyCreatedContractClassLog(log, +counter);
426
- return Promise.resolve([]);
485
+ // eslint-disable-next-line camelcase
486
+ aztec_prv_getNextAppTagAsSender(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
487
+ return callHandler({
488
+ oracle: 'aztec_prv_getNextAppTagAsSender',
489
+ inputs,
490
+ handler: ([sender, recipient]) => this.handlerAsPrivate().getNextAppTagAsSender(sender, recipient),
491
+ });
427
492
  }
428
493
 
429
494
  // eslint-disable-next-line camelcase
430
- async aztec_utl_log(
431
- level: ACVMField[],
432
- message: ACVMField[],
433
- _ignoredFieldsSize: ACVMField[],
434
- fields: ACVMField[],
435
- ): Promise<ACVMField[]> {
436
- const levelFr = Fr.fromString(level[0]);
437
- const messageStr = message.map(acvmField => String.fromCharCode(Fr.fromString(acvmField).toNumber())).join('');
438
- const fieldsFr = fields.map(Fr.fromString);
439
- await this.handlerAsMisc().log(levelFr.toNumber(), messageStr, fieldsFr);
440
- return [];
495
+ aztec_prv_getNextConstrainedTaggingIndex(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
496
+ return callHandler({
497
+ oracle: 'aztec_prv_getNextConstrainedTaggingIndex',
498
+ inputs,
499
+ handler: ([appSiloedSecret]) => this.handlerAsPrivate().getNextConstrainedTaggingIndex(appSiloedSecret),
500
+ });
441
501
  }
442
502
 
443
- // This function's name is directly hardcoded in `circuit_recorder.ts`. Don't forget to update it there if you
444
- // change the name here.
445
503
  // eslint-disable-next-line camelcase
446
- async aztec_prv_callPrivateFunction(
447
- [contractAddress]: ACVMField[],
448
- [functionSelector]: ACVMField[],
449
- [argsHash]: ACVMField[],
450
- [sideEffectCounter]: ACVMField[],
451
- [isStaticCall]: ACVMField[],
452
- ): Promise<ACVMField[][]> {
453
- const { endSideEffectCounter, returnsHash } = await this.handlerAsPrivate().callPrivateFunction(
454
- AztecAddress.fromField(Fr.fromString(contractAddress)),
455
- FunctionSelector.fromField(Fr.fromString(functionSelector)),
456
- Fr.fromString(argsHash),
457
- Fr.fromString(sideEffectCounter).toNumber(),
458
- Fr.fromString(isStaticCall).toBool(),
459
- );
460
- return [[endSideEffectCounter, returnsHash].map(toACVMField)];
504
+ aztec_utl_getPendingTaggedLogs(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
505
+ return callHandler({
506
+ oracle: 'aztec_utl_getPendingTaggedLogs',
507
+ inputs,
508
+ handler: ([scope]) => this.handlerAsUtility().getPendingTaggedLogs(scope),
509
+ });
461
510
  }
462
511
 
463
512
  // eslint-disable-next-line camelcase
464
- async aztec_prv_notifyEnqueuedPublicFunctionCall(
465
- [contractAddress]: ACVMField[],
466
- [calldataHash]: ACVMField[],
467
- [sideEffectCounter]: ACVMField[],
468
- [isStaticCall]: ACVMField[],
469
- ): Promise<ACVMField[]> {
470
- await this.handlerAsPrivate().notifyEnqueuedPublicFunctionCall(
471
- AztecAddress.fromString(contractAddress),
472
- Fr.fromString(calldataHash),
473
- Fr.fromString(sideEffectCounter).toNumber(),
474
- Fr.fromString(isStaticCall).toBool(),
475
- );
476
- return [];
513
+ aztec_utl_validateAndStoreEnqueuedNotesAndEvents(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
514
+ return callHandler({
515
+ oracle: 'aztec_utl_validateAndStoreEnqueuedNotesAndEvents',
516
+ inputs,
517
+ handler: ([noteValidationRequestsArrayBaseSlot, eventValidationRequestsArrayBaseSlot, scope]) =>
518
+ this.handlerAsUtility().validateAndStoreEnqueuedNotesAndEvents(
519
+ noteValidationRequestsArrayBaseSlot,
520
+ eventValidationRequestsArrayBaseSlot,
521
+ scope,
522
+ ),
523
+ });
477
524
  }
478
525
 
479
526
  // eslint-disable-next-line camelcase
480
- async aztec_prv_notifySetPublicTeardownFunctionCall(
481
- [contractAddress]: ACVMField[],
482
- [calldataHash]: ACVMField[],
483
- [sideEffectCounter]: ACVMField[],
484
- [isStaticCall]: ACVMField[],
485
- ): Promise<ACVMField[]> {
486
- await this.handlerAsPrivate().notifySetPublicTeardownFunctionCall(
487
- AztecAddress.fromString(contractAddress),
488
- Fr.fromString(calldataHash),
489
- Fr.fromString(sideEffectCounter).toNumber(),
490
- Fr.fromString(isStaticCall).toBool(),
491
- );
492
- return [];
527
+ aztec_utl_getLogsByTag(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
528
+ return callHandler({
529
+ oracle: 'aztec_utl_getLogsByTag',
530
+ inputs,
531
+ handler: ([requestArrayBaseSlot]) => this.handlerAsUtility().getLogsByTag(requestArrayBaseSlot),
532
+ });
493
533
  }
494
534
 
495
535
  // eslint-disable-next-line camelcase
496
- async aztec_prv_notifySetMinRevertibleSideEffectCounter([minRevertibleSideEffectCounter]: ACVMField[]): Promise<
497
- ACVMField[]
498
- > {
499
- await this.handlerAsPrivate().notifySetMinRevertibleSideEffectCounter(
500
- Fr.fromString(minRevertibleSideEffectCounter).toNumber(),
501
- );
502
- return Promise.resolve([]);
536
+ aztec_utl_getMessageContextsByTxHash(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
537
+ return callHandler({
538
+ oracle: 'aztec_utl_getMessageContextsByTxHash',
539
+ inputs,
540
+ handler: ([requestArrayBaseSlot]) => this.handlerAsUtility().getMessageContextsByTxHash(requestArrayBaseSlot),
541
+ });
503
542
  }
504
543
 
505
544
  // eslint-disable-next-line camelcase
506
- async aztec_prv_isSideEffectCounterRevertible([sideEffectCounter]: ACVMField[]): Promise<ACVMField[]> {
507
- const isRevertible = await this.handlerAsPrivate().isSideEffectCounterRevertible(
508
- Fr.fromString(sideEffectCounter).toNumber(),
509
- );
510
- return Promise.resolve([toACVMField(isRevertible)]);
545
+ aztec_utl_getTxEffect(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
546
+ return callHandler({
547
+ oracle: 'aztec_utl_getTxEffect',
548
+ inputs,
549
+ handler: ([txHash]) => this.handlerAsUtility().getTxEffect(txHash),
550
+ });
511
551
  }
512
552
 
513
553
  // eslint-disable-next-line camelcase
514
- async aztec_prv_getNextAppTagAsSender([sender]: ACVMField[], [recipient]: ACVMField[]): Promise<ACVMField[]> {
515
- const tag = await this.handlerAsPrivate().getNextAppTagAsSender(
516
- AztecAddress.fromString(sender),
517
- AztecAddress.fromString(recipient),
518
- );
519
- return [toACVMField(tag.value)];
554
+ aztec_utl_setCapsule(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
555
+ return callHandler({
556
+ oracle: 'aztec_utl_setCapsule',
557
+ inputs,
558
+ handler: ([contractAddress, slot, capsule, scope]) => {
559
+ this.handlerAsUtility().setCapsule(contractAddress, slot, capsule, scope);
560
+ },
561
+ });
520
562
  }
521
563
 
522
564
  // eslint-disable-next-line camelcase
523
- async aztec_utl_fetchTaggedLogs([pendingTaggedLogArrayBaseSlot]: ACVMField[]): Promise<ACVMField[]> {
524
- await this.handlerAsUtility().fetchTaggedLogs(Fr.fromString(pendingTaggedLogArrayBaseSlot));
525
- return [];
565
+ aztec_utl_getCapsule(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
566
+ return callHandler({
567
+ oracle: 'aztec_utl_getCapsule',
568
+ inputs,
569
+ handler: ([contractAddress, slot, tSize, scope]) =>
570
+ this.handlerAsUtility().getCapsule(contractAddress, slot, tSize, scope),
571
+ });
526
572
  }
527
573
 
528
574
  // eslint-disable-next-line camelcase
529
- async aztec_utl_validateAndStoreEnqueuedNotesAndEvents(
530
- [contractAddress]: ACVMField[],
531
- [noteValidationRequestsArrayBaseSlot]: ACVMField[],
532
- [eventValidationRequestsArrayBaseSlot]: ACVMField[],
533
- ): Promise<ACVMField[]> {
534
- await this.handlerAsUtility().validateAndStoreEnqueuedNotesAndEvents(
535
- AztecAddress.fromString(contractAddress),
536
- Fr.fromString(noteValidationRequestsArrayBaseSlot),
537
- Fr.fromString(eventValidationRequestsArrayBaseSlot),
538
- );
575
+ aztec_utl_deleteCapsule(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
576
+ return callHandler({
577
+ oracle: 'aztec_utl_deleteCapsule',
578
+ inputs,
579
+ handler: ([contractAddress, slot, scope]) => {
580
+ this.handlerAsUtility().deleteCapsule(contractAddress, slot, scope);
581
+ },
582
+ });
583
+ }
539
584
 
540
- return [];
585
+ // eslint-disable-next-line camelcase
586
+ aztec_utl_copyCapsule(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
587
+ return callHandler({
588
+ oracle: 'aztec_utl_copyCapsule',
589
+ inputs,
590
+ handler: ([contractAddress, srcSlot, dstSlot, numEntries, scope]) =>
591
+ this.handlerAsUtility().copyCapsule(contractAddress, srcSlot, dstSlot, numEntries, scope),
592
+ });
541
593
  }
542
594
 
543
595
  // eslint-disable-next-line camelcase
544
- async aztec_utl_bulkRetrieveLogs(
545
- [contractAddress]: ACVMField[],
546
- [logRetrievalRequestsArrayBaseSlot]: ACVMField[],
547
- [logRetrievalResponsesArrayBaseSlot]: ACVMField[],
548
- ): Promise<ACVMField[]> {
549
- await this.handlerAsUtility().bulkRetrieveLogs(
550
- AztecAddress.fromString(contractAddress),
551
- Fr.fromString(logRetrievalRequestsArrayBaseSlot),
552
- Fr.fromString(logRetrievalResponsesArrayBaseSlot),
553
- );
554
- return [];
596
+ aztec_utl_pushEphemeral(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
597
+ return callHandler({
598
+ oracle: 'aztec_utl_pushEphemeral',
599
+ inputs,
600
+ handler: ([slot, elements]) => this.handlerAsUtility().pushEphemeral(slot, elements),
601
+ });
555
602
  }
556
603
 
557
604
  // eslint-disable-next-line camelcase
558
- async aztec_utl_storeCapsule(
559
- [contractAddress]: ACVMField[],
560
- [slot]: ACVMField[],
561
- capsule: ACVMField[],
562
- ): Promise<ACVMField[]> {
563
- await this.handlerAsUtility().storeCapsule(
564
- AztecAddress.fromField(Fr.fromString(contractAddress)),
565
- Fr.fromString(slot),
566
- capsule.map(Fr.fromString),
567
- );
568
- return [];
605
+ aztec_utl_popEphemeral(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
606
+ return callHandler({
607
+ oracle: 'aztec_utl_popEphemeral',
608
+ inputs,
609
+ handler: ([slot]) => this.handlerAsUtility().popEphemeral(slot),
610
+ });
569
611
  }
570
612
 
571
613
  // eslint-disable-next-line camelcase
572
- async aztec_utl_loadCapsule(
573
- [contractAddress]: ACVMField[],
574
- [slot]: ACVMField[],
575
- [tSize]: ACVMField[],
576
- ): Promise<(ACVMField | ACVMField[])[]> {
577
- const values = await this.handlerAsUtility().loadCapsule(
578
- AztecAddress.fromField(Fr.fromString(contractAddress)),
579
- Fr.fromString(slot),
580
- );
614
+ aztec_utl_getEphemeral(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
615
+ return callHandler({
616
+ oracle: 'aztec_utl_getEphemeral',
617
+ inputs,
618
+ handler: ([slot, index]) => this.handlerAsUtility().getEphemeral(slot, index),
619
+ });
620
+ }
581
621
 
582
- // We are going to return a Noir Option struct to represent the possibility of null values. Options are a struct
583
- // with two fields: `some` (a boolean) and `value` (a field array in this case).
584
- if (values === null) {
585
- // No data was found so we set `some` to 0 and pad `value` with zeros get the correct return size.
586
- return [toACVMField(0), Array(Fr.fromString(tSize).toNumber()).fill(toACVMField(0))];
587
- } else {
588
- // Data was found so we set `some` to 1 and return it along with `value`.
589
- return [toACVMField(1), values.map(toACVMField)];
590
- }
622
+ // eslint-disable-next-line camelcase
623
+ aztec_utl_setEphemeral(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
624
+ return callHandler({
625
+ oracle: 'aztec_utl_setEphemeral',
626
+ inputs,
627
+ handler: ([slot, index, elements]) => {
628
+ this.handlerAsUtility().setEphemeral(slot, index, elements);
629
+ },
630
+ });
591
631
  }
592
632
 
593
633
  // eslint-disable-next-line camelcase
594
- async aztec_utl_deleteCapsule([contractAddress]: ACVMField[], [slot]: ACVMField[]): Promise<ACVMField[]> {
595
- await this.handlerAsUtility().deleteCapsule(
596
- AztecAddress.fromField(Fr.fromString(contractAddress)),
597
- Fr.fromString(slot),
598
- );
599
- return [];
634
+ aztec_utl_getEphemeralLen(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
635
+ return callHandler({
636
+ oracle: 'aztec_utl_getEphemeralLen',
637
+ inputs,
638
+ handler: ([slot]) => this.handlerAsUtility().getEphemeralLen(slot),
639
+ });
600
640
  }
601
641
 
602
642
  // eslint-disable-next-line camelcase
603
- async aztec_utl_copyCapsule(
604
- [contractAddress]: ACVMField[],
605
- [srcSlot]: ACVMField[],
606
- [dstSlot]: ACVMField[],
607
- [numEntries]: ACVMField[],
608
- ): Promise<ACVMField[]> {
609
- await this.handlerAsUtility().copyCapsule(
610
- AztecAddress.fromField(Fr.fromString(contractAddress)),
611
- Fr.fromString(srcSlot),
612
- Fr.fromString(dstSlot),
613
- Fr.fromString(numEntries).toNumber(),
614
- );
615
- return [];
643
+ aztec_utl_removeEphemeral(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
644
+ return callHandler({
645
+ oracle: 'aztec_utl_removeEphemeral',
646
+ inputs,
647
+ handler: ([slot, index]) => {
648
+ this.handlerAsUtility().removeEphemeral(slot, index);
649
+ },
650
+ });
616
651
  }
617
652
 
618
653
  // eslint-disable-next-line camelcase
619
- async aztec_utl_aes128Decrypt(
620
- ciphertextBVecStorage: ACVMField[],
621
- [ciphertextLength]: ACVMField[],
622
- iv: ACVMField[],
623
- symKey: ACVMField[],
624
- ): Promise<(ACVMField | ACVMField[])[]> {
625
- const ciphertext = fromUintBoundedVec(ciphertextBVecStorage, ciphertextLength, 8);
626
- const ivBuffer = fromUintArray(iv, 8);
627
- const symKeyBuffer = fromUintArray(symKey, 8);
654
+ aztec_utl_clearEphemeral(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
655
+ return callHandler({
656
+ oracle: 'aztec_utl_clearEphemeral',
657
+ inputs,
658
+ handler: ([slot]) => {
659
+ this.handlerAsUtility().clearEphemeral(slot);
660
+ },
661
+ });
662
+ }
628
663
 
629
- const plaintext = await this.handlerAsUtility().aes128Decrypt(ciphertext, ivBuffer, symKeyBuffer);
630
- return bufferToBoundedVec(plaintext, ciphertextBVecStorage.length);
664
+ // eslint-disable-next-line camelcase
665
+ aztec_utl_decryptAes128(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
666
+ return callHandler({
667
+ oracle: 'aztec_utl_decryptAes128',
668
+ inputs,
669
+ handler: ([ciphertext, iv, symKey]) => this.handlerAsUtility().decryptAes128(ciphertext, iv, symKey),
670
+ });
631
671
  }
632
672
 
633
673
  // eslint-disable-next-line camelcase
634
- async aztec_utl_getSharedSecret(
635
- [address]: ACVMField[],
636
- [ephPKField0]: ACVMField[],
637
- [ephPKField1]: ACVMField[],
638
- [ephPKField2]: ACVMField[],
639
- ): Promise<ACVMField[]> {
640
- const secret = await this.handlerAsUtility().getSharedSecret(
641
- AztecAddress.fromField(Fr.fromString(address)),
642
- Point.fromFields([ephPKField0, ephPKField1, ephPKField2].map(Fr.fromString)),
643
- );
644
- return secret.toFields().map(toACVMField);
674
+ aztec_utl_getSharedSecrets(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
675
+ return callHandler({
676
+ oracle: 'aztec_utl_getSharedSecrets',
677
+ inputs,
678
+ handler: ([address, ephPksSlot, contractAddress]) =>
679
+ this.handlerAsUtility().getSharedSecrets(address, ephPksSlot, contractAddress),
680
+ });
645
681
  }
646
682
 
647
683
  // eslint-disable-next-line camelcase
648
- async aztec_utl_emitOffchainEffect(data: ACVMField[]) {
649
- await this.handlerAsPrivate().emitOffchainEffect(data.map(Fr.fromString));
650
- return [];
684
+ aztec_utl_setContractSyncCacheInvalid(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
685
+ return callHandler({
686
+ oracle: 'aztec_utl_setContractSyncCacheInvalid',
687
+ inputs,
688
+ handler: ([contractAddress, scopes]) => {
689
+ this.handlerAsUtility().setContractSyncCacheInvalid(contractAddress, scopes);
690
+ },
691
+ });
651
692
  }
652
693
 
653
694
  // eslint-disable-next-line camelcase
654
- async aztec_prv_getSenderForTags(): Promise<ACVMField[]> {
655
- const sender = await this.handlerAsPrivate().getSenderForTags();
656
- // Return [1, address] for Some(address), [0, 0] for None
657
- return sender ? [toACVMField(1n), toACVMField(sender)] : [toACVMField(0n), toACVMField(0n)];
695
+ aztec_utl_emitOffchainEffect(...inputs: ACVMField[][]): Promise<(ACVMField | ACVMField[])[]> {
696
+ return callHandler({
697
+ oracle: 'aztec_utl_emitOffchainEffect',
698
+ inputs,
699
+ handler: ([data]) => this.handlerAsUtility().emitOffchainEffect(data),
700
+ });
658
701
  }
659
702
 
660
703
  // eslint-disable-next-line camelcase
661
- async aztec_prv_setSenderForTags([senderForTags]: ACVMField[]): Promise<ACVMField[]> {
662
- await this.handlerAsPrivate().setSenderForTags(AztecAddress.fromField(Fr.fromString(senderForTags)));
663
- return [];
704
+ aztec_prv_getSenderForTags(): Promise<(ACVMField | ACVMField[])[]> {
705
+ return callHandler({
706
+ oracle: 'aztec_prv_getSenderForTags',
707
+ inputs: [],
708
+ handler: () => this.handlerAsPrivate().getSenderForTags(),
709
+ });
664
710
  }
665
711
  }