@aztec/pxe 0.0.1-commit.c2eed6949 → 0.0.1-commit.c52d6e7

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 (541) hide show
  1. package/dest/bin/check_oracle_version.js +11 -118
  2. package/dest/bin/index.d.ts +2 -0
  3. package/dest/bin/index.d.ts.map +1 -0
  4. package/dest/bin/index.js +1 -0
  5. package/dest/bin/oracle_version_helpers.d.ts +20 -0
  6. package/dest/bin/oracle_version_helpers.d.ts.map +1 -0
  7. package/dest/bin/oracle_version_helpers.js +25 -0
  8. package/dest/block_synchronizer/block_stream_source.d.ts +10 -0
  9. package/dest/block_synchronizer/block_stream_source.d.ts.map +1 -0
  10. package/dest/block_synchronizer/block_stream_source.js +37 -0
  11. package/dest/block_synchronizer/block_synchronizer.d.ts +22 -16
  12. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
  13. package/dest/block_synchronizer/block_synchronizer.js +71 -28
  14. package/dest/config/index.d.ts +8 -1
  15. package/dest/config/index.d.ts.map +1 -1
  16. package/dest/config/index.js +13 -14
  17. package/dest/config/package_info.js +1 -1
  18. package/dest/contract/contract_class_service.d.ts +24 -0
  19. package/dest/contract/contract_class_service.d.ts.map +1 -0
  20. package/dest/contract/contract_class_service.js +36 -0
  21. package/dest/contract/contract_sync_service.d.ts +48 -0
  22. package/dest/contract/contract_sync_service.d.ts.map +1 -0
  23. package/dest/contract/contract_sync_service.js +116 -0
  24. package/dest/contract/helpers.d.ts +7 -0
  25. package/dest/contract/helpers.d.ts.map +1 -0
  26. package/dest/contract/helpers.js +20 -0
  27. package/dest/contract/skip_sync_contracts.d.ts +11 -0
  28. package/dest/contract/skip_sync_contracts.d.ts.map +1 -0
  29. package/dest/contract/skip_sync_contracts.js +18 -0
  30. package/dest/contract_function_simulator/anchored_contract_data.d.ts +36 -0
  31. package/dest/contract_function_simulator/anchored_contract_data.d.ts.map +1 -0
  32. package/dest/contract_function_simulator/anchored_contract_data.js +54 -0
  33. package/dest/contract_function_simulator/contract_function_simulator.d.ts +27 -28
  34. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  35. package/dest/contract_function_simulator/contract_function_simulator.js +86 -59
  36. package/dest/contract_function_simulator/ephemeral_array_service.d.ts +28 -0
  37. package/dest/contract_function_simulator/ephemeral_array_service.d.ts.map +1 -0
  38. package/dest/contract_function_simulator/ephemeral_array_service.js +78 -0
  39. package/dest/contract_function_simulator/execution_note_cache.d.ts +4 -10
  40. package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
  41. package/dest/contract_function_simulator/execution_note_cache.js +8 -28
  42. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +5 -9
  43. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -1
  44. package/dest/contract_function_simulator/execution_tagging_index_cache.js +3 -7
  45. package/dest/contract_function_simulator/index.d.ts +26 -6
  46. package/dest/contract_function_simulator/index.d.ts.map +1 -1
  47. package/dest/contract_function_simulator/index.js +11 -4
  48. package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts +29 -0
  49. package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts.map +1 -0
  50. package/dest/contract_function_simulator/noir-structs/bounded_vec.js +30 -0
  51. package/dest/contract_function_simulator/noir-structs/contract_class_log_data.d.ts +9 -0
  52. package/dest/contract_function_simulator/noir-structs/contract_class_log_data.d.ts.map +1 -0
  53. package/dest/contract_function_simulator/noir-structs/contract_class_log_data.js +1 -0
  54. package/dest/contract_function_simulator/noir-structs/embedded_curve_point.d.ts +7 -0
  55. package/dest/contract_function_simulator/noir-structs/embedded_curve_point.d.ts.map +1 -0
  56. package/dest/contract_function_simulator/noir-structs/embedded_curve_point.js +1 -0
  57. package/dest/contract_function_simulator/noir-structs/ephemeral_array.d.ts +37 -0
  58. package/dest/contract_function_simulator/noir-structs/ephemeral_array.d.ts.map +1 -0
  59. package/dest/contract_function_simulator/noir-structs/ephemeral_array.js +59 -0
  60. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +5 -5
  61. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
  62. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +7 -9
  63. package/dest/contract_function_simulator/noir-structs/fact.d.ts +16 -0
  64. package/dest/contract_function_simulator/noir-structs/fact.d.ts.map +1 -0
  65. package/dest/contract_function_simulator/noir-structs/fact.js +6 -0
  66. package/dest/contract_function_simulator/noir-structs/fact_collection.d.ts +27 -0
  67. package/dest/contract_function_simulator/noir-structs/fact_collection.d.ts.map +1 -0
  68. package/dest/contract_function_simulator/noir-structs/fact_collection.js +31 -0
  69. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +19 -10
  70. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts.map +1 -1
  71. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +12 -24
  72. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +11 -9
  73. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -1
  74. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +2 -61
  75. package/dest/contract_function_simulator/noir-structs/note_data.d.ts +27 -0
  76. package/dest/contract_function_simulator/noir-structs/note_data.d.ts.map +1 -0
  77. package/dest/contract_function_simulator/noir-structs/note_data.js +3 -0
  78. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +5 -5
  79. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
  80. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +8 -10
  81. package/dest/contract_function_simulator/noir-structs/option.d.ts +59 -0
  82. package/dest/contract_function_simulator/noir-structs/option.d.ts.map +1 -0
  83. package/dest/contract_function_simulator/noir-structs/option.js +67 -0
  84. package/dest/contract_function_simulator/noir-structs/origin_block.d.ts +11 -0
  85. package/dest/contract_function_simulator/noir-structs/origin_block.d.ts.map +1 -0
  86. package/dest/contract_function_simulator/noir-structs/origin_block.js +5 -0
  87. package/dest/contract_function_simulator/noir-structs/pending_tagged_log.d.ts +11 -0
  88. package/dest/contract_function_simulator/noir-structs/pending_tagged_log.d.ts.map +1 -0
  89. package/dest/contract_function_simulator/noir-structs/pending_tagged_log.js +4 -0
  90. package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts +8 -0
  91. package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts.map +1 -0
  92. package/dest/contract_function_simulator/noir-structs/provided_secret.js +1 -0
  93. package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.d.ts +28 -0
  94. package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.d.ts.map +1 -0
  95. package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.js +50 -0
  96. package/dest/contract_function_simulator/noir-structs/resolved_tx.d.ts +19 -0
  97. package/dest/contract_function_simulator/noir-structs/resolved_tx.d.ts.map +1 -0
  98. package/dest/contract_function_simulator/noir-structs/resolved_tx.js +9 -0
  99. package/dest/contract_function_simulator/noir-structs/tx_effect_data.d.ts +15 -0
  100. package/dest/contract_function_simulator/noir-structs/tx_effect_data.d.ts.map +1 -0
  101. package/dest/contract_function_simulator/noir-structs/tx_effect_data.js +5 -0
  102. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +6 -11
  103. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -1
  104. package/dest/contract_function_simulator/noir-structs/utility_context.js +1 -20
  105. package/dest/contract_function_simulator/oracle/acir_callback.d.ts +21 -0
  106. package/dest/contract_function_simulator/oracle/acir_callback.d.ts.map +1 -0
  107. package/dest/contract_function_simulator/oracle/acir_callback.js +115 -0
  108. package/dest/contract_function_simulator/oracle/index.d.ts +2 -13
  109. package/dest/contract_function_simulator/oracle/index.d.ts.map +1 -1
  110. package/dest/contract_function_simulator/oracle/index.js +1 -1
  111. package/dest/contract_function_simulator/oracle/interfaces.d.ts +15 -103
  112. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
  113. package/dest/contract_function_simulator/oracle/interfaces.js +2 -2
  114. package/dest/contract_function_simulator/oracle/legacy_oracle_registry.d.ts +39 -0
  115. package/dest/contract_function_simulator/oracle/legacy_oracle_registry.d.ts.map +1 -0
  116. package/dest/contract_function_simulator/oracle/legacy_oracle_registry.js +107 -0
  117. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +3 -14
  118. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -1
  119. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.js +1 -24
  120. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +2 -2
  121. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -1
  122. package/dest/contract_function_simulator/oracle/note_packing_utils.js +2 -2
  123. package/dest/contract_function_simulator/oracle/oracle_registry.d.ts +139 -0
  124. package/dest/contract_function_simulator/oracle/oracle_registry.d.ts.map +1 -0
  125. package/dest/contract_function_simulator/oracle/oracle_registry.js +1016 -0
  126. package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts +274 -0
  127. package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts.map +1 -0
  128. package/dest/contract_function_simulator/oracle/oracle_type_mappings.js +1253 -0
  129. package/dest/contract_function_simulator/oracle/private_execution.d.ts +1 -1
  130. package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
  131. package/dest/contract_function_simulator/oracle/private_execution.js +3 -4
  132. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +52 -42
  133. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  134. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +197 -65
  135. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +164 -77
  136. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  137. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +607 -193
  138. package/dest/contract_function_simulator/pick_notes.d.ts +1 -1
  139. package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -1
  140. package/dest/contract_function_simulator/pick_notes.js +20 -3
  141. package/dest/contract_function_simulator/transient_array_service.d.ts +31 -0
  142. package/dest/contract_function_simulator/transient_array_service.d.ts.map +1 -0
  143. package/dest/contract_function_simulator/transient_array_service.js +62 -0
  144. package/dest/contract_logging.d.ts +9 -4
  145. package/dest/contract_logging.d.ts.map +1 -1
  146. package/dest/contract_logging.js +21 -6
  147. package/dest/debug/pxe_debug_utils.d.ts +4 -9
  148. package/dest/debug/pxe_debug_utils.d.ts.map +1 -1
  149. package/dest/debug/pxe_debug_utils.js +0 -6
  150. package/dest/entrypoints/client/bundle/index.d.ts +2 -2
  151. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  152. package/dest/entrypoints/client/bundle/index.js +1 -1
  153. package/dest/entrypoints/client/bundle/utils.d.ts +2 -2
  154. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  155. package/dest/entrypoints/client/bundle/utils.js +27 -8
  156. package/dest/entrypoints/client/lazy/index.d.ts +2 -2
  157. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  158. package/dest/entrypoints/client/lazy/index.js +1 -1
  159. package/dest/entrypoints/client/lazy/utils.d.ts +2 -2
  160. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  161. package/dest/entrypoints/client/lazy/utils.js +27 -8
  162. package/dest/entrypoints/client/store.d.ts +14 -0
  163. package/dest/entrypoints/client/store.d.ts.map +1 -0
  164. package/dest/entrypoints/client/store.js +42 -0
  165. package/dest/entrypoints/pxe_creation_options.d.ts +16 -2
  166. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  167. package/dest/entrypoints/pxe_creation_options.js +3 -1
  168. package/dest/entrypoints/server/index.d.ts +7 -4
  169. package/dest/entrypoints/server/index.d.ts.map +1 -1
  170. package/dest/entrypoints/server/index.js +5 -3
  171. package/dest/entrypoints/server/store.d.ts +18 -0
  172. package/dest/entrypoints/server/store.d.ts.map +1 -0
  173. package/dest/entrypoints/server/store.js +28 -0
  174. package/dest/entrypoints/server/utils.d.ts +4 -3
  175. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  176. package/dest/entrypoints/server/utils.js +28 -8
  177. package/dest/error_enriching.d.ts +5 -3
  178. package/dest/error_enriching.d.ts.map +1 -1
  179. package/dest/error_enriching.js +13 -11
  180. package/dest/events/event_service.d.ts +21 -5
  181. package/dest/events/event_service.d.ts.map +1 -1
  182. package/dest/events/event_service.js +50 -17
  183. package/dest/events/private_event_filter_validator.d.ts +3 -2
  184. package/dest/events/private_event_filter_validator.d.ts.map +1 -1
  185. package/dest/events/private_event_filter_validator.js +15 -0
  186. package/dest/hooks/authorize_utility_call.d.ts +41 -0
  187. package/dest/hooks/authorize_utility_call.d.ts.map +1 -0
  188. package/dest/hooks/authorize_utility_call.js +4 -0
  189. package/dest/hooks/execution_hooks.d.ts +62 -0
  190. package/dest/hooks/execution_hooks.d.ts.map +1 -0
  191. package/dest/hooks/execution_hooks.js +9 -0
  192. package/dest/hooks/index.d.ts +5 -0
  193. package/dest/hooks/index.d.ts.map +1 -0
  194. package/dest/hooks/index.js +2 -0
  195. package/dest/hooks/resolve_custom_request.d.ts +23 -0
  196. package/dest/hooks/resolve_custom_request.d.ts.map +1 -0
  197. package/dest/hooks/resolve_custom_request.js +3 -0
  198. package/dest/hooks/resolve_tagging_secret_strategy.d.ts +50 -0
  199. package/dest/hooks/resolve_tagging_secret_strategy.d.ts.map +1 -0
  200. package/dest/hooks/resolve_tagging_secret_strategy.js +3 -0
  201. package/dest/logs/log_service.d.ts +21 -11
  202. package/dest/logs/log_service.d.ts.map +1 -1
  203. package/dest/logs/log_service.js +180 -82
  204. package/dest/messages/tx_resolver_service.d.ts +28 -0
  205. package/dest/messages/tx_resolver_service.d.ts.map +1 -0
  206. package/dest/messages/tx_resolver_service.js +61 -0
  207. package/dest/node/benchmarked_node.d.ts +20 -0
  208. package/dest/node/benchmarked_node.d.ts.map +1 -0
  209. package/dest/node/benchmarked_node.js +94 -0
  210. package/dest/node/caching_aztec_node.d.ts +24 -0
  211. package/dest/node/caching_aztec_node.d.ts.map +1 -0
  212. package/dest/node/caching_aztec_node.js +267 -0
  213. package/dest/notes/note_service.d.ts +34 -7
  214. package/dest/notes/note_service.d.ts.map +1 -1
  215. package/dest/notes/note_service.js +81 -57
  216. package/dest/notes_filter.d.ts +2 -3
  217. package/dest/notes_filter.d.ts.map +1 -1
  218. package/dest/oracle_version.d.ts +4 -3
  219. package/dest/oracle_version.d.ts.map +1 -1
  220. package/dest/oracle_version.js +20 -10
  221. package/dest/private_kernel/batch_planner.d.ts +47 -0
  222. package/dest/private_kernel/batch_planner.d.ts.map +1 -0
  223. package/dest/private_kernel/batch_planner.js +104 -0
  224. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +1 -1
  225. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -1
  226. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.js +7 -3
  227. package/dest/private_kernel/hints/test_utils.d.ts +1 -1
  228. package/dest/private_kernel/hints/test_utils.d.ts.map +1 -1
  229. package/dest/private_kernel/hints/test_utils.js +3 -4
  230. package/dest/private_kernel/private_kernel_execution_prover.d.ts +6 -2
  231. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  232. package/dest/private_kernel/private_kernel_execution_prover.js +203 -89
  233. package/dest/private_kernel/private_kernel_oracle.d.ts +12 -10
  234. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  235. package/dest/private_kernel/private_kernel_oracle.js +40 -26
  236. package/dest/pxe.d.ts +167 -55
  237. package/dest/pxe.d.ts.map +1 -1
  238. package/dest/pxe.js +366 -216
  239. package/dest/storage/allowed_scopes.d.ts +6 -0
  240. package/dest/storage/allowed_scopes.d.ts.map +1 -0
  241. package/dest/storage/allowed_scopes.js +7 -0
  242. package/dest/storage/anchor_block_store/anchor_block_store.d.ts +9 -6
  243. package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -1
  244. package/dest/storage/anchor_block_store/anchor_block_store.js +9 -7
  245. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.d.ts +42 -0
  246. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.d.ts.map +1 -0
  247. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.js +93 -0
  248. package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts +15 -0
  249. package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts.map +1 -0
  250. package/dest/storage/backwards_compatibility_tests/schema_tests.js +671 -0
  251. package/dest/storage/backwards_compatibility_tests/store_spy.d.ts +19 -0
  252. package/dest/storage/backwards_compatibility_tests/store_spy.d.ts.map +1 -0
  253. package/dest/storage/backwards_compatibility_tests/store_spy.js +63 -0
  254. package/dest/storage/capsule_store/capsule_service.d.ts +21 -0
  255. package/dest/storage/capsule_store/capsule_service.d.ts.map +1 -0
  256. package/dest/storage/capsule_store/capsule_service.js +47 -0
  257. package/dest/storage/capsule_store/capsule_store.d.ts +9 -9
  258. package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -1
  259. package/dest/storage/capsule_store/capsule_store.js +36 -28
  260. package/dest/storage/capsule_store/index.d.ts +2 -1
  261. package/dest/storage/capsule_store/index.d.ts.map +1 -1
  262. package/dest/storage/capsule_store/index.js +1 -0
  263. package/dest/storage/contract_store/contract_store.d.ts +27 -24
  264. package/dest/storage/contract_store/contract_store.d.ts.map +1 -1
  265. package/dest/storage/contract_store/contract_store.js +71 -99
  266. package/dest/storage/fact_store/fact_service.d.ts +22 -0
  267. package/dest/storage/fact_store/fact_service.d.ts.map +1 -0
  268. package/dest/storage/fact_store/fact_service.js +45 -0
  269. package/dest/storage/fact_store/fact_store.d.ts +95 -0
  270. package/dest/storage/fact_store/fact_store.d.ts.map +1 -0
  271. package/dest/storage/fact_store/fact_store.js +408 -0
  272. package/dest/storage/fact_store/fact_store_keys.d.ts +34 -0
  273. package/dest/storage/fact_store/fact_store_keys.d.ts.map +1 -0
  274. package/dest/storage/fact_store/fact_store_keys.js +50 -0
  275. package/dest/storage/fact_store/index.d.ts +6 -0
  276. package/dest/storage/fact_store/index.d.ts.map +1 -0
  277. package/dest/storage/fact_store/index.js +4 -0
  278. package/dest/storage/fact_store/origin_state.d.ts +59 -0
  279. package/dest/storage/fact_store/origin_state.d.ts.map +1 -0
  280. package/dest/storage/fact_store/origin_state.js +60 -0
  281. package/dest/storage/fact_store/stored_fact.d.ts +32 -0
  282. package/dest/storage/fact_store/stored_fact.d.ts.map +1 -0
  283. package/dest/storage/fact_store/stored_fact.js +64 -0
  284. package/dest/storage/index.d.ts +3 -2
  285. package/dest/storage/index.d.ts.map +1 -1
  286. package/dest/storage/index.js +2 -1
  287. package/dest/storage/metadata.d.ts +2 -2
  288. package/dest/storage/metadata.d.ts.map +1 -1
  289. package/dest/storage/metadata.js +1 -1
  290. package/dest/storage/note_store/note_store.d.ts +42 -33
  291. package/dest/storage/note_store/note_store.d.ts.map +1 -1
  292. package/dest/storage/note_store/note_store.js +199 -170
  293. package/dest/storage/note_store/stored_note.d.ts +3 -8
  294. package/dest/storage/note_store/stored_note.d.ts.map +1 -1
  295. package/dest/storage/note_store/stored_note.js +4 -20
  296. package/dest/storage/open_pxe_stores.d.ts +35 -0
  297. package/dest/storage/open_pxe_stores.d.ts.map +1 -0
  298. package/dest/storage/open_pxe_stores.js +29 -0
  299. package/dest/storage/private_event_store/private_event_store.d.ts +13 -16
  300. package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -1
  301. package/dest/storage/private_event_store/private_event_store.js +43 -43
  302. package/dest/storage/private_event_store/stored_private_event.js +1 -1
  303. package/dest/storage/store_identity.d.ts +35 -0
  304. package/dest/storage/store_identity.d.ts.map +1 -0
  305. package/dest/storage/store_identity.js +44 -0
  306. package/dest/storage/tagging_store/index.d.ts +2 -2
  307. package/dest/storage/tagging_store/index.d.ts.map +1 -1
  308. package/dest/storage/tagging_store/index.js +1 -1
  309. package/dest/storage/tagging_store/recipient_tagging_store.d.ts +6 -6
  310. package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -1
  311. package/dest/storage/tagging_store/sender_tagging_store.d.ts +44 -13
  312. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -1
  313. package/dest/storage/tagging_store/sender_tagging_store.js +84 -32
  314. package/dest/storage/tagging_store/tagging_secret_sources_store.d.ts +51 -0
  315. package/dest/storage/tagging_store/tagging_secret_sources_store.d.ts.map +1 -0
  316. package/dest/storage/tagging_store/tagging_secret_sources_store.js +105 -0
  317. package/dest/tagging/constants.d.ts +11 -2
  318. package/dest/tagging/constants.d.ts.map +1 -1
  319. package/dest/tagging/constants.js +38 -10
  320. package/dest/tagging/get_all_logs_by_tags.d.ts +55 -10
  321. package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -1
  322. package/dest/tagging/get_all_logs_by_tags.js +53 -35
  323. package/dest/tagging/index.d.ts +7 -6
  324. package/dest/tagging/index.d.ts.map +1 -1
  325. package/dest/tagging/index.js +6 -5
  326. package/dest/tagging/persist_sender_tagging_index_ranges.d.ts +29 -0
  327. package/dest/tagging/persist_sender_tagging_index_ranges.d.ts.map +1 -0
  328. package/dest/tagging/persist_sender_tagging_index_ranges.js +42 -0
  329. package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts +74 -0
  330. package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts.map +1 -0
  331. package/dest/tagging/recipient_sync/sync_tagged_private_logs.js +234 -0
  332. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts +3 -3
  333. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts.map +1 -1
  334. package/dest/tagging/reconcile_tagging_index_ranges.d.ts +36 -0
  335. package/dest/tagging/reconcile_tagging_index_ranges.d.ts.map +1 -0
  336. package/dest/tagging/reconcile_tagging_index_ranges.js +74 -0
  337. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +8 -6
  338. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -1
  339. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +24 -27
  340. package/dest/tagging/sender_sync/utils/classify_pending_txs.d.ts +22 -0
  341. package/dest/tagging/sender_sync/utils/classify_pending_txs.d.ts.map +1 -0
  342. package/dest/tagging/sender_sync/utils/classify_pending_txs.js +61 -0
  343. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +17 -7
  344. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -1
  345. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +37 -36
  346. package/dest/tagging/sender_sync/utils/resolve_pending_txs.d.ts +29 -0
  347. package/dest/tagging/sender_sync/utils/resolve_pending_txs.d.ts.map +1 -0
  348. package/dest/tagging/sender_sync/utils/resolve_pending_txs.js +41 -0
  349. package/dest/tagging/sender_sync/utils/test_utils.d.ts +16 -0
  350. package/dest/tagging/sender_sync/utils/test_utils.d.ts.map +1 -0
  351. package/dest/tagging/sender_sync/utils/test_utils.js +24 -0
  352. package/dest/tagging/testing/tag_query_test_utils.d.ts +6 -0
  353. package/dest/tagging/testing/tag_query_test_utils.d.ts.map +1 -0
  354. package/dest/tagging/testing/tag_query_test_utils.js +10 -0
  355. package/package.json +20 -17
  356. package/src/bin/check_oracle_version.ts +10 -143
  357. package/src/bin/index.ts +1 -0
  358. package/src/bin/oracle_version_helpers.ts +30 -0
  359. package/src/block_synchronizer/block_stream_source.ts +42 -0
  360. package/src/block_synchronizer/block_synchronizer.ts +86 -40
  361. package/src/config/index.ts +15 -8
  362. package/src/config/package_info.ts +1 -1
  363. package/src/contract/contract_class_service.ts +45 -0
  364. package/src/contract/contract_sync_service.ts +176 -0
  365. package/src/contract/helpers.ts +35 -0
  366. package/src/contract/skip_sync_contracts.ts +23 -0
  367. package/src/contract_function_simulator/anchored_contract_data.ts +74 -0
  368. package/src/contract_function_simulator/contract_function_simulator.ts +140 -75
  369. package/src/contract_function_simulator/ephemeral_array_service.ts +110 -0
  370. package/src/contract_function_simulator/execution_note_cache.ts +8 -29
  371. package/src/contract_function_simulator/execution_tagging_index_cache.ts +5 -9
  372. package/src/contract_function_simulator/index.ts +89 -5
  373. package/src/contract_function_simulator/noir-structs/bounded_vec.ts +43 -0
  374. package/src/contract_function_simulator/noir-structs/contract_class_log_data.ts +9 -0
  375. package/src/contract_function_simulator/noir-structs/embedded_curve_point.ts +4 -0
  376. package/src/contract_function_simulator/noir-structs/ephemeral_array.ts +66 -0
  377. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +5 -7
  378. package/src/contract_function_simulator/noir-structs/fact.ts +13 -0
  379. package/src/contract_function_simulator/noir-structs/fact_collection.ts +64 -0
  380. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +27 -20
  381. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +14 -61
  382. package/src/contract_function_simulator/noir-structs/note_data.ts +27 -0
  383. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +6 -8
  384. package/src/contract_function_simulator/noir-structs/option.ts +75 -0
  385. package/src/contract_function_simulator/noir-structs/origin_block.ts +8 -0
  386. package/src/contract_function_simulator/noir-structs/pending_tagged_log.ts +12 -0
  387. package/src/contract_function_simulator/noir-structs/provided_secret.ts +5 -0
  388. package/src/contract_function_simulator/noir-structs/resolved_tagging_strategy.ts +66 -0
  389. package/src/contract_function_simulator/noir-structs/resolved_tx.ts +19 -0
  390. package/src/contract_function_simulator/noir-structs/tx_effect_data.ts +16 -0
  391. package/src/contract_function_simulator/noir-structs/utility_context.ts +5 -17
  392. package/src/contract_function_simulator/oracle/acir_callback.ts +154 -0
  393. package/src/contract_function_simulator/oracle/index.ts +1 -15
  394. package/src/contract_function_simulator/oracle/interfaces.ts +11 -176
  395. package/src/contract_function_simulator/oracle/legacy_oracle_registry.ts +147 -0
  396. package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +6 -21
  397. package/src/contract_function_simulator/oracle/note_packing_utils.ts +3 -3
  398. package/src/contract_function_simulator/oracle/oracle_registry.ts +710 -0
  399. package/src/contract_function_simulator/oracle/oracle_type_mappings.ts +1067 -0
  400. package/src/contract_function_simulator/oracle/private_execution.ts +3 -4
  401. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +247 -83
  402. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +890 -305
  403. package/src/contract_function_simulator/pick_notes.ts +22 -3
  404. package/src/contract_function_simulator/transient_array_service.ts +91 -0
  405. package/src/contract_logging.ts +18 -5
  406. package/src/debug/pxe_debug_utils.ts +4 -12
  407. package/src/entrypoints/client/bundle/index.ts +1 -1
  408. package/src/entrypoints/client/bundle/utils.ts +32 -8
  409. package/src/entrypoints/client/lazy/index.ts +1 -1
  410. package/src/entrypoints/client/lazy/utils.ts +32 -8
  411. package/src/entrypoints/client/store.ts +54 -0
  412. package/src/entrypoints/pxe_creation_options.ts +21 -1
  413. package/src/entrypoints/server/index.ts +7 -3
  414. package/src/entrypoints/server/store.ts +47 -0
  415. package/src/entrypoints/server/utils.ts +45 -14
  416. package/src/error_enriching.ts +27 -11
  417. package/src/events/event_service.ts +84 -26
  418. package/src/events/private_event_filter_validator.ts +21 -1
  419. package/src/hooks/authorize_utility_call.ts +44 -0
  420. package/src/hooks/execution_hooks.ts +68 -0
  421. package/src/hooks/index.ts +13 -0
  422. package/src/hooks/resolve_custom_request.ts +24 -0
  423. package/src/hooks/resolve_tagging_secret_strategy.ts +60 -0
  424. package/src/logs/log_service.ts +225 -145
  425. package/src/messages/tx_resolver_service.ts +80 -0
  426. package/src/node/benchmarked_node.ts +140 -0
  427. package/src/node/caching_aztec_node.ts +406 -0
  428. package/src/notes/note_service.ts +126 -86
  429. package/src/notes_filter.ts +1 -3
  430. package/src/oracle_version.ts +20 -10
  431. package/src/private_kernel/batch_planner.ts +168 -0
  432. package/src/private_kernel/hints/private_kernel_reset_private_inputs_builder.ts +12 -2
  433. package/src/private_kernel/hints/test_utils.ts +3 -10
  434. package/src/private_kernel/private_kernel_execution_prover.ts +335 -121
  435. package/src/private_kernel/private_kernel_oracle.ts +58 -29
  436. package/src/pxe.ts +565 -249
  437. package/src/storage/allowed_scopes.ts +14 -0
  438. package/src/storage/anchor_block_store/anchor_block_store.ts +9 -7
  439. package/src/storage/backwards_compatibility_tests/__snapshots__/AddressStore.json +22 -0
  440. package/src/storage/backwards_compatibility_tests/__snapshots__/AnchorBlockStore.json +3 -0
  441. package/src/storage/backwards_compatibility_tests/__snapshots__/CapsuleStore.json +16 -0
  442. package/src/storage/backwards_compatibility_tests/__snapshots__/ContractStore.json +28 -0
  443. package/src/storage/backwards_compatibility_tests/__snapshots__/FactStore.json +40 -0
  444. package/src/storage/backwards_compatibility_tests/__snapshots__/KeyStore.json +52 -0
  445. package/src/storage/backwards_compatibility_tests/__snapshots__/L2TipsKVStore.json +40 -0
  446. package/src/storage/backwards_compatibility_tests/__snapshots__/NoteStore.json +56 -0
  447. package/src/storage/backwards_compatibility_tests/__snapshots__/PrivateEventStore.json +44 -0
  448. package/src/storage/backwards_compatibility_tests/__snapshots__/RecipientTaggingStore.json +26 -0
  449. package/src/storage/backwards_compatibility_tests/__snapshots__/SenderTaggingStore.json +30 -0
  450. package/src/storage/backwards_compatibility_tests/__snapshots__/TaggingSecretSourcesStore.json +30 -0
  451. package/src/storage/backwards_compatibility_tests/__snapshots__/opened_stores.json +117 -0
  452. package/src/storage/backwards_compatibility_tests/kv_store_snapshot.ts +122 -0
  453. package/src/storage/backwards_compatibility_tests/schema_tests.ts +803 -0
  454. package/src/storage/backwards_compatibility_tests/store_spy.ts +73 -0
  455. package/src/storage/capsule_store/capsule_service.ts +85 -0
  456. package/src/storage/capsule_store/capsule_store.ts +44 -26
  457. package/src/storage/capsule_store/index.ts +1 -0
  458. package/src/storage/contract_store/contract_store.ts +98 -125
  459. package/src/storage/fact_store/fact_service.ts +69 -0
  460. package/src/storage/fact_store/fact_store.ts +487 -0
  461. package/src/storage/fact_store/fact_store_keys.ts +75 -0
  462. package/src/storage/fact_store/index.ts +15 -0
  463. package/src/storage/fact_store/origin_state.ts +84 -0
  464. package/src/storage/fact_store/stored_fact.ts +80 -0
  465. package/src/storage/index.ts +2 -1
  466. package/src/storage/metadata.ts +1 -1
  467. package/src/storage/note_store/note_store.ts +228 -192
  468. package/src/storage/note_store/stored_note.ts +5 -27
  469. package/src/storage/open_pxe_stores.ts +52 -0
  470. package/src/storage/private_event_store/private_event_store.ts +52 -54
  471. package/src/storage/private_event_store/stored_private_event.ts +1 -1
  472. package/src/storage/store_identity.ts +72 -0
  473. package/src/storage/tagging_store/index.ts +1 -1
  474. package/src/storage/tagging_store/recipient_tagging_store.ts +5 -9
  475. package/src/storage/tagging_store/sender_tagging_store.ts +118 -46
  476. package/src/storage/tagging_store/tagging_secret_sources_store.ts +138 -0
  477. package/src/tagging/constants.ts +42 -10
  478. package/src/tagging/get_all_logs_by_tags.ts +113 -49
  479. package/src/tagging/index.ts +11 -5
  480. package/src/tagging/persist_sender_tagging_index_ranges.ts +57 -0
  481. package/src/tagging/recipient_sync/sync_tagged_private_logs.ts +355 -0
  482. package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +2 -2
  483. package/src/tagging/reconcile_tagging_index_ranges.ts +102 -0
  484. package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +30 -38
  485. package/src/tagging/sender_sync/utils/classify_pending_txs.ts +91 -0
  486. package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +48 -43
  487. package/src/tagging/sender_sync/utils/resolve_pending_txs.ts +64 -0
  488. package/src/tagging/sender_sync/utils/test_utils.ts +46 -0
  489. package/src/tagging/testing/tag_query_test_utils.ts +11 -0
  490. package/dest/access_scopes.d.ts +0 -9
  491. package/dest/access_scopes.d.ts.map +0 -1
  492. package/dest/access_scopes.js +0 -6
  493. package/dest/contract_function_simulator/benchmarked_node.d.ts +0 -9
  494. package/dest/contract_function_simulator/benchmarked_node.d.ts.map +0 -1
  495. package/dest/contract_function_simulator/benchmarked_node.js +0 -77
  496. package/dest/contract_function_simulator/noir-structs/message_tx_context.d.ts +0 -16
  497. package/dest/contract_function_simulator/noir-structs/message_tx_context.d.ts.map +0 -1
  498. package/dest/contract_function_simulator/noir-structs/message_tx_context.js +0 -57
  499. package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.d.ts +0 -9
  500. package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.d.ts.map +0 -1
  501. package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.js +0 -42
  502. package/dest/contract_function_simulator/oracle/oracle.d.ts +0 -61
  503. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +0 -1
  504. package/dest/contract_function_simulator/oracle/oracle.js +0 -437
  505. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +0 -6
  506. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +0 -1
  507. package/dest/contract_function_simulator/proxied_contract_data_source.js +0 -80
  508. package/dest/contract_sync/contract_sync_service.d.ts +0 -45
  509. package/dest/contract_sync/contract_sync_service.d.ts.map +0 -1
  510. package/dest/contract_sync/contract_sync_service.js +0 -114
  511. package/dest/contract_sync/helpers.d.ts +0 -29
  512. package/dest/contract_sync/helpers.d.ts.map +0 -1
  513. package/dest/contract_sync/helpers.js +0 -55
  514. package/dest/messages/message_context_service.d.ts +0 -17
  515. package/dest/messages/message_context_service.d.ts.map +0 -1
  516. package/dest/messages/message_context_service.js +0 -36
  517. package/dest/storage/tagging_store/sender_address_book_store.d.ts +0 -14
  518. package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +0 -1
  519. package/dest/storage/tagging_store/sender_address_book_store.js +0 -36
  520. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +0 -14
  521. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +0 -1
  522. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +0 -99
  523. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +0 -14
  524. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +0 -1
  525. package/dest/tagging/recipient_sync/utils/load_logs_for_range.js +0 -33
  526. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +0 -12
  527. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +0 -1
  528. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +0 -39
  529. package/src/access_scopes.ts +0 -9
  530. package/src/contract_function_simulator/benchmarked_node.ts +0 -103
  531. package/src/contract_function_simulator/noir-structs/message_tx_context.ts +0 -55
  532. package/src/contract_function_simulator/oracle/legacy_oracle_mappings.ts +0 -135
  533. package/src/contract_function_simulator/oracle/oracle.ts +0 -675
  534. package/src/contract_function_simulator/proxied_contract_data_source.ts +0 -83
  535. package/src/contract_sync/contract_sync_service.ts +0 -181
  536. package/src/contract_sync/helpers.ts +0 -98
  537. package/src/messages/message_context_service.ts +0 -45
  538. package/src/storage/tagging_store/sender_address_book_store.ts +0 -48
  539. package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +0 -140
  540. package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +0 -44
  541. package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +0 -51
