@aztec/pxe 0.0.1-commit.4d3c002 → 0.0.1-commit.4d9804df

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 (501) hide show
  1. package/dest/bin/check_oracle_version.js +41 -112
  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 +34 -0
  6. package/dest/bin/oracle_version_helpers.d.ts.map +1 -0
  7. package/dest/bin/oracle_version_helpers.js +46 -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 +23 -15
  12. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
  13. package/dest/block_synchronizer/block_synchronizer.js +78 -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 +31 -0
  19. package/dest/contract/contract_class_service.d.ts.map +1 -0
  20. package/dest/contract/contract_class_service.js +68 -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/aztec_node_read_cache.d.ts +39 -0
  34. package/dest/contract_function_simulator/aztec_node_read_cache.d.ts.map +1 -0
  35. package/dest/contract_function_simulator/aztec_node_read_cache.js +60 -0
  36. package/dest/contract_function_simulator/contract_function_simulator.d.ts +25 -18
  37. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  38. package/dest/contract_function_simulator/contract_function_simulator.js +82 -39
  39. package/dest/contract_function_simulator/ephemeral_array_service.d.ts +28 -0
  40. package/dest/contract_function_simulator/ephemeral_array_service.d.ts.map +1 -0
  41. package/dest/contract_function_simulator/ephemeral_array_service.js +78 -0
  42. package/dest/contract_function_simulator/execution_note_cache.d.ts +4 -10
  43. package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
  44. package/dest/contract_function_simulator/execution_note_cache.js +8 -28
  45. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +5 -9
  46. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -1
  47. package/dest/contract_function_simulator/execution_tagging_index_cache.js +3 -7
  48. package/dest/contract_function_simulator/index.d.ts +26 -6
  49. package/dest/contract_function_simulator/index.d.ts.map +1 -1
  50. package/dest/contract_function_simulator/index.js +11 -4
  51. package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts +29 -0
  52. package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts.map +1 -0
  53. package/dest/contract_function_simulator/noir-structs/bounded_vec.js +30 -0
  54. package/dest/contract_function_simulator/noir-structs/contract_class_log_data.d.ts +9 -0
  55. package/dest/contract_function_simulator/noir-structs/contract_class_log_data.d.ts.map +1 -0
  56. package/dest/contract_function_simulator/noir-structs/contract_class_log_data.js +1 -0
  57. package/dest/contract_function_simulator/noir-structs/embedded_curve_point.d.ts +7 -0
  58. package/dest/contract_function_simulator/noir-structs/embedded_curve_point.d.ts.map +1 -0
  59. package/dest/contract_function_simulator/noir-structs/embedded_curve_point.js +1 -0
  60. package/dest/contract_function_simulator/noir-structs/ephemeral_array.d.ts +37 -0
  61. package/dest/contract_function_simulator/noir-structs/ephemeral_array.d.ts.map +1 -0
  62. package/dest/contract_function_simulator/noir-structs/ephemeral_array.js +59 -0
  63. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +4 -3
  64. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
  65. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +5 -4
  66. package/dest/contract_function_simulator/noir-structs/fact.d.ts +16 -0
  67. package/dest/contract_function_simulator/noir-structs/fact.d.ts.map +1 -0
  68. package/dest/contract_function_simulator/noir-structs/fact.js +6 -0
  69. package/dest/contract_function_simulator/noir-structs/fact_collection.d.ts +27 -0
  70. package/dest/contract_function_simulator/noir-structs/fact_collection.d.ts.map +1 -0
  71. package/dest/contract_function_simulator/noir-structs/fact_collection.js +31 -0
  72. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +19 -10
  73. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts.map +1 -1
  74. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +12 -24
  75. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +11 -9
  76. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -1
  77. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +2 -61
  78. package/dest/contract_function_simulator/noir-structs/note_data.d.ts +27 -0
  79. package/dest/contract_function_simulator/noir-structs/note_data.d.ts.map +1 -0
  80. package/dest/contract_function_simulator/noir-structs/note_data.js +3 -0
  81. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +4 -3
  82. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
  83. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +6 -5
  84. package/dest/contract_function_simulator/noir-structs/option.d.ts +59 -0
  85. package/dest/contract_function_simulator/noir-structs/option.d.ts.map +1 -0
  86. package/dest/contract_function_simulator/noir-structs/option.js +67 -0
  87. package/dest/contract_function_simulator/noir-structs/origin_block.d.ts +11 -0
  88. package/dest/contract_function_simulator/noir-structs/origin_block.d.ts.map +1 -0
  89. package/dest/contract_function_simulator/noir-structs/origin_block.js +5 -0
  90. package/dest/contract_function_simulator/noir-structs/pending_tagged_log.d.ts +11 -0
  91. package/dest/contract_function_simulator/noir-structs/pending_tagged_log.d.ts.map +1 -0
  92. package/dest/contract_function_simulator/noir-structs/pending_tagged_log.js +4 -0
  93. package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts +8 -0
  94. package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts.map +1 -0
  95. package/dest/contract_function_simulator/noir-structs/provided_secret.js +1 -0
  96. package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.d.ts +28 -0
  97. package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.d.ts.map +1 -0
  98. package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.js +50 -0
  99. package/dest/contract_function_simulator/noir-structs/resolved_tx.d.ts +19 -0
  100. package/dest/contract_function_simulator/noir-structs/resolved_tx.d.ts.map +1 -0
  101. package/dest/contract_function_simulator/noir-structs/resolved_tx.js +9 -0
  102. package/dest/contract_function_simulator/noir-structs/tx_effect_data.d.ts +15 -0
  103. package/dest/contract_function_simulator/noir-structs/tx_effect_data.d.ts.map +1 -0
  104. package/dest/contract_function_simulator/noir-structs/tx_effect_data.js +5 -0
  105. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +6 -11
  106. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -1
  107. package/dest/contract_function_simulator/noir-structs/utility_context.js +1 -20
  108. package/dest/contract_function_simulator/oracle/acir_callback.d.ts +21 -0
  109. package/dest/contract_function_simulator/oracle/acir_callback.d.ts.map +1 -0
  110. package/dest/contract_function_simulator/oracle/acir_callback.js +115 -0
  111. package/dest/contract_function_simulator/oracle/index.d.ts +2 -13
  112. package/dest/contract_function_simulator/oracle/index.d.ts.map +1 -1
  113. package/dest/contract_function_simulator/oracle/index.js +1 -1
  114. package/dest/contract_function_simulator/oracle/interfaces.d.ts +15 -103
  115. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
  116. package/dest/contract_function_simulator/oracle/interfaces.js +2 -2
  117. package/dest/contract_function_simulator/oracle/legacy_oracle_registry.d.ts +39 -0
  118. package/dest/contract_function_simulator/oracle/legacy_oracle_registry.d.ts.map +1 -0
  119. package/dest/contract_function_simulator/oracle/legacy_oracle_registry.js +107 -0
  120. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +3 -14
  121. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -1
  122. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.js +1 -24
  123. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +2 -2
  124. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -1
  125. package/dest/contract_function_simulator/oracle/note_packing_utils.js +2 -2
  126. package/dest/contract_function_simulator/oracle/oracle_registry.d.ts +139 -0
  127. package/dest/contract_function_simulator/oracle/oracle_registry.d.ts.map +1 -0
  128. package/dest/contract_function_simulator/oracle/oracle_registry.js +1016 -0
  129. package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts +274 -0
  130. package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts.map +1 -0
  131. package/dest/contract_function_simulator/oracle/oracle_type_mappings.js +1243 -0
  132. package/dest/contract_function_simulator/oracle/private_execution.d.ts +1 -1
  133. package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
  134. package/dest/contract_function_simulator/oracle/private_execution.js +2 -3
  135. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +47 -36
  136. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  137. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +181 -62
  138. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +144 -66
  139. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  140. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +478 -170
  141. package/dest/contract_function_simulator/pick_notes.d.ts +1 -1
  142. package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -1
  143. package/dest/contract_function_simulator/pick_notes.js +20 -3
  144. package/dest/contract_function_simulator/transient_array_service.d.ts +31 -0
  145. package/dest/contract_function_simulator/transient_array_service.d.ts.map +1 -0
  146. package/dest/contract_function_simulator/transient_array_service.js +62 -0
  147. package/dest/debug/pxe_debug_utils.d.ts +2 -7
  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 -1
  151. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  152. package/dest/entrypoints/client/bundle/index.js +1 -0
  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 -1
  157. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  158. package/dest/entrypoints/client/lazy/index.js +1 -0
  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 -3
  169. package/dest/entrypoints/server/index.d.ts.map +1 -1
  170. package/dest/entrypoints/server/index.js +5 -2
  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 +13 -5
  181. package/dest/events/event_service.d.ts.map +1 -1
  182. package/dest/events/event_service.js +30 -9
  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 +14 -11
  202. package/dest/logs/log_service.d.ts.map +1 -1
  203. package/dest/logs/log_service.js +188 -76
  204. package/dest/messages/tx_resolver_service.d.ts +17 -0
  205. package/dest/messages/tx_resolver_service.d.ts.map +1 -0
  206. package/dest/messages/tx_resolver_service.js +60 -0
  207. package/dest/notes/note_service.d.ts +26 -4
  208. package/dest/notes/note_service.d.ts.map +1 -1
  209. package/dest/notes/note_service.js +81 -66
  210. package/dest/oracle_version.d.ts +4 -3
  211. package/dest/oracle_version.d.ts.map +1 -1
  212. package/dest/oracle_version.js +20 -10
  213. package/dest/private_kernel/batch_planner.d.ts +47 -0
  214. package/dest/private_kernel/batch_planner.d.ts.map +1 -0
  215. package/dest/private_kernel/batch_planner.js +104 -0
  216. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +1 -1
  217. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -1
  218. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.js +7 -3
  219. package/dest/private_kernel/hints/test_utils.d.ts +1 -1
  220. package/dest/private_kernel/hints/test_utils.d.ts.map +1 -1
  221. package/dest/private_kernel/hints/test_utils.js +3 -4
  222. package/dest/private_kernel/private_kernel_execution_prover.d.ts +6 -2
  223. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  224. package/dest/private_kernel/private_kernel_execution_prover.js +203 -89
  225. package/dest/private_kernel/private_kernel_oracle.d.ts +12 -10
  226. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  227. package/dest/private_kernel/private_kernel_oracle.js +40 -26
  228. package/dest/pxe.d.ts +164 -51
  229. package/dest/pxe.d.ts.map +1 -1
  230. package/dest/pxe.js +334 -203
  231. package/dest/storage/allowed_scopes.d.ts +6 -0
  232. package/dest/storage/allowed_scopes.d.ts.map +1 -0
  233. package/dest/storage/allowed_scopes.js +7 -0
  234. package/dest/storage/anchor_block_store/anchor_block_store.d.ts +9 -6
  235. package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -1
  236. package/dest/storage/anchor_block_store/anchor_block_store.js +9 -7
  237. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.d.ts +42 -0
  238. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.d.ts.map +1 -0
  239. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.js +93 -0
  240. package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts +15 -0
  241. package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts.map +1 -0
  242. package/dest/storage/backwards_compatibility_tests/schema_tests.js +671 -0
  243. package/dest/storage/backwards_compatibility_tests/store_spy.d.ts +19 -0
  244. package/dest/storage/backwards_compatibility_tests/store_spy.d.ts.map +1 -0
  245. package/dest/storage/backwards_compatibility_tests/store_spy.js +63 -0
  246. package/dest/storage/capsule_store/capsule_service.d.ts +1 -1
  247. package/dest/storage/capsule_store/capsule_service.d.ts.map +1 -1
  248. package/dest/storage/capsule_store/capsule_service.js +6 -9
  249. package/dest/storage/capsule_store/capsule_store.d.ts +1 -1
  250. package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -1
  251. package/dest/storage/capsule_store/capsule_store.js +8 -5
  252. package/dest/storage/contract_store/contract_store.d.ts +27 -24
  253. package/dest/storage/contract_store/contract_store.d.ts.map +1 -1
  254. package/dest/storage/contract_store/contract_store.js +70 -98
  255. package/dest/storage/fact_store/fact_service.d.ts +22 -0
  256. package/dest/storage/fact_store/fact_service.d.ts.map +1 -0
  257. package/dest/storage/fact_store/fact_service.js +45 -0
  258. package/dest/storage/fact_store/fact_store.d.ts +95 -0
  259. package/dest/storage/fact_store/fact_store.d.ts.map +1 -0
  260. package/dest/storage/fact_store/fact_store.js +408 -0
  261. package/dest/storage/fact_store/fact_store_keys.d.ts +34 -0
  262. package/dest/storage/fact_store/fact_store_keys.d.ts.map +1 -0
  263. package/dest/storage/fact_store/fact_store_keys.js +50 -0
  264. package/dest/storage/fact_store/index.d.ts +6 -0
  265. package/dest/storage/fact_store/index.d.ts.map +1 -0
  266. package/dest/storage/fact_store/index.js +4 -0
  267. package/dest/storage/fact_store/origin_state.d.ts +59 -0
  268. package/dest/storage/fact_store/origin_state.d.ts.map +1 -0
  269. package/dest/storage/fact_store/origin_state.js +60 -0
  270. package/dest/storage/fact_store/stored_fact.d.ts +32 -0
  271. package/dest/storage/fact_store/stored_fact.d.ts.map +1 -0
  272. package/dest/storage/fact_store/stored_fact.js +64 -0
  273. package/dest/storage/index.d.ts +3 -2
  274. package/dest/storage/index.d.ts.map +1 -1
  275. package/dest/storage/index.js +2 -1
  276. package/dest/storage/metadata.d.ts +2 -2
  277. package/dest/storage/metadata.d.ts.map +1 -1
  278. package/dest/storage/metadata.js +1 -1
  279. package/dest/storage/note_store/note_store.d.ts +42 -33
  280. package/dest/storage/note_store/note_store.d.ts.map +1 -1
  281. package/dest/storage/note_store/note_store.js +197 -168
  282. package/dest/storage/note_store/stored_note.d.ts +3 -8
  283. package/dest/storage/note_store/stored_note.d.ts.map +1 -1
  284. package/dest/storage/note_store/stored_note.js +4 -20
  285. package/dest/storage/open_pxe_stores.d.ts +35 -0
  286. package/dest/storage/open_pxe_stores.d.ts.map +1 -0
  287. package/dest/storage/open_pxe_stores.js +29 -0
  288. package/dest/storage/private_event_store/private_event_store.d.ts +13 -16
  289. package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -1
  290. package/dest/storage/private_event_store/private_event_store.js +43 -43
  291. package/dest/storage/private_event_store/stored_private_event.js +1 -1
  292. package/dest/storage/store_identity.d.ts +35 -0
  293. package/dest/storage/store_identity.d.ts.map +1 -0
  294. package/dest/storage/store_identity.js +44 -0
  295. package/dest/storage/tagging_store/index.d.ts +2 -2
  296. package/dest/storage/tagging_store/index.d.ts.map +1 -1
  297. package/dest/storage/tagging_store/index.js +1 -1
  298. package/dest/storage/tagging_store/recipient_tagging_store.d.ts +6 -6
  299. package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -1
  300. package/dest/storage/tagging_store/sender_tagging_store.d.ts +23 -7
  301. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -1
  302. package/dest/storage/tagging_store/sender_tagging_store.js +51 -14
  303. package/dest/storage/tagging_store/tagging_secret_sources_store.d.ts +51 -0
  304. package/dest/storage/tagging_store/tagging_secret_sources_store.d.ts.map +1 -0
  305. package/dest/storage/tagging_store/tagging_secret_sources_store.js +105 -0
  306. package/dest/tagging/constants.d.ts +3 -2
  307. package/dest/tagging/constants.d.ts.map +1 -1
  308. package/dest/tagging/constants.js +28 -10
  309. package/dest/tagging/get_all_logs_by_tags.d.ts +34 -10
  310. package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -1
  311. package/dest/tagging/get_all_logs_by_tags.js +36 -37
  312. package/dest/tagging/index.d.ts +6 -5
  313. package/dest/tagging/index.d.ts.map +1 -1
  314. package/dest/tagging/index.js +5 -4
  315. package/dest/tagging/persist_sender_tagging_index_ranges.d.ts +29 -0
  316. package/dest/tagging/persist_sender_tagging_index_ranges.d.ts.map +1 -0
  317. package/dest/tagging/persist_sender_tagging_index_ranges.js +42 -0
  318. package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts +74 -0
  319. package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts.map +1 -0
  320. package/dest/tagging/recipient_sync/sync_tagged_private_logs.js +238 -0
  321. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts +3 -3
  322. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts.map +1 -1
  323. package/dest/tagging/reconcile_tagging_index_ranges.d.ts +36 -0
  324. package/dest/tagging/reconcile_tagging_index_ranges.d.ts.map +1 -0
  325. package/dest/tagging/reconcile_tagging_index_ranges.js +74 -0
  326. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +4 -5
  327. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -1
  328. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +26 -14
  329. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +11 -6
  330. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -1
  331. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +21 -0
  332. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +4 -4
  333. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -1
  334. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +8 -4
  335. package/dest/tagging/testing/tag_query_test_utils.d.ts +6 -0
  336. package/dest/tagging/testing/tag_query_test_utils.d.ts.map +1 -0
  337. package/dest/tagging/testing/tag_query_test_utils.js +10 -0
  338. package/package.json +20 -17
  339. package/src/bin/check_oracle_version.ts +46 -135
  340. package/src/bin/index.ts +1 -0
  341. package/src/bin/oracle_version_helpers.ts +54 -0
  342. package/src/block_synchronizer/block_stream_source.ts +42 -0
  343. package/src/block_synchronizer/block_synchronizer.ts +96 -39
  344. package/src/config/index.ts +15 -8
  345. package/src/config/package_info.ts +1 -1
  346. package/src/contract/contract_class_service.ts +83 -0
  347. package/src/{contract_sync → contract}/contract_sync_service.ts +78 -72
  348. package/src/contract/helpers.ts +35 -0
  349. package/src/contract/skip_sync_contracts.ts +23 -0
  350. package/src/contract_function_simulator/anchored_contract_data.ts +74 -0
  351. package/src/contract_function_simulator/aztec_node_read_cache.ts +89 -0
  352. package/src/contract_function_simulator/contract_function_simulator.ts +134 -52
  353. package/src/contract_function_simulator/ephemeral_array_service.ts +110 -0
  354. package/src/contract_function_simulator/execution_note_cache.ts +8 -29
  355. package/src/contract_function_simulator/execution_tagging_index_cache.ts +5 -9
  356. package/src/contract_function_simulator/index.ts +89 -5
  357. package/src/contract_function_simulator/noir-structs/bounded_vec.ts +43 -0
  358. package/src/contract_function_simulator/noir-structs/contract_class_log_data.ts +9 -0
  359. package/src/contract_function_simulator/noir-structs/embedded_curve_point.ts +4 -0
  360. package/src/contract_function_simulator/noir-structs/ephemeral_array.ts +66 -0
  361. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +5 -4
  362. package/src/contract_function_simulator/noir-structs/fact.ts +13 -0
  363. package/src/contract_function_simulator/noir-structs/fact_collection.ts +64 -0
  364. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +27 -20
  365. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +14 -61
  366. package/src/contract_function_simulator/noir-structs/note_data.ts +27 -0
  367. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +6 -5
  368. package/src/contract_function_simulator/noir-structs/option.ts +75 -0
  369. package/src/contract_function_simulator/noir-structs/origin_block.ts +8 -0
  370. package/src/contract_function_simulator/noir-structs/pending_tagged_log.ts +12 -0
  371. package/src/contract_function_simulator/noir-structs/provided_secret.ts +5 -0
  372. package/src/contract_function_simulator/noir-structs/resolved_tagging_strategy.ts +66 -0
  373. package/src/contract_function_simulator/noir-structs/resolved_tx.ts +19 -0
  374. package/src/contract_function_simulator/noir-structs/tx_effect_data.ts +16 -0
  375. package/src/contract_function_simulator/noir-structs/utility_context.ts +5 -17
  376. package/src/contract_function_simulator/oracle/acir_callback.ts +154 -0
  377. package/src/contract_function_simulator/oracle/index.ts +1 -15
  378. package/src/contract_function_simulator/oracle/interfaces.ts +11 -185
  379. package/src/contract_function_simulator/oracle/legacy_oracle_registry.ts +147 -0
  380. package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +6 -21
  381. package/src/contract_function_simulator/oracle/note_packing_utils.ts +3 -3
  382. package/src/contract_function_simulator/oracle/oracle_registry.ts +710 -0
  383. package/src/contract_function_simulator/oracle/oracle_type_mappings.ts +1052 -0
  384. package/src/contract_function_simulator/oracle/private_execution.ts +2 -3
  385. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +232 -82
  386. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +743 -325
  387. package/src/contract_function_simulator/pick_notes.ts +22 -3
  388. package/src/contract_function_simulator/transient_array_service.ts +91 -0
  389. package/src/debug/pxe_debug_utils.ts +1 -9
  390. package/src/entrypoints/client/bundle/index.ts +1 -0
  391. package/src/entrypoints/client/bundle/utils.ts +32 -8
  392. package/src/entrypoints/client/lazy/index.ts +1 -0
  393. package/src/entrypoints/client/lazy/utils.ts +32 -8
  394. package/src/entrypoints/client/store.ts +54 -0
  395. package/src/entrypoints/pxe_creation_options.ts +21 -1
  396. package/src/entrypoints/server/index.ts +7 -2
  397. package/src/entrypoints/server/store.ts +47 -0
  398. package/src/entrypoints/server/utils.ts +45 -14
  399. package/src/error_enriching.ts +27 -11
  400. package/src/events/event_service.ts +54 -19
  401. package/src/events/private_event_filter_validator.ts +21 -1
  402. package/src/hooks/authorize_utility_call.ts +44 -0
  403. package/src/hooks/execution_hooks.ts +68 -0
  404. package/src/hooks/index.ts +13 -0
  405. package/src/hooks/resolve_custom_request.ts +24 -0
  406. package/src/hooks/resolve_tagging_secret_strategy.ts +60 -0
  407. package/src/logs/log_service.ts +216 -144
  408. package/src/messages/tx_resolver_service.ts +69 -0
  409. package/src/notes/note_service.ts +116 -92
  410. package/src/oracle_version.ts +20 -10
  411. package/src/private_kernel/batch_planner.ts +168 -0
  412. package/src/private_kernel/hints/private_kernel_reset_private_inputs_builder.ts +12 -2
  413. package/src/private_kernel/hints/test_utils.ts +3 -10
  414. package/src/private_kernel/private_kernel_execution_prover.ts +335 -121
  415. package/src/private_kernel/private_kernel_oracle.ts +58 -29
  416. package/src/pxe.ts +526 -227
  417. package/src/storage/allowed_scopes.ts +14 -0
  418. package/src/storage/anchor_block_store/anchor_block_store.ts +9 -7
  419. package/src/storage/backwards_compatibility_tests/__snapshots__/AddressStore.json +22 -0
  420. package/src/storage/backwards_compatibility_tests/__snapshots__/AnchorBlockStore.json +3 -0
  421. package/src/storage/backwards_compatibility_tests/__snapshots__/CapsuleStore.json +16 -0
  422. package/src/storage/backwards_compatibility_tests/__snapshots__/ContractStore.json +28 -0
  423. package/src/storage/backwards_compatibility_tests/__snapshots__/FactStore.json +40 -0
  424. package/src/storage/backwards_compatibility_tests/__snapshots__/KeyStore.json +52 -0
  425. package/src/storage/backwards_compatibility_tests/__snapshots__/L2TipsKVStore.json +40 -0
  426. package/src/storage/backwards_compatibility_tests/__snapshots__/NoteStore.json +56 -0
  427. package/src/storage/backwards_compatibility_tests/__snapshots__/PrivateEventStore.json +44 -0
  428. package/src/storage/backwards_compatibility_tests/__snapshots__/RecipientTaggingStore.json +26 -0
  429. package/src/storage/backwards_compatibility_tests/__snapshots__/SenderTaggingStore.json +30 -0
  430. package/src/storage/backwards_compatibility_tests/__snapshots__/TaggingSecretSourcesStore.json +30 -0
  431. package/src/storage/backwards_compatibility_tests/__snapshots__/opened_stores.json +117 -0
  432. package/src/storage/backwards_compatibility_tests/kv_store_snapshot.ts +122 -0
  433. package/src/storage/backwards_compatibility_tests/schema_tests.ts +803 -0
  434. package/src/storage/backwards_compatibility_tests/store_spy.ts +73 -0
  435. package/src/storage/capsule_store/capsule_service.ts +8 -13
  436. package/src/storage/capsule_store/capsule_store.ts +15 -5
  437. package/src/storage/contract_store/contract_store.ts +96 -124
  438. package/src/storage/fact_store/fact_service.ts +69 -0
  439. package/src/storage/fact_store/fact_store.ts +487 -0
  440. package/src/storage/fact_store/fact_store_keys.ts +75 -0
  441. package/src/storage/fact_store/index.ts +15 -0
  442. package/src/storage/fact_store/origin_state.ts +84 -0
  443. package/src/storage/fact_store/stored_fact.ts +80 -0
  444. package/src/storage/index.ts +2 -1
  445. package/src/storage/metadata.ts +1 -1
  446. package/src/storage/note_store/note_store.ts +226 -187
  447. package/src/storage/note_store/stored_note.ts +5 -27
  448. package/src/storage/open_pxe_stores.ts +52 -0
  449. package/src/storage/private_event_store/private_event_store.ts +52 -54
  450. package/src/storage/private_event_store/stored_private_event.ts +1 -1
  451. package/src/storage/store_identity.ts +72 -0
  452. package/src/storage/tagging_store/index.ts +1 -1
  453. package/src/storage/tagging_store/recipient_tagging_store.ts +5 -9
  454. package/src/storage/tagging_store/sender_tagging_store.ts +68 -21
  455. package/src/storage/tagging_store/tagging_secret_sources_store.ts +138 -0
  456. package/src/tagging/constants.ts +30 -10
  457. package/src/tagging/get_all_logs_by_tags.ts +78 -50
  458. package/src/tagging/index.ts +5 -4
  459. package/src/tagging/persist_sender_tagging_index_ranges.ts +57 -0
  460. package/src/tagging/recipient_sync/sync_tagged_private_logs.ts +358 -0
  461. package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +2 -2
  462. package/src/tagging/reconcile_tagging_index_ranges.ts +102 -0
  463. package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +41 -19
  464. package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +23 -8
  465. package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +10 -7
  466. package/src/tagging/testing/tag_query_test_utils.ts +11 -0
  467. package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.d.ts +0 -9
  468. package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.d.ts.map +0 -1
  469. package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.js +0 -38
  470. package/dest/contract_function_simulator/oracle/oracle.d.ts +0 -80
  471. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +0 -1
  472. package/dest/contract_function_simulator/oracle/oracle.js +0 -458
  473. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +0 -6
  474. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +0 -1
  475. package/dest/contract_function_simulator/proxied_contract_data_source.js +0 -80
  476. package/dest/contract_sync/contract_sync_service.d.ts +0 -44
  477. package/dest/contract_sync/contract_sync_service.d.ts.map +0 -1
  478. package/dest/contract_sync/contract_sync_service.js +0 -104
  479. package/dest/contract_sync/helpers.d.ts +0 -28
  480. package/dest/contract_sync/helpers.d.ts.map +0 -1
  481. package/dest/contract_sync/helpers.js +0 -60
  482. package/dest/messages/message_context_service.d.ts +0 -17
  483. package/dest/messages/message_context_service.d.ts.map +0 -1
  484. package/dest/messages/message_context_service.js +0 -36
  485. package/dest/storage/tagging_store/sender_address_book_store.d.ts +0 -14
  486. package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +0 -1
  487. package/dest/storage/tagging_store/sender_address_book_store.js +0 -36
  488. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +0 -14
  489. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +0 -1
  490. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +0 -99
  491. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +0 -14
  492. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +0 -1
  493. package/dest/tagging/recipient_sync/utils/load_logs_for_range.js +0 -33
  494. package/src/contract_function_simulator/oracle/legacy_oracle_mappings.ts +0 -98
  495. package/src/contract_function_simulator/oracle/oracle.ts +0 -721
  496. package/src/contract_function_simulator/proxied_contract_data_source.ts +0 -83
  497. package/src/contract_sync/helpers.ts +0 -98
  498. package/src/messages/message_context_service.ts +0 -44
  499. package/src/storage/tagging_store/sender_address_book_store.ts +0 -48
  500. package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +0 -140
  501. package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +0 -44
@@ -0,0 +1,60 @@
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
+ /**
3
+ * Per-execution cache for immutable Aztec node reads.
4
+ */ export class AztecNodeReadCache {
5
+ aztecNode;
6
+ cache;
7
+ constructor(aztecNode){
8
+ this.aztecNode = aztecNode;
9
+ this.cache = new Map();
10
+ }
11
+ /** Fetches a block without reissuing the same node request. */ getBlock(block) {
12
+ return this.#cachedRead(`block:${this.#keyPart(block)}`, ()=>this.aztecNode.getBlock(block));
13
+ }
14
+ /** Fetches a transaction receipt with its effect attached. */ getTxReceiptWithEffect(txHash) {
15
+ return this.#cachedRead(`tx-receipt-with-effect:${txHash.toString()}`, ()=>this.aztecNode.getTxReceipt(txHash, {
16
+ includeTxEffect: true
17
+ }));
18
+ }
19
+ /** Fetches an archive-tree witness for a block hash. */ getBlockHashMembershipWitness(referenceBlock, blockHash) {
20
+ return this.#cachedRead(`block-hash-membership-witness:${this.#keyPart(referenceBlock)}:${blockHash.toString()}`, ()=>this.aztecNode.getBlockHashMembershipWitness(referenceBlock, blockHash));
21
+ }
22
+ /** Fetches a public-data-tree witness for a leaf slot. */ getPublicDataWitness(referenceBlock, leafSlot) {
23
+ return this.#cachedRead(`public-data-witness:${this.#keyPart(referenceBlock)}:${leafSlot.toString()}`, ()=>this.aztecNode.getPublicDataWitness(referenceBlock, leafSlot));
24
+ }
25
+ /** Fetches public storage for a single slot. */ getPublicStorageAt(referenceBlock, contractAddress, storageSlot) {
26
+ return this.#cachedRead(`public-storage:${this.#keyPart(referenceBlock)}:${contractAddress.toString()}:${storageSlot.toString()}`, ()=>this.aztecNode.getPublicStorageAt(referenceBlock, contractAddress, storageSlot));
27
+ }
28
+ /** Fetches a contiguous public storage range, reusing cached reads for overlapping slots. */ getPublicStorageRange(referenceBlock, contractAddress, startStorageSlot, numberOfElements) {
29
+ const slots = Array(numberOfElements).fill(0).map((_, i)=>new Fr(startStorageSlot.value + BigInt(i)));
30
+ return Promise.all(slots.map((storageSlot)=>this.getPublicStorageAt(referenceBlock, contractAddress, storageSlot)));
31
+ }
32
+ #cachedRead(key, fetch) {
33
+ const cached = this.cache.get(key);
34
+ if (cached) {
35
+ return cached;
36
+ }
37
+ const promise = fetch();
38
+ promise.catch(()=>this.cache.delete(key));
39
+ this.cache.set(key, promise);
40
+ return promise;
41
+ }
42
+ #keyPart(value) {
43
+ if ([
44
+ 'string',
45
+ 'number',
46
+ 'bigint',
47
+ 'boolean'
48
+ ].includes(typeof value)) {
49
+ return String(value);
50
+ }
51
+ if (value && typeof value === 'object') {
52
+ const toString = value.toString;
53
+ if (toString && toString !== Object.prototype.toString) {
54
+ return toString.call(value);
55
+ }
56
+ return JSON.stringify(value, (_key, nested)=>typeof nested === 'bigint' ? nested.toString() : nested);
57
+ }
58
+ return String(value);
59
+ }
60
+ }
@@ -5,25 +5,25 @@ import type { FunctionCall } from '@aztec/stdlib/abi';
5
5
  import { FunctionSelector } from '@aztec/stdlib/abi';
6
6
  import type { AuthWitness } from '@aztec/stdlib/auth-witness';
7
7
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
8
+ import type { L2TipsProvider } from '@aztec/stdlib/block';
8
9
  import type { AztecNode } from '@aztec/stdlib/interfaces/server';
9
10
  import { type PrivateKernelExecutionProofOutput, PrivateKernelTailCircuitPublicInputs } from '@aztec/stdlib/kernel';
10
- import { BlockHeader, type OffchainEffect, PrivateExecutionResult, TxExecutionRequest } from '@aztec/stdlib/tx';
11
- import type { ContractSyncService } from '../contract_sync/contract_sync_service.js';
12
- import type { MessageContextService } from '../messages/message_context_service.js';
11
+ import { BlockHeader, type ContractOverrides, type OffchainEffect, PrivateExecutionResult, TxExecutionRequest } from '@aztec/stdlib/tx';
12
+ import type { ContractClassService } from '../contract/contract_class_service.js';
13
+ import type { ContractSyncService } from '../contract/contract_sync_service.js';
14
+ import type { ExecutionHooks } from '../hooks/index.js';
15
+ import type { TxResolverService } from '../messages/tx_resolver_service.js';
13
16
  import type { AddressStore } from '../storage/address_store/address_store.js';
14
17
  import type { CapsuleStore } from '../storage/capsule_store/capsule_store.js';
15
18
  import type { ContractStore } from '../storage/contract_store/contract_store.js';
19
+ import type { FactStore } from '../storage/fact_store/index.js';
16
20
  import type { NoteStore } from '../storage/note_store/note_store.js';
17
21
  import type { PrivateEventStore } from '../storage/private_event_store/private_event_store.js';
18
22
  import type { RecipientTaggingStore } from '../storage/tagging_store/recipient_tagging_store.js';
19
- import type { SenderAddressBookStore } from '../storage/tagging_store/sender_address_book_store.js';
20
23
  import type { SenderTaggingStore } from '../storage/tagging_store/sender_tagging_store.js';
24
+ import type { TaggingSecretSourcesStore } from '../storage/tagging_store/tagging_secret_sources_store.js';
21
25
  /** Options for ContractFunctionSimulator.run. */
22
26
  export type ContractSimulatorRunOpts = {
23
- /** The address of the contract (should match request.origin). */
24
- contractAddress: AztecAddress;
25
- /** The function selector of the entry point. */
26
- selector: FunctionSelector;
27
27
  /** The address calling the function. Can be replaced to simulate a call from another contract or account. */
28
28
  msgSender?: AztecAddress;
29
29
  /** The block header to use as base state for this run. */
@@ -38,18 +38,24 @@ export type ContractSimulatorRunOpts = {
38
38
  /** Args for ContractFunctionSimulator constructor. */
39
39
  export type ContractFunctionSimulatorArgs = {
40
40
  contractStore: ContractStore;
41
+ contractClassService: ContractClassService;
42
+ /** Per-simulation contract overrides. */
43
+ overrides?: ContractOverrides;
41
44
  noteStore: NoteStore;
42
45
  keyStore: KeyStore;
43
46
  addressStore: AddressStore;
44
47
  aztecNode: AztecNode;
48
+ l2TipsStore: L2TipsProvider;
45
49
  senderTaggingStore: SenderTaggingStore;
46
50
  recipientTaggingStore: RecipientTaggingStore;
47
- senderAddressBookStore: SenderAddressBookStore;
51
+ taggingSecretSourcesStore: TaggingSecretSourcesStore;
48
52
  capsuleStore: CapsuleStore;
53
+ factStore: FactStore;
49
54
  privateEventStore: PrivateEventStore;
50
55
  simulator: CircuitSimulator;
51
56
  contractSyncService: ContractSyncService;
52
- messageContextService: MessageContextService;
57
+ txResolver: TxResolverService;
58
+ hooks?: ExecutionHooks;
53
59
  };
54
60
  /**
55
61
  * The contract function simulator.
@@ -57,31 +63,32 @@ export type ContractFunctionSimulatorArgs = {
57
63
  export declare class ContractFunctionSimulator {
58
64
  private readonly log;
59
65
  private readonly contractStore;
66
+ private readonly contractClassService;
67
+ private readonly overrides;
60
68
  private readonly noteStore;
61
69
  private readonly keyStore;
62
70
  private readonly addressStore;
63
71
  private readonly aztecNode;
72
+ private readonly l2TipsStore;
64
73
  private readonly senderTaggingStore;
65
74
  private readonly recipientTaggingStore;
66
- private readonly senderAddressBookStore;
75
+ private readonly taggingSecretSourcesStore;
67
76
  private readonly capsuleStore;
77
+ private readonly factStore;
68
78
  private readonly privateEventStore;
69
79
  private readonly simulator;
70
80
  private readonly contractSyncService;
71
- private readonly messageContextService;
81
+ private readonly txResolver;
82
+ private readonly hooks;
72
83
  constructor(args: ContractFunctionSimulatorArgs);
73
84
  /**
74
85
  * Runs a private function.
75
86
  * @param request - The transaction request.
76
87
  */
77
- run(request: TxExecutionRequest, { contractAddress, selector, msgSender, anchorBlockHeader, senderForTags, scopes, jobId }: ContractSimulatorRunOpts): Promise<PrivateExecutionResult>;
88
+ run(request: TxExecutionRequest, { msgSender, anchorBlockHeader, senderForTags, scopes, jobId }: ContractSimulatorRunOpts): Promise<PrivateExecutionResult>;
78
89
  /**
79
90
  * Runs a utility function.
80
91
  * @param call - The function call to execute.
81
- * @param authwits - Authentication witnesses required for the function call.
82
- * @param anchorBlockHeader - The block header to use as base state for this run.
83
- * @param scopes - Optional array of account addresses whose notes can be accessed in this call. Defaults to all
84
- * accounts if not specified.
85
92
  * @returns A return value of the utility function in a form as returned by the simulator (Noir fields)
86
93
  */
87
94
  runUtility(call: FunctionCall, authwits: AuthWitness[], anchorBlockHeader: BlockHeader, scopes: AztecAddress[], jobId: string): Promise<{
@@ -110,4 +117,4 @@ export declare class ContractFunctionSimulator {
110
117
  * @returns The simulated proving result.
111
118
  */
112
119
  export declare function generateSimulatedProvingResult(privateExecutionResult: PrivateExecutionResult, debugFunctionNameGetter: (contractAddress: AztecAddress, functionSelector: FunctionSelector) => Promise<string>, node: AztecNode, minRevertibleSideEffectCounterOverride?: number): Promise<PrivateKernelExecutionProofOutput<PrivateKernelTailCircuitPublicInputs>>;
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RfZnVuY3Rpb25fc2ltdWxhdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3RfZnVuY3Rpb25fc2ltdWxhdG9yL2NvbnRyYWN0X2Z1bmN0aW9uX3NpbXVsYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF5QkEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR3BELE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBR2pELE9BQU8sRUFDTCxLQUFLLGdCQUFnQixFQU90QixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBZ0IsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFXM0QsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxFQUtMLEtBQUssaUNBQWlDLEVBQ3RDLG9DQUFvQyxFQWFyQyxNQUFNLHNCQUFzQixDQUFDO0FBSTlCLE9BQU8sRUFDTCxXQUFXLEVBR1gsS0FBSyxjQUFjLEVBQ25CLHNCQUFzQixFQUV0QixrQkFBa0IsRUFJbkIsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQixPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3JGLE9BQU8sS0FBSyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDcEYsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFOUUsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFD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
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RfZnVuY3Rpb25fc2ltdWxhdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3RfZnVuY3Rpb25fc2ltdWxhdG9yL2NvbnRyYWN0X2Z1bmN0aW9uX3NpbXVsYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEyQkEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR3BELE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBR2pELE9BQU8sRUFDTCxLQUFLLGdCQUFnQixFQU90QixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBZ0IsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxLQUFLLEVBQWtCLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBVTFFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sRUFLTCxLQUFLLGlDQUFpQyxFQUN0QyxvQ0FBb0MsRUFhckMsTUFBTSxzQkFBc0IsQ0FBQztBQUs5QixPQUFPLEVBQ0wsV0FBVyxFQUVYLEtBQUssaUJBQWlCLEVBRXRCLEtBQUssY0FBYyxFQUNuQixzQkFBc0IsRUFFdEIsa0JBQWtCLEVBSW5CLE1BQU0sa0JBQWtCLENBQUM7QUFFMUIsT0FBTyxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNsRixPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ2hGLE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3hELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDNUUsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFOUUsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDOUUsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFFakYsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDckUsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUMvRixPQUFPLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ2pHLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDM0YsT0FBTyxLQUFLLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQVkxRyxpREFBaUQ7QUFDakQsTUFBTSxNQUFNLHdCQUF3QixHQUFHO0lBQ3JDLDZHQUE2RztJQUM3RyxTQUFTLENBQUMsRUFBRSxZQUFZLENBQUM7SUFDekIsMERBQTBEO0lBQzFELGlCQUFpQixFQUFFLFdBQVcsQ0FBQztJQUMvQix1RUFBdUU7SUFDdkUsYUFBYSxDQUFDLEVBQUUsWUFBWSxDQUFDO0lBQzdCLDJEQUEyRDtJQUMzRCxNQUFNLEVBQUUsWUFBWSxFQUFFLENBQUM7SUFDdkIsb0NBQW9DO0lBQ3BDLEtBQUssRUFBRSxNQUFNLENBQUM7Q0FDZixDQUFDO0FBRUYsc0RBQXNEO0FBQ3RELE1BQU0sTUFBTSw2QkFBNkIsR0FBRztJQUMxQyxhQUFhLEVBQUUsYUFBYSxDQUFDO0lBQzdCLG9CQUFvQixFQUFFLG9CQUFvQixDQUFDO0lBQzNDLHlDQUF5QztJQUN6QyxTQUFTLENBQUMsRUFBRSxpQkFBaUIsQ0FBQztJQUM5QixTQUFTLEVBQUUsU0FBUyxDQUFDO0lBQ3JCLFFBQVEsRUFBRSxRQUFRLENBQUM7SUFDbkIsWUFBWSxFQUFFLFlBQVksQ0FBQztJQUMzQixTQUFTLEVBQUUsU0FBUyxDQUFDO0lBQ3JCLFdBQVcsRUFBRSxjQUFjLENBQUM7SUFDNUIsa0JBQWtCLEVBQUUsa0JBQWtCLENBQUM7SUFDdkMscUJBQXFCLEVBQUUscUJBQXFCLENBQUM7SUFDN0MseUJBQXlCLEVBQUUseUJBQXlCLENBQUM7SUFDckQsWUFBWSxFQUFFLFlBQVksQ0FBQztJQUMzQixTQUFTLEVBQUUsU0FBUyxDQUFDO0lBQ3JCLGlCQUFpQixFQUFFLGlCQUFpQixDQUFDO0lBQ3JDLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQztJQUM1QixtQkFBbUIsRUFBRSxtQkFBbUIsQ0FBQztJQUN6QyxVQUFVLEVBQUUsaUJBQWlCLENBQUM7SUFDOUIsS0FBSyxDQUFDLEVBQUUsY0FBYyxDQUFDO0NBQ3hCLENBQUM7QUFFRjs7R0FFRztBQUNILHFCQUFhLHlCQUF5QjtJQUNwQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBUztJQUM3QixPQUFPLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBZ0I7SUFDOUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBdUI7SUFDNUQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQWdDO0lBQzFELE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFZO0lBQ3RDLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFXO0lBQ3BDLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFlO0lBQzVDLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFZO0lBQ3RDLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFpQjtJQUM3QyxPQUFPLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFxQjtJQUN4RCxPQUFPLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUF3QjtJQUM5RCxPQUFPLENBQUMsUUFBUSxDQUFDLHlCQUF5QixDQUE0QjtJQUN0RSxPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBZTtJQUM1QyxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBWTtJQUN0QyxPQUFPLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFvQjtJQUN0RCxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBbUI7SUFDN0MsT0FBTyxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBc0I7SUFDMUQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQW9CO0lBQy9DLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUE2QjtJQUVuRCxZQUFZLElBQUksRUFBRSw2QkFBNkIsRUFvQjlDO0lBRUQ7OztPQUdHO0lBQ1UsR0FBRyxDQUNkLE9BQU8sRUFBRSxrQkFBa0IsRUFDM0IsRUFDRSxTQUF3QyxFQUN4QyxpQkFBaUIsRUFDakIsYUFBYSxFQUNiLE1BQU0sRUFDTixLQUFLLEVBQ04sRUFBRSx3QkFBd0IsR0FDMUIsT0FBTyxDQUFDLHNCQUFzQixDQUFDLENBaUlqQztJQUVEOzs7O09BSUc7SUFDVSxVQUFVLENBQ3JCLElBQUksRUFBRSxZQUFZLEVBQ2xCLFFBQVEsRUFBRSxXQUFXLEVBQUUsRUFDdkIsaUJBQWlCLEVBQUUsV0FBVyxFQUM5QixNQUFNLEVBQUUsWUFBWSxFQUFFLEVBQ3RCLEtBQUssRUFBRSxNQUFNLEdBQ1osT0FBTyxDQUFDO1FBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQUMsZUFBZSxFQUFFLGNBQWMsRUFBRSxDQUFBO0tBQUUsQ0FBQyxDQXNGOUQ7SUFFRDs7O09BR0c7SUFDSCxRQUFROztNQVVQO0NBQ0Y7QUFZRDs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCx3QkFBc0IsOEJBQThCLENBQ2xELHNCQUFzQixFQUFFLHNCQUFzQixFQUM5Qyx1QkFBdUIsRUFBRSxDQUFDLGVBQWUsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEtBQUssT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUMvRyxJQUFJLEVBQUUsU0FBUyxFQUNmLHNDQUFzQyxDQUFDLEVBQUUsTUFBTSxHQUM5QyxPQUFPLENBQUMsaUNBQWlDLENBQUMsb0NBQW9DLENBQUMsQ0FBQyxDQXNSbEYifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"contract_function_simulator.d.ts","sourceRoot":"","sources":["../../src/contract_function_simulator/contract_function_simulator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contract_function_simulator.d.ts","sourceRoot":"","sources":["../../src/contract_function_simulator/contract_function_simulator.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { AVM_EMITNOTEHASH_BASE_L2_GAS, AVM_EMITNULLIFIER_BASE_L2_GAS, AVM_SENDL2TOL1MSG_BASE_L2_GAS, DA_GAS_PER_FIELD, FIXED_AVM_STARTUP_L2_GAS, L2_GAS_PER_CONTRACT_CLASS_LOG, L2_GAS_PER_L2_TO_L1_MSG, L2_GAS_PER_NOTE_HASH, L2_GAS_PER_NULLIFIER, L2_GAS_PER_PRIVATE_LOG, MAX_CONTRACT_CLASS_LOGS_PER_TX, MAX_ENQUEUED_CALLS_PER_TX, MAX_L2_TO_L1_MSGS_PER_TX, MAX_NOTE_HASHES_PER_TX, MAX_NOTE_HASH_READ_REQUESTS_PER_TX, MAX_NULLIFIERS_PER_TX, MAX_NULLIFIER_READ_REQUESTS_PER_TX, MAX_PRIVATE_LOGS_PER_TX, MAX_TX_LIFETIME, PRIVATE_TX_L2_GAS_OVERHEAD, PUBLIC_TX_L2_GAS_OVERHEAD, TX_DA_GAS_OVERHEAD } from '@aztec/constants';
1
+ import { CircuitKind } from '@aztec/bb.js';
2
+ import { AVM_EMITNOTEHASH_BASE_L2_GAS, AVM_EMITNULLIFIER_BASE_L2_GAS, AVM_SENDL2TOL1MSG_BASE_L2_GAS, DA_GAS_PER_FIELD, FIXED_AVM_STARTUP_L2_GAS, L2_GAS_PER_CONTRACT_CLASS_LOG, L2_GAS_PER_L2_TO_L1_MSG, L2_GAS_PER_NOTE_HASH, L2_GAS_PER_NULLIFIER, L2_GAS_PER_PRIVATE_LOG, MAX_CONTRACT_CLASS_LOGS_PER_TX, MAX_ENQUEUED_CALLS_PER_TX, MAX_L2_TO_L1_MSGS_PER_TX, MAX_NOTE_HASHES_PER_TX, MAX_NOTE_HASH_READ_REQUESTS_PER_TX, MAX_NULLIFIERS_PER_TX, MAX_NULLIFIER_READ_REQUESTS_PER_TX, MAX_PRIVATE_LOGS_PER_TX, MAX_TX_LIFETIME, PRIVATE_TX_L2_GAS_OVERHEAD, PUBLIC_DATA_WRITE_LENGTH, PUBLIC_TX_L2_GAS_OVERHEAD, TX_DA_GAS_OVERHEAD } from '@aztec/constants';
2
3
  import { arrayNonEmptyLength, padArrayEnd } from '@aztec/foundation/collection';
3
4
  import { Fr } from '@aztec/foundation/curves/bn254';
4
5
  import { createLogger } from '@aztec/foundation/log';
@@ -14,69 +15,90 @@ import { ClaimedLengthArray, PartialPrivateTailPublicInputsForPublic, PartialPri
14
15
  import { PrivateLog } from '@aztec/stdlib/logs';
15
16
  import { ScopedL2ToL1Message } from '@aztec/stdlib/messaging';
16
17
  import { ChonkProof } from '@aztec/stdlib/proofs';
18
+ import { MerkleTreeId } from '@aztec/stdlib/trees';
17
19
  import { CallContext, HashedValues, PrivateExecutionResult, TxConstantData, collectNested, collectNoteHashNullifierCounterMap, getFinalMinRevertibleSideEffectCounter } from '@aztec/stdlib/tx';
18
20
  import { CapsuleService } from '../storage/capsule_store/capsule_service.js';
21
+ import { FactService } from '../storage/fact_store/index.js';
22
+ import { AnchoredContractData } from './anchored_contract_data.js';
19
23
  import { ExecutionNoteCache } from './execution_note_cache.js';
20
24
  import { ExecutionTaggingIndexCache } from './execution_tagging_index_cache.js';
21
25
  import { HashedValuesCache } from './hashed_values_cache.js';
22
- import { Oracle } from './oracle/oracle.js';
26
+ import { buildACIRCallback } from './oracle/acir_callback.js';
23
27
  import { executePrivateFunction } from './oracle/private_execution.js';
24
28
  import { PrivateExecutionOracle } from './oracle/private_execution_oracle.js';
25
29
  import { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
30
+ import { TransientArrayService } from './transient_array_service.js';
26
31
  /**
27
32
  * The contract function simulator.
28
33
  */ export class ContractFunctionSimulator {
29
34
  log;
30
35
  contractStore;
36
+ contractClassService;
37
+ overrides;
31
38
  noteStore;
32
39
  keyStore;
33
40
  addressStore;
34
41
  aztecNode;
42
+ l2TipsStore;
35
43
  senderTaggingStore;
36
44
  recipientTaggingStore;
37
- senderAddressBookStore;
45
+ taggingSecretSourcesStore;
38
46
  capsuleStore;
47
+ factStore;
39
48
  privateEventStore;
40
49
  simulator;
41
50
  contractSyncService;
42
- messageContextService;
51
+ txResolver;
52
+ hooks;
43
53
  constructor(args){
44
54
  this.contractStore = args.contractStore;
55
+ this.contractClassService = args.contractClassService;
56
+ this.overrides = args.overrides;
45
57
  this.noteStore = args.noteStore;
46
58
  this.keyStore = args.keyStore;
47
59
  this.addressStore = args.addressStore;
48
60
  this.aztecNode = args.aztecNode;
61
+ this.l2TipsStore = args.l2TipsStore;
49
62
  this.senderTaggingStore = args.senderTaggingStore;
50
63
  this.recipientTaggingStore = args.recipientTaggingStore;
51
- this.senderAddressBookStore = args.senderAddressBookStore;
64
+ this.taggingSecretSourcesStore = args.taggingSecretSourcesStore;
52
65
  this.capsuleStore = args.capsuleStore;
66
+ this.factStore = args.factStore;
53
67
  this.privateEventStore = args.privateEventStore;
54
68
  this.simulator = args.simulator;
55
69
  this.contractSyncService = args.contractSyncService;
56
- this.messageContextService = args.messageContextService;
70
+ this.txResolver = args.txResolver;
71
+ this.hooks = args.hooks;
57
72
  this.log = createLogger('simulator');
58
73
  }
59
74
  /**
60
75
  * Runs a private function.
61
76
  * @param request - The transaction request.
62
- */ async run(request, { contractAddress, selector, msgSender = AztecAddress.fromField(Fr.MAX_FIELD_VALUE), anchorBlockHeader, senderForTags, scopes, jobId }) {
77
+ */ async run(request, { msgSender = AztecAddress.NULL_MSG_SENDER, anchorBlockHeader, senderForTags, scopes, jobId }) {
63
78
  const simulatorSetupTimer = new Timer();
64
- const entryPointArtifact = await this.contractStore.getFunctionArtifactWithDebugMetadata(contractAddress, selector);
79
+ const contractAddress = request.origin;
80
+ const anchoredContractData = new AnchoredContractData(this.contractStore, this.contractClassService, anchorBlockHeader, this.overrides);
81
+ const entryPointArtifact = await anchoredContractData.getFunctionArtifactWithDebugMetadata(contractAddress, request.functionSelector);
82
+ if (!entryPointArtifact) {
83
+ throw new Error(`Cannot run function ${request.functionSelector} on ${contractAddress}: the contract is not registered. ` + `Register it via wallet.registerContract(...).`);
84
+ }
65
85
  if (entryPointArtifact.functionType !== FunctionType.PRIVATE) {
66
86
  throw new Error(`Cannot run ${entryPointArtifact.functionType} function as private`);
67
87
  }
68
- if (request.origin !== contractAddress) {
69
- this.log.warn(`Request origin does not match contract address in simulation. Request origin: ${request.origin}, contract address: ${contractAddress}`);
70
- }
71
88
  // reserve the first side effect for the tx hash (inserted by the private kernel)
72
89
  const startSideEffectCounter = 2;
73
90
  const callContext = new CallContext(msgSender, contractAddress, await FunctionSelector.fromNameAndParameters(entryPointArtifact.name, entryPointArtifact.parameters), entryPointArtifact.isStatic);
74
91
  const protocolNullifier = await computeProtocolNullifier(await request.toTxRequest().hash());
75
92
  const noteCache = new ExecutionNoteCache(protocolNullifier);
76
93
  const taggingIndexCache = new ExecutionTaggingIndexCache();
94
+ // One shared transient store for the whole execution tree rooted at this transaction. Threaded into every child
95
+ // private oracle and inherited by nested utility frames, so that frames of the same contract see each other's
96
+ // transient arrays, then discarded when run() returns.
97
+ const transientArrayService = new TransientArrayService();
77
98
  const privateExecutionOracle = new PrivateExecutionOracle({
78
99
  argsHash: request.firstCallArgsHash,
79
100
  txContext: request.txContext,
101
+ txRequestSalt: request.salt,
80
102
  callContext,
81
103
  anchorBlockHeader,
82
104
  utilityExecutor: async (call, execScopes)=>{
@@ -87,24 +109,28 @@ import { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
87
109
  executionCache: HashedValuesCache.create(request.argsOfCalls),
88
110
  noteCache,
89
111
  taggingIndexCache,
90
- contractStore: this.contractStore,
112
+ anchoredContractData,
91
113
  noteStore: this.noteStore,
92
114
  keyStore: this.keyStore,
93
115
  addressStore: this.addressStore,
94
116
  aztecNode: this.aztecNode,
95
117
  senderTaggingStore: this.senderTaggingStore,
96
118
  recipientTaggingStore: this.recipientTaggingStore,
97
- senderAddressBookStore: this.senderAddressBookStore,
119
+ taggingSecretSourcesStore: this.taggingSecretSourcesStore,
98
120
  capsuleService: new CapsuleService(this.capsuleStore, scopes),
121
+ factService: new FactService(this.factStore, scopes),
99
122
  privateEventStore: this.privateEventStore,
100
- messageContextService: this.messageContextService,
123
+ txResolver: this.txResolver,
101
124
  contractSyncService: this.contractSyncService,
102
125
  jobId,
103
126
  totalPublicCalldataCount: 0,
104
127
  sideEffectCounter: startSideEffectCounter,
105
128
  scopes,
106
129
  senderForTags,
107
- simulator: this.simulator
130
+ simulator: this.simulator,
131
+ l2TipsStore: this.l2TipsStore,
132
+ hooks: this.hooks,
133
+ transientArrayService
108
134
  });
109
135
  const setupTime = simulatorSetupTimer.ms();
110
136
  try {
@@ -114,7 +140,6 @@ import { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
114
140
  // within executionResult.nestedExecutionResults).
115
141
  const executionResult = await executePrivateFunction(this.simulator, privateExecutionOracle, entryPointArtifact, contractAddress, request.functionSelector);
116
142
  const simulatorTeardownTimer = new Timer();
117
- noteCache.finish();
118
143
  const firstNullifierHint = noteCache.getNonceGenerator();
119
144
  const publicCallRequests = collectNested([
120
145
  executionResult
@@ -138,38 +163,52 @@ import { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
138
163
  throw createSimulationError(err instanceof Error ? err : new Error('Unknown error during private execution'));
139
164
  }
140
165
  }
141
- // docs:start:execute_utility_function
142
166
  /**
143
167
  * Runs a utility function.
144
168
  * @param call - The function call to execute.
145
- * @param authwits - Authentication witnesses required for the function call.
146
- * @param anchorBlockHeader - The block header to use as base state for this run.
147
- * @param scopes - Optional array of account addresses whose notes can be accessed in this call. Defaults to all
148
- * accounts if not specified.
149
169
  * @returns A return value of the utility function in a form as returned by the simulator (Noir fields)
150
170
  */ async runUtility(call, authwits, anchorBlockHeader, scopes, jobId) {
151
- const entryPointArtifact = await this.contractStore.getFunctionArtifactWithDebugMetadata(call.to, call.selector);
171
+ const anchoredContractData = new AnchoredContractData(this.contractStore, this.contractClassService, anchorBlockHeader, this.overrides);
172
+ const entryPointArtifact = await anchoredContractData.getFunctionArtifactWithDebugMetadata(call.to, call.selector);
173
+ if (!entryPointArtifact) {
174
+ throw new Error(`Cannot run function ${call.selector} on ${call.to}: the contract is not registered. ` + `Register it via wallet.registerContract(...).`);
175
+ }
152
176
  if (entryPointArtifact.functionType !== FunctionType.UTILITY) {
153
177
  throw new Error(`Cannot run ${entryPointArtifact.functionType} function as utility`);
154
178
  }
179
+ const utilityExecutor = async (syncCall, execScopes)=>{
180
+ await this.runUtility(syncCall, [], anchorBlockHeader, execScopes, jobId);
181
+ };
155
182
  const oracle = new UtilityExecutionOracle({
156
- contractAddress: call.to,
183
+ callContext: CallContext.from({
184
+ msgSender: AztecAddress.NULL_MSG_SENDER,
185
+ contractAddress: call.to,
186
+ functionSelector: call.selector,
187
+ isStaticCall: true
188
+ }),
157
189
  authWitnesses: authwits,
158
190
  capsules: [],
159
191
  anchorBlockHeader,
160
- contractStore: this.contractStore,
192
+ anchoredContractData,
161
193
  noteStore: this.noteStore,
162
194
  keyStore: this.keyStore,
163
195
  addressStore: this.addressStore,
164
196
  aztecNode: this.aztecNode,
165
197
  recipientTaggingStore: this.recipientTaggingStore,
166
- senderAddressBookStore: this.senderAddressBookStore,
198
+ taggingSecretSourcesStore: this.taggingSecretSourcesStore,
167
199
  capsuleService: new CapsuleService(this.capsuleStore, scopes),
200
+ factService: new FactService(this.factStore, scopes),
168
201
  privateEventStore: this.privateEventStore,
169
- messageContextService: this.messageContextService,
202
+ txResolver: this.txResolver,
170
203
  contractSyncService: this.contractSyncService,
204
+ l2TipsStore: this.l2TipsStore,
171
205
  jobId,
172
- scopes
206
+ scopes,
207
+ simulator: this.simulator,
208
+ hooks: this.hooks,
209
+ utilityExecutor,
210
+ // Execution-tree root (top-level utility run or contract sync): own store; nested frames inherit it.
211
+ transientArrayService: new TransientArrayService()
173
212
  });
174
213
  try {
175
214
  this.log.verbose(`Executing utility function ${entryPointArtifact.name}`, {
@@ -177,7 +216,7 @@ import { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
177
216
  selector: call.selector
178
217
  });
179
218
  const initialWitness = toACVMWitness(0, call.args);
180
- const acirExecutionResult = await this.simulator.executeUserCircuit(initialWitness, entryPointArtifact, new Oracle(oracle).toACIRCallback()).catch((err)=>{
219
+ const acirExecutionResult = await this.simulator.executeUserCircuit(initialWitness, entryPointArtifact, buildACIRCallback(oracle)).catch((err)=>{
181
220
  err.message = resolveAssertionMessageFromError(err, entryPointArtifact);
182
221
  throw new ExecutionError(err.message, {
183
222
  contractAddress: call.to,
@@ -195,7 +234,6 @@ import { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
195
234
  throw createSimulationError(err instanceof Error ? err : new Error('Unknown error during private execution'));
196
235
  }
197
236
  }
198
- // docs:end:execute_utility_function
199
237
  /**
200
238
  * Returns the execution statistics collected during the simulator run.
201
239
  * @returns The execution statistics.
@@ -290,6 +328,7 @@ class OrderedSideEffect {
290
328
  witgen: 0,
291
329
  oracles: {}
292
330
  },
331
+ kind: CircuitKind.App,
293
332
  bytecode: execution.acir,
294
333
  vk: execution.vk,
295
334
  witness: execution.partialWitness
@@ -312,12 +351,12 @@ class OrderedSideEffect {
312
351
  const getEffect = (orderedSideEffect)=>orderedSideEffect.sideEffect;
313
352
  const isPrivateOnlyTx = privateExecutionResult.publicFunctionCalldata.length === 0;
314
353
  const [nonRevertibleNullifiers, revertibleNullifiers] = splitOrderedSideEffects(siloedNullifiers, minRevertibleSideEffectCounter);
354
+ // The protocol nullifier is the nonce generator and the tx's first nullifier. It is injected by the
355
+ // init kernel (at counter 1, index 0) rather than emitted by any private call, so it is absent from
356
+ // the executed nullifiers above. Mirror the kernel here by prepending it as the first non-revertible
357
+ // nullifier.
315
358
  const nonceGenerator = privateExecutionResult.firstNullifier;
316
- if (nonRevertibleNullifiers.length === 0) {
317
- nonRevertibleNullifiers.push(nonceGenerator);
318
- } else if (!nonRevertibleNullifiers[0].equals(nonceGenerator)) {
319
- throw new Error('The first non revertible nullifier should be equal to the nonce generator. This is a bug!');
320
- }
359
+ nonRevertibleNullifiers.unshift(nonceGenerator);
321
360
  if (isPrivateOnlyTx) {
322
361
  // We must make the note hashes unique by using the
323
362
  // nonce generator and their index in the tx.
@@ -402,17 +441,17 @@ class OrderedSideEffect {
402
441
  });
403
442
  }
404
443
  }
405
- const [noteHashWitnesses, nullifierWitnesses] = await Promise.all([
406
- Promise.all(settledNoteHashReads.map(({ value })=>node.getNoteHashMembershipWitness(anchorBlockHash, value))),
407
- Promise.all(settledNullifierReads.map(({ value })=>node.getNullifierMembershipWitness(anchorBlockHash, value)))
444
+ const [noteHashResults, nullifierResults] = await Promise.all([
445
+ settledNoteHashReads.length > 0 ? node.findLeavesIndexes(anchorBlockHash, MerkleTreeId.NOTE_HASH_TREE, settledNoteHashReads.map(({ value })=>value)) : [],
446
+ settledNullifierReads.length > 0 ? node.findLeavesIndexes(anchorBlockHash, MerkleTreeId.NULLIFIER_TREE, settledNullifierReads.map(({ value })=>value)) : []
408
447
  ]);
409
448
  for(let i = 0; i < settledNoteHashReads.length; i++){
410
- if (!noteHashWitnesses[i]) {
449
+ if (!noteHashResults[i]) {
411
450
  throw new Error(`Note hash read request at index ${settledNoteHashReads[i].index} is reading an unknown note hash: ${settledNoteHashReads[i].value}`);
412
451
  }
413
452
  }
414
453
  for(let i = 0; i < settledNullifierReads.length; i++){
415
- if (!nullifierWitnesses[i]) {
454
+ if (!nullifierResults[i]) {
416
455
  throw new Error(`Nullifier read request at index ${settledNullifierReads[i].index} is reading an unknown nullifier: ${settledNullifierReads[i].value}`);
417
456
  }
418
457
  }
@@ -455,6 +494,10 @@ function meterGasUsed(data, isPrivateOnlyTx) {
455
494
  // Every contract class log emits its contract address as an additional field
456
495
  meteredDAFields += data.contractClassLogsHashes.reduce((acc, log)=>!log.isEmpty() ? acc + log.logHash.length + 1 : acc, 0);
457
496
  meteredL2Gas += numContractClassLogs * L2_GAS_PER_CONTRACT_CLASS_LOG;
497
+ if (isPrivateOnlyTx) {
498
+ // The public data write that the private tx base rollup always performs to update the fee payer's balance.
499
+ meteredDAFields += PUBLIC_DATA_WRITE_LENGTH;
500
+ }
458
501
  const meteredDAGas = meteredDAFields * DA_GAS_PER_FIELD;
459
502
  if (data.publicCallRequests) {
460
503
  const dataForPublic = data;
@@ -0,0 +1,28 @@
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
+ /** In-memory store for ephemeral arrays scoped to a single contract call frame. */
3
+ export declare class EphemeralArrayService {
4
+ #private;
5
+ /** Returns all elements in the array, or an empty array if uninitialized. */
6
+ readArrayAt(slot: Fr): Fr[][];
7
+ /** Returns the number of elements in the array at the given slot. */
8
+ len(slot: Fr): number;
9
+ /** Appends an element to the array and returns the new length. */
10
+ push(slot: Fr, elements: Fr[]): number;
11
+ /** Removes and returns the last element. Throws if empty. */
12
+ pop(slot: Fr): Fr[];
13
+ /** Returns the element at the given index. Throws if out of bounds. */
14
+ get(slot: Fr, index: number): Fr[];
15
+ /** Overwrites the element at the given index. Throws if out of bounds. */
16
+ set(slot: Fr, index: number, value: Fr[]): void;
17
+ /** Removes the element at the given index, shifting subsequent elements backward. Throws if out of bounds. */
18
+ remove(slot: Fr, index: number): void;
19
+ /** Removes all elements from the array. */
20
+ clear(slot: Fr): void;
21
+ /** Allocates a fresh, unused slot for a new ephemeral array. */
22
+ allocateSlot(): Fr;
23
+ /** Creates a new ephemeral array pre-populated with the given elements and returns its slot. */
24
+ newArray(elements: Fr[][]): Fr;
25
+ /** Copies `count` elements from the source array to the destination array (overwrites destination). */
26
+ copy(srcSlot: Fr, dstSlot: Fr, count: number): void;
27
+ }
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXBoZW1lcmFsX2FycmF5X3NlcnZpY2UuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdF9mdW5jdGlvbl9zaW11bGF0b3IvZXBoZW1lcmFsX2FycmF5X3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXBELG1GQUFtRjtBQUNuRixxQkFBYSxxQkFBcUI7O0lBT2hDLDZFQUE2RTtJQUM3RSxXQUFXLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUU1QjtJQU1ELHFFQUFxRTtJQUNyRSxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxNQUFNLENBRXBCO0lBRUQsa0VBQWtFO0lBQ2xFLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsR0FBRyxNQUFNLENBS3JDO0lBRUQsNkRBQTZEO0lBQzdELEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQVFsQjtJQUVELHVFQUF1RTtJQUN2RSxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxHQUFHLEVBQUUsRUFBRSxDQVFqQztJQUVELDBFQUEwRTtJQUMxRSxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLENBUTlDO0lBRUQsOEdBQThHO0lBQzlHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEdBQUcsSUFBSSxDQVFwQztJQUVELDJDQUEyQztJQUMzQyxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLENBRXBCO0lBRUQsZ0VBQWdFO0lBQ2hFLFlBQVksSUFBSSxFQUFFLENBTWpCO0lBRUQsZ0dBQWdHO0lBQ2hHLFFBQVEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBSTdCO0lBRUQsdUdBQXVHO0lBQ3ZHLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sR0FBRyxJQUFJLENBVWxEO0NBQ0YifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ephemeral_array_service.d.ts","sourceRoot":"","sources":["../../src/contract_function_simulator/ephemeral_array_service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,mFAAmF;AACnF,qBAAa,qBAAqB;;IAOhC,6EAA6E;IAC7E,WAAW,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAE5B;IAMD,qEAAqE;IACrE,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,MAAM,CAEpB;IAED,kEAAkE;IAClE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,MAAM,CAKrC;IAED,6DAA6D;IAC7D,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,CAQlB;IAED,uEAAuE;IACvE,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,EAAE,EAAE,CAQjC;IAED,0EAA0E;IAC1E,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,IAAI,CAQ9C;IAED,8GAA8G;IAC9G,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAQpC;IAED,2CAA2C;IAC3C,KAAK,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,CAEpB;IAED,gEAAgE;IAChE,YAAY,IAAI,EAAE,CAMjB;IAED,gGAAgG;IAChG,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAI7B;IAED,uGAAuG;IACvG,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAUlD;CACF"}
@@ -0,0 +1,78 @@
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
+ /** In-memory store for ephemeral arrays scoped to a single contract call frame. */ export class EphemeralArrayService {
3
+ /**
4
+ * Maps a slot to the elements of the array stored at that slot. Each element is a serialized representation of
5
+ * the original type.
6
+ */ #arrays = new Map();
7
+ /** Returns all elements in the array, or an empty array if uninitialized. */ readArrayAt(slot) {
8
+ return this.#arrays.get(slot.toString()) ?? [];
9
+ }
10
+ #setArray(slot, array) {
11
+ this.#arrays.set(slot.toString(), array);
12
+ }
13
+ /** Returns the number of elements in the array at the given slot. */ len(slot) {
14
+ return this.readArrayAt(slot).length;
15
+ }
16
+ /** Appends an element to the array and returns the new length. */ push(slot, elements) {
17
+ const array = this.readArrayAt(slot);
18
+ array.push(elements);
19
+ this.#setArray(slot, array);
20
+ return array.length;
21
+ }
22
+ /** Removes and returns the last element. Throws if empty. */ pop(slot) {
23
+ const array = this.readArrayAt(slot);
24
+ if (array.length === 0) {
25
+ throw new Error(`Ephemeral array at slot ${slot} is empty`);
26
+ }
27
+ const element = array.pop();
28
+ this.#setArray(slot, array);
29
+ return element;
30
+ }
31
+ /** Returns the element at the given index. Throws if out of bounds. */ get(slot, index) {
32
+ const array = this.readArrayAt(slot);
33
+ if (index < 0 || index >= array.length) {
34
+ throw new Error(`Ephemeral array index ${index} out of bounds for array of length ${array.length} at slot ${slot}`);
35
+ }
36
+ return array[index];
37
+ }
38
+ /** Overwrites the element at the given index. Throws if out of bounds. */ set(slot, index, value) {
39
+ const array = this.readArrayAt(slot);
40
+ if (index < 0 || index >= array.length) {
41
+ throw new Error(`Ephemeral array index ${index} out of bounds for array of length ${array.length} at slot ${slot}`);
42
+ }
43
+ array[index] = value;
44
+ }
45
+ /** Removes the element at the given index, shifting subsequent elements backward. Throws if out of bounds. */ remove(slot, index) {
46
+ const array = this.readArrayAt(slot);
47
+ if (index < 0 || index >= array.length) {
48
+ throw new Error(`Ephemeral array index ${index} out of bounds for array of length ${array.length} at slot ${slot}`);
49
+ }
50
+ array.splice(index, 1);
51
+ }
52
+ /** Removes all elements from the array. */ clear(slot) {
53
+ this.#arrays.delete(slot.toString());
54
+ }
55
+ /** Allocates a fresh, unused slot for a new ephemeral array. */ allocateSlot() {
56
+ let slot;
57
+ do {
58
+ slot = Fr.random();
59
+ }while (this.#arrays.has(slot.toString()))
60
+ return slot;
61
+ }
62
+ /** Creates a new ephemeral array pre-populated with the given elements and returns its slot. */ newArray(elements) {
63
+ const slot = this.allocateSlot();
64
+ this.#setArray(slot, elements);
65
+ return slot;
66
+ }
67
+ /** Copies `count` elements from the source array to the destination array (overwrites destination). */ copy(srcSlot, dstSlot, count) {
68
+ const srcArray = this.readArrayAt(srcSlot);
69
+ if (count > srcArray.length) {
70
+ throw new Error(`Cannot copy ${count} elements from ephemeral array of length ${srcArray.length} at slot ${srcSlot}`);
71
+ }
72
+ // Deep copy the elements to avoid aliasing
73
+ const copied = srcArray.slice(0, count).map((el)=>[
74
+ ...el
75
+ ]);
76
+ this.#setArray(dstSlot, copied);
77
+ }
78
+ }