@aztec/pxe 0.0.1-commit.2448fdb → 0.0.1-commit.2606882

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 (279) hide show
  1. package/dest/bin/check_oracle_version.js +40 -96
  2. package/dest/bin/index.d.ts +2 -0
  3. package/dest/bin/index.d.ts.map +1 -0
  4. package/dest/bin/index.js +1 -0
  5. package/dest/bin/oracle_version_helpers.d.ts +26 -0
  6. package/dest/bin/oracle_version_helpers.d.ts.map +1 -0
  7. package/dest/bin/oracle_version_helpers.js +93 -0
  8. package/dest/block_synchronizer/block_stream_source.d.ts +10 -0
  9. package/dest/block_synchronizer/block_stream_source.d.ts.map +1 -0
  10. package/dest/block_synchronizer/block_stream_source.js +62 -0
  11. package/dest/block_synchronizer/block_synchronizer.d.ts +5 -3
  12. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
  13. package/dest/block_synchronizer/block_synchronizer.js +21 -11
  14. package/dest/config/index.d.ts +8 -2
  15. package/dest/config/index.d.ts.map +1 -1
  16. package/dest/config/index.js +13 -15
  17. package/dest/config/package_info.js +1 -1
  18. package/dest/contract_function_simulator/contract_function_simulator.d.ts +4 -1
  19. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  20. package/dest/contract_function_simulator/contract_function_simulator.js +20 -12
  21. package/dest/contract_function_simulator/execution_note_cache.d.ts +2 -2
  22. package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
  23. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +5 -9
  24. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -1
  25. package/dest/contract_function_simulator/execution_tagging_index_cache.js +3 -7
  26. package/dest/contract_function_simulator/index.d.ts +13 -2
  27. package/dest/contract_function_simulator/index.d.ts.map +1 -1
  28. package/dest/contract_function_simulator/index.js +10 -0
  29. package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts +48 -0
  30. package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts.map +1 -0
  31. package/dest/contract_function_simulator/noir-structs/bounded_vec.js +45 -0
  32. package/dest/contract_function_simulator/noir-structs/ephemeral_array.d.ts +37 -0
  33. package/dest/contract_function_simulator/noir-structs/ephemeral_array.d.ts.map +1 -0
  34. package/dest/contract_function_simulator/noir-structs/ephemeral_array.js +59 -0
  35. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +3 -2
  36. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
  37. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +3 -2
  38. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +12 -2
  39. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts.map +1 -1
  40. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +34 -3
  41. package/dest/contract_function_simulator/noir-structs/note_data.d.ts +27 -0
  42. package/dest/contract_function_simulator/noir-structs/note_data.d.ts.map +1 -0
  43. package/dest/contract_function_simulator/noir-structs/note_data.js +3 -0
  44. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +3 -2
  45. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
  46. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +3 -2
  47. package/dest/contract_function_simulator/noir-structs/option.d.ts +61 -0
  48. package/dest/contract_function_simulator/noir-structs/option.d.ts.map +1 -0
  49. package/dest/contract_function_simulator/noir-structs/option.js +62 -0
  50. package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts +11 -0
  51. package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts.map +1 -0
  52. package/dest/contract_function_simulator/noir-structs/provided_secret.js +24 -0
  53. package/dest/contract_function_simulator/oracle/interfaces.d.ts +16 -114
  54. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
  55. package/dest/contract_function_simulator/oracle/interfaces.js +2 -2
  56. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +2 -2
  57. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -1
  58. package/dest/contract_function_simulator/oracle/note_packing_utils.js +2 -2
  59. package/dest/contract_function_simulator/oracle/oracle.d.ts +55 -57
  60. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
  61. package/dest/contract_function_simulator/oracle/oracle.js +343 -344
  62. package/dest/contract_function_simulator/oracle/oracle_registry.d.ts +127 -0
  63. package/dest/contract_function_simulator/oracle/oracle_registry.d.ts.map +1 -0
  64. package/dest/contract_function_simulator/oracle/oracle_registry.js +786 -0
  65. package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts +139 -0
  66. package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts.map +1 -0
  67. package/dest/contract_function_simulator/oracle/oracle_type_mappings.js +560 -0
  68. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +27 -29
  69. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  70. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +55 -47
  71. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +59 -39
  72. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  73. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +244 -149
  74. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +1 -1
  75. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -1
  76. package/dest/contract_function_simulator/proxied_contract_data_source.js +35 -67
  77. package/dest/contract_sync/contract_sync_service.d.ts +4 -6
  78. package/dest/contract_sync/contract_sync_service.d.ts.map +1 -1
  79. package/dest/contract_sync/contract_sync_service.js +43 -24
  80. package/dest/contract_sync/helpers.d.ts +2 -3
  81. package/dest/contract_sync/helpers.d.ts.map +1 -1
  82. package/dest/contract_sync/helpers.js +12 -19
  83. package/dest/debug/pxe_debug_utils.d.ts +1 -6
  84. package/dest/debug/pxe_debug_utils.d.ts.map +1 -1
  85. package/dest/debug/pxe_debug_utils.js +0 -6
  86. package/dest/entrypoints/client/bundle/utils.d.ts +1 -1
  87. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  88. package/dest/entrypoints/client/bundle/utils.js +11 -3
  89. package/dest/entrypoints/client/lazy/utils.d.ts +1 -1
  90. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  91. package/dest/entrypoints/client/lazy/utils.js +11 -3
  92. package/dest/entrypoints/pxe_creation_options.d.ts +7 -1
  93. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  94. package/dest/entrypoints/server/index.d.ts +2 -1
  95. package/dest/entrypoints/server/index.d.ts.map +1 -1
  96. package/dest/entrypoints/server/index.js +1 -0
  97. package/dest/entrypoints/server/utils.d.ts +3 -2
  98. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  99. package/dest/entrypoints/server/utils.js +11 -3
  100. package/dest/events/event_service.d.ts +13 -5
  101. package/dest/events/event_service.d.ts.map +1 -1
  102. package/dest/events/event_service.js +30 -9
  103. package/dest/hooks/authorize_utility_call.d.ts +41 -0
  104. package/dest/hooks/authorize_utility_call.d.ts.map +1 -0
  105. package/dest/hooks/authorize_utility_call.js +4 -0
  106. package/dest/hooks/execution_hooks.d.ts +42 -0
  107. package/dest/hooks/execution_hooks.d.ts.map +1 -0
  108. package/dest/hooks/execution_hooks.js +9 -0
  109. package/dest/hooks/index.d.ts +4 -0
  110. package/dest/hooks/index.d.ts.map +1 -0
  111. package/dest/hooks/index.js +1 -0
  112. package/dest/logs/log_service.d.ts +6 -5
  113. package/dest/logs/log_service.d.ts.map +1 -1
  114. package/dest/logs/log_service.js +112 -48
  115. package/dest/messages/message_context_service.d.ts +1 -1
  116. package/dest/messages/message_context_service.d.ts.map +1 -1
  117. package/dest/messages/message_context_service.js +28 -9
  118. package/dest/notes/note_service.d.ts +25 -3
  119. package/dest/notes/note_service.d.ts.map +1 -1
  120. package/dest/notes/note_service.js +80 -65
  121. package/dest/oracle_version.d.ts +3 -3
  122. package/dest/oracle_version.js +4 -4
  123. package/dest/private_kernel/batch_planner.d.ts +47 -0
  124. package/dest/private_kernel/batch_planner.d.ts.map +1 -0
  125. package/dest/private_kernel/batch_planner.js +104 -0
  126. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.js +1 -1
  127. package/dest/private_kernel/hints/test_utils.d.ts +1 -1
  128. package/dest/private_kernel/hints/test_utils.d.ts.map +1 -1
  129. package/dest/private_kernel/hints/test_utils.js +2 -3
  130. package/dest/private_kernel/private_kernel_execution_prover.d.ts +6 -2
  131. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  132. package/dest/private_kernel/private_kernel_execution_prover.js +148 -52
  133. package/dest/private_kernel/private_kernel_oracle.d.ts +6 -6
  134. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  135. package/dest/private_kernel/private_kernel_oracle.js +12 -7
  136. package/dest/pxe.d.ts +54 -7
  137. package/dest/pxe.d.ts.map +1 -1
  138. package/dest/pxe.js +126 -84
  139. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.d.ts +42 -0
  140. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.d.ts.map +1 -0
  141. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.js +93 -0
  142. package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts +15 -0
  143. package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts.map +1 -0
  144. package/dest/storage/backwards_compatibility_tests/schema_tests.js +591 -0
  145. package/dest/storage/backwards_compatibility_tests/store_spy.d.ts +19 -0
  146. package/dest/storage/backwards_compatibility_tests/store_spy.d.ts.map +1 -0
  147. package/dest/storage/backwards_compatibility_tests/store_spy.js +63 -0
  148. package/dest/storage/contract_store/contract_store.d.ts +1 -1
  149. package/dest/storage/contract_store/contract_store.d.ts.map +1 -1
  150. package/dest/storage/contract_store/contract_store.js +5 -24
  151. package/dest/storage/metadata.d.ts +1 -1
  152. package/dest/storage/metadata.js +1 -1
  153. package/dest/storage/open_pxe_stores.d.ts +33 -0
  154. package/dest/storage/open_pxe_stores.d.ts.map +1 -0
  155. package/dest/storage/open_pxe_stores.js +27 -0
  156. package/dest/storage/private_event_store/stored_private_event.js +1 -1
  157. package/dest/storage/tagging_store/recipient_tagging_store.d.ts +6 -6
  158. package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -1
  159. package/dest/storage/tagging_store/sender_tagging_store.d.ts +5 -5
  160. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -1
  161. package/dest/storage/tagging_store/sender_tagging_store.js +3 -3
  162. package/dest/tagging/get_all_logs_by_tags.d.ts +34 -10
  163. package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -1
  164. package/dest/tagging/get_all_logs_by_tags.js +36 -37
  165. package/dest/tagging/index.d.ts +5 -4
  166. package/dest/tagging/index.d.ts.map +1 -1
  167. package/dest/tagging/index.js +4 -3
  168. package/dest/tagging/persist_sender_tagging_index_ranges.d.ts +29 -0
  169. package/dest/tagging/persist_sender_tagging_index_ranges.d.ts.map +1 -0
  170. package/dest/tagging/persist_sender_tagging_index_ranges.js +42 -0
  171. package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts +56 -0
  172. package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts.map +1 -0
  173. package/dest/tagging/recipient_sync/sync_tagged_private_logs.js +163 -0
  174. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts +3 -3
  175. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts.map +1 -1
  176. package/dest/tagging/reconcile_tagging_index_ranges.d.ts +36 -0
  177. package/dest/tagging/reconcile_tagging_index_ranges.d.ts.map +1 -0
  178. package/dest/tagging/reconcile_tagging_index_ranges.js +74 -0
  179. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +4 -5
  180. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -1
  181. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +26 -14
  182. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +11 -6
  183. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -1
  184. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +21 -0
  185. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +4 -4
  186. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -1
  187. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +2 -2
  188. package/package.json +20 -17
  189. package/src/bin/check_oracle_version.ts +46 -119
  190. package/src/bin/index.ts +1 -0
  191. package/src/bin/oracle_version_helpers.ts +121 -0
  192. package/src/block_synchronizer/block_stream_source.ts +81 -0
  193. package/src/block_synchronizer/block_synchronizer.ts +22 -12
  194. package/src/config/index.ts +15 -9
  195. package/src/config/package_info.ts +1 -1
  196. package/src/contract_function_simulator/contract_function_simulator.ts +34 -11
  197. package/src/contract_function_simulator/execution_note_cache.ts +1 -1
  198. package/src/contract_function_simulator/execution_tagging_index_cache.ts +5 -9
  199. package/src/contract_function_simulator/index.ts +50 -1
  200. package/src/contract_function_simulator/noir-structs/bounded_vec.ts +55 -0
  201. package/src/contract_function_simulator/noir-structs/ephemeral_array.ts +66 -0
  202. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +3 -2
  203. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +35 -2
  204. package/src/contract_function_simulator/noir-structs/note_data.ts +27 -0
  205. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +3 -2
  206. package/src/contract_function_simulator/noir-structs/option.ts +69 -0
  207. package/src/contract_function_simulator/noir-structs/provided_secret.ts +27 -0
  208. package/src/contract_function_simulator/oracle/interfaces.ts +12 -204
  209. package/src/contract_function_simulator/oracle/note_packing_utils.ts +3 -3
  210. package/src/contract_function_simulator/oracle/oracle.ts +406 -556
  211. package/src/contract_function_simulator/oracle/oracle_registry.ts +585 -0
  212. package/src/contract_function_simulator/oracle/oracle_type_mappings.ts +553 -0
  213. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +74 -67
  214. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +350 -304
  215. package/src/contract_function_simulator/proxied_contract_data_source.ts +40 -70
  216. package/src/contract_sync/contract_sync_service.ts +56 -43
  217. package/src/contract_sync/helpers.ts +11 -23
  218. package/src/debug/pxe_debug_utils.ts +0 -8
  219. package/src/entrypoints/client/bundle/utils.ts +8 -2
  220. package/src/entrypoints/client/lazy/utils.ts +8 -2
  221. package/src/entrypoints/pxe_creation_options.ts +7 -0
  222. package/src/entrypoints/server/index.ts +1 -0
  223. package/src/entrypoints/server/utils.ts +13 -3
  224. package/src/events/event_service.ts +54 -19
  225. package/src/hooks/authorize_utility_call.ts +44 -0
  226. package/src/hooks/execution_hooks.ts +48 -0
  227. package/src/hooks/index.ts +7 -0
  228. package/src/logs/log_service.ts +137 -92
  229. package/src/messages/message_context_service.ts +42 -24
  230. package/src/notes/note_service.ts +115 -91
  231. package/src/oracle_version.ts +4 -4
  232. package/src/private_kernel/batch_planner.ts +169 -0
  233. package/src/private_kernel/hints/private_kernel_reset_private_inputs_builder.ts +1 -1
  234. package/src/private_kernel/hints/test_utils.ts +2 -9
  235. package/src/private_kernel/private_kernel_execution_prover.ts +236 -73
  236. package/src/private_kernel/private_kernel_oracle.ts +21 -11
  237. package/src/pxe.ts +208 -85
  238. package/src/storage/backwards_compatibility_tests/__snapshots__/AddressStore.json +22 -0
  239. package/src/storage/backwards_compatibility_tests/__snapshots__/AnchorBlockStore.json +3 -0
  240. package/src/storage/backwards_compatibility_tests/__snapshots__/CapsuleStore.json +16 -0
  241. package/src/storage/backwards_compatibility_tests/__snapshots__/ContractStore.json +28 -0
  242. package/src/storage/backwards_compatibility_tests/__snapshots__/KeyStore.json +52 -0
  243. package/src/storage/backwards_compatibility_tests/__snapshots__/L2TipsKVStore.json +46 -0
  244. package/src/storage/backwards_compatibility_tests/__snapshots__/NoteStore.json +36 -0
  245. package/src/storage/backwards_compatibility_tests/__snapshots__/PrivateEventStore.json +44 -0
  246. package/src/storage/backwards_compatibility_tests/__snapshots__/RecipientTaggingStore.json +18 -0
  247. package/src/storage/backwards_compatibility_tests/__snapshots__/SenderAddressBookStore.json +16 -0
  248. package/src/storage/backwards_compatibility_tests/__snapshots__/SenderTaggingStore.json +22 -0
  249. package/src/storage/backwards_compatibility_tests/__snapshots__/opened_stores.json +97 -0
  250. package/src/storage/backwards_compatibility_tests/kv_store_snapshot.ts +122 -0
  251. package/src/storage/backwards_compatibility_tests/schema_tests.ts +712 -0
  252. package/src/storage/backwards_compatibility_tests/store_spy.ts +73 -0
  253. package/src/storage/contract_store/contract_store.ts +6 -29
  254. package/src/storage/metadata.ts +1 -1
  255. package/src/storage/open_pxe_stores.ts +49 -0
  256. package/src/storage/private_event_store/stored_private_event.ts +1 -1
  257. package/src/storage/tagging_store/recipient_tagging_store.ts +5 -9
  258. package/src/storage/tagging_store/sender_tagging_store.ts +6 -6
  259. package/src/tagging/get_all_logs_by_tags.ts +78 -50
  260. package/src/tagging/index.ts +4 -3
  261. package/src/tagging/persist_sender_tagging_index_ranges.ts +57 -0
  262. package/src/tagging/recipient_sync/sync_tagged_private_logs.ts +240 -0
  263. package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +2 -2
  264. package/src/tagging/reconcile_tagging_index_ranges.ts +102 -0
  265. package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +41 -19
  266. package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +23 -8
  267. package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +4 -5
  268. package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.d.ts +0 -9
  269. package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.d.ts.map +0 -1
  270. package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.js +0 -47
  271. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +0 -14
  272. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +0 -1
  273. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +0 -85
  274. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +0 -14
  275. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +0 -1
  276. package/dest/tagging/recipient_sync/utils/load_logs_for_range.js +0 -33
  277. package/src/contract_function_simulator/oracle/legacy_oracle_mappings.ts +0 -104
  278. package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +0 -130
  279. package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +0 -44