@@ -0,0 +1,75 @@
1
+ /**
2
+ * TypeScript counterpart of Noir's `Option<T>`.
3
+ *
4
+ * Wraps a value that may or may not be present. Use {@link Option.some} to wrap a present value and
5
+ * {@link Option.none} for an absent one. The type guards {@link isSome} and {@link isNone} narrow
6
+ * `value` in conditional branches.
7
+ */
8
+ export class Option<T> {
9
+ private constructor(
10
+ public readonly value: T | undefined,
11
+ // `unknown` (not the descriptor shape) keeps this generic Option decoupled from the serialization layer's
12
+ // `{ length }`/`{ maxLength }` size descriptors; only the None-serialization path inspects it.
13
+ public readonly size: unknown,
14
+ ) {}
15
+
16
+ /**
17
+ * Wrap a present value.
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * return Option.some(values);
22
+ * ```
23
+ */
24
+ static some<T>(value: T): Option<T> {
25
+ return new Option<T>(value, undefined);
26
+ }
27
+
28
+ /**
29
+ * Construct an absent Option.
30
+ *
31
+ * When serialized back to ACVM, the `None` case must produce the same number of fields as `Some`. For an inner type whose
32
+ * wire size varies per call site (`BoundedVec`, an array), pass a `size` descriptor so the inner type's shape can
33
+ * resolve how many zero fields to emit; fixed-size inners take no argument.
34
+ *
35
+ * @example None for a fixed-size type:
36
+ * ```ts
37
+ * return Option.none();
38
+ * ```
39
+ *
40
+ * @example None for a dynamic-size type:
41
+ * ```ts
42
+ * return Option.none({ maxLength: ciphertext.maxLength });
43
+ * ```
44
+ */
45
+ static none<T>(size?: unknown): Option<T> {
46
+ return new Option<T>(undefined, size);
47
+ }
48
+
49
+ /**
50
+ * Type guard: narrows `value` to `T` in the truthy branch.
51
+ *
52
+ * @example
53
+ * ```ts
54
+ * const opt = await handler.getSenderForTags();
55
+ * if (opt.isSome()) {
56
+ * console.log(opt.value); // narrowed to T
57
+ * }
58
+ * ```
59
+ */
60
+ isSome(): this is Option<T> & { value: T } {
61
+ return this.value !== undefined;
62
+ }
63
+
64
+ /** Type guard: narrows `value` to `undefined` in the truthy branch. */
65
+ isNone(): this is Option<T> & { value: undefined } {
66
+ return this.value === undefined;
67
+ }
68
+
69
+ equals(other: Option<T>, innerEquals: (a: T, b: T) => boolean): boolean {
70
+ if (this.isSome() && other.isSome()) {
71
+ return innerEquals(this.value, other.value);
72
+ }
73
+ return this.isNone() && other.isNone();
74
+ }
75
+ }
@@ -0,0 +1,8 @@
1
+ import type { Fr } from '@aztec/foundation/curves/bn254';
2
+
3
+ /**
4
+ * The block a retractable fact originates from.
5
+ *
6
+ * A TS version of the `OriginBlock` struct in `facts/mod.nr`.
7
+ */
8
+ export type OriginBlock = { blockNumber: number; blockHash: Fr };
@@ -0,0 +1,12 @@
1
+ import type { Fr } from '@aztec/foundation/curves/bn254';
2
+
3
+ import type { ResolvedTx } from './resolved_tx.js';
4
+
5
+ /**
6
+ * Represents a pending tagged log as it is stored in the pending tagged log array to which the fetchTaggedLogs oracle
7
+ * inserts found private logs. A TS version of `pending_tagged_log.nr`.
8
+ */
9
+ export type PendingTaggedLog = {
10
+ log: Fr[];
11
+ context: ResolvedTx;
12
+ };
@@ -0,0 +1,5 @@
1
+ import type { Fr } from '@aztec/foundation/curves/bn254';
2
+ import type { AppTaggingSecretKind } from '@aztec/stdlib/logs';
3
+
4
+ /** A tagging secret an app supplies explicitly to `getPendingTaggedLogsV2` when PXE cannot derive it internally. */
5
+ export type ProvidedSecret = { secret: Fr; mode: AppTaggingSecretKind };
@@ -0,0 +1,66 @@
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
+
3
+ // Keep in sync with aztec::messages::delivery::ResolvedTaggingStrategy
4
+ const NON_INTERACTIVE_HANDSHAKE = 1;
5
+ const UNCONSTRAINED_SECRET = 2;
6
+ const INTERACTIVE_HANDSHAKE = 3;
7
+
8
+ /**
9
+ * The tagging secret PXE hands to the contract after applying the wallet's {@link TaggingSecretStrategy} choice
10
+ * (and app-siloing). The contract uses it directly to derive the message tag, so it never sees raw key material.
11
+ */
12
+ export type ResolvedTaggingStrategy =
13
+ | {
14
+ /** A non-interactive handshake: the recipient re-derives the secret from the onchain handshake registry. */
15
+ type: 'non-interactive-handshake';
16
+ }
17
+ | {
18
+ /**
19
+ * An interactive handshake: the registry obtains the recipient's signed authorization through the custom
20
+ * request oracle, and the recipient learns the secret while signing. Nothing announcing the handshake is
21
+ * published onchain.
22
+ */
23
+ type: 'interactive-handshake';
24
+ }
25
+ | {
26
+ /**
27
+ * An app-siloed, recipient-directional secret, ready to use. Only sound for unconstrained delivery.
28
+ */
29
+ type: 'unconstrained-secret';
30
+ /** The app-siloed directional tagging secret. */
31
+ secret: Fr;
32
+ };
33
+
34
+ /** Serializes a {@link ResolvedTaggingStrategy} to its Noir `[kind, secret]` field layout, zero-filling absent fields. */
35
+ export function resolvedTaggingStrategyToFields(resolved: ResolvedTaggingStrategy): Fr[] {
36
+ switch (resolved.type) {
37
+ case 'non-interactive-handshake':
38
+ return [new Fr(NON_INTERACTIVE_HANDSHAKE), Fr.ZERO];
39
+ case 'unconstrained-secret':
40
+ return [new Fr(UNCONSTRAINED_SECRET), resolved.secret];
41
+ case 'interactive-handshake':
42
+ return [new Fr(INTERACTIVE_HANDSHAKE), Fr.ZERO];
43
+ }
44
+ }
45
+
46
+ /** Deserializes a {@link ResolvedTaggingStrategy} from its `kind` discriminant and `secret` field. */
47
+ export function resolvedTaggingStrategyFromFields(kind: number, secret: Fr): ResolvedTaggingStrategy {
48
+ switch (kind) {
49
+ case NON_INTERACTIVE_HANDSHAKE:
50
+ assertAbsentSecret(kind, secret);
51
+ return { type: 'non-interactive-handshake' };
52
+ case INTERACTIVE_HANDSHAKE:
53
+ assertAbsentSecret(kind, secret);
54
+ return { type: 'interactive-handshake' };
55
+ case UNCONSTRAINED_SECRET:
56
+ return { type: 'unconstrained-secret', secret };
57
+ default:
58
+ throw new Error(`Unrecognized resolved tagging strategy kind: ${kind}`);
59
+ }
60
+ }
61
+
62
+ function assertAbsentSecret(kind: number, secret: Fr): void {
63
+ if (!secret.isZero()) {
64
+ throw new Error(`Resolved tagging strategy ${kind} must not include a secret`);
65
+ }
66
+ }
@@ -0,0 +1,19 @@
1
+ import type { Fr } from '@aztec/foundation/curves/bn254';
2
+ import type { TxHash } from '@aztec/stdlib/tx';
3
+
4
+ /**
5
+ * The resolved on-chain context of a transaction.
6
+ *
7
+ * Carries the note hashes and first nullifier needed to discover notes that originated from the transaction, plus the
8
+ * number and hash of the block in which it was mined.
9
+ *
10
+ * A TS version of the `ResolvedTx` struct in `oracle/tx_resolution.nr`; its wire layout lives in the `RESOLVED_TX`
11
+ * type mapping.
12
+ */
13
+ export type ResolvedTx = {
14
+ txHash: TxHash;
15
+ uniqueNoteHashesInTx: Fr[];
16
+ firstNullifierInTx: Fr;
17
+ blockNumber: number;
18
+ blockHash: Fr;
19
+ };
@@ -0,0 +1,16 @@
1
+ import type { FieldsOf } from '@aztec/foundation/types';
2
+ import type { FlatPublicLogs } from '@aztec/stdlib/logs';
3
+ import type { TxEffect } from '@aztec/stdlib/tx';
4
+
5
+ import type { ContractClassLogData } from './contract_class_log_data.js';
6
+
7
+ /**
8
+ * Wire form of a {@link TxEffect} as the `getTxEffect` oracle returns it: identical to the domain type except its logs
9
+ * are flattened to their Noir layout and its revert code is the plain `u8` Noir declares. Keeping the conversion in
10
+ * the handler lets the `TX_EFFECT` mapping stay purely structural.
11
+ */
12
+ export type TxEffectData = Omit<FieldsOf<TxEffect>, 'revertCode' | 'publicLogs' | 'contractClassLogs'> & {
13
+ revertCode: number;
14
+ publicLogs: FlatPublicLogs;
15
+ contractClassLogs: ContractClassLogData[];
16
+ };
@@ -1,23 +1,11 @@
1
- import { toACVMField } from '@aztec/simulator/client';
2
1
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
3
2
  import type { BlockHeader } from '@aztec/stdlib/tx';
