@aztec/pxe 0.0.1-commit.b9865e97 → 0.0.1-commit.be03c316

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 (397) hide show
  1. package/dest/bin/check_oracle_version.js +8 -23
  2. package/dest/bin/index.d.ts +2 -2
  3. package/dest/bin/index.d.ts.map +1 -1
  4. package/dest/bin/index.js +1 -1
  5. package/dest/bin/oracle_version_helpers.d.ts +16 -8
  6. package/dest/bin/oracle_version_helpers.d.ts.map +1 -1
  7. package/dest/bin/oracle_version_helpers.js +22 -69
  8. package/dest/block_synchronizer/block_stream_source.d.ts +5 -5
  9. package/dest/block_synchronizer/block_stream_source.d.ts.map +1 -1
  10. package/dest/block_synchronizer/block_stream_source.js +4 -29
  11. package/dest/block_synchronizer/block_synchronizer.d.ts +18 -14
  12. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
  13. package/dest/block_synchronizer/block_synchronizer.js +54 -18
  14. package/dest/config/index.d.ts +2 -1
  15. package/dest/config/index.d.ts.map +1 -1
  16. package/dest/config/index.js +1 -0
  17. package/dest/contract/contract_class_service.d.ts +31 -0
  18. package/dest/contract/contract_class_service.d.ts.map +1 -0
  19. package/dest/contract/contract_class_service.js +68 -0
  20. package/dest/contract/contract_sync_service.d.ts +48 -0
  21. package/dest/contract/contract_sync_service.d.ts.map +1 -0
  22. package/dest/{contract_sync → contract}/contract_sync_service.js +26 -45
  23. package/dest/contract/helpers.d.ts +7 -0
  24. package/dest/contract/helpers.d.ts.map +1 -0
  25. package/dest/contract/helpers.js +20 -0
  26. package/dest/contract/skip_sync_contracts.d.ts +11 -0
  27. package/dest/contract/skip_sync_contracts.d.ts.map +1 -0
  28. package/dest/contract/skip_sync_contracts.js +18 -0
  29. package/dest/contract_function_simulator/anchored_contract_data.d.ts +36 -0
  30. package/dest/contract_function_simulator/anchored_contract_data.d.ts.map +1 -0
  31. package/dest/contract_function_simulator/anchored_contract_data.js +54 -0
  32. package/dest/contract_function_simulator/aztec_node_read_cache.d.ts +39 -0
  33. package/dest/contract_function_simulator/aztec_node_read_cache.d.ts.map +1 -0
  34. package/dest/contract_function_simulator/aztec_node_read_cache.js +60 -0
  35. package/dest/contract_function_simulator/contract_function_simulator.d.ts +19 -18
  36. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  37. package/dest/contract_function_simulator/contract_function_simulator.js +63 -32
  38. package/dest/contract_function_simulator/execution_note_cache.d.ts +3 -9
  39. package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
  40. package/dest/contract_function_simulator/execution_note_cache.js +8 -28
  41. package/dest/contract_function_simulator/index.d.ts +19 -10
  42. package/dest/contract_function_simulator/index.d.ts.map +1 -1
  43. package/dest/contract_function_simulator/index.js +6 -9
  44. package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts +8 -27
  45. package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts.map +1 -1
  46. package/dest/contract_function_simulator/noir-structs/bounded_vec.js +8 -23
  47. package/dest/contract_function_simulator/noir-structs/contract_class_log_data.d.ts +9 -0
  48. package/dest/contract_function_simulator/noir-structs/contract_class_log_data.d.ts.map +1 -0
  49. package/dest/contract_function_simulator/noir-structs/contract_class_log_data.js +1 -0
  50. package/dest/contract_function_simulator/noir-structs/embedded_curve_point.d.ts +7 -0
  51. package/dest/contract_function_simulator/noir-structs/embedded_curve_point.d.ts.map +1 -0
  52. package/dest/contract_function_simulator/noir-structs/embedded_curve_point.js +1 -0
  53. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +1 -1
  54. package/dest/contract_function_simulator/noir-structs/fact.d.ts +16 -0
  55. package/dest/contract_function_simulator/noir-structs/fact.d.ts.map +1 -0
  56. package/dest/contract_function_simulator/noir-structs/fact.js +6 -0
  57. package/dest/contract_function_simulator/noir-structs/fact_collection.d.ts +27 -0
  58. package/dest/contract_function_simulator/noir-structs/fact_collection.d.ts.map +1 -0
  59. package/dest/contract_function_simulator/noir-structs/fact_collection.js +31 -0
  60. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +11 -12
  61. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts.map +1 -1
  62. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +6 -49
  63. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +10 -8
  64. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -1
  65. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +1 -60
  66. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +2 -2
  67. package/dest/contract_function_simulator/noir-structs/option.d.ts +9 -11
  68. package/dest/contract_function_simulator/noir-structs/option.d.ts.map +1 -1
  69. package/dest/contract_function_simulator/noir-structs/option.js +18 -13
  70. package/dest/contract_function_simulator/noir-structs/origin_block.d.ts +11 -0
  71. package/dest/contract_function_simulator/noir-structs/origin_block.d.ts.map +1 -0
  72. package/dest/contract_function_simulator/noir-structs/origin_block.js +5 -0
  73. package/dest/contract_function_simulator/noir-structs/pending_tagged_log.d.ts +11 -0
  74. package/dest/contract_function_simulator/noir-structs/pending_tagged_log.d.ts.map +1 -0
  75. package/dest/contract_function_simulator/noir-structs/pending_tagged_log.js +4 -0
  76. package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts +6 -9
  77. package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts.map +1 -1
  78. package/dest/contract_function_simulator/noir-structs/provided_secret.js +1 -24
  79. package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.d.ts +28 -0
  80. package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.d.ts.map +1 -0
  81. package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.js +50 -0
  82. package/dest/contract_function_simulator/noir-structs/resolved_tx.d.ts +19 -0
  83. package/dest/contract_function_simulator/noir-structs/resolved_tx.d.ts.map +1 -0
  84. package/dest/contract_function_simulator/noir-structs/resolved_tx.js +9 -0
  85. package/dest/contract_function_simulator/noir-structs/tx_effect_data.d.ts +15 -0
  86. package/dest/contract_function_simulator/noir-structs/tx_effect_data.d.ts.map +1 -0
  87. package/dest/contract_function_simulator/noir-structs/tx_effect_data.js +5 -0
  88. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +6 -11
  89. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -1
  90. package/dest/contract_function_simulator/noir-structs/utility_context.js +1 -20
  91. package/dest/contract_function_simulator/oracle/acir_callback.d.ts +21 -0
  92. package/dest/contract_function_simulator/oracle/acir_callback.d.ts.map +1 -0
  93. package/dest/contract_function_simulator/oracle/acir_callback.js +115 -0
  94. package/dest/contract_function_simulator/oracle/index.d.ts +2 -13
  95. package/dest/contract_function_simulator/oracle/index.d.ts.map +1 -1
  96. package/dest/contract_function_simulator/oracle/index.js +1 -1
  97. package/dest/contract_function_simulator/oracle/interfaces.d.ts +2 -3
  98. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
  99. package/dest/contract_function_simulator/oracle/legacy_oracle_registry.d.ts +39 -0
  100. package/dest/contract_function_simulator/oracle/legacy_oracle_registry.d.ts.map +1 -0
  101. package/dest/contract_function_simulator/oracle/legacy_oracle_registry.js +107 -0
  102. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +3 -14
  103. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -1
  104. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.js +1 -24
  105. package/dest/contract_function_simulator/oracle/oracle_registry.d.ts +43 -31
  106. package/dest/contract_function_simulator/oracle/oracle_registry.d.ts.map +1 -1
  107. package/dest/contract_function_simulator/oracle/oracle_registry.js +259 -29
  108. package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts +180 -45
  109. package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts.map +1 -1
  110. package/dest/contract_function_simulator/oracle/oracle_type_mappings.js +1024 -341
  111. package/dest/contract_function_simulator/oracle/private_execution.d.ts +1 -1
  112. package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
  113. package/dest/contract_function_simulator/oracle/private_execution.js +2 -3
  114. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +21 -8
  115. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  116. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +132 -22
  117. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +77 -34
  118. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  119. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +247 -106
  120. package/dest/contract_function_simulator/transient_array_service.d.ts +31 -0
  121. package/dest/contract_function_simulator/transient_array_service.d.ts.map +1 -0
  122. package/dest/contract_function_simulator/transient_array_service.js +62 -0
  123. package/dest/debug/pxe_debug_utils.d.ts +2 -2
  124. package/dest/debug/pxe_debug_utils.d.ts.map +1 -1
  125. package/dest/entrypoints/client/bundle/index.d.ts +2 -1
  126. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  127. package/dest/entrypoints/client/bundle/index.js +1 -0
  128. package/dest/entrypoints/client/bundle/utils.d.ts +1 -1
  129. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  130. package/dest/entrypoints/client/bundle/utils.js +17 -6
  131. package/dest/entrypoints/client/lazy/index.d.ts +2 -1
  132. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  133. package/dest/entrypoints/client/lazy/index.js +1 -0
  134. package/dest/entrypoints/client/lazy/utils.d.ts +1 -1
  135. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  136. package/dest/entrypoints/client/lazy/utils.js +17 -6
  137. package/dest/entrypoints/client/store.d.ts +14 -0
  138. package/dest/entrypoints/client/store.d.ts.map +1 -0
  139. package/dest/entrypoints/client/store.js +42 -0
  140. package/dest/entrypoints/pxe_creation_options.d.ts +9 -3
  141. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  142. package/dest/entrypoints/server/index.d.ts +6 -3
  143. package/dest/entrypoints/server/index.d.ts.map +1 -1
  144. package/dest/entrypoints/server/index.js +4 -2
  145. package/dest/entrypoints/server/store.d.ts +18 -0
  146. package/dest/entrypoints/server/store.d.ts.map +1 -0
  147. package/dest/entrypoints/server/store.js +28 -0
  148. package/dest/entrypoints/server/utils.d.ts +1 -1
  149. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  150. package/dest/entrypoints/server/utils.js +16 -4
  151. package/dest/error_enriching.d.ts +5 -3
  152. package/dest/error_enriching.d.ts.map +1 -1
  153. package/dest/error_enriching.js +13 -11
  154. package/dest/hooks/execution_hooks.d.ts +31 -11
  155. package/dest/hooks/execution_hooks.d.ts.map +1 -1
  156. package/dest/hooks/execution_hooks.js +3 -3
  157. package/dest/hooks/index.d.ts +4 -3
  158. package/dest/hooks/index.d.ts.map +1 -1
  159. package/dest/hooks/index.js +1 -0
  160. package/dest/hooks/resolve_custom_request.d.ts +23 -0
  161. package/dest/hooks/resolve_custom_request.d.ts.map +1 -0
  162. package/dest/hooks/resolve_custom_request.js +3 -0
  163. package/dest/hooks/resolve_tagging_secret_strategy.d.ts +50 -0
  164. package/dest/hooks/resolve_tagging_secret_strategy.d.ts.map +1 -0
  165. package/dest/hooks/resolve_tagging_secret_strategy.js +3 -0
  166. package/dest/logs/log_service.d.ts +8 -6
  167. package/dest/logs/log_service.d.ts.map +1 -1
  168. package/dest/logs/log_service.js +88 -28
  169. package/dest/messages/tx_resolver_service.d.ts +17 -0
  170. package/dest/messages/tx_resolver_service.d.ts.map +1 -0
  171. package/dest/messages/{message_context_service.js → tx_resolver_service.js} +13 -8
  172. package/dest/notes/note_service.d.ts +1 -1
  173. package/dest/notes/note_service.js +1 -1
  174. package/dest/oracle_version.d.ts +3 -3
  175. package/dest/oracle_version.js +5 -5
  176. package/dest/private_kernel/batch_planner.d.ts +1 -1
  177. package/dest/private_kernel/batch_planner.d.ts.map +1 -1
  178. package/dest/private_kernel/batch_planner.js +1 -1
  179. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +1 -1
  180. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -1
  181. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.js +6 -2
  182. package/dest/private_kernel/hints/test_utils.js +1 -1
  183. package/dest/private_kernel/private_kernel_execution_prover.d.ts +1 -1
  184. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  185. package/dest/private_kernel/private_kernel_execution_prover.js +61 -40
  186. package/dest/private_kernel/private_kernel_oracle.d.ts +4 -2
  187. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  188. package/dest/private_kernel/private_kernel_oracle.js +17 -5
  189. package/dest/pxe.d.ts +114 -48
  190. package/dest/pxe.d.ts.map +1 -1
  191. package/dest/pxe.js +225 -139
  192. package/dest/storage/allowed_scopes.d.ts +6 -0
  193. package/dest/storage/allowed_scopes.d.ts.map +1 -0
  194. package/dest/storage/allowed_scopes.js +7 -0
  195. package/dest/storage/anchor_block_store/anchor_block_store.d.ts +9 -6
  196. package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -1
  197. package/dest/storage/anchor_block_store/anchor_block_store.js +8 -6
  198. package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts +1 -1
  199. package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts.map +1 -1
  200. package/dest/storage/backwards_compatibility_tests/schema_tests.js +129 -49
  201. package/dest/storage/capsule_store/capsule_service.d.ts +1 -1
  202. package/dest/storage/capsule_store/capsule_service.d.ts.map +1 -1
  203. package/dest/storage/capsule_store/capsule_service.js +6 -9
  204. package/dest/storage/contract_store/contract_store.d.ts +27 -24
  205. package/dest/storage/contract_store/contract_store.d.ts.map +1 -1
  206. package/dest/storage/contract_store/contract_store.js +64 -75
  207. package/dest/storage/fact_store/fact_service.d.ts +22 -0
  208. package/dest/storage/fact_store/fact_service.d.ts.map +1 -0
  209. package/dest/storage/fact_store/fact_service.js +45 -0
  210. package/dest/storage/fact_store/fact_store.d.ts +95 -0
  211. package/dest/storage/fact_store/fact_store.d.ts.map +1 -0
  212. package/dest/storage/fact_store/fact_store.js +408 -0
  213. package/dest/storage/fact_store/fact_store_keys.d.ts +34 -0
  214. package/dest/storage/fact_store/fact_store_keys.d.ts.map +1 -0
  215. package/dest/storage/fact_store/fact_store_keys.js +50 -0
  216. package/dest/storage/fact_store/index.d.ts +6 -0
  217. package/dest/storage/fact_store/index.d.ts.map +1 -0
  218. package/dest/storage/fact_store/index.js +4 -0
  219. package/dest/storage/fact_store/origin_state.d.ts +59 -0
  220. package/dest/storage/fact_store/origin_state.d.ts.map +1 -0
  221. package/dest/storage/fact_store/origin_state.js +60 -0
  222. package/dest/storage/fact_store/stored_fact.d.ts +32 -0
  223. package/dest/storage/fact_store/stored_fact.d.ts.map +1 -0
  224. package/dest/storage/fact_store/stored_fact.js +64 -0
  225. package/dest/storage/index.d.ts +3 -2
  226. package/dest/storage/index.d.ts.map +1 -1
  227. package/dest/storage/index.js +2 -1
  228. package/dest/storage/metadata.d.ts +2 -2
  229. package/dest/storage/metadata.d.ts.map +1 -1
  230. package/dest/storage/metadata.js +1 -1
  231. package/dest/storage/note_store/note_store.d.ts +42 -33
  232. package/dest/storage/note_store/note_store.d.ts.map +1 -1
  233. package/dest/storage/note_store/note_store.js +197 -168
  234. package/dest/storage/note_store/stored_note.d.ts +3 -8
  235. package/dest/storage/note_store/stored_note.d.ts.map +1 -1
  236. package/dest/storage/note_store/stored_note.js +4 -20
  237. package/dest/storage/open_pxe_stores.d.ts +5 -3
  238. package/dest/storage/open_pxe_stores.d.ts.map +1 -1
  239. package/dest/storage/open_pxe_stores.js +5 -3
  240. package/dest/storage/private_event_store/private_event_store.d.ts +13 -16
  241. package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -1
  242. package/dest/storage/private_event_store/private_event_store.js +40 -43
  243. package/dest/storage/store_identity.d.ts +35 -0
  244. package/dest/storage/store_identity.d.ts.map +1 -0
  245. package/dest/storage/store_identity.js +44 -0
  246. package/dest/storage/tagging_store/index.d.ts +2 -2
  247. package/dest/storage/tagging_store/index.d.ts.map +1 -1
  248. package/dest/storage/tagging_store/index.js +1 -1
  249. package/dest/storage/tagging_store/sender_tagging_store.d.ts +19 -3
  250. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -1
  251. package/dest/storage/tagging_store/sender_tagging_store.js +48 -11
  252. package/dest/storage/tagging_store/tagging_secret_sources_store.d.ts +51 -0
  253. package/dest/storage/tagging_store/tagging_secret_sources_store.d.ts.map +1 -0
  254. package/dest/storage/tagging_store/tagging_secret_sources_store.js +105 -0
  255. package/dest/tagging/constants.d.ts +3 -2
  256. package/dest/tagging/constants.d.ts.map +1 -1
  257. package/dest/tagging/constants.js +28 -10
  258. package/dest/tagging/index.d.ts +2 -2
  259. package/dest/tagging/index.d.ts.map +1 -1
  260. package/dest/tagging/index.js +1 -1
  261. package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts +26 -8
  262. package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts.map +1 -1
  263. package/dest/tagging/recipient_sync/sync_tagged_private_logs.js +95 -20
  264. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +1 -1
  265. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +1 -1
  266. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -1
  267. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +6 -2
  268. package/dest/tagging/testing/tag_query_test_utils.d.ts +6 -0
  269. package/dest/tagging/testing/tag_query_test_utils.d.ts.map +1 -0
  270. package/dest/tagging/testing/tag_query_test_utils.js +10 -0
  271. package/package.json +17 -17
  272. package/src/bin/check_oracle_version.ts +8 -24
  273. package/src/bin/index.ts +1 -1
  274. package/src/bin/oracle_version_helpers.ts +23 -90
  275. package/src/block_synchronizer/block_stream_source.ts +6 -45
  276. package/src/block_synchronizer/block_synchronizer.ts +70 -29
  277. package/src/config/index.ts +1 -0
  278. package/src/contract/contract_class_service.ts +83 -0
  279. package/src/{contract_sync → contract}/contract_sync_service.ts +37 -50
  280. package/src/contract/helpers.ts +35 -0
  281. package/src/contract/skip_sync_contracts.ts +23 -0
  282. package/src/contract_function_simulator/anchored_contract_data.ts +74 -0
  283. package/src/contract_function_simulator/aztec_node_read_cache.ts +89 -0
  284. package/src/contract_function_simulator/contract_function_simulator.ts +96 -42
  285. package/src/contract_function_simulator/execution_note_cache.ts +7 -28
  286. package/src/contract_function_simulator/index.ts +48 -13
  287. package/src/contract_function_simulator/noir-structs/bounded_vec.ts +12 -24
  288. package/src/contract_function_simulator/noir-structs/contract_class_log_data.ts +9 -0
  289. package/src/contract_function_simulator/noir-structs/embedded_curve_point.ts +4 -0
  290. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +1 -1
  291. package/src/contract_function_simulator/noir-structs/fact.ts +13 -0
  292. package/src/contract_function_simulator/noir-structs/fact_collection.ts +64 -0
  293. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +20 -46
  294. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +13 -60
  295. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +2 -2
  296. package/src/contract_function_simulator/noir-structs/option.ts +17 -11
  297. package/src/contract_function_simulator/noir-structs/origin_block.ts +8 -0
  298. package/src/contract_function_simulator/noir-structs/pending_tagged_log.ts +12 -0
  299. package/src/contract_function_simulator/noir-structs/provided_secret.ts +4 -26
  300. package/src/contract_function_simulator/noir-structs/resolved_tagging_strategy.ts +66 -0
  301. package/src/contract_function_simulator/noir-structs/resolved_tx.ts +19 -0
  302. package/src/contract_function_simulator/noir-structs/tx_effect_data.ts +16 -0
  303. package/src/contract_function_simulator/noir-structs/utility_context.ts +5 -17
  304. package/src/contract_function_simulator/oracle/acir_callback.ts +154 -0
  305. package/src/contract_function_simulator/oracle/index.ts +1 -15
  306. package/src/contract_function_simulator/oracle/interfaces.ts +1 -2
  307. package/src/contract_function_simulator/oracle/legacy_oracle_registry.ts +147 -0
  308. package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +6 -21
  309. package/src/contract_function_simulator/oracle/oracle_registry.ts +172 -47
  310. package/src/contract_function_simulator/oracle/oracle_type_mappings.ts +814 -315
  311. package/src/contract_function_simulator/oracle/private_execution.ts +2 -3
  312. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +167 -30
  313. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +399 -135
  314. package/src/contract_function_simulator/transient_array_service.ts +91 -0
  315. package/src/debug/pxe_debug_utils.ts +1 -1
  316. package/src/entrypoints/client/bundle/index.ts +1 -0
  317. package/src/entrypoints/client/bundle/utils.ts +24 -5
  318. package/src/entrypoints/client/lazy/index.ts +1 -0
  319. package/src/entrypoints/client/lazy/utils.ts +24 -5
  320. package/src/entrypoints/client/store.ts +54 -0
  321. package/src/entrypoints/pxe_creation_options.ts +8 -2
  322. package/src/entrypoints/server/index.ts +6 -2
  323. package/src/entrypoints/server/store.ts +47 -0
  324. package/src/entrypoints/server/utils.ts +31 -9
  325. package/src/error_enriching.ts +27 -11
  326. package/src/hooks/execution_hooks.ts +32 -12
  327. package/src/hooks/index.ts +8 -2
  328. package/src/hooks/resolve_custom_request.ts +24 -0
  329. package/src/hooks/resolve_tagging_secret_strategy.ts +60 -0
  330. package/src/logs/log_service.ts +100 -37
  331. package/src/messages/{message_context_service.ts → tx_resolver_service.ts} +16 -9
  332. package/src/notes/note_service.ts +1 -1
  333. package/src/oracle_version.ts +5 -5
  334. package/src/private_kernel/batch_planner.ts +0 -1
  335. package/src/private_kernel/hints/private_kernel_reset_private_inputs_builder.ts +11 -1
  336. package/src/private_kernel/hints/test_utils.ts +1 -1
  337. package/src/private_kernel/private_kernel_execution_prover.ts +112 -56
  338. package/src/private_kernel/private_kernel_oracle.ts +23 -4
  339. package/src/pxe.ts +328 -159
  340. package/src/storage/allowed_scopes.ts +14 -0
  341. package/src/storage/anchor_block_store/anchor_block_store.ts +8 -6
  342. package/src/storage/backwards_compatibility_tests/__snapshots__/AddressStore.json +6 -6
  343. package/src/storage/backwards_compatibility_tests/__snapshots__/ContractStore.json +1 -1
  344. package/src/storage/backwards_compatibility_tests/__snapshots__/FactStore.json +40 -0
  345. package/src/storage/backwards_compatibility_tests/__snapshots__/KeyStore.json +12 -12
  346. package/src/storage/backwards_compatibility_tests/__snapshots__/L2TipsKVStore.json +9 -15
  347. package/src/storage/backwards_compatibility_tests/__snapshots__/NoteStore.json +24 -4
  348. package/src/storage/backwards_compatibility_tests/__snapshots__/RecipientTaggingStore.json +11 -3
  349. package/src/storage/backwards_compatibility_tests/__snapshots__/SenderTaggingStore.json +12 -4
  350. package/src/storage/backwards_compatibility_tests/__snapshots__/TaggingSecretSourcesStore.json +30 -0
  351. package/src/storage/backwards_compatibility_tests/__snapshots__/opened_stores.json +29 -9
  352. package/src/storage/backwards_compatibility_tests/schema_tests.ts +141 -50
  353. package/src/storage/capsule_store/capsule_service.ts +8 -13
  354. package/src/storage/contract_store/contract_store.ts +86 -93
  355. package/src/storage/fact_store/fact_service.ts +69 -0
  356. package/src/storage/fact_store/fact_store.ts +487 -0
  357. package/src/storage/fact_store/fact_store_keys.ts +75 -0
  358. package/src/storage/fact_store/index.ts +15 -0
  359. package/src/storage/fact_store/origin_state.ts +84 -0
  360. package/src/storage/fact_store/stored_fact.ts +80 -0
  361. package/src/storage/index.ts +2 -1
  362. package/src/storage/metadata.ts +1 -1
  363. package/src/storage/note_store/note_store.ts +226 -187
  364. package/src/storage/note_store/stored_note.ts +5 -27
  365. package/src/storage/open_pxe_stores.ts +6 -3
  366. package/src/storage/private_event_store/private_event_store.ts +49 -55
  367. package/src/storage/store_identity.ts +72 -0
  368. package/src/storage/tagging_store/index.ts +1 -1
  369. package/src/storage/tagging_store/sender_tagging_store.ts +62 -15
  370. package/src/storage/tagging_store/tagging_secret_sources_store.ts +138 -0
  371. package/src/tagging/constants.ts +30 -10
  372. package/src/tagging/index.ts +1 -1
  373. package/src/tagging/recipient_sync/sync_tagged_private_logs.ts +148 -30
  374. package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +1 -1
  375. package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +6 -2
  376. package/src/tagging/testing/tag_query_test_utils.ts +11 -0
  377. package/dest/contract_function_simulator/oracle/oracle.d.ts +0 -89
  378. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +0 -1
  379. package/dest/contract_function_simulator/oracle/oracle.js +0 -552
  380. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +0 -6
  381. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +0 -1
  382. package/dest/contract_function_simulator/proxied_contract_data_source.js +0 -51
  383. package/dest/contract_sync/contract_sync_service.d.ts +0 -42
  384. package/dest/contract_sync/contract_sync_service.d.ts.map +0 -1
  385. package/dest/contract_sync/helpers.d.ts +0 -27
  386. package/dest/contract_sync/helpers.d.ts.map +0 -1
  387. package/dest/contract_sync/helpers.js +0 -53
  388. package/dest/messages/message_context_service.d.ts +0 -17
  389. package/dest/messages/message_context_service.d.ts.map +0 -1
  390. package/dest/storage/tagging_store/sender_address_book_store.d.ts +0 -14
  391. package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +0 -1
  392. package/dest/storage/tagging_store/sender_address_book_store.js +0 -36
  393. package/src/contract_function_simulator/oracle/oracle.ts +0 -711
  394. package/src/contract_function_simulator/proxied_contract_data_source.ts +0 -60
  395. package/src/contract_sync/helpers.ts +0 -86
  396. package/src/storage/backwards_compatibility_tests/__snapshots__/SenderAddressBookStore.json +0 -16
  397. package/src/storage/tagging_store/sender_address_book_store.ts +0 -48
@@ -3,6 +3,7 @@ import { ARCHIVE_HEIGHT, NOTE_HASH_TREE_HEIGHT } from '@aztec/constants';
3
3
  import { Fr } from '@aztec/foundation/curves/bn254';
4
4
  import { FieldReader } from '@aztec/foundation/serialize';
5
5
  import { toACVMField } from '@aztec/simulator/client';
6
+ import type { UnsiloedMessageNullifier } from '@aztec/stdlib/messaging';
6
7
 
7
8
  import {
8
9
  ARRAY,
@@ -12,22 +13,21 @@ import {
12
13
  BLOCK_NUMBER,
13
14
  BOOL,
14
15
  BOUNDED_VEC,
15
- BUFFER,
16
- BYTE,
17
16
  CALL_PRIVATE_RESULT,
18
- CONTRACT_CLASS_LOG_INPUT,
17
+ CONTRACT_CLASS_LOG,
19
18
  CONTRACT_INSTANCE,
20
19
  DELIVERY_MODE,
21
20
  EPHEMERAL_ARRAY,
22
21
  EVENT_VALIDATION_REQUEST,
22
+ FACT_COLLECTION,
23
23
  FIELD,
24
+ FIXED_ARRAY,
24
25
  FUNCTION_SELECTOR,
25
26
  type InputSlot,
26
27
  KEY_VALIDATION_REQUEST,
27
28
  LOG_RETRIEVAL_REQUEST,
28
29
  LOG_RETRIEVAL_RESPONSE,
29
30
  MEMBERSHIP_WITNESS,
30
- MESSAGE_CONTEXT,
31
31
  MESSAGE_LOAD_ORACLE_INPUTS,
32
32
  type MaybePromise,
33
33
  NOTE,
@@ -35,19 +35,25 @@ import {
35
35
  NOTE_VALIDATION_REQUEST,
36
36
  NULLIFIER_MEMBERSHIP_WITNESS,
37
37
  OPTION,
38
+ ORIGIN_BLOCK,
38
39
  type OutputSlot,
39
40
  PENDING_TAGGED_LOG,
40
41
  POINT,
41
42
  PROVIDED_SECRET,
42
43
  PUBLIC_DATA_WITNESS,
43
44
  PUBLIC_KEYS_AND_PARTIAL_ADDRESS,
45
+ RESOLVED_TAGGING_STRATEGY,
46
+ RESOLVED_TX,
44
47
  STR,
48
+ STRUCT,
45
49
  TX_EFFECT,
46
50
  TX_HASH,
47
51
  type TypeMapping,
52
+ U8,
48
53
  U32,
49
54
  UTILITY_CONTEXT,
50
55
  assertReadersConsumed,
56
+ slotsOf,
51
57
  } from './oracle_type_mappings.js';
52
58
 
53
59
  export {
@@ -57,9 +63,10 @@ export {
57
63
  BLOCK_NUMBER,
58
64
  BOOL,
59
65
  BOUNDED_VEC,
60
- BUFFER,
61
- BYTE,
66
+ U8,
67
+ CONTRACT_CLASS_LOG,
62
68
  DELIVERY_MODE,
69
+ RESOLVED_TAGGING_STRATEGY,
63
70
  EPHEMERAL_ARRAY,
64
71
  EVENT_VALIDATION_REQUEST,
65
72
  FIELD,
@@ -67,17 +74,19 @@ export {
67
74
  LOG_RETRIEVAL_REQUEST,
68
75
  LOG_RETRIEVAL_RESPONSE,
69
76
  MEMBERSHIP_WITNESS,
70
- MESSAGE_CONTEXT,
71
77
  NOTE_VALIDATION_REQUEST,
72
78
  OPTION,
73
79
  PENDING_TAGGED_LOG,
74
80
  POINT,
75
81
  PROVIDED_SECRET,
82
+ RESOLVED_TX,
76
83
  STR,
77
84
  U32,
85
+ slotsOf,
78
86
  type InputSlot,
79
87
  type MaybePromise,
80
88
  type OutputSlot,
89
+ type SlotShape,
81
90
  type TypeMapping,
82
91
  } from './oracle_type_mappings.js';
83
92
 
@@ -103,7 +112,10 @@ export const ORACLE_REGISTRY = {
103
112
  aztec_utl_getUtilityContext: makeEntry({ returnType: UTILITY_CONTEXT }),
104
113
 
105
114
  aztec_utl_getKeyValidationRequest: makeEntry({
106
- params: [{ name: 'pkMHash', type: FIELD }],
115
+ params: [
116
+ { name: 'pkMHash', type: FIELD },
117
+ { name: 'keyIndex', type: FIELD },
118
+ ],
107
119
  returnType: KEY_VALIDATION_REQUEST,
108
120
  }),
109
121
 
@@ -128,6 +140,14 @@ export const ORACLE_REGISTRY = {
128
140
  returnType: OPTION(MEMBERSHIP_WITNESS(ARCHIVE_HEIGHT)),
129
141
  }),
130
142
 
143
+ aztec_utl_areBlockHashesInArchive: makeEntry({
144
+ params: [
145
+ { name: 'anchorBlockHash', type: BLOCK_HASH },
146
+ { name: 'blockHashes', type: EPHEMERAL_ARRAY(BLOCK_HASH) },
147
+ ],
148
+ returnType: EPHEMERAL_ARRAY(BOOL),
149
+ }),
150
+
131
151
  aztec_utl_getNullifierMembershipWitness: makeEntry({
132
152
  params: [
133
153
  { name: 'blockHash', type: BLOCK_HASH },
@@ -172,11 +192,18 @@ export const ORACLE_REGISTRY = {
172
192
  returnType: BOOL,
173
193
  }),
174
194
 
175
- aztec_utl_getL1ToL2MembershipWitness: makeEntry({
195
+ aztec_utl_getL1ToL2MembershipWitnessV2: makeEntry({
176
196
  params: [
177
- { name: 'contractAddress', type: AZTEC_ADDRESS },
178
197
  { name: 'messageHash', type: FIELD },
179
- { name: 'secret', type: FIELD },
198
+ {
199
+ name: 'nullifier',
200
+ type: OPTION(
201
+ STRUCT<UnsiloedMessageNullifier>([
202
+ { name: 'contractAddress', type: AZTEC_ADDRESS },
203
+ { name: 'nullifier', type: FIELD },
204
+ ]),
205
+ ),
206
+ },
180
207
  ],
181
208
  returnType: MESSAGE_LOAD_ORACLE_INPUTS,
182
209
  }),
@@ -214,7 +241,7 @@ export const ORACLE_REGISTRY = {
214
241
  returnType: BOUNDED_VEC(NOTE),
215
242
  }),
216
243
 
217
- aztec_utl_getPendingTaggedLogs: makeEntry({
244
+ aztec_utl_getPendingTaggedLogsV2: makeEntry({
218
245
  params: [
219
246
  { name: 'scope', type: AZTEC_ADDRESS },
220
247
  { name: 'providedSecrets', type: EPHEMERAL_ARRAY(PROVIDED_SECRET) },
@@ -230,14 +257,14 @@ export const ORACLE_REGISTRY = {
230
257
  ],
231
258
  }),
232
259
 
233
- aztec_utl_getLogsByTag: makeEntry({
260
+ aztec_utl_getLogsByTagV2: makeEntry({
234
261
  params: [{ name: 'requests', type: EPHEMERAL_ARRAY(LOG_RETRIEVAL_REQUEST) }],
235
262
  returnType: EPHEMERAL_ARRAY(EPHEMERAL_ARRAY(LOG_RETRIEVAL_RESPONSE)),
236
263
  }),
237
264
 
238
- aztec_utl_getMessageContextsByTxHash: makeEntry({
265
+ aztec_utl_getResolvedTxs: makeEntry({
239
266
  params: [{ name: 'requests', type: EPHEMERAL_ARRAY(FIELD) }],
240
- returnType: EPHEMERAL_ARRAY(OPTION(MESSAGE_CONTEXT)),
267
+ returnType: EPHEMERAL_ARRAY(OPTION(RESOLVED_TX)),
241
268
  }),
242
269
 
243
270
  aztec_utl_getTxEffect: makeEntry({
@@ -245,6 +272,11 @@ export const ORACLE_REGISTRY = {
245
272
  returnType: OPTION(TX_EFFECT),
246
273
  }),
247
274
 
275
+ aztec_utl_getTxEffects: makeEntry({
276
+ params: [{ name: 'txHashes', type: EPHEMERAL_ARRAY(TX_HASH) }],
277
+ returnType: EPHEMERAL_ARRAY(OPTION(TX_EFFECT)),
278
+ }),
279
+
248
280
  aztec_utl_setCapsule: makeEntry({
249
281
  params: [
250
282
  { name: 'contractAddress', type: AZTEC_ADDRESS },
@@ -284,11 +316,11 @@ export const ORACLE_REGISTRY = {
284
316
 
285
317
  aztec_utl_decryptAes128: makeEntry({
286
318
  params: [
287
- { name: 'ciphertext', type: BOUNDED_VEC(BYTE) },
288
- { name: 'iv', type: BUFFER(8) },
289
- { name: 'symKey', type: BUFFER(8) },
319
+ { name: 'ciphertext', type: BOUNDED_VEC(U8) },
320
+ { name: 'iv', type: FIXED_ARRAY(U8, 16) },
321
+ { name: 'symKey', type: FIXED_ARRAY(U8, 16) },
290
322
  ],
291
- returnType: OPTION(BOUNDED_VEC(BYTE)),
323
+ returnType: OPTION(BOUNDED_VEC(U8)),
292
324
  }),
293
325
 
294
326
  aztec_utl_getSharedSecrets: makeEntry({
@@ -311,6 +343,46 @@ export const ORACLE_REGISTRY = {
311
343
  params: [{ name: 'data', type: ARRAY(FIELD) }],
312
344
  }),
313
345
 
346
+ aztec_utl_recordFact: makeEntry({
347
+ params: [
348
+ { name: 'contractAddress', type: AZTEC_ADDRESS },
349
+ { name: 'scope', type: AZTEC_ADDRESS },
350
+ { name: 'factCollectionTypeId', type: FIELD },
351
+ { name: 'factCollectionId', type: FIELD },
352
+ { name: 'factTypeId', type: FIELD },
353
+ { name: 'payload', type: EPHEMERAL_ARRAY(FIELD) },
354
+ { name: 'originBlock', type: OPTION(ORIGIN_BLOCK) },
355
+ ],
356
+ }),
357
+
358
+ aztec_utl_deleteFactCollection: makeEntry({
359
+ params: [
360
+ { name: 'contractAddress', type: AZTEC_ADDRESS },
361
+ { name: 'scope', type: AZTEC_ADDRESS },
362
+ { name: 'factCollectionTypeId', type: FIELD },
363
+ { name: 'factCollectionId', type: FIELD },
364
+ ],
365
+ }),
366
+
367
+ aztec_utl_getFactCollection: makeEntry({
368
+ params: [
369
+ { name: 'contractAddress', type: AZTEC_ADDRESS },
370
+ { name: 'scope', type: AZTEC_ADDRESS },
371
+ { name: 'factCollectionTypeId', type: FIELD },
372
+ { name: 'factCollectionId', type: FIELD },
373
+ ],
374
+ returnType: OPTION(FACT_COLLECTION),
375
+ }),
376
+
377
+ aztec_utl_getFactCollectionsByType: makeEntry({
378
+ params: [
379
+ { name: 'contractAddress', type: AZTEC_ADDRESS },
380
+ { name: 'scope', type: AZTEC_ADDRESS },
381
+ { name: 'factCollectionTypeId', type: FIELD },
382
+ ],
383
+ returnType: EPHEMERAL_ARRAY(FACT_COLLECTION),
384
+ }),
385
+
314
386
  aztec_utl_callUtilityFunction: makeEntry({
315
387
  params: [
316
388
  { name: 'contractAddress', type: AZTEC_ADDRESS },
@@ -365,6 +437,51 @@ export const ORACLE_REGISTRY = {
365
437
  params: [{ name: 'slot', type: FIELD }],
366
438
  }),
367
439
 
440
+ aztec_utl_pushTransient: makeEntry({
441
+ params: [
442
+ { name: 'slot', type: FIELD },
443
+ { name: 'elements', type: ARRAY(FIELD) },
444
+ ],
445
+ returnType: U32,
446
+ }),
447
+
448
+ aztec_utl_popTransient: makeEntry({
449
+ params: [{ name: 'slot', type: FIELD }],
450
+ returnType: ARRAY(FIELD),
451
+ }),
452
+
453
+ aztec_utl_getTransient: makeEntry({
454
+ params: [
455
+ { name: 'slot', type: FIELD },
456
+ { name: 'index', type: U32 },
457
+ ],
458
+ returnType: ARRAY(FIELD),
459
+ }),
460
+
461
+ aztec_utl_setTransient: makeEntry({
462
+ params: [
463
+ { name: 'slot', type: FIELD },
464
+ { name: 'index', type: U32 },
465
+ { name: 'elements', type: ARRAY(FIELD) },
466
+ ],
467
+ }),
468
+
469
+ aztec_utl_getTransientLen: makeEntry({
470
+ params: [{ name: 'slot', type: FIELD }],
471
+ returnType: U32,
472
+ }),
473
+
474
+ aztec_utl_removeTransient: makeEntry({
475
+ params: [
476
+ { name: 'slot', type: FIELD },
477
+ { name: 'index', type: U32 },
478
+ ],
479
+ }),
480
+
481
+ aztec_utl_clearTransient: makeEntry({
482
+ params: [{ name: 'slot', type: FIELD }],
483
+ }),
484
+
368
485
  aztec_prv_setHashPreimage: makeEntry({
369
486
  params: [
370
487
  { name: 'values', type: ARRAY(FIELD) },
@@ -411,7 +528,7 @@ export const ORACLE_REGISTRY = {
411
528
 
412
529
  aztec_prv_notifyCreatedContractClassLog: makeEntry({
413
530
  params: [
414
- { name: 'log', type: CONTRACT_CLASS_LOG_INPUT },
531
+ { name: 'log', type: CONTRACT_CLASS_LOG },
415
532
  { name: 'counter', type: U32 },
416
533
  ],
417
534
  }),
@@ -457,28 +574,24 @@ export const ORACLE_REGISTRY = {
457
574
  }),
458
575
 
459
576
  aztec_prv_getSenderForTags: makeEntry({ returnType: OPTION(AZTEC_ADDRESS) }),
460
- } satisfies Record<string, OracleRegistryEntry>;
461
577
 
462
- /**
463
- * Deserializes oracle inputs, calls the handler with typed params, and serializes the result.
464
- */
465
- export async function callHandler<K extends keyof typeof ORACLE_REGISTRY>({
466
- oracle,
467
- inputs,
468
- handler,
469
- }: {
470
- oracle: K;
471
- inputs: InputSlot[];
472
- handler: (
473
- params: ParamTypes<ReturnType<(typeof ORACLE_REGISTRY)[K]['deserializeParams']>>,
474
- ) => MaybePromise<Parameters<(typeof ORACLE_REGISTRY)[K]['serializeReturn']>[0]>;
475
- }): Promise<OutputSlot[]> {
476
- const entry = ORACLE_REGISTRY[oracle] as OracleRegistryEntry;
477
- const named = entry.deserializeParams(inputs);
478
- const positional = named.map(p => p.value);
479
- const result = await handler(positional as any);
480
- return entry.serializeReturn(result);
481
- }
578
+ aztec_prv_resolveTaggingStrategy: makeEntry({
579
+ params: [
580
+ { name: 'sender', type: AZTEC_ADDRESS },
581
+ { name: 'recipient', type: AZTEC_ADDRESS },
582
+ { name: 'deliveryMode', type: DELIVERY_MODE },
583
+ ],
584
+ returnType: RESOLVED_TAGGING_STRATEGY,
585
+ }),
586
+
587
+ aztec_prv_resolveCustomRequest: makeEntry({
588
+ params: [
589
+ { name: 'kind', type: FIELD },
590
+ { name: 'payload', type: ARRAY(FIELD) },
591
+ ],
592
+ returnType: ARRAY(FIELD),
593
+ }),
594
+ } satisfies Record<string, OracleRegistryEntry>;
482
595
 
483
596
  // ─── Registry Infrastructure ─────────────────────────────────────────────────
484
597
 
@@ -496,6 +609,10 @@ export interface OracleRegistryEntry<
496
609
  deserializeParams(inputs: InputSlot[]): TDeserializedParams;
497
610
  /** Serialize a handler return value into ACVM output slots. */
498
611
  serializeReturn(result: TReturnValue): OutputSlot[];
612
+ /** The ordered named parameters with their {@link TypeMapping}s. Lets callers introspect the oracle's wire ABI. */
613
+ readonly params: readonly RegistryParam[];
614
+ /** The return {@link TypeMapping}, or `undefined` for oracles that return nothing. */
615
+ readonly returnType?: TypeMapping<TReturnValue>;
499
616
  }
500
617
 
501
618
  export function makeEntry<const TParams extends RegistryParam[] = [], TReturnValue = void>({
@@ -506,16 +623,18 @@ export function makeEntry<const TParams extends RegistryParam[] = [], TReturnVal
506
623
  returnType?: TypeMapping<TReturnValue>;
507
624
  } = {}): OracleRegistryEntry<InferDeserializedParams<TParams>, TReturnValue> {
508
625
  return {
626
+ params: params ?? [],
627
+ returnType,
509
628
  deserializeParams(inputs: InputSlot[]): InferDeserializedParams<TParams> {
510
629
  const resolvedParams: RegistryParam[] = params ?? [];
511
630
  // Walk the input slots left-to-right, advancing by each param's slot count.
512
631
  let offset = 0;
513
- return resolvedParams.map(param => {
632
+ const named = resolvedParams.map(param => {
514
633
  if (!param.type.deserialization) {
515
634
  throw new Error(`Param '${param.name}' has no deserialization defined`);
516
635
  }
517
636
  // Collect the slots for this param and wrap each in a FieldReader.
518
- const slotCount = param.type.deserialization.slots;
637
+ const slotCount = slotsOf(param.type);
519
638
  const readers = inputs
520
639
  .slice(offset, offset + slotCount)
521
640
  .map(slot => new FieldReader(slot.map(hex => Fr.fromString(hex))));
@@ -525,7 +644,13 @@ export function makeEntry<const TParams extends RegistryParam[] = [], TReturnVal
525
644
  const value = param.type.deserialization.fn(readers);
526
645
  assertReadersConsumed(readers);
527
646
  return { name: param.name, value };
528
- }) as unknown as InferDeserializedParams<TParams>;
647
+ });
648
+ // Every input slot must be specified by a param: oracles whose Noir decl passes an extra field must declare it
649
+ // (the handler can ignore it). Otherwise an under-declared shape would silently drop a field into nothing.
650
+ if (offset !== inputs.length) {
651
+ throw new Error(`Oracle received ${inputs.length} input slot(s) but the registry specifies ${offset}`);
652
+ }
653
+ return named as unknown as InferDeserializedParams<TParams>;
529
654
  },
530
655
  serializeReturn(result: TReturnValue): OutputSlot[] {
531
656
  if (returnType?.serialization === undefined) {
@@ -539,7 +664,7 @@ export function makeEntry<const TParams extends RegistryParam[] = [], TReturnVal
539
664
  }
540
665
 
541
666
  /** A named oracle parameter with its TypeMapping. */
542
- interface RegistryParam<TName extends string = string, T = any> {
667
+ export interface RegistryParam<TName extends string = string, T = any> {
543
668
  name: TName;
544
669
  type: TypeMapping<T>;
545
670
  }
@@ -565,14 +690,14 @@ export type ParamTypes<T extends readonly NamedValue[]> = {
565
690
  * @example `InferDeserializedParams<[RegistryParam<'addr', AztecAddress>, RegistryParam<'slot', Fr>]>`
566
691
  * → `[NamedValue<'addr', AztecAddress>, NamedValue<'slot', Fr>]`
567
692
  */
568
- type InferDeserializedParams<T extends RegistryParam[]> = {
693
+ export type InferDeserializedParams<T extends RegistryParam[]> = {
569
694
  [K in keyof T]: T[K] extends RegistryParam<infer N, infer V> ? NamedValue<N, V> : never;
570
695
  };
571
696
 
572
697
  // ─── Derived Handler Interfaces ─────────────────────────────────────────────
573
698
 
574
699
  /** Strips the `aztec_{scope}_` prefix from an oracle key to get the handler method name. */
575
- export type StripOraclePrefix<K extends string> = K extends `aztec_${string}_${infer M}` ? M : never;
700
+ type StripOraclePrefix<K extends string> = K extends `aztec_${string}_${infer M}` ? M : never;
576
701
 
577
702
  /** Derives the handler function signature from a registry entry's deserialization/serialization types. */
578
703
  type HandlerFn<E extends OracleRegistryEntry> = (