@aztec-labs/pxe 6.0.0-nightly.20260829

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 (603) hide show
  1. package/README.md +13 -0
  2. package/dest/bin/check_oracle_version.d.ts +2 -0
  3. package/dest/bin/check_oracle_version.d.ts.map +1 -0
  4. package/dest/bin/check_oracle_version.js +22 -0
  5. package/dest/bin/index.d.ts +2 -0
  6. package/dest/bin/index.d.ts.map +1 -0
  7. package/dest/bin/index.js +1 -0
  8. package/dest/bin/oracle_version_helpers.d.ts +20 -0
  9. package/dest/bin/oracle_version_helpers.d.ts.map +1 -0
  10. package/dest/bin/oracle_version_helpers.js +25 -0
  11. package/dest/block_synchronizer/block_stream_source.d.ts +10 -0
  12. package/dest/block_synchronizer/block_stream_source.d.ts.map +1 -0
  13. package/dest/block_synchronizer/block_stream_source.js +37 -0
  14. package/dest/block_synchronizer/block_synchronizer.d.ts +47 -0
  15. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -0
  16. package/dest/block_synchronizer/block_synchronizer.js +192 -0
  17. package/dest/block_synchronizer/index.d.ts +2 -0
  18. package/dest/block_synchronizer/index.d.ts.map +1 -0
  19. package/dest/block_synchronizer/index.js +1 -0
  20. package/dest/config/index.d.ts +57 -0
  21. package/dest/config/index.d.ts.map +1 -0
  22. package/dest/config/index.js +80 -0
  23. package/dest/config/package_info.d.ts +5 -0
  24. package/dest/config/package_info.d.ts.map +1 -0
  25. package/dest/config/package_info.js +6 -0
  26. package/dest/contract/contract_call_graph.d.ts +51 -0
  27. package/dest/contract/contract_call_graph.d.ts.map +1 -0
  28. package/dest/contract/contract_call_graph.js +91 -0
  29. package/dest/contract/contract_class_service.d.ts +24 -0
  30. package/dest/contract/contract_class_service.d.ts.map +1 -0
  31. package/dest/contract/contract_class_service.js +36 -0
  32. package/dest/contract/contract_sync_service.d.ts +82 -0
  33. package/dest/contract/contract_sync_service.d.ts.map +1 -0
  34. package/dest/contract/contract_sync_service.js +210 -0
  35. package/dest/contract/helpers.d.ts +7 -0
  36. package/dest/contract/helpers.d.ts.map +1 -0
  37. package/dest/contract/helpers.js +20 -0
  38. package/dest/contract/skip_sync_contracts.d.ts +11 -0
  39. package/dest/contract/skip_sync_contracts.d.ts.map +1 -0
  40. package/dest/contract/skip_sync_contracts.js +18 -0
  41. package/dest/contract_function_simulator/anchored_contract_data.d.ts +36 -0
  42. package/dest/contract_function_simulator/anchored_contract_data.d.ts.map +1 -0
  43. package/dest/contract_function_simulator/anchored_contract_data.js +54 -0
  44. package/dest/contract_function_simulator/contract_function_simulator.d.ts +114 -0
  45. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -0
  46. package/dest/contract_function_simulator/contract_function_simulator.js +495 -0
  47. package/dest/contract_function_simulator/ephemeral_array_service.d.ts +28 -0
  48. package/dest/contract_function_simulator/ephemeral_array_service.d.ts.map +1 -0
  49. package/dest/contract_function_simulator/ephemeral_array_service.js +78 -0
  50. package/dest/contract_function_simulator/execution_note_cache.d.ts +98 -0
  51. package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -0
  52. package/dest/contract_function_simulator/execution_note_cache.js +189 -0
  53. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +12 -0
  54. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -0
  55. package/dest/contract_function_simulator/execution_tagging_index_cache.js +30 -0
  56. package/dest/contract_function_simulator/hashed_values_cache.d.ts +28 -0
  57. package/dest/contract_function_simulator/hashed_values_cache.d.ts.map +1 -0
  58. package/dest/contract_function_simulator/hashed_values_cache.js +36 -0
  59. package/dest/contract_function_simulator/index.d.ts +36 -0
  60. package/dest/contract_function_simulator/index.d.ts.map +1 -0
  61. package/dest/contract_function_simulator/index.js +20 -0
  62. package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts +29 -0
  63. package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts.map +1 -0
  64. package/dest/contract_function_simulator/noir-structs/bounded_vec.js +30 -0
  65. package/dest/contract_function_simulator/noir-structs/contract_class_log_data.d.ts +9 -0
  66. package/dest/contract_function_simulator/noir-structs/contract_class_log_data.d.ts.map +1 -0
  67. package/dest/contract_function_simulator/noir-structs/contract_class_log_data.js +1 -0
  68. package/dest/contract_function_simulator/noir-structs/embedded_curve_point.d.ts +7 -0
  69. package/dest/contract_function_simulator/noir-structs/embedded_curve_point.d.ts.map +1 -0
  70. package/dest/contract_function_simulator/noir-structs/embedded_curve_point.js +1 -0
  71. package/dest/contract_function_simulator/noir-structs/ephemeral_array.d.ts +37 -0
  72. package/dest/contract_function_simulator/noir-structs/ephemeral_array.d.ts.map +1 -0
  73. package/dest/contract_function_simulator/noir-structs/ephemeral_array.js +59 -0
  74. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +20 -0
  75. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -0
  76. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +39 -0
  77. package/dest/contract_function_simulator/noir-structs/fact.d.ts +16 -0
  78. package/dest/contract_function_simulator/noir-structs/fact.d.ts.map +1 -0
  79. package/dest/contract_function_simulator/noir-structs/fact.js +6 -0
  80. package/dest/contract_function_simulator/noir-structs/fact_collection.d.ts +27 -0
  81. package/dest/contract_function_simulator/noir-structs/fact_collection.d.ts.map +1 -0
  82. package/dest/contract_function_simulator/noir-structs/fact_collection.js +31 -0
  83. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +25 -0
  84. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts.map +1 -0
  85. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +14 -0
  86. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +19 -0
  87. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -0
  88. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +4 -0
  89. package/dest/contract_function_simulator/noir-structs/note_data.d.ts +27 -0
  90. package/dest/contract_function_simulator/noir-structs/note_data.d.ts.map +1 -0
  91. package/dest/contract_function_simulator/noir-structs/note_data.js +3 -0
  92. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +22 -0
  93. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -0
  94. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +47 -0
  95. package/dest/contract_function_simulator/noir-structs/nullifier_membership_witness_data.d.ts +12 -0
  96. package/dest/contract_function_simulator/noir-structs/nullifier_membership_witness_data.d.ts.map +1 -0
  97. package/dest/contract_function_simulator/noir-structs/nullifier_membership_witness_data.js +6 -0
  98. package/dest/contract_function_simulator/noir-structs/option.d.ts +59 -0
  99. package/dest/contract_function_simulator/noir-structs/option.d.ts.map +1 -0
  100. package/dest/contract_function_simulator/noir-structs/option.js +67 -0
  101. package/dest/contract_function_simulator/noir-structs/origin_block.d.ts +11 -0
  102. package/dest/contract_function_simulator/noir-structs/origin_block.d.ts.map +1 -0
  103. package/dest/contract_function_simulator/noir-structs/origin_block.js +5 -0
  104. package/dest/contract_function_simulator/noir-structs/pending_tagged_log.d.ts +11 -0
  105. package/dest/contract_function_simulator/noir-structs/pending_tagged_log.d.ts.map +1 -0
  106. package/dest/contract_function_simulator/noir-structs/pending_tagged_log.js +4 -0
  107. package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts +8 -0
  108. package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts.map +1 -0
  109. package/dest/contract_function_simulator/noir-structs/provided_secret.js +1 -0
  110. package/dest/contract_function_simulator/noir-structs/public_data_witness_data.d.ts +13 -0
  111. package/dest/contract_function_simulator/noir-structs/public_data_witness_data.d.ts.map +1 -0
  112. package/dest/contract_function_simulator/noir-structs/public_data_witness_data.js +3 -0
  113. package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.d.ts +28 -0
  114. package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.d.ts.map +1 -0
  115. package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.js +50 -0
  116. package/dest/contract_function_simulator/noir-structs/resolved_tx.d.ts +19 -0
  117. package/dest/contract_function_simulator/noir-structs/resolved_tx.d.ts.map +1 -0
  118. package/dest/contract_function_simulator/noir-structs/resolved_tx.js +9 -0
  119. package/dest/contract_function_simulator/noir-structs/tx_effect_data.d.ts +15 -0
  120. package/dest/contract_function_simulator/noir-structs/tx_effect_data.d.ts.map +1 -0
  121. package/dest/contract_function_simulator/noir-structs/tx_effect_data.js +5 -0
  122. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +11 -0
  123. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -0
  124. package/dest/contract_function_simulator/noir-structs/utility_context.js +3 -0
  125. package/dest/contract_function_simulator/oracle/acir_callback.d.ts +21 -0
  126. package/dest/contract_function_simulator/oracle/acir_callback.d.ts.map +1 -0
  127. package/dest/contract_function_simulator/oracle/acir_callback.js +115 -0
  128. package/dest/contract_function_simulator/oracle/index.d.ts +3 -0
  129. package/dest/contract_function_simulator/oracle/index.d.ts.map +1 -0
  130. package/dest/contract_function_simulator/oracle/index.js +2 -0
  131. package/dest/contract_function_simulator/oracle/interfaces.d.ts +24 -0
  132. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -0
  133. package/dest/contract_function_simulator/oracle/interfaces.js +4 -0
  134. package/dest/contract_function_simulator/oracle/legacy_oracle_registry.d.ts +39 -0
  135. package/dest/contract_function_simulator/oracle/legacy_oracle_registry.d.ts.map +1 -0
  136. package/dest/contract_function_simulator/oracle/legacy_oracle_registry.js +107 -0
  137. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +28 -0
  138. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -0
  139. package/dest/contract_function_simulator/oracle/note_packing_utils.js +54 -0
  140. package/dest/contract_function_simulator/oracle/oracle_registry.d.ts +139 -0
  141. package/dest/contract_function_simulator/oracle/oracle_registry.d.ts.map +1 -0
  142. package/dest/contract_function_simulator/oracle/oracle_registry.js +1024 -0
  143. package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts +292 -0
  144. package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts.map +1 -0
  145. package/dest/contract_function_simulator/oracle/oracle_type_mappings.js +1258 -0
  146. package/dest/contract_function_simulator/oracle/private_execution.d.ts +23 -0
  147. package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -0
  148. package/dest/contract_function_simulator/oracle/private_execution.js +88 -0
  149. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +226 -0
  150. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -0
  151. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +585 -0
  152. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +333 -0
  153. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -0
  154. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +900 -0
  155. package/dest/contract_function_simulator/pick_notes.d.ts +85 -0
  156. package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -0
  157. package/dest/contract_function_simulator/pick_notes.js +68 -0
  158. package/dest/contract_function_simulator/transient_array_service.d.ts +31 -0
  159. package/dest/contract_function_simulator/transient_array_service.d.ts.map +1 -0
  160. package/dest/contract_function_simulator/transient_array_service.js +62 -0
  161. package/dest/contract_logging.d.ts +27 -0
  162. package/dest/contract_logging.d.ts.map +1 -0
  163. package/dest/contract_logging.js +38 -0
  164. package/dest/debug/pxe_debug_utils.d.ts +38 -0
  165. package/dest/debug/pxe_debug_utils.d.ts.map +1 -0
  166. package/dest/debug/pxe_debug_utils.js +44 -0
  167. package/dest/entrypoints/client/bundle/index.d.ts +10 -0
  168. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -0
  169. package/dest/entrypoints/client/bundle/index.js +8 -0
  170. package/dest/entrypoints/client/bundle/utils.d.ts +16 -0
  171. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -0
  172. package/dest/entrypoints/client/bundle/utils.js +78 -0
  173. package/dest/entrypoints/client/lazy/index.d.ts +10 -0
  174. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -0
  175. package/dest/entrypoints/client/lazy/index.js +8 -0
  176. package/dest/entrypoints/client/lazy/utils.d.ts +15 -0
  177. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -0
  178. package/dest/entrypoints/client/lazy/utils.js +77 -0
  179. package/dest/entrypoints/client/store.d.ts +14 -0
  180. package/dest/entrypoints/client/store.d.ts.map +1 -0
  181. package/dest/entrypoints/client/store.js +42 -0
  182. package/dest/entrypoints/pxe_creation_options.d.ts +32 -0
  183. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -0
  184. package/dest/entrypoints/pxe_creation_options.js +3 -0
  185. package/dest/entrypoints/server/circuit_recording/circuit_recorder.d.ts +121 -0
  186. package/dest/entrypoints/server/circuit_recording/circuit_recorder.d.ts.map +1 -0
  187. package/dest/entrypoints/server/circuit_recording/circuit_recorder.js +208 -0
  188. package/dest/entrypoints/server/circuit_recording/file_circuit_recorder.d.ts +20 -0
  189. package/dest/entrypoints/server/circuit_recording/file_circuit_recorder.d.ts.map +1 -0
  190. package/dest/entrypoints/server/circuit_recording/file_circuit_recorder.js +131 -0
  191. package/dest/entrypoints/server/circuit_recording/memory_circuit_recorder.d.ts +10 -0
  192. package/dest/entrypoints/server/circuit_recording/memory_circuit_recorder.d.ts.map +1 -0
  193. package/dest/entrypoints/server/circuit_recording/memory_circuit_recorder.js +9 -0
  194. package/dest/entrypoints/server/circuit_recording/simulator_recorder_wrapper.d.ts +18 -0
  195. package/dest/entrypoints/server/circuit_recording/simulator_recorder_wrapper.d.ts.map +1 -0
  196. package/dest/entrypoints/server/circuit_recording/simulator_recorder_wrapper.js +41 -0
  197. package/dest/entrypoints/server/index.d.ts +17 -0
  198. package/dest/entrypoints/server/index.d.ts.map +1 -0
  199. package/dest/entrypoints/server/index.js +14 -0
  200. package/dest/entrypoints/server/store.d.ts +18 -0
  201. package/dest/entrypoints/server/store.d.ts.map +1 -0
  202. package/dest/entrypoints/server/store.js +28 -0
  203. package/dest/entrypoints/server/utils.d.ts +9 -0
  204. package/dest/entrypoints/server/utils.d.ts.map +1 -0
  205. package/dest/entrypoints/server/utils.js +84 -0
  206. package/dest/error_enriching.d.ts +13 -0
  207. package/dest/error_enriching.d.ts.map +1 -0
  208. package/dest/error_enriching.js +80 -0
  209. package/dest/events/event_service.d.ts +30 -0
  210. package/dest/events/event_service.d.ts.map +1 -0
  211. package/dest/events/event_service.js +76 -0
  212. package/dest/events/index.d.ts +2 -0
  213. package/dest/events/index.d.ts.map +1 -0
  214. package/dest/events/index.js +1 -0
  215. package/dest/events/private_event_filter_validator.d.ts +10 -0
  216. package/dest/events/private_event_filter_validator.d.ts.map +1 -0
  217. package/dest/events/private_event_filter_validator.js +53 -0
  218. package/dest/hooks/authorize_utility_call.d.ts +41 -0
  219. package/dest/hooks/authorize_utility_call.d.ts.map +1 -0
  220. package/dest/hooks/authorize_utility_call.js +4 -0
  221. package/dest/hooks/execution_hooks.d.ts +62 -0
  222. package/dest/hooks/execution_hooks.d.ts.map +1 -0
  223. package/dest/hooks/execution_hooks.js +9 -0
  224. package/dest/hooks/index.d.ts +5 -0
  225. package/dest/hooks/index.d.ts.map +1 -0
  226. package/dest/hooks/index.js +2 -0
  227. package/dest/hooks/resolve_custom_request.d.ts +23 -0
  228. package/dest/hooks/resolve_custom_request.d.ts.map +1 -0
  229. package/dest/hooks/resolve_custom_request.js +3 -0
  230. package/dest/hooks/resolve_tagging_secret_strategy.d.ts +50 -0
  231. package/dest/hooks/resolve_tagging_secret_strategy.d.ts.map +1 -0
  232. package/dest/hooks/resolve_tagging_secret_strategy.js +3 -0
  233. package/dest/logs/log_service.d.ts +40 -0
  234. package/dest/logs/log_service.d.ts.map +1 -0
  235. package/dest/logs/log_service.js +217 -0
  236. package/dest/messages/tx_resolver_service.d.ts +28 -0
  237. package/dest/messages/tx_resolver_service.d.ts.map +1 -0
  238. package/dest/messages/tx_resolver_service.js +62 -0
  239. package/dest/node/benchmarked_node.d.ts +22 -0
  240. package/dest/node/benchmarked_node.d.ts.map +1 -0
  241. package/dest/node/benchmarked_node.js +93 -0
  242. package/dest/node/caching_aztec_node.d.ts +24 -0
  243. package/dest/node/caching_aztec_node.d.ts.map +1 -0
  244. package/dest/node/caching_aztec_node.js +268 -0
  245. package/dest/notes/index.d.ts +2 -0
  246. package/dest/notes/index.d.ts.map +1 -0
  247. package/dest/notes/index.js +1 -0
  248. package/dest/notes/note_service.d.ts +77 -0
  249. package/dest/notes/note_service.d.ts.map +1 -0
  250. package/dest/notes/note_service.js +173 -0
  251. package/dest/notes_filter.d.ts +24 -0
  252. package/dest/notes_filter.d.ts.map +1 -0
  253. package/dest/notes_filter.js +4 -0
  254. package/dest/operation_lifecycle.d.ts +45 -0
  255. package/dest/operation_lifecycle.d.ts.map +1 -0
  256. package/dest/operation_lifecycle.js +68 -0
  257. package/dest/operation_queue.d.ts +75 -0
  258. package/dest/operation_queue.d.ts.map +1 -0
  259. package/dest/operation_queue.js +100 -0
  260. package/dest/oracle_version.d.ts +4 -0
  261. package/dest/oracle_version.d.ts.map +1 -0
  262. package/dest/oracle_version.js +21 -0
  263. package/dest/private_kernel/batch_planner.d.ts +47 -0
  264. package/dest/private_kernel/batch_planner.d.ts.map +1 -0
  265. package/dest/private_kernel/batch_planner.js +104 -0
  266. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts +4 -0
  267. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts.map +1 -0
  268. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.js +41 -0
  269. package/dest/private_kernel/hints/index.d.ts +3 -0
  270. package/dest/private_kernel/hints/index.d.ts.map +1 -0
  271. package/dest/private_kernel/hints/index.js +2 -0
  272. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +29 -0
  273. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -0
  274. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.js +343 -0
  275. package/dest/private_kernel/hints/test_utils.d.ts +122 -0
  276. package/dest/private_kernel/hints/test_utils.d.ts.map +1 -0
  277. package/dest/private_kernel/hints/test_utils.js +202 -0
  278. package/dest/private_kernel/index.d.ts +3 -0
  279. package/dest/private_kernel/index.d.ts.map +1 -0
  280. package/dest/private_kernel/index.js +2 -0
  281. package/dest/private_kernel/private_kernel_execution_prover.d.ts +49 -0
  282. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -0
  283. package/dest/private_kernel/private_kernel_execution_prover.js +408 -0
  284. package/dest/private_kernel/private_kernel_oracle.d.ts +65 -0
  285. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -0
  286. package/dest/private_kernel/private_kernel_oracle.js +110 -0
  287. package/dest/pxe.d.ts +364 -0
  288. package/dest/pxe.d.ts.map +1 -0
  289. package/dest/pxe.js +903 -0
  290. package/dest/storage/address_store/address_store.d.ts +11 -0
  291. package/dest/storage/address_store/address_store.d.ts.map +1 -0
  292. package/dest/storage/address_store/address_store.js +49 -0
  293. package/dest/storage/address_store/index.d.ts +2 -0
  294. package/dest/storage/address_store/index.d.ts.map +1 -0
  295. package/dest/storage/address_store/index.js +1 -0
  296. package/dest/storage/allowed_scopes.d.ts +6 -0
  297. package/dest/storage/allowed_scopes.d.ts.map +1 -0
  298. package/dest/storage/allowed_scopes.js +7 -0
  299. package/dest/storage/anchor_block_store/anchor_block_store.d.ts +20 -0
  300. package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -0
  301. package/dest/storage/anchor_block_store/anchor_block_store.js +28 -0
  302. package/dest/storage/anchor_block_store/index.d.ts +2 -0
  303. package/dest/storage/anchor_block_store/index.d.ts.map +1 -0
  304. package/dest/storage/anchor_block_store/index.js +1 -0
  305. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.d.ts +42 -0
  306. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.d.ts.map +1 -0
  307. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.js +93 -0
  308. package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts +15 -0
  309. package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts.map +1 -0
  310. package/dest/storage/backwards_compatibility_tests/schema_tests.js +674 -0
  311. package/dest/storage/backwards_compatibility_tests/store_spy.d.ts +19 -0
  312. package/dest/storage/backwards_compatibility_tests/store_spy.d.ts.map +1 -0
  313. package/dest/storage/backwards_compatibility_tests/store_spy.js +63 -0
  314. package/dest/storage/base_staging_store.d.ts +110 -0
  315. package/dest/storage/base_staging_store.d.ts.map +1 -0
  316. package/dest/storage/base_staging_store.js +141 -0
  317. package/dest/storage/capsule_store/capsule_service.d.ts +22 -0
  318. package/dest/storage/capsule_store/capsule_service.d.ts.map +1 -0
  319. package/dest/storage/capsule_store/capsule_service.js +47 -0
  320. package/dest/storage/capsule_store/capsule_store.d.ts +72 -0
  321. package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -0
  322. package/dest/storage/capsule_store/capsule_store.js +256 -0
  323. package/dest/storage/capsule_store/index.d.ts +3 -0
  324. package/dest/storage/capsule_store/index.d.ts.map +1 -0
  325. package/dest/storage/capsule_store/index.js +2 -0
  326. package/dest/storage/contract_store/contract_store.d.ts +96 -0
  327. package/dest/storage/contract_store/contract_store.d.ts.map +1 -0
  328. package/dest/storage/contract_store/contract_store.js +282 -0
  329. package/dest/storage/contract_store/index.d.ts +2 -0
  330. package/dest/storage/contract_store/index.d.ts.map +1 -0
  331. package/dest/storage/contract_store/index.js +1 -0
  332. package/dest/storage/contract_store/private_functions_tree.d.ts +27 -0
  333. package/dest/storage/contract_store/private_functions_tree.d.ts.map +1 -0
  334. package/dest/storage/contract_store/private_functions_tree.js +48 -0
  335. package/dest/storage/fact_store/fact_service.d.ts +23 -0
  336. package/dest/storage/fact_store/fact_service.d.ts.map +1 -0
  337. package/dest/storage/fact_store/fact_service.js +45 -0
  338. package/dest/storage/fact_store/fact_store.d.ts +101 -0
  339. package/dest/storage/fact_store/fact_store.d.ts.map +1 -0
  340. package/dest/storage/fact_store/fact_store.js +350 -0
  341. package/dest/storage/fact_store/fact_store_keys.d.ts +34 -0
  342. package/dest/storage/fact_store/fact_store_keys.d.ts.map +1 -0
  343. package/dest/storage/fact_store/fact_store_keys.js +50 -0
  344. package/dest/storage/fact_store/index.d.ts +6 -0
  345. package/dest/storage/fact_store/index.d.ts.map +1 -0
  346. package/dest/storage/fact_store/index.js +4 -0
  347. package/dest/storage/fact_store/origin_state.d.ts +59 -0
  348. package/dest/storage/fact_store/origin_state.d.ts.map +1 -0
  349. package/dest/storage/fact_store/origin_state.js +60 -0
  350. package/dest/storage/fact_store/stored_fact.d.ts +32 -0
  351. package/dest/storage/fact_store/stored_fact.d.ts.map +1 -0
  352. package/dest/storage/fact_store/stored_fact.js +64 -0
  353. package/dest/storage/index.d.ts +10 -0
  354. package/dest/storage/index.d.ts.map +1 -0
  355. package/dest/storage/index.js +9 -0
  356. package/dest/storage/metadata.d.ts +2 -0
  357. package/dest/storage/metadata.d.ts.map +1 -0
  358. package/dest/storage/metadata.js +1 -0
  359. package/dest/storage/note_store/index.d.ts +3 -0
  360. package/dest/storage/note_store/index.d.ts.map +1 -0
  361. package/dest/storage/note_store/index.js +2 -0
  362. package/dest/storage/note_store/note_store.d.ts +92 -0
  363. package/dest/storage/note_store/note_store.d.ts.map +1 -0
  364. package/dest/storage/note_store/note_store.js +273 -0
  365. package/dest/storage/note_store/stored_note.d.ts +11 -0
  366. package/dest/storage/note_store/stored_note.d.ts.map +1 -0
  367. package/dest/storage/note_store/stored_note.js +27 -0
  368. package/dest/storage/note_store/test_utils.d.ts +9 -0
  369. package/dest/storage/note_store/test_utils.d.ts.map +1 -0
  370. package/dest/storage/note_store/test_utils.js +10 -0
  371. package/dest/storage/open_pxe_stores.d.ts +35 -0
  372. package/dest/storage/open_pxe_stores.d.ts.map +1 -0
  373. package/dest/storage/open_pxe_stores.js +29 -0
  374. package/dest/storage/private_event_store/private_event_store.d.ts +90 -0
  375. package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -0
  376. package/dest/storage/private_event_store/private_event_store.js +276 -0
  377. package/dest/storage/private_event_store/stored_private_event.d.ts +23 -0
  378. package/dest/storage/private_event_store/stored_private_event.d.ts.map +1 -0
  379. package/dest/storage/private_event_store/stored_private_event.js +56 -0
  380. package/dest/storage/rollbackable.d.ts +15 -0
  381. package/dest/storage/rollbackable.d.ts.map +1 -0
  382. package/dest/storage/rollbackable.js +3 -0
  383. package/dest/storage/staged_write_coordinator.d.ts +103 -0
  384. package/dest/storage/staged_write_coordinator.d.ts.map +1 -0
  385. package/dest/storage/staged_write_coordinator.js +141 -0
  386. package/dest/storage/store_identity.d.ts +35 -0
  387. package/dest/storage/store_identity.d.ts.map +1 -0
  388. package/dest/storage/store_identity.js +44 -0
  389. package/dest/storage/tagging_store/index.d.ts +4 -0
  390. package/dest/storage/tagging_store/index.d.ts.map +1 -0
  391. package/dest/storage/tagging_store/index.js +3 -0
  392. package/dest/storage/tagging_store/recipient_tagging_store.d.ts +36 -0
  393. package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -0
  394. package/dest/storage/tagging_store/recipient_tagging_store.js +74 -0
  395. package/dest/storage/tagging_store/sender_tagging_store.d.ts +113 -0
  396. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -0
  397. package/dest/storage/tagging_store/sender_tagging_store.js +432 -0
  398. package/dest/storage/tagging_store/tagging_secret_sources_store.d.ts +51 -0
  399. package/dest/storage/tagging_store/tagging_secret_sources_store.d.ts.map +1 -0
  400. package/dest/storage/tagging_store/tagging_secret_sources_store.js +105 -0
  401. package/dest/tagging/constants.d.ts +11 -0
  402. package/dest/tagging/constants.d.ts.map +1 -0
  403. package/dest/tagging/constants.js +38 -0
  404. package/dest/tagging/get_all_logs_by_tags.d.ts +69 -0
  405. package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -0
  406. package/dest/tagging/get_all_logs_by_tags.js +79 -0
  407. package/dest/tagging/index.d.ts +18 -0
  408. package/dest/tagging/index.d.ts.map +1 -0
  409. package/dest/tagging/index.js +16 -0
  410. package/dest/tagging/persist_sender_tagging_index_ranges.d.ts +31 -0
  411. package/dest/tagging/persist_sender_tagging_index_ranges.d.ts.map +1 -0
  412. package/dest/tagging/persist_sender_tagging_index_ranges.js +43 -0
  413. package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts +75 -0
  414. package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts.map +1 -0
  415. package/dest/tagging/recipient_sync/sync_tagged_private_logs.js +235 -0
  416. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts +12 -0
  417. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts.map +1 -0
  418. package/dest/tagging/recipient_sync/utils/find_highest_indexes.js +20 -0
  419. package/dest/tagging/reconcile_tagging_index_ranges.d.ts +36 -0
  420. package/dest/tagging/reconcile_tagging_index_ranges.d.ts.map +1 -0
  421. package/dest/tagging/reconcile_tagging_index_ranges.js +74 -0
  422. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +20 -0
  423. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -0
  424. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +77 -0
  425. package/dest/tagging/sender_sync/utils/classify_pending_txs.d.ts +22 -0
  426. package/dest/tagging/sender_sync/utils/classify_pending_txs.d.ts.map +1 -0
  427. package/dest/tagging/sender_sync/utils/classify_pending_txs.js +62 -0
  428. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +30 -0
  429. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -0
  430. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +74 -0
  431. package/dest/tagging/sender_sync/utils/resolve_pending_txs.d.ts +29 -0
  432. package/dest/tagging/sender_sync/utils/resolve_pending_txs.d.ts.map +1 -0
  433. package/dest/tagging/sender_sync/utils/resolve_pending_txs.js +42 -0
  434. package/dest/tagging/sender_sync/utils/test_utils.d.ts +16 -0
  435. package/dest/tagging/sender_sync/utils/test_utils.d.ts.map +1 -0
  436. package/dest/tagging/sender_sync/utils/test_utils.js +24 -0
  437. package/dest/tagging/testing/tag_query_test_utils.d.ts +6 -0
  438. package/dest/tagging/testing/tag_query_test_utils.d.ts.map +1 -0
  439. package/dest/tagging/testing/tag_query_test_utils.js +10 -0
  440. package/dest/test_utils.d.ts +3 -0
  441. package/dest/test_utils.d.ts.map +1 -0
  442. package/dest/test_utils.js +1 -0
  443. package/package.json +119 -0
  444. package/src/bin/check_oracle_version.ts +28 -0
  445. package/src/bin/index.ts +1 -0
  446. package/src/bin/oracle_version_helpers.ts +30 -0
  447. package/src/block_synchronizer/block_stream_source.ts +48 -0
  448. package/src/block_synchronizer/block_synchronizer.ts +225 -0
  449. package/src/block_synchronizer/index.ts +1 -0
  450. package/src/config/index.ts +141 -0
  451. package/src/config/package_info.ts +3 -0
  452. package/src/contract/contract_call_graph.ts +121 -0
  453. package/src/contract/contract_class_service.ts +45 -0
  454. package/src/contract/contract_sync_service.ts +349 -0
  455. package/src/contract/helpers.ts +35 -0
  456. package/src/contract/skip_sync_contracts.ts +23 -0
  457. package/src/contract_function_simulator/anchored_contract_data.ts +74 -0
  458. package/src/contract_function_simulator/contract_function_simulator.ts +928 -0
  459. package/src/contract_function_simulator/ephemeral_array_service.ts +110 -0
  460. package/src/contract_function_simulator/execution_note_cache.ts +232 -0
  461. package/src/contract_function_simulator/execution_tagging_index_cache.ts +33 -0
  462. package/src/contract_function_simulator/hashed_values_cache.ts +47 -0
  463. package/src/contract_function_simulator/index.ts +107 -0
  464. package/src/contract_function_simulator/noir-structs/bounded_vec.ts +43 -0
  465. package/src/contract_function_simulator/noir-structs/contract_class_log_data.ts +9 -0
  466. package/src/contract_function_simulator/noir-structs/embedded_curve_point.ts +4 -0
  467. package/src/contract_function_simulator/noir-structs/ephemeral_array.ts +66 -0
  468. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +52 -0
  469. package/src/contract_function_simulator/noir-structs/fact.ts +13 -0
  470. package/src/contract_function_simulator/noir-structs/fact_collection.ts +64 -0
  471. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +35 -0
  472. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +19 -0
  473. package/src/contract_function_simulator/noir-structs/note_data.ts +27 -0
  474. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +59 -0
  475. package/src/contract_function_simulator/noir-structs/nullifier_membership_witness_data.ts +15 -0
  476. package/src/contract_function_simulator/noir-structs/option.ts +75 -0
  477. package/src/contract_function_simulator/noir-structs/origin_block.ts +8 -0
  478. package/src/contract_function_simulator/noir-structs/pending_tagged_log.ts +12 -0
  479. package/src/contract_function_simulator/noir-structs/provided_secret.ts +5 -0
  480. package/src/contract_function_simulator/noir-structs/public_data_witness_data.ts +13 -0
  481. package/src/contract_function_simulator/noir-structs/resolved_tagging_strategy.ts +66 -0
  482. package/src/contract_function_simulator/noir-structs/resolved_tx.ts +19 -0
  483. package/src/contract_function_simulator/noir-structs/tx_effect_data.ts +16 -0
  484. package/src/contract_function_simulator/noir-structs/utility_context.ts +11 -0
  485. package/src/contract_function_simulator/oracle/acir_callback.ts +154 -0
  486. package/src/contract_function_simulator/oracle/index.ts +2 -0
  487. package/src/contract_function_simulator/oracle/interfaces.ts +20 -0
  488. package/src/contract_function_simulator/oracle/legacy_oracle_registry.ts +147 -0
  489. package/src/contract_function_simulator/oracle/note_packing_utils.ts +68 -0
  490. package/src/contract_function_simulator/oracle/oracle_registry.ts +709 -0
  491. package/src/contract_function_simulator/oracle/oracle_type_mappings.ts +1089 -0
  492. package/src/contract_function_simulator/oracle/private_execution.ts +140 -0
  493. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +812 -0
  494. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +1341 -0
  495. package/src/contract_function_simulator/pick_notes.ts +160 -0
  496. package/src/contract_function_simulator/transient_array_service.ts +91 -0
  497. package/src/contract_logging.ts +52 -0
  498. package/src/debug/pxe_debug_utils.ts +89 -0
  499. package/src/entrypoints/client/bundle/index.ts +9 -0
  500. package/src/entrypoints/client/bundle/utils.ts +89 -0
  501. package/src/entrypoints/client/lazy/index.ts +9 -0
  502. package/src/entrypoints/client/lazy/utils.ts +89 -0
  503. package/src/entrypoints/client/store.ts +54 -0
  504. package/src/entrypoints/pxe_creation_options.ts +34 -0
  505. package/src/entrypoints/server/circuit_recording/circuit_recorder.ts +267 -0
  506. package/src/entrypoints/server/circuit_recording/file_circuit_recorder.ts +152 -0
  507. package/src/entrypoints/server/circuit_recording/memory_circuit_recorder.ts +13 -0
  508. package/src/entrypoints/server/circuit_recording/simulator_recorder_wrapper.ts +90 -0
  509. package/src/entrypoints/server/index.ts +17 -0
  510. package/src/entrypoints/server/store.ts +46 -0
  511. package/src/entrypoints/server/utils.ts +103 -0
  512. package/src/error_enriching.ts +124 -0
  513. package/src/events/event_service.ts +129 -0
  514. package/src/events/index.ts +1 -0
  515. package/src/events/private_event_filter_validator.ts +66 -0
  516. package/src/hooks/authorize_utility_call.ts +44 -0
  517. package/src/hooks/execution_hooks.ts +68 -0
  518. package/src/hooks/index.ts +13 -0
  519. package/src/hooks/resolve_custom_request.ts +24 -0
  520. package/src/hooks/resolve_tagging_secret_strategy.ts +60 -0
  521. package/src/logs/log_service.ts +295 -0
  522. package/src/messages/tx_resolver_service.ts +81 -0
  523. package/src/node/benchmarked_node.ts +141 -0
  524. package/src/node/caching_aztec_node.ts +407 -0
  525. package/src/notes/index.ts +1 -0
  526. package/src/notes/note_service.ts +238 -0
  527. package/src/notes_filter.ts +24 -0
  528. package/src/operation_lifecycle.ts +99 -0
  529. package/src/operation_queue.ts +149 -0
  530. package/src/oracle_version.ts +22 -0
  531. package/src/private_kernel/batch_planner.ts +168 -0
  532. package/src/private_kernel/hints/compute_tx_expiration_timestamp.ts +58 -0
  533. package/src/private_kernel/hints/index.ts +2 -0
  534. package/src/private_kernel/hints/private_kernel_reset_private_inputs_builder.ts +553 -0
  535. package/src/private_kernel/hints/test_utils.ts +318 -0
  536. package/src/private_kernel/index.ts +2 -0
  537. package/src/private_kernel/private_kernel_execution_prover.ts +656 -0
  538. package/src/private_kernel/private_kernel_oracle.ts +184 -0
  539. package/src/pxe.ts +1417 -0
  540. package/src/storage/address_store/address_store.ts +66 -0
  541. package/src/storage/address_store/index.ts +1 -0
  542. package/src/storage/allowed_scopes.ts +14 -0
  543. package/src/storage/anchor_block_store/anchor_block_store.ts +35 -0
  544. package/src/storage/anchor_block_store/index.ts +1 -0
  545. package/src/storage/backwards_compatibility_tests/__snapshots__/AddressStore.json +22 -0
  546. package/src/storage/backwards_compatibility_tests/__snapshots__/AnchorBlockStore.json +3 -0
  547. package/src/storage/backwards_compatibility_tests/__snapshots__/CapsuleStore.json +16 -0
  548. package/src/storage/backwards_compatibility_tests/__snapshots__/ContractStore.json +28 -0
  549. package/src/storage/backwards_compatibility_tests/__snapshots__/FactStore.json +40 -0
  550. package/src/storage/backwards_compatibility_tests/__snapshots__/KeyStore.json +52 -0
  551. package/src/storage/backwards_compatibility_tests/__snapshots__/L2TipsKVStore.json +40 -0
  552. package/src/storage/backwards_compatibility_tests/__snapshots__/NoteStore.json +56 -0
  553. package/src/storage/backwards_compatibility_tests/__snapshots__/PrivateEventStore.json +44 -0
  554. package/src/storage/backwards_compatibility_tests/__snapshots__/RecipientTaggingStore.json +26 -0
  555. package/src/storage/backwards_compatibility_tests/__snapshots__/SenderTaggingStore.json +30 -0
  556. package/src/storage/backwards_compatibility_tests/__snapshots__/TaggingSecretSourcesStore.json +30 -0
  557. package/src/storage/backwards_compatibility_tests/__snapshots__/opened_stores.json +117 -0
  558. package/src/storage/backwards_compatibility_tests/kv_store_snapshot.ts +122 -0
  559. package/src/storage/backwards_compatibility_tests/schema_tests.ts +813 -0
  560. package/src/storage/backwards_compatibility_tests/store_spy.ts +73 -0
  561. package/src/storage/base_staging_store.ts +227 -0
  562. package/src/storage/capsule_store/capsule_service.ts +97 -0
  563. package/src/storage/capsule_store/capsule_store.ts +349 -0
  564. package/src/storage/capsule_store/index.ts +2 -0
  565. package/src/storage/contract_store/contract_store.ts +403 -0
  566. package/src/storage/contract_store/index.ts +1 -0
  567. package/src/storage/contract_store/private_functions_tree.ts +68 -0
  568. package/src/storage/fact_store/fact_service.ts +70 -0
  569. package/src/storage/fact_store/fact_store.ts +424 -0
  570. package/src/storage/fact_store/fact_store_keys.ts +75 -0
  571. package/src/storage/fact_store/index.ts +15 -0
  572. package/src/storage/fact_store/origin_state.ts +84 -0
  573. package/src/storage/fact_store/stored_fact.ts +80 -0
  574. package/src/storage/index.ts +9 -0
  575. package/src/storage/metadata.ts +1 -0
  576. package/src/storage/note_store/index.ts +2 -0
  577. package/src/storage/note_store/note_store.ts +367 -0
  578. package/src/storage/note_store/stored_note.ts +26 -0
  579. package/src/storage/note_store/test_utils.ts +16 -0
  580. package/src/storage/open_pxe_stores.ts +52 -0
  581. package/src/storage/private_event_store/private_event_store.ts +383 -0
  582. package/src/storage/private_event_store/stored_private_event.ts +73 -0
  583. package/src/storage/rollbackable.ts +14 -0
  584. package/src/storage/staged_write_coordinator.ts +218 -0
  585. package/src/storage/store_identity.ts +72 -0
  586. package/src/storage/tagging_store/index.ts +3 -0
  587. package/src/storage/tagging_store/recipient_tagging_store.ts +114 -0
  588. package/src/storage/tagging_store/sender_tagging_store.ts +564 -0
  589. package/src/storage/tagging_store/tagging_secret_sources_store.ts +138 -0
  590. package/src/tagging/constants.ts +42 -0
  591. package/src/tagging/get_all_logs_by_tags.ts +157 -0
  592. package/src/tagging/index.ts +25 -0
  593. package/src/tagging/persist_sender_tagging_index_ranges.ts +59 -0
  594. package/src/tagging/recipient_sync/sync_tagged_private_logs.ts +357 -0
  595. package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +34 -0
  596. package/src/tagging/reconcile_tagging_index_ranges.ts +102 -0
  597. package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +113 -0
  598. package/src/tagging/sender_sync/utils/classify_pending_txs.ts +92 -0
  599. package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +92 -0
  600. package/src/tagging/sender_sync/utils/resolve_pending_txs.ts +65 -0
  601. package/src/tagging/sender_sync/utils/test_utils.ts +46 -0
  602. package/src/tagging/testing/tag_query_test_utils.ts +11 -0
  603. package/src/test_utils.ts +2 -0