4
3
 
5
4
  /**
6
5
  * TypeScript counterpart of utility_context.nr. Used only as a return value for the utilityGetUtilityContext oracle.
7
6
  */
8
- export class UtilityContext {
9
- constructor(
10
- public readonly blockHeader: BlockHeader,
11
- public readonly contractAddress: AztecAddress,
12
- ) {}
13
-
14
- /**
15
- * Returns a representation of the utility context as expected by intrinsic Noir deserialization.
16
- * The order of the fields has to be the same as the order of the fields in the utility_context.nr.
17
- */
18
- public toNoirRepresentation(): (string | string[])[] {
19
- // TODO(#12874): remove the stupid as string conversion by modifying ForeignCallOutput type in acvm.js
20
- const blockHeaderFields = this.blockHeader.toFields().map(toACVMField);
21
- return [...blockHeaderFields, this.contractAddress.toString() as string];
22
- }
23
- }
7
+ export type UtilityContext = {
8
+ blockHeader: BlockHeader;
9
+ contractAddress: AztecAddress;
10
+ msgSender: AztecAddress;
11
+ };
@@ -0,0 +1,154 @@
1
+ import type { ACIRCallback, ACVMField } from '@aztec/simulator/client';
2
+
3
+ import { ORACLE_VERSION_MAJOR, ORACLE_VERSION_MINOR } from '../../oracle_version.js';
4
+ import type { IMiscOracle, IPrivateExecutionOracle, IUtilityExecutionOracle } from './interfaces.js';
5
+ import { LEGACY_ORACLE_REGISTRY, type LegacyOracleEntry } from './legacy_oracle_registry.js';
6
+ import { type NamedValue, ORACLE_REGISTRY, type OracleRegistryEntry, makeEntry } from './oracle_registry.js';
7
+
8
+ export class UnavailableOracleError extends Error {
9
+ constructor(oracleName: string) {
10
+ super(`${oracleName} oracles not available with the current handler`);
11
+ }
12
+ }
13
+
14
+ /**
15
+ * Builds an ACIR callback from the oracle registry and a handler object.
16
+ *
17
+ * Each oracle call is dispatched by matching the oracle name against the registry for serialization, parsing the
18
+ * `aztec_{scope}_{methodName}` convention to resolve the handler, and calling the method directly. Unknown oracle
19
+ * names produce enhanced error messages based on the contract's oracle version.
20
+ */
21
+ export function buildACIRCallback(
22
+ handler: OracleHandler,
23
+ registries: {
24
+ real?: Record<string, OracleRegistryEntry>;
25
+ legacy?: Record<string, LegacyOracleEntry>;
26
+ } = {},
27
+ ): ACIRCallback {
28
+ const { real = ORACLE_REGISTRY, legacy: legacyRegistry = LEGACY_ORACLE_REGISTRY } = registries;
29
+ const target = {} as ACIRCallback;
30
+ for (const [oracleKey, entry] of Object.entries(real)) {
31
+ const { scope, methodName } = parseOracleName(oracleKey, 'Oracle');
32
+ target[oracleKey] = async (...inputs: ACVMField[][]) => {
33
+ assertHandlerSupportsScope(handler, scope);
34
+ const named = entry.deserializeParams(inputs);
35
+ const positional = named.map((p: NamedValue) => p.value);
36
+ const result = await (handler as any)[methodName](...positional);
37
+ return entry.serializeReturn(result);
38
+ };
39
+ }
40
+
41
+ // Legacy oracle names: served for contracts compiled against a retired oracle version. Each reuses the current
42
+ // handler of its `modernOracle` and reshapes the wire (params and/or return) back to what the old bytecode expects.
43
+ for (const [legacyKey, legacy] of Object.entries(legacyRegistry)) {
44
+ const { scope } = parseOracleName(legacyKey, 'Legacy oracle');
45
+ if (legacyKey in target) {
46
+ throw new Error(`Legacy oracle "${legacyKey}" collides with a live oracle of the same name in the registry`);
47
+ }
48
+ const modernEntry = real[legacy.modernOracle];
49
+ const { methodName } = parseOracleName(legacy.modernOracle, 'Oracle');
50
+ // Override only the side whose wire changed; inherit the other from the modern entry.
51
+ const paramOverride = legacy.params;
52
+ const paramSource = paramOverride ? makeEntry({ params: [...paramOverride.legacyType] }) : modernEntry;
53
+ const returnOverride = legacy.returnType;
54
+ const returnSource = returnOverride ? makeEntry({ returnType: returnOverride.legacyType }) : modernEntry;
55
+ target[legacyKey] = async (...inputs: ACVMField[][]) => {
56
+ assertHandlerSupportsScope(handler, scope);
57
+ const legacyArgs = paramSource.deserializeParams(inputs).map(p => p.value);
58
+ const positional = paramOverride ? await paramOverride.mapping(legacyArgs) : legacyArgs;
59
+ const result = await (handler as any)[methodName](...positional);
60
+ return returnSource.serializeReturn(returnOverride ? returnOverride.mapping(result) : result);
61
+ };
62
+ }
63
+
64
+ return new Proxy(target, makeUnknownOracleTrap(handler));
65
+ }
66
+
67
+ /** Parses an `aztec_{scope}_{method}` oracle name into its parts, throwing if it doesn't follow the convention. */
68
+ function parseOracleName(key: string, label: string): { scope: string; methodName: string } {
69
+ const match = key.match(/^aztec_(\w+?)_(.+)$/);
70
+ if (!match) {
71
+ throw new Error(`${label} "${key}" does not follow the aztec_{scope}_{method} convention`);
72
+ }
73
+ return { scope: match[1], methodName: match[2] };
74
+ }
75
+
76
+ /**
77
+ * Proxy trap for the callback table: a known oracle name passes through; an unknown one throws a diagnostic keyed on
78
+ * the contract's oracle version (version unknown, contract newer than this environment, or a same-version mismatch).
79
+ */
80
+ function makeUnknownOracleTrap(handler: OracleHandler): ProxyHandler<ACIRCallback> {
81
+ return {
82
+ get(obj, prop: string) {
83
+ // Own-property check only: `in` would match inherited `Object.prototype` keys (e.g. `constructor`, `toString`)
84
+ // and return the built-in instead of falling through to the unknown-oracle diagnostic below.
85
+ if (Object.hasOwn(obj, prop)) {
86
+ return (obj as Record<string, unknown>)[prop];
87
+ }
88
+
89
+ return () => {
90
+ let contractVersion = undefined;
91
+ if ('nonOracleFunctionGetContractOracleVersion' in handler) {
92
+ contractVersion = (
93
+ handler as unknown as NonOracleFunctionGetContractOracleVersion
94
+ ).nonOracleFunctionGetContractOracleVersion();
95
+ }
96
+ if (!contractVersion) {
97
+ throw new Error(
98
+ `Oracle '${prop}' not found and the contract's oracle version is unknown (the version check oracle ` +
99
+ `was not called before '${prop}'). This usually means the contract was not compiled with the ` +
100
+ `#[aztec] macro, which injects the version check as the first oracle call in every private/utility ` +
101
+ `external function. If you're using a custom entry point, ensure assert_compatible_oracle_version() ` +
102
+ `is called before any other oracle calls. See https://docs.aztec.network/errors/8`,
103
+ );
104
+ } else if (contractVersion.minor > ORACLE_VERSION_MINOR) {
105
+ throw new Error(
106
+ `Oracle '${prop}' not found.` +
107
+ ` This usually means the contract requires a newer private execution environment than you have.` +
108
+ ` Upgrade your private execution environment to a compatible version. The contract was compiled with` +
109
+ ` Aztec.nr oracle version ${contractVersion.major}.${contractVersion.minor}, but this private` +
110
+ ` execution environment only supports up to ${ORACLE_VERSION_MAJOR}.${ORACLE_VERSION_MINOR}.` +
111
+ ` See https://docs.aztec.network/errors/8`,
112
+ );
113
+ } else {
114
+ throw new Error(
115
+ `Oracle '${prop}' not found.` +
116
+ ` The contract's oracle version (${contractVersion.major}.${contractVersion.minor}) is compatible` +
117
+ ` with this private execution environment (${ORACLE_VERSION_MAJOR}.${ORACLE_VERSION_MINOR}), so all` +
118
+ ` standard oracles should be available. This could mean the contract was compiled against a modified` +
119
+ ` version of Aztec.nr, or that it references an oracle that does not exist.` +
120
+ ` See https://docs.aztec.network/errors/8`,
121
+ );
122
+ }
123
+ };
124
+ },
125
+ };
126
+ }
127
+
128
+ type OracleHandler = IMiscOracle & (IUtilityExecutionOracle | IPrivateExecutionOracle);
129
+
130
+ type NonOracleFunctionGetContractOracleVersion = {
131
+ nonOracleFunctionGetContractOracleVersion(): { major: number; minor: number } | undefined;
132
+ };
133
+
134
+ function assertHandlerSupportsScope(handler: OracleHandler, scope: string): void {
135
+ switch (scope) {
136
+ case 'misc':
137
+ if (!('isMisc' in handler)) {
138
+ throw new UnavailableOracleError('Misc');
139
+ }
140
+ break;
141
+ case 'utl':
142
+ if (!('isUtility' in handler)) {
143
+ throw new UnavailableOracleError('Utility');
144
+ }
145
+ break;
146
+ case 'prv':
147
+ if (!('isPrivate' in handler)) {
148
+ throw new UnavailableOracleError('Private');
149
+ }
150
+ break;
151
+ default:
152
+ throw new Error(`Unknown oracle scope: ${scope}`);
153
+ }
154
+ }
@@ -1,16 +1,2 @@
1
- import type { Oracle } from './oracle.js';
2
-
3
- export * from './oracle.js';
1
+ export * from './acir_callback.js';
4
2
  export * from './interfaces.js';
