@aztec/simulator 0.0.1-commit.b655e406 → 0.0.1-commit.d1f2d6c

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 (344) hide show
  1. package/README.md +2 -0
  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 +1 -1
  9. package/dest/private/acvm/acvm_types.d.ts +1 -1
  10. package/dest/private/acvm/deserialize.d.ts +2 -2
  11. package/dest/private/acvm/deserialize.d.ts.map +1 -1
  12. package/dest/private/acvm/deserialize.js +1 -1
  13. package/dest/private/acvm/index.d.ts +1 -1
  14. package/dest/private/acvm/serialize.d.ts +2 -2
  15. package/dest/private/acvm/serialize.d.ts.map +1 -1
  16. package/dest/private/acvm/serialize.js +1 -1
  17. package/dest/private/acvm_native.d.ts +1 -1
  18. package/dest/private/acvm_native.d.ts.map +1 -1
  19. package/dest/private/acvm_wasm.d.ts +1 -1
  20. package/dest/private/acvm_wasm.d.ts.map +1 -1
  21. package/dest/private/acvm_wasm_with_blobs.d.ts +1 -1
  22. package/dest/private/acvm_wasm_with_blobs.d.ts.map +1 -1
  23. package/dest/private/circuit_recording/circuit_recorder.d.ts +1 -1
  24. package/dest/private/circuit_recording/circuit_recorder.d.ts.map +1 -1
  25. package/dest/private/circuit_recording/circuit_recorder.js +16 -15
  26. package/dest/private/circuit_recording/file_circuit_recorder.d.ts +1 -1
  27. package/dest/private/circuit_recording/file_circuit_recorder.d.ts.map +1 -1
  28. package/dest/private/circuit_recording/memory_circuit_recorder.d.ts +1 -1
  29. package/dest/private/circuit_recording/memory_circuit_recorder.d.ts.map +1 -1
  30. package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts +1 -1
  31. package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts.map +1 -1
  32. package/dest/private/circuit_simulator.d.ts +1 -1
  33. package/dest/private/factory.d.ts +1 -1
  34. package/dest/public/avm/avm_context.d.ts +2 -2
  35. package/dest/public/avm/avm_context.d.ts.map +1 -1
  36. package/dest/public/avm/avm_contract_call_result.d.ts +2 -2
  37. package/dest/public/avm/avm_contract_call_result.d.ts.map +1 -1
  38. package/dest/public/avm/avm_execution_environment.d.ts +5 -5
  39. package/dest/public/avm/avm_execution_environment.d.ts.map +1 -1
  40. package/dest/public/avm/avm_execution_environment.js +5 -8
  41. package/dest/public/avm/avm_gas.d.ts +2 -2
  42. package/dest/public/avm/avm_gas.d.ts.map +1 -1
  43. package/dest/public/avm/avm_machine_state.d.ts +2 -2
  44. package/dest/public/avm/avm_machine_state.d.ts.map +1 -1
  45. package/dest/public/avm/avm_memory_types.d.ts +14 -14
  46. package/dest/public/avm/avm_memory_types.d.ts.map +1 -1
  47. package/dest/public/avm/avm_memory_types.js +4 -1
  48. package/dest/public/avm/avm_simulator.d.ts +4 -3
  49. package/dest/public/avm/avm_simulator.d.ts.map +1 -1
  50. package/dest/public/avm/avm_simulator.js +8 -7
  51. package/dest/public/avm/avm_simulator_interface.d.ts +1 -1
  52. package/dest/public/avm/errors.d.ts +8 -2
  53. package/dest/public/avm/errors.d.ts.map +1 -1
  54. package/dest/public/avm/errors.js +14 -2
  55. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts +1 -1
  56. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts.map +1 -1
  57. package/dest/public/avm/fixtures/avm_simulation_tester.js +12 -3
  58. package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts +2 -2
  59. package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts.map +1 -1
  60. package/dest/public/avm/fixtures/base_avm_simulation_tester.js +1 -1
  61. package/dest/public/avm/fixtures/initializers.d.ts +2 -3
  62. package/dest/public/avm/fixtures/initializers.d.ts.map +1 -1
  63. package/dest/public/avm/fixtures/initializers.js +7 -5
  64. package/dest/public/avm/fixtures/utils.d.ts +4 -3
  65. package/dest/public/avm/fixtures/utils.d.ts.map +1 -1
  66. package/dest/public/avm/fixtures/utils.js +3 -2
  67. package/dest/public/avm/index.d.ts +1 -1
  68. package/dest/public/avm/opcodes/accrued_substate.d.ts +15 -15
  69. package/dest/public/avm/opcodes/accrued_substate.d.ts.map +1 -1
  70. package/dest/public/avm/opcodes/accrued_substate.js +29 -29
  71. package/dest/public/avm/opcodes/addressing_mode.d.ts +1 -1
  72. package/dest/public/avm/opcodes/addressing_mode.d.ts.map +1 -1
  73. package/dest/public/avm/opcodes/addressing_mode.js +2 -2
  74. package/dest/public/avm/opcodes/arithmetic.d.ts +3 -1
  75. package/dest/public/avm/opcodes/arithmetic.d.ts.map +1 -1
  76. package/dest/public/avm/opcodes/arithmetic.js +12 -2
  77. package/dest/public/avm/opcodes/bitwise.d.ts +3 -3
  78. package/dest/public/avm/opcodes/bitwise.d.ts.map +1 -1
  79. package/dest/public/avm/opcodes/bitwise.js +5 -5
  80. package/dest/public/avm/opcodes/comparators.d.ts +1 -1
  81. package/dest/public/avm/opcodes/comparators.d.ts.map +1 -1
  82. package/dest/public/avm/opcodes/comparators.js +1 -1
  83. package/dest/public/avm/opcodes/contract.d.ts +3 -3
  84. package/dest/public/avm/opcodes/contract.d.ts.map +1 -1
  85. package/dest/public/avm/opcodes/contract.js +8 -8
  86. package/dest/public/avm/opcodes/control_flow.d.ts +3 -3
  87. package/dest/public/avm/opcodes/control_flow.d.ts.map +1 -1
  88. package/dest/public/avm/opcodes/control_flow.js +4 -4
  89. package/dest/public/avm/opcodes/conversion.d.ts +3 -3
  90. package/dest/public/avm/opcodes/conversion.d.ts.map +1 -1
  91. package/dest/public/avm/opcodes/conversion.js +4 -4
  92. package/dest/public/avm/opcodes/ec_add.d.ts +3 -3
  93. package/dest/public/avm/opcodes/ec_add.d.ts.map +1 -1
  94. package/dest/public/avm/opcodes/ec_add.js +17 -8
  95. package/dest/public/avm/opcodes/environment_getters.d.ts +5 -5
  96. package/dest/public/avm/opcodes/environment_getters.d.ts.map +1 -1
  97. package/dest/public/avm/opcodes/environment_getters.js +6 -6
  98. package/dest/public/avm/opcodes/external_calls.d.ts +9 -9
  99. package/dest/public/avm/opcodes/external_calls.d.ts.map +1 -1
  100. package/dest/public/avm/opcodes/external_calls.js +17 -16
  101. package/dest/public/avm/opcodes/hashing.d.ts +7 -7
  102. package/dest/public/avm/opcodes/hashing.d.ts.map +1 -1
  103. package/dest/public/avm/opcodes/hashing.js +21 -16
  104. package/dest/public/avm/opcodes/index.d.ts +1 -1
  105. package/dest/public/avm/opcodes/instruction.d.ts +2 -2
  106. package/dest/public/avm/opcodes/instruction.d.ts.map +1 -1
  107. package/dest/public/avm/opcodes/instruction_impl.d.ts +4 -4
  108. package/dest/public/avm/opcodes/instruction_impl.d.ts.map +1 -1
  109. package/dest/public/avm/opcodes/instruction_impl.js +4 -4
  110. package/dest/public/avm/opcodes/memory.d.ts +13 -13
  111. package/dest/public/avm/opcodes/memory.d.ts.map +1 -1
  112. package/dest/public/avm/opcodes/memory.js +25 -25
  113. package/dest/public/avm/opcodes/misc.d.ts +3 -3
  114. package/dest/public/avm/opcodes/misc.d.ts.map +1 -1
  115. package/dest/public/avm/opcodes/misc.js +8 -8
  116. package/dest/public/avm/opcodes/storage.d.ts +14 -13
  117. package/dest/public/avm/opcodes/storage.d.ts.map +1 -1
  118. package/dest/public/avm/opcodes/storage.js +34 -24
  119. package/dest/public/avm/revert_reason.d.ts +2 -2
  120. package/dest/public/avm/revert_reason.d.ts.map +1 -1
  121. package/dest/public/avm/revert_reason.js +3 -2
  122. package/dest/public/avm/serialization/buffer_cursor.d.ts +1 -1
  123. package/dest/public/avm/serialization/buffer_cursor.d.ts.map +1 -1
  124. package/dest/public/avm/serialization/bytecode_serialization.d.ts +1 -1
  125. package/dest/public/avm/serialization/bytecode_serialization.d.ts.map +1 -1
  126. package/dest/public/avm/serialization/bytecode_serialization.js +9 -6
  127. package/dest/public/avm/serialization/instruction_serialization.d.ts +1 -1
  128. package/dest/public/avm/serialization/instruction_serialization.js +1 -1
  129. package/dest/public/avm/test_utils.d.ts +2 -2
  130. package/dest/public/avm/test_utils.d.ts.map +1 -1
  131. package/dest/public/avm/test_utils.js +1 -1
  132. package/dest/public/contracts_db_checkpoint.d.ts +16 -0
  133. package/dest/public/contracts_db_checkpoint.d.ts.map +1 -0
  134. package/dest/public/contracts_db_checkpoint.js +30 -0
  135. package/dest/public/db_interfaces.d.ts +14 -2
  136. package/dest/public/db_interfaces.d.ts.map +1 -1
  137. package/dest/public/debug_fn_name.d.ts +15 -2
  138. package/dest/public/debug_fn_name.d.ts.map +1 -1
  139. package/dest/public/debug_fn_name.js +28 -2
  140. package/dest/public/executor_metrics.d.ts +3 -2
  141. package/dest/public/executor_metrics.d.ts.map +1 -1
  142. package/dest/public/executor_metrics.js +9 -35
  143. package/dest/public/executor_metrics_interface.d.ts +3 -2
  144. package/dest/public/executor_metrics_interface.d.ts.map +1 -1
  145. package/dest/public/fixtures/amm_test.d.ts +1 -1
  146. package/dest/public/fixtures/amm_test.js +2 -2
  147. package/dest/public/fixtures/bulk_test.d.ts +3 -3
  148. package/dest/public/fixtures/bulk_test.d.ts.map +1 -1
  149. package/dest/public/fixtures/bulk_test.js +5 -69
  150. package/dest/public/fixtures/custom_bytecode_tester.d.ts +29 -7
  151. package/dest/public/fixtures/custom_bytecode_tester.d.ts.map +1 -1
  152. package/dest/public/fixtures/custom_bytecode_tester.js +36 -12
  153. package/dest/public/fixtures/custom_bytecode_tests.d.ts +11 -8
  154. package/dest/public/fixtures/custom_bytecode_tests.d.ts.map +1 -1
  155. package/dest/public/fixtures/custom_bytecode_tests.js +83 -18
  156. package/dest/public/fixtures/index.d.ts +4 -2
  157. package/dest/public/fixtures/index.d.ts.map +1 -1
  158. package/dest/public/fixtures/index.js +3 -1
  159. package/dest/public/fixtures/minimal_public_tx.d.ts +2 -8
  160. package/dest/public/fixtures/minimal_public_tx.d.ts.map +1 -1
  161. package/dest/public/fixtures/minimal_public_tx.js +6 -16
  162. package/dest/public/fixtures/opcode_spammer.d.ts +123 -0
  163. package/dest/public/fixtures/opcode_spammer.d.ts.map +1 -0
  164. package/dest/public/fixtures/opcode_spammer.js +1693 -0
  165. package/dest/public/fixtures/public_tx_simulation_tester.d.ts +24 -6
  166. package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
  167. package/dest/public/fixtures/public_tx_simulation_tester.js +62 -21
  168. package/dest/public/fixtures/simple_contract_data_source.d.ts +5 -4
  169. package/dest/public/fixtures/simple_contract_data_source.d.ts.map +1 -1
  170. package/dest/public/fixtures/simple_contract_data_source.js +4 -4
  171. package/dest/public/fixtures/token_test.d.ts +6 -2
  172. package/dest/public/fixtures/token_test.d.ts.map +1 -1
  173. package/dest/public/fixtures/token_test.js +13 -12
  174. package/dest/public/fixtures/utils.d.ts +2 -2
  175. package/dest/public/fixtures/utils.d.ts.map +1 -1
  176. package/dest/public/fixtures/utils.js +4 -3
  177. package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts +60 -0
  178. package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts.map +1 -0
  179. package/dest/public/fuzzing/avm_fuzzer_simulator.js +171 -0
  180. package/dest/public/fuzzing/avm_simulator_bin.d.ts +2 -0
  181. package/dest/public/fuzzing/avm_simulator_bin.d.ts.map +1 -0
  182. package/dest/public/fuzzing/avm_simulator_bin.js +118 -0
  183. package/dest/public/hinting_db_sources.d.ts +14 -4
  184. package/dest/public/hinting_db_sources.d.ts.map +1 -1
  185. package/dest/public/hinting_db_sources.js +71 -13
  186. package/dest/public/index.d.ts +3 -2
  187. package/dest/public/index.d.ts.map +1 -1
  188. package/dest/public/index.js +1 -1
  189. package/dest/public/public_db_sources.d.ts +22 -63
  190. package/dest/public/public_db_sources.d.ts.map +1 -1
  191. package/dest/public/public_db_sources.js +74 -131
  192. package/dest/public/public_errors.d.ts +1 -1
  193. package/dest/public/public_errors.d.ts.map +1 -1
  194. package/dest/public/public_processor/guarded_merkle_tree.d.ts +6 -4
  195. package/dest/public/public_processor/guarded_merkle_tree.d.ts.map +1 -1
  196. package/dest/public/public_processor/guarded_merkle_tree.js +5 -0
  197. package/dest/public/public_processor/public_processor.d.ts +12 -19
  198. package/dest/public/public_processor/public_processor.d.ts.map +1 -1
  199. package/dest/public/public_processor/public_processor.js +456 -64
  200. package/dest/public/public_processor/public_processor_metrics.d.ts +1 -1
  201. package/dest/public/public_processor/public_processor_metrics.d.ts.map +1 -1
  202. package/dest/public/public_processor/public_processor_metrics.js +12 -45
  203. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts +18 -0
  204. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts.map +1 -0
  205. package/dest/public/public_tx_simulator/contract_provider_for_cpp.js +98 -0
  206. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts +34 -22
  207. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts.map +1 -1
  208. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.js +93 -50
  209. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts +42 -0
  210. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts.map +1 -0
  211. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.js +86 -0
  212. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts +30 -0
  213. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts.map +1 -0
  214. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.js +171 -0
  215. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts +22 -0
  216. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts.map +1 -0
  217. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.js +52 -0
  218. package/dest/public/public_tx_simulator/factories.d.ts +13 -0
  219. package/dest/public/public_tx_simulator/factories.d.ts.map +1 -0
  220. package/dest/public/public_tx_simulator/factories.js +28 -0
  221. package/dest/public/public_tx_simulator/index.d.ts +5 -1
  222. package/dest/public/public_tx_simulator/index.d.ts.map +1 -1
  223. package/dest/public/public_tx_simulator/index.js +3 -0
  224. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts +14 -7
  225. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts.map +1 -1
  226. package/dest/public/public_tx_simulator/measured_public_tx_simulator.js +5 -5
  227. package/dest/public/public_tx_simulator/public_tx_context.d.ts +6 -3
  228. package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +1 -1
  229. package/dest/public/public_tx_simulator/public_tx_context.js +13 -5
  230. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +13 -32
  231. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
  232. package/dest/public/public_tx_simulator/public_tx_simulator.js +112 -127
  233. package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts +25 -2
  234. package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts.map +1 -1
  235. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts +4 -4
  236. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts.map +1 -1
  237. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.js +395 -19
  238. package/dest/public/side_effect_errors.d.ts +1 -1
  239. package/dest/public/side_effect_errors.d.ts.map +1 -1
  240. package/dest/public/side_effect_trace.d.ts +2 -2
  241. package/dest/public/side_effect_trace.d.ts.map +1 -1
  242. package/dest/public/side_effect_trace.js +1 -1
  243. package/dest/public/side_effect_trace_interface.d.ts +3 -4
  244. package/dest/public/side_effect_trace_interface.d.ts.map +1 -1
  245. package/dest/public/state_manager/index.d.ts +1 -1
  246. package/dest/public/state_manager/nullifiers.d.ts +2 -2
  247. package/dest/public/state_manager/nullifiers.d.ts.map +1 -1
  248. package/dest/public/state_manager/public_storage.d.ts +2 -2
  249. package/dest/public/state_manager/public_storage.d.ts.map +1 -1
  250. package/dest/public/state_manager/public_storage.js +1 -1
  251. package/dest/public/state_manager/state_manager.d.ts +9 -11
  252. package/dest/public/state_manager/state_manager.d.ts.map +1 -1
  253. package/dest/public/state_manager/state_manager.js +12 -8
  254. package/dest/public/test_executor_metrics.d.ts +4 -3
  255. package/dest/public/test_executor_metrics.d.ts.map +1 -1
  256. package/dest/public/test_executor_metrics.js +5 -4
  257. package/dest/public/unique_class_ids.d.ts +1 -1
  258. package/dest/public/unique_class_ids.d.ts.map +1 -1
  259. package/dest/public/utils.d.ts +1 -1
  260. package/dest/server.d.ts +1 -1
  261. package/dest/testing.d.ts +1 -1
  262. package/package.json +21 -20
  263. package/src/common/errors.ts +1 -1
  264. package/src/private/acvm/deserialize.ts +1 -1
  265. package/src/private/acvm/serialize.ts +1 -1
  266. package/src/private/circuit_recording/circuit_recorder.ts +17 -16
  267. package/src/public/avm/avm_context.ts +1 -1
  268. package/src/public/avm/avm_contract_call_result.ts +1 -1
  269. package/src/public/avm/avm_execution_environment.ts +4 -6
  270. package/src/public/avm/avm_gas.ts +3 -3
  271. package/src/public/avm/avm_machine_state.ts +1 -1
  272. package/src/public/avm/avm_memory_types.ts +5 -1
  273. package/src/public/avm/avm_simulator.ts +11 -9
  274. package/src/public/avm/errors.ts +17 -3
  275. package/src/public/avm/fixtures/avm_simulation_tester.ts +10 -2
  276. package/src/public/avm/fixtures/base_avm_simulation_tester.ts +1 -1
  277. package/src/public/avm/fixtures/initializers.ts +8 -10
  278. package/src/public/avm/fixtures/utils.ts +3 -2
  279. package/src/public/avm/opcodes/accrued_substate.ts +15 -15
  280. package/src/public/avm/opcodes/addressing_mode.ts +2 -2
  281. package/src/public/avm/opcodes/arithmetic.ts +14 -2
  282. package/src/public/avm/opcodes/bitwise.ts +3 -3
  283. package/src/public/avm/opcodes/comparators.ts +1 -1
  284. package/src/public/avm/opcodes/contract.ts +4 -7
  285. package/src/public/avm/opcodes/control_flow.ts +2 -2
  286. package/src/public/avm/opcodes/conversion.ts +3 -3
  287. package/src/public/avm/opcodes/ec_add.ts +15 -6
  288. package/src/public/avm/opcodes/environment_getters.ts +7 -7
  289. package/src/public/avm/opcodes/external_calls.ts +10 -9
  290. package/src/public/avm/opcodes/hashing.ts +16 -10
  291. package/src/public/avm/opcodes/instruction_impl.ts +2 -2
  292. package/src/public/avm/opcodes/memory.ts +19 -19
  293. package/src/public/avm/opcodes/misc.ts +6 -6
  294. package/src/public/avm/opcodes/storage.ts +30 -22
  295. package/src/public/avm/revert_reason.ts +6 -3
  296. package/src/public/avm/serialization/bytecode_serialization.ts +17 -6
  297. package/src/public/avm/serialization/instruction_serialization.ts +1 -1
  298. package/src/public/avm/test_utils.ts +1 -1
  299. package/src/public/contracts_db_checkpoint.ts +41 -0
  300. package/src/public/db_interfaces.ts +16 -1
  301. package/src/public/debug_fn_name.ts +35 -3
  302. package/src/public/executor_metrics.ts +9 -35
  303. package/src/public/executor_metrics_interface.ts +2 -1
  304. package/src/public/fixtures/amm_test.ts +2 -2
  305. package/src/public/fixtures/bulk_test.ts +9 -9
  306. package/src/public/fixtures/custom_bytecode_tester.ts +54 -20
  307. package/src/public/fixtures/custom_bytecode_tests.ts +111 -18
  308. package/src/public/fixtures/index.ts +7 -1
  309. package/src/public/fixtures/minimal_public_tx.ts +7 -17
  310. package/src/public/fixtures/opcode_spammer.ts +1754 -0
  311. package/src/public/fixtures/public_tx_simulation_tester.ts +85 -21
  312. package/src/public/fixtures/simple_contract_data_source.ts +8 -9
  313. package/src/public/fixtures/token_test.ts +18 -10
  314. package/src/public/fixtures/utils.ts +2 -3
  315. package/src/public/fuzzing/avm_fuzzer_simulator.ts +288 -0
  316. package/src/public/fuzzing/avm_simulator_bin.ts +175 -0
  317. package/src/public/hinting_db_sources.ts +112 -10
  318. package/src/public/index.ts +6 -4
  319. package/src/public/public_db_sources.ts +93 -172
  320. package/src/public/public_processor/guarded_merkle_tree.ts +8 -3
  321. package/src/public/public_processor/public_processor.ts +86 -59
  322. package/src/public/public_processor/public_processor_metrics.ts +11 -45
  323. package/src/public/public_tx_simulator/contract_provider_for_cpp.ts +121 -0
  324. package/src/public/public_tx_simulator/cpp_public_tx_simulator.ts +137 -57
  325. package/src/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.ts +132 -0
  326. package/src/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.ts +237 -0
  327. package/src/public/public_tx_simulator/dumping_cpp_public_tx_simulator.ts +81 -0
  328. package/src/public/public_tx_simulator/factories.ts +41 -0
  329. package/src/public/public_tx_simulator/index.ts +4 -0
  330. package/src/public/public_tx_simulator/measured_public_tx_simulator.ts +10 -14
  331. package/src/public/public_tx_simulator/public_tx_context.ts +9 -3
  332. package/src/public/public_tx_simulator/public_tx_simulator.ts +163 -193
  333. package/src/public/public_tx_simulator/public_tx_simulator_interface.ts +24 -2
  334. package/src/public/public_tx_simulator/telemetry_public_tx_simulator.ts +3 -3
  335. package/src/public/side_effect_trace.ts +1 -1
  336. package/src/public/side_effect_trace_interface.ts +1 -1
  337. package/src/public/state_manager/nullifiers.ts +1 -1
  338. package/src/public/state_manager/public_storage.ts +1 -1
  339. package/src/public/state_manager/state_manager.ts +16 -30
  340. package/src/public/test_executor_metrics.ts +7 -5
  341. package/dest/public/tx_contract_cache.d.ts +0 -41
  342. package/dest/public/tx_contract_cache.d.ts.map +0 -1
  343. package/dest/public/tx_contract_cache.js +0 -49
  344. package/src/public/tx_contract_cache.ts +0 -69
@@ -0,0 +1,81 @@
1
+ import {
2
+ AvmCircuitInputs,
3
+ AvmCircuitPublicInputs,
4
+ AvmExecutionHints,
5
+ type PublicSimulatorConfig,
6
+ PublicTxResult,
7
+ serializeWithMessagePack,
8
+ } from '@aztec/stdlib/avm';
9
+ import type { MerkleTreeWriteOperations } from '@aztec/stdlib/trees';
10
+ import type { GlobalVariables, Tx, TxHash } from '@aztec/stdlib/tx';
11
+
12
+ import { strict as assert } from 'assert';
13
+ import { mkdirSync, writeFileSync } from 'fs';
14
+ import { join } from 'path';
15
+
16
+ import type { PublicContractsDB } from '../public_db_sources.js';
17
+ import { CppPublicTxSimulator } from './cpp_public_tx_simulator.js';
18
+
19
+ /**
20
+ * A C++ public tx simulator that dumps AVM circuit inputs to disk after simulation.
21
+ * Used during nightly CI runs to collect circuit inputs for benchmarking.
22
+ */
23
+ export class DumpingCppPublicTxSimulator extends CppPublicTxSimulator {
24
+ private readonly outputDir: string;
25
+
26
+ constructor(
27
+ merkleTree: MerkleTreeWriteOperations,
28
+ contractsDB: PublicContractsDB,
29
+ globalVariables: GlobalVariables,
30
+ config: Partial<PublicSimulatorConfig>,
31
+ outputDir: string,
32
+ ) {
33
+ super(merkleTree, contractsDB, globalVariables, config);
34
+ assert(config.collectHints === true, 'collectHints must be enabled to dump AVM circuit inputs');
35
+ assert(config.collectPublicInputs === true, 'collectPublicInputs must be enabled to dump AVM circuit inputs');
36
+ this.outputDir = outputDir;
37
+ }
38
+
39
+ public override async simulate(tx: Tx): Promise<PublicTxResult> {
40
+ const result = await super.simulate(tx);
41
+
42
+ // Dump the circuit inputs after successful simulation
43
+ const txHash = this.computeTxHash(tx);
44
+ this.dumpAvmCircuitInputs(result, txHash);
45
+
46
+ return result;
47
+ }
48
+
49
+ /**
50
+ * Dumps AVM circuit inputs to disk.
51
+ *
52
+ * @param result - The simulation result containing hints and public inputs
53
+ * @param txHash - The transaction hash to use in the filename
54
+ */
55
+ private dumpAvmCircuitInputs(result: PublicTxResult, txHash: TxHash): void {
56
+ try {
57
+ // Ensure the output directory exists
58
+ mkdirSync(this.outputDir, { recursive: true });
59
+
60
+ // Generate filename using transaction hash
61
+ const filename = `avm-circuit-inputs-tx-${txHash.toString()}.bin`;
62
+ const filepath = join(this.outputDir, filename);
63
+
64
+ // Create circuit inputs from the result
65
+ const hints = result.hints ?? AvmExecutionHints.empty();
66
+ const publicInputs = result.publicInputs ?? AvmCircuitPublicInputs.empty();
67
+ const avmCircuitInputs = new AvmCircuitInputs(hints, publicInputs);
68
+
69
+ // Serialize the circuit inputs using MessagePack
70
+ const serialized = serializeWithMessagePack(avmCircuitInputs);
71
+
72
+ // Write to disk
73
+ writeFileSync(filepath, serialized);
74
+
75
+ this.log.debug(`Dumped AVM circuit inputs to ${filepath}`);
76
+ } catch (error) {
77
+ // Non-blocking error handling - log but don't interrupt processing
78
+ this.log.warn(`Failed to dump AVM circuit inputs for tx ${txHash.toString()}: ${error}`);
79
+ }
80
+ }
81
+ }
@@ -0,0 +1,41 @@
1
+ import { PublicSimulatorConfig } from '@aztec/stdlib/avm';
2
+ import type { MerkleTreeWriteOperations } from '@aztec/stdlib/trees';
3
+ import type { GlobalVariables } from '@aztec/stdlib/tx';
4
+ import type { TelemetryClient } from '@aztec/telemetry-client';
5
+
6
+ import type { PublicContractsDB } from '../public_db_sources.js';
7
+ import { TelemetryCppPublicTxSimulator } from './cpp_public_tx_simulator.js';
8
+ import { DumpingCppPublicTxSimulator } from './dumping_cpp_public_tx_simulator.js';
9
+
10
+ /**
11
+ * Creates a public tx simulator for block building.
12
+ * Uses DumpingCppPublicTxSimulator if DUMP_AVM_INPUTS_TO_DIR env var is set (for CI/testing avm circuit),
13
+ * otherwise uses TelemetryCppPublicTxSimulator (for production).
14
+ */
15
+ export function createPublicTxSimulatorForBlockBuilding(
16
+ merkleTree: MerkleTreeWriteOperations,
17
+ contractsDB: PublicContractsDB,
18
+ globalVariables: GlobalVariables,
19
+ telemetryClient: TelemetryClient,
20
+ ) {
21
+ const config = PublicSimulatorConfig.from({
22
+ skipFeeEnforcement: false,
23
+ collectDebugLogs: false,
24
+ collectHints: false,
25
+ collectPublicInputs: false,
26
+ collectStatistics: false,
27
+ collectCallMetadata: false,
28
+ });
29
+
30
+ const dumpDir = process.env.DUMP_AVM_INPUTS_TO_DIR;
31
+ if (dumpDir) {
32
+ // must collect hints and PIs for dumping
33
+ const dumpingConfig = {
34
+ ...config,
35
+ collectHints: true,
36
+ collectPublicInputs: true,
37
+ };
38
+ return new DumpingCppPublicTxSimulator(merkleTree, contractsDB, globalVariables, dumpingConfig, dumpDir);
39
+ }
40
+ return new TelemetryCppPublicTxSimulator(merkleTree, contractsDB, globalVariables, telemetryClient, config);
41
+ }
@@ -1,3 +1,7 @@
1
1
  export * from './public_tx_simulator.js';
2
+ export { CppPublicTxSimulator, TelemetryCppPublicTxSimulator } from './cpp_public_tx_simulator.js';
3
+ export { DumpingCppPublicTxSimulator } from './dumping_cpp_public_tx_simulator.js';
4
+ export { createPublicTxSimulatorForBlockBuilding } from './factories.js';
2
5
  export type { PublicTxSimulatorInterface } from './public_tx_simulator_interface.js';
3
6
  export { TelemetryPublicTxSimulator } from './telemetry_public_tx_simulator.js';
7
+ export type { PublicTxResult, PublicSimulatorConfig as PublicTxSimulatorConfig } from '@aztec/stdlib/avm';
@@ -1,5 +1,6 @@
1
- import type { Fr } from '@aztec/foundation/fields';
1
+ import type { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import { Timer } from '@aztec/foundation/timer';
3
+ import type { PublicSimulatorConfig, PublicTxResult } from '@aztec/stdlib/avm';
3
4
  import type { Gas } from '@aztec/stdlib/gas';
4
5
  import type { AvmSimulationStats } from '@aztec/stdlib/stats';
5
6
  import type { MerkleTreeWriteOperations } from '@aztec/stdlib/trees';
@@ -10,12 +11,7 @@ import type { ExecutorMetricsInterface } from '../executor_metrics_interface.js'
10
11
  import type { PublicContractsDB } from '../public_db_sources.js';
11
12
  import type { PublicPersistableStateManager } from '../state_manager/state_manager.js';
12
13
  import { PublicTxContext } from './public_tx_context.js';
13
- import {
14
- type ProcessedPhase,
15
- type PublicTxResult,
16
- PublicTxSimulator,
17
- type PublicTxSimulatorConfig,
18
- } from './public_tx_simulator.js';
14
+ import { PublicTxSimulator } from './public_tx_simulator.js';
19
15
  import type { MeasuredPublicTxSimulatorInterface } from './public_tx_simulator_interface.js';
20
16
 
21
17
  /**
@@ -27,7 +23,7 @@ export class MeasuredPublicTxSimulator extends PublicTxSimulator implements Meas
27
23
  contractsDB: PublicContractsDB,
28
24
  globalVariables: GlobalVariables,
29
25
  protected readonly metrics: ExecutorMetricsInterface,
30
- config?: Partial<PublicTxSimulatorConfig>,
26
+ config?: Partial<PublicSimulatorConfig>,
31
27
  ) {
32
28
  super(merkleTree, contractsDB, globalVariables, config);
33
29
  }
@@ -38,24 +34,24 @@ export class MeasuredPublicTxSimulator extends PublicTxSimulator implements Meas
38
34
  try {
39
35
  avmResult = await super.simulate(tx);
40
36
  } finally {
41
- this.metrics.stopRecordingTxSimulation(txLabel, avmResult?.revertCode);
37
+ this.metrics.stopRecordingTxSimulation(txLabel, avmResult?.gasUsed, avmResult?.revertCode);
42
38
  }
43
39
  return avmResult;
44
40
  }
45
41
 
46
- protected override async insertNonRevertiblesFromPrivate(context: PublicTxContext, tx: Tx) {
42
+ protected override async insertNonRevertiblesFromPrivate(context: PublicTxContext) {
47
43
  const timer = new Timer();
48
- await super.insertNonRevertiblesFromPrivate(context, tx);
44
+ await super.insertNonRevertiblesFromPrivate(context);
49
45
  this.metrics.recordPrivateEffectsInsertion(timer.us(), 'non-revertible');
50
46
  }
51
47
 
52
- protected override async insertRevertiblesFromPrivate(context: PublicTxContext, tx: Tx) {
48
+ protected override async insertRevertiblesFromPrivate(context: PublicTxContext) {
53
49
  const timer = new Timer();
54
- await super.insertRevertiblesFromPrivate(context, tx);
50
+ await super.insertRevertiblesFromPrivate(context);
55
51
  this.metrics.recordPrivateEffectsInsertion(timer.us(), 'revertible');
56
52
  }
57
53
 
58
- protected override async simulatePhase(phase: TxExecutionPhase, context: PublicTxContext): Promise<ProcessedPhase> {
54
+ protected override async simulatePhase(phase: TxExecutionPhase, context: PublicTxContext) {
59
55
  const timer = new Timer();
60
56
  const result = await super.simulatePhase(phase, context);
61
57
  result.durationMs = timer.ms();
@@ -6,7 +6,7 @@ import {
6
6
  MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
7
7
  } from '@aztec/constants';
8
8
  import { padArrayEnd } from '@aztec/foundation/collection';
9
- import { Fr } from '@aztec/foundation/fields';
9
+ import { Fr } from '@aztec/foundation/curves/bn254';
10
10
  import { type Logger, createLogger } from '@aztec/foundation/log';
11
11
  import {
12
12
  AvmAccumulatedData,
@@ -16,6 +16,7 @@ import {
16
16
  RevertCode,
17
17
  } from '@aztec/stdlib/avm';
18
18
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
19
+ import { AllContractDeploymentData, type ContractDeploymentData } from '@aztec/stdlib/contract';
19
20
  import type { SimulationError } from '@aztec/stdlib/errors';
20
21
  import { computeEffectiveGasFees, computeTransactionFee } from '@aztec/stdlib/fees';
21
22
  import { Gas, GasSettings } from '@aztec/stdlib/gas';
@@ -80,6 +81,8 @@ export class PublicTxContext {
80
81
  private readonly setupCallRequests: PublicCallRequestWithCalldata[],
81
82
  private readonly appLogicCallRequests: PublicCallRequestWithCalldata[],
82
83
  private readonly teardownCallRequests: PublicCallRequestWithCalldata[],
84
+ public readonly nonRevertibleContractDeploymentData: ContractDeploymentData,
85
+ public readonly revertibleContractDeploymentData: ContractDeploymentData,
83
86
  public readonly nonRevertibleAccumulatedDataFromPrivate: PrivateToPublicAccumulatedData,
84
87
  public readonly revertibleAccumulatedDataFromPrivate: PrivateToPublicAccumulatedData,
85
88
  public readonly feePayer: AztecAddress,
@@ -94,9 +97,11 @@ export class PublicTxContext {
94
97
  tx: Tx,
95
98
  globalVariables: GlobalVariables,
96
99
  protocolContracts: ProtocolContracts,
97
- doMerkleOperations: boolean,
98
100
  proverId: Fr,
99
101
  ) {
102
+ const contractDeploymentData = AllContractDeploymentData.fromTx(tx);
103
+ const nonRevertibleContractDeploymentData = contractDeploymentData.getNonRevertibleContractDeploymentData();
104
+ const revertibleContractDeploymentData = contractDeploymentData.getRevertibleContractDeploymentData();
100
105
  const nonRevertibleAccumulatedDataFromPrivate = tx.data.forPublic!.nonRevertibleAccumulatedData;
101
106
 
102
107
  const trace = new SideEffectTrace();
@@ -108,7 +113,6 @@ export class PublicTxContext {
108
113
  treesDB,
109
114
  contractsDB,
110
115
  trace,
111
- doMerkleOperations,
112
116
  firstNullifier,
113
117
  globalVariables.timestamp,
114
118
  );
@@ -132,6 +136,8 @@ export class PublicTxContext {
132
136
  getCallRequestsWithCalldataByPhase(tx, TxExecutionPhase.SETUP),
133
137
  getCallRequestsWithCalldataByPhase(tx, TxExecutionPhase.APP_LOGIC),
134
138
  getCallRequestsWithCalldataByPhase(tx, TxExecutionPhase.TEARDOWN),
139
+ nonRevertibleContractDeploymentData,
140
+ revertibleContractDeploymentData,
135
141
  tx.data.forPublic!.nonRevertibleAccumulatedData,
136
142
  tx.data.forPublic!.revertibleAccumulatedData,
137
143
  tx.data.feePayer,