@aztec/pxe 0.0.1-commit.42ee6df9b → 0.0.1-commit.431c48d

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 (538) 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 +22 -16
  12. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
  13. package/dest/block_synchronizer/block_synchronizer.js +65 -28
  14. package/dest/config/index.d.ts +22 -2
  15. package/dest/config/index.d.ts.map +1 -1
  16. package/dest/config/index.js +18 -14
  17. package/dest/config/package_info.js +1 -1
  18. package/dest/contract/contract_call_graph.d.ts +52 -0
  19. package/dest/contract/contract_call_graph.d.ts.map +1 -0
  20. package/dest/contract/contract_call_graph.js +91 -0
  21. package/dest/contract/contract_class_service.d.ts +24 -0
  22. package/dest/contract/contract_class_service.d.ts.map +1 -0
  23. package/dest/contract/contract_class_service.js +36 -0
  24. package/dest/contract/contract_sync_service.d.ts +83 -0
  25. package/dest/contract/contract_sync_service.d.ts.map +1 -0
  26. package/dest/contract/contract_sync_service.js +213 -0
  27. package/dest/contract/helpers.d.ts +7 -0
  28. package/dest/contract/helpers.d.ts.map +1 -0
  29. package/dest/contract/helpers.js +20 -0
  30. package/dest/contract/skip_sync_contracts.d.ts +11 -0
  31. package/dest/contract/skip_sync_contracts.d.ts.map +1 -0
  32. package/dest/contract/skip_sync_contracts.js +18 -0
  33. package/dest/contract_function_simulator/anchored_contract_data.d.ts +36 -0
  34. package/dest/contract_function_simulator/anchored_contract_data.d.ts.map +1 -0
  35. package/dest/contract_function_simulator/anchored_contract_data.js +54 -0
  36. package/dest/contract_function_simulator/contract_function_simulator.d.ts +25 -25
  37. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  38. package/dest/contract_function_simulator/contract_function_simulator.js +90 -65
  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 +10 -29
  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 +200 -65
  138. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +152 -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 +590 -173
  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 +9 -7
  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 +21 -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 +21 -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 +22 -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 +15 -12
  180. package/dest/events/event_service.d.ts +19 -4
  181. package/dest/events/event_service.d.ts.map +1 -1
  182. package/dest/events/event_service.js +37 -15
  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/job_coordinator/job_coordinator.d.ts +10 -1
  202. package/dest/job_coordinator/job_coordinator.d.ts.map +1 -1
  203. package/dest/job_coordinator/job_coordinator.js +19 -0
  204. package/dest/logs/log_service.d.ts +21 -10
  205. package/dest/logs/log_service.d.ts.map +1 -1
  206. package/dest/logs/log_service.js +173 -76
  207. package/dest/messages/tx_resolver_service.d.ts +28 -0
  208. package/dest/messages/tx_resolver_service.d.ts.map +1 -0
  209. package/dest/messages/tx_resolver_service.js +62 -0
  210. package/dest/node/benchmarked_node.d.ts +20 -0
  211. package/dest/node/benchmarked_node.d.ts.map +1 -0
  212. package/dest/node/benchmarked_node.js +94 -0
  213. package/dest/node/caching_aztec_node.d.ts +24 -0
  214. package/dest/node/caching_aztec_node.d.ts.map +1 -0
  215. package/dest/node/caching_aztec_node.js +268 -0
  216. package/dest/notes/note_service.d.ts +32 -4
  217. package/dest/notes/note_service.d.ts.map +1 -1
  218. package/dest/notes/note_service.js +82 -66
  219. package/dest/oracle_version.d.ts +4 -3
  220. package/dest/oracle_version.d.ts.map +1 -1
  221. package/dest/oracle_version.js +20 -10
  222. package/dest/private_kernel/batch_planner.d.ts +47 -0
  223. package/dest/private_kernel/batch_planner.d.ts.map +1 -0
  224. package/dest/private_kernel/batch_planner.js +104 -0
  225. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +1 -1
  226. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -1
  227. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.js +10 -5
  228. package/dest/private_kernel/hints/test_utils.d.ts +1 -1
  229. package/dest/private_kernel/hints/test_utils.d.ts.map +1 -1
  230. package/dest/private_kernel/hints/test_utils.js +3 -4
  231. package/dest/private_kernel/private_kernel_execution_prover.d.ts +6 -2
  232. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  233. package/dest/private_kernel/private_kernel_execution_prover.js +160 -85
  234. package/dest/private_kernel/private_kernel_oracle.d.ts +12 -10
  235. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  236. package/dest/private_kernel/private_kernel_oracle.js +40 -26
  237. package/dest/pxe.d.ts +164 -51
  238. package/dest/pxe.d.ts.map +1 -1
  239. package/dest/pxe.js +388 -215
  240. package/dest/storage/address_store/address_store.d.ts +1 -1
  241. package/dest/storage/address_store/address_store.d.ts.map +1 -1
  242. package/dest/storage/address_store/address_store.js +2 -1
  243. package/dest/storage/allowed_scopes.d.ts +6 -0
  244. package/dest/storage/allowed_scopes.d.ts.map +1 -0
  245. package/dest/storage/allowed_scopes.js +7 -0
  246. package/dest/storage/anchor_block_store/anchor_block_store.d.ts +9 -6
  247. package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -1
  248. package/dest/storage/anchor_block_store/anchor_block_store.js +9 -7
  249. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.d.ts +42 -0
  250. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.d.ts.map +1 -0
  251. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.js +93 -0
  252. package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts +15 -0
  253. package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts.map +1 -0
  254. package/dest/storage/backwards_compatibility_tests/schema_tests.js +671 -0
  255. package/dest/storage/backwards_compatibility_tests/store_spy.d.ts +19 -0
  256. package/dest/storage/backwards_compatibility_tests/store_spy.d.ts.map +1 -0
  257. package/dest/storage/backwards_compatibility_tests/store_spy.js +63 -0
  258. package/dest/storage/capsule_store/capsule_service.d.ts +1 -1
  259. package/dest/storage/capsule_store/capsule_service.d.ts.map +1 -1
  260. package/dest/storage/capsule_store/capsule_service.js +6 -9
  261. package/dest/storage/capsule_store/capsule_store.d.ts +1 -1
  262. package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -1
  263. package/dest/storage/capsule_store/capsule_store.js +9 -6
  264. package/dest/storage/contract_store/contract_store.d.ts +27 -24
  265. package/dest/storage/contract_store/contract_store.d.ts.map +1 -1
  266. package/dest/storage/contract_store/contract_store.js +72 -99
  267. package/dest/storage/contract_store/private_functions_tree.d.ts +1 -1
  268. package/dest/storage/contract_store/private_functions_tree.d.ts.map +1 -1
  269. package/dest/storage/contract_store/private_functions_tree.js +2 -1
  270. package/dest/storage/fact_store/fact_service.d.ts +22 -0
  271. package/dest/storage/fact_store/fact_service.d.ts.map +1 -0
  272. package/dest/storage/fact_store/fact_service.js +45 -0
  273. package/dest/storage/fact_store/fact_store.d.ts +95 -0
  274. package/dest/storage/fact_store/fact_store.d.ts.map +1 -0
  275. package/dest/storage/fact_store/fact_store.js +411 -0
  276. package/dest/storage/fact_store/fact_store_keys.d.ts +34 -0
  277. package/dest/storage/fact_store/fact_store_keys.d.ts.map +1 -0
  278. package/dest/storage/fact_store/fact_store_keys.js +50 -0
  279. package/dest/storage/fact_store/index.d.ts +6 -0
  280. package/dest/storage/fact_store/index.d.ts.map +1 -0
  281. package/dest/storage/fact_store/index.js +4 -0
  282. package/dest/storage/fact_store/origin_state.d.ts +59 -0
  283. package/dest/storage/fact_store/origin_state.d.ts.map +1 -0
  284. package/dest/storage/fact_store/origin_state.js +60 -0
  285. package/dest/storage/fact_store/stored_fact.d.ts +32 -0
  286. package/dest/storage/fact_store/stored_fact.d.ts.map +1 -0
  287. package/dest/storage/fact_store/stored_fact.js +64 -0
  288. package/dest/storage/index.d.ts +3 -2
  289. package/dest/storage/index.d.ts.map +1 -1
  290. package/dest/storage/index.js +2 -1
  291. package/dest/storage/metadata.d.ts +2 -2
  292. package/dest/storage/metadata.d.ts.map +1 -1
  293. package/dest/storage/metadata.js +1 -1
  294. package/dest/storage/note_store/note_store.d.ts +42 -33
  295. package/dest/storage/note_store/note_store.d.ts.map +1 -1
  296. package/dest/storage/note_store/note_store.js +200 -170
  297. package/dest/storage/note_store/stored_note.d.ts +3 -8
  298. package/dest/storage/note_store/stored_note.d.ts.map +1 -1
  299. package/dest/storage/note_store/stored_note.js +4 -20
  300. package/dest/storage/open_pxe_stores.d.ts +35 -0
  301. package/dest/storage/open_pxe_stores.d.ts.map +1 -0
  302. package/dest/storage/open_pxe_stores.js +29 -0
  303. package/dest/storage/private_event_store/private_event_store.d.ts +13 -16
  304. package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -1
  305. package/dest/storage/private_event_store/private_event_store.js +48 -45
  306. package/dest/storage/private_event_store/stored_private_event.js +1 -1
  307. package/dest/storage/store_identity.d.ts +35 -0
  308. package/dest/storage/store_identity.d.ts.map +1 -0
  309. package/dest/storage/store_identity.js +44 -0
  310. package/dest/storage/tagging_store/index.d.ts +2 -2
  311. package/dest/storage/tagging_store/index.d.ts.map +1 -1
  312. package/dest/storage/tagging_store/index.js +1 -1
  313. package/dest/storage/tagging_store/recipient_tagging_store.d.ts +6 -6
  314. package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -1
  315. package/dest/storage/tagging_store/sender_tagging_store.d.ts +44 -13
  316. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -1
  317. package/dest/storage/tagging_store/sender_tagging_store.js +91 -36
  318. package/dest/storage/tagging_store/tagging_secret_sources_store.d.ts +51 -0
  319. package/dest/storage/tagging_store/tagging_secret_sources_store.d.ts.map +1 -0
  320. package/dest/storage/tagging_store/tagging_secret_sources_store.js +105 -0
  321. package/dest/tagging/constants.d.ts +11 -2
  322. package/dest/tagging/constants.d.ts.map +1 -1
  323. package/dest/tagging/constants.js +38 -10
  324. package/dest/tagging/get_all_logs_by_tags.d.ts +55 -10
  325. package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -1
  326. package/dest/tagging/get_all_logs_by_tags.js +55 -36
  327. package/dest/tagging/index.d.ts +7 -6
  328. package/dest/tagging/index.d.ts.map +1 -1
  329. package/dest/tagging/index.js +6 -5
  330. package/dest/tagging/persist_sender_tagging_index_ranges.d.ts +29 -0
  331. package/dest/tagging/persist_sender_tagging_index_ranges.d.ts.map +1 -0
  332. package/dest/tagging/persist_sender_tagging_index_ranges.js +42 -0
  333. package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts +74 -0
  334. package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts.map +1 -0
  335. package/dest/tagging/recipient_sync/sync_tagged_private_logs.js +235 -0
  336. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts +3 -3
  337. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts.map +1 -1
  338. package/dest/tagging/reconcile_tagging_index_ranges.d.ts +36 -0
  339. package/dest/tagging/reconcile_tagging_index_ranges.d.ts.map +1 -0
  340. package/dest/tagging/reconcile_tagging_index_ranges.js +74 -0
  341. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +8 -6
  342. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -1
  343. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +24 -27
  344. package/dest/tagging/sender_sync/utils/classify_pending_txs.d.ts +22 -0
  345. package/dest/tagging/sender_sync/utils/classify_pending_txs.d.ts.map +1 -0
  346. package/dest/tagging/sender_sync/utils/classify_pending_txs.js +62 -0
  347. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +17 -7
  348. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -1
  349. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +39 -37
  350. package/dest/tagging/sender_sync/utils/resolve_pending_txs.d.ts +29 -0
  351. package/dest/tagging/sender_sync/utils/resolve_pending_txs.d.ts.map +1 -0
  352. package/dest/tagging/sender_sync/utils/resolve_pending_txs.js +42 -0
  353. package/dest/tagging/sender_sync/utils/test_utils.d.ts +16 -0
  354. package/dest/tagging/sender_sync/utils/test_utils.d.ts.map +1 -0
  355. package/dest/tagging/sender_sync/utils/test_utils.js +24 -0
  356. package/dest/tagging/testing/tag_query_test_utils.d.ts +6 -0
  357. package/dest/tagging/testing/tag_query_test_utils.d.ts.map +1 -0
  358. package/dest/tagging/testing/tag_query_test_utils.js +10 -0
  359. package/package.json +20 -17
  360. package/src/bin/check_oracle_version.ts +46 -135
  361. package/src/bin/index.ts +1 -0
  362. package/src/bin/oracle_version_helpers.ts +54 -0
  363. package/src/block_synchronizer/block_stream_source.ts +42 -0
  364. package/src/block_synchronizer/block_synchronizer.ts +80 -40
  365. package/src/config/index.ts +40 -9
  366. package/src/config/package_info.ts +1 -1
  367. package/src/contract/contract_call_graph.ts +113 -0
  368. package/src/contract/contract_class_service.ts +45 -0
  369. package/src/contract/contract_sync_service.ts +342 -0
  370. package/src/contract/helpers.ts +35 -0
  371. package/src/contract/skip_sync_contracts.ts +23 -0
  372. package/src/contract_function_simulator/anchored_contract_data.ts +74 -0
  373. package/src/contract_function_simulator/contract_function_simulator.ts +142 -78
  374. package/src/contract_function_simulator/ephemeral_array_service.ts +110 -0
  375. package/src/contract_function_simulator/execution_note_cache.ts +10 -30
  376. package/src/contract_function_simulator/execution_tagging_index_cache.ts +5 -9
  377. package/src/contract_function_simulator/index.ts +89 -5
  378. package/src/contract_function_simulator/noir-structs/bounded_vec.ts +43 -0
  379. package/src/contract_function_simulator/noir-structs/contract_class_log_data.ts +9 -0
  380. package/src/contract_function_simulator/noir-structs/embedded_curve_point.ts +4 -0
  381. package/src/contract_function_simulator/noir-structs/ephemeral_array.ts +66 -0
  382. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +5 -4
  383. package/src/contract_function_simulator/noir-structs/fact.ts +13 -0
  384. package/src/contract_function_simulator/noir-structs/fact_collection.ts +64 -0
  385. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +27 -20
  386. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +14 -61
  387. package/src/contract_function_simulator/noir-structs/note_data.ts +27 -0
  388. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +6 -5
  389. package/src/contract_function_simulator/noir-structs/option.ts +75 -0
  390. package/src/contract_function_simulator/noir-structs/origin_block.ts +8 -0
  391. package/src/contract_function_simulator/noir-structs/pending_tagged_log.ts +12 -0
  392. package/src/contract_function_simulator/noir-structs/provided_secret.ts +5 -0
  393. package/src/contract_function_simulator/noir-structs/resolved_tagging_strategy.ts +66 -0
  394. package/src/contract_function_simulator/noir-structs/resolved_tx.ts +19 -0
  395. package/src/contract_function_simulator/noir-structs/tx_effect_data.ts +16 -0
  396. package/src/contract_function_simulator/noir-structs/utility_context.ts +5 -17
  397. package/src/contract_function_simulator/oracle/acir_callback.ts +154 -0
  398. package/src/contract_function_simulator/oracle/index.ts +1 -15
  399. package/src/contract_function_simulator/oracle/interfaces.ts +11 -185
  400. package/src/contract_function_simulator/oracle/legacy_oracle_registry.ts +147 -0
  401. package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +6 -21
  402. package/src/contract_function_simulator/oracle/note_packing_utils.ts +3 -3
  403. package/src/contract_function_simulator/oracle/oracle_registry.ts +710 -0
  404. package/src/contract_function_simulator/oracle/oracle_type_mappings.ts +1052 -0
  405. package/src/contract_function_simulator/oracle/private_execution.ts +2 -3
  406. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +249 -92
  407. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +846 -325
  408. package/src/contract_function_simulator/pick_notes.ts +22 -3
  409. package/src/contract_function_simulator/transient_array_service.ts +91 -0
  410. package/src/debug/pxe_debug_utils.ts +8 -15
  411. package/src/entrypoints/client/bundle/index.ts +1 -0
  412. package/src/entrypoints/client/bundle/utils.ts +26 -8
  413. package/src/entrypoints/client/lazy/index.ts +1 -0
  414. package/src/entrypoints/client/lazy/utils.ts +26 -8
  415. package/src/entrypoints/client/store.ts +54 -0
  416. package/src/entrypoints/pxe_creation_options.ts +21 -1
  417. package/src/entrypoints/server/index.ts +7 -2
  418. package/src/entrypoints/server/store.ts +47 -0
  419. package/src/entrypoints/server/utils.ts +39 -14
  420. package/src/error_enriching.ts +30 -13
  421. package/src/events/event_service.ts +70 -24
  422. package/src/events/private_event_filter_validator.ts +21 -1
  423. package/src/hooks/authorize_utility_call.ts +44 -0
  424. package/src/hooks/execution_hooks.ts +68 -0
  425. package/src/hooks/index.ts +13 -0
  426. package/src/hooks/resolve_custom_request.ts +24 -0
  427. package/src/hooks/resolve_tagging_secret_strategy.ts +60 -0
  428. package/src/job_coordinator/job_coordinator.ts +30 -0
  429. package/src/logs/log_service.ts +212 -146
  430. package/src/messages/tx_resolver_service.ts +81 -0
  431. package/src/node/benchmarked_node.ts +140 -0
  432. package/src/node/caching_aztec_node.ts +407 -0
  433. package/src/notes/note_service.ts +123 -92
  434. package/src/oracle_version.ts +20 -10
  435. package/src/private_kernel/batch_planner.ts +169 -0
  436. package/src/private_kernel/hints/private_kernel_reset_private_inputs_builder.ts +15 -4
  437. package/src/private_kernel/hints/test_utils.ts +3 -10
  438. package/src/private_kernel/private_kernel_execution_prover.ts +246 -117
  439. package/src/private_kernel/private_kernel_oracle.ts +58 -29
  440. package/src/pxe.ts +576 -256
  441. package/src/storage/address_store/address_store.ts +2 -1
  442. package/src/storage/allowed_scopes.ts +14 -0
  443. package/src/storage/anchor_block_store/anchor_block_store.ts +9 -7
  444. package/src/storage/backwards_compatibility_tests/__snapshots__/AddressStore.json +22 -0
  445. package/src/storage/backwards_compatibility_tests/__snapshots__/AnchorBlockStore.json +3 -0
  446. package/src/storage/backwards_compatibility_tests/__snapshots__/CapsuleStore.json +16 -0
  447. package/src/storage/backwards_compatibility_tests/__snapshots__/ContractStore.json +28 -0
  448. package/src/storage/backwards_compatibility_tests/__snapshots__/FactStore.json +40 -0
  449. package/src/storage/backwards_compatibility_tests/__snapshots__/KeyStore.json +52 -0
  450. package/src/storage/backwards_compatibility_tests/__snapshots__/L2TipsKVStore.json +40 -0
  451. package/src/storage/backwards_compatibility_tests/__snapshots__/NoteStore.json +56 -0
  452. package/src/storage/backwards_compatibility_tests/__snapshots__/PrivateEventStore.json +44 -0
  453. package/src/storage/backwards_compatibility_tests/__snapshots__/RecipientTaggingStore.json +26 -0
  454. package/src/storage/backwards_compatibility_tests/__snapshots__/SenderTaggingStore.json +30 -0
  455. package/src/storage/backwards_compatibility_tests/__snapshots__/TaggingSecretSourcesStore.json +30 -0
  456. package/src/storage/backwards_compatibility_tests/__snapshots__/opened_stores.json +117 -0
  457. package/src/storage/backwards_compatibility_tests/kv_store_snapshot.ts +122 -0
  458. package/src/storage/backwards_compatibility_tests/schema_tests.ts +803 -0
  459. package/src/storage/backwards_compatibility_tests/store_spy.ts +73 -0
  460. package/src/storage/capsule_store/capsule_service.ts +8 -13
  461. package/src/storage/capsule_store/capsule_store.ts +16 -6
  462. package/src/storage/contract_store/contract_store.ts +98 -125
  463. package/src/storage/contract_store/private_functions_tree.ts +2 -1
  464. package/src/storage/fact_store/fact_service.ts +69 -0
  465. package/src/storage/fact_store/fact_store.ts +488 -0
  466. package/src/storage/fact_store/fact_store_keys.ts +75 -0
  467. package/src/storage/fact_store/index.ts +15 -0
  468. package/src/storage/fact_store/origin_state.ts +84 -0
  469. package/src/storage/fact_store/stored_fact.ts +80 -0
  470. package/src/storage/index.ts +2 -1
  471. package/src/storage/metadata.ts +1 -1
  472. package/src/storage/note_store/note_store.ts +231 -189
  473. package/src/storage/note_store/stored_note.ts +5 -27
  474. package/src/storage/open_pxe_stores.ts +52 -0
  475. package/src/storage/private_event_store/private_event_store.ts +55 -56
  476. package/src/storage/private_event_store/stored_private_event.ts +1 -1
  477. package/src/storage/store_identity.ts +72 -0
  478. package/src/storage/tagging_store/index.ts +1 -1
  479. package/src/storage/tagging_store/recipient_tagging_store.ts +5 -9
  480. package/src/storage/tagging_store/sender_tagging_store.ts +123 -50
  481. package/src/storage/tagging_store/tagging_secret_sources_store.ts +138 -0
  482. package/src/tagging/constants.ts +42 -10
  483. package/src/tagging/get_all_logs_by_tags.ts +115 -50
  484. package/src/tagging/index.ts +11 -5
  485. package/src/tagging/persist_sender_tagging_index_ranges.ts +57 -0
  486. package/src/tagging/recipient_sync/sync_tagged_private_logs.ts +356 -0
  487. package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +2 -2
  488. package/src/tagging/reconcile_tagging_index_ranges.ts +102 -0
  489. package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +30 -38
  490. package/src/tagging/sender_sync/utils/classify_pending_txs.ts +92 -0
  491. package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +50 -44
  492. package/src/tagging/sender_sync/utils/resolve_pending_txs.ts +65 -0
  493. package/src/tagging/sender_sync/utils/test_utils.ts +46 -0
  494. package/src/tagging/testing/tag_query_test_utils.ts +11 -0
  495. package/dest/contract_function_simulator/benchmarked_node.d.ts +0 -9
  496. package/dest/contract_function_simulator/benchmarked_node.d.ts.map +0 -1
  497. package/dest/contract_function_simulator/benchmarked_node.js +0 -77
  498. package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.d.ts +0 -9
  499. package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.d.ts.map +0 -1
  500. package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.js +0 -38
  501. package/dest/contract_function_simulator/oracle/oracle.d.ts +0 -80
  502. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +0 -1
  503. package/dest/contract_function_simulator/oracle/oracle.js +0 -458
  504. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +0 -6
  505. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +0 -1
  506. package/dest/contract_function_simulator/proxied_contract_data_source.js +0 -80
  507. package/dest/contract_sync/contract_sync_service.d.ts +0 -44
  508. package/dest/contract_sync/contract_sync_service.d.ts.map +0 -1
  509. package/dest/contract_sync/contract_sync_service.js +0 -104
  510. package/dest/contract_sync/helpers.d.ts +0 -28
  511. package/dest/contract_sync/helpers.d.ts.map +0 -1
  512. package/dest/contract_sync/helpers.js +0 -60
  513. package/dest/messages/message_context_service.d.ts +0 -17
  514. package/dest/messages/message_context_service.d.ts.map +0 -1
  515. package/dest/messages/message_context_service.js +0 -36
  516. package/dest/storage/tagging_store/sender_address_book_store.d.ts +0 -14
  517. package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +0 -1
  518. package/dest/storage/tagging_store/sender_address_book_store.js +0 -36
  519. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +0 -14
  520. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +0 -1
  521. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +0 -99
  522. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +0 -14
  523. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +0 -1
  524. package/dest/tagging/recipient_sync/utils/load_logs_for_range.js +0 -33
  525. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +0 -12
  526. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +0 -1
  527. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +0 -39
  528. package/src/contract_function_simulator/benchmarked_node.ts +0 -103
  529. package/src/contract_function_simulator/oracle/legacy_oracle_mappings.ts +0 -98
  530. package/src/contract_function_simulator/oracle/oracle.ts +0 -721
  531. package/src/contract_function_simulator/proxied_contract_data_source.ts +0 -83
  532. package/src/contract_sync/contract_sync_service.ts +0 -170
  533. package/src/contract_sync/helpers.ts +0 -98
  534. package/src/messages/message_context_service.ts +0 -44
  535. package/src/storage/tagging_store/sender_address_book_store.ts +0 -48
  536. package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +0 -140
  537. package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +0 -44
  538. package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +0 -51
@@ -0,0 +1,74 @@
1
+ import type { Fr } from '@aztec/foundation/curves/bn254';
2
+ import type { FunctionArtifactWithContractName, FunctionSelector } from '@aztec/stdlib/abi';
3
+ import type { AztecAddress } from '@aztec/stdlib/aztec-address';
4
+ import type { ContractInstancePreimageWithAddress } from '@aztec/stdlib/contract';
5
+ import type { BlockHeader, ContractOverrides } from '@aztec/stdlib/tx';
6
+
7
+ import type { ContractClassService } from '../contract/contract_class_service.js';
8
+ import type { ContractStore } from '../storage/contract_store/contract_store.js';
9
+
10
+ /**
11
+ * Per-run view of contract data for a single simulation, bound to its anchor block.
12
+ *
13
+ * The {@link ContractStore} is pure class-id-keyed storage and has no notion of which class an address runs. This
14
+ * class bridges that gap: it resolves an address to its current class id (via the {@link ContractClassService}
15
+ * at the run's anchor block) and then serves artifacts from the store. It is also the single place contract
16
+ * overrides are applied — when an address is overridden, both its instance and its class id come from the override
17
+ * rather than the chain, so a simulation can execute different bytecode at that address. Overrides are only set for
18
+ * `simulateTx` (which skips the kernels), so the override path never reaches proving.
19
+ */
20
+ export class AnchoredContractData {
21
+ constructor(
22
+ private readonly store: ContractStore,
23
+ private readonly contractClassService: ContractClassService,
24
+ private readonly anchorBlockHeader: BlockHeader,
25
+ private readonly overrides?: ContractOverrides,
26
+ ) {}
27
+
28
+ /** Returns the address preimage of the instance at `address`, from the override if any, else from storage. */
29
+ getContractInstance(address: AztecAddress): Promise<ContractInstancePreimageWithAddress | undefined> {
30
+ const override = this.overrides?.[address.toString()];
31
+ if (override) {
32
+ return Promise.resolve(override.instance);
33
+ }
34
+ return this.store.getContractInstance(address);
35
+ }
36
+
37
+ /**
38
+ * Resolves the class id `address` runs in this simulation: the override's class if overridden, else resolved against
39
+ * the chain at the anchor block.
40
+ */
41
+ getCurrentClassId(address: AztecAddress): Promise<Fr | undefined> {
42
+ const override = this.overrides?.[address.toString()];
43
+ if (override) {
44
+ return Promise.resolve(override.instance.currentContractClassId);
45
+ }
46
+ return this.contractClassService.getCurrentClassId(address, this.anchorBlockHeader);
47
+ }
48
+
49
+ async getFunctionArtifact(
50
+ address: AztecAddress,
51
+ selector: FunctionSelector,
52
+ ): Promise<FunctionArtifactWithContractName | undefined> {
53
+ const classId = await this.getCurrentClassId(address);
54
+ return classId ? this.store.getFunctionArtifact(classId, selector) : undefined;
55
+ }
56
+
57
+ async getFunctionArtifactWithDebugMetadata(
58
+ address: AztecAddress,
59
+ selector: FunctionSelector,
60
+ ): Promise<FunctionArtifactWithContractName | undefined> {
61
+ const classId = await this.getCurrentClassId(address);
62
+ return classId ? this.store.getFunctionArtifactWithDebugMetadata(classId, selector) : undefined;
63
+ }
64
+
65
+ async getDebugContractName(address: AztecAddress): Promise<string | undefined> {
66
+ const classId = await this.getCurrentClassId(address);
67
+ return classId ? this.store.getDebugContractName(classId) : undefined;
68
+ }
69
+
70
+ async getDebugFunctionName(address: AztecAddress, selector: FunctionSelector): Promise<string> {
71
+ const classId = await this.getCurrentClassId(address);
72
+ return classId ? this.store.getDebugFunctionName(classId, selector) : `${address}:${selector}`;
73
+ }
74
+ }
@@ -19,12 +19,14 @@ import {
19
19
  MAX_PRIVATE_LOGS_PER_TX,
20
20
  MAX_TX_LIFETIME,
21
21
  PRIVATE_TX_L2_GAS_OVERHEAD,
22
+ PUBLIC_DATA_WRITE_LENGTH,
22
23
  PUBLIC_TX_L2_GAS_OVERHEAD,
23
24
  TX_DA_GAS_OVERHEAD,
24
25
  } from '@aztec/constants';
25
26
  import { arrayNonEmptyLength, padArrayEnd } from '@aztec/foundation/collection';
26
27
  import { Fr } from '@aztec/foundation/curves/bn254';
27
28
  import { type Logger, createLogger } from '@aztec/foundation/log';
29
+ import { allToCompletion } from '@aztec/foundation/promise';
28
30
  import { Timer } from '@aztec/foundation/timer';
29
31
  import type { KeyStore } from '@aztec/key-store';
30
32
  import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
@@ -42,7 +44,7 @@ import type { FunctionCall } from '@aztec/stdlib/abi';
42
44
  import { FunctionSelector, FunctionType } from '@aztec/stdlib/abi';
43
45
  import type { AuthWitness } from '@aztec/stdlib/auth-witness';
44
46
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
45
- import type { BlockParameter } from '@aztec/stdlib/block';
47
+ import type { BlockParameter, L2TipsProvider } from '@aztec/stdlib/block';
46
48
  import { Gas } from '@aztec/stdlib/gas';
47
49
  import {
48
50
  computeNoteHashNonce,
@@ -76,9 +78,11 @@ import {
76
78
  import { PrivateLog } from '@aztec/stdlib/logs';
77
79
  import { ScopedL2ToL1Message } from '@aztec/stdlib/messaging';
78
80
  import { ChonkProof } from '@aztec/stdlib/proofs';
81
+ import { MerkleTreeId } from '@aztec/stdlib/trees';
79
82
  import {
80
83
  BlockHeader,
81
84
  CallContext,
85
+ type ContractOverrides,
82
86
  HashedValues,
83
87
  type OffchainEffect,
84
88
  PrivateExecutionResult,
@@ -89,32 +93,33 @@ import {
89
93
  getFinalMinRevertibleSideEffectCounter,
90
94
  } from '@aztec/stdlib/tx';
91
95
 
92
- import type { ContractSyncService } from '../contract_sync/contract_sync_service.js';
93
- import type { MessageContextService } from '../messages/message_context_service.js';
96
+ import type { ContractClassService } from '../contract/contract_class_service.js';
97
+ import type { ContractSyncService } from '../contract/contract_sync_service.js';
98
+ import type { ExecutionHooks } from '../hooks/index.js';
99
+ import type { TxResolverService } from '../messages/tx_resolver_service.js';
94
100
  import type { AddressStore } from '../storage/address_store/address_store.js';
95
101
  import { CapsuleService } from '../storage/capsule_store/capsule_service.js';
96
102
  import type { CapsuleStore } from '../storage/capsule_store/capsule_store.js';
97
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';
98
106
  import type { NoteStore } from '../storage/note_store/note_store.js';
99
107
  import type { PrivateEventStore } from '../storage/private_event_store/private_event_store.js';
100
108
  import type { RecipientTaggingStore } from '../storage/tagging_store/recipient_tagging_store.js';
101
- import type { SenderAddressBookStore } from '../storage/tagging_store/sender_address_book_store.js';
102
109
  import type { SenderTaggingStore } from '../storage/tagging_store/sender_tagging_store.js';
103
- 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';
104
112
  import { ExecutionNoteCache } from './execution_note_cache.js';
105
113
  import { ExecutionTaggingIndexCache } from './execution_tagging_index_cache.js';
106
114
  import { HashedValuesCache } from './hashed_values_cache.js';
107
- import { Oracle } from './oracle/oracle.js';
115
+ import { buildACIRCallback } from './oracle/acir_callback.js';
108
116
  import { executePrivateFunction } from './oracle/private_execution.js';
109
117
  import { PrivateExecutionOracle } from './oracle/private_execution_oracle.js';
110
118
  import { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
119
+ import { TransientArrayService } from './transient_array_service.js';
111
120
 
112
121
  /** Options for ContractFunctionSimulator.run. */
113
122
  export type ContractSimulatorRunOpts = {
114
- /** The address of the contract (should match request.origin). */
115
- contractAddress: AztecAddress;
116
- /** The function selector of the entry point. */
117
- selector: FunctionSelector;
118
123
  /** The address calling the function. Can be replaced to simulate a call from another contract or account. */
119
124
  msgSender?: AztecAddress;
120
125
  /** The block header to use as base state for this run. */
@@ -130,18 +135,24 @@ export type ContractSimulatorRunOpts = {
130
135
  /** Args for ContractFunctionSimulator constructor. */
131
136
  export type ContractFunctionSimulatorArgs = {
132
137
  contractStore: ContractStore;
138
+ contractClassService: ContractClassService;
139
+ /** Per-simulation contract overrides. */
140
+ overrides?: ContractOverrides;
133
141
  noteStore: NoteStore;
134
142
  keyStore: KeyStore;
135
143
  addressStore: AddressStore;
136
144
  aztecNode: AztecNode;
145
+ l2TipsStore: L2TipsProvider;
137
146
  senderTaggingStore: SenderTaggingStore;
138
147
  recipientTaggingStore: RecipientTaggingStore;
139
- senderAddressBookStore: SenderAddressBookStore;
148
+ taggingSecretSourcesStore: TaggingSecretSourcesStore;
140
149
  capsuleStore: CapsuleStore;
150
+ factStore: FactStore;
141
151
  privateEventStore: PrivateEventStore;
142
152
  simulator: CircuitSimulator;
143
153
  contractSyncService: ContractSyncService;
144
- messageContextService: MessageContextService;
154
+ txResolver: TxResolverService;
155
+ hooks?: ExecutionHooks;
145
156
  };
146
157
 
147
158
  /**
@@ -150,33 +161,43 @@ export type ContractFunctionSimulatorArgs = {
150
161
  export class ContractFunctionSimulator {
151
162
  private readonly log: Logger;
152
163
  private readonly contractStore: ContractStore;
164
+ private readonly contractClassService: ContractClassService;
165
+ private readonly overrides: ContractOverrides | undefined;
153
166
  private readonly noteStore: NoteStore;
154
167
  private readonly keyStore: KeyStore;
155
168
  private readonly addressStore: AddressStore;
156
169
  private readonly aztecNode: AztecNode;
170
+ private readonly l2TipsStore: L2TipsProvider;
157
171
  private readonly senderTaggingStore: SenderTaggingStore;
158
172
  private readonly recipientTaggingStore: RecipientTaggingStore;
159
- private readonly senderAddressBookStore: SenderAddressBookStore;
173
+ private readonly taggingSecretSourcesStore: TaggingSecretSourcesStore;
160
174
  private readonly capsuleStore: CapsuleStore;
175
+ private readonly factStore: FactStore;
161
176
  private readonly privateEventStore: PrivateEventStore;
162
177
  private readonly simulator: CircuitSimulator;
163
178
  private readonly contractSyncService: ContractSyncService;
164
- private readonly messageContextService: MessageContextService;
179
+ private readonly txResolver: TxResolverService;
180
+ private readonly hooks: ExecutionHooks | undefined;
165
181
 
166
182
  constructor(args: ContractFunctionSimulatorArgs) {
167
183
  this.contractStore = args.contractStore;
184
+ this.contractClassService = args.contractClassService;
185
+ this.overrides = args.overrides;
168
186
  this.noteStore = args.noteStore;
169
187
  this.keyStore = args.keyStore;
170
188
  this.addressStore = args.addressStore;
171
189
  this.aztecNode = args.aztecNode;
190
+ this.l2TipsStore = args.l2TipsStore;
172
191
  this.senderTaggingStore = args.senderTaggingStore;
173
192
  this.recipientTaggingStore = args.recipientTaggingStore;
174
- this.senderAddressBookStore = args.senderAddressBookStore;
193
+ this.taggingSecretSourcesStore = args.taggingSecretSourcesStore;
175
194
  this.capsuleStore = args.capsuleStore;
195
+ this.factStore = args.factStore;
176
196
  this.privateEventStore = args.privateEventStore;
177
197
  this.simulator = args.simulator;
178
198
  this.contractSyncService = args.contractSyncService;
179
- this.messageContextService = args.messageContextService;
199
+ this.txResolver = args.txResolver;
200
+ this.hooks = args.hooks;
180
201
  this.log = createLogger('simulator');
181
202
  }
182
203
 
@@ -187,9 +208,7 @@ export class ContractFunctionSimulator {
187
208
  public async run(
188
209
  request: TxExecutionRequest,
189
210
  {
190
- contractAddress,
191
- selector,
192
- msgSender = AztecAddress.fromField(Fr.MAX_FIELD_VALUE),
211
+ msgSender = AztecAddress.NULL_MSG_SENDER,
193
212
  anchorBlockHeader,
194
213
  senderForTags,
195
214
  scopes,
@@ -198,18 +217,30 @@ export class ContractFunctionSimulator {
198
217
  ): Promise<PrivateExecutionResult> {
199
218
  const simulatorSetupTimer = new Timer();
200
219
 
201
- const entryPointArtifact = await this.contractStore.getFunctionArtifactWithDebugMetadata(contractAddress, selector);
220
+ const contractAddress = request.origin;
202
221
 
203
- if (entryPointArtifact.functionType !== FunctionType.PRIVATE) {
204
- throw new Error(`Cannot run ${entryPointArtifact.functionType} function as private`);
205
- }
222
+ const anchoredContractData = new AnchoredContractData(
223
+ this.contractStore,
224
+ this.contractClassService,
225
+ anchorBlockHeader,
226
+ this.overrides,
227
+ );
206
228
 
207
- if (request.origin !== contractAddress) {
208
- this.log.warn(
209
- `Request origin does not match contract address in simulation. Request origin: ${request.origin}, contract address: ${contractAddress}`,
229
+ const entryPointArtifact = await anchoredContractData.getFunctionArtifactWithDebugMetadata(
230
+ contractAddress,
231
+ request.functionSelector,
232
+ );
233
+ if (!entryPointArtifact) {
234
+ throw new Error(
235
+ `Cannot run function ${request.functionSelector} on ${contractAddress}: the contract is not registered. ` +
236
+ `Register it via wallet.registerContract(...).`,
210
237
  );
211
238
  }
212
239
 
240
+ if (entryPointArtifact.functionType !== FunctionType.PRIVATE) {
241
+ throw new Error(`Cannot run ${entryPointArtifact.functionType} function as private`);
242
+ }
243
+
213
244
  // reserve the first side effect for the tx hash (inserted by the private kernel)
214
245
  const startSideEffectCounter = 2;
215
246
 
@@ -224,9 +255,15 @@ export class ContractFunctionSimulator {
224
255
  const noteCache = new ExecutionNoteCache(protocolNullifier);
225
256
  const taggingIndexCache = new ExecutionTaggingIndexCache();
226
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
+
227
263
  const privateExecutionOracle = new PrivateExecutionOracle({
228
264
  argsHash: request.firstCallArgsHash,
229
265
  txContext: request.txContext,
266
+ txRequestSalt: request.salt,
230
267
  callContext,
231
268
  anchorBlockHeader,
232
269
  utilityExecutor: async (call, execScopes) => {
@@ -237,17 +274,18 @@ export class ContractFunctionSimulator {
237
274
  executionCache: HashedValuesCache.create(request.argsOfCalls),
238
275
  noteCache,
239
276
  taggingIndexCache,
240
- contractStore: this.contractStore,
277
+ anchoredContractData,
241
278
  noteStore: this.noteStore,
242
279
  keyStore: this.keyStore,
243
280
  addressStore: this.addressStore,
244
281
  aztecNode: this.aztecNode,
245
282
  senderTaggingStore: this.senderTaggingStore,
246
283
  recipientTaggingStore: this.recipientTaggingStore,
247
- senderAddressBookStore: this.senderAddressBookStore,
284
+ taggingSecretSourcesStore: this.taggingSecretSourcesStore,
248
285
  capsuleService: new CapsuleService(this.capsuleStore, scopes),
286
+ factService: new FactService(this.factStore, scopes),
249
287
  privateEventStore: this.privateEventStore,
250
- messageContextService: this.messageContextService,
288
+ txResolver: this.txResolver,
251
289
  contractSyncService: this.contractSyncService,
252
290
  jobId,
253
291
  totalPublicCalldataCount: 0,
@@ -255,6 +293,9 @@ export class ContractFunctionSimulator {
255
293
  scopes,
256
294
  senderForTags,
257
295
  simulator: this.simulator,
296
+ l2TipsStore: this.l2TipsStore,
297
+ hooks: this.hooks,
298
+ transientArrayService,
258
299
  });
259
300
 
260
301
  const setupTime = simulatorSetupTimer.ms();
@@ -273,8 +314,7 @@ export class ContractFunctionSimulator {
273
314
  );
274
315
  const simulatorTeardownTimer = new Timer();
275
316
 
276
- noteCache.finish();
277
- const firstNullifierHint = noteCache.getNonceGenerator();
317
+ const firstNullifier = noteCache.getNonceGenerator();
278
318
 
279
319
  const publicCallRequests = collectNested([executionResult], r =>
280
320
  r.publicInputs.publicCallRequests
@@ -282,7 +322,7 @@ export class ContractFunctionSimulator {
282
322
  .map(r => r.inner)
283
323
  .concat(r.publicInputs.publicTeardownCallRequest.isEmpty() ? [] : [r.publicInputs.publicTeardownCallRequest]),
284
324
  );
285
- const publicFunctionsCalldata = await Promise.all(
325
+ const publicFunctionsCalldata = await allToCompletion(
286
326
  publicCallRequests.map(async r => {
287
327
  const calldata = await privateExecutionOracle.getHashPreimage(r.calldataHash);
288
328
  return new HashedValues(calldata, r.calldataHash);
@@ -297,22 +337,17 @@ export class ContractFunctionSimulator {
297
337
  }
298
338
 
299
339
  // Not to be confused with a PrivateCallExecutionResult. This is a superset
300
- // of the PrivateCallExecutionResult, containing also firstNullifierHint
340
+ // of the PrivateCallExecutionResult, containing also firstNullifier
301
341
  // and publicFunctionsCalldata.
302
- return new PrivateExecutionResult(executionResult, firstNullifierHint, publicFunctionsCalldata);
342
+ return new PrivateExecutionResult(executionResult, firstNullifier, publicFunctionsCalldata);
303
343
  } catch (err) {
304
344
  throw createSimulationError(err instanceof Error ? err : new Error('Unknown error during private execution'));
305
345
  }
306
346
  }
307
347
 
308
- // docs:start:execute_utility_function
309
348
  /**
310
349
  * Runs a utility function.
311
350
  * @param call - The function call to execute.
312
- * @param authwits - Authentication witnesses required for the function call.
313
- * @param anchorBlockHeader - The block header to use as base state for this run.
314
- * @param scopes - Optional array of account addresses whose notes can be accessed in this call. Defaults to all
315
- * accounts if not specified.
316
351
  * @returns A return value of the utility function in a form as returned by the simulator (Noir fields)
317
352
  */
318
353
  public async runUtility(
@@ -322,30 +357,59 @@ export class ContractFunctionSimulator {
322
357
  scopes: AztecAddress[],
323
358
  jobId: string,
324
359
  ): Promise<{ result: Fr[]; offchainEffects: OffchainEffect[] }> {
325
- 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
+ }
326
374
 
327
375
  if (entryPointArtifact.functionType !== FunctionType.UTILITY) {
328
376
  throw new Error(`Cannot run ${entryPointArtifact.functionType} function as utility`);
329
377
  }
330
378
 
379
+ const utilityExecutor = async (syncCall: FunctionCall, execScopes: AztecAddress[]) => {
380
+ await this.runUtility(syncCall, [], anchorBlockHeader, execScopes, jobId);
381
+ };
382
+
331
383
  const oracle = new UtilityExecutionOracle({
332
- 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
+ }),
333
390
  authWitnesses: authwits,
334
391
  capsules: [],
335
392
  anchorBlockHeader,
336
- contractStore: this.contractStore,
393
+ anchoredContractData,
337
394
  noteStore: this.noteStore,
338
395
  keyStore: this.keyStore,
339
396
  addressStore: this.addressStore,
340
397
  aztecNode: this.aztecNode,
341
398
  recipientTaggingStore: this.recipientTaggingStore,
342
- senderAddressBookStore: this.senderAddressBookStore,
399
+ taggingSecretSourcesStore: this.taggingSecretSourcesStore,
343
400
  capsuleService: new CapsuleService(this.capsuleStore, scopes),
401
+ factService: new FactService(this.factStore, scopes),
344
402
  privateEventStore: this.privateEventStore,
345
- messageContextService: this.messageContextService,
403
+ txResolver: this.txResolver,
346
404
  contractSyncService: this.contractSyncService,
405
+ l2TipsStore: this.l2TipsStore,
347
406
  jobId,
348
407
  scopes,
408
+ simulator: this.simulator,
409
+ hooks: this.hooks,
410
+ utilityExecutor,
411
+ // Execution-tree root (top-level utility run or contract sync): own store; nested frames inherit it.
412
+ transientArrayService: new TransientArrayService(),
349
413
  });
350
414
 
351
415
  try {
@@ -356,7 +420,7 @@ export class ContractFunctionSimulator {
356
420
 
357
421
  const initialWitness = toACVMWitness(0, call.args);
358
422
  const acirExecutionResult = await this.simulator
359
- .executeUserCircuit(initialWitness, entryPointArtifact, new Oracle(oracle).toACIRCallback())
423
+ .executeUserCircuit(initialWitness, entryPointArtifact, buildACIRCallback(oracle))
360
424
  .catch((err: Error) => {
361
425
  err.message = resolveAssertionMessageFromError(err, entryPointArtifact);
362
426
  throw new ExecutionError(
@@ -379,23 +443,6 @@ export class ContractFunctionSimulator {
379
443
  throw createSimulationError(err instanceof Error ? err : new Error('Unknown error during private execution'));
380
444
  }
381
445
  }
382
- // docs:end:execute_utility_function
383
-
384
- /**
385
- * Returns the execution statistics collected during the simulator run.
386
- * @returns The execution statistics.
387
- */
388
- getStats() {
389
- const nodeRPCCalls =
390
- typeof (this.aztecNode as BenchmarkedNode).getStats === 'function'
391
- ? (this.aztecNode as BenchmarkedNode).getStats()
392
- : {
393
- perMethod: {},
394
- roundTrips: { roundTrips: 0, totalBlockingTime: 0, roundTripDurations: [], roundTripMethods: [] },
395
- };
396
-
397
- return { nodeRPCCalls };
398
- }
399
446
  }
400
447
 
401
448
  class OrderedSideEffect<T> {
@@ -481,7 +528,7 @@ export async function generateSimulatedProvingResult(
481
528
  scopedNullifiers.push(...execution.publicInputs.nullifiers.getActiveItems().map(n => n.scope(contractAddress)));
482
529
 
483
530
  taggedPrivateLogs.push(
484
- ...(await Promise.all(
531
+ ...(await allToCompletion(
485
532
  execution.publicInputs.privateLogs.getActiveItems().map(async metadata => {
486
533
  metadata.log.fields[0] = await computeSiloedPrivateLogFirstField(contractAddress, metadata.log.fields[0]);
487
534
  return new OrderedSideEffect(metadata, metadata.counter);
@@ -560,12 +607,12 @@ export async function generateSimulatedProvingResult(
560
607
  scopedNullifiersCLA,
561
608
  );
562
609
 
563
- const siloedNoteHashes = await Promise.all(
610
+ const siloedNoteHashes = await allToCompletion(
564
611
  filteredNoteHashes
565
612
  .sort((a, b) => a.counter - b.counter)
566
613
  .map(async nh => new OrderedSideEffect(await siloNoteHash(nh.contractAddress, nh.value), nh.counter)),
567
614
  );
568
- const siloedNullifiers = await Promise.all(
615
+ const siloedNullifiers = await allToCompletion(
569
616
  filteredNullifiers
570
617
  .sort((a, b) => a.counter - b.counter)
571
618
  .map(async n => new OrderedSideEffect(await siloNullifier(n.contractAddress, n.value), n.counter)),
@@ -592,17 +639,17 @@ export async function generateSimulatedProvingResult(
592
639
  siloedNullifiers,
593
640
  minRevertibleSideEffectCounter,
594
641
  );
642
+ // The protocol nullifier is the nonce generator and the tx's first nullifier. It is injected by the
643
+ // init kernel (at counter 1, index 0) rather than emitted by any private call, so it is absent from
644
+ // the executed nullifiers above. Mirror the kernel here by prepending it as the first non-revertible
645
+ // nullifier.
595
646
  const nonceGenerator = privateExecutionResult.firstNullifier;
596
- if (nonRevertibleNullifiers.length === 0) {
597
- nonRevertibleNullifiers.push(nonceGenerator);
598
- } else if (!nonRevertibleNullifiers[0].equals(nonceGenerator)) {
599
- throw new Error('The first non revertible nullifier should be equal to the nonce generator. This is a bug!');
600
- }
647
+ nonRevertibleNullifiers.unshift(nonceGenerator);
601
648
 
602
649
  if (isPrivateOnlyTx) {
603
650
  // We must make the note hashes unique by using the
604
651
  // nonce generator and their index in the tx.
605
- const uniqueNoteHashes = await Promise.all(
652
+ const uniqueNoteHashes = await allToCompletion(
606
653
  siloedNoteHashes.map(async (orderedSideEffect, i) => {
607
654
  const siloedNoteHash = orderedSideEffect.sideEffect;
608
655
  const nonce = await computeNoteHashNonce(nonceGenerator, i);
@@ -632,7 +679,7 @@ export async function generateSimulatedProvingResult(
632
679
  siloedNoteHashes,
633
680
  minRevertibleSideEffectCounter,
634
681
  );
635
- const nonRevertibleUniqueNoteHashes = await Promise.all(
682
+ const nonRevertibleUniqueNoteHashes = await allToCompletion(
636
683
  nonRevertibleNoteHashes.map(async (noteHash, i) => {
637
684
  const nonce = await computeNoteHashNonce(nonceGenerator, i);
638
685
  return await computeUniqueNoteHash(nonce, noteHash);
@@ -748,7 +795,7 @@ function squashTransientSideEffects(
748
795
  * at the tx's anchor block, mimicking the behavior of the kernels
749
796
  */
750
797
  async function verifyReadRequests(
751
- node: Pick<AztecNode, 'getNoteHashMembershipWitness' | 'getNullifierMembershipWitness'>,
798
+ node: Pick<AztecNode, 'findLeavesIndexes'>,
752
799
  anchorBlockHash: BlockParameter,
753
800
  noteHashReadRequests: ScopedReadRequest[],
754
801
  nullifierReadRequests: ScopedReadRequest[],
@@ -781,13 +828,25 @@ async function verifyReadRequests(
781
828
  }
782
829
  }
783
830
 
784
- const [noteHashWitnesses, nullifierWitnesses] = await Promise.all([
785
- Promise.all(settledNoteHashReads.map(({ value }) => node.getNoteHashMembershipWitness(anchorBlockHash, value))),
786
- Promise.all(settledNullifierReads.map(({ value }) => node.getNullifierMembershipWitness(anchorBlockHash, value))),
831
+ const [noteHashResults, nullifierResults] = await allToCompletion([
832
+ settledNoteHashReads.length > 0
833
+ ? node.findLeavesIndexes(
834
+ anchorBlockHash,
835
+ MerkleTreeId.NOTE_HASH_TREE,
836
+ settledNoteHashReads.map(({ value }) => value),
837
+ )
838
+ : [],
839
+ settledNullifierReads.length > 0
840
+ ? node.findLeavesIndexes(
841
+ anchorBlockHash,
842
+ MerkleTreeId.NULLIFIER_TREE,
843
+ settledNullifierReads.map(({ value }) => value),
844
+ )
845
+ : [],
787
846
  ]);
788
847
 
789
848
  for (let i = 0; i < settledNoteHashReads.length; i++) {
790
- if (!noteHashWitnesses[i]) {
849
+ if (!noteHashResults[i]) {
791
850
  throw new Error(
792
851
  `Note hash read request at index ${settledNoteHashReads[i].index} is reading an unknown note hash: ${settledNoteHashReads[i].value}`,
793
852
  );
@@ -795,7 +854,7 @@ async function verifyReadRequests(
795
854
  }
796
855
 
797
856
  for (let i = 0; i < settledNullifierReads.length; i++) {
798
- if (!nullifierWitnesses[i]) {
857
+ if (!nullifierResults[i]) {
799
858
  throw new Error(
800
859
  `Nullifier read request at index ${settledNullifierReads[i].index} is reading an unknown nullifier: ${settledNullifierReads[i].value}`,
801
860
  );
@@ -848,6 +907,11 @@ function meterGasUsed(data: PrivateToRollupAccumulatedData | PrivateToPublicAccu
848
907
  );
849
908
  meteredL2Gas += numContractClassLogs * L2_GAS_PER_CONTRACT_CLASS_LOG;
850
909
 
910
+ if (isPrivateOnlyTx) {
911
+ // The public data write that the private tx base rollup always performs to update the fee payer's balance.
912
+ meteredDAFields += PUBLIC_DATA_WRITE_LENGTH;
913
+ }
914
+
851
915
  const meteredDAGas = meteredDAFields * DA_GAS_PER_FIELD;
852
916
 
853
917
  if ((data as PrivateToPublicAccumulatedData).publicCallRequests) {