@aztec/simulator 0.0.1-commit.24de95ac → 0.0.1-commit.27d773e65

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 (371) hide show
  1. package/README.md +6 -4
  2. package/dest/client.d.ts +1 -1
  3. package/dest/common/errors.d.ts +2 -2
  4. package/dest/common/errors.d.ts.map +1 -1
  5. package/dest/common/index.d.ts +1 -1
  6. package/dest/common/stats/index.d.ts +1 -1
  7. package/dest/common/stats/stats.d.ts +1 -1
  8. package/dest/private/acvm/acvm.d.ts +4 -2
  9. package/dest/private/acvm/acvm.d.ts.map +1 -1
  10. package/dest/private/acvm/acvm.js +4 -3
  11. package/dest/private/acvm/acvm_types.d.ts +1 -1
  12. package/dest/private/acvm/deserialize.d.ts +2 -2
  13. package/dest/private/acvm/deserialize.d.ts.map +1 -1
  14. package/dest/private/acvm/deserialize.js +1 -1
  15. package/dest/private/acvm/index.d.ts +1 -1
  16. package/dest/private/acvm/serialize.d.ts +2 -2
  17. package/dest/private/acvm/serialize.d.ts.map +1 -1
  18. package/dest/private/acvm/serialize.js +1 -1
  19. package/dest/private/acvm_native.d.ts +5 -3
  20. package/dest/private/acvm_native.d.ts.map +1 -1
  21. package/dest/private/acvm_native.js +8 -6
  22. package/dest/private/acvm_wasm.d.ts +4 -3
  23. package/dest/private/acvm_wasm.d.ts.map +1 -1
  24. package/dest/private/acvm_wasm.js +4 -4
  25. package/dest/private/acvm_wasm_with_blobs.d.ts +1 -1
  26. package/dest/private/acvm_wasm_with_blobs.d.ts.map +1 -1
  27. package/dest/private/circuit_recording/circuit_recorder.d.ts +4 -3
  28. package/dest/private/circuit_recording/circuit_recorder.d.ts.map +1 -1
  29. package/dest/private/circuit_recording/circuit_recorder.js +21 -18
  30. package/dest/private/circuit_recording/file_circuit_recorder.d.ts +3 -2
  31. package/dest/private/circuit_recording/file_circuit_recorder.d.ts.map +1 -1
  32. package/dest/private/circuit_recording/file_circuit_recorder.js +2 -2
  33. package/dest/private/circuit_recording/memory_circuit_recorder.d.ts +7 -2
  34. package/dest/private/circuit_recording/memory_circuit_recorder.d.ts.map +1 -1
  35. package/dest/private/circuit_recording/memory_circuit_recorder.js +4 -4
  36. package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts +1 -1
  37. package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts.map +1 -1
  38. package/dest/private/circuit_simulator.d.ts +1 -1
  39. package/dest/private/factory.d.ts +3 -3
  40. package/dest/private/factory.d.ts.map +1 -1
  41. package/dest/private/factory.js +7 -4
  42. package/dest/public/avm/avm_context.d.ts +3 -3
  43. package/dest/public/avm/avm_context.d.ts.map +1 -1
  44. package/dest/public/avm/avm_contract_call_result.d.ts +6 -6
  45. package/dest/public/avm/avm_contract_call_result.d.ts.map +1 -1
  46. package/dest/public/avm/avm_contract_call_result.js +3 -3
  47. package/dest/public/avm/avm_execution_environment.d.ts +9 -8
  48. package/dest/public/avm/avm_execution_environment.d.ts.map +1 -1
  49. package/dest/public/avm/avm_execution_environment.js +5 -8
  50. package/dest/public/avm/avm_gas.d.ts +2 -2
  51. package/dest/public/avm/avm_gas.d.ts.map +1 -1
  52. package/dest/public/avm/avm_gas.js +3 -3
  53. package/dest/public/avm/avm_machine_state.d.ts +7 -6
  54. package/dest/public/avm/avm_machine_state.d.ts.map +1 -1
  55. package/dest/public/avm/avm_machine_state.js +3 -2
  56. package/dest/public/avm/avm_memory_types.d.ts +14 -14
  57. package/dest/public/avm/avm_memory_types.d.ts.map +1 -1
  58. package/dest/public/avm/avm_memory_types.js +4 -1
  59. package/dest/public/avm/avm_simulator.d.ts +5 -3
  60. package/dest/public/avm/avm_simulator.d.ts.map +1 -1
  61. package/dest/public/avm/avm_simulator.js +13 -11
  62. package/dest/public/avm/avm_simulator_interface.d.ts +1 -1
  63. package/dest/public/avm/calldata.d.ts +51 -0
  64. package/dest/public/avm/calldata.d.ts.map +1 -0
  65. package/dest/public/avm/calldata.js +63 -0
  66. package/dest/public/avm/errors.d.ts +8 -2
  67. package/dest/public/avm/errors.d.ts.map +1 -1
  68. package/dest/public/avm/errors.js +14 -2
  69. package/dest/public/avm/fixtures/account_proof_fetcher.d.ts +2 -0
  70. package/dest/public/avm/fixtures/account_proof_fetcher.d.ts.map +1 -0
  71. package/dest/public/avm/fixtures/account_proof_fetcher.js +152 -0
  72. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts +1 -1
  73. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts.map +1 -1
  74. package/dest/public/avm/fixtures/avm_simulation_tester.js +15 -5
  75. package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts +2 -2
  76. package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts.map +1 -1
  77. package/dest/public/avm/fixtures/base_avm_simulation_tester.js +1 -1
  78. package/dest/public/avm/fixtures/initializers.d.ts +2 -3
  79. package/dest/public/avm/fixtures/initializers.d.ts.map +1 -1
  80. package/dest/public/avm/fixtures/initializers.js +8 -5
  81. package/dest/public/avm/fixtures/utils.d.ts +4 -3
  82. package/dest/public/avm/fixtures/utils.d.ts.map +1 -1
  83. package/dest/public/avm/fixtures/utils.js +3 -2
  84. package/dest/public/avm/index.d.ts +1 -1
  85. package/dest/public/avm/opcodes/accrued_substate.d.ts +17 -18
  86. package/dest/public/avm/opcodes/accrued_substate.d.ts.map +1 -1
  87. package/dest/public/avm/opcodes/accrued_substate.js +42 -43
  88. package/dest/public/avm/opcodes/addressing_mode.d.ts +1 -1
  89. package/dest/public/avm/opcodes/addressing_mode.d.ts.map +1 -1
  90. package/dest/public/avm/opcodes/addressing_mode.js +2 -2
  91. package/dest/public/avm/opcodes/arithmetic.d.ts +3 -1
  92. package/dest/public/avm/opcodes/arithmetic.d.ts.map +1 -1
  93. package/dest/public/avm/opcodes/arithmetic.js +12 -2
  94. package/dest/public/avm/opcodes/bitwise.d.ts +3 -3
  95. package/dest/public/avm/opcodes/bitwise.d.ts.map +1 -1
  96. package/dest/public/avm/opcodes/bitwise.js +5 -5
  97. package/dest/public/avm/opcodes/comparators.d.ts +1 -1
  98. package/dest/public/avm/opcodes/comparators.d.ts.map +1 -1
  99. package/dest/public/avm/opcodes/comparators.js +1 -1
  100. package/dest/public/avm/opcodes/contract.d.ts +3 -3
  101. package/dest/public/avm/opcodes/contract.d.ts.map +1 -1
  102. package/dest/public/avm/opcodes/contract.js +8 -8
  103. package/dest/public/avm/opcodes/control_flow.d.ts +3 -3
  104. package/dest/public/avm/opcodes/control_flow.d.ts.map +1 -1
  105. package/dest/public/avm/opcodes/control_flow.js +4 -4
  106. package/dest/public/avm/opcodes/conversion.d.ts +3 -3
  107. package/dest/public/avm/opcodes/conversion.d.ts.map +1 -1
  108. package/dest/public/avm/opcodes/conversion.js +4 -4
  109. package/dest/public/avm/opcodes/ec_add.d.ts +3 -3
  110. package/dest/public/avm/opcodes/ec_add.d.ts.map +1 -1
  111. package/dest/public/avm/opcodes/ec_add.js +17 -8
  112. package/dest/public/avm/opcodes/environment_getters.d.ts +5 -5
  113. package/dest/public/avm/opcodes/environment_getters.d.ts.map +1 -1
  114. package/dest/public/avm/opcodes/environment_getters.js +6 -6
  115. package/dest/public/avm/opcodes/external_calls.d.ts +9 -9
  116. package/dest/public/avm/opcodes/external_calls.d.ts.map +1 -1
  117. package/dest/public/avm/opcodes/external_calls.js +23 -22
  118. package/dest/public/avm/opcodes/hashing.d.ts +7 -7
  119. package/dest/public/avm/opcodes/hashing.d.ts.map +1 -1
  120. package/dest/public/avm/opcodes/hashing.js +21 -16
  121. package/dest/public/avm/opcodes/index.d.ts +1 -1
  122. package/dest/public/avm/opcodes/instruction.d.ts +2 -2
  123. package/dest/public/avm/opcodes/instruction.d.ts.map +1 -1
  124. package/dest/public/avm/opcodes/instruction_impl.d.ts +4 -4
  125. package/dest/public/avm/opcodes/instruction_impl.d.ts.map +1 -1
  126. package/dest/public/avm/opcodes/instruction_impl.js +4 -4
  127. package/dest/public/avm/opcodes/memory.d.ts +13 -13
  128. package/dest/public/avm/opcodes/memory.d.ts.map +1 -1
  129. package/dest/public/avm/opcodes/memory.js +26 -26
  130. package/dest/public/avm/opcodes/misc.d.ts +3 -3
  131. package/dest/public/avm/opcodes/misc.d.ts.map +1 -1
  132. package/dest/public/avm/opcodes/misc.js +8 -8
  133. package/dest/public/avm/opcodes/storage.d.ts +14 -13
  134. package/dest/public/avm/opcodes/storage.d.ts.map +1 -1
  135. package/dest/public/avm/opcodes/storage.js +34 -24
  136. package/dest/public/avm/revert_reason.d.ts +2 -2
  137. package/dest/public/avm/revert_reason.d.ts.map +1 -1
  138. package/dest/public/avm/revert_reason.js +3 -2
  139. package/dest/public/avm/serialization/buffer_cursor.d.ts +1 -1
  140. package/dest/public/avm/serialization/buffer_cursor.d.ts.map +1 -1
  141. package/dest/public/avm/serialization/bytecode_serialization.d.ts +1 -1
  142. package/dest/public/avm/serialization/bytecode_serialization.d.ts.map +1 -1
  143. package/dest/public/avm/serialization/bytecode_serialization.js +12 -9
  144. package/dest/public/avm/serialization/instruction_serialization.d.ts +2 -2
  145. package/dest/public/avm/serialization/instruction_serialization.d.ts.map +1 -1
  146. package/dest/public/avm/serialization/instruction_serialization.js +2 -2
  147. package/dest/public/avm/test_utils.d.ts +2 -2
  148. package/dest/public/avm/test_utils.d.ts.map +1 -1
  149. package/dest/public/avm/test_utils.js +1 -1
  150. package/dest/public/contracts_db_checkpoint.d.ts +16 -0
  151. package/dest/public/contracts_db_checkpoint.d.ts.map +1 -0
  152. package/dest/public/contracts_db_checkpoint.js +30 -0
  153. package/dest/public/db_interfaces.d.ts +14 -2
  154. package/dest/public/db_interfaces.d.ts.map +1 -1
  155. package/dest/public/debug_fn_name.d.ts +16 -3
  156. package/dest/public/debug_fn_name.d.ts.map +1 -1
  157. package/dest/public/debug_fn_name.js +31 -3
  158. package/dest/public/executor_metrics.d.ts +3 -2
  159. package/dest/public/executor_metrics.d.ts.map +1 -1
  160. package/dest/public/executor_metrics.js +13 -34
  161. package/dest/public/executor_metrics_interface.d.ts +3 -2
  162. package/dest/public/executor_metrics_interface.d.ts.map +1 -1
  163. package/dest/public/fixtures/amm_test.d.ts +1 -1
  164. package/dest/public/fixtures/amm_test.js +4 -4
  165. package/dest/public/fixtures/bulk_test.d.ts +3 -3
  166. package/dest/public/fixtures/bulk_test.d.ts.map +1 -1
  167. package/dest/public/fixtures/bulk_test.js +5 -69
  168. package/dest/public/fixtures/custom_bytecode_tester.d.ts +29 -7
  169. package/dest/public/fixtures/custom_bytecode_tester.d.ts.map +1 -1
  170. package/dest/public/fixtures/custom_bytecode_tester.js +36 -12
  171. package/dest/public/fixtures/custom_bytecode_tests.d.ts +11 -8
  172. package/dest/public/fixtures/custom_bytecode_tests.d.ts.map +1 -1
  173. package/dest/public/fixtures/custom_bytecode_tests.js +83 -18
  174. package/dest/public/fixtures/index.d.ts +4 -2
  175. package/dest/public/fixtures/index.d.ts.map +1 -1
  176. package/dest/public/fixtures/index.js +3 -1
  177. package/dest/public/fixtures/minimal_public_tx.d.ts +2 -8
  178. package/dest/public/fixtures/minimal_public_tx.d.ts.map +1 -1
  179. package/dest/public/fixtures/minimal_public_tx.js +6 -16
  180. package/dest/public/fixtures/opcode_spammer.d.ts +122 -0
  181. package/dest/public/fixtures/opcode_spammer.d.ts.map +1 -0
  182. package/dest/public/fixtures/opcode_spammer.js +1653 -0
  183. package/dest/public/fixtures/public_tx_simulation_tester.d.ts +24 -6
  184. package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
  185. package/dest/public/fixtures/public_tx_simulation_tester.js +89 -21
  186. package/dest/public/fixtures/simple_contract_data_source.d.ts +5 -4
  187. package/dest/public/fixtures/simple_contract_data_source.d.ts.map +1 -1
  188. package/dest/public/fixtures/simple_contract_data_source.js +4 -4
  189. package/dest/public/fixtures/token_test.d.ts +6 -2
  190. package/dest/public/fixtures/token_test.d.ts.map +1 -1
  191. package/dest/public/fixtures/token_test.js +13 -12
  192. package/dest/public/fixtures/utils.d.ts +2 -2
  193. package/dest/public/fixtures/utils.d.ts.map +1 -1
  194. package/dest/public/fixtures/utils.js +8 -7
  195. package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts +60 -0
  196. package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts.map +1 -0
  197. package/dest/public/fuzzing/avm_fuzzer_simulator.js +171 -0
  198. package/dest/public/fuzzing/avm_simulator_bin.d.ts +2 -0
  199. package/dest/public/fuzzing/avm_simulator_bin.d.ts.map +1 -0
  200. package/dest/public/fuzzing/avm_simulator_bin.js +118 -0
  201. package/dest/public/hinting_db_sources.d.ts +14 -4
  202. package/dest/public/hinting_db_sources.d.ts.map +1 -1
  203. package/dest/public/hinting_db_sources.js +71 -13
  204. package/dest/public/index.d.ts +3 -2
  205. package/dest/public/index.d.ts.map +1 -1
  206. package/dest/public/index.js +1 -1
  207. package/dest/public/public_db_sources.d.ts +25 -65
  208. package/dest/public/public_db_sources.d.ts.map +1 -1
  209. package/dest/public/public_db_sources.js +78 -135
  210. package/dest/public/public_errors.d.ts +1 -1
  211. package/dest/public/public_errors.d.ts.map +1 -1
  212. package/dest/public/public_processor/guarded_merkle_tree.d.ts +6 -4
  213. package/dest/public/public_processor/guarded_merkle_tree.d.ts.map +1 -1
  214. package/dest/public/public_processor/guarded_merkle_tree.js +5 -0
  215. package/dest/public/public_processor/public_processor.d.ts +17 -20
  216. package/dest/public/public_processor/public_processor.d.ts.map +1 -1
  217. package/dest/public/public_processor/public_processor.js +477 -72
  218. package/dest/public/public_processor/public_processor_metrics.d.ts +2 -2
  219. package/dest/public/public_processor/public_processor_metrics.d.ts.map +1 -1
  220. package/dest/public/public_processor/public_processor_metrics.js +28 -45
  221. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts +19 -0
  222. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts.map +1 -0
  223. package/dest/public/public_tx_simulator/contract_provider_for_cpp.js +98 -0
  224. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts +35 -23
  225. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts.map +1 -1
  226. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.js +95 -53
  227. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts +42 -0
  228. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts.map +1 -0
  229. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.js +86 -0
  230. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts +30 -0
  231. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts.map +1 -0
  232. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.js +171 -0
  233. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts +23 -0
  234. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts.map +1 -0
  235. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.js +52 -0
  236. package/dest/public/public_tx_simulator/factories.d.ts +14 -0
  237. package/dest/public/public_tx_simulator/factories.d.ts.map +1 -0
  238. package/dest/public/public_tx_simulator/factories.js +28 -0
  239. package/dest/public/public_tx_simulator/index.d.ts +5 -1
  240. package/dest/public/public_tx_simulator/index.d.ts.map +1 -1
  241. package/dest/public/public_tx_simulator/index.js +3 -0
  242. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts +14 -7
  243. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts.map +1 -1
  244. package/dest/public/public_tx_simulator/measured_public_tx_simulator.js +5 -5
  245. package/dest/public/public_tx_simulator/public_tx_context.d.ts +8 -4
  246. package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +1 -1
  247. package/dest/public/public_tx_simulator/public_tx_context.js +17 -9
  248. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +15 -33
  249. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
  250. package/dest/public/public_tx_simulator/public_tx_simulator.js +118 -130
  251. package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts +25 -2
  252. package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts.map +1 -1
  253. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts +4 -4
  254. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts.map +1 -1
  255. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.js +395 -19
  256. package/dest/public/side_effect_errors.d.ts +1 -1
  257. package/dest/public/side_effect_errors.d.ts.map +1 -1
  258. package/dest/public/side_effect_trace.d.ts +5 -5
  259. package/dest/public/side_effect_trace.d.ts.map +1 -1
  260. package/dest/public/side_effect_trace.js +4 -4
  261. package/dest/public/side_effect_trace_interface.d.ts +3 -4
  262. package/dest/public/side_effect_trace_interface.d.ts.map +1 -1
  263. package/dest/public/state_manager/index.d.ts +1 -1
  264. package/dest/public/state_manager/nullifiers.d.ts +2 -2
  265. package/dest/public/state_manager/nullifiers.d.ts.map +1 -1
  266. package/dest/public/state_manager/public_storage.d.ts +2 -2
  267. package/dest/public/state_manager/public_storage.d.ts.map +1 -1
  268. package/dest/public/state_manager/public_storage.js +1 -1
  269. package/dest/public/state_manager/state_manager.d.ts +16 -12
  270. package/dest/public/state_manager/state_manager.d.ts.map +1 -1
  271. package/dest/public/state_manager/state_manager.js +21 -10
  272. package/dest/public/test_executor_metrics.d.ts +11 -4
  273. package/dest/public/test_executor_metrics.d.ts.map +1 -1
  274. package/dest/public/test_executor_metrics.js +29 -6
  275. package/dest/public/unique_class_ids.d.ts +1 -1
  276. package/dest/public/unique_class_ids.d.ts.map +1 -1
  277. package/dest/public/utils.d.ts +1 -1
  278. package/dest/server.d.ts +1 -1
  279. package/dest/testing.d.ts +1 -1
  280. package/package.json +21 -20
  281. package/src/common/errors.ts +1 -1
  282. package/src/private/acvm/acvm.ts +4 -3
  283. package/src/private/acvm/deserialize.ts +1 -1
  284. package/src/private/acvm/serialize.ts +1 -1
  285. package/src/private/acvm_native.ts +11 -5
  286. package/src/private/acvm_wasm.ts +7 -3
  287. package/src/private/circuit_recording/circuit_recorder.ts +22 -19
  288. package/src/private/circuit_recording/file_circuit_recorder.ts +7 -2
  289. package/src/private/circuit_recording/memory_circuit_recorder.ts +6 -4
  290. package/src/private/factory.ts +7 -4
  291. package/src/public/avm/avm_context.ts +2 -2
  292. package/src/public/avm/avm_contract_call_result.ts +8 -6
  293. package/src/public/avm/avm_execution_environment.ts +13 -10
  294. package/src/public/avm/avm_gas.ts +5 -5
  295. package/src/public/avm/avm_machine_state.ts +7 -6
  296. package/src/public/avm/avm_memory_types.ts +5 -1
  297. package/src/public/avm/avm_simulator.ts +19 -14
  298. package/src/public/avm/calldata.ts +100 -0
  299. package/src/public/avm/errors.ts +17 -3
  300. package/src/public/avm/fixtures/account_proof.json +553 -0
  301. package/src/public/avm/fixtures/account_proof_fetcher.ts +166 -0
  302. package/src/public/avm/fixtures/avm_simulation_tester.ts +18 -4
  303. package/src/public/avm/fixtures/base_avm_simulation_tester.ts +1 -1
  304. package/src/public/avm/fixtures/initializers.ts +10 -11
  305. package/src/public/avm/fixtures/utils.ts +3 -2
  306. package/src/public/avm/opcodes/accrued_substate.ts +31 -34
  307. package/src/public/avm/opcodes/addressing_mode.ts +2 -2
  308. package/src/public/avm/opcodes/arithmetic.ts +14 -2
  309. package/src/public/avm/opcodes/bitwise.ts +3 -3
  310. package/src/public/avm/opcodes/comparators.ts +1 -1
  311. package/src/public/avm/opcodes/contract.ts +4 -7
  312. package/src/public/avm/opcodes/control_flow.ts +2 -2
  313. package/src/public/avm/opcodes/conversion.ts +3 -3
  314. package/src/public/avm/opcodes/ec_add.ts +15 -6
  315. package/src/public/avm/opcodes/environment_getters.ts +7 -7
  316. package/src/public/avm/opcodes/external_calls.ts +17 -15
  317. package/src/public/avm/opcodes/hashing.ts +16 -10
  318. package/src/public/avm/opcodes/instruction_impl.ts +2 -2
  319. package/src/public/avm/opcodes/memory.ts +20 -20
  320. package/src/public/avm/opcodes/misc.ts +6 -6
  321. package/src/public/avm/opcodes/storage.ts +30 -22
  322. package/src/public/avm/revert_reason.ts +6 -3
  323. package/src/public/avm/serialization/bytecode_serialization.ts +19 -8
  324. package/src/public/avm/serialization/instruction_serialization.ts +2 -2
  325. package/src/public/avm/test_utils.ts +1 -1
  326. package/src/public/contracts_db_checkpoint.ts +41 -0
  327. package/src/public/db_interfaces.ts +16 -1
  328. package/src/public/debug_fn_name.ts +39 -5
  329. package/src/public/executor_metrics.ts +11 -34
  330. package/src/public/executor_metrics_interface.ts +2 -1
  331. package/src/public/fixtures/amm_test.ts +4 -4
  332. package/src/public/fixtures/bulk_test.ts +9 -9
  333. package/src/public/fixtures/custom_bytecode_tester.ts +54 -20
  334. package/src/public/fixtures/custom_bytecode_tests.ts +111 -18
  335. package/src/public/fixtures/index.ts +7 -1
  336. package/src/public/fixtures/minimal_public_tx.ts +7 -17
  337. package/src/public/fixtures/opcode_spammer.ts +1717 -0
  338. package/src/public/fixtures/public_tx_simulation_tester.ts +116 -21
  339. package/src/public/fixtures/simple_contract_data_source.ts +8 -9
  340. package/src/public/fixtures/token_test.ts +18 -10
  341. package/src/public/fixtures/utils.ts +6 -7
  342. package/src/public/fuzzing/avm_fuzzer_simulator.ts +288 -0
  343. package/src/public/fuzzing/avm_simulator_bin.ts +175 -0
  344. package/src/public/hinting_db_sources.ts +112 -10
  345. package/src/public/index.ts +6 -4
  346. package/src/public/public_db_sources.ts +107 -176
  347. package/src/public/public_processor/guarded_merkle_tree.ts +8 -3
  348. package/src/public/public_processor/public_processor.ts +124 -75
  349. package/src/public/public_processor/public_processor_metrics.ts +16 -44
  350. package/src/public/public_tx_simulator/contract_provider_for_cpp.ts +124 -0
  351. package/src/public/public_tx_simulator/cpp_public_tx_simulator.ts +141 -59
  352. package/src/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.ts +134 -0
  353. package/src/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.ts +239 -0
  354. package/src/public/public_tx_simulator/dumping_cpp_public_tx_simulator.ts +83 -0
  355. package/src/public/public_tx_simulator/factories.ts +44 -0
  356. package/src/public/public_tx_simulator/index.ts +4 -0
  357. package/src/public/public_tx_simulator/measured_public_tx_simulator.ts +10 -14
  358. package/src/public/public_tx_simulator/public_tx_context.ts +22 -9
  359. package/src/public/public_tx_simulator/public_tx_simulator.ts +177 -198
  360. package/src/public/public_tx_simulator/public_tx_simulator_interface.ts +24 -2
  361. package/src/public/public_tx_simulator/telemetry_public_tx_simulator.ts +3 -3
  362. package/src/public/side_effect_trace.ts +6 -3
  363. package/src/public/side_effect_trace_interface.ts +1 -1
  364. package/src/public/state_manager/nullifiers.ts +1 -1
  365. package/src/public/state_manager/public_storage.ts +1 -1
  366. package/src/public/state_manager/state_manager.ts +35 -26
  367. package/src/public/test_executor_metrics.ts +34 -8
  368. package/dest/public/tx_contract_cache.d.ts +0 -41
  369. package/dest/public/tx_contract_cache.d.ts.map +0 -1
  370. package/dest/public/tx_contract_cache.js +0 -49
  371. package/src/public/tx_contract_cache.ts +0 -69
@@ -1,5 +1,6 @@
1
- import { Fr } from '@aztec/foundation/fields';
2
- import { type LogLevel } from '@aztec/foundation/log';
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
+ import { type LogLevel, type LoggerBindings } from '@aztec/foundation/log';
3
+ import { FunctionSelector } from '@aztec/stdlib/abi';
3
4
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
4
5
  import { SerializableContractInstance } from '@aztec/stdlib/contract';
5
6
  import type { DebugLog } from '@aztec/stdlib/logs';
@@ -34,13 +35,11 @@ export declare class PublicPersistableStateManager {
34
35
  private readonly log;
35
36
  /** Make sure a forked state is never merged twice. */
36
37
  private alreadyMergedIntoParent;
37
- constructor(treesDB: PublicTreesDB, contractsDB: PublicContractsDBInterface, trace: PublicSideEffectTraceInterface, firstNullifier: Fr, // Needed for note hashes.
38
- timestamp: UInt64, // Needed for contract updates.
39
- doMerkleOperations?: boolean, publicStorage?: PublicStorage, nullifiers?: NullifierManager);
38
+ constructor(treesDB: PublicTreesDB, contractsDB: PublicContractsDBInterface, trace: PublicSideEffectTraceInterface, firstNullifier: Fr, timestamp: UInt64, doMerkleOperations?: boolean, publicStorage?: PublicStorage, nullifiers?: NullifierManager, bindings?: LoggerBindings);
40
39
  /**
41
40
  * Create a new state manager
42
41
  */
43
- static create(treesDB: PublicTreesDB, contractsDB: PublicContractsDBInterface, trace: PublicSideEffectTraceInterface, doMerkleOperations: boolean | undefined, firstNullifier: Fr, timestamp: UInt64): PublicPersistableStateManager;
42
+ static create(treesDB: PublicTreesDB, contractsDB: PublicContractsDBInterface, trace: PublicSideEffectTraceInterface, firstNullifier: Fr, timestamp: UInt64, bindings?: LoggerBindings): PublicPersistableStateManager;
44
43
  /**
45
44
  * Create a new state manager forked from this one
46
45
  */
@@ -102,6 +101,12 @@ export declare class PublicPersistableStateManager {
102
101
  * @returns exists - whether the nullifier exists in the nullifier set
103
102
  */
104
103
  checkNullifierExists(contractAddress: AztecAddress, nullifier: Fr): Promise<boolean>;
104
+ /**
105
+ * Check if a siloed nullifier exists.
106
+ * @param siloedNullifier - the siloed nullifier to check
107
+ * @returns exists - whether the nullifier exists in the nullifier set
108
+ */
109
+ checkSiloedNullifierExists(siloedNullifier: Fr): Promise<boolean>;
105
110
  /**
106
111
  * Write a nullifier to the nullifier set, trace the write.
107
112
  * @param contractAddress - address of the contract that the nullifier is associated with
@@ -149,18 +154,17 @@ export declare class PublicPersistableStateManager {
149
154
  */
150
155
  getContractInstance(contractAddress: AztecAddress): Promise<SerializableContractInstance | undefined>;
151
156
  private checkContractUpdateInformation;
152
- /**
153
- * Get a contract class.
154
- * @param classId - class id to retrieve.
155
- * @returns the contract class or undefined if it does not exist.
156
- */
157
157
  private getContractClass;
158
158
  /**
159
159
  * Get a contract's bytecode from the contracts DB, also trace the contract class and instance indirectly.
160
160
  */
161
161
  getBytecode(contractAddress: AztecAddress): Promise<Buffer | undefined>;
162
162
  getPublicFunctionDebugName(avmEnvironment: AvmExecutionEnvironment): Promise<string>;
163
+ getPublicFunctionSelectorAndName(avmEnvironment: AvmExecutionEnvironment): Promise<{
164
+ functionSelector?: FunctionSelector;
165
+ functionName?: string;
166
+ }>;
163
167
  padTree(treeId: MerkleTreeId, leavesToInsert: number): Promise<void>;
164
168
  getTreeSnapshots(): Promise<TreeSnapshots>;
165
169
  }
166
- //# sourceMappingURL=state_manager.d.ts.map
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGVfbWFuYWdlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3B1YmxpYy9zdGF0ZV9tYW5hZ2VyL3N0YXRlX21hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXBELE9BQU8sRUFBRSxLQUFLLFFBQVEsRUFBZSxLQUFLLGNBQWMsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUV0RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFM0QsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHdEUsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBSWxELE9BQU8sS0FBSyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbkYsT0FBTyxLQUFLLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RSxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQU83RCxPQUFPLEtBQUssRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FB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
@@ -1 +1 @@
1
- {"version":3,"file":"state_manager.d.ts","sourceRoot":"","sources":["../../../src/public/state_manager/state_manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state_manager.d.ts","sourceRoot":"","sources":["../../../src/public/state_manager/state_manager.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { CANONICAL_AUTH_REGISTRY_ADDRESS, CONTRACT_CLASS_REGISTRY_CONTRACT_ADDRESS, CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS, FEE_JUICE_ADDRESS, MULTI_CALL_ENTRYPOINT_ADDRESS, ROUTER_ADDRESS } from '@aztec/constants';
2
- import { poseidon2Hash } from '@aztec/foundation/crypto';
1
+ import { CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS, MAX_PROTOCOL_CONTRACTS } from '@aztec/constants';
2
+ import { poseidon2Hash } from '@aztec/foundation/crypto/poseidon';
3
3
  import { jsonStringify } from '@aztec/foundation/json-rpc';
4
4
  import { createLogger } from '@aztec/foundation/log';
5
5
  import { ProtocolContractAddress } from '@aztec/protocol-contracts';
@@ -8,7 +8,7 @@ import { SerializableContractInstance } from '@aztec/stdlib/contract';
8
8
  import { DelayedPublicMutableValues, DelayedPublicMutableValuesWithHash } from '@aztec/stdlib/delayed-public-mutable';
9
9
  import { computeNoteHashNonce, computeUniqueNoteHash, siloNoteHash, siloNullifier } from '@aztec/stdlib/hash';
10
10
  import { strict as assert } from 'assert';
11
- import { getPublicFunctionDebugName } from '../debug_fn_name.js';
11
+ import { getPublicFunctionDebugName, getPublicFunctionSelectorAndName } from '../debug_fn_name.js';
12
12
  import { L1ToL2MessageIndexOutOfRangeError, MaxCallsToUniqueContractClassIdsError, NoteHashIndexOutOfRangeError, NullifierCollisionError } from '../side_effect_errors.js';
13
13
  import { NullifierManager } from './nullifiers.js';
14
14
  import { PublicStorage } from './public_storage.js';
@@ -31,7 +31,7 @@ import { PublicStorage } from './public_storage.js';
31
31
  nullifiers;
32
32
  log;
33
33
  /** Make sure a forked state is never merged twice. */ alreadyMergedIntoParent;
34
- constructor(treesDB, contractsDB, trace, firstNullifier, timestamp, doMerkleOperations = false, publicStorage = new PublicStorage(treesDB), nullifiers = new NullifierManager(treesDB)){
34
+ constructor(treesDB, contractsDB, trace, firstNullifier, timestamp, doMerkleOperations = true, publicStorage = new PublicStorage(treesDB), nullifiers = new NullifierManager(treesDB), bindings){
35
35
  this.treesDB = treesDB;
36
36
  this.contractsDB = contractsDB;
37
37
  this.trace = trace;
@@ -40,19 +40,19 @@ import { PublicStorage } from './public_storage.js';
40
40
  this.doMerkleOperations = doMerkleOperations;
41
41
  this.publicStorage = publicStorage;
42
42
  this.nullifiers = nullifiers;
43
- this.log = createLogger('simulator:state_manager');
44
43
  this.alreadyMergedIntoParent = false;
44
+ this.log = createLogger('simulator:state_manager', bindings);
45
45
  }
46
46
  /**
47
47
  * Create a new state manager
48
- */ static create(treesDB, contractsDB, trace, doMerkleOperations = false, firstNullifier, timestamp) {
49
- return new PublicPersistableStateManager(treesDB, contractsDB, trace, firstNullifier, timestamp, doMerkleOperations);
48
+ */ static create(treesDB, contractsDB, trace, firstNullifier, timestamp, bindings) {
49
+ return new PublicPersistableStateManager(treesDB, contractsDB, trace, firstNullifier, timestamp, undefined, undefined, undefined, bindings);
50
50
  }
51
51
  /**
52
52
  * Create a new state manager forked from this one
53
53
  */ async fork() {
54
54
  await this.treesDB.createCheckpoint();
55
- return new PublicPersistableStateManager(this.treesDB, this.contractsDB, this.trace.fork(), this.firstNullifier, this.timestamp, this.doMerkleOperations, this.publicStorage.fork(), this.nullifiers.fork());
55
+ return new PublicPersistableStateManager(this.treesDB, this.contractsDB, this.trace.fork(), this.firstNullifier, this.timestamp, this.doMerkleOperations, this.publicStorage.fork(), this.nullifiers.fork(), this.log.getBindings());
56
56
  }
57
57
  /**
58
58
  * Accept forked world state modifications & traced side effects / hints
@@ -109,7 +109,6 @@ import { PublicStorage } from './public_storage.js';
109
109
  if (this.doMerkleOperations) {
110
110
  return await this.treesDB.storageRead(contractAddress, slot);
111
111
  } else {
112
- // TODO(fcarreiro): I don't get this. PublicStorage CAN end up reading the tree. Why is it in the "dont do merkle operations" branch?
113
112
  const read = await this.publicStorage.read(contractAddress, slot);
114
113
  this.log.trace(`Storage read results (address=${contractAddress}, slot=${slot}): value=${read.value}, cached=${read.cached}`);
115
114
  return read.value;
@@ -172,6 +171,13 @@ import { PublicStorage } from './public_storage.js';
172
171
  */ async checkNullifierExists(contractAddress, nullifier) {
173
172
  this.log.trace(`Checking existence of nullifier (address=${contractAddress}, nullifier=${nullifier})`);
174
173
  const siloedNullifier = await siloNullifier(contractAddress, nullifier);
174
+ return this.checkSiloedNullifierExists(siloedNullifier);
175
+ }
176
+ /**
177
+ * Check if a siloed nullifier exists.
178
+ * @param siloedNullifier - the siloed nullifier to check
179
+ * @returns exists - whether the nullifier exists in the nullifier set
180
+ */ async checkSiloedNullifierExists(siloedNullifier) {
175
181
  if (this.doMerkleOperations) {
176
182
  const exists = await this.treesDB.checkNullifierExists(siloedNullifier);
177
183
  this.log.trace(`Checked siloed nullifier ${siloedNullifier} (exists=${exists})`);
@@ -311,6 +317,8 @@ import { PublicStorage } from './public_storage.js';
311
317
  const { delayedPublicMutableSlot, delayedPublicMutableHashSlot } = await DelayedPublicMutableValuesWithHash.getContractUpdateSlots(instance.address);
312
318
  const readDeployerStorage = async (storageSlot)=>await this.readStorage(ProtocolContractAddress.ContractInstanceRegistry, storageSlot);
313
319
  const hash = await readDeployerStorage(delayedPublicMutableHashSlot);
320
+ // NOTE: The below reads are either not performed (if hash.isZero()) or only performed in unconstrained in c++ simulation.
321
+ // See UpdateCheck::check_current_class_id documentation - this means if we generate hints from the merkle db, they are unused:
314
322
  const delayedPublicMutableValues = await DelayedPublicMutableValues.readFromTree(delayedPublicMutableSlot, readDeployerStorage);
315
323
  const preImage = delayedPublicMutableValues.toFields();
316
324
  // 1) update never scheduled: hash == 0 and preimage should be empty (but poseidon2hash(preimage) will not be 0s)
@@ -379,6 +387,9 @@ import { PublicStorage } from './public_storage.js';
379
387
  async getPublicFunctionDebugName(avmEnvironment) {
380
388
  return await getPublicFunctionDebugName(this.contractsDB, avmEnvironment.address, avmEnvironment.calldata);
381
389
  }
390
+ async getPublicFunctionSelectorAndName(avmEnvironment) {
391
+ return await getPublicFunctionSelectorAndName(this.contractsDB, avmEnvironment.address, avmEnvironment.calldata);
392
+ }
382
393
  async padTree(treeId, leavesToInsert) {
383
394
  await this.treesDB.padTree(treeId, leavesToInsert);
384
395
  }
@@ -387,5 +398,5 @@ import { PublicStorage } from './public_storage.js';
387
398
  }
388
399
  }
389
400
  function contractAddressIsCanonical(contractAddress) {
390
- return contractAddress.equals(AztecAddress.fromNumber(CANONICAL_AUTH_REGISTRY_ADDRESS)) || contractAddress.equals(AztecAddress.fromNumber(CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS)) || contractAddress.equals(AztecAddress.fromNumber(CONTRACT_CLASS_REGISTRY_CONTRACT_ADDRESS)) || contractAddress.equals(AztecAddress.fromNumber(MULTI_CALL_ENTRYPOINT_ADDRESS)) || contractAddress.equals(AztecAddress.fromNumber(FEE_JUICE_ADDRESS)) || contractAddress.equals(AztecAddress.fromNumber(ROUTER_ADDRESS));
401
+ return contractAddress.toBigInt() >= 1 && contractAddress.toBigInt() <= MAX_PROTOCOL_CONTRACTS;
391
402
  }
@@ -1,4 +1,6 @@
1
+ import { type LoggerBindings } from '@aztec/foundation/log';
1
2
  import type { RevertCode } from '@aztec/stdlib/avm';
3
+ import type { GasUsed } from '@aztec/stdlib/gas';
2
4
  import type { ExecutorMetricsInterface } from './executor_metrics_interface.js';
3
5
  export interface PublicEnqueuedCallMetrics {
4
6
  fnName: string;
@@ -9,8 +11,12 @@ export interface PublicEnqueuedCallMetrics {
9
11
  }
10
12
  export interface PublicTxMetrics {
11
13
  totalDurationMs: number;
12
- manaUsed: number;
14
+ manaUsed: number | undefined;
13
15
  totalInstructionsExecuted: number;
16
+ bytecodeSizes: {
17
+ contractName: string;
18
+ sizeBytes: number;
19
+ }[];
14
20
  nonRevertiblePrivateInsertionsUs: number | undefined;
15
21
  revertiblePrivateInsertionsUs: number | undefined;
16
22
  enqueuedCalls: PublicEnqueuedCallMetrics[];
@@ -39,16 +45,17 @@ export declare class TestExecutorMetrics implements ExecutorMetricsInterface {
39
45
  private txMetrics;
40
46
  private currentTxLabel;
41
47
  private txTimer;
42
- constructor();
48
+ constructor(bindings?: LoggerBindings);
43
49
  startRecordingTxSimulation(txLabel: string): void;
44
- stopRecordingTxSimulation(txLabel: string, revertedCode?: RevertCode): void;
50
+ stopRecordingTxSimulation(txLabel: string, gasUsed?: GasUsed, revertedCode?: RevertCode): void;
45
51
  recordEnqueuedCallSimulation(fnName: string, durationMs: number, manaUsed: number, totalInstructionsExecuted: number): void;
46
52
  recordEnqueuedCallSimulationFailure(fnName: string, durationMs: number, manaUsed: number, totalInstructionsExecuted: number): void;
47
53
  recordPrivateEffectsInsertion(durationUs: number, type: 'revertible' | 'non-revertible'): void;
54
+ recordBytecodeSize(txLabel: string, contractName: string, sizeBytes: number): void;
48
55
  recordProverMetrics(txLabel: string, metrics: Partial<PublicTxMetrics>): void;
49
56
  prettyPrint(filter?: PublicTxMetricsFilter): void;
50
57
  toPrettyString(filter?: PublicTxMetricsFilter): string;
51
58
  toJSON(indent?: number): string;
52
59
  toGithubActionBenchmarkJSON(indent?: number): string;
53
60
  }
54
- //# sourceMappingURL=test_executor_metrics.d.ts.map
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF9leGVjdXRvcl9tZXRyaWNzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL3Rlc3RfZXhlY3V0b3JfbWV0cmljcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQWUsS0FBSyxjQUFjLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFFdkYsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFJakQsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVoRixNQUFNLFdBQVcseUJBQXlCO0lBQ3hDLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFDZixVQUFVLEVBQUUsTUFBTSxDQUFDO0lBQ25CLFFBQVEsRUFBRSxNQUFNLENBQUM7SUFDakIseUJBQXlCLEVBQUUsTUFBTSxDQUFDO0lBQ2xDLFFBQVEsRUFBRSxPQUFPLENBQUM7Q0FDbkI7QUFFRCxNQUFNLFdBQVcsZUFBZTtJQUU5QixlQUFlLEVBQUUsTUFBTSxDQUFDO0lBQ3hCLFFBQVEsRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQzdCLHlCQUF5QixFQUFFLE1BQU0sQ0FBQztJQUNsQyxhQUFhLEVBQUU7UUFBRSxZQUFZLEVBQUUsTUFBTSxDQUFDO1FBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQTtLQUFFLEVBQUUsQ0FBQztJQUM3RCxnQ0FBZ0MsRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQ3JELDZCQUE2QixFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFDbEQsYUFBYSxFQUFFLHlCQUF5QixFQUFFLENBQUM7SUFDM0MsWUFBWSxFQUFFLFVBQVUsR0FBRyxTQUFTLENBQUM7SUFFckMsc0JBQXNCLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQztJQUMzQyxtQkFBbUIsRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQ3hDLDJCQUEyQixFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFFaEQsNkJBQTZCLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQztJQUNsRCx1QkFBdUIsRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQzVDLGlCQUFpQixFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFDdEMsWUFBWSxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFDakMsNkJBQTZCLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQztJQUNsRCx3Q0FBd0MsRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQzdELHdCQUF3QixFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7Q0FDOUM7QUFXRCxvQkFBWSxxQkFBcUI7SUFDL0IsR0FBRyxJQUFBO0lBQ0gsTUFBTSxJQUFBO0lBQ04sU0FBUyxJQUFBO0lBQ1QsWUFBWSxJQUFBO0lBQ1osT0FBTyxJQUFBO0NBQ1I7QUE0QkQscUJBQWEsbUJBQW9CLFlBQVcsd0JBQXdCOztJQUNsRSxPQUFPLENBQUMsTUFBTSxDQUFTO0lBRXZCLE9BQU8sQ0FBQyxTQUFTLENBQTJDO0lBQzVELE9BQU8sQ0FBQyxjQUFjLENBQXFCO0lBQzNDLE9BQU8sQ0FBQyxPQUFPLENBQW9CO0lBRW5DLFlBQVksUUFBUSxDQUFDLEVBQUUsY0FBYyxFQUVwQztJQUVELDBCQUEwQixDQUFDLE9BQU8sRUFBRSxNQUFNLFFBTXpDO0lBRUQseUJBQXlCLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsRUFBRSxPQUFPLEVBQUUsWUFBWSxDQUFDLEVBQUUsVUFBVSxRQWdCdEY7SUFFRCw0QkFBNEIsQ0FDMUIsTUFBTSxFQUFFLE1BQU0sRUFDZCxVQUFVLEVBQUUsTUFBTSxFQUNsQixRQUFRLEVBQUUsTUFBTSxFQUNoQix5QkFBeUIsRUFBRSxNQUFNLFFBR2xDO0lBRUQsbUNBQW1DLENBQ2pDLE1BQU0sRUFBRSxNQUFNLEVBQ2QsVUFBVSxFQUFFLE1BQU0sRUFDbEIsUUFBUSxFQUFFLE1BQU0sRUFDaEIseUJBQXlCLEVBQUUsTUFBTSxRQUdsQztJQW9CRCw2QkFBNkIsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxZQUFZLEdBQUcsZ0JBQWdCLFFBZ0J0RjtJQUVELGtCQUFrQixDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxRQUkxRTtJQUVELG1CQUFtQixDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxlQUFlLENBQUMsUUFVckU7SUFFRCxXQUFXLENBQUMsTUFBTSxHQUFFLHFCQUFpRCxRQUVwRTtJQUVELGNBQWMsQ0FBQyxNQUFNLEdBQUUscUJBQWlELFVBd0Z2RTtJQTBCRCxNQUFNLENBQUMsTUFBTSxTQUFJLFVBRWhCO0lBRUQsMkJBQTJCLENBQUMsTUFBTSxTQUFJLFVBbUdyQztDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"test_executor_metrics.d.ts","sourceRoot":"","sources":["../../src/public/test_executor_metrics.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAIpD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAEhF,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,yBAAyB,EAAE,MAAM,CAAC;IAClC,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAE9B,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,yBAAyB,EAAE,MAAM,CAAC;IAClC,gCAAgC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrD,6BAA6B,EAAE,MAAM,GAAG,SAAS,CAAC;IAClD,aAAa,EAAE,yBAAyB,EAAE,CAAC;IAC3C,YAAY,EAAE,UAAU,GAAG,SAAS,CAAC;IAErC,sBAAsB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,2BAA2B,EAAE,MAAM,GAAG,SAAS,CAAC;IAEhD,6BAA6B,EAAE,MAAM,GAAG,SAAS,CAAC;IAClD,uBAAuB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,6BAA6B,EAAE,MAAM,GAAG,SAAS,CAAC;IAClD,wCAAwC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7D,wBAAwB,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9C;AAWD,oBAAY,qBAAqB;IAC/B,GAAG,IAAA;IACH,MAAM,IAAA;IACN,SAAS,IAAA;IACT,YAAY,IAAA;IACZ,OAAO,IAAA;CACR;AA2BD,qBAAa,mBAAoB,YAAW,wBAAwB;;IAClE,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,SAAS,CAA2C;IAC5D,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,OAAO,CAAoB;;IAMnC,0BAA0B,CAAC,OAAO,EAAE,MAAM;IAQ1C,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,UAAU;IAkBpE,4BAA4B,CAC1B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,yBAAyB,EAAE,MAAM;IAKnC,mCAAmC,CACjC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,yBAAyB,EAAE,MAAM;IAuBnC,6BAA6B,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,gBAAgB;IAkBvF,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC;IAYtE,WAAW,CAAC,MAAM,GAAE,qBAAiD;IAIrE,cAAc,CAAC,MAAM,GAAE,qBAAiD;IAwGxE,MAAM,CAAC,MAAM,SAAI;IAIjB,2BAA2B,CAAC,MAAM,SAAI;CA6FvC"}
1
+ {"version":3,"file":"test_executor_metrics.d.ts","sourceRoot":"","sources":["../../src/public/test_executor_metrics.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,7 @@ function createEmptyTxMetrics() {
24
24
  totalDurationMs: 0,
25
25
  manaUsed: 0,
26
26
  totalInstructionsExecuted: 0,
27
+ bytecodeSizes: [],
27
28
  nonRevertiblePrivateInsertionsUs: undefined,
28
29
  revertiblePrivateInsertionsUs: undefined,
29
30
  enqueuedCalls: [],
@@ -48,8 +49,8 @@ export class TestExecutorMetrics {
48
49
  txMetrics = new Map();
49
50
  currentTxLabel;
50
51
  txTimer;
51
- constructor(){
52
- this.logger = createLogger(`simulator:test_executor_metrics`);
52
+ constructor(bindings){
53
+ this.logger = createLogger(`simulator:test_executor_metrics`, bindings);
53
54
  }
54
55
  startRecordingTxSimulation(txLabel) {
55
56
  assert(!this.currentTxLabel, 'Cannot start recording tx simulation when another is live');
@@ -58,14 +59,14 @@ export class TestExecutorMetrics {
58
59
  this.currentTxLabel = txLabel;
59
60
  this.txTimer = new Timer();
60
61
  }
61
- stopRecordingTxSimulation(txLabel, revertedCode) {
62
+ stopRecordingTxSimulation(txLabel, gasUsed, revertedCode) {
62
63
  assert(this.currentTxLabel === txLabel, 'Cannot stop recording metrics for tx when another is live');
63
64
  const txMetrics = this.txMetrics.get(txLabel);
64
65
  // total duration of tx
65
66
  txMetrics.totalDurationMs = this.txTimer.ms();
66
67
  this.logger.debug(`Public TX simulation of ${txLabel} took ${txMetrics.totalDurationMs}ms`);
67
68
  // add manaUsed across all enqueued calls
68
- txMetrics.manaUsed = sum(txMetrics.enqueuedCalls.map((call)=>call.manaUsed));
69
+ txMetrics.manaUsed = gasUsed?.publicGas.l2Gas;
69
70
  // add totalInstructionsExecuted across all enqueued calls
70
71
  txMetrics.totalInstructionsExecuted = sum(txMetrics.enqueuedCalls.map((call)=>call.totalInstructionsExecuted));
71
72
  txMetrics.revertedCode = revertedCode;
@@ -99,6 +100,14 @@ export class TestExecutorMetrics {
99
100
  txMetrics.nonRevertiblePrivateInsertionsUs = durationUs;
100
101
  }
101
102
  }
103
+ recordBytecodeSize(txLabel, contractName, sizeBytes) {
104
+ const txMetrics = this.txMetrics.get(txLabel);
105
+ assert(txMetrics, `Cannot record bytecode size for unknown tx label: ${txLabel}`);
106
+ txMetrics.bytecodeSizes.push({
107
+ contractName,
108
+ sizeBytes
109
+ });
110
+ }
102
111
  recordProverMetrics(txLabel, metrics) {
103
112
  if (!this.txMetrics.has(txLabel)) {
104
113
  this.txMetrics.set(txLabel, createEmptyTxMetrics());
@@ -124,13 +133,20 @@ export class TestExecutorMetrics {
124
133
  pretty += `${INDENT0}Total duration: ${fmtNum(txMetrics.totalDurationMs, 'ms')}\n`;
125
134
  }
126
135
  if (filter === 1 || filter === 0) {
127
- pretty += `${INDENT0}Total mana used: ${fmtNum(txMetrics.manaUsed)}\n`;
128
- const manaPerSecond = Math.round(txMetrics.manaUsed * 1000 / txMetrics.totalDurationMs);
136
+ const manaUsed = txMetrics.manaUsed || 0;
137
+ pretty += `${INDENT0}Total mana used: ${fmtNum(manaUsed)}\n`;
138
+ const manaPerSecond = Math.round(manaUsed * 1000 / txMetrics.totalDurationMs);
129
139
  pretty += `${INDENT0}Mana per second: ${fmtNum(manaPerSecond)}\n`;
130
140
  }
131
141
  if (filter === 3 || filter === 1 || filter === 0) {
132
142
  pretty += `${INDENT0}Total instructions executed: ${fmtNum(txMetrics.totalInstructionsExecuted)}\n`;
133
143
  }
144
+ if ((filter === 1 || filter === 0) && txMetrics.bytecodeSizes.length > 0) {
145
+ pretty += `${INDENT0}Bytecode sizes:\n`;
146
+ for (const { contractName, sizeBytes } of txMetrics.bytecodeSizes){
147
+ pretty += `${INDENT1}${contractName}: ${fmtNum(sizeBytes, 'bytes')}\n`;
148
+ }
149
+ }
134
150
  if (filter === 2 || filter === 0) {
135
151
  pretty += `${INDENT0}Private insertions:\n`;
136
152
  pretty += `${INDENT1}Non-revertible: ${fmtNum(txMetrics.nonRevertiblePrivateInsertionsUs / 1_000, 'ms')}\n`;
@@ -297,6 +313,13 @@ export class TestExecutorMetrics {
297
313
  });
298
314
  }
299
315
  }
316
+ for (const { contractName, sizeBytes } of txMetrics.bytecodeSizes){
317
+ data.push({
318
+ name: `${txLabel}/bytecodeSizeBytes/${contractName}`,
319
+ value: sizeBytes,
320
+ unit: 'bytes'
321
+ });
322
+ }
300
323
  }
301
324
  return JSON.stringify(data, null, indent);
302
325
  }
@@ -34,4 +34,4 @@ export declare class UniqueClassIds {
34
34
  */
35
35
  acceptAndMerge(incoming: UniqueClassIds): void;
36
36
  }
37
- //# sourceMappingURL=unique_class_ids.d.ts.map
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pcXVlX2NsYXNzX2lkcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1YmxpYy91bmlxdWVfY2xhc3NfaWRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBOzs7R0FHRztBQUNILHFCQUFhLGNBQWM7SUFHYixPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztJQUZwQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBMEI7SUFFbkQsWUFBNkIsTUFBTSxDQUFDLDRCQUFnQixFQUFJO0lBRXhEOztPQUVHO0lBQ0ksSUFBSSxtQkFFVjtJQUVEOzs7OztPQUtHO0lBQ0ksR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQVNuQztJQUVEOztPQUVHO0lBQ0ksSUFBSSxJQUFJLE1BQU0sQ0FFcEI7SUFFRDs7OztPQUlHO0lBQ0ksR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLFFBU3pCO0lBRUQ7Ozs7T0FJRztJQUNJLGNBQWMsQ0FBQyxRQUFRLEVBQUUsY0FBYyxRQWE3QztDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"unique_class_ids.d.ts","sourceRoot":"","sources":["../../src/public/unique_class_ids.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,qBAAa,cAAc;IAGb,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAFpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0B;gBAEtB,MAAM,CAAC,EAAE,cAAc,YAAA;IAEpD;;OAEG;IACI,IAAI;IAIX;;;;;OAKG;IACI,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAWpC;;OAEG;IACI,IAAI,IAAI,MAAM;IAIrB;;;;OAIG;IACI,GAAG,CAAC,OAAO,EAAE,MAAM;IAW1B;;;;OAIG;IACI,cAAc,CAAC,QAAQ,EAAE,cAAc;CAc/C"}
1
+ {"version":3,"file":"unique_class_ids.d.ts","sourceRoot":"","sources":["../../src/public/unique_class_ids.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,qBAAa,cAAc;IAGb,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAFpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0B;IAEnD,YAA6B,MAAM,CAAC,4BAAgB,EAAI;IAExD;;OAEG;IACI,IAAI,mBAEV;IAED;;;;;OAKG;IACI,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CASnC;IAED;;OAEG;IACI,IAAI,IAAI,MAAM,CAEpB;IAED;;;;OAIG;IACI,GAAG,CAAC,OAAO,EAAE,MAAM,QASzB;IAED;;;;OAIG;IACI,cAAc,CAAC,QAAQ,EAAE,cAAc,QAa7C;CACF"}
@@ -1,3 +1,3 @@
1
1
  import { PublicCallRequestWithCalldata, type Tx, TxExecutionPhase } from '@aztec/stdlib/tx';
2
2
  export declare function getCallRequestsWithCalldataByPhase(tx: Tx, phase: TxExecutionPhase): PublicCallRequestWithCalldata[];
3
- //# sourceMappingURL=utils.d.ts.map
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDZCQUE2QixFQUFFLEtBQUssRUFBRSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFNUYsd0JBQWdCLGtDQUFrQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixHQUFHLDZCQUE2QixFQUFFLENBYW5IIn0=
package/dest/server.d.ts CHANGED
@@ -6,4 +6,4 @@ export { SimulatorRecorderWrapper } from './private/circuit_recording/simulator_
6
6
  export { MemoryCircuitRecorder } from './private/circuit_recording/memory_circuit_recorder.js';
7
7
  export { type CircuitSimulator, type DecodedError } from './private/circuit_simulator.js';
8
8
  export * from './common/index.js';
9
- //# sourceMappingURL=server.d.ts.map
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc2VydmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUNyRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUMvRixPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBRSxLQUFLLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzFGLGNBQWMsbUJBQW1CLENBQUMifQ==
package/dest/testing.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  export { FileCircuitRecorder } from './private/circuit_recording/file_circuit_recorder.js';
2
- //# sourceMappingURL=testing.d.ts.map
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGluZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3Rlc3RpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0RBQXNELENBQUMifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/simulator",
3
- "version": "0.0.1-commit.24de95ac",
3
+ "version": "0.0.1-commit.27d773e65",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./server": "./dest/server.js",
@@ -17,11 +17,11 @@
17
17
  "tsconfig": "./tsconfig.json"
18
18
  },
19
19
  "scripts": {
20
- "build": "yarn clean && tsc -b",
21
- "build:dev": "tsc -b --watch",
20
+ "build": "yarn clean && ../scripts/tsc.sh",
21
+ "build:dev": "../scripts/tsc.sh --watch",
22
22
  "clean": "rm -rf ./dest .tsbuildinfo",
23
23
  "test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}",
24
- "build:fuzzer": "tsc scripts/fuzzing/avm_simulator_bin.ts --outDir dest/scripts/fuzzing --module commonjs --target es2022 --esModuleInterop --allowSyntheticDefaultImports --resolveJsonModule --skipLibCheck"
24
+ "build:fuzzer": "yarn clean && ../scripts/tsc.sh"
25
25
  },
26
26
  "inherits": [
27
27
  "../package.common.json"
@@ -64,38 +64,39 @@
64
64
  ]
65
65
  },
66
66
  "dependencies": {
67
- "@aztec/constants": "0.0.1-commit.24de95ac",
68
- "@aztec/foundation": "0.0.1-commit.24de95ac",
69
- "@aztec/native": "0.0.1-commit.24de95ac",
70
- "@aztec/noir-acvm_js": "0.0.1-commit.24de95ac",
71
- "@aztec/noir-noirc_abi": "0.0.1-commit.24de95ac",
72
- "@aztec/noir-protocol-circuits-types": "0.0.1-commit.24de95ac",
73
- "@aztec/noir-types": "0.0.1-commit.24de95ac",
74
- "@aztec/protocol-contracts": "0.0.1-commit.24de95ac",
75
- "@aztec/stdlib": "0.0.1-commit.24de95ac",
76
- "@aztec/telemetry-client": "0.0.1-commit.24de95ac",
77
- "@aztec/world-state": "0.0.1-commit.24de95ac",
67
+ "@aztec/constants": "0.0.1-commit.27d773e65",
68
+ "@aztec/foundation": "0.0.1-commit.27d773e65",
69
+ "@aztec/native": "0.0.1-commit.27d773e65",
70
+ "@aztec/noir-acvm_js": "0.0.1-commit.27d773e65",
71
+ "@aztec/noir-noirc_abi": "0.0.1-commit.27d773e65",
72
+ "@aztec/noir-protocol-circuits-types": "0.0.1-commit.27d773e65",
73
+ "@aztec/noir-types": "0.0.1-commit.27d773e65",
74
+ "@aztec/protocol-contracts": "0.0.1-commit.27d773e65",
75
+ "@aztec/stdlib": "0.0.1-commit.27d773e65",
76
+ "@aztec/telemetry-client": "0.0.1-commit.27d773e65",
77
+ "@aztec/world-state": "0.0.1-commit.27d773e65",
78
78
  "lodash.clonedeep": "^4.5.0",
79
79
  "lodash.merge": "^4.6.2",
80
80
  "tslib": "^2.4.0"
81
81
  },
82
82
  "devDependencies": {
83
- "@aztec/kv-store": "0.0.1-commit.24de95ac",
84
- "@aztec/merkle-tree": "0.0.1-commit.24de95ac",
85
- "@aztec/noir-contracts.js": "0.0.1-commit.24de95ac",
86
- "@aztec/noir-test-contracts.js": "0.0.1-commit.24de95ac",
83
+ "@aztec/kv-store": "0.0.1-commit.27d773e65",
84
+ "@aztec/merkle-tree": "0.0.1-commit.27d773e65",
85
+ "@aztec/noir-contracts.js": "0.0.1-commit.27d773e65",
86
+ "@aztec/noir-test-contracts.js": "0.0.1-commit.27d773e65",
87
87
  "@jest/globals": "^30.0.0",
88
88
  "@types/jest": "^30.0.0",
89
89
  "@types/lodash.clonedeep": "^4.5.7",
90
90
  "@types/lodash.merge": "^4.6.9",
91
91
  "@types/node": "^22.15.17",
92
+ "@typescript/native-preview": "7.0.0-dev.20260113.1",
92
93
  "istanbul-lib-hook": "^3.0.0",
93
94
  "istanbul-lib-instrument": "^6.0.3",
94
95
  "jest": "^30.0.0",
95
96
  "jest-mock-extended": "^4.0.0",
96
97
  "ts-node": "^10.9.1",
97
98
  "typescript": "^5.3.3",
98
- "viem": "npm:@spalladino/viem@2.38.2-eip7594.0"
99
+ "viem": "npm:@aztec/viem@2.38.2"
99
100
  },
100
101
  "files": [
101
102
  "dest",
@@ -1,4 +1,4 @@
1
- import type { Fr } from '@aztec/foundation/fields';
1
+ import type { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import { jsonStringify } from '@aztec/foundation/json-rpc';
3
3
  import type { RawAssertionPayload } from '@aztec/noir-acvm_js';
4
4
  import { abiDecodeError } from '@aztec/noir-noirc_abi';
@@ -1,4 +1,4 @@
1
- import { createLogger } from '@aztec/foundation/log';
1
+ import { type Logger, type LoggerBindings, resolveLogger } from '@aztec/foundation/log';
2
2
  import {
3
3
  type ExecutionError,
4
4
  type ForeignCallInput,
@@ -37,6 +37,7 @@ export interface ACIRExecutionResult {
37
37
  * @param acir - The ACIR circuit bytecode to execute.
38
38
  * @param initialWitness - The initial witness map defining all of the inputs to `circuit`.
39
39
  * @param callback - A callback to process any foreign calls from the circuit.
40
+ * @param logger - Optional logger for ACVM execution logs.
40
41
  * @returns The solved witness calculated by executing the circuit on the provided inputs, as well as the return
41
42
  * witness indices as specified by the circuit.
42
43
  */
@@ -44,9 +45,9 @@ export async function acvm(
44
45
  acir: Buffer,
45
46
  initialWitness: ACVMWitness,
46
47
  callback: ACIRCallback,
48
+ loggerOrBindings?: Logger | LoggerBindings,
47
49
  ): Promise<ACIRExecutionResult> {
48
- const logger = createLogger('simulator:acvm');
49
-
50
+ const logger = resolveLogger('simulator:acvm', loggerOrBindings);
50
51
  const solvedAndReturnWitness = await executeCircuitWithReturnWitness(
51
52
  acir,
52
53
  initialWitness,
@@ -1,4 +1,4 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import { hexToBuffer } from '@aztec/foundation/string';
3
3
 
4
4
  import type { ACVMField, ACVMWitness } from './acvm_types.js';
@@ -1,5 +1,5 @@
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
1
2
  import type { EthAddress } from '@aztec/foundation/eth-address';
2
- import { Fr } from '@aztec/foundation/fields';
3
3
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
4
4
 
5
5
  import type { ACVMField } from './acvm_types.js';
@@ -1,5 +1,5 @@
1
1
  import { runInDirectory } from '@aztec/foundation/fs';
2
- import { createLogger } from '@aztec/foundation/log';
2
+ import { type Logger, type LoggerBindings, resolveLogger } from '@aztec/foundation/log';
3
3
  import { Timer } from '@aztec/foundation/timer';
4
4
  import type { ForeignCallHandler, WitnessMap } from '@aztec/noir-acvm_js';
5
5
  import type { FunctionArtifactWithContractName } from '@aztec/stdlib/abi';
@@ -12,8 +12,6 @@ import type { ACIRCallback, ACIRExecutionResult } from './acvm/acvm.js';
12
12
  import type { ACVMWitness } from './acvm/acvm_types.js';
13
13
  import type { CircuitSimulator } from './circuit_simulator.js';
14
14
 
15
- const logger = createLogger('simulator:acvm-native');
16
-
17
15
  export enum ACVM_RESULT {
18
16
  SUCCESS,
19
17
  FAILURE,
@@ -64,7 +62,9 @@ export async function executeNativeCircuit(
64
62
  workingDirectory: string,
65
63
  pathToAcvm: string,
66
64
  outputFilename?: string,
65
+ loggerOrBindings?: Logger | LoggerBindings,
67
66
  ): Promise<ACVMResult> {
67
+ const logger = resolveLogger('simulator:acvm-native', loggerOrBindings);
68
68
  const bytecodeFilename = 'bytecode';
69
69
  const witnessFilename = 'input_witness.toml';
70
70
 
@@ -145,11 +145,16 @@ export async function executeNativeCircuit(
145
145
  }
146
146
 
147
147
  export class NativeACVMSimulator implements CircuitSimulator {
148
+ private logger: Logger;
149
+
148
150
  constructor(
149
151
  private workingDirectory: string,
150
152
  private pathToAcvm: string,
151
153
  private witnessFilename?: string,
152
- ) {}
154
+ loggerOrBindings?: Logger | LoggerBindings,
155
+ ) {
156
+ this.logger = resolveLogger('simulator:acvm-native', loggerOrBindings);
157
+ }
153
158
 
154
159
  async executeProtocolCircuit(
155
160
  input: ACVMWitness,
@@ -172,6 +177,7 @@ export class NativeACVMSimulator implements CircuitSimulator {
172
177
  directory,
173
178
  this.pathToAcvm,
174
179
  this.witnessFilename,
180
+ this.logger,
175
181
  );
176
182
 
177
183
  if (result.status == ACVM_RESULT.FAILURE) {
@@ -181,7 +187,7 @@ export class NativeACVMSimulator implements CircuitSimulator {
181
187
  return result;
182
188
  };
183
189
 
184
- return await runInDirectory(this.workingDirectory, operation, false, logger);
190
+ return await runInDirectory(this.workingDirectory, operation, false, this.logger);
185
191
  }
186
192
 
187
193
  executeUserCircuit(
@@ -1,4 +1,4 @@
1
- import { createLogger } from '@aztec/foundation/log';
1
+ import { type Logger, type LoggerBindings, resolveLogger } from '@aztec/foundation/log';
2
2
  import { Timer } from '@aztec/foundation/timer';
3
3
  import initACVM, { type ExecutionError, type ForeignCallHandler, executeCircuit } from '@aztec/noir-acvm_js';
4
4
  import initAbi from '@aztec/noir-noirc_abi';
@@ -11,7 +11,11 @@ import type { ACVMSuccess } from './acvm_native.js';
11
11
  import { type CircuitSimulator, enrichNoirError } from './circuit_simulator.js';
12
12
 
13
13
  export class WASMSimulator implements CircuitSimulator {
14
- constructor(protected log = createLogger('wasm-simulator')) {}
14
+ protected log: Logger;
15
+
16
+ constructor(loggerOrBindings?: Logger | LoggerBindings) {
17
+ this.log = resolveLogger('wasm-simulator', loggerOrBindings);
18
+ }
15
19
 
16
20
  async init(): Promise<void> {
17
21
  // If these are available, then we are in the
@@ -67,6 +71,6 @@ export class WASMSimulator implements CircuitSimulator {
67
71
  callback: ACIRCallback,
68
72
  ): Promise<ACIRExecutionResult> {
69
73
  await this.init();
70
- return acvm(artifact.bytecode, input, callback);
74
+ return acvm(artifact.bytecode, input, callback, this.log.createChild('acvm'));
71
75
  }
72
76
  }