@@ -1,14 +1,5 @@
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 { arrayOfArraysToBoundedVecOfArrays, bufferToBoundedVec, fromUintArray, fromUintBoundedVec, toACVMField } from '@aztec/simulator/client';
5
- import { FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
6
- import { AztecAddress } from '@aztec/stdlib/aztec-address';
7
- import { BlockHash } from '@aztec/stdlib/block';
8
- import { ContractClassLog, ContractClassLogFields } from '@aztec/stdlib/logs';
9
1
  import { ORACLE_VERSION_MAJOR, ORACLE_VERSION_MINOR } from '../../oracle_version.js';
10
- import { buildLegacyOracleCallbacks } from './legacy_oracle_mappings.js';
11
- import { packAsHintedNote } from './note_packing_utils.js';
2
+ import { callHandler } from './oracle_registry.js';
12
3
  export class UnavailableOracleError extends Error {
13
4
  constructor(oracleName){
14
5
  super(`${oracleName} oracles not available with the current handler`);
@@ -72,8 +63,8 @@ export class UnavailableOracleError extends Error {
72
63
  // Validate oracle names - these must be prefixed with either "aztec_prv_" or "aztec_utl_" to indicate their scope
73
64
  // and must correspond to a function on the Oracle class.
74
65
  oracleNames.forEach((name)=>{
75
- if (!name.startsWith('aztec_prv_') && !name.startsWith('aztec_utl_')) {
76
- throw new Error(`Oracle function "${name}" must be prefixed with either "aztec_prv_" or "aztec_utl_" to indicate its scope`);
66
+ if (!name.startsWith('aztec_prv_') && !name.startsWith('aztec_utl_') && !name.startsWith('aztec_misc_')) {
67
+ throw new Error(`Oracle function "${name}" must be prefixed with "aztec_prv_", "aztec_utl_", or "aztec_misc_" to indicate its scope`);
77
68
  }
78
69
  const method = this[name];
79
70
  if (typeof method !== 'function') {
@@ -86,15 +77,11 @@ export class UnavailableOracleError extends Error {
86
77
  acc[name] = method.bind(this);
87
78
  return acc;
88
79
  }, {});
89
- const allCallbacks = {
90
- ...callback,
91
- ...buildLegacyOracleCallbacks(this)
92
- };
93
80
  // Wrap in a Proxy to intercept access to missing oracle names and provide enhanced error messages when the
94
81
  // contract's minor version is higher than the PXE's (i.e. the contract expects oracles that were added in a newer
95
82
  // minor version).
96
83
  const handler = this.handler;
97
- return new Proxy(allCallbacks, {
84
+ return new Proxy(callback, {
98
85
  get (target, prop) {
99
86
  if (prop in target) {
100
87
  return target[prop];
@@ -117,437 +104,449 @@ export class UnavailableOracleError extends Error {
117
104
  });
118
105
  }
119
106
  // eslint-disable-next-line camelcase
120
- aztec_utl_assertCompatibleOracleVersionV2([major], [minor]) {
121
- this.handlerAsMisc().assertCompatibleOracleVersion(Fr.fromString(major).toNumber(), Fr.fromString(minor).toNumber());
122
- return Promise.resolve([]);
107
+ aztec_misc_assertCompatibleOracleVersion(...inputs) {
108
+ return callHandler({
109
+ oracle: 'aztec_misc_assertCompatibleOracleVersion',
110
+ inputs,
111
+ handler: ([major, minor])=>{
112
+ this.handlerAsMisc().assertCompatibleOracleVersion(major, minor);
113
+ }
114
+ });
123
115
  }
124
116
  // eslint-disable-next-line camelcase
125
- aztec_utl_getRandomField() {
126
- const val = this.handlerAsMisc().getRandomField();
127
- return Promise.resolve([
128
- toACVMField(val)
129
- ]);
117
+ aztec_misc_getRandomField() {
118
+ return callHandler({
119
+ oracle: 'aztec_misc_getRandomField',
120
+ inputs: [],
121
+ handler: ()=>this.handlerAsMisc().getRandomField()
122
+ });
130
123
  }
131
124
  // eslint-disable-next-line camelcase
132
- aztec_prv_setHashPreimage(values, [hash]) {
133
- this.handlerAsPrivate().setHashPreimage(values.map(Fr.fromString), Fr.fromString(hash));
134
- return Promise.resolve([]);
125
+ aztec_prv_setHashPreimage(...inputs) {
126
+ return callHandler({
127
+ oracle: 'aztec_prv_setHashPreimage',
128
+ inputs,
129
+ handler: ([values, hash])=>{
130
+ this.handlerAsPrivate().setHashPreimage(values, hash);
131
+ }
132
+ });
135
133
  }
136
134
  // eslint-disable-next-line camelcase
137
- async aztec_prv_getHashPreimage([returnsHash]) {
138
- const values = await this.handlerAsPrivate().getHashPreimage(Fr.fromString(returnsHash));
139
- return [
140
- values.map(toACVMField)
141
- ];
135
+ aztec_prv_getHashPreimage(...inputs) {
136
+ return callHandler({
137
+ oracle: 'aztec_prv_getHashPreimage',
138
+ inputs,
139
+ handler: ([returnsHash])=>this.handlerAsPrivate().getHashPreimage(returnsHash)
140
+ });
142
141
  }
143
142
  // eslint-disable-next-line camelcase
144
143
  aztec_utl_getUtilityContext() {
145
- const context = this.handlerAsUtility().getUtilityContext();
146
- return Promise.resolve(context.toNoirRepresentation());
147
- }
148
- // eslint-disable-next-line camelcase
149
- async aztec_utl_getKeyValidationRequest([pkMHash]) {
150
- const keyValidationRequest = await this.handlerAsUtility().getKeyValidationRequest(Fr.fromString(pkMHash));
151
- return keyValidationRequest.toFields().map(toACVMField);
144
+ return callHandler({
145
+ oracle: 'aztec_utl_getUtilityContext',
146
+ inputs: [],
147
+ handler: ()=>this.handlerAsUtility().getUtilityContext()
148
+ });
152
149
  }
153
150
  // eslint-disable-next-line camelcase
154
- async aztec_utl_getContractInstance([address]) {
155
- const instance = await this.handlerAsUtility().getContractInstance(AztecAddress.fromField(Fr.fromString(address)));
156
- return [
157
- instance.salt,
158
- instance.deployer,
159
- instance.currentContractClassId,
160
- instance.initializationHash,
161
- ...instance.publicKeys.toFields()
162
- ].map(toACVMField);
151
+ aztec_utl_getKeyValidationRequest(...inputs) {
152
+ return callHandler({
153
+ oracle: 'aztec_utl_getKeyValidationRequest',
154
+ inputs,
155
+ handler: ([pkMHash])=>this.handlerAsUtility().getKeyValidationRequest(pkMHash)
156
+ });
163
157
  }
164
158
  // eslint-disable-next-line camelcase
165
- async aztec_utl_getNoteHashMembershipWitness([anchorBlockHash], [noteHash]) {
166
- const parsedAnchorBlockHash = BlockHash.fromString(anchorBlockHash);
167
- const parsedNoteHash = Fr.fromString(noteHash);
168
- const witness = await this.handlerAsUtility().getNoteHashMembershipWitness(parsedAnchorBlockHash, parsedNoteHash);
169
- if (!witness) {
170
- throw new Error(`Note hash ${noteHash} not found in the note hash tree at anchor block hash ${parsedAnchorBlockHash.toString()}.`);
171
- }
172
- return witness.toNoirRepresentation();
159
+ aztec_utl_getContractInstance(...inputs) {
160
+ return callHandler({
161
+ oracle: 'aztec_utl_getContractInstance',
162
+ inputs,
163
+ handler: ([address])=>this.handlerAsUtility().getContractInstance(address)
164
+ });
173
165
  }
174
166
  // eslint-disable-next-line camelcase
175
- async aztec_utl_getBlockHashMembershipWitness([anchorBlockHash], [blockHash]) {
176
- const parsedAnchorBlockHash = BlockHash.fromString(anchorBlockHash);
177
- const parsedBlockHash = BlockHash.fromString(blockHash);
178
- const witness = await this.handlerAsUtility().getBlockHashMembershipWitness(parsedAnchorBlockHash, parsedBlockHash);
179
- if (!witness) {
180
- throw new Error(`Block hash ${parsedBlockHash.toString()} not found in the archive tree at anchor block ${parsedAnchorBlockHash.toString()}.`);
181
- }
182
- return witness.toNoirRepresentation();
167
+ aztec_utl_getNoteHashMembershipWitness(...inputs) {
168
+ return callHandler({
169
+ oracle: 'aztec_utl_getNoteHashMembershipWitness',
170
+ inputs,
171
+ handler: ([anchorBlockHash, noteHash])=>this.handlerAsUtility().getNoteHashMembershipWitness(anchorBlockHash, noteHash)
172
+ });
183
173
  }
184
174
  // eslint-disable-next-line camelcase
185
- async aztec_utl_getNullifierMembershipWitness([blockHash], [nullifier]) {
186
- const parsedBlockHash = BlockHash.fromString(blockHash);
187
- const parsedNullifier = Fr.fromString(nullifier);
188
- const witness = await this.handlerAsUtility().getNullifierMembershipWitness(parsedBlockHash, parsedNullifier);
189
- if (!witness) {
190
- throw new Error(`Nullifier witness not found for nullifier ${parsedNullifier} at block hash ${parsedBlockHash.toString()}.`);
191
- }
192
- return witness.toNoirRepresentation();
175
+ aztec_utl_getBlockHashMembershipWitness(...inputs) {
176
+ return callHandler({
177
+ oracle: 'aztec_utl_getBlockHashMembershipWitness',
178
+ inputs,
179
+ handler: ([anchorBlockHash, blockHash])=>this.handlerAsUtility().getBlockHashMembershipWitness(anchorBlockHash, blockHash)
180
+ });
193
181
  }
194
182
  // eslint-disable-next-line camelcase
195
- async aztec_utl_getLowNullifierMembershipWitness([blockHash], [nullifier]) {
196
- const parsedBlockHash = BlockHash.fromString(blockHash);
197
- const parsedNullifier = Fr.fromString(nullifier);
198
- const witness = await this.handlerAsUtility().getLowNullifierMembershipWitness(parsedBlockHash, parsedNullifier);
199
- if (!witness) {
200
- throw new Error(`Low nullifier witness not found for nullifier ${parsedNullifier} at block hash ${parsedBlockHash.toString()}.`);
201
- }
202
- return witness.toNoirRepresentation();
183
+ aztec_utl_getNullifierMembershipWitness(...inputs) {
184
+ return callHandler({
185
+ oracle: 'aztec_utl_getNullifierMembershipWitness',
186
+ inputs,
187
+ handler: ([blockHash, nullifier])=>this.handlerAsUtility().getNullifierMembershipWitness(blockHash, nullifier)
188
+ });
203
189
  }
204
190
  // eslint-disable-next-line camelcase
205
- async aztec_utl_getPublicDataWitness([blockHash], [leafSlot]) {
206
- const parsedBlockHash = BlockHash.fromString(blockHash);
207
- const parsedLeafSlot = Fr.fromString(leafSlot);
208
- const witness = await this.handlerAsUtility().getPublicDataWitness(parsedBlockHash, parsedLeafSlot);
209
- if (!witness) {
210
- throw new Error(`Public data witness not found for slot ${parsedLeafSlot} at block hash ${parsedBlockHash.toString()}.`);
211
- }
212
- return witness.toNoirRepresentation();
191
+ aztec_utl_getLowNullifierMembershipWitness(...inputs) {
192
+ return callHandler({
193
+ oracle: 'aztec_utl_getLowNullifierMembershipWitness',
194
+ inputs,
195
+ handler: ([blockHash, nullifier])=>this.handlerAsUtility().getLowNullifierMembershipWitness(blockHash, nullifier)
196
+ });
213
197
  }
214
198
  // eslint-disable-next-line camelcase
215
- async aztec_utl_getBlockHeader([blockNumber]) {
216
- const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
217
- const header = await this.handlerAsUtility().getBlockHeader(BlockNumber(parsedBlockNumber));
218
- if (!header) {
219
- throw new Error(`Block header not found for block ${parsedBlockNumber}.`);
220
- }
221
- return header.toFields().map(toACVMField);
199
+ aztec_utl_getPublicDataWitness(...inputs) {
200
+ return callHandler({
201
+ oracle: 'aztec_utl_getPublicDataWitness',
202
+ inputs,
203
+ handler: ([blockHash, leafSlot])=>this.handlerAsUtility().getPublicDataWitness(blockHash, leafSlot)
204
+ });
222
205
  }
223
206
  // eslint-disable-next-line camelcase
224
- async aztec_utl_getAuthWitness([messageHash]) {
225
- const messageHashField = Fr.fromString(messageHash);
226
- const witness = await this.handlerAsUtility().getAuthWitness(messageHashField);
227
- if (!witness) {
228
- throw new Error(`Unknown auth witness for message hash ${messageHashField}`);
229
- }
230
- return [
231
- witness.map(toACVMField)
232
- ];
207
+ aztec_utl_getBlockHeader(...inputs) {
208
+ return callHandler({
209
+ oracle: 'aztec_utl_getBlockHeader',
210
+ inputs,
211
+ handler: ([blockNumber])=>this.handlerAsUtility().getBlockHeader(blockNumber)
212
+ });
233
213
  }
234
214
  // eslint-disable-next-line camelcase
235
- async aztec_utl_getPublicKeysAndPartialAddress([address]) {
236
- const parsedAddress = AztecAddress.fromField(Fr.fromString(address));
237
- const result = await this.handlerAsUtility().getPublicKeysAndPartialAddress(parsedAddress);
238
- // We are going to return a Noir Option struct to represent the possibility of null values. Options are a struct
239
- // with two fields: `some` (a boolean) and `value` (a field array in this case).
240
- if (result === undefined) {
241
- // No data was found so we set `some` to 0 and pad `value` with zeros get the correct return size.
242
- return [
243
- toACVMField(0),
244
- Array(13).fill(toACVMField(0))
245
- ];
246
- } else {
247
- // Data was found so we set `some` to 1 and return it along with `value`.
248
- return [
249
- toACVMField(1),
250
- [
251
- ...result.publicKeys.toFields(),
252
- result.partialAddress
253
- ].map(toACVMField)
254
- ];
255
- }
215
+ aztec_utl_getAuthWitness(...inputs) {
216
+ return callHandler({
217
+ oracle: 'aztec_utl_getAuthWitness',
218
+ inputs,
219
+ handler: ([messageHash])=>this.handlerAsUtility().getAuthWitness(messageHash)
220
+ });
256
221
  }
257
222
  // eslint-disable-next-line camelcase
258
- async aztec_utl_getNotes([ownerSome], [ownerValue], [storageSlot], [numSelects], selectByIndexes, selectByOffsets, selectByLengths, selectValues, selectComparators, sortByIndexes, sortByOffsets, sortByLengths, sortOrder, [limit], [offset], [status], [maxNotes], [packedHintedNoteLength]) {
259
- // Parse Option<AztecAddress>: ownerSome is 0 for None, 1 for Some
260
- const owner = Fr.fromString(ownerSome).toNumber() === 1 ? AztecAddress.fromString(ownerValue) : undefined;
261
- const noteDatas = await this.handlerAsUtility().getNotes(owner, Fr.fromString(storageSlot), +numSelects, selectByIndexes.map((s)=>+s), selectByOffsets.map((s)=>+s), selectByLengths.map((s)=>+s), selectValues.map(Fr.fromString), selectComparators.map((s)=>+s), sortByIndexes.map((s)=>+s), sortByOffsets.map((s)=>+s), sortByLengths.map((s)=>+s), sortOrder.map((s)=>+s), +limit, +offset, +status);
262
- const returnDataAsArrayOfPackedHintedNotes = noteDatas.map((noteData)=>packAsHintedNote({
263
- contractAddress: noteData.contractAddress,
264
- owner: noteData.owner,
265
- randomness: noteData.randomness,
266
- storageSlot: noteData.storageSlot,
267
- noteNonce: noteData.noteNonce,
268
- isPending: noteData.isPending,
269
- note: noteData.note
270
- }));
271
- // Now we convert each sub-array to an array of ACVMField
272
- const returnDataAsArrayOfACVMFieldArrays = returnDataAsArrayOfPackedHintedNotes.map((subArray)=>subArray.map(toACVMField));
273
- // At last we convert the array of arrays to a bounded vec of arrays
274
- return arrayOfArraysToBoundedVecOfArrays(returnDataAsArrayOfACVMFieldArrays, +maxNotes, +packedHintedNoteLength);
223
+ aztec_utl_getPublicKeysAndPartialAddress(...inputs) {
224
+ return callHandler({
225
+ oracle: 'aztec_utl_getPublicKeysAndPartialAddress',
226
+ inputs,
227
+ handler: ([address])=>this.handlerAsUtility().getPublicKeysAndPartialAddress(address)
228
+ });
275
229
  }
276
230
  // eslint-disable-next-line camelcase
277
- aztec_prv_notifyCreatedNote([owner], [storageSlot], [randomness], [noteTypeId], note, [noteHash], [counter]) {
278
- this.handlerAsPrivate().notifyCreatedNote(AztecAddress.fromString(owner), Fr.fromString(storageSlot), Fr.fromString(randomness), NoteSelector.fromField(Fr.fromString(noteTypeId)), note.map(Fr.fromString), Fr.fromString(noteHash), +counter);
279
- return Promise.resolve([]);
231
+ aztec_utl_getNotes(...inputs) {
232
+ return callHandler({
233
+ oracle: 'aztec_utl_getNotes',
234
+ inputs,
235
+ handler: ([owner, storageSlot, numSelects, selectByIndexes, selectByOffsets, selectByLengths, selectValues, selectComparators, sortByIndexes, sortByOffsets, sortByLengths, sortOrder, limit, offset, status, maxNotes, packedHintedNoteLength])=>this.handlerAsUtility().getNotes(owner, storageSlot, numSelects, selectByIndexes, selectByOffsets, selectByLengths, selectValues, selectComparators, sortByIndexes, sortByOffsets, sortByLengths, sortOrder, limit, offset, status, maxNotes, packedHintedNoteLength)
236
+ });
280
237
  }
281
238
  // eslint-disable-next-line camelcase
282
- async aztec_prv_notifyNullifiedNote([innerNullifier], [noteHash], [counter]) {
283
- await this.handlerAsPrivate().notifyNullifiedNote(Fr.fromString(innerNullifier), Fr.fromString(noteHash), +counter);
284
- return [];
239
+ aztec_prv_notifyCreatedNote(...inputs) {
240
+ return callHandler({
241
+ oracle: 'aztec_prv_notifyCreatedNote',
242
+ inputs,
243
+ handler: ([owner, storageSlot, randomness, noteTypeId, note, noteHash, counter])=>{
244
+ this.handlerAsPrivate().notifyCreatedNote(owner, storageSlot, randomness, noteTypeId, note, noteHash, counter);
245
+ }
246
+ });
285
247
  }
286
248
  // eslint-disable-next-line camelcase
287
- async aztec_prv_notifyCreatedNullifier([innerNullifier]) {
288
- await this.handlerAsPrivate().notifyCreatedNullifier(Fr.fromString(innerNullifier));
289
- return [];
249
+ aztec_prv_notifyNullifiedNote(...inputs) {
250
+ return callHandler({
251
+ oracle: 'aztec_prv_notifyNullifiedNote',
252
+ inputs,
253
+ handler: ([innerNullifier, noteHash, counter])=>this.handlerAsPrivate().notifyNullifiedNote(innerNullifier, noteHash, counter)
254
+ });
290
255
  }
291
256
  // eslint-disable-next-line camelcase
292
- async aztec_prv_isNullifierPending([innerNullifier], [contractAddress]) {
293
- const isPending = await this.handlerAsPrivate().isNullifierPending(Fr.fromString(innerNullifier), AztecAddress.fromString(contractAddress));
294
- return [
295
- toACVMField(isPending)
296
- ];
257
+ aztec_prv_notifyCreatedNullifier(...inputs) {
258
+ return callHandler({
259
+ oracle: 'aztec_prv_notifyCreatedNullifier',
260
+ inputs,
261
+ handler: ([innerNullifier])=>this.handlerAsPrivate().notifyCreatedNullifier(innerNullifier)
262
+ });
297
263
  }
298
264
  // eslint-disable-next-line camelcase
299
- async aztec_utl_doesNullifierExist([innerNullifier]) {
300
- const exists = await this.handlerAsUtility().doesNullifierExist(Fr.fromString(innerNullifier));
301
- return [
302
- toACVMField(exists)
303
- ];
265
+ aztec_prv_isNullifierPending(...inputs) {
266
+ return callHandler({
267
+ oracle: 'aztec_prv_isNullifierPending',
268
+ inputs,
269
+ handler: ([innerNullifier, contractAddress])=>this.handlerAsPrivate().isNullifierPending(innerNullifier, contractAddress)
270
+ });
304
271
  }
305
272
  // eslint-disable-next-line camelcase
306
- async aztec_utl_getL1ToL2MembershipWitness([contractAddress], [messageHash], [secret]) {
307
- const message = await this.handlerAsUtility().getL1ToL2MembershipWitness(AztecAddress.fromString(contractAddress), Fr.fromString(messageHash), Fr.fromString(secret));
308
- return message.toNoirRepresentation();
273
+ aztec_utl_doesNullifierExist(...inputs) {
274
+ return callHandler({
275
+ oracle: 'aztec_utl_doesNullifierExist',
276
+ inputs,
277
+ handler: ([innerNullifier])=>this.handlerAsUtility().doesNullifierExist(innerNullifier)
278
+ });
309
279
  }
310
280
  // eslint-disable-next-line camelcase
311
- async aztec_utl_getFromPublicStorage([blockHash], [contractAddress], [startStorageSlot], [numberOfElements]) {
312
- const values = await this.handlerAsUtility().getFromPublicStorage(BlockHash.fromString(blockHash), new AztecAddress(Fr.fromString(contractAddress)), Fr.fromString(startStorageSlot), +numberOfElements);
313
- return [
314
- values.map(toACVMField)
315
- ];
281
+ aztec_utl_getL1ToL2MembershipWitness(...inputs) {
282
+ return callHandler({
283
+ oracle: 'aztec_utl_getL1ToL2MembershipWitness',
284
+ inputs,
285
+ handler: ([contractAddress, messageHash, secret])=>this.handlerAsUtility().getL1ToL2MembershipWitness(contractAddress, messageHash, secret)
286
+ });
316
287
  }
317
288
  // eslint-disable-next-line camelcase
318
- aztec_prv_notifyCreatedContractClassLog([contractAddress], message, [length], [counter]) {
319
- const logFields = new ContractClassLogFields(message.map(Fr.fromString));
320
- const log = new ContractClassLog(new AztecAddress(Fr.fromString(contractAddress)), logFields, +length);
321
- this.handlerAsPrivate().notifyCreatedContractClassLog(log, +counter);
322
- return Promise.resolve([]);
289
+ aztec_utl_getFromPublicStorage(...inputs) {
290
+ return callHandler({
291
+ oracle: 'aztec_utl_getFromPublicStorage',
292
+ inputs,
293
+ handler: ([blockHash, contractAddress, startStorageSlot, numberOfElements])=>this.handlerAsUtility().getFromPublicStorage(blockHash, contractAddress, startStorageSlot, numberOfElements)
294
+ });
323
295
  }
324
296
  // eslint-disable-next-line camelcase
325
- async aztec_utl_log(level, message, _ignoredFieldsSize, fields) {
326
- const levelFr = Fr.fromString(level[0]);
327
- const messageStr = message.map((acvmField)=>String.fromCharCode(Fr.fromString(acvmField).toNumber())).join('');
328
- const fieldsFr = fields.map(Fr.fromString);
329
- await this.handlerAsMisc().log(levelFr.toNumber(), messageStr, fieldsFr);
330
- return [];
297
+ aztec_utl_callUtilityFunction(...inputs) {
298
+ return callHandler({
299
+ oracle: 'aztec_utl_callUtilityFunction',
300
+ inputs,
301
+ handler: ([contractAddress, functionSelector, args])=>this.handlerAsUtility().callUtilityFunction(contractAddress, functionSelector, args)
302
+ });
331
303
  }
332
- // This function's name is directly hardcoded in `circuit_recorder.ts`. Don't forget to update it there if you
333
- // change the name here.
334
304
  // eslint-disable-next-line camelcase
335
- async aztec_prv_callPrivateFunction([contractAddress], [functionSelector], [argsHash], [sideEffectCounter], [isStaticCall]) {
336
- const { endSideEffectCounter, returnsHash } = await this.handlerAsPrivate().callPrivateFunction(AztecAddress.fromField(Fr.fromString(contractAddress)), FunctionSelector.fromField(Fr.fromString(functionSelector)), Fr.fromString(argsHash), Fr.fromString(sideEffectCounter).toNumber(), Fr.fromString(isStaticCall).toBool());
337
- return [
338
- [
339
- endSideEffectCounter,
340
- returnsHash
341
- ].map(toACVMField)
342
- ];
305
+ aztec_prv_notifyCreatedContractClassLog(...inputs) {
306
+ return callHandler({
307
+ oracle: 'aztec_prv_notifyCreatedContractClassLog',
308
+ inputs,
309
+ handler: ([log, counter])=>{
310
+ this.handlerAsPrivate().notifyCreatedContractClassLog(log, counter);
311
+ }
312
+ });
343
313
  }
344
314
  // eslint-disable-next-line camelcase
345
- async aztec_prv_assertValidPublicCalldata([calldataHash]) {
346
- await this.handlerAsPrivate().assertValidPublicCalldata(Fr.fromString(calldataHash));
347
- return [];
315
+ aztec_misc_log(...inputs) {
316
+ return callHandler({
317
+ oracle: 'aztec_misc_log',
318
+ inputs,
319
+ handler: ([level, message, fieldsSize, fields])=>this.handlerAsMisc().log(level, message, fieldsSize, fields)
320
+ });
348
321
  }
322
+ // This function's name is directly hardcoded in `circuit_recorder.ts`. Don't forget to update it there if you
323
+ // change the name here.
349
324
  // eslint-disable-next-line camelcase
350
- async aztec_prv_notifyRevertiblePhaseStart([minRevertibleSideEffectCounter]) {
351
- await this.handlerAsPrivate().notifyRevertiblePhaseStart(Fr.fromString(minRevertibleSideEffectCounter).toNumber());
352
- return Promise.resolve([]);
325
+ aztec_prv_callPrivateFunction(...inputs) {
326
+ return callHandler({
327
+ oracle: 'aztec_prv_callPrivateFunction',
328
+ inputs,
329
+ handler: ([contractAddress, functionSelector, argsHash, sideEffectCounter, isStaticCall])=>this.handlerAsPrivate().callPrivateFunction(contractAddress, functionSelector, argsHash, sideEffectCounter, isStaticCall)
330
+ });
353
331
  }
354
332
  // eslint-disable-next-line camelcase
355
- async aztec_prv_isExecutionInRevertiblePhase([sideEffectCounter]) {
356
- const isRevertible = await this.handlerAsPrivate().isExecutionInRevertiblePhase(Fr.fromString(sideEffectCounter).toNumber());
357
- return Promise.resolve([
358
- toACVMField(isRevertible)
359
- ]);
333
+ aztec_prv_assertValidPublicCalldata(...inputs) {
334
+ return callHandler({
335
+ oracle: 'aztec_prv_assertValidPublicCalldata',
336
+ inputs,
337
+ handler: ([calldataHash])=>this.handlerAsPrivate().assertValidPublicCalldata(calldataHash)
338
+ });
360
339
  }
361
340
  // eslint-disable-next-line camelcase
362
- async aztec_prv_getNextAppTagAsSender([sender], [recipient]) {
363
- const tag = await this.handlerAsPrivate().getNextAppTagAsSender(AztecAddress.fromString(sender), AztecAddress.fromString(recipient));
364
- return [
365
- toACVMField(tag.value)
366
- ];
341
+ aztec_prv_notifyRevertiblePhaseStart(...inputs) {
342
+ return callHandler({
343
+ oracle: 'aztec_prv_notifyRevertiblePhaseStart',
344
+ inputs,
345
+ handler: ([minRevertibleSideEffectCounter])=>this.handlerAsPrivate().notifyRevertiblePhaseStart(minRevertibleSideEffectCounter)
346
+ });
367
347
  }
368
348
  // eslint-disable-next-line camelcase
369
- async aztec_utl_getPendingTaggedLogs([pendingTaggedLogArrayBaseSlot], [scope]) {
370
- await this.handlerAsUtility().getPendingTaggedLogs(Fr.fromString(pendingTaggedLogArrayBaseSlot), AztecAddress.fromString(scope));
371
- return [];
349
+ aztec_prv_isExecutionInRevertiblePhase(...inputs) {
350
+ return callHandler({
351
+ oracle: 'aztec_prv_isExecutionInRevertiblePhase',
352
+ inputs,
353
+ handler: ([sideEffectCounter])=>this.handlerAsPrivate().isExecutionInRevertiblePhase(sideEffectCounter)
354
+ });
372
355
  }
373
356
  // eslint-disable-next-line camelcase
374
- async aztec_utl_getPendingTaggedLogs_v2([scope]) {
375
- const slot = await this.handlerAsUtility().getPendingTaggedLogsV2(AztecAddress.fromString(scope));
376
- return [
377
- toACVMField(slot)
378
- ];
357
+ aztec_prv_getAppTaggingSecret(...inputs) {
358
+ return callHandler({
359
+ oracle: 'aztec_prv_getAppTaggingSecret',
360
+ inputs,
361
+ handler: ([sender, recipient])=>this.handlerAsPrivate().getAppTaggingSecret(sender, recipient)
362
+ });
379
363
  }
380
364
  // eslint-disable-next-line camelcase
381
- async aztec_utl_validateAndStoreEnqueuedNotesAndEvents([contractAddress], [noteValidationRequestsArrayBaseSlot], [eventValidationRequestsArrayBaseSlot], [maxNotePackedLen], [maxEventSerializedLen], [scope]) {
382
- await this.handlerAsUtility().validateAndStoreEnqueuedNotesAndEvents(AztecAddress.fromString(contractAddress), Fr.fromString(noteValidationRequestsArrayBaseSlot), Fr.fromString(eventValidationRequestsArrayBaseSlot), Fr.fromString(maxNotePackedLen).toNumber(), Fr.fromString(maxEventSerializedLen).toNumber(), AztecAddress.fromString(scope));
383
- return [];
365
+ aztec_prv_getNextTaggingIndex(...inputs) {
366
+ return callHandler({
367
+ oracle: 'aztec_prv_getNextTaggingIndex',
368
+ inputs,
369
+ handler: ([secret, mode])=>this.handlerAsPrivate().getNextTaggingIndex(secret, mode)
370
+ });
384
371
  }
385
372
  // eslint-disable-next-line camelcase
386
- async aztec_utl_validateAndStoreEnqueuedNotesAndEvents_v2([noteValidationRequestsArrayBaseSlot], [eventValidationRequestsArrayBaseSlot], [maxNotePackedLen], [maxEventSerializedLen], [scope]) {
387
- await this.handlerAsUtility().validateAndStoreEnqueuedNotesAndEventsV2(Fr.fromString(noteValidationRequestsArrayBaseSlot), Fr.fromString(eventValidationRequestsArrayBaseSlot), Fr.fromString(maxNotePackedLen).toNumber(), Fr.fromString(maxEventSerializedLen).toNumber(), AztecAddress.fromString(scope));
388
- return [];
373
+ aztec_utl_getPendingTaggedLogs(...inputs) {
374
+ return callHandler({
375
+ oracle: 'aztec_utl_getPendingTaggedLogs',
376
+ inputs,
377
+ handler: ([scope, providedSecrets])=>this.handlerAsUtility().getPendingTaggedLogs(scope, providedSecrets)
378
+ });
389
379
  }
390
380
  // eslint-disable-next-line camelcase
391
- async aztec_utl_getLogsByTag([contractAddress], [logRetrievalRequestsArrayBaseSlot], [logRetrievalResponsesArrayBaseSlot], [scope]) {
392
- await this.handlerAsUtility().getLogsByTag(AztecAddress.fromString(contractAddress), Fr.fromString(logRetrievalRequestsArrayBaseSlot), Fr.fromString(logRetrievalResponsesArrayBaseSlot), AztecAddress.fromString(scope));
393
- return [];
381
+ aztec_utl_validateAndStoreEnqueuedNotesAndEvents(...inputs) {
382
+ return callHandler({
383
+ oracle: 'aztec_utl_validateAndStoreEnqueuedNotesAndEvents',
384
+ inputs,
385
+ handler: ([noteValidationRequests, eventValidationRequests, scope])=>this.handlerAsUtility().validateAndStoreEnqueuedNotesAndEvents(noteValidationRequests, eventValidationRequests, scope)
386
+ });
394
387
  }
395
388
  // eslint-disable-next-line camelcase
396
- async aztec_utl_getMessageContextsByTxHash([contractAddress], [messageContextRequestsArrayBaseSlot], [messageContextResponsesArrayBaseSlot], [scope]) {
397
- await this.handlerAsUtility().getMessageContextsByTxHash(AztecAddress.fromString(contractAddress), Fr.fromString(messageContextRequestsArrayBaseSlot), Fr.fromString(messageContextResponsesArrayBaseSlot), AztecAddress.fromString(scope));
398
- return [];
389
+ aztec_utl_getLogsByTag(...inputs) {
390
+ return callHandler({
391
+ oracle: 'aztec_utl_getLogsByTag',
392
+ inputs,
393
+ handler: ([requests])=>this.handlerAsUtility().getLogsByTag(requests)
394
+ });
399
395
  }
400
396
  // eslint-disable-next-line camelcase
401
- async aztec_utl_getLogsByTag_v2([requestArrayBaseSlot]) {
402
- const responseSlot = await this.handlerAsUtility().getLogsByTagV2(Fr.fromString(requestArrayBaseSlot));
403
- return [
404
- toACVMField(responseSlot)
405
- ];
397
+ aztec_utl_getMessageContextsByTxHash(...inputs) {
398
+ return callHandler({
399
+ oracle: 'aztec_utl_getMessageContextsByTxHash',
400
+ inputs,
401
+ handler: ([requests])=>this.handlerAsUtility().getMessageContextsByTxHash(requests)
402
+ });
406
403
  }
407
404
  // eslint-disable-next-line camelcase
408
- async aztec_utl_getMessageContextsByTxHash_v2([requestArrayBaseSlot]) {
409
- const responseSlot = await this.handlerAsUtility().getMessageContextsByTxHashV2(Fr.fromString(requestArrayBaseSlot));
410
- return [
411
- toACVMField(responseSlot)
412
- ];
405
+ aztec_utl_getTxEffect(...inputs) {
406
+ return callHandler({
407
+ oracle: 'aztec_utl_getTxEffect',
408
+ inputs,
409
+ handler: ([txHash])=>this.handlerAsUtility().getTxEffect(txHash)
410
+ });
413
411
  }
414
412
  // eslint-disable-next-line camelcase
415
- aztec_utl_setCapsule([contractAddress], [slot], capsule, [scope]) {
416
- this.handlerAsUtility().setCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(slot), capsule.map(Fr.fromString), AztecAddress.fromField(Fr.fromString(scope)));
417
- return Promise.resolve([]);
418
- }
419
- // eslint-disable-next-line camelcase
420
- async aztec_utl_getCapsule([contractAddress], [slot], [tSize], [scope]) {
421
- const values = await this.handlerAsUtility().getCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(slot), AztecAddress.fromField(Fr.fromString(scope)));
422
- // We are going to return a Noir Option struct to represent the possibility of null values. Options are a struct
423
- // with two fields: `some` (a boolean) and `value` (a field array in this case).
424
- if (values === null) {
425
- // No data was found so we set `some` to 0 and pad `value` with zeros get the correct return size.
426
- return [
427
- toACVMField(0),
428
- Array(Fr.fromString(tSize).toNumber()).fill(toACVMField(0))
429
- ];
430
- } else {
431
- // Data was found so we set `some` to 1 and return it along with `value`.
432
- return [
433
- toACVMField(1),
434
- values.map(toACVMField)
435
- ];
436
- }
413
+ aztec_utl_setCapsule(...inputs) {
414
+ return callHandler({
415
+ oracle: 'aztec_utl_setCapsule',
416
+ inputs,
417
+ handler: ([contractAddress, slot, capsule, scope])=>{
418
+ this.handlerAsUtility().setCapsule(contractAddress, slot, capsule, scope);
419
+ }
420
+ });
437
421
  }
438
422
  // eslint-disable-next-line camelcase
439
- aztec_utl_deleteCapsule([contractAddress], [slot], [scope]) {
440
- this.handlerAsUtility().deleteCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(slot), AztecAddress.fromField(Fr.fromString(scope)));
441
- return Promise.resolve([]);
423
+ aztec_utl_getCapsule(...inputs) {
424
+ return callHandler({
425
+ oracle: 'aztec_utl_getCapsule',
426
+ inputs,
427
+ handler: ([contractAddress, slot, tSize, scope])=>this.handlerAsUtility().getCapsule(contractAddress, slot, tSize, scope)
428
+ });
442
429
  }
443
430
  // eslint-disable-next-line camelcase
444
- async aztec_utl_copyCapsule([contractAddress], [srcSlot], [dstSlot], [numEntries], [scope]) {
445
- await this.handlerAsUtility().copyCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(srcSlot), Fr.fromString(dstSlot), Fr.fromString(numEntries).toNumber(), AztecAddress.fromField(Fr.fromString(scope)));
446
- return [];
431
+ aztec_utl_deleteCapsule(...inputs) {
432
+ return callHandler({
433
+ oracle: 'aztec_utl_deleteCapsule',
434
+ inputs,
435
+ handler: ([contractAddress, slot, scope])=>{
436
+ this.handlerAsUtility().deleteCapsule(contractAddress, slot, scope);
437
+ }
438
+ });
447
439
  }
448
440
  // eslint-disable-next-line camelcase
449
- aztec_utl_pushEphemeral([slot], elements) {
450
- const newLen = this.handlerAsUtility().pushEphemeral(Fr.fromString(slot), elements.map(Fr.fromString));
451
- return Promise.resolve([
452
- toACVMField(newLen)
453
- ]);
441
+ aztec_utl_copyCapsule(...inputs) {
442
+ return callHandler({
443
+ oracle: 'aztec_utl_copyCapsule',
444
+ inputs,
445
+ handler: ([contractAddress, srcSlot, dstSlot, numEntries, scope])=>this.handlerAsUtility().copyCapsule(contractAddress, srcSlot, dstSlot, numEntries, scope)
446
+ });
454
447
  }
455
448
  // eslint-disable-next-line camelcase
456
- aztec_utl_popEphemeral([slot]) {
457
- const element = this.handlerAsUtility().popEphemeral(Fr.fromString(slot));
458
- return Promise.resolve([
459
- element.map(toACVMField)
460
- ]);
449
+ aztec_utl_pushEphemeral(...inputs) {
450
+ return callHandler({
451
+ oracle: 'aztec_utl_pushEphemeral',
452
+ inputs,
453
+ handler: ([slot, elements])=>this.handlerAsUtility().pushEphemeral(slot, elements)
454
+ });
461
455
  }
462
456
  // eslint-disable-next-line camelcase
463
- aztec_utl_getEphemeral([slot], [index]) {
464
- const element = this.handlerAsUtility().getEphemeral(Fr.fromString(slot), Fr.fromString(index).toNumber());
465
- return Promise.resolve([
466
- element.map(toACVMField)
467
- ]);
457
+ aztec_utl_popEphemeral(...inputs) {
458
+ return callHandler({
459
+ oracle: 'aztec_utl_popEphemeral',
460
+ inputs,
461
+ handler: ([slot])=>this.handlerAsUtility().popEphemeral(slot)
462
+ });
468
463
  }
469
464
  // eslint-disable-next-line camelcase
470
- aztec_utl_setEphemeral([slot], [index], elements) {
471
- this.handlerAsUtility().setEphemeral(Fr.fromString(slot), Fr.fromString(index).toNumber(), elements.map(Fr.fromString));
472
- return Promise.resolve([]);
465
+ aztec_utl_getEphemeral(...inputs) {
466
+ return callHandler({
467
+ oracle: 'aztec_utl_getEphemeral',
468
+ inputs,
469
+ handler: ([slot, index])=>this.handlerAsUtility().getEphemeral(slot, index)
470
+ });
473
471
  }
474
472
  // eslint-disable-next-line camelcase
475
- aztec_utl_getEphemeralLen([slot]) {
476
- const len = this.handlerAsUtility().getEphemeralLen(Fr.fromString(slot));
477
- return Promise.resolve([
478
- toACVMField(len)
479
- ]);
473
+ aztec_utl_setEphemeral(...inputs) {
474
+ return callHandler({
475
+ oracle: 'aztec_utl_setEphemeral',
476
+ inputs,
477
+ handler: ([slot, index, elements])=>{
478
+ this.handlerAsUtility().setEphemeral(slot, index, elements);
479
+ }
480
+ });
480
481
  }
481
482
  // eslint-disable-next-line camelcase
482
- aztec_utl_removeEphemeral([slot], [index]) {
483
- this.handlerAsUtility().removeEphemeral(Fr.fromString(slot), Fr.fromString(index).toNumber());
484
- return Promise.resolve([]);
483
+ aztec_utl_getEphemeralLen(...inputs) {
484
+ return callHandler({
485
+ oracle: 'aztec_utl_getEphemeralLen',
486
+ inputs,
487
+ handler: ([slot])=>this.handlerAsUtility().getEphemeralLen(slot)
488
+ });
485
489
  }
486
490
  // eslint-disable-next-line camelcase
487
- aztec_utl_clearEphemeral([slot]) {
488
- this.handlerAsUtility().clearEphemeral(Fr.fromString(slot));
489
- return Promise.resolve([]);
491
+ aztec_utl_removeEphemeral(...inputs) {
492
+ return callHandler({
493
+ oracle: 'aztec_utl_removeEphemeral',
494
+ inputs,
495
+ handler: ([slot, index])=>{
496
+ this.handlerAsUtility().removeEphemeral(slot, index);
497
+ }
498
+ });
490
499
  }
491
500
  // eslint-disable-next-line camelcase
492
- async aztec_utl_decryptAes128(ciphertextBVecStorage, [ciphertextLength], iv, symKey) {
493
- const ciphertext = fromUintBoundedVec(ciphertextBVecStorage, ciphertextLength, 8);
494
- const ivBuffer = fromUintArray(iv, 8);
495
- const symKeyBuffer = fromUintArray(symKey, 8);
496
- // Noir Option<BoundedVec> is encoded as [is_some: Field, storage: Field[], length: Field].
497
- try {
498
- const plaintext = await this.handlerAsUtility().decryptAes128(ciphertext, ivBuffer, symKeyBuffer);
499
- const [storage, length] = bufferToBoundedVec(plaintext, ciphertextBVecStorage.length);
500
- return [
501
- toACVMField(1),
502
- storage,
503
- length
504
- ];
505
- } catch {
506
- const zeroStorage = Array(ciphertextBVecStorage.length).fill(toACVMField(0));
507
- return [
508
- toACVMField(0),
509
- zeroStorage,
510
- toACVMField(0)
511
- ];
512
- }
501
+ aztec_utl_clearEphemeral(...inputs) {
502
+ return callHandler({
503
+ oracle: 'aztec_utl_clearEphemeral',
504
+ inputs,
505
+ handler: ([slot])=>{
506
+ this.handlerAsUtility().clearEphemeral(slot);
507
+ }
508
+ });
513
509
  }
514
510
  // eslint-disable-next-line camelcase
515
- async aztec_utl_getSharedSecret([address], [ephPKField0], [ephPKField1], [ephPKField2], [contractAddress]) {
516
- const secret = await this.handlerAsUtility().getSharedSecret(AztecAddress.fromField(Fr.fromString(address)), Point.fromFields([
517
- ephPKField0,
518
- ephPKField1,
519
- ephPKField2
520
- ].map(Fr.fromString)), AztecAddress.fromField(Fr.fromString(contractAddress)));
521
- return [
522
- toACVMField(secret)
523
- ];
511
+ aztec_utl_decryptAes128(...inputs) {
512
+ return callHandler({
513
+ oracle: 'aztec_utl_decryptAes128',
514
+ inputs,
515
+ handler: ([ciphertext, iv, symKey])=>this.handlerAsUtility().decryptAes128(ciphertext, iv, symKey)
516
+ });
524
517
  }
525
518
  // eslint-disable-next-line camelcase
526
- aztec_utl_setContractSyncCacheInvalid([contractAddress], scopes, [scopeCount]) {
527
- const scopeAddresses = scopes.slice(0, +scopeCount).map((s)=>AztecAddress.fromField(Fr.fromString(s)));
528
- this.handlerAsUtility().setContractSyncCacheInvalid(AztecAddress.fromField(Fr.fromString(contractAddress)), scopeAddresses);
529
- return Promise.resolve([]);
519
+ aztec_utl_getSharedSecrets(...inputs) {
520
+ return callHandler({
521
+ oracle: 'aztec_utl_getSharedSecrets',
522
+ inputs,
523
+ handler: ([address, ephPks, contractAddress])=>this.handlerAsUtility().getSharedSecrets(address, ephPks, contractAddress)
524
+ });
530
525
  }
531
526
  // eslint-disable-next-line camelcase
532
- async aztec_utl_emitOffchainEffect(data) {
533
- await this.handlerAsUtility().emitOffchainEffect(data.map(Fr.fromString));
534
- return [];
527
+ aztec_utl_setContractSyncCacheInvalid(...inputs) {
528
+ return callHandler({
529
+ oracle: 'aztec_utl_setContractSyncCacheInvalid',
530
+ inputs,
531
+ handler: ([contractAddress, scopes])=>{
532
+ this.handlerAsUtility().setContractSyncCacheInvalid(contractAddress, scopes);
533
+ }
534
+ });
535
535
  }
536
536
  // eslint-disable-next-line camelcase
537
- async aztec_prv_getSenderForTags() {
538
- const sender = await this.handlerAsPrivate().getSenderForTags();
539
- // Return [1, address] for Some(address), [0, 0] for None
540
- return sender ? [
541
- toACVMField(1n),
542
- toACVMField(sender)
543
- ] : [
544
- toACVMField(0n),
545
- toACVMField(0n)
546
- ];
537
+ aztec_utl_emitOffchainEffect(...inputs) {
538
+ return callHandler({
539
+ oracle: 'aztec_utl_emitOffchainEffect',
540
+ inputs,
541
+ handler: ([data])=>this.handlerAsUtility().emitOffchainEffect(data)
542
+ });
547
543
  }
548
544
  // eslint-disable-next-line camelcase
549
- async aztec_prv_setSenderForTags([senderForTags]) {
550
- await this.handlerAsPrivate().setSenderForTags(AztecAddress.fromField(Fr.fromString(senderForTags)));
551
- return [];
545
+ aztec_prv_getSenderForTags() {
546
+ return callHandler({
547
+ oracle: 'aztec_prv_getSenderForTags',
548
+ inputs: [],
549
+ handler: ()=>this.handlerAsPrivate().getSenderForTags()
550
+ });
552
551
  }
553
552
  }