@aztec/pxe 0.0.1-commit.993d240 → 0.0.1-commit.9a89641

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 (451) hide show
  1. package/dest/bin/check_oracle_version.d.ts +2 -12
  2. package/dest/bin/check_oracle_version.d.ts.map +1 -1
  3. package/dest/bin/check_oracle_version.js +9 -122
  4. package/dest/bin/index.d.ts +2 -2
  5. package/dest/bin/index.d.ts.map +1 -1
  6. package/dest/bin/index.js +1 -1
  7. package/dest/bin/oracle_version_helpers.d.ts +20 -0
  8. package/dest/bin/oracle_version_helpers.d.ts.map +1 -0
  9. package/dest/bin/oracle_version_helpers.js +25 -0
  10. package/dest/block_synchronizer/block_stream_source.d.ts +5 -5
  11. package/dest/block_synchronizer/block_stream_source.d.ts.map +1 -1
  12. package/dest/block_synchronizer/block_stream_source.js +4 -29
  13. package/dest/block_synchronizer/block_synchronizer.d.ts +17 -15
  14. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
  15. package/dest/block_synchronizer/block_synchronizer.js +41 -18
  16. package/dest/config/index.d.ts +2 -1
  17. package/dest/config/index.d.ts.map +1 -1
  18. package/dest/config/index.js +1 -0
  19. package/dest/config/package_info.js +1 -1
  20. package/dest/contract/contract_class_service.d.ts +24 -0
  21. package/dest/contract/contract_class_service.d.ts.map +1 -0
  22. package/dest/contract/contract_class_service.js +36 -0
  23. package/dest/contract/contract_sync_service.d.ts +48 -0
  24. package/dest/contract/contract_sync_service.d.ts.map +1 -0
  25. package/dest/{contract_sync → contract}/contract_sync_service.js +26 -45
  26. package/dest/contract/helpers.d.ts +7 -0
  27. package/dest/contract/helpers.d.ts.map +1 -0
  28. package/dest/contract/helpers.js +20 -0
  29. package/dest/contract/skip_sync_contracts.d.ts +11 -0
  30. package/dest/contract/skip_sync_contracts.d.ts.map +1 -0
  31. package/dest/contract/skip_sync_contracts.js +18 -0
  32. package/dest/contract_function_simulator/anchored_contract_data.d.ts +36 -0
  33. package/dest/contract_function_simulator/anchored_contract_data.d.ts.map +1 -0
  34. package/dest/contract_function_simulator/anchored_contract_data.js +54 -0
  35. package/dest/contract_function_simulator/contract_function_simulator.d.ts +19 -25
  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 -49
  38. package/dest/contract_function_simulator/execution_note_cache.d.ts +4 -10
  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 +24 -6
  42. package/dest/contract_function_simulator/index.d.ts.map +1 -1
  43. package/dest/contract_function_simulator/index.js +9 -4
  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/ephemeral_array.d.ts +37 -0
  54. package/dest/contract_function_simulator/noir-structs/ephemeral_array.d.ts.map +1 -0
  55. package/dest/contract_function_simulator/noir-structs/ephemeral_array.js +59 -0
  56. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +3 -2
  57. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
  58. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +2 -2
  59. package/dest/contract_function_simulator/noir-structs/fact.d.ts +16 -0
  60. package/dest/contract_function_simulator/noir-structs/fact.d.ts.map +1 -0
  61. package/dest/contract_function_simulator/noir-structs/fact.js +6 -0
  62. package/dest/contract_function_simulator/noir-structs/fact_collection.d.ts +27 -0
  63. package/dest/contract_function_simulator/noir-structs/fact_collection.d.ts.map +1 -0
  64. package/dest/contract_function_simulator/noir-structs/fact_collection.js +31 -0
  65. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +11 -12
  66. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts.map +1 -1
  67. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +6 -49
  68. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +10 -8
  69. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -1
  70. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +1 -60
  71. package/dest/contract_function_simulator/noir-structs/note_data.d.ts +27 -0
  72. package/dest/contract_function_simulator/noir-structs/note_data.d.ts.map +1 -0
  73. package/dest/contract_function_simulator/noir-structs/note_data.js +3 -0
  74. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +3 -2
  75. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
  76. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +3 -3
  77. package/dest/contract_function_simulator/noir-structs/option.d.ts +9 -11
  78. package/dest/contract_function_simulator/noir-structs/option.d.ts.map +1 -1
  79. package/dest/contract_function_simulator/noir-structs/option.js +18 -13
  80. package/dest/contract_function_simulator/noir-structs/origin_block.d.ts +11 -0
  81. package/dest/contract_function_simulator/noir-structs/origin_block.d.ts.map +1 -0
  82. package/dest/contract_function_simulator/noir-structs/origin_block.js +5 -0
  83. package/dest/contract_function_simulator/noir-structs/pending_tagged_log.d.ts +11 -0
  84. package/dest/contract_function_simulator/noir-structs/pending_tagged_log.d.ts.map +1 -0
  85. package/dest/contract_function_simulator/noir-structs/pending_tagged_log.js +4 -0
  86. package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts +8 -0
  87. package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts.map +1 -0
  88. package/dest/contract_function_simulator/noir-structs/provided_secret.js +1 -0
  89. package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.d.ts +28 -0
  90. package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.d.ts.map +1 -0
  91. package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.js +50 -0
  92. package/dest/contract_function_simulator/noir-structs/resolved_tx.d.ts +19 -0
  93. package/dest/contract_function_simulator/noir-structs/resolved_tx.d.ts.map +1 -0
  94. package/dest/contract_function_simulator/noir-structs/resolved_tx.js +9 -0
  95. package/dest/contract_function_simulator/noir-structs/tx_effect_data.d.ts +15 -0
  96. package/dest/contract_function_simulator/noir-structs/tx_effect_data.d.ts.map +1 -0
  97. package/dest/contract_function_simulator/noir-structs/tx_effect_data.js +5 -0
  98. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +6 -11
  99. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -1
  100. package/dest/contract_function_simulator/noir-structs/utility_context.js +1 -20
  101. package/dest/contract_function_simulator/oracle/acir_callback.d.ts +21 -0
  102. package/dest/contract_function_simulator/oracle/acir_callback.d.ts.map +1 -0
  103. package/dest/contract_function_simulator/oracle/acir_callback.js +115 -0
  104. package/dest/contract_function_simulator/oracle/index.d.ts +2 -13
  105. package/dest/contract_function_simulator/oracle/index.d.ts.map +1 -1
  106. package/dest/contract_function_simulator/oracle/index.js +1 -1
  107. package/dest/contract_function_simulator/oracle/interfaces.d.ts +15 -114
  108. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
  109. package/dest/contract_function_simulator/oracle/interfaces.js +2 -2
  110. package/dest/contract_function_simulator/oracle/legacy_oracle_registry.d.ts +39 -0
  111. package/dest/contract_function_simulator/oracle/legacy_oracle_registry.d.ts.map +1 -0
  112. package/dest/contract_function_simulator/oracle/legacy_oracle_registry.js +107 -0
  113. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +3 -14
  114. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -1
  115. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.js +1 -24
  116. package/dest/contract_function_simulator/oracle/oracle_registry.d.ts +92 -100
  117. package/dest/contract_function_simulator/oracle/oracle_registry.d.ts.map +1 -1
  118. package/dest/contract_function_simulator/oracle/oracle_registry.js +296 -479
  119. package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts +274 -0
  120. package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts.map +1 -0
  121. package/dest/contract_function_simulator/oracle/oracle_type_mappings.js +1253 -0
  122. package/dest/contract_function_simulator/oracle/private_execution.d.ts +1 -1
  123. package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
  124. package/dest/contract_function_simulator/oracle/private_execution.js +2 -3
  125. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +32 -21
  126. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  127. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +152 -49
  128. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +97 -37
  129. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  130. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +376 -138
  131. package/dest/contract_function_simulator/transient_array_service.d.ts +31 -0
  132. package/dest/contract_function_simulator/transient_array_service.d.ts.map +1 -0
  133. package/dest/contract_function_simulator/transient_array_service.js +62 -0
  134. package/dest/debug/pxe_debug_utils.d.ts +2 -2
  135. package/dest/debug/pxe_debug_utils.d.ts.map +1 -1
  136. package/dest/entrypoints/client/bundle/index.d.ts +2 -1
  137. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  138. package/dest/entrypoints/client/bundle/index.js +1 -0
  139. package/dest/entrypoints/client/bundle/utils.d.ts +1 -1
  140. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  141. package/dest/entrypoints/client/bundle/utils.js +17 -6
  142. package/dest/entrypoints/client/lazy/index.d.ts +2 -1
  143. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  144. package/dest/entrypoints/client/lazy/index.js +1 -0
  145. package/dest/entrypoints/client/lazy/utils.d.ts +1 -1
  146. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  147. package/dest/entrypoints/client/lazy/utils.js +17 -6
  148. package/dest/entrypoints/client/store.d.ts +14 -0
  149. package/dest/entrypoints/client/store.d.ts.map +1 -0
  150. package/dest/entrypoints/client/store.js +42 -0
  151. package/dest/entrypoints/pxe_creation_options.d.ts +9 -3
  152. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  153. package/dest/entrypoints/server/index.d.ts +6 -3
  154. package/dest/entrypoints/server/index.d.ts.map +1 -1
  155. package/dest/entrypoints/server/index.js +4 -2
  156. package/dest/entrypoints/server/store.d.ts +18 -0
  157. package/dest/entrypoints/server/store.d.ts.map +1 -0
  158. package/dest/entrypoints/server/store.js +28 -0
  159. package/dest/entrypoints/server/utils.d.ts +1 -1
  160. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  161. package/dest/entrypoints/server/utils.js +16 -4
  162. package/dest/error_enriching.d.ts +5 -3
  163. package/dest/error_enriching.d.ts.map +1 -1
  164. package/dest/error_enriching.js +13 -11
  165. package/dest/events/event_service.d.ts +13 -6
  166. package/dest/events/event_service.d.ts.map +1 -1
  167. package/dest/events/event_service.js +13 -13
  168. package/dest/hooks/execution_hooks.d.ts +31 -11
  169. package/dest/hooks/execution_hooks.d.ts.map +1 -1
  170. package/dest/hooks/execution_hooks.js +3 -3
  171. package/dest/hooks/index.d.ts +4 -3
  172. package/dest/hooks/index.d.ts.map +1 -1
  173. package/dest/hooks/index.js +1 -0
  174. package/dest/hooks/resolve_custom_request.d.ts +23 -0
  175. package/dest/hooks/resolve_custom_request.d.ts.map +1 -0
  176. package/dest/hooks/resolve_custom_request.js +3 -0
  177. package/dest/hooks/resolve_tagging_secret_strategy.d.ts +50 -0
  178. package/dest/hooks/resolve_tagging_secret_strategy.d.ts.map +1 -0
  179. package/dest/hooks/resolve_tagging_secret_strategy.js +3 -0
  180. package/dest/logs/log_service.d.ts +18 -8
  181. package/dest/logs/log_service.d.ts.map +1 -1
  182. package/dest/logs/log_service.js +93 -45
  183. package/dest/messages/tx_resolver_service.d.ts +28 -0
  184. package/dest/messages/tx_resolver_service.d.ts.map +1 -0
  185. package/dest/messages/tx_resolver_service.js +61 -0
  186. package/dest/node/benchmarked_node.d.ts +20 -0
  187. package/dest/node/benchmarked_node.d.ts.map +1 -0
  188. package/dest/node/benchmarked_node.js +94 -0
  189. package/dest/node/caching_aztec_node.d.ts +24 -0
  190. package/dest/node/caching_aztec_node.d.ts.map +1 -0
  191. package/dest/node/caching_aztec_node.js +267 -0
  192. package/dest/notes/note_service.d.ts +13 -7
  193. package/dest/notes/note_service.d.ts.map +1 -1
  194. package/dest/notes/note_service.js +10 -10
  195. package/dest/oracle_version.d.ts +3 -3
  196. package/dest/oracle_version.js +8 -8
  197. package/dest/private_kernel/batch_planner.d.ts +1 -1
  198. package/dest/private_kernel/batch_planner.d.ts.map +1 -1
  199. package/dest/private_kernel/batch_planner.js +1 -1
  200. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +1 -1
  201. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -1
  202. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.js +6 -2
  203. package/dest/private_kernel/hints/test_utils.js +1 -1
  204. package/dest/private_kernel/private_kernel_execution_prover.d.ts +1 -1
  205. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  206. package/dest/private_kernel/private_kernel_execution_prover.js +61 -40
  207. package/dest/private_kernel/private_kernel_oracle.d.ts +4 -2
  208. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  209. package/dest/private_kernel/private_kernel_oracle.js +17 -5
  210. package/dest/pxe.d.ts +114 -48
  211. package/dest/pxe.d.ts.map +1 -1
  212. package/dest/pxe.js +251 -148
  213. package/dest/storage/allowed_scopes.d.ts +6 -0
  214. package/dest/storage/allowed_scopes.d.ts.map +1 -0
  215. package/dest/storage/allowed_scopes.js +7 -0
  216. package/dest/storage/anchor_block_store/anchor_block_store.d.ts +9 -6
  217. package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -1
  218. package/dest/storage/anchor_block_store/anchor_block_store.js +8 -6
  219. package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts +1 -1
  220. package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts.map +1 -1
  221. package/dest/storage/backwards_compatibility_tests/schema_tests.js +129 -49
  222. package/dest/storage/capsule_store/capsule_service.d.ts +1 -1
  223. package/dest/storage/capsule_store/capsule_service.d.ts.map +1 -1
  224. package/dest/storage/capsule_store/capsule_service.js +6 -9
  225. package/dest/storage/contract_store/contract_store.d.ts +27 -24
  226. package/dest/storage/contract_store/contract_store.d.ts.map +1 -1
  227. package/dest/storage/contract_store/contract_store.js +66 -77
  228. package/dest/storage/fact_store/fact_service.d.ts +22 -0
  229. package/dest/storage/fact_store/fact_service.d.ts.map +1 -0
  230. package/dest/storage/fact_store/fact_service.js +45 -0
  231. package/dest/storage/fact_store/fact_store.d.ts +95 -0
  232. package/dest/storage/fact_store/fact_store.d.ts.map +1 -0
  233. package/dest/storage/fact_store/fact_store.js +408 -0
  234. package/dest/storage/fact_store/fact_store_keys.d.ts +34 -0
  235. package/dest/storage/fact_store/fact_store_keys.d.ts.map +1 -0
  236. package/dest/storage/fact_store/fact_store_keys.js +50 -0
  237. package/dest/storage/fact_store/index.d.ts +6 -0
  238. package/dest/storage/fact_store/index.d.ts.map +1 -0
  239. package/dest/storage/fact_store/index.js +4 -0
  240. package/dest/storage/fact_store/origin_state.d.ts +59 -0
  241. package/dest/storage/fact_store/origin_state.d.ts.map +1 -0
  242. package/dest/storage/fact_store/origin_state.js +60 -0
  243. package/dest/storage/fact_store/stored_fact.d.ts +32 -0
  244. package/dest/storage/fact_store/stored_fact.d.ts.map +1 -0
  245. package/dest/storage/fact_store/stored_fact.js +64 -0
  246. package/dest/storage/index.d.ts +3 -2
  247. package/dest/storage/index.d.ts.map +1 -1
  248. package/dest/storage/index.js +2 -1
  249. package/dest/storage/metadata.d.ts +2 -2
  250. package/dest/storage/metadata.d.ts.map +1 -1
  251. package/dest/storage/metadata.js +1 -1
  252. package/dest/storage/note_store/note_store.d.ts +42 -33
  253. package/dest/storage/note_store/note_store.d.ts.map +1 -1
  254. package/dest/storage/note_store/note_store.js +197 -168
  255. package/dest/storage/note_store/stored_note.d.ts +3 -8
  256. package/dest/storage/note_store/stored_note.d.ts.map +1 -1
  257. package/dest/storage/note_store/stored_note.js +4 -20
  258. package/dest/storage/open_pxe_stores.d.ts +5 -3
  259. package/dest/storage/open_pxe_stores.d.ts.map +1 -1
  260. package/dest/storage/open_pxe_stores.js +5 -3
  261. package/dest/storage/private_event_store/private_event_store.d.ts +13 -16
  262. package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -1
  263. package/dest/storage/private_event_store/private_event_store.js +40 -43
  264. package/dest/storage/store_identity.d.ts +35 -0
  265. package/dest/storage/store_identity.d.ts.map +1 -0
  266. package/dest/storage/store_identity.js +44 -0
  267. package/dest/storage/tagging_store/index.d.ts +2 -2
  268. package/dest/storage/tagging_store/index.d.ts.map +1 -1
  269. package/dest/storage/tagging_store/index.js +1 -1
  270. package/dest/storage/tagging_store/sender_tagging_store.d.ts +41 -10
  271. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -1
  272. package/dest/storage/tagging_store/sender_tagging_store.js +81 -29
  273. package/dest/storage/tagging_store/tagging_secret_sources_store.d.ts +51 -0
  274. package/dest/storage/tagging_store/tagging_secret_sources_store.d.ts.map +1 -0
  275. package/dest/storage/tagging_store/tagging_secret_sources_store.js +105 -0
  276. package/dest/tagging/constants.d.ts +11 -2
  277. package/dest/tagging/constants.d.ts.map +1 -1
  278. package/dest/tagging/constants.js +38 -10
  279. package/dest/tagging/get_all_logs_by_tags.d.ts +29 -8
  280. package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -1
  281. package/dest/tagging/get_all_logs_by_tags.js +29 -10
  282. package/dest/tagging/index.d.ts +3 -3
  283. package/dest/tagging/index.d.ts.map +1 -1
  284. package/dest/tagging/index.js +2 -2
  285. package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts +27 -9
  286. package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts.map +1 -1
  287. package/dest/tagging/recipient_sync/sync_tagged_private_logs.js +104 -33
  288. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +6 -3
  289. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -1
  290. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +23 -36
  291. package/dest/tagging/sender_sync/utils/classify_pending_txs.d.ts +22 -0
  292. package/dest/tagging/sender_sync/utils/classify_pending_txs.d.ts.map +1 -0
  293. package/dest/tagging/sender_sync/utils/classify_pending_txs.js +61 -0
  294. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +15 -5
  295. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -1
  296. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +36 -35
  297. package/dest/tagging/sender_sync/utils/resolve_pending_txs.d.ts +29 -0
  298. package/dest/tagging/sender_sync/utils/resolve_pending_txs.d.ts.map +1 -0
  299. package/dest/tagging/sender_sync/utils/resolve_pending_txs.js +41 -0
  300. package/dest/tagging/sender_sync/utils/test_utils.d.ts +16 -0
  301. package/dest/tagging/sender_sync/utils/test_utils.d.ts.map +1 -0
  302. package/dest/tagging/sender_sync/utils/test_utils.js +24 -0
  303. package/dest/tagging/testing/tag_query_test_utils.d.ts +6 -0
  304. package/dest/tagging/testing/tag_query_test_utils.d.ts.map +1 -0
  305. package/dest/tagging/testing/tag_query_test_utils.js +10 -0
  306. package/package.json +17 -17
  307. package/src/bin/check_oracle_version.ts +8 -151
  308. package/src/bin/index.ts +1 -1
  309. package/src/bin/oracle_version_helpers.ts +30 -0
  310. package/src/block_synchronizer/block_stream_source.ts +6 -45
  311. package/src/block_synchronizer/block_synchronizer.ts +54 -30
  312. package/src/config/index.ts +1 -0
  313. package/src/config/package_info.ts +1 -1
  314. package/src/contract/contract_class_service.ts +45 -0
  315. package/src/{contract_sync → contract}/contract_sync_service.ts +37 -50
  316. package/src/contract/helpers.ts +35 -0
  317. package/src/contract/skip_sync_contracts.ts +23 -0
  318. package/src/contract_function_simulator/anchored_contract_data.ts +74 -0
  319. package/src/contract_function_simulator/contract_function_simulator.ts +96 -59
  320. package/src/contract_function_simulator/execution_note_cache.ts +8 -29
  321. package/src/contract_function_simulator/index.ts +87 -5
  322. package/src/contract_function_simulator/noir-structs/bounded_vec.ts +12 -24
  323. package/src/contract_function_simulator/noir-structs/contract_class_log_data.ts +9 -0
  324. package/src/contract_function_simulator/noir-structs/embedded_curve_point.ts +4 -0
  325. package/src/contract_function_simulator/noir-structs/ephemeral_array.ts +66 -0
  326. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +3 -3
  327. package/src/contract_function_simulator/noir-structs/fact.ts +13 -0
  328. package/src/contract_function_simulator/noir-structs/fact_collection.ts +64 -0
  329. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +20 -46
  330. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +13 -60
  331. package/src/contract_function_simulator/noir-structs/note_data.ts +27 -0
  332. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +4 -4
  333. package/src/contract_function_simulator/noir-structs/option.ts +17 -11
  334. package/src/contract_function_simulator/noir-structs/origin_block.ts +8 -0
  335. package/src/contract_function_simulator/noir-structs/pending_tagged_log.ts +12 -0
  336. package/src/contract_function_simulator/noir-structs/provided_secret.ts +5 -0
  337. package/src/contract_function_simulator/noir-structs/resolved_tagging_strategy.ts +66 -0
  338. package/src/contract_function_simulator/noir-structs/resolved_tx.ts +19 -0
  339. package/src/contract_function_simulator/noir-structs/tx_effect_data.ts +16 -0
  340. package/src/contract_function_simulator/noir-structs/utility_context.ts +5 -17
  341. package/src/contract_function_simulator/oracle/acir_callback.ts +154 -0
  342. package/src/contract_function_simulator/oracle/index.ts +1 -15
  343. package/src/contract_function_simulator/oracle/interfaces.ts +11 -189
  344. package/src/contract_function_simulator/oracle/legacy_oracle_registry.ts +147 -0
  345. package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +6 -21
  346. package/src/contract_function_simulator/oracle/oracle_registry.ts +289 -483
  347. package/src/contract_function_simulator/oracle/oracle_type_mappings.ts +1067 -0
  348. package/src/contract_function_simulator/oracle/private_execution.ts +2 -3
  349. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +190 -61
  350. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +556 -174
  351. package/src/contract_function_simulator/transient_array_service.ts +91 -0
  352. package/src/debug/pxe_debug_utils.ts +1 -1
  353. package/src/entrypoints/client/bundle/index.ts +1 -0
  354. package/src/entrypoints/client/bundle/utils.ts +24 -5
  355. package/src/entrypoints/client/lazy/index.ts +1 -0
  356. package/src/entrypoints/client/lazy/utils.ts +24 -5
  357. package/src/entrypoints/client/store.ts +54 -0
  358. package/src/entrypoints/pxe_creation_options.ts +8 -2
  359. package/src/entrypoints/server/index.ts +6 -2
  360. package/src/entrypoints/server/store.ts +47 -0
  361. package/src/entrypoints/server/utils.ts +31 -9
  362. package/src/error_enriching.ts +27 -11
  363. package/src/events/event_service.ts +24 -14
  364. package/src/hooks/execution_hooks.ts +32 -12
  365. package/src/hooks/index.ts +8 -2
  366. package/src/hooks/resolve_custom_request.ts +24 -0
  367. package/src/hooks/resolve_tagging_secret_strategy.ts +60 -0
  368. package/src/logs/log_service.ts +122 -61
  369. package/src/messages/tx_resolver_service.ts +80 -0
  370. package/src/node/benchmarked_node.ts +140 -0
  371. package/src/node/caching_aztec_node.ts +406 -0
  372. package/src/notes/note_service.ts +20 -14
  373. package/src/oracle_version.ts +8 -8
  374. package/src/private_kernel/batch_planner.ts +0 -1
  375. package/src/private_kernel/hints/private_kernel_reset_private_inputs_builder.ts +11 -1
  376. package/src/private_kernel/hints/test_utils.ts +1 -1
  377. package/src/private_kernel/private_kernel_execution_prover.ts +112 -56
  378. package/src/private_kernel/private_kernel_oracle.ts +23 -4
  379. package/src/pxe.ts +357 -172
  380. package/src/storage/allowed_scopes.ts +14 -0
  381. package/src/storage/anchor_block_store/anchor_block_store.ts +8 -6
  382. package/src/storage/backwards_compatibility_tests/__snapshots__/AddressStore.json +6 -6
  383. package/src/storage/backwards_compatibility_tests/__snapshots__/ContractStore.json +1 -1
  384. package/src/storage/backwards_compatibility_tests/__snapshots__/FactStore.json +40 -0
  385. package/src/storage/backwards_compatibility_tests/__snapshots__/KeyStore.json +12 -12
  386. package/src/storage/backwards_compatibility_tests/__snapshots__/L2TipsKVStore.json +9 -15
  387. package/src/storage/backwards_compatibility_tests/__snapshots__/NoteStore.json +24 -4
  388. package/src/storage/backwards_compatibility_tests/__snapshots__/RecipientTaggingStore.json +11 -3
  389. package/src/storage/backwards_compatibility_tests/__snapshots__/SenderTaggingStore.json +12 -4
  390. package/src/storage/backwards_compatibility_tests/__snapshots__/TaggingSecretSourcesStore.json +30 -0
  391. package/src/storage/backwards_compatibility_tests/__snapshots__/opened_stores.json +29 -9
  392. package/src/storage/backwards_compatibility_tests/schema_tests.ts +141 -50
  393. package/src/storage/capsule_store/capsule_service.ts +8 -13
  394. package/src/storage/contract_store/contract_store.ts +88 -94
  395. package/src/storage/fact_store/fact_service.ts +69 -0
  396. package/src/storage/fact_store/fact_store.ts +487 -0
  397. package/src/storage/fact_store/fact_store_keys.ts +75 -0
  398. package/src/storage/fact_store/index.ts +15 -0
  399. package/src/storage/fact_store/origin_state.ts +84 -0
  400. package/src/storage/fact_store/stored_fact.ts +80 -0
  401. package/src/storage/index.ts +2 -1
  402. package/src/storage/metadata.ts +1 -1
  403. package/src/storage/note_store/note_store.ts +226 -187
  404. package/src/storage/note_store/stored_note.ts +5 -27
  405. package/src/storage/open_pxe_stores.ts +6 -3
  406. package/src/storage/private_event_store/private_event_store.ts +49 -55
  407. package/src/storage/store_identity.ts +72 -0
  408. package/src/storage/tagging_store/index.ts +1 -1
  409. package/src/storage/tagging_store/sender_tagging_store.ts +113 -41
  410. package/src/storage/tagging_store/tagging_secret_sources_store.ts +138 -0
  411. package/src/tagging/constants.ts +42 -10
  412. package/src/tagging/get_all_logs_by_tags.ts +47 -11
  413. package/src/tagging/index.ts +7 -2
  414. package/src/tagging/recipient_sync/sync_tagged_private_logs.ts +161 -46
  415. package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +27 -57
  416. package/src/tagging/sender_sync/utils/classify_pending_txs.ts +91 -0
  417. package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +46 -40
  418. package/src/tagging/sender_sync/utils/resolve_pending_txs.ts +64 -0
  419. package/src/tagging/sender_sync/utils/test_utils.ts +46 -0
  420. package/src/tagging/testing/tag_query_test_utils.ts +11 -0
  421. package/dest/contract_function_simulator/benchmarked_node.d.ts +0 -9
  422. package/dest/contract_function_simulator/benchmarked_node.d.ts.map +0 -1
  423. package/dest/contract_function_simulator/benchmarked_node.js +0 -77
  424. package/dest/contract_function_simulator/oracle/oracle.d.ts +0 -89
  425. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +0 -1
  426. package/dest/contract_function_simulator/oracle/oracle.js +0 -552
  427. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +0 -6
  428. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +0 -1
  429. package/dest/contract_function_simulator/proxied_contract_data_source.js +0 -51
  430. package/dest/contract_sync/contract_sync_service.d.ts +0 -42
  431. package/dest/contract_sync/contract_sync_service.d.ts.map +0 -1
  432. package/dest/contract_sync/helpers.d.ts +0 -27
  433. package/dest/contract_sync/helpers.d.ts.map +0 -1
  434. package/dest/contract_sync/helpers.js +0 -53
  435. package/dest/messages/message_context_service.d.ts +0 -17
  436. package/dest/messages/message_context_service.d.ts.map +0 -1
  437. package/dest/messages/message_context_service.js +0 -38
  438. package/dest/storage/tagging_store/sender_address_book_store.d.ts +0 -14
  439. package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +0 -1
  440. package/dest/storage/tagging_store/sender_address_book_store.js +0 -36
  441. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +0 -17
  442. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +0 -1
  443. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +0 -60
  444. package/src/contract_function_simulator/benchmarked_node.ts +0 -103
  445. package/src/contract_function_simulator/oracle/oracle.ts +0 -711
  446. package/src/contract_function_simulator/proxied_contract_data_source.ts +0 -60
  447. package/src/contract_sync/helpers.ts +0 -86
  448. package/src/messages/message_context_service.ts +0 -45
  449. package/src/storage/backwards_compatibility_tests/__snapshots__/SenderAddressBookStore.json +0 -16
  450. package/src/storage/tagging_store/sender_address_book_store.ts +0 -48
  451. package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +0 -66