@@ -0,0 +1,709 @@
1
+ /* eslint-disable camelcase */
2
+ import { ARCHIVE_HEIGHT, L1_TO_L2_MSG_TREE_HEIGHT, NOTE_HASH_TREE_HEIGHT } from '@aztec-labs/constants';
3
+ import { Fr } from '@aztec-labs/foundation/curves/bn254';
4
+ import { FieldReader } from '@aztec-labs/foundation/serialize';
5
+ import { toACVMField } from '@aztec-labs/simulator/client';
6
+ import type { UnsiloedMessageNullifier } from '@aztec-labs/stdlib/messaging';
7
+
8
+ import {
9
+ ARRAY,
10
+ AZTEC_ADDRESS,
11
+ BLOCK_HASH,
12
+ BLOCK_HEADER,
13
+ BLOCK_NUMBER,
14
+ BOOL,
15
+ BOUNDED_VEC,
16
+ CALL_PRIVATE_RESULT,
17
+ CONTRACT_INSTANCE,
18
+ DELIVERY_MODE,
19
+ EPHEMERAL_ARRAY,
20
+ EVENT_VALIDATION_REQUEST,
21
+ FACT_COLLECTION,
22
+ FIELD,
23
+ FIXED_ARRAY,
24
+ FUNCTION_SELECTOR,
25
+ type InputSlot,
26
+ KEY_VALIDATION_REQUEST,
27
+ LOG_RETRIEVAL_REQUEST,
28
+ LOG_RETRIEVAL_RESPONSE,
29
+ MEMBERSHIP_WITNESS,
30
+ type MaybePromise,
31
+ NOTE,
32
+ NOTE_SELECTOR,
33
+ NOTE_VALIDATION_REQUEST,
34
+ NULLIFIER_MEMBERSHIP_WITNESS,
35
+ OPTION,
36
+ ORIGIN_BLOCK,
37
+ type OutputSlot,
38
+ PENDING_TAGGED_LOG,
39
+ POINT,
40
+ PROVIDED_SECRET,
41
+ PUBLIC_DATA_WITNESS,
42
+ PUBLIC_KEYS_AND_PARTIAL_ADDRESS,
43
+ RESOLVED_TAGGING_STRATEGY,
44
+ RESOLVED_TX,
45
+ STR,
46
+ STRUCT,
47
+ TX_EFFECT,
48
+ TX_HASH,
49
+ type TypeMapping,
50
+ U8,
51
+ U32,
52
+ UTILITY_CONTEXT,
53
+ assertReadersConsumed,
54
+ slotsOf,
55
+ } from './oracle_type_mappings.js';
56
+
57
+ export {
58
+ ARRAY,
59
+ AZTEC_ADDRESS,
60
+ BIGINT,
61
+ BLOCK_NUMBER,
62
+ BOOL,
63
+ BOUNDED_VEC,
64
+ U8,
65
+ DELIVERY_MODE,
66
+ RESOLVED_TAGGING_STRATEGY,
67
+ EPHEMERAL_ARRAY,
68
+ EVENT_VALIDATION_REQUEST,
69
+ FIELD,
70
+ FUNCTION_SELECTOR,
71
+ LOG_RETRIEVAL_REQUEST,
72
+ LOG_RETRIEVAL_RESPONSE,
73
+ MEMBERSHIP_WITNESS,
74
+ NOTE_VALIDATION_REQUEST,
75
+ OPTION,
76
+ PENDING_TAGGED_LOG,
77
+ POINT,
78
+ PROVIDED_SECRET,
79
+ RESOLVED_TX,
80
+ STR,
81
+ U32,
82
+ slotsOf,
83
+ type InputSlot,
84
+ type MaybePromise,
85
+ type OutputSlot,
86
+ type SlotShape,
87
+ type TypeMapping,
88
+ } from './oracle_type_mappings.js';
89
+
90
+ export const ORACLE_REGISTRY = {
91
+ aztec_misc_assertCompatibleOracleVersion: makeEntry({
92
+ params: [
93
+ { name: 'major', type: U32 },
94
+ { name: 'minor', type: U32 },
95
+ ],
96
+ }),
97
+
98
+ aztec_misc_getRandomField: makeEntry({ returnType: FIELD }),
99
+
100
+ aztec_misc_log: makeEntry({
101
+ params: [
102
+ { name: 'level', type: U32 },
103
+ { name: 'message', type: STR },
104
+ { name: 'fieldsSize', type: U32 },
105
+ { name: 'fields', type: ARRAY(FIELD) },
106
+ ],
107
+ }),
108
+
109
+ aztec_utl_getUtilityContext: makeEntry({ returnType: UTILITY_CONTEXT }),
110
+
111
+ aztec_utl_getKeyValidationRequest: makeEntry({
112
+ params: [
113
+ { name: 'pkMHash', type: FIELD },
114
+ { name: 'keyIndex', type: FIELD },
115
+ ],
116
+ returnType: KEY_VALIDATION_REQUEST,
117
+ }),
118
+
119
+ aztec_utl_getContractInstance: makeEntry({
120
+ params: [{ name: 'address', type: AZTEC_ADDRESS }],
121
+ returnType: CONTRACT_INSTANCE,
122
+ }),
123
+
124
+ aztec_utl_getNoteHashMembershipWitness: makeEntry({
125
+ params: [
126
+ { name: 'anchorBlockHash', type: BLOCK_HASH },
127
+ { name: 'noteHash', type: FIELD },
128
+ ],
129
+ returnType: MEMBERSHIP_WITNESS(NOTE_HASH_TREE_HEIGHT),
130
+ }),
131
+
132
+ aztec_utl_getBlockHashMembershipWitness: makeEntry({
133
+ params: [
134
+ { name: 'anchorBlockHash', type: BLOCK_HASH },
135
+ { name: 'blockHash', type: BLOCK_HASH },
136
+ ],
137
+ returnType: OPTION(MEMBERSHIP_WITNESS(ARCHIVE_HEIGHT)),
138
+ }),
139
+
140
+ aztec_utl_areBlockHashesInArchive: makeEntry({
141
+ params: [
142
+ { name: 'anchorBlockHash', type: BLOCK_HASH },
143
+ { name: 'blockHashes', type: EPHEMERAL_ARRAY(BLOCK_HASH) },
144
+ ],
145
+ returnType: EPHEMERAL_ARRAY(BOOL),
146
+ }),
147
+
148
+ aztec_utl_getNullifierMembershipWitness: makeEntry({
149
+ params: [
150
+ { name: 'blockHash', type: BLOCK_HASH },
151
+ { name: 'nullifier', type: FIELD },
152
+ ],
153
+ returnType: NULLIFIER_MEMBERSHIP_WITNESS,
154
+ }),
155
+
156
+ aztec_utl_getLowNullifierMembershipWitness: makeEntry({
157
+ params: [
158
+ { name: 'blockHash', type: BLOCK_HASH },
159
+ { name: 'nullifier', type: FIELD },
160
+ ],
161
+ returnType: NULLIFIER_MEMBERSHIP_WITNESS,
162
+ }),
163
+
164
+ aztec_utl_getPublicDataWitness: makeEntry({
165
+ params: [
166
+ { name: 'blockHash', type: BLOCK_HASH },
167
+ { name: 'leafSlot', type: FIELD },
168
+ ],
169
+ returnType: PUBLIC_DATA_WITNESS,
170
+ }),
171
+
172
+ aztec_utl_getBlockHeader: makeEntry({
173
+ params: [{ name: 'blockNumber', type: BLOCK_NUMBER }],
174
+ returnType: BLOCK_HEADER,
175
+ }),
176
+
177
+ aztec_utl_getAuthWitness: makeEntry({
178
+ params: [{ name: 'messageHash', type: FIELD }],
179
+ returnType: ARRAY(FIELD),
180
+ }),
181
+
182
+ aztec_utl_getPublicKeysAndPartialAddress: makeEntry({
183
+ params: [{ name: 'address', type: AZTEC_ADDRESS }],
184
+ returnType: OPTION(PUBLIC_KEYS_AND_PARTIAL_ADDRESS),
185
+ }),
186
+
187
+ aztec_utl_doesNullifierExist: makeEntry({
188
+ params: [{ name: 'innerNullifier', type: FIELD }],
189
+ returnType: BOOL,
190
+ }),
191
+
192
+ aztec_utl_getL1ToL2MembershipWitnessV2: makeEntry({
193
+ params: [
194
+ { name: 'messageHash', type: FIELD },
195
+ {
196
+ name: 'nullifier',
197
+ type: OPTION(
198
+ STRUCT<UnsiloedMessageNullifier>([
199
+ { name: 'contractAddress', type: AZTEC_ADDRESS },
200
+ { name: 'nullifier', type: FIELD },
201
+ ]),
202
+ ),
203
+ },
204
+ ],
205
+ returnType: MEMBERSHIP_WITNESS(L1_TO_L2_MSG_TREE_HEIGHT),
206
+ }),
207
+
208
+ aztec_utl_getFromPublicStorage: makeEntry({
209
+ params: [
210
+ { name: 'blockHash', type: BLOCK_HASH },
211
+ { name: 'contractAddress', type: AZTEC_ADDRESS },
212
+ { name: 'startStorageSlot', type: FIELD },
213
+ { name: 'numberOfElements', type: U32 },
214
+ ],
215
+ returnType: ARRAY(FIELD),
216
+ }),
217
+
218
+ aztec_utl_getNotes: makeEntry({
219
+ params: [
220
+ { name: 'owner', type: OPTION(AZTEC_ADDRESS) },
221
+ { name: 'storageSlot', type: FIELD },
222
+ { name: 'numSelects', type: U32 },
223
+ { name: 'selectByIndexes', type: ARRAY(U32) },
224
+ { name: 'selectByOffsets', type: ARRAY(U32) },
225
+ { name: 'selectByLengths', type: ARRAY(U32) },
226
+ { name: 'selectValues', type: ARRAY(FIELD) },
227
+ { name: 'selectComparators', type: ARRAY(U32) },
228
+ { name: 'sortByIndexes', type: ARRAY(U32) },
229
+ { name: 'sortByOffsets', type: ARRAY(U32) },
230
+ { name: 'sortByLengths', type: ARRAY(U32) },
231
+ { name: 'sortOrder', type: ARRAY(U32) },
232
+ { name: 'limit', type: U32 },
233
+ { name: 'offset', type: U32 },
234
+ { name: 'status', type: U32 },
235
+ { name: 'maxNotes', type: U32 },
236
+ { name: 'packedHintedNoteLength', type: U32 },
237
+ ],
238
+ returnType: BOUNDED_VEC(NOTE),
239
+ }),
240
+
241
+ aztec_utl_getPendingTaggedLogsV2: makeEntry({
242
+ params: [
243
+ { name: 'scope', type: AZTEC_ADDRESS },
244
+ { name: 'providedSecrets', type: EPHEMERAL_ARRAY(PROVIDED_SECRET) },
245
+ ],
246
+ returnType: EPHEMERAL_ARRAY(PENDING_TAGGED_LOG),
247
+ }),
248
+
249
+ aztec_utl_validateAndStoreEnqueuedNotesAndEvents: makeEntry({
250
+ params: [
251
+ { name: 'noteValidationRequests', type: EPHEMERAL_ARRAY(NOTE_VALIDATION_REQUEST) },
252
+ { name: 'eventValidationRequests', type: EPHEMERAL_ARRAY(EVENT_VALIDATION_REQUEST) },
253
+ { name: 'scope', type: AZTEC_ADDRESS },
254
+ ],
255
+ }),
256
+
257
+ aztec_utl_getLogsByTagV2: makeEntry({
258
+ params: [{ name: 'requests', type: EPHEMERAL_ARRAY(LOG_RETRIEVAL_REQUEST) }],
259
+ returnType: EPHEMERAL_ARRAY(EPHEMERAL_ARRAY(LOG_RETRIEVAL_RESPONSE)),
260
+ }),
261
+
262
+ aztec_utl_getResolvedTxs: makeEntry({
263
+ params: [{ name: 'requests', type: EPHEMERAL_ARRAY(FIELD) }],
264
+ returnType: EPHEMERAL_ARRAY(OPTION(RESOLVED_TX)),
265
+ }),
266
+
267
+ aztec_utl_getTxEffect: makeEntry({
268
+ params: [{ name: 'txHash', type: TX_HASH }],
269
+ returnType: OPTION(TX_EFFECT),
270
+ }),
271
+
272
+ aztec_utl_getTxEffects: makeEntry({
273
+ params: [{ name: 'txHashes', type: EPHEMERAL_ARRAY(TX_HASH) }],
274
+ returnType: EPHEMERAL_ARRAY(OPTION(TX_EFFECT)),
275
+ }),
276
+
277
+ aztec_utl_setCapsule: makeEntry({
278
+ params: [
279
+ { name: 'contractAddress', type: AZTEC_ADDRESS },
280
+ { name: 'slot', type: FIELD },
281
+ { name: 'capsule', type: ARRAY(FIELD) },
282
+ { name: 'scope', type: AZTEC_ADDRESS },
283
+ ],
284
+ }),
285
+
286
+ aztec_utl_getCapsule: makeEntry({
287
+ params: [
288
+ { name: 'contractAddress', type: AZTEC_ADDRESS },
289
+ { name: 'slot', type: FIELD },
290
+ { name: 'tSize', type: U32 },
291
+ { name: 'scope', type: AZTEC_ADDRESS },
292
+ ],
293
+ returnType: OPTION(ARRAY(FIELD)),
294
+ }),
295
+
296
+ aztec_utl_deleteCapsule: makeEntry({
297
+ params: [
298
+ { name: 'contractAddress', type: AZTEC_ADDRESS },
299
+ { name: 'slot', type: FIELD },
300
+ { name: 'scope', type: AZTEC_ADDRESS },
301
+ ],
302
+ }),
303
+
304
+ aztec_utl_copyCapsule: makeEntry({
305
+ params: [
306
+ { name: 'contractAddress', type: AZTEC_ADDRESS },
307
+ { name: 'srcSlot', type: FIELD },
308
+ { name: 'dstSlot', type: FIELD },
309
+ { name: 'numEntries', type: U32 },
310
+ { name: 'scope', type: AZTEC_ADDRESS },
311
+ ],
312
+ }),
313
+
314
+ aztec_utl_decryptAes128: makeEntry({
315
+ params: [
316
+ { name: 'ciphertext', type: BOUNDED_VEC(U8) },
317
+ { name: 'iv', type: FIXED_ARRAY(U8, 16) },
318
+ { name: 'symKey', type: FIXED_ARRAY(U8, 16) },
319
+ ],
320
+ returnType: OPTION(BOUNDED_VEC(U8)),
321
+ }),
322
+
323
+ aztec_utl_getSharedSecrets: makeEntry({
324
+ params: [
325
+ { name: 'address', type: AZTEC_ADDRESS },
326
+ { name: 'ephPks', type: EPHEMERAL_ARRAY(POINT) },
327
+ { name: 'contractAddress', type: AZTEC_ADDRESS },
328
+ ],
329
+ returnType: EPHEMERAL_ARRAY(FIELD),
330
+ }),
331
+
332
+ aztec_utl_setContractSyncCacheInvalid: makeEntry({
333
+ params: [
334
+ { name: 'contractAddress', type: AZTEC_ADDRESS },
335
+ { name: 'scopes', type: BOUNDED_VEC(AZTEC_ADDRESS) },
336
+ ],
337
+ }),
338
+
339
+ aztec_utl_emitOffchainEffect: makeEntry({
340
+ params: [{ name: 'data', type: ARRAY(FIELD) }],
341
+ }),
342
+
343
+ aztec_utl_recordFact: makeEntry({
344
+ params: [
345
+ { name: 'contractAddress', type: AZTEC_ADDRESS },
346
+ { name: 'scope', type: AZTEC_ADDRESS },
347
+ { name: 'factCollectionTypeId', type: FIELD },
348
+ { name: 'factCollectionId', type: FIELD },
349
+ { name: 'factTypeId', type: FIELD },
350
+ { name: 'payload', type: EPHEMERAL_ARRAY(FIELD) },
351
+ { name: 'originBlock', type: OPTION(ORIGIN_BLOCK) },
352
+ ],
353
+ }),
354
+
355
+ aztec_utl_deleteFactCollection: makeEntry({
356
+ params: [
357
+ { name: 'contractAddress', type: AZTEC_ADDRESS },
358
+ { name: 'scope', type: AZTEC_ADDRESS },
359
+ { name: 'factCollectionTypeId', type: FIELD },
360
+ { name: 'factCollectionId', type: FIELD },
361
+ ],
362
+ }),
363
+
364
+ aztec_utl_getFactCollection: makeEntry({
365
+ params: [
366
+ { name: 'contractAddress', type: AZTEC_ADDRESS },
367
+ { name: 'scope', type: AZTEC_ADDRESS },
368
+ { name: 'factCollectionTypeId', type: FIELD },
369
+ { name: 'factCollectionId', type: FIELD },
370
+ ],
371
+ returnType: OPTION(FACT_COLLECTION),
372
+ }),
373
+
374
+ aztec_utl_getFactCollectionsByType: makeEntry({
375
+ params: [
376
+ { name: 'contractAddress', type: AZTEC_ADDRESS },
377
+ { name: 'scope', type: AZTEC_ADDRESS },
378
+ { name: 'factCollectionTypeId', type: FIELD },
379
+ ],
380
+ returnType: EPHEMERAL_ARRAY(FACT_COLLECTION),
381
+ }),
382
+
383
+ aztec_utl_callUtilityFunction: makeEntry({
384
+ params: [
385
+ { name: 'contractAddress', type: AZTEC_ADDRESS },
386
+ { name: 'functionSelector', type: FUNCTION_SELECTOR },
387
+ { name: 'args', type: ARRAY(FIELD) },
388
+ ],
389
+ returnType: ARRAY(FIELD),
390
+ }),
391
+
392
+ aztec_utl_pushEphemeral: makeEntry({
393
+ params: [
394
+ { name: 'slot', type: FIELD },
395
+ { name: 'elements', type: ARRAY(FIELD) },
396
+ ],
397
+ returnType: U32,
398
+ }),
399
+
400
+ aztec_utl_popEphemeral: makeEntry({
401
+ params: [{ name: 'slot', type: FIELD }],
402
+ returnType: ARRAY(FIELD),
403
+ }),
404
+
405
+ aztec_utl_getEphemeral: makeEntry({
406
+ params: [
407
+ { name: 'slot', type: FIELD },
408
+ { name: 'index', type: U32 },
409
+ ],
410
+ returnType: ARRAY(FIELD),
411
+ }),
412
+
413
+ aztec_utl_setEphemeral: makeEntry({
414
+ params: [
415
+ { name: 'slot', type: FIELD },
416
+ { name: 'index', type: U32 },
417
+ { name: 'elements', type: ARRAY(FIELD) },
418
+ ],
419
+ }),
420
+
421
+ aztec_utl_getEphemeralLen: makeEntry({
422
+ params: [{ name: 'slot', type: FIELD }],
423
+ returnType: U32,
424
+ }),
425
+
426
+ aztec_utl_removeEphemeral: makeEntry({
427
+ params: [
428
+ { name: 'slot', type: FIELD },
429
+ { name: 'index', type: U32 },
430
+ ],
431
+ }),
432
+
433
+ aztec_utl_clearEphemeral: makeEntry({
434
+ params: [{ name: 'slot', type: FIELD }],
435
+ }),
436
+
437
+ aztec_utl_pushTransient: makeEntry({
438
+ params: [
439
+ { name: 'slot', type: FIELD },
440
+ { name: 'elements', type: ARRAY(FIELD) },
441
+ ],
442
+ returnType: U32,
443
+ }),
444
+
445
+ aztec_utl_popTransient: makeEntry({
446
+ params: [{ name: 'slot', type: FIELD }],
447
+ returnType: ARRAY(FIELD),
448
+ }),
449
+
450
+ aztec_utl_getTransient: makeEntry({
451
+ params: [
452
+ { name: 'slot', type: FIELD },
453
+ { name: 'index', type: U32 },
454
+ ],
455
+ returnType: ARRAY(FIELD),
456
+ }),
457
+
458
+ aztec_utl_setTransient: makeEntry({
459
+ params: [
460
+ { name: 'slot', type: FIELD },
461
+ { name: 'index', type: U32 },
462
+ { name: 'elements', type: ARRAY(FIELD) },
463
+ ],
464
+ }),
465
+
466
+ aztec_utl_getTransientLen: makeEntry({
467
+ params: [{ name: 'slot', type: FIELD }],
468
+ returnType: U32,
469
+ }),
470
+
471
+ aztec_utl_removeTransient: makeEntry({
472
+ params: [
473
+ { name: 'slot', type: FIELD },
474
+ { name: 'index', type: U32 },
475
+ ],
476
+ }),
477
+
478
+ aztec_utl_clearTransient: makeEntry({
479
+ params: [{ name: 'slot', type: FIELD }],
480
+ }),
481
+
482
+ aztec_prv_setHashPreimage: makeEntry({
483
+ params: [
484
+ { name: 'values', type: ARRAY(FIELD) },
485
+ { name: 'hash', type: FIELD },
486
+ ],
487
+ }),
488
+
489
+ aztec_prv_getHashPreimage: makeEntry({
490
+ params: [{ name: 'returnsHash', type: FIELD }],
491
+ returnType: ARRAY(FIELD),
492
+ }),
493
+
494
+ aztec_prv_notifyCreatedNote: makeEntry({
495
+ params: [
496
+ { name: 'owner', type: AZTEC_ADDRESS },
497
+ { name: 'storageSlot', type: FIELD },
498
+ { name: 'randomness', type: FIELD },
499
+ { name: 'noteTypeId', type: NOTE_SELECTOR },
500
+ { name: 'note', type: ARRAY(FIELD) },
501
+ { name: 'noteHash', type: FIELD },
502
+ { name: 'counter', type: U32 },
503
+ ],
504
+ }),
505
+
506
+ aztec_prv_notifyNullifiedNote: makeEntry({
507
+ params: [
508
+ { name: 'innerNullifier', type: FIELD },
509
+ { name: 'noteHash', type: FIELD },
510
+ { name: 'counter', type: U32 },
511
+ ],
512
+ }),
513
+
514
+ aztec_prv_notifyCreatedNullifier: makeEntry({
515
+ params: [{ name: 'innerNullifier', type: FIELD }],
516
+ }),
517
+
518
+ aztec_prv_isNullifierPending: makeEntry({
519
+ params: [
520
+ { name: 'innerNullifier', type: FIELD },
521
+ { name: 'contractAddress', type: AZTEC_ADDRESS },
522
+ ],
523
+ returnType: BOOL,
524
+ }),
525
+
526
+ aztec_prv_notifyCreatedContractClassLog: makeEntry({
527
+ params: [
528
+ { name: 'contractAddress', type: AZTEC_ADDRESS },
529
+ { name: 'message', type: ARRAY(FIELD) },
530
+ { name: 'length', type: U32 },
531
+ { name: 'counter', type: U32 },
532
+ ],
533
+ }),
534
+
535
+ aztec_prv_callPrivateFunction: makeEntry({
536
+ params: [
537
+ { name: 'contractAddress', type: AZTEC_ADDRESS },
538
+ { name: 'functionSelector', type: FUNCTION_SELECTOR },
539
+ { name: 'argsHash', type: FIELD },
540
+ { name: 'sideEffectCounter', type: U32 },
541
+ { name: 'isStaticCall', type: BOOL },
542
+ ],
543
+ returnType: CALL_PRIVATE_RESULT,
544
+ }),
545
+
546
+ aztec_prv_assertValidPublicCalldata: makeEntry({
547
+ params: [{ name: 'calldataHash', type: FIELD }],
548
+ }),
549
+
550
+ aztec_prv_notifyRevertiblePhaseStart: makeEntry({
551
+ params: [{ name: 'minRevertibleSideEffectCounter', type: U32 }],
552
+ }),
553
+
554
+ aztec_prv_isExecutionInRevertiblePhase: makeEntry({
555
+ params: [{ name: 'sideEffectCounter', type: U32 }],
556
+ returnType: BOOL,
557
+ }),
558
+
559
+ aztec_prv_getAppTaggingSecret: makeEntry({
560
+ params: [
561
+ { name: 'sender', type: AZTEC_ADDRESS },
562
+ { name: 'recipient', type: AZTEC_ADDRESS },
563
+ ],
564
+ returnType: OPTION(FIELD),
565
+ }),
566
+
567
+ aztec_prv_getNextTaggingIndex: makeEntry({
568
+ params: [
569
+ { name: 'secret', type: FIELD },
570
+ { name: 'deliveryMode', type: DELIVERY_MODE },
571
+ ],
572
+ returnType: U32,
573
+ }),
574
+
575
+ aztec_prv_getSenderForTags: makeEntry({ returnType: OPTION(AZTEC_ADDRESS) }),
576
+
577
+ aztec_prv_resolveTaggingStrategy: makeEntry({
578
+ params: [
579
+ { name: 'sender', type: AZTEC_ADDRESS },
580
+ { name: 'recipient', type: AZTEC_ADDRESS },
581
+ { name: 'deliveryMode', type: DELIVERY_MODE },
582
+ ],
583
+ returnType: RESOLVED_TAGGING_STRATEGY,
584
+ }),
585
+
586
+ aztec_prv_resolveCustomRequest: makeEntry({
587
+ params: [
588
+ { name: 'kind', type: FIELD },
589
+ { name: 'payload', type: ARRAY(FIELD) },
590
+ ],
591
+ returnType: ARRAY(FIELD),
592
+ }),
593
+ } satisfies Record<string, OracleRegistryEntry>;
594
+
595
+ // ─── Registry Infrastructure ─────────────────────────────────────────────────
596
+
597
+ /**
598
+ * A full oracle registry entry describing param and return serialization.
599
+ *
600
+ * TDeserializedParams — the array of named pairs returned by `deserializeParams`.
601
+ * TReturnValue — the typed handler return value consumed by `serializeReturn`.
602
+ */
603
+ export interface OracleRegistryEntry<
604
+ TDeserializedParams extends readonly NamedValue[] = readonly NamedValue[],
605
+ TReturnValue = any,
606
+ > {
607
+ /** Deserialize all ACVM inputs into named pairs in positional order. */
608
+ deserializeParams(inputs: InputSlot[]): TDeserializedParams;
609
+ /** Serialize a handler return value into ACVM output slots. */
610
+ serializeReturn(result: TReturnValue): OutputSlot[];
611
+ /** The ordered named parameters with their {@link TypeMapping}s. Lets callers introspect the oracle's wire ABI. */
612
+ readonly params: readonly RegistryParam[];
613
+ /** The return {@link TypeMapping}, or `undefined` for oracles that return nothing. */
614
+ readonly returnType?: TypeMapping<TReturnValue>;
615
+ }
616
+
617
+ export function makeEntry<const TParams extends RegistryParam[] = [], TReturnValue = void>({
618
+ params,
619
+ returnType,
620
+ }: {
621
+ params?: [...TParams];
622
+ returnType?: TypeMapping<TReturnValue>;
623
+ } = {}): OracleRegistryEntry<InferDeserializedParams<TParams>, TReturnValue> {
624
+ return {
625
+ params: params ?? [],
626
+ returnType,
627
+ deserializeParams(inputs: InputSlot[]): InferDeserializedParams<TParams> {
628
+ const resolvedParams: RegistryParam[] = params ?? [];
629
+ // Walk the input slots left-to-right, advancing by each param's slot count.
630
+ let offset = 0;
631
+ const named = resolvedParams.map(param => {
632
+ if (!param.type.deserialization) {
633
+ throw new Error(`Param '${param.name}' has no deserialization defined`);
634
+ }
635
+ // Collect the slots for this param and wrap each in a FieldReader.
636
+ const slotCount = slotsOf(param.type);
637
+ const readers = inputs
638
+ .slice(offset, offset + slotCount)
639
+ .map(slot => new FieldReader(slot.map(hex => Fr.fromString(hex))));
640
+ offset += slotCount;
641
+ // Delegate to the TypeMapping's deserializer, assert the param's slots are fully consumed, and tag the
642
+ // result with the param name.
643
+ const value = param.type.deserialization.fn(readers);
644
+ assertReadersConsumed(readers);
645
+ return { name: param.name, value };
646
+ });
647
+ // Every input slot must be specified by a param: oracles whose Noir decl passes an extra field must declare it
648
+ // (the handler can ignore it). Otherwise an under-declared shape would silently drop a field into nothing.
649
+ if (offset !== inputs.length) {
650
+ throw new Error(`Oracle received ${inputs.length} input slot(s) but the registry specifies ${offset}`);
651
+ }
652
+ return named as unknown as InferDeserializedParams<TParams>;
653
+ },
654
+ serializeReturn(result: TReturnValue): OutputSlot[] {
655
+ if (returnType?.serialization === undefined) {
656
+ return [];
657
+ }
658
+ return returnType.serialization
659
+ .fn(result)
660
+ .map(slot => (Array.isArray(slot) ? slot.map(toACVMField) : toACVMField(slot)));
661
+ },
662
+ };
663
+ }
664
+
665
+ /** A named oracle parameter with its TypeMapping. */
666
+ export interface RegistryParam<TName extends string = string, T = any> {
667
+ name: TName;
668
+ type: TypeMapping<T>;
669
+ }
670
+
671
+ /** One named param entry from a deserializeParams result. */
672
+ export type NamedValue<TName extends string = string, TValue = any> = { readonly name: TName; readonly value: TValue };
673
+
674
+ /**
675
+ * Extracts the positional type tuple from a {@link OracleRegistryEntry.deserializeParams} result,
676
+ * stripping names to produce the handler's argument types.
677
+ *
678
+ * @example `ParamTypes<[NamedValue<'addr', AztecAddress>, NamedValue<'slot', Fr>]>` → `[AztecAddress, Fr]`
679
+ */
680
+ export type ParamTypes<T extends readonly NamedValue[]> = {
681
+ [K in keyof T]: T[K] extends NamedValue<string, infer V> ? V : never;
682
+ };
683
+
684
+ /**
685
+ * Maps a registry entry's `params` declaration to the return type of
686
+ * {@link OracleRegistryEntry.deserializeParams}: each `RegistryParam<Name, Type>` becomes a
687
+ * `NamedValue<Name, Type>` at the same position.
688
+ *
689
+ * @example `InferDeserializedParams<[RegistryParam<'addr', AztecAddress>, RegistryParam<'slot', Fr>]>`
690
+ * → `[NamedValue<'addr', AztecAddress>, NamedValue<'slot', Fr>]`
691
+ */
692
+ export type InferDeserializedParams<T extends RegistryParam[]> = {
693
+ [K in keyof T]: T[K] extends RegistryParam<infer N, infer V> ? NamedValue<N, V> : never;
694
+ };
695
+
696
+ // ─── Derived Handler Interfaces ─────────────────────────────────────────────
697
+
698
+ /** Strips the `aztec_{scope}_` prefix from an oracle key to get the handler method name. */
699
+ type StripOraclePrefix<K extends string> = K extends `aztec_${string}_${infer M}` ? M : never;
700
+
701
+ /** Derives the handler function signature from a registry entry's deserialization/serialization types. */
702
+ type HandlerFn<E extends OracleRegistryEntry> = (
703
+ ...args: ParamTypes<ReturnType<E['deserializeParams']>>
704
+ ) => MaybePromise<Parameters<E['serializeReturn']>[0]>;
705
+
706
+ /** Collects all oracle handler methods for a given name prefix into a single object type. */
707
+ export type HandlersForPrefix<R extends Record<string, OracleRegistryEntry>, P extends string> = {
708
+ [K in keyof R as K extends `aztec_${P}_${string}` ? StripOraclePrefix<K & string> : never]: HandlerFn<R[K]>;
709
+ };