5
-
6
- /**
7
- * A conditional type that takes a type `T` and returns a union of its method names.
8
- */
9
- type MethodNames<T> = {
10
- [K in keyof T]: T[K] extends (...args: any[]) => any ? K : never;
11
- }[keyof T];
12
-
13
- /**
14
- * Available oracle function names.
15
- */
16
- export type ORACLE_NAMES = MethodNames<Oracle>;
@@ -1,185 +1,20 @@
1
- import type { ARCHIVE_HEIGHT, L1_TO_L2_MSG_TREE_HEIGHT, NOTE_HASH_TREE_HEIGHT } from '@aztec/constants';
2
- import type { BlockNumber } from '@aztec/foundation/branded-types';
3
- import { Fr } from '@aztec/foundation/curves/bn254';
4
- import { Point } from '@aztec/foundation/curves/grumpkin';
5
- import { MembershipWitness } from '@aztec/foundation/trees';
6
- import type { FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
7
- import type { AztecAddress } from '@aztec/stdlib/aztec-address';
8
- import { BlockHash } from '@aztec/stdlib/block';
9
- import type { ContractInstance, PartialAddress } from '@aztec/stdlib/contract';
10
- import type { KeyValidationRequest } from '@aztec/stdlib/kernel';
11
- import type { PublicKeys } from '@aztec/stdlib/keys';
12
- import type { ContractClassLog, Tag } from '@aztec/stdlib/logs';
13
- import type { Note, NoteStatus } from '@aztec/stdlib/note';
14
- import { type NullifierMembershipWitness, PublicDataWitness } from '@aztec/stdlib/trees';
15
- import type { BlockHeader } from '@aztec/stdlib/tx';
16
-
17
- import type { UtilityContext } from '../noir-structs/utility_context.js';
18
- import type { MessageLoadOracleInputs } from './message_load_oracle_inputs.js';
19
-
20
- /**
21
- * Information about a note needed during execution.
22
- */
23
- export interface NoteData {
24
- /** The actual note content (the fields of the Noir #[note] struct). */
25
- note: Note;
26
- /** The address of the contract that owns the note. */
27
- contractAddress: AztecAddress;
28
- /** The owner of the note. */
29
- owner: AztecAddress;
30
- /** The storage slot of the note. */
31
- storageSlot: Fr;
32
- /** The randomness injected to the note */
33
- randomness: Fr;
34
- /** The nonce injected into the note hash preimage by kernels. */
35
- noteNonce: Fr;
36
- /** A hash of the note as it gets stored in the note hash tree. */
37
- noteHash: Fr;
38
- /** True if the note is pending, false if settled. */
39
- isPending: boolean;
40
- /** The corresponding nullifier of the note. Undefined for pending notes. */
41
- siloedNullifier?: Fr;
42
- }
43
-
44
- // These interfaces contain the list of oracles required by aztec-nr in order to simulate and execute transactions, i.e.
45
- // in order to call #[external("utility")] and #[external("private")] contract functions.
46
- // The full list of aztec-nr oracles is larger and includes the oracles also required to run Noir tests - these reside
47
- // in the TXE package.
1
+ import type { HandlersForPrefix, ORACLE_REGISTRY } from './oracle_registry.js';
48
2
 
49
3
  /**
50
- * Miscellaneous oracle methods, not very Aztec-specific and expected to be available all scenarios in which aztec-nr
51
- * code runs, except #[external("public")] functions (since those are transpiled to AVM bytecode, where there are no oracles).
4
+ * Miscellaneous oracle methods, not very Aztec-specific and expected to be available in all scenarios in which aztec-nr
5
+ * code runs, except #[external("public")] functions (since those are transpiled to AVM bytecode, where there are no
6
+ * oracles).
52
7
  */
53
- export interface IMiscOracle {
54
- isMisc: true;
55
-
56
- getRandomField(): Fr;
57
- assertCompatibleOracleVersion(version: number): void;
58
- log(level: number, message: string, fields: Fr[]): Promise<void>;
59
- }
8
+ export type IMiscOracle = HandlersForPrefix<typeof ORACLE_REGISTRY, 'misc'> & { isMisc: true };
60
9
 
61
10
  /**
62
- * Oracle methods associated with the execution of an Aztec #[external("utility")] function. Note that the IMiscOracles are also
63
- * expected to be available in these contexts.
11
+ * Oracle methods associated with the execution of an Aztec #[external("utility")] function. Note that the IMiscOracle
12
+ * methods are also expected to be available in these contexts.
64
13
  */
65
- export interface IUtilityExecutionOracle {
66
- isUtility: true;
67
-
68
- getUtilityContext(): UtilityContext;
69
- getKeyValidationRequest(pkMHash: Fr): Promise<KeyValidationRequest>;
70
- getContractInstance(address: AztecAddress): Promise<ContractInstance>;
71
- getNoteHashMembershipWitness(
72
- anchorBlockHash: BlockHash,
73
- noteHash: Fr,
74
- ): Promise<MembershipWitness<typeof NOTE_HASH_TREE_HEIGHT> | undefined>;
75
- getBlockHashMembershipWitness(
76
- anchorBlockHash: BlockHash,
77
- blockHash: BlockHash,
78
- ): Promise<MembershipWitness<typeof ARCHIVE_HEIGHT> | undefined>;
79
- getNullifierMembershipWitness(
80
- anchorBlockHash: BlockHash,
81
- nullifier: Fr,
82
- ): Promise<NullifierMembershipWitness | undefined>;
83
- getPublicDataWitness(anchorBlockHash: BlockHash, leafSlot: Fr): Promise<PublicDataWitness | undefined>;
84
- getLowNullifierMembershipWitness(
85
- anchorBlockHash: BlockHash,
86
- nullifier: Fr,
87
- ): Promise<NullifierMembershipWitness | undefined>;
88
- getBlockHeader(blockNumber: BlockNumber): Promise<BlockHeader | undefined>;
89
- tryGetPublicKeysAndPartialAddress(
90
- account: AztecAddress,
91
- ): Promise<{ publicKeys: PublicKeys; partialAddress: PartialAddress } | undefined>;
92
- getAuthWitness(messageHash: Fr): Promise<Fr[] | undefined>;
93
- getNotes(
94
- owner: AztecAddress | undefined,
95
- storageSlot: Fr,
96
- numSelects: number,
97
- selectByIndexes: number[],
98
- selectByOffsets: number[],
99
- selectByLengths: number[],
100
- selectValues: Fr[],
101
- selectComparators: number[],
102
- sortByIndexes: number[],
103
- sortByOffsets: number[],
104
- sortByLengths: number[],
105
- sortOrder: number[],
106
- limit: number,
107
- offset: number,
108
- status: NoteStatus,
109
- ): Promise<NoteData[]>;
110
- checkNullifierExists(innerNullifier: Fr): Promise<boolean>;
111
- getL1ToL2MembershipWitness(
112
- contractAddress: AztecAddress,
113
- messageHash: Fr,
114
- secret: Fr,
115
- ): Promise<MessageLoadOracleInputs<typeof L1_TO_L2_MSG_TREE_HEIGHT>>;
116
- storageRead(
117
- anchorBlockHash: BlockHash,
118
- contractAddress: AztecAddress,
119
- startStorageSlot: Fr,
120
- numberOfElements: number,
121
- ): Promise<Fr[]>;
122
- fetchTaggedLogs(pendingTaggedLogArrayBaseSlot: Fr): Promise<void>;
123
- validateAndStoreEnqueuedNotesAndEvents(
124
- contractAddress: AztecAddress,
125
- noteValidationRequestsArrayBaseSlot: Fr,
126
- eventValidationRequestsArrayBaseSlot: Fr,
127
- maxNotePackedLen: number,
128
- maxEventSerializedLen: number,
129
- ): Promise<void>;
130
- bulkRetrieveLogs(
131
- contractAddress: AztecAddress,
132
- logRetrievalRequestsArrayBaseSlot: Fr,
133
- logRetrievalResponsesArrayBaseSlot: Fr,
134
- ): Promise<void>;
135
- utilityResolveMessageContexts(
136
- contractAddress: AztecAddress,
137
- messageContextRequestsArrayBaseSlot: Fr,
138
- messageContextResponsesArrayBaseSlot: Fr,
139
- ): Promise<void>;
140
- storeCapsule(contractAddress: AztecAddress, key: Fr, capsule: Fr[]): Promise<void>;
141
- loadCapsule(contractAddress: AztecAddress, key: Fr): Promise<Fr[] | null>;
142
- deleteCapsule(contractAddress: AztecAddress, key: Fr): Promise<void>;
143
- copyCapsule(contractAddress: AztecAddress, srcKey: Fr, dstKey: Fr, numEntries: number): Promise<void>;
144
- aes128Decrypt(ciphertext: Buffer, iv: Buffer, symKey: Buffer): Promise<Buffer>;
145
- getSharedSecret(address: AztecAddress, ephPk: Point): Promise<Point>;
146
- invalidateContractSyncCache(contractAddress: AztecAddress, scopes: AztecAddress[]): void;
147
- emitOffchainEffect(data: Fr[]): Promise<void>;
148
- }
14
+ export type IUtilityExecutionOracle = HandlersForPrefix<typeof ORACLE_REGISTRY, 'utl'> & { isUtility: true };
149
15
 
150
16
  /**
151
- * Oracle methods associated with the execution of an Aztec #[external("private")] function. Note that both the IMiscOracles and
152
- * IUtilityExecutionOracle are also expected to be available in these contexts.
17
+ * Oracle methods associated with the execution of an Aztec #[external("private")] function. Note that both the
18
+ * IMiscOracle and IUtilityExecutionOracle methods are also expected to be available in these contexts.
153
19
  */
154
- export interface IPrivateExecutionOracle {
155
- isPrivate: true;
156
-
157
- storeInExecutionCache(values: Fr[], hash: Fr): void;
158
- loadFromExecutionCache(hash: Fr): Promise<Fr[]>;
159
- notifyCreatedNote(
160
- owner: AztecAddress,
161
- storageSlot: Fr,
162
- randomness: Fr,
163
- noteTypeId: NoteSelector,
164
- note: Fr[],
165
- noteHash: Fr,
166
- counter: number,
167
- ): void;
168
- notifyNullifiedNote(innerNullifier: Fr, noteHash: Fr, counter: number): Promise<void>;
169
- notifyCreatedNullifier(innerNullifier: Fr): Promise<void>;
170
- isNullifierPending(innerNullifier: Fr, contractAddress: AztecAddress): Promise<boolean>;
171
- notifyCreatedContractClassLog(log: ContractClassLog, counter: number): void;
172
- callPrivateFunction(
173
- targetContractAddress: AztecAddress,
174
- functionSelector: FunctionSelector,
175
- argsHash: Fr,
176
- sideEffectCounter: number,
177
- isStaticCall: boolean,
178
- ): Promise<{ endSideEffectCounter: Fr; returnsHash: Fr }>;
179
- validatePublicCalldata(calldataHash: Fr): Promise<void>;
180
- notifyRevertiblePhaseStart(minRevertibleSideEffectCounter: number): Promise<void>;
181
- inRevertiblePhase(sideEffectCounter: number): Promise<boolean>;
182
- getSenderForTags(): Promise<AztecAddress | undefined>;
183
- setSenderForTags(senderForTags: AztecAddress): Promise<void>;
184
- getNextAppTagAsSender(sender: AztecAddress, recipient: AztecAddress): Promise<Tag>;
185
- }
20
+ export type IPrivateExecutionOracle = HandlersForPrefix<typeof ORACLE_REGISTRY, 'prv'> & { isPrivate: true };