@@ -1,3 +1,4 @@
1
+ import { CircuitKind } from '@aztec/bb.js';
1
2
  import {
2
3
  AVM_EMITNOTEHASH_BASE_L2_GAS,
3
4
  AVM_EMITNULLIFIER_BASE_L2_GAS,
@@ -19,6 +20,7 @@ import {
19
20
  MAX_PRIVATE_LOGS_PER_TX,
20
21
  MAX_TX_LIFETIME,
21
22
  PRIVATE_TX_L2_GAS_OVERHEAD,
23
+ PUBLIC_DATA_WRITE_LENGTH,
22
24
  PUBLIC_TX_L2_GAS_OVERHEAD,
23
25
  TX_DA_GAS_OVERHEAD,
24
26
  } from '@aztec/constants';
@@ -80,6 +82,7 @@ import { MerkleTreeId } from '@aztec/stdlib/trees';
80
82
  import {
81
83
  BlockHeader,
82
84
  CallContext,
85
+ type ContractOverrides,
83
86
  HashedValues,
84
87
  type OffchainEffect,
85
88
  PrivateExecutionResult,
@@ -90,33 +93,33 @@ import {
90
93
  getFinalMinRevertibleSideEffectCounter,
91
94
  } from '@aztec/stdlib/tx';
92
95
 
93
- import type { ContractSyncService } from '../contract_sync/contract_sync_service.js';
96
+ import type { ContractClassService } from '../contract/contract_class_service.js';
97
+ import type { ContractSyncService } from '../contract/contract_sync_service.js';
94
98
  import type { ExecutionHooks } from '../hooks/index.js';
95
- import type { MessageContextService } from '../messages/message_context_service.js';
99
+ import type { TxResolverService } from '../messages/tx_resolver_service.js';
96
100
  import type { AddressStore } from '../storage/address_store/address_store.js';
97
101
  import { CapsuleService } from '../storage/capsule_store/capsule_service.js';
98
102
  import type { CapsuleStore } from '../storage/capsule_store/capsule_store.js';
99
103
  import type { ContractStore } from '../storage/contract_store/contract_store.js';
104
+ import { FactService } from '../storage/fact_store/index.js';
105
+ import type { FactStore } from '../storage/fact_store/index.js';
100
106
  import type { NoteStore } from '../storage/note_store/note_store.js';
101
107
  import type { PrivateEventStore } from '../storage/private_event_store/private_event_store.js';
102
108
  import type { RecipientTaggingStore } from '../storage/tagging_store/recipient_tagging_store.js';
103
- import type { SenderAddressBookStore } from '../storage/tagging_store/sender_address_book_store.js';
104
109
  import type { SenderTaggingStore } from '../storage/tagging_store/sender_tagging_store.js';
105
- import type { BenchmarkedNode } from './benchmarked_node.js';
110
+ import type { TaggingSecretSourcesStore } from '../storage/tagging_store/tagging_secret_sources_store.js';
111
+ import { AnchoredContractData } from './anchored_contract_data.js';
106
112
  import { ExecutionNoteCache } from './execution_note_cache.js';
107
113
  import { ExecutionTaggingIndexCache } from './execution_tagging_index_cache.js';
108
114
  import { HashedValuesCache } from './hashed_values_cache.js';
109
- import { Oracle } from './oracle/oracle.js';
115
+ import { buildACIRCallback } from './oracle/acir_callback.js';
110
116
  import { executePrivateFunction } from './oracle/private_execution.js';
111
117
  import { PrivateExecutionOracle } from './oracle/private_execution_oracle.js';
112
118
  import { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
119
+ import { TransientArrayService } from './transient_array_service.js';
113
120
 
114
121
  /** Options for ContractFunctionSimulator.run. */
115
122
  export type ContractSimulatorRunOpts = {
116
- /** The address of the contract (should match request.origin). */
117
- contractAddress: AztecAddress;
118
- /** The function selector of the entry point. */
119
- selector: FunctionSelector;
120
123
  /** The address calling the function. Can be replaced to simulate a call from another contract or account. */
121
124
  msgSender?: AztecAddress;
122
125
  /** The block header to use as base state for this run. */
@@ -132,6 +135,9 @@ export type ContractSimulatorRunOpts = {
132
135
  /** Args for ContractFunctionSimulator constructor. */
133
136
  export type ContractFunctionSimulatorArgs = {
134
137
  contractStore: ContractStore;
138
+ contractClassService: ContractClassService;
139
+ /** Per-simulation contract overrides. */
140
+ overrides?: ContractOverrides;
135
141
  noteStore: NoteStore;
136
142
  keyStore: KeyStore;
137
143
  addressStore: AddressStore;
@@ -139,12 +145,13 @@ export type ContractFunctionSimulatorArgs = {
139
145
  l2TipsStore: L2TipsProvider;
140
146
  senderTaggingStore: SenderTaggingStore;
141
147
  recipientTaggingStore: RecipientTaggingStore;
142
- senderAddressBookStore: SenderAddressBookStore;
148
+ taggingSecretSourcesStore: TaggingSecretSourcesStore;
143
149
  capsuleStore: CapsuleStore;
150
+ factStore: FactStore;
144
151
  privateEventStore: PrivateEventStore;
145
152
  simulator: CircuitSimulator;
146
153
  contractSyncService: ContractSyncService;
147
- messageContextService: MessageContextService;
154
+ txResolver: TxResolverService;
148
155
  hooks?: ExecutionHooks;
149
156
  };
150
157
 
@@ -154,6 +161,8 @@ export type ContractFunctionSimulatorArgs = {
154
161
  export class ContractFunctionSimulator {
155
162
  private readonly log: Logger;
156
163
  private readonly contractStore: ContractStore;
164
+ private readonly contractClassService: ContractClassService;
165
+ private readonly overrides: ContractOverrides | undefined;
157
166
  private readonly noteStore: NoteStore;
158
167
  private readonly keyStore: KeyStore;
159
168
  private readonly addressStore: AddressStore;
@@ -161,16 +170,19 @@ export class ContractFunctionSimulator {
161
170
  private readonly l2TipsStore: L2TipsProvider;
162
171
  private readonly senderTaggingStore: SenderTaggingStore;
163
172
  private readonly recipientTaggingStore: RecipientTaggingStore;
164
- private readonly senderAddressBookStore: SenderAddressBookStore;
173
+ private readonly taggingSecretSourcesStore: TaggingSecretSourcesStore;
165
174
  private readonly capsuleStore: CapsuleStore;
175
+ private readonly factStore: FactStore;
166
176
  private readonly privateEventStore: PrivateEventStore;
167
177
  private readonly simulator: CircuitSimulator;
168
178
  private readonly contractSyncService: ContractSyncService;
169
- private readonly messageContextService: MessageContextService;
179
+ private readonly txResolver: TxResolverService;
170
180
  private readonly hooks: ExecutionHooks | undefined;
171
181
 
172
182
  constructor(args: ContractFunctionSimulatorArgs) {
173
183
  this.contractStore = args.contractStore;
184
+ this.contractClassService = args.contractClassService;
185
+ this.overrides = args.overrides;
174
186
  this.noteStore = args.noteStore;
175
187
  this.keyStore = args.keyStore;
176
188
  this.addressStore = args.addressStore;
@@ -178,12 +190,13 @@ export class ContractFunctionSimulator {
178
190
  this.l2TipsStore = args.l2TipsStore;
179
191
  this.senderTaggingStore = args.senderTaggingStore;
180
192
  this.recipientTaggingStore = args.recipientTaggingStore;
181
- this.senderAddressBookStore = args.senderAddressBookStore;
193
+ this.taggingSecretSourcesStore = args.taggingSecretSourcesStore;
182
194
  this.capsuleStore = args.capsuleStore;
195
+ this.factStore = args.factStore;
183
196
  this.privateEventStore = args.privateEventStore;
184
197
  this.simulator = args.simulator;
185
198
  this.contractSyncService = args.contractSyncService;
186
- this.messageContextService = args.messageContextService;
199
+ this.txResolver = args.txResolver;
187
200
  this.hooks = args.hooks;
188
201
  this.log = createLogger('simulator');
189
202
  }
@@ -195,9 +208,7 @@ export class ContractFunctionSimulator {
195
208
  public async run(
196
209
  request: TxExecutionRequest,
197
210
  {
198
- contractAddress,
199
- selector,
200
- msgSender = AztecAddress.fromField(Fr.MAX_FIELD_VALUE),
211
+ msgSender = AztecAddress.NULL_MSG_SENDER,
201
212
  anchorBlockHeader,
202
213
  senderForTags,
203
214
  scopes,
@@ -206,18 +217,30 @@ export class ContractFunctionSimulator {
206
217
  ): Promise<PrivateExecutionResult> {
207
218
  const simulatorSetupTimer = new Timer();
208
219
 
209
- const entryPointArtifact = await this.contractStore.getFunctionArtifactWithDebugMetadata(contractAddress, selector);
220
+ const contractAddress = request.origin;
210
221
 
211
- if (entryPointArtifact.functionType !== FunctionType.PRIVATE) {
212
- throw new Error(`Cannot run ${entryPointArtifact.functionType} function as private`);
213
- }
222
+ const anchoredContractData = new AnchoredContractData(
223
+ this.contractStore,
224
+ this.contractClassService,
225
+ anchorBlockHeader,
226
+ this.overrides,
227
+ );
214
228
 
215
- if (request.origin !== contractAddress) {
229
+ const entryPointArtifact = await anchoredContractData.getFunctionArtifactWithDebugMetadata(
230
+ contractAddress,
231
+ request.functionSelector,
232
+ );
233
+ if (!entryPointArtifact) {
216
234
  throw new Error(
217
- `Request origin does not match contract address in simulation. Request origin: ${request.origin}, contract address: ${contractAddress}`,
235
+ `Cannot run function ${request.functionSelector} on ${contractAddress}: the contract is not registered. ` +
236
+ `Register it via wallet.registerContract(...).`,
218
237
  );
219
238
  }
220
239
 
240
+ if (entryPointArtifact.functionType !== FunctionType.PRIVATE) {
241
+ throw new Error(`Cannot run ${entryPointArtifact.functionType} function as private`);
242
+ }
243
+
221
244
  // reserve the first side effect for the tx hash (inserted by the private kernel)
222
245
  const startSideEffectCounter = 2;
223
246
 
@@ -232,9 +255,15 @@ export class ContractFunctionSimulator {
232
255
  const noteCache = new ExecutionNoteCache(protocolNullifier);
233
256
  const taggingIndexCache = new ExecutionTaggingIndexCache();
234
257
 
258
+ // One shared transient store for the whole execution tree rooted at this transaction. Threaded into every child
259
+ // private oracle and inherited by nested utility frames, so that frames of the same contract see each other's
260
+ // transient arrays, then discarded when run() returns.
261
+ const transientArrayService = new TransientArrayService();
262
+
235
263
  const privateExecutionOracle = new PrivateExecutionOracle({
236
264
  argsHash: request.firstCallArgsHash,
237
265
  txContext: request.txContext,
266
+ txRequestSalt: request.salt,
238
267
  callContext,
239
268
  anchorBlockHeader,
240
269
  utilityExecutor: async (call, execScopes) => {
@@ -245,17 +274,18 @@ export class ContractFunctionSimulator {
245
274
  executionCache: HashedValuesCache.create(request.argsOfCalls),
246
275
  noteCache,
247
276
  taggingIndexCache,
248
- contractStore: this.contractStore,
277
+ anchoredContractData,
249
278
  noteStore: this.noteStore,
250
279
  keyStore: this.keyStore,
251
280
  addressStore: this.addressStore,
252
281
  aztecNode: this.aztecNode,
253
282
  senderTaggingStore: this.senderTaggingStore,
254
283
  recipientTaggingStore: this.recipientTaggingStore,
255
- senderAddressBookStore: this.senderAddressBookStore,
284
+ taggingSecretSourcesStore: this.taggingSecretSourcesStore,
256
285
  capsuleService: new CapsuleService(this.capsuleStore, scopes),
286
+ factService: new FactService(this.factStore, scopes),
257
287
  privateEventStore: this.privateEventStore,
258
- messageContextService: this.messageContextService,
288
+ txResolver: this.txResolver,
259
289
  contractSyncService: this.contractSyncService,
260
290
  jobId,
261
291
  totalPublicCalldataCount: 0,
@@ -265,6 +295,7 @@ export class ContractFunctionSimulator {
265
295
  simulator: this.simulator,
266
296
  l2TipsStore: this.l2TipsStore,
267
297
  hooks: this.hooks,
298
+ transientArrayService,
268
299
  });
269
300
 
270
301
  const setupTime = simulatorSetupTimer.ms();
@@ -283,7 +314,6 @@ export class ContractFunctionSimulator {
283
314
  );
284
315
  const simulatorTeardownTimer = new Timer();
285
316
 
286
- noteCache.finish();
287
317
  const firstNullifierHint = noteCache.getNonceGenerator();
288
318
 
289
319
  const publicCallRequests = collectNested([executionResult], r =>
@@ -318,10 +348,6 @@ export class ContractFunctionSimulator {
318
348
  /**
319
349
  * Runs a utility function.
320
350
  * @param call - The function call to execute.
321
- * @param authwits - Authentication witnesses required for the function call.
322
- * @param anchorBlockHeader - The block header to use as base state for this run.
323
- * @param scopes - Optional array of account addresses whose notes can be accessed in this call. Defaults to all
324
- * accounts if not specified.
325
351
  * @returns A return value of the utility function in a form as returned by the simulator (Noir fields)
326
352
  */
327
353
  public async runUtility(
@@ -331,7 +357,20 @@ export class ContractFunctionSimulator {
331
357
  scopes: AztecAddress[],
332
358
  jobId: string,
333
359
  ): Promise<{ result: Fr[]; offchainEffects: OffchainEffect[] }> {
334
- const entryPointArtifact = await this.contractStore.getFunctionArtifactWithDebugMetadata(call.to, call.selector);
360
+ const anchoredContractData = new AnchoredContractData(
361
+ this.contractStore,
362
+ this.contractClassService,
363
+ anchorBlockHeader,
364
+ this.overrides,
365
+ );
366
+
367
+ const entryPointArtifact = await anchoredContractData.getFunctionArtifactWithDebugMetadata(call.to, call.selector);
368
+ if (!entryPointArtifact) {
369
+ throw new Error(
370
+ `Cannot run function ${call.selector} on ${call.to}: the contract is not registered. ` +
371
+ `Register it via wallet.registerContract(...).`,
372
+ );
373
+ }
335
374
 
336
375
  if (entryPointArtifact.functionType !== FunctionType.UTILITY) {
337
376
  throw new Error(`Cannot run ${entryPointArtifact.functionType} function as utility`);
@@ -342,20 +381,26 @@ export class ContractFunctionSimulator {
342
381
  };
343
382
 
344
383
  const oracle = new UtilityExecutionOracle({
345
- contractAddress: call.to,
384
+ callContext: CallContext.from({
385
+ msgSender: AztecAddress.NULL_MSG_SENDER,
386
+ contractAddress: call.to,
387
+ functionSelector: call.selector,
388
+ isStaticCall: true,
389
+ }),
346
390
  authWitnesses: authwits,
347
391
  capsules: [],
348
392
  anchorBlockHeader,
349
- contractStore: this.contractStore,
393
+ anchoredContractData,
350
394
  noteStore: this.noteStore,
351
395
  keyStore: this.keyStore,
352
396
  addressStore: this.addressStore,
353
397
  aztecNode: this.aztecNode,
354
398
  recipientTaggingStore: this.recipientTaggingStore,
355
- senderAddressBookStore: this.senderAddressBookStore,
399
+ taggingSecretSourcesStore: this.taggingSecretSourcesStore,
356
400
  capsuleService: new CapsuleService(this.capsuleStore, scopes),
401
+ factService: new FactService(this.factStore, scopes),
357
402
  privateEventStore: this.privateEventStore,
358
- messageContextService: this.messageContextService,
403
+ txResolver: this.txResolver,
359
404
  contractSyncService: this.contractSyncService,
360
405
  l2TipsStore: this.l2TipsStore,
361
406
  jobId,
@@ -363,6 +408,8 @@ export class ContractFunctionSimulator {
363
408
  simulator: this.simulator,
364
409
  hooks: this.hooks,
365
410
  utilityExecutor,
411
+ // Execution-tree root (top-level utility run or contract sync): own store; nested frames inherit it.
412
+ transientArrayService: new TransientArrayService(),
366
413
  });
367
414
 
368
415
  try {
@@ -373,7 +420,7 @@ export class ContractFunctionSimulator {
373
420
 
374
421
  const initialWitness = toACVMWitness(0, call.args);
375
422
  const acirExecutionResult = await this.simulator
376
- .executeUserCircuit(initialWitness, entryPointArtifact, new Oracle(oracle).toACIRCallback())
423
+ .executeUserCircuit(initialWitness, entryPointArtifact, buildACIRCallback(oracle))
377
424
  .catch((err: Error) => {
378
425
  err.message = resolveAssertionMessageFromError(err, entryPointArtifact);
379
426
  throw new ExecutionError(
@@ -396,22 +443,6 @@ export class ContractFunctionSimulator {
396
443
  throw createSimulationError(err instanceof Error ? err : new Error('Unknown error during private execution'));
397
444
  }
398
445
  }
399
-
400
- /**
401
- * Returns the execution statistics collected during the simulator run.
402
- * @returns The execution statistics.
403
- */
404
- getStats() {
405
- const nodeRPCCalls =
406
- typeof (this.aztecNode as BenchmarkedNode).getStats === 'function'
407
- ? (this.aztecNode as BenchmarkedNode).getStats()
408
- : {
409
- perMethod: {},
410
- roundTrips: { roundTrips: 0, totalBlockingTime: 0, roundTripDurations: [], roundTripMethods: [] },
411
- };
412
-
413
- return { nodeRPCCalls };
414
- }
415
446
  }
416
447
 
417
448
  class OrderedSideEffect<T> {
@@ -540,6 +571,7 @@ export async function generateSimulatedProvingResult(
540
571
  execution.publicInputs.callContext.functionSelector,
541
572
  ),
542
573
  timings: execution.profileResult?.timings ?? { witgen: 0, oracles: {} },
574
+ kind: CircuitKind.App,
543
575
  bytecode: execution.acir,
544
576
  vk: execution.vk,
545
577
  witness: execution.partialWitness,
@@ -608,12 +640,12 @@ export async function generateSimulatedProvingResult(
608
640
  siloedNullifiers,
609
641
  minRevertibleSideEffectCounter,
610
642
  );
643
+ // The protocol nullifier is the nonce generator and the tx's first nullifier. It is injected by the
644
+ // init kernel (at counter 1, index 0) rather than emitted by any private call, so it is absent from
645
+ // the executed nullifiers above. Mirror the kernel here by prepending it as the first non-revertible
646
+ // nullifier.
611
647
  const nonceGenerator = privateExecutionResult.firstNullifier;
612
- if (nonRevertibleNullifiers.length === 0) {
613
- nonRevertibleNullifiers.push(nonceGenerator);
614
- } else if (!nonRevertibleNullifiers[0].equals(nonceGenerator)) {
615
- throw new Error('The first non revertible nullifier should be equal to the nonce generator. This is a bug!');
616
- }
648
+ nonRevertibleNullifiers.unshift(nonceGenerator);
617
649
 
618
650
  if (isPrivateOnlyTx) {
619
651
  // We must make the note hashes unique by using the
@@ -876,6 +908,11 @@ function meterGasUsed(data: PrivateToRollupAccumulatedData | PrivateToPublicAccu
876
908
  );
877
909
  meteredL2Gas += numContractClassLogs * L2_GAS_PER_CONTRACT_CLASS_LOG;
878
910
 
911
+ if (isPrivateOnlyTx) {
912
+ // The public data write that the private tx base rollup always performs to update the fee payer's balance.
913
+ meteredDAFields += PUBLIC_DATA_WRITE_LENGTH;
914
+ }
915
+
879
916
  const meteredDAGas = meteredDAFields * DA_GAS_PER_FIELD;
880
917
 
881
918
  if ((data as PrivateToPublicAccumulatedData).publicCallRequests) {
@@ -2,7 +2,7 @@ import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
3
3
  import { computeNoteHashNonce, computeUniqueNoteHash, siloNoteHash, siloNullifier } from '@aztec/stdlib/hash';
4
4
 
5
- import type { NoteData } from './oracle/interfaces.js';
5
+ import type { NoteData } from './noir-structs/note_data.js';
6
6
 
7
7
  interface PendingNote {
8
8
  note: NoteData;
@@ -43,12 +43,6 @@ export class ExecutionNoteCache {
43
43
 
44
44
  private inRevertiblePhase = false;
45
45
 
46
- /**
47
- * Whether the protocol nullifier was used for nonce generation.
48
- * We don't need to use the protocol nullifier if a non-revertible nullifier is emitted.
49
- */
50
- private usedProtocolNullifierForNonces: boolean | undefined;
51
-
52
46
  constructor(private readonly protocolNullifier: Fr) {}
53
47
 
54
48
  /**
@@ -64,12 +58,9 @@ export class ExecutionNoteCache {
64
58
  this.inRevertiblePhase = true;
65
59
  this.minRevertibleSideEffectCounter = minRevertibleSideEffectCounter;
66
60
 
67
- const nullifiers = this.getEmittedNullifiers();
68
- // If there are no nullifiers emitted by private calls so far, we use the protocol nullifier as the nonce generator.
69
- // Note: There could still be nullifiers emitted after the counter is set, but those nullifiers are revertible, so
70
- // we don't want to use them as the nonce generator.
71
- this.usedProtocolNullifierForNonces = nullifiers.length === 0;
72
- const nonceGenerator = this.usedProtocolNullifierForNonces ? this.protocolNullifier : new Fr(nullifiers[0]);
61
+ // The protocol nullifier is always the tx's first nullifier (injected by the kernel init), so it is the
62
+ // nonce generator for every note hash.
63
+ const nonceGenerator = this.protocolNullifier;
73
64
 
74
65
  // The existing pending notes are all non-revertible.
75
66
  // They cannot be squashed by nullifiers emitted after minRevertibleSideEffectCounter is set.
@@ -102,14 +93,6 @@ export class ExecutionNoteCache {
102
93
  return sideEffectCounter >= this.minRevertibleSideEffectCounter;
103
94
  }
104
95
 
105
- public finish() {
106
- // If we never entered the revertible phase, and there are no nullifiers emitted, we need to use the protocol
107
- // nullifier as the nonce generator.
108
- if (!this.inRevertiblePhase) {
109
- this.usedProtocolNullifierForNonces = this.getEmittedNullifiers().length === 0;
110
- }
111
- }
112
-
113
96
  /**
114
97
  * Add a new note to cache.
115
98
  * @param note - New note created during execution.
@@ -223,19 +206,15 @@ export class ExecutionNoteCache {
223
206
  }
224
207
 
225
208
  /**
226
- * @returns All nullifiers emitted by private calls in this transaction. If the protocol nullifier was used as the
227
- * nonce generator, it is injected as the first nullifier.
209
+ * @returns All nullifiers of the transaction: the protocol nullifier (the kernel-injected first nullifier),
210
+ * followed by those emitted by private calls.
228
211
  */
229
212
  getAllNullifiers(): Fr[] {
230
- if (this.usedProtocolNullifierForNonces === undefined) {
231
- throw new Error('usedProtocolNullifierForNonces is not set yet. Call finish() to complete the transaction.');
232
- }
233
- const allNullifiers = this.getEmittedNullifiers();
234
- return [...(this.usedProtocolNullifierForNonces ? [this.protocolNullifier] : []), ...allNullifiers];
213
+ return [this.protocolNullifier, ...this.getEmittedNullifiers()];
235
214
  }
236
215
 
237
216
  getNonceGenerator(): Fr {
238
- return this.getAllNullifiers()[0];
217
+ return this.protocolNullifier;
239
218
  }
240
219
 
241
220
  #recordNullifier(contractAddress: AztecAddress, siloedNullifier: bigint) {
@@ -1,16 +1,98 @@
1
+ export {
2
+ ORACLE_REGISTRY,
3
+ makeEntry,
4
+ type NamedValue,
5
+ type OracleRegistryEntry,
6
+ type ParamTypes,
7
+ } from './oracle/oracle_registry.js';
8
+ export {
9
+ ALIAS,
10
+ ARRAY,
11
+ AZTEC_ADDRESS,
12
+ BIGINT,
13
+ BLOCK_HASH,
14
+ BLOCK_NUMBER,
15
+ BOOL,
16
+ BOUNDED_VEC,
17
+ U8,
18
+ CONTRACT_INSTANCE,
19
+ DELIVERY_MODE,
20
+ EPHEMERAL_ARRAY,
21
+ ETH_ADDRESS,
22
+ EVENT_VALIDATION_REQUEST,
23
+ FIELD,
24
+ FIXED_ARRAY,
25
+ FUNCTION_SELECTOR,
26
+ LEAF,
27
+ LEAF_INDEX,
28
+ LOG_RETRIEVAL_REQUEST,
29
+ LOG_RETRIEVAL_RESPONSE,
30
+ MEMBERSHIP_WITNESS,
31
+ NOTE_SELECTOR,
32
+ NOTE_VALIDATION_REQUEST,
33
+ OPTION,
34
+ PENDING_TAGGED_LOG,
35
+ POINT,
36
+ PROVIDED_SECRET,
37
+ SCALAR,
38
+ SLOT_NUMBER,
39
+ STR,
40
+ STRUCT,
41
+ U32,
42
+ U64,
43
+ U128,
44
+ tryFieldWidth,
45
+ isArrayMapping,
46
+ isBoundedVecMapping,
47
+ isEphemeralArrayMapping,
48
+ isFixedArrayMapping,
49
+ isFixedBoundedVecMapping,
50
+ isOptionMapping,
51
+ isStructMapping,
52
+ type ArrayMapping,
53
+ type BoundedVecMapping,
54
+ type CompositeMapping,
55
+ type EphemeralArrayMapping,
56
+ type FixedArrayMapping,
57
+ type FixedBoundedVecMapping,
58
+ type InputSlot,
59
+ type MaybePromise,
60
+ type OptionMapping,
61
+ type OutputSlot,
62
+ type SlotShape,
63
+ type StructField,
64
+ type StructMapping,
65
+ type TypeMapping,
66
+ } from './oracle/oracle_type_mappings.js';
1
67
  export { ExecutionNoteCache } from './execution_note_cache.js';
2
68
  export { ExecutionTaggingIndexCache } from './execution_tagging_index_cache.js';
3
69
  export { HashedValuesCache } from './hashed_values_cache.js';
4
70
  export { pickNotes } from './pick_notes.js';
5
- export type { NoteData, IMiscOracle, IUtilityExecutionOracle, IPrivateExecutionOracle } from './oracle/interfaces.js';
6
- export { MessageLoadOracleInputs } from './oracle/message_load_oracle_inputs.js';
7
- export { MessageContextService } from '../messages/message_context_service.js';
71
+ export type { IMiscOracle, IUtilityExecutionOracle, IPrivateExecutionOracle } from './oracle/interfaces.js';
72
+ export type { FactCollection } from './noir-structs/fact_collection.js';
73
+ export type { NoteData } from './noir-structs/note_data.js';
74
+ export type { ResolvedTaggingStrategy } from './noir-structs/resolved_tagging_strategy.js';
75
+ export type { MessageLoadOracleInputs } from './oracle/message_load_oracle_inputs.js';
76
+ export { TxResolverService } from '../messages/tx_resolver_service.js';
8
77
  export { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
9
78
  export { PrivateExecutionOracle } from './oracle/private_execution_oracle.js';
10
- export { Oracle } from './oracle/oracle.js';
79
+ export { buildACIRCallback, UnavailableOracleError } from './oracle/acir_callback.js';
80
+ export { LEGACY_ORACLE_REGISTRY } from './oracle/legacy_oracle_registry.js';
11
81
  export { executePrivateFunction, extractPrivateCircuitPublicInputs } from './oracle/private_execution.js';
12
82
  export { generateSimulatedProvingResult } from './contract_function_simulator.js';
13
83
  export { packAsHintedNote } from './oracle/note_packing_utils.js';
14
84
  export { BoundedVec } from './noir-structs/bounded_vec.js';
85
+ export type { ContractClassLogData } from './noir-structs/contract_class_log_data.js';
86
+ export type { EmbeddedCurvePoint } from './noir-structs/embedded_curve_point.js';
87
+ export { EphemeralArray } from './noir-structs/ephemeral_array.js';
15
88
  export { Option } from './noir-structs/option.js';
16
- export { UtilityContext } from './noir-structs/utility_context.js';
89
+ export type { UtilityContext } from './noir-structs/utility_context.js';
90
+ export { EventValidationRequest } from './noir-structs/event_validation_request.js';
91
+ export type { LogRetrievalRequest } from './noir-structs/log_retrieval_request.js';
92
+ export type { LogRetrievalResponse } from './noir-structs/log_retrieval_response.js';
93
+ export { NoteValidationRequest } from './noir-structs/note_validation_request.js';
94
+ export type { PendingTaggedLog } from './noir-structs/pending_tagged_log.js';
95
+ export type { TxEffectData } from './noir-structs/tx_effect_data.js';
96
+ export type { ProvidedSecret } from './noir-structs/provided_secret.js';
97
+ export type { ResolvedTx } from './noir-structs/resolved_tx.js';
98
+ export { TransientArrayService } from './transient_array_service.js';
@@ -1,9 +1,4 @@
1
- /**
2
- * TypeScript counterpart of Noir's `BoundedVec<T, MaxLen>`.
3
- *
4
- * Carries the actual `data` plus wire-format metadata (`maxLength`, `elementSize`) so the ACVM
5
- * serializer can pad the storage slot to exactly `maxLength * elementSize` fields.
6
- */
1
+ /** TypeScript counterpart of Noir's `BoundedVec<T, MaxLen>`. */
7
2
  export class BoundedVec<T> {
8
3
  private constructor(
9
4
  public readonly data: T[],
@@ -15,16 +10,11 @@ export class BoundedVec<T> {
15
10
  * Construct a BoundedVec with data.
16
11
  *
17
12
  * @param data - Actual elements. Length must be `<= maxLength`.
18
- * @param maxLength - Maximum capacity declared at the Noir call site.
19
- * The storage slot is padded to this many elements.
20
- * @param elementSize - Number of Fr fields each element contributes when serialized.
21
- * `1` for scalar elements (u8, Field) this is the default.
22
- * `> 1` for compound elements (e.g. a packed note that spans multiple fields).
23
- *
24
- * @example A bounded vec of bytes (elementSize defaults to 1):
25
- * ```ts
26
- * BoundedVec.from({ data: plaintext, maxLength: ciphertext.maxLength })
27
- * ```
13
+ * @param maxLength - Maximum capacity declared at the Noir call site. The storage slot is padded to this many
14
+ * elements.
15
+ * @param elementSize - Number of Fr fields each element contributes when serialized. Only consulted for
16
+ * variable-width elements whose width isn't statically known from their shape (e.g. a packed note spanning
17
+ * `packedHintedNoteLength` fields); fixed-width elements derive it from the shape, so it can be omitted.
28
18
  *
29
19
  * @example A bounded vec of packed notes, each spanning `packedHintedNoteLength` fields:
30
20
  * ```ts
@@ -43,13 +33,11 @@ export class BoundedVec<T> {
43
33
  return new BoundedVec<T>(data, maxLength, elementSize);
44
34
  }
45
35
 
46
- /**
47
- * Construct an empty BoundedVec, typically used as a shape template for `Option.empty(...)`.
48
- *
49
- * @param maxLength - Maximum capacity declared at the Noir call site.
50
- * @param elementSize - Number of Fr fields each element contributes when serialized (default 1).
51
- */
52
- static empty<T>({ maxLength, elementSize = 1 }: { maxLength: number; elementSize?: number }): BoundedVec<T> {
53
- return new BoundedVec<T>([], maxLength, elementSize);
36
+ equals(other: BoundedVec<T>, innerEquals: (a: T, b: T) => boolean): boolean {
37
+ return (
38
+ this.maxLength === other.maxLength &&
39
+ this.data.length === other.data.length &&
40
+ this.data.every((value, i) => innerEquals(value, other.data[i]))
41
+ );
54
42
  }
55
43
  }
@@ -0,0 +1,9 @@
1
+ import type { Fr } from '@aztec/foundation/curves/bn254';
2
+ import type { AztecAddress } from '@aztec/stdlib/aztec-address';
3
+
4
+ /** Wire form of a contract class log. */
5
+ export type ContractClassLogData = {
6
+ contractAddress: AztecAddress;
7
+ fields: Fr[];
8
+ emittedLength: number;
9
+ };
@@ -0,0 +1,4 @@
1
+ import type { Fr } from '@aztec/foundation/curves/bn254';
2
+
3
+ /** Wire form of a Grumpkin point crossing the oracle boundary: Noir's `EmbeddedCurvePoint` serializes to `[x, y]`. */
4
+ export type EmbeddedCurvePoint = { x: Fr; y: Fr };