@aztec/simulator 0.0.1-commit.a89ec08 → 0.0.1-commit.aa0c64f

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 (359) hide show
  1. package/dest/client.d.ts +1 -3
  2. package/dest/client.d.ts.map +1 -1
  3. package/dest/client.js +0 -2
  4. package/dest/private/acvm_wasm.d.ts +1 -1
  5. package/dest/private/acvm_wasm.d.ts.map +1 -1
  6. package/dest/private/acvm_wasm.js +3 -1
  7. package/dest/private/circuit_recording/circuit_recorder.d.ts +36 -23
  8. package/dest/private/circuit_recording/circuit_recorder.d.ts.map +1 -1
  9. package/dest/private/circuit_recording/circuit_recorder.js +65 -69
  10. package/dest/private/circuit_recording/file_circuit_recorder.d.ts +7 -19
  11. package/dest/private/circuit_recording/file_circuit_recorder.d.ts.map +1 -1
  12. package/dest/private/circuit_recording/file_circuit_recorder.js +38 -42
  13. package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts +1 -1
  14. package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts.map +1 -1
  15. package/dest/private/circuit_recording/simulator_recorder_wrapper.js +11 -14
  16. package/dest/public/avm/testing/account_proof_fetcher.d.ts +2 -0
  17. package/dest/public/avm/testing/account_proof_fetcher.d.ts.map +1 -0
  18. package/dest/public/avm/{fixtures → testing}/base_avm_simulation_tester.d.ts +2 -1
  19. package/dest/public/avm/testing/base_avm_simulation_tester.d.ts.map +1 -0
  20. package/dest/public/avm/{fixtures → testing}/base_avm_simulation_tester.js +18 -3
  21. package/dest/public/avm/testing/utils.d.ts +32 -0
  22. package/dest/public/avm/testing/utils.d.ts.map +1 -0
  23. package/dest/public/avm/{fixtures → testing}/utils.js +4 -34
  24. package/dest/public/avm_simulator.d.ts +28 -0
  25. package/dest/public/avm_simulator.d.ts.map +1 -0
  26. package/dest/public/avm_simulator.js +4 -0
  27. package/dest/public/avm_simulator_pool.d.ts +45 -0
  28. package/dest/public/avm_simulator_pool.d.ts.map +1 -0
  29. package/dest/public/avm_simulator_pool.js +197 -0
  30. package/dest/public/cdb/generated/api_types.d.ts +171 -0
  31. package/dest/public/cdb/generated/api_types.d.ts.map +1 -0
  32. package/dest/public/cdb/generated/api_types.js +314 -0
  33. package/dest/public/cdb/generated/server.d.ts +26 -0
  34. package/dest/public/cdb/generated/server.d.ts.map +1 -0
  35. package/dest/public/cdb/generated/server.js +135 -0
  36. package/dest/public/cdb_ipc_server.d.ts +33 -0
  37. package/dest/public/cdb_ipc_server.d.ts.map +1 -0
  38. package/dest/public/cdb_ipc_server.js +153 -0
  39. package/dest/public/contracts_db_checkpoint.d.ts +2 -2
  40. package/dest/public/contracts_db_checkpoint.d.ts.map +1 -1
  41. package/dest/public/contracts_db_checkpoint.js +1 -1
  42. package/dest/public/fixtures/amm_test.js +2 -2
  43. package/dest/public/fixtures/bulk_test.d.ts +1 -1
  44. package/dest/public/fixtures/bulk_test.d.ts.map +1 -1
  45. package/dest/public/fixtures/bulk_test.js +33 -6
  46. package/dest/public/fixtures/custom_bytecode_tester.d.ts +1 -1
  47. package/dest/public/fixtures/custom_bytecode_tester.d.ts.map +1 -1
  48. package/dest/public/fixtures/custom_bytecode_tester.js +2 -2
  49. package/dest/public/fixtures/index.d.ts +2 -4
  50. package/dest/public/fixtures/index.d.ts.map +1 -1
  51. package/dest/public/fixtures/index.js +1 -3
  52. package/dest/public/fixtures/public_processor_test_env.d.ts +30 -0
  53. package/dest/public/fixtures/public_processor_test_env.d.ts.map +1 -0
  54. package/dest/public/fixtures/public_processor_test_env.js +73 -0
  55. package/dest/public/fixtures/public_tx_simulation_tester.d.ts +11 -7
  56. package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
  57. package/dest/public/fixtures/public_tx_simulation_tester.js +33 -16
  58. package/dest/public/fixtures/simple_contract_data_source.js +1 -1
  59. package/dest/public/fixtures/token_test.js +3 -3
  60. package/dest/public/fixtures/utils.d.ts +1 -1
  61. package/dest/public/fixtures/utils.d.ts.map +1 -1
  62. package/dest/public/fixtures/utils.js +14 -13
  63. package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts +11 -4
  64. package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts.map +1 -1
  65. package/dest/public/fuzzing/avm_fuzzer_simulator.js +24 -10
  66. package/dest/public/fuzzing/avm_simulator_bin.js +4 -4
  67. package/dest/public/index.d.ts +5 -2
  68. package/dest/public/index.d.ts.map +1 -1
  69. package/dest/public/index.js +2 -1
  70. package/dest/public/public_db_sources.d.ts +5 -2
  71. package/dest/public/public_db_sources.d.ts.map +1 -1
  72. package/dest/public/public_db_sources.js +10 -4
  73. package/dest/public/public_processor/guarded_merkle_tree.d.ts +4 -3
  74. package/dest/public/public_processor/guarded_merkle_tree.d.ts.map +1 -1
  75. package/dest/public/public_processor/guarded_merkle_tree.js +3 -0
  76. package/dest/public/public_processor/public_processor.d.ts +11 -6
  77. package/dest/public/public_processor/public_processor.d.ts.map +1 -1
  78. package/dest/public/public_processor/public_processor.js +67 -38
  79. package/dest/public/public_processor/public_processor_metrics.d.ts +4 -1
  80. package/dest/public/public_processor/public_processor_metrics.d.ts.map +1 -1
  81. package/dest/public/public_processor/public_processor_metrics.js +8 -0
  82. package/dest/public/public_tx_simulator/dumping_public_tx_simulator.d.ts +17 -0
  83. package/dest/public/public_tx_simulator/dumping_public_tx_simulator.d.ts.map +1 -0
  84. package/dest/public/public_tx_simulator/{dumping_cpp_public_tx_simulator.js → dumping_public_tx_simulator.js} +10 -23
  85. package/dest/public/public_tx_simulator/factories.d.ts +8 -8
  86. package/dest/public/public_tx_simulator/factories.d.ts.map +1 -1
  87. package/dest/public/public_tx_simulator/factories.js +8 -8
  88. package/dest/public/public_tx_simulator/index.d.ts +4 -6
  89. package/dest/public/public_tx_simulator/index.d.ts.map +1 -1
  90. package/dest/public/public_tx_simulator/index.js +2 -4
  91. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +42 -71
  92. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
  93. package/dest/public/public_tx_simulator/public_tx_simulator.js +98 -318
  94. package/dest/public/public_tx_simulator/public_tx_simulator_base.d.ts +24 -0
  95. package/dest/public/public_tx_simulator/public_tx_simulator_base.d.ts.map +1 -0
  96. package/dest/public/public_tx_simulator/public_tx_simulator_base.js +31 -0
  97. package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts +5 -5
  98. package/package.json +22 -19
  99. package/src/client.ts +0 -2
  100. package/src/private/acvm_wasm.ts +4 -1
  101. package/src/private/circuit_recording/circuit_recorder.ts +84 -78
  102. package/src/private/circuit_recording/file_circuit_recorder.ts +38 -48
  103. package/src/private/circuit_recording/simulator_recorder_wrapper.ts +9 -15
  104. package/src/public/avm/{fixtures → testing}/base_avm_simulation_tester.ts +23 -3
  105. package/src/public/avm/{fixtures → testing}/utils.ts +4 -40
  106. package/src/public/avm_simulator.ts +29 -0
  107. package/src/public/avm_simulator_pool.ts +226 -0
  108. package/src/public/cdb/generated/api_types.ts +457 -0
  109. package/src/public/cdb/generated/server.ts +109 -0
  110. package/src/public/cdb_ipc_server.ts +197 -0
  111. package/src/public/contracts_db_checkpoint.ts +1 -1
  112. package/src/public/fixtures/amm_test.ts +2 -2
  113. package/src/public/fixtures/bulk_test.ts +31 -6
  114. package/src/public/fixtures/custom_bytecode_tester.ts +2 -2
  115. package/src/public/fixtures/index.ts +1 -3
  116. package/src/public/fixtures/public_processor_test_env.ts +88 -0
  117. package/src/public/fixtures/public_tx_simulation_tester.ts +41 -32
  118. package/src/public/fixtures/simple_contract_data_source.ts +1 -1
  119. package/src/public/fixtures/token_test.ts +3 -3
  120. package/src/public/fixtures/utils.ts +15 -21
  121. package/src/public/fuzzing/avm_fuzzer_simulator.ts +25 -10
  122. package/src/public/fuzzing/avm_simulator_bin.ts +3 -5
  123. package/src/public/index.ts +7 -3
  124. package/src/public/public_db_sources.ts +13 -4
  125. package/src/public/public_processor/guarded_merkle_tree.ts +5 -2
  126. package/src/public/public_processor/public_processor.ts +89 -46
  127. package/src/public/public_processor/public_processor_metrics.ts +12 -0
  128. package/src/public/public_tx_simulator/{dumping_cpp_public_tx_simulator.ts → dumping_public_tx_simulator.ts} +15 -31
  129. package/src/public/public_tx_simulator/factories.ts +27 -10
  130. package/src/public/public_tx_simulator/index.ts +6 -5
  131. package/src/public/public_tx_simulator/public_tx_simulator.ts +139 -476
  132. package/src/public/public_tx_simulator/public_tx_simulator_base.ts +37 -0
  133. package/src/public/public_tx_simulator/public_tx_simulator_interface.ts +5 -5
  134. package/dest/public/avm/avm_context.d.ts +0 -41
  135. package/dest/public/avm/avm_context.d.ts.map +0 -1
  136. package/dest/public/avm/avm_context.js +0 -44
  137. package/dest/public/avm/avm_contract_call_result.d.ts +0 -32
  138. package/dest/public/avm/avm_contract_call_result.d.ts.map +0 -1
  139. package/dest/public/avm/avm_contract_call_result.js +0 -54
  140. package/dest/public/avm/avm_execution_environment.d.ts +0 -24
  141. package/dest/public/avm/avm_execution_environment.d.ts.map +0 -1
  142. package/dest/public/avm/avm_execution_environment.js +0 -33
  143. package/dest/public/avm/avm_gas.d.ts +0 -44
  144. package/dest/public/avm/avm_gas.d.ts.map +0 -1
  145. package/dest/public/avm/avm_gas.js +0 -195
  146. package/dest/public/avm/avm_machine_state.d.ts +0 -98
  147. package/dest/public/avm/avm_machine_state.d.ts.map +0 -1
  148. package/dest/public/avm/avm_machine_state.js +0 -110
  149. package/dest/public/avm/avm_memory_types.d.ts +0 -275
  150. package/dest/public/avm/avm_memory_types.d.ts.map +0 -1
  151. package/dest/public/avm/avm_memory_types.js +0 -354
  152. package/dest/public/avm/avm_simulator.d.ts +0 -41
  153. package/dest/public/avm/avm_simulator.d.ts.map +0 -1
  154. package/dest/public/avm/avm_simulator.js +0 -192
  155. package/dest/public/avm/avm_simulator_interface.d.ts +0 -9
  156. package/dest/public/avm/avm_simulator_interface.d.ts.map +0 -1
  157. package/dest/public/avm/avm_simulator_interface.js +0 -3
  158. package/dest/public/avm/calldata.d.ts +0 -51
  159. package/dest/public/avm/calldata.d.ts.map +0 -1
  160. package/dest/public/avm/calldata.js +0 -63
  161. package/dest/public/avm/errors.d.ts +0 -104
  162. package/dest/public/avm/errors.d.ts.map +0 -1
  163. package/dest/public/avm/errors.js +0 -141
  164. package/dest/public/avm/fixtures/account_proof_fetcher.d.ts +0 -2
  165. package/dest/public/avm/fixtures/account_proof_fetcher.d.ts.map +0 -1
  166. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts +0 -22
  167. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts.map +0 -1
  168. package/dest/public/avm/fixtures/avm_simulation_tester.js +0 -84
  169. package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts.map +0 -1
  170. package/dest/public/avm/fixtures/initializers.d.ts +0 -42
  171. package/dest/public/avm/fixtures/initializers.d.ts.map +0 -1
  172. package/dest/public/avm/fixtures/initializers.js +0 -45
  173. package/dest/public/avm/fixtures/utils.d.ts +0 -39
  174. package/dest/public/avm/fixtures/utils.d.ts.map +0 -1
  175. package/dest/public/avm/index.d.ts +0 -2
  176. package/dest/public/avm/index.d.ts.map +0 -1
  177. package/dest/public/avm/index.js +0 -1
  178. package/dest/public/avm/opcodes/accrued_substate.d.ts +0 -74
  179. package/dest/public/avm/opcodes/accrued_substate.d.ts.map +0 -1
  180. package/dest/public/avm/opcodes/accrued_substate.js +0 -254
  181. package/dest/public/avm/opcodes/addressing_mode.d.ts +0 -31
  182. package/dest/public/avm/opcodes/addressing_mode.d.ts.map +0 -1
  183. package/dest/public/avm/opcodes/addressing_mode.js +0 -94
  184. package/dest/public/avm/opcodes/arithmetic.d.ts +0 -49
  185. package/dest/public/avm/opcodes/arithmetic.d.ts.map +0 -1
  186. package/dest/public/avm/opcodes/arithmetic.js +0 -97
  187. package/dest/public/avm/opcodes/bitwise.d.ts +0 -42
  188. package/dest/public/avm/opcodes/bitwise.d.ts.map +0 -1
  189. package/dest/public/avm/opcodes/bitwise.js +0 -99
  190. package/dest/public/avm/opcodes/comparators.d.ts +0 -25
  191. package/dest/public/avm/opcodes/comparators.d.ts.map +0 -1
  192. package/dest/public/avm/opcodes/comparators.js +0 -43
  193. package/dest/public/avm/opcodes/contract.d.ts +0 -20
  194. package/dest/public/avm/opcodes/contract.d.ts.map +0 -1
  195. package/dest/public/avm/opcodes/contract.js +0 -65
  196. package/dest/public/avm/opcodes/control_flow.d.ts +0 -41
  197. package/dest/public/avm/opcodes/control_flow.d.ts.map +0 -1
  198. package/dest/public/avm/opcodes/control_flow.js +0 -107
  199. package/dest/public/avm/opcodes/conversion.d.ts +0 -18
  200. package/dest/public/avm/opcodes/conversion.d.ts.map +0 -1
  201. package/dest/public/avm/opcodes/conversion.js +0 -333
  202. package/dest/public/avm/opcodes/ec_add.d.ts +0 -19
  203. package/dest/public/avm/opcodes/ec_add.d.ts.map +0 -1
  204. package/dest/public/avm/opcodes/ec_add.js +0 -93
  205. package/dest/public/avm/opcodes/environment_getters.d.ts +0 -28
  206. package/dest/public/avm/opcodes/environment_getters.d.ts.map +0 -1
  207. package/dest/public/avm/opcodes/environment_getters.js +0 -77
  208. package/dest/public/avm/opcodes/external_calls.d.ts +0 -59
  209. package/dest/public/avm/opcodes/external_calls.d.ts.map +0 -1
  210. package/dest/public/avm/opcodes/external_calls.js +0 -210
  211. package/dest/public/avm/opcodes/hashing.d.ts +0 -36
  212. package/dest/public/avm/opcodes/hashing.d.ts.map +0 -1
  213. package/dest/public/avm/opcodes/hashing.js +0 -119
  214. package/dest/public/avm/opcodes/index.d.ts +0 -16
  215. package/dest/public/avm/opcodes/index.d.ts.map +0 -1
  216. package/dest/public/avm/opcodes/index.js +0 -15
  217. package/dest/public/avm/opcodes/instruction.d.ts +0 -74
  218. package/dest/public/avm/opcodes/instruction.d.ts.map +0 -1
  219. package/dest/public/avm/opcodes/instruction.js +0 -95
  220. package/dest/public/avm/opcodes/instruction_impl.d.ts +0 -19
  221. package/dest/public/avm/opcodes/instruction_impl.d.ts.map +0 -1
  222. package/dest/public/avm/opcodes/instruction_impl.js +0 -30
  223. package/dest/public/avm/opcodes/memory.d.ts +0 -74
  224. package/dest/public/avm/opcodes/memory.d.ts.map +0 -1
  225. package/dest/public/avm/opcodes/memory.js +0 -257
  226. package/dest/public/avm/opcodes/misc.d.ts +0 -18
  227. package/dest/public/avm/opcodes/misc.d.ts.map +0 -1
  228. package/dest/public/avm/opcodes/misc.js +0 -73
  229. package/dest/public/avm/opcodes/storage.d.ts +0 -25
  230. package/dest/public/avm/opcodes/storage.d.ts.map +0 -1
  231. package/dest/public/avm/opcodes/storage.js +0 -78
  232. package/dest/public/avm/revert_reason.d.ts +0 -18
  233. package/dest/public/avm/revert_reason.d.ts.map +0 -1
  234. package/dest/public/avm/revert_reason.js +0 -39
  235. package/dest/public/avm/serialization/buffer_cursor.d.ts +0 -26
  236. package/dest/public/avm/serialization/buffer_cursor.d.ts.map +0 -1
  237. package/dest/public/avm/serialization/buffer_cursor.js +0 -99
  238. package/dest/public/avm/serialization/bytecode_serialization.d.ts +0 -17
  239. package/dest/public/avm/serialization/bytecode_serialization.d.ts.map +0 -1
  240. package/dest/public/avm/serialization/bytecode_serialization.js +0 -336
  241. package/dest/public/avm/serialization/instruction_serialization.d.ts +0 -114
  242. package/dest/public/avm/serialization/instruction_serialization.d.ts.map +0 -1
  243. package/dest/public/avm/serialization/instruction_serialization.js +0 -261
  244. package/dest/public/avm/test_utils.d.ts +0 -15
  245. package/dest/public/avm/test_utils.d.ts.map +0 -1
  246. package/dest/public/avm/test_utils.js +0 -44
  247. package/dest/public/debug_fn_name.d.ts +0 -18
  248. package/dest/public/debug_fn_name.d.ts.map +0 -1
  249. package/dest/public/debug_fn_name.js +0 -37
  250. package/dest/public/fixtures/custom_bytecode_tests.d.ts +0 -12
  251. package/dest/public/fixtures/custom_bytecode_tests.d.ts.map +0 -1
  252. package/dest/public/fixtures/custom_bytecode_tests.js +0 -174
  253. package/dest/public/fixtures/minimal_public_tx.d.ts +0 -4
  254. package/dest/public/fixtures/minimal_public_tx.d.ts.map +0 -1
  255. package/dest/public/fixtures/minimal_public_tx.js +0 -19
  256. package/dest/public/fixtures/opcode_spammer.d.ts +0 -122
  257. package/dest/public/fixtures/opcode_spammer.d.ts.map +0 -1
  258. package/dest/public/fixtures/opcode_spammer.js +0 -1653
  259. package/dest/public/hinting_db_sources.d.ts +0 -80
  260. package/dest/public/hinting_db_sources.d.ts.map +0 -1
  261. package/dest/public/hinting_db_sources.js +0 -356
  262. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts +0 -19
  263. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts.map +0 -1
  264. package/dest/public/public_tx_simulator/contract_provider_for_cpp.js +0 -99
  265. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts +0 -53
  266. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts.map +0 -1
  267. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.js +0 -131
  268. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts +0 -42
  269. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts.map +0 -1
  270. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.js +0 -86
  271. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts +0 -30
  272. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts.map +0 -1
  273. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.js +0 -171
  274. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts +0 -23
  275. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts.map +0 -1
  276. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts +0 -31
  277. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts.map +0 -1
  278. package/dest/public/public_tx_simulator/measured_public_tx_simulator.js +0 -51
  279. package/dest/public/public_tx_simulator/public_tx_context.d.ts +0 -131
  280. package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +0 -1
  281. package/dest/public/public_tx_simulator/public_tx_context.js +0 -294
  282. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts +0 -21
  283. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts.map +0 -1
  284. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.js +0 -415
  285. package/dest/public/side_effect_trace.d.ts +0 -87
  286. package/dest/public/side_effect_trace.d.ts.map +0 -1
  287. package/dest/public/side_effect_trace.js +0 -199
  288. package/dest/public/side_effect_trace_interface.d.ts +0 -22
  289. package/dest/public/side_effect_trace_interface.d.ts.map +0 -1
  290. package/dest/public/side_effect_trace_interface.js +0 -1
  291. package/dest/public/state_manager/index.d.ts +0 -2
  292. package/dest/public/state_manager/index.d.ts.map +0 -1
  293. package/dest/public/state_manager/index.js +0 -1
  294. package/dest/public/state_manager/nullifiers.d.ts +0 -61
  295. package/dest/public/state_manager/nullifiers.d.ts.map +0 -1
  296. package/dest/public/state_manager/nullifiers.js +0 -92
  297. package/dest/public/state_manager/public_storage.d.ts +0 -66
  298. package/dest/public/state_manager/public_storage.d.ts.map +0 -1
  299. package/dest/public/state_manager/public_storage.js +0 -145
  300. package/dest/public/state_manager/state_manager.d.ts +0 -170
  301. package/dest/public/state_manager/state_manager.d.ts.map +0 -1
  302. package/dest/public/state_manager/state_manager.js +0 -402
  303. package/src/public/avm/avm_context.ts +0 -61
  304. package/src/public/avm/avm_contract_call_result.ts +0 -69
  305. package/src/public/avm/avm_execution_environment.ts +0 -51
  306. package/src/public/avm/avm_gas.ts +0 -183
  307. package/src/public/avm/avm_machine_state.ts +0 -170
  308. package/src/public/avm/avm_memory_types.ts +0 -440
  309. package/src/public/avm/avm_simulator.ts +0 -279
  310. package/src/public/avm/avm_simulator_interface.ts +0 -8
  311. package/src/public/avm/calldata.ts +0 -100
  312. package/src/public/avm/errors.ts +0 -177
  313. package/src/public/avm/fixtures/avm_simulation_tester.ts +0 -122
  314. package/src/public/avm/fixtures/initializers.ts +0 -103
  315. package/src/public/avm/index.ts +0 -1
  316. package/src/public/avm/opcodes/accrued_substate.ts +0 -285
  317. package/src/public/avm/opcodes/addressing_mode.ts +0 -111
  318. package/src/public/avm/opcodes/arithmetic.ts +0 -129
  319. package/src/public/avm/opcodes/bitwise.ts +0 -113
  320. package/src/public/avm/opcodes/comparators.ts +0 -55
  321. package/src/public/avm/opcodes/contract.ts +0 -72
  322. package/src/public/avm/opcodes/control_flow.ts +0 -123
  323. package/src/public/avm/opcodes/conversion.ts +0 -104
  324. package/src/public/avm/opcodes/ec_add.ts +0 -105
  325. package/src/public/avm/opcodes/environment_getters.ts +0 -87
  326. package/src/public/avm/opcodes/external_calls.ts +0 -262
  327. package/src/public/avm/opcodes/hashing.ts +0 -151
  328. package/src/public/avm/opcodes/index.ts +0 -15
  329. package/src/public/avm/opcodes/instruction.ts +0 -136
  330. package/src/public/avm/opcodes/instruction_impl.ts +0 -36
  331. package/src/public/avm/opcodes/memory.ts +0 -293
  332. package/src/public/avm/opcodes/misc.ts +0 -102
  333. package/src/public/avm/opcodes/storage.ts +0 -95
  334. package/src/public/avm/revert_reason.ts +0 -58
  335. package/src/public/avm/serialization/buffer_cursor.ts +0 -118
  336. package/src/public/avm/serialization/bytecode_serialization.ts +0 -215
  337. package/src/public/avm/serialization/instruction_serialization.ts +0 -249
  338. package/src/public/avm/test_utils.ts +0 -64
  339. package/src/public/debug_fn_name.ts +0 -52
  340. package/src/public/fixtures/custom_bytecode_tests.ts +0 -228
  341. package/src/public/fixtures/minimal_public_tx.ts +0 -26
  342. package/src/public/fixtures/opcode_spammer.ts +0 -1717
  343. package/src/public/hinting_db_sources.ts +0 -609
  344. package/src/public/public_tx_simulator/contract_provider_for_cpp.ts +0 -125
  345. package/src/public/public_tx_simulator/cpp_public_tx_simulator.ts +0 -210
  346. package/src/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.ts +0 -134
  347. package/src/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.ts +0 -239
  348. package/src/public/public_tx_simulator/measured_public_tx_simulator.ts +0 -105
  349. package/src/public/public_tx_simulator/public_tx_context.ts +0 -478
  350. package/src/public/public_tx_simulator/telemetry_public_tx_simulator.ts +0 -63
  351. package/src/public/side_effect_trace.ts +0 -293
  352. package/src/public/side_effect_trace_interface.ts +0 -28
  353. package/src/public/state_manager/index.ts +0 -1
  354. package/src/public/state_manager/nullifiers.ts +0 -103
  355. package/src/public/state_manager/public_storage.ts +0 -174
  356. package/src/public/state_manager/state_manager.ts +0 -569
  357. /package/dest/public/avm/{fixtures → testing}/account_proof_fetcher.js +0 -0
  358. /package/src/public/avm/{fixtures → testing}/account_proof.json +0 -0
  359. /package/src/public/avm/{fixtures → testing}/account_proof_fetcher.ts +0 -0
@@ -0,0 +1,33 @@
1
+ import { type ContractInstanceWithAddress } from '@aztec/stdlib/contract';
2
+ import type { CdbAddContracts, CdbAddContractsResponse, CdbCommitCheckpoint, CdbCommitCheckpointResponse, CdbCreateCheckpoint, CdbCreateCheckpointResponse, CdbGetBytecodeCommitment, CdbGetBytecodeCommitmentResponse, CdbGetContractClass, CdbGetContractClassResponse, CdbGetContractInstance, CdbGetContractInstanceResponse, CdbGetDebugFunctionName, CdbGetDebugFunctionNameResponse, CdbRevertCheckpoint, CdbRevertCheckpointResponse } from './cdb/generated/api_types.js';
3
+ import { type Handler as CdbHandler } from './cdb/generated/server.js';
4
+ import type { PublicContractsDB } from './public_db_sources.js';
5
+ /** Serializes contract instances to the AVM CDB wire shape. */
6
+ export declare function serializeContractInstance(instance: ContractInstanceWithAddress): Record<string, unknown>;
7
+ /** Routes AVM CDB IPC requests to registered PublicContractsDB forks. */
8
+ export declare class CdbIpcServer implements CdbHandler {
9
+ readonly ipcPath: string;
10
+ private server;
11
+ private log;
12
+ /** Maps WSDB fork IDs to contracts DB/timestamp pairs for concurrent simulations. */
13
+ private forks;
14
+ constructor();
15
+ /** Register a PublicContractsDB for a given WSDB fork ID. */
16
+ registerFork(forkId: number, contractsDB: PublicContractsDB, timestamp: bigint): void;
17
+ /** Unregister a fork's contracts DB (call after simulation completes). */
18
+ unregisterFork(forkId: number): void;
19
+ /** Close the server and all active connections. */
20
+ close(): Promise<void>;
21
+ [Symbol.asyncDispose](): Promise<void>;
22
+ /** Look up the contracts DB for a given fork ID, throwing if not registered. */
23
+ private getFork;
24
+ getContractInstance(command: CdbGetContractInstance): Promise<CdbGetContractInstanceResponse>;
25
+ getContractClass(command: CdbGetContractClass): Promise<CdbGetContractClassResponse>;
26
+ getBytecodeCommitment(command: CdbGetBytecodeCommitment): Promise<CdbGetBytecodeCommitmentResponse>;
27
+ getDebugFunctionName(command: CdbGetDebugFunctionName): Promise<CdbGetDebugFunctionNameResponse>;
28
+ addContracts(command: CdbAddContracts): Promise<CdbAddContractsResponse>;
29
+ createCheckpoint(command: CdbCreateCheckpoint): Promise<CdbCreateCheckpointResponse>;
30
+ commitCheckpoint(command: CdbCommitCheckpoint): Promise<CdbCommitCheckpointResponse>;
31
+ revertCheckpoint(command: CdbRevertCheckpoint): Promise<CdbRevertCheckpointResponse>;
32
+ }
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RiX2lwY19zZXJ2ZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvY2RiX2lwY19zZXJ2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBYUEsT0FBTyxFQUEwQixLQUFLLDJCQUEyQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFPbEcsT0FBTyxLQUFLLEVBQ1YsZUFBZSxFQUNmLHVCQUF1QixFQUN2QixtQkFBbUIsRUFDbkIsMkJBQTJCLEVBQzNCLG1CQUFtQixFQUNuQiwyQkFBMkIsRUFDM0Isd0JBQXdCLEVBQ3hCLGdDQUFnQyxFQUNoQyxtQkFBbUIsRUFDbkIsMkJBQTJCLEVBQzNCLHNCQUFzQixFQUN0Qiw4QkFBOEIsRUFDOUIsdUJBQXVCLEVBQ3ZCLCtCQUErQixFQUMvQixtQkFBbUIsRUFDbkIsMkJBQTJCLEVBQzVCLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFFLEtBQUssT0FBTyxJQUFJLFVBQVUsRUFBaUIsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RixPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBV2hFLCtEQUErRDtBQUMvRCx3QkFBZ0IseUJBQXlCLENBQUMsUUFBUSxFQUFFLDJCQUEyQixHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBb0J4RztBQWlCRCx5RUFBeUU7QUFDekUscUJBQWEsWUFBYSxZQUFXLFVBQVU7SUFDN0MsU0FBZ0IsT0FBTyxFQUFFLE1BQU0sQ0FBQztJQUNoQyxPQUFPLENBQUMsTUFBTSxDQUF3QjtJQUN0QyxPQUFPLENBQUMsR0FBRyxDQUFTO0lBQ3BCLHFGQUFxRjtJQUNyRixPQUFPLENBQUMsS0FBSyxDQUFtRTtJQUVoRixjQVVDO0lBRUQsNkRBQTZEO0lBQzdELFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FFcEY7SUFFRCwwRUFBMEU7SUFDMUUsY0FBYyxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsSUFBSSxDQUVuQztJQUVELG1EQUFtRDtJQUM3QyxLQUFLLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUczQjtJQUVLLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFM0M7SUFFRCxnRkFBZ0Y7SUFDaEYsT0FBTyxDQUFDLE9BQU87SUFXVCxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsc0JBQXNCLEdBQUcsT0FBTyxDQUFDLDhCQUE4QixDQUFDLENBS2xHO0lBRUssZ0JBQWdCLENBQUMsT0FBTyxFQUFFLG1CQUFtQixHQUFHLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQUt6RjtJQUVLLHFCQUFxQixDQUFDLE9BQU8sRUFBRSx3QkFBd0IsR0FBRyxPQUFPLENBQUMsZ0NBQWdDLENBQUMsQ0FLeEc7SUFFSyxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsdUJBQXVCLEdBQUcsT0FBTyxDQUFDLCtCQUErQixDQUFDLENBT3JHO0lBRUQsWUFBWSxDQUFDLE9BQU8sRUFBRSxlQUFlLEdBQUcsT0FBTyxDQUFDLHVCQUF1QixDQUFDLENBT3ZFO0lBRUQsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLG1CQUFtQixHQUFHLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQUluRjtJQUVELGdCQUFnQixDQUFDLE9BQU8sRUFBRSxtQkFBbUIsR0FBRyxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FJbkY7SUFFRCxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsbUJBQW1CLEdBQUcsT0FBTyxDQUFDLDJCQUEyQixDQUFDLENBSW5GO0NBQ0YifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cdb_ipc_server.d.ts","sourceRoot":"","sources":["../../src/public/cdb_ipc_server.ts"],"names":[],"mappings":"AAaA,OAAO,EAA0B,KAAK,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAOlG,OAAO,KAAK,EACV,eAAe,EACf,uBAAuB,EACvB,mBAAmB,EACnB,2BAA2B,EAC3B,mBAAmB,EACnB,2BAA2B,EAC3B,wBAAwB,EACxB,gCAAgC,EAChC,mBAAmB,EACnB,2BAA2B,EAC3B,sBAAsB,EACtB,8BAA8B,EAC9B,uBAAuB,EACvB,+BAA+B,EAC/B,mBAAmB,EACnB,2BAA2B,EAC5B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,KAAK,OAAO,IAAI,UAAU,EAAiB,MAAM,2BAA2B,CAAC;AACtF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAWhE,+DAA+D;AAC/D,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,2BAA2B,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoBxG;AAiBD,yEAAyE;AACzE,qBAAa,YAAa,YAAW,UAAU;IAC7C,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,GAAG,CAAS;IACpB,qFAAqF;IACrF,OAAO,CAAC,KAAK,CAAmE;IAEhF,cAUC;IAED,6DAA6D;IAC7D,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAEpF;IAED,0EAA0E;IAC1E,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAEnC;IAED,mDAAmD;IAC7C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAG3B;IAEK,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3C;IAED,gFAAgF;IAChF,OAAO,CAAC,OAAO;IAWT,mBAAmB,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAKlG;IAEK,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAKzF;IAEK,qBAAqB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,gCAAgC,CAAC,CAKxG;IAEK,oBAAoB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAOrG;IAED,YAAY,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAOvE;IAED,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAInF;IAED,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAInF;IAED,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAInF;CACF"}
@@ -0,0 +1,153 @@
1
+ /**
2
+ * UDS server for AVM CDB requests.
3
+ *
4
+ * Transport (socket, framing, per-connection response ordering) is handled by the shared
5
+ * `UdsIpcServer` from `@aztec/ipc-runtime`; message dispatch comes from the generated CDB
6
+ * server. This class only implements the generated handler interface and routes requests to
7
+ * PublicContractsDB instances by fork ID.
8
+ */ var _computedKey;
9
+ import { Fr } from '@aztec/foundation/curves/bn254';
10
+ import { createLogger } from '@aztec/foundation/log';
11
+ import { UdsIpcServer } from '@aztec/ipc-runtime';
12
+ import { FunctionSelector } from '@aztec/stdlib/abi';
13
+ import { AztecAddress } from '@aztec/stdlib/aztec-address';
14
+ import { ContractDeploymentData } from '@aztec/stdlib/contract';
15
+ import { Decoder, Encoder } from 'msgpackr';
16
+ import * as os from 'node:os';
17
+ import * as path from 'node:path';
18
+ import { threadId } from 'node:worker_threads';
19
+ import { handleRequest } from './cdb/generated/server.js';
20
+ const encoder = new Encoder({
21
+ useRecords: false
22
+ });
23
+ const decoder = new Decoder({
24
+ useRecords: false
25
+ });
26
+ let instanceCounter = 0;
27
+ function toFieldBuffer(field) {
28
+ return field.toBuffer();
29
+ }
30
+ /** Serializes contract instances to the AVM CDB wire shape. */ export function serializeContractInstance(instance) {
31
+ return {
32
+ salt: toFieldBuffer(instance.salt),
33
+ deployer: toFieldBuffer(instance.deployer),
34
+ currentContractClassId: toFieldBuffer(instance.currentContractClassId),
35
+ originalContractClassId: toFieldBuffer(instance.originalContractClassId),
36
+ initializationHash: toFieldBuffer(instance.initializationHash),
37
+ immutablesHash: toFieldBuffer(instance.immutablesHash),
38
+ publicKeys: {
39
+ npkMHash: toFieldBuffer(instance.publicKeys.npkMHash),
40
+ ivpkM: {
41
+ x: toFieldBuffer(instance.publicKeys.ivpkM.x),
42
+ y: toFieldBuffer(instance.publicKeys.ivpkM.y)
43
+ },
44
+ ovpkMHash: toFieldBuffer(instance.publicKeys.ovpkMHash),
45
+ tpkMHash: toFieldBuffer(instance.publicKeys.tpkMHash),
46
+ mspkMHash: toFieldBuffer(instance.publicKeys.mspkMHash),
47
+ fbpkMHash: toFieldBuffer(instance.publicKeys.fbpkMHash)
48
+ }
49
+ };
50
+ }
51
+ /** Serializes contract classes to the AVM CDB wire shape. */ function serializeContractClass(contractClass) {
52
+ return {
53
+ id: toFieldBuffer(contractClass.id),
54
+ artifactHash: toFieldBuffer(contractClass.artifactHash),
55
+ privateFunctionsRoot: toFieldBuffer(contractClass.privateFunctionsRoot),
56
+ packedBytecode: contractClass.packedBytecode
57
+ };
58
+ }
59
+ _computedKey = Symbol.asyncDispose;
60
+ /** Routes AVM CDB IPC requests to registered PublicContractsDB forks. */ export class CdbIpcServer {
61
+ ipcPath;
62
+ server;
63
+ log;
64
+ /** Maps WSDB fork IDs to contracts DB/timestamp pairs for concurrent simulations. */ forks = new Map();
65
+ constructor(){
66
+ this.log = createLogger('cdb-ipc-server');
67
+ this.ipcPath = path.join(os.tmpdir(), `cdb-ts-${process.pid}-${threadId}-${instanceCounter++}.sock`);
68
+ // Listen asynchronously; the C++ AVM retries connecting until the socket is up.
69
+ this.server = UdsIpcServer.listen(this.ipcPath, (_clientId, request)=>handleRequest(this, request));
70
+ this.server.then(()=>this.log.debug(`CDB IPC server listening on ${this.ipcPath}`), (err)=>this.log.error(`CDB IPC server failed to listen on ${this.ipcPath}`, {
71
+ err
72
+ }));
73
+ }
74
+ /** Register a PublicContractsDB for a given WSDB fork ID. */ registerFork(forkId, contractsDB, timestamp) {
75
+ this.forks.set(forkId, {
76
+ db: contractsDB,
77
+ timestamp
78
+ });
79
+ }
80
+ /** Unregister a fork's contracts DB (call after simulation completes). */ unregisterFork(forkId) {
81
+ this.forks.delete(forkId);
82
+ }
83
+ /** Close the server and all active connections. */ async close() {
84
+ const server = await this.server.catch(()=>undefined);
85
+ await server?.close();
86
+ }
87
+ async [_computedKey]() {
88
+ await this.close();
89
+ }
90
+ /** Look up the contracts DB for a given fork ID, throwing if not registered. */ getFork(forkId) {
91
+ const fork = this.forks.get(forkId);
92
+ if (!fork) {
93
+ const registered = Array.from(this.forks.keys()).sort((a, b)=>a - b);
94
+ throw new Error(`CDB server: no contracts DB registered for forkId ${forkId} (registered=[${registered.join(',')}])`);
95
+ }
96
+ return fork;
97
+ }
98
+ async getContractInstance(command) {
99
+ const { db, timestamp } = this.getFork(command.forkId);
100
+ const address = AztecAddress.fromBuffer(Buffer.from(command.address));
101
+ const instance = await db.getContractInstance(address, timestamp);
102
+ return {
103
+ instance: instance ? encoder.encode(serializeContractInstance(instance)) : null
104
+ };
105
+ }
106
+ async getContractClass(command) {
107
+ const { db } = this.getFork(command.forkId);
108
+ const classId = Fr.fromBuffer(Buffer.from(command.classId));
109
+ const contractClass = await db.getContractClass(classId);
110
+ return {
111
+ contractClass: contractClass ? encoder.encode(serializeContractClass(contractClass)) : null
112
+ };
113
+ }
114
+ async getBytecodeCommitment(command) {
115
+ const { db } = this.getFork(command.forkId);
116
+ const classId = Fr.fromBuffer(Buffer.from(command.classId));
117
+ const commitment = await db.getBytecodeCommitment(classId);
118
+ return {
119
+ commitment: commitment ? toFieldBuffer(commitment) : null
120
+ };
121
+ }
122
+ async getDebugFunctionName(command) {
123
+ const { db } = this.getFork(command.forkId);
124
+ const address = AztecAddress.fromBuffer(Buffer.from(command.address));
125
+ const selectorField = Fr.fromBuffer(Buffer.from(command.selector));
126
+ const selector = FunctionSelector.fromFieldOrUndefined(selectorField);
127
+ const name = selector ? await db.getDebugFunctionName(address, selector) : undefined;
128
+ return {
129
+ name: name ?? null
130
+ };
131
+ }
132
+ addContracts(command) {
133
+ const { db } = this.getFork(command.forkId);
134
+ const contractDeploymentData = ContractDeploymentData.fromPlainObject(decoder.decode(command.contractDeploymentData));
135
+ db.addContractsFromLogs(contractDeploymentData);
136
+ return Promise.resolve({});
137
+ }
138
+ createCheckpoint(command) {
139
+ const { db } = this.getFork(command.forkId);
140
+ db.createCheckpoint();
141
+ return Promise.resolve({});
142
+ }
143
+ commitCheckpoint(command) {
144
+ const { db } = this.getFork(command.forkId);
145
+ db.commitCheckpoint();
146
+ return Promise.resolve({});
147
+ }
148
+ revertCheckpoint(command) {
149
+ const { db } = this.getFork(command.forkId);
150
+ db.revertCheckpoint();
151
+ return Promise.resolve({});
152
+ }
153
+ }
@@ -11,6 +11,6 @@ export declare class ContractsDbCheckpoint {
11
11
  getInstance(address: AztecAddress): ContractInstanceWithAddress | undefined;
12
12
  getClass(classId: Fr): ContractClassPublic | undefined;
13
13
  getBytecodeCommitment(classId: Fr): Fr | undefined;
14
- deepCopy(): ContractsDbCheckpoint;
14
+ fork(): ContractsDbCheckpoint;
15
15
  }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RzX2RiX2NoZWNrcG9pbnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvY29udHJhY3RzX2RiX2NoZWNrcG9pbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUUvRixxQkFBYSxxQkFBcUI7SUFDaEMsT0FBTyxDQUFDLFNBQVMsQ0FBdUQ7SUFDeEUsT0FBTyxDQUFDLE9BQU8sQ0FBK0M7SUFDOUQsT0FBTyxDQUFDLG1CQUFtQixDQUE4QjtJQUVsRCxXQUFXLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsMkJBQTJCLEdBQUcsSUFBSSxDQUVyRjtJQUVNLFFBQVEsQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsR0FBRyxJQUFJLENBRXJFO0lBRU0scUJBQXFCLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FFOUQ7SUFFTSxXQUFXLENBQUMsT0FBTyxFQUFFLFlBQVksR0FBRywyQkFBMkIsR0FBRyxTQUFTLENBRWpGO0lBRU0sUUFBUSxDQUFDLE9BQU8sRUFBRSxFQUFFLEdBQUcsbUJBQW1CLEdBQUcsU0FBUyxDQUU1RDtJQUVNLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLFNBQVMsQ0FFeEQ7SUFFTSxRQUFRLElBQUkscUJBQXFCLENBTXZDO0NBQ0YifQ==
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RzX2RiX2NoZWNrcG9pbnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvY29udHJhY3RzX2RiX2NoZWNrcG9pbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUUvRixxQkFBYSxxQkFBcUI7SUFDaEMsT0FBTyxDQUFDLFNBQVMsQ0FBdUQ7SUFDeEUsT0FBTyxDQUFDLE9BQU8sQ0FBK0M7SUFDOUQsT0FBTyxDQUFDLG1CQUFtQixDQUE4QjtJQUVsRCxXQUFXLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsMkJBQTJCLEdBQUcsSUFBSSxDQUVyRjtJQUVNLFFBQVEsQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsR0FBRyxJQUFJLENBRXJFO0lBRU0scUJBQXFCLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FFOUQ7SUFFTSxXQUFXLENBQUMsT0FBTyxFQUFFLFlBQVksR0FBRywyQkFBMkIsR0FBRyxTQUFTLENBRWpGO0lBRU0sUUFBUSxDQUFDLE9BQU8sRUFBRSxFQUFFLEdBQUcsbUJBQW1CLEdBQUcsU0FBUyxDQUU1RDtJQUVNLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLFNBQVMsQ0FFeEQ7SUFFTSxJQUFJLElBQUkscUJBQXFCLENBTW5DO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"contracts_db_checkpoint.d.ts","sourceRoot":"","sources":["../../src/public/contracts_db_checkpoint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAE/F,qBAAa,qBAAqB;IAChC,OAAO,CAAC,SAAS,CAAuD;IACxE,OAAO,CAAC,OAAO,CAA+C;IAC9D,OAAO,CAAC,mBAAmB,CAA8B;IAElD,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,2BAA2B,GAAG,IAAI,CAErF;IAEM,QAAQ,CAAC,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,mBAAmB,GAAG,IAAI,CAErE;IAEM,qBAAqB,CAAC,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,GAAG,IAAI,CAE9D;IAEM,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,2BAA2B,GAAG,SAAS,CAEjF;IAEM,QAAQ,CAAC,OAAO,EAAE,EAAE,GAAG,mBAAmB,GAAG,SAAS,CAE5D;IAEM,qBAAqB,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,SAAS,CAExD;IAEM,QAAQ,IAAI,qBAAqB,CAMvC;CACF"}
1
+ {"version":3,"file":"contracts_db_checkpoint.d.ts","sourceRoot":"","sources":["../../src/public/contracts_db_checkpoint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAE/F,qBAAa,qBAAqB;IAChC,OAAO,CAAC,SAAS,CAAuD;IACxE,OAAO,CAAC,OAAO,CAA+C;IAC9D,OAAO,CAAC,mBAAmB,CAA8B;IAElD,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,2BAA2B,GAAG,IAAI,CAErF;IAEM,QAAQ,CAAC,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,mBAAmB,GAAG,IAAI,CAErE;IAEM,qBAAqB,CAAC,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,GAAG,IAAI,CAE9D;IAEM,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,2BAA2B,GAAG,SAAS,CAEjF;IAEM,QAAQ,CAAC,OAAO,EAAE,EAAE,GAAG,mBAAmB,GAAG,SAAS,CAE5D;IAEM,qBAAqB,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,SAAS,CAExD;IAEM,IAAI,IAAI,qBAAqB,CAMnC;CACF"}
@@ -20,7 +20,7 @@ export class ContractsDbCheckpoint {
20
20
  getBytecodeCommitment(classId) {
21
21
  return this.bytecodeCommitments.get(classId.toString());
22
22
  }
23
- deepCopy() {
23
+ fork() {
24
24
  const copy = new ContractsDbCheckpoint();
25
25
  this.instances.forEach((value, key)=>copy.instances.set(key, value));
26
26
  this.classes.forEach((value, key)=>copy.classes.set(key, value));
@@ -11,8 +11,8 @@ const INITIAL_TOKEN_BALANCE = 1_000_000_000n;
11
11
  * You do NOT need permission to remove this test!
12
12
  */ export async function ammTest(tester, logger, tokenArtifact, ammArtifact, expectToBeTrue) {
13
13
  const timer = new Timer();
14
- const admin = AztecAddress.fromNumber(42);
15
- const sender = AztecAddress.fromNumber(111);
14
+ const admin = AztecAddress.fromNumberUnsafe(42);
15
+ const sender = AztecAddress.fromNumberUnsafe(111);
16
16
  logger.debug(`Deploying tokens`);
17
17
  const token0 = await setUpToken(tester, tokenArtifact, admin, expectToBeTrue, /*seed=*/ 0);
18
18
  const token1 = await setUpToken(tester, tokenArtifact, admin, expectToBeTrue, /*seed=*/ 1);
@@ -3,4 +3,4 @@ import type { ContractArtifact } from '@aztec/stdlib/abi';
3
3
  import { PublicTxSimulationTester } from './public_tx_simulation_tester.js';
4
4
  export declare function bulkTest(tester: PublicTxSimulationTester, logger: Logger, avmTestContractArtifact: ContractArtifact): Promise<import("@aztec/stdlib/avm").PublicTxResult>;
5
5
  export declare function megaBulkTest(tester: PublicTxSimulationTester, logger: Logger, avmTestContractArtifact: ContractArtifact): Promise<import("@aztec/stdlib/avm").PublicTxResult>;
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVsa190ZXN0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHVibGljL2ZpeHR1cmVzL2J1bGtfdGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRzFELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRTVFLHdCQUFzQixRQUFRLENBQzVCLE1BQU0sRUFBRSx3QkFBd0IsRUFDaEMsTUFBTSxFQUFFLE1BQU0sRUFDZCx1QkFBdUIsRUFBRSxnQkFBZ0IsdURBa0YxQztBQUVELHdCQUFzQixZQUFZLENBQ2hDLE1BQU0sRUFBRSx3QkFBd0IsRUFDaEMsTUFBTSxFQUFFLE1BQU0sRUFDZCx1QkFBdUIsRUFBRSxnQkFBZ0IsdURBc0UxQyJ9
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVsa190ZXN0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHVibGljL2ZpeHR1cmVzL2J1bGtfdGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRzFELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRTVFLHdCQUFzQixRQUFRLENBQzVCLE1BQU0sRUFBRSx3QkFBd0IsRUFDaEMsTUFBTSxFQUFFLE1BQU0sRUFDZCx1QkFBdUIsRUFBRSxnQkFBZ0IsdURBZ0cxQztBQUVELHdCQUFzQixZQUFZLENBQ2hDLE1BQU0sRUFBRSx3QkFBd0IsRUFDaEMsTUFBTSxFQUFFLE1BQU0sRUFDZCx1QkFBdUIsRUFBRSxnQkFBZ0IsdURBaUYxQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"bulk_test.d.ts","sourceRoot":"","sources":["../../../src/public/fixtures/bulk_test.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,wBAAwB,EAChC,MAAM,EAAE,MAAM,EACd,uBAAuB,EAAE,gBAAgB,uDAkF1C;AAED,wBAAsB,YAAY,CAChC,MAAM,EAAE,wBAAwB,EAChC,MAAM,EAAE,MAAM,EACd,uBAAuB,EAAE,gBAAgB,uDAsE1C"}
1
+ {"version":3,"file":"bulk_test.d.ts","sourceRoot":"","sources":["../../../src/public/fixtures/bulk_test.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,wBAAwB,EAChC,MAAM,EAAE,MAAM,EACd,uBAAuB,EAAE,gBAAgB,uDAgG1C;AAED,wBAAsB,YAAY,CAChC,MAAM,EAAE,wBAAwB,EAChC,MAAM,EAAE,MAAM,EACd,uBAAuB,EAAE,gBAAgB,uDAiF1C"}
@@ -3,13 +3,14 @@ import { Timer } from '@aztec/foundation/timer';
3
3
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
4
4
  export async function bulkTest(tester, logger, avmTestContractArtifact) {
5
5
  const timer = new Timer();
6
- const deployer = AztecAddress.fromNumber(42);
6
+ const deployer = AztecAddress.fromNumberUnsafe(42);
7
7
  const avmTestContract = await tester.registerAndDeployContract(/*constructorArgs=*/ [], deployer, avmTestContractArtifact);
8
8
  // Needed since we invoke the Fee Juice Contract in the bulk test.registerFeeJuiceContract
9
9
  await tester.registerFeeJuiceContract();
10
10
  // Register multiple different protocol contracts (to ensure we don't dedup bytecode hashing events):
11
11
  await tester.registerAuthContract();
12
12
  await tester.registerInstanceRegistryContract();
13
+ await tester.registerClassRegistryContract();
13
14
  // Get a deployed contract instance to pass to the contract
14
15
  // for it to use as "expected" values when testing contract instance retrieval.
15
16
  const expectContractInstance = avmTestContract;
@@ -33,10 +34,23 @@ export async function bulkTest(tester, logger, avmTestContractArtifact) {
33
34
  5,
34
35
  6,
35
36
  7,
36
- 8
37
+ 8,
38
+ 9,
39
+ 10
37
40
  ].map((x)=>new Fr(x));
38
- argsU8.push(new Fr(2n ** 128n + 9n)); // Trigger truncation from large (> 128 bits) value (canonical decomposition event)
39
- argsU8.push(new Fr(2n ** 125n + 10n)); // Trigger truncation from small (< 128 bits) value (no canonical decomposition event)
41
+ // Pinned grumpkin-Poseidon2 Schnorr signature (mirrors the C++ `pinned_test_vector_large`
42
+ // and noir-lang/schnorr v0.4.0's `pinned_vector_large`). Passing these in as calldata
43
+ // (rather than baking them into Noir as constants) keeps MSM + Poseidon2 from being folded
44
+ // by the Noir compiler.
45
+ const schnorrInputs = [
46
+ Fr.fromHexString('0x065812e335a97c2108ea8cf4ccfe2f9dd6b117a0714f5e18461575be93f61da6'),
47
+ Fr.fromHexString('0x1a915003e8ec534f9a15d926a7ded478e178468ccc4f28e236e67450a55ac622'),
48
+ Fr.fromHexString('0xf3bc3b7147acb9c621fd9f72dbf15ffa'),
49
+ Fr.fromHexString('0x08599f379f0301dfefdbd0272554454d'),
50
+ Fr.fromHexString('0x97065383ebbbd76620398792bd259bc2'),
51
+ Fr.fromHexString('0x2ceaee87f45b7a417f0ffb05451a8c92'),
52
+ Fr.fromHexString('0x0123456789abcdef0fedcba9876543210123456789abcdef0fedcba987654321')
53
+ ];
40
54
  const args = [
41
55
  argsField,
42
56
  argsU8,
@@ -44,6 +58,8 @@ export async function bulkTest(tester, logger, avmTestContractArtifact) {
44
58
  /*expectedDeployer=*/ expectContractInstance.deployer,
45
59
  /*expectedClassId=*/ expectContractInstance.currentContractClassId,
46
60
  /*expectedInitializationHash=*/ expectContractInstance.initializationHash,
61
+ /*expectedImmutablesHash=*/ expectContractInstance.immutablesHash,
62
+ /*schnorrInputs=*/ schnorrInputs,
47
63
  /*skip_strictly_limited_side_effects=*/ false
48
64
  ];
49
65
  const bulkResult = await tester.executeTxWithLabel(/*txLabel=*/ 'AvmTest/bulk_testing', /*sender=*/ deployer, /*setupCalls=*/ [], /*appCalls=*/ [
@@ -67,7 +83,7 @@ export async function bulkTest(tester, logger, avmTestContractArtifact) {
67
83
  address: avmTestContract.address,
68
84
  fnName: 'assert_calldata_copy',
69
85
  args: [
70
- argsField.slice(3),
86
+ argsField.slice(0, 3),
71
87
  /* with_selector: */ true
72
88
  ]
73
89
  },
@@ -120,7 +136,7 @@ export async function bulkTest(tester, logger, avmTestContractArtifact) {
120
136
  }
121
137
  export async function megaBulkTest(tester, logger, avmTestContractArtifact) {
122
138
  const timer = new Timer();
123
- const deployer = AztecAddress.fromNumber(42);
139
+ const deployer = AztecAddress.fromNumberUnsafe(42);
124
140
  const avmTestContract = await tester.registerAndDeployContract(/*constructorArgs=*/ [], deployer, avmTestContractArtifact);
125
141
  // Needed since we invoke the Fee Juice Contract in the bulk test.registerFeeJuiceContract
126
142
  await tester.registerFeeJuiceContract();
@@ -203,6 +219,15 @@ export async function megaBulkTest(tester, logger, avmTestContractArtifact) {
203
219
  9,
204
220
  10
205
221
  ].map((x)=>new Fr(x));
222
+ const schnorrInputs = [
223
+ Fr.fromHexString('0x065812e335a97c2108ea8cf4ccfe2f9dd6b117a0714f5e18461575be93f61da6'),
224
+ Fr.fromHexString('0x1a915003e8ec534f9a15d926a7ded478e178468ccc4f28e236e67450a55ac622'),
225
+ Fr.fromHexString('0xf3bc3b7147acb9c621fd9f72dbf15ffa'),
226
+ Fr.fromHexString('0x08599f379f0301dfefdbd0272554454d'),
227
+ Fr.fromHexString('0x97065383ebbbd76620398792bd259bc2'),
228
+ Fr.fromHexString('0x2ceaee87f45b7a417f0ffb05451a8c92'),
229
+ Fr.fromHexString('0x0123456789abcdef0fedcba9876543210123456789abcdef0fedcba987654321')
230
+ ];
206
231
  const genArgs = (argsField)=>[
207
232
  argsField,
208
233
  argsU8,
@@ -210,6 +235,8 @@ export async function megaBulkTest(tester, logger, avmTestContractArtifact) {
210
235
  /*expectedDeployer=*/ expectContractInstance.deployer.toField(),
211
236
  /*expectedClassId=*/ expectContractInstance.currentContractClassId.toField(),
212
237
  /*expectedInitializationHash=*/ expectContractInstance.initializationHash.toField(),
238
+ /*expectedImmutablesHash=*/ expectContractInstance.immutablesHash.toField(),
239
+ /*schnorrInputs=*/ schnorrInputs,
213
240
  // Must skip strictly limited side effects (logs, messages) so we can spam the bulk test several times.
214
241
  /*skip_strictly_limited_side_effects=*/ true
215
242
  ];
@@ -31,4 +31,4 @@ export declare function executeCustomBytecode(contract: ContractInstanceWithAddr
31
31
  * @returns The execution result
32
32
  */
33
33
  export declare function deployAndExecuteCustomBytecode(bytecode: Buffer, tester: PublicTxSimulationTester, txLabel?: string, contractName?: string, deployer?: AztecAddress, calldata?: any[]): Promise<PublicTxResult>;
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tX2J5dGVjb2RlX3Rlc3Rlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3B1YmxpYy9maXh0dXJlcy9jdXN0b21fYnl0ZWNvZGVfdGVzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEtBQUssRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRTVFOzs7Ozs7O0dBT0c7QUFDSCx3QkFBc0Isb0JBQW9CLENBQ3hDLFFBQVEsRUFBRSxNQUFNLEVBQ2hCLE1BQU0sRUFBRSx3QkFBd0IsRUFDaEMsWUFBWSxHQUFFLE1BQWlDLEVBQy9DLFFBQVEsR0FBRSxZQUEwQyxHQUNuRCxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FpQnRDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILHdCQUFzQixxQkFBcUIsQ0FDekMsUUFBUSxFQUFFLDJCQUEyQixFQUNyQyxNQUFNLEVBQUUsd0JBQXdCLEVBQ2hDLE9BQU8sR0FBRSxNQUE2QixFQUN0QyxRQUFRLEdBQUUsR0FBRyxFQUFPLEdBQ25CLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FRekI7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCx3QkFBc0IsOEJBQThCLENBQ2xELFFBQVEsRUFBRSxNQUFNLEVBQ2hCLE1BQU0sRUFBRSx3QkFBd0IsRUFDaEMsT0FBTyxHQUFFLE1BQTZCLEVBQ3RDLFlBQVksR0FBRSxNQUFpQyxFQUMvQyxRQUFRLEdBQUUsWUFBMEMsRUFDcEQsUUFBUSxHQUFFLEdBQUcsRUFBTyxHQUNuQixPQUFPLENBQUMsY0FBYyxDQUFDLENBR3pCIn0=
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tX2J5dGVjb2RlX3Rlc3Rlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3B1YmxpYy9maXh0dXJlcy9jdXN0b21fYnl0ZWNvZGVfdGVzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEtBQUssRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRTVFOzs7Ozs7O0dBT0c7QUFDSCx3QkFBc0Isb0JBQW9CLENBQ3hDLFFBQVEsRUFBRSxNQUFNLEVBQ2hCLE1BQU0sRUFBRSx3QkFBd0IsRUFDaEMsWUFBWSxHQUFFLE1BQWlDLEVBQy9DLFFBQVEsR0FBRSxZQUFnRCxHQUN6RCxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FpQnRDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILHdCQUFzQixxQkFBcUIsQ0FDekMsUUFBUSxFQUFFLDJCQUEyQixFQUNyQyxNQUFNLEVBQUUsd0JBQXdCLEVBQ2hDLE9BQU8sR0FBRSxNQUE2QixFQUN0QyxRQUFRLEdBQUUsR0FBRyxFQUFPLEdBQ25CLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FRekI7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCx3QkFBc0IsOEJBQThCLENBQ2xELFFBQVEsRUFBRSxNQUFNLEVBQ2hCLE1BQU0sRUFBRSx3QkFBd0IsRUFDaEMsT0FBTyxHQUFFLE1BQTZCLEVBQ3RDLFlBQVksR0FBRSxNQUFpQyxFQUMvQyxRQUFRLEdBQUUsWUFBZ0QsRUFDMUQsUUFBUSxHQUFFLEdBQUcsRUFBTyxHQUNuQixPQUFPLENBQUMsY0FBYyxDQUFDLENBR3pCIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"custom_bytecode_tester.d.ts","sourceRoot":"","sources":["../../../src/public/fixtures/custom_bytecode_tester.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAE1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAE5E;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,wBAAwB,EAChC,YAAY,GAAE,MAAiC,EAC/C,QAAQ,GAAE,YAA0C,GACnD,OAAO,CAAC,2BAA2B,CAAC,CAiBtC;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,2BAA2B,EACrC,MAAM,EAAE,wBAAwB,EAChC,OAAO,GAAE,MAA6B,EACtC,QAAQ,GAAE,GAAG,EAAO,GACnB,OAAO,CAAC,cAAc,CAAC,CAQzB;AAED;;;;;;;;;GASG;AACH,wBAAsB,8BAA8B,CAClD,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,wBAAwB,EAChC,OAAO,GAAE,MAA6B,EACtC,YAAY,GAAE,MAAiC,EAC/C,QAAQ,GAAE,YAA0C,EACpD,QAAQ,GAAE,GAAG,EAAO,GACnB,OAAO,CAAC,cAAc,CAAC,CAGzB"}
1
+ {"version":3,"file":"custom_bytecode_tester.d.ts","sourceRoot":"","sources":["../../../src/public/fixtures/custom_bytecode_tester.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAE1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAE5E;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,wBAAwB,EAChC,YAAY,GAAE,MAAiC,EAC/C,QAAQ,GAAE,YAAgD,GACzD,OAAO,CAAC,2BAA2B,CAAC,CAiBtC;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,2BAA2B,EACrC,MAAM,EAAE,wBAAwB,EAChC,OAAO,GAAE,MAA6B,EACtC,QAAQ,GAAE,GAAG,EAAO,GACnB,OAAO,CAAC,cAAc,CAAC,CAQzB;AAED;;;;;;;;;GASG;AACH,wBAAsB,8BAA8B,CAClD,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,wBAAwB,EAChC,OAAO,GAAE,MAA6B,EACtC,YAAY,GAAE,MAAiC,EAC/C,QAAQ,GAAE,YAAgD,EAC1D,QAAQ,GAAE,GAAG,EAAO,GACnB,OAAO,CAAC,cAAc,CAAC,CAGzB"}
@@ -7,7 +7,7 @@ import { AztecAddress } from '@aztec/stdlib/aztec-address';
7
7
  * @param contractName - The name of the contract
8
8
  * @param deployer - The deployer address
9
9
  * @returns The deployed contract instance
10
- */ export async function deployCustomBytecode(bytecode, tester, contractName = 'CustomBytecodeContract', deployer = AztecAddress.fromNumber(42)) {
10
+ */ export async function deployCustomBytecode(bytecode, tester, contractName = 'CustomBytecodeContract', deployer = AztecAddress.fromNumberUnsafe(42)) {
11
11
  const contractArtifact = emptyContractArtifact();
12
12
  contractArtifact.name = contractName;
13
13
  contractArtifact.functions = [
@@ -47,7 +47,7 @@ import { AztecAddress } from '@aztec/stdlib/aztec-address';
47
47
  * @param deployer - The deployer address
48
48
  * @param calldata - The calldata to use
49
49
  * @returns The execution result
50
- */ export async function deployAndExecuteCustomBytecode(bytecode, tester, txLabel = 'CustomBytecodeTest', contractName = 'CustomBytecodeContract', deployer = AztecAddress.fromNumber(42), calldata = []) {
50
+ */ export async function deployAndExecuteCustomBytecode(bytecode, tester, txLabel = 'CustomBytecodeTest', contractName = 'CustomBytecodeContract', deployer = AztecAddress.fromNumberUnsafe(42), calldata = []) {
51
51
  const testContract = await deployCustomBytecode(bytecode, tester, contractName, deployer);
52
52
  return await executeCustomBytecode(testContract, tester, txLabel, calldata);
53
53
  }
@@ -1,12 +1,10 @@
1
1
  export * from './public_tx_simulation_tester.js';
2
+ export * from './public_processor_test_env.js';
2
3
  export * from './utils.js';
3
4
  export * from './simple_contract_data_source.js';
4
- export { executeAvmMinimalPublicTx } from './minimal_public_tx.js';
5
5
  export { TestExecutorMetrics } from '../test_executor_metrics.js';
6
6
  export { ammTest } from './amm_test.js';
7
7
  export { bulkTest, megaBulkTest } from './bulk_test.js';
8
8
  export { tokenTest } from './token_test.js';
9
- export * from './custom_bytecode_tests.js';
10
9
  export { deployCustomBytecode, executeCustomBytecode, deployAndExecuteCustomBytecode, } from './custom_bytecode_tester.js';
11
- export { getSpamConfigsPerOpcode, testOpcodeSpamCase } from './opcode_spammer.js';
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wdWJsaWMvZml4dHVyZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLHFCQUFxQixFQUNyQiw4QkFBOEIsR0FDL0IsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQyJ9
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wdWJsaWMvZml4dHVyZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLHFCQUFxQixFQUNyQiw4QkFBOEIsR0FDL0IsTUFBTSw2QkFBNkIsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/public/fixtures/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,YAAY,CAAC;AAC3B,cAAc,kCAAkC,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,8BAA8B,GAC/B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/public/fixtures/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,YAAY,CAAC;AAC3B,cAAc,kCAAkC,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,8BAA8B,GAC/B,MAAM,6BAA6B,CAAC"}
@@ -1,11 +1,9 @@
1
1
  export * from './public_tx_simulation_tester.js';
2
+ export * from './public_processor_test_env.js';
2
3
  export * from './utils.js';
3
4
  export * from './simple_contract_data_source.js';
4
- export { executeAvmMinimalPublicTx } from './minimal_public_tx.js';
5
5
  export { TestExecutorMetrics } from '../test_executor_metrics.js';
6
6
  export { ammTest } from './amm_test.js';
7
7
  export { bulkTest, megaBulkTest } from './bulk_test.js';
8
8
  export { tokenTest } from './token_test.js';
9
- export * from './custom_bytecode_tests.js';
10
9
  export { deployCustomBytecode, executeCustomBytecode, deployAndExecuteCustomBytecode } from './custom_bytecode_tester.js';
11
- export { getSpamConfigsPerOpcode, testOpcodeSpamCase } from './opcode_spammer.js';
@@ -0,0 +1,30 @@
1
+ import { PublicSimulatorConfig } from '@aztec/stdlib/avm';
2
+ import { GlobalVariables } from '@aztec/stdlib/tx';
3
+ import { PublicContractsDB } from '../public_db_sources.js';
4
+ import { PublicProcessor } from '../public_processor/public_processor.js';
5
+ import { PublicTxSimulationTester } from './public_tx_simulation_tester.js';
6
+ /** Options for {@link PublicProcessorTestEnv.create}. */
7
+ export interface PublicProcessorTestEnvOptions {
8
+ /** Global variables shared by the processor and the tester. Defaults to empty with nonzero gas fees. */
9
+ globals?: GlobalVariables;
10
+ /** Simulator config for the processor's PublicTxSimulator. */
11
+ config?: Partial<PublicSimulatorConfig>;
12
+ }
13
+ /**
14
+ * Bundles the real-AVM wiring shared by public-processor app tests: a live WSDB world state, a CDB IPC
15
+ * server, a spawned AVM simulator, a {@link PublicProcessor} backed by all three, and a setup-only
16
+ * {@link PublicTxSimulationTester} sharing the same fork and contract data source for building txs and
17
+ * seeding balances. Own it with `await using`, or call {@link Symbol.asyncDispose} from `afterEach`.
18
+ */
19
+ export declare class PublicProcessorTestEnv implements AsyncDisposable {
20
+ readonly processor: PublicProcessor;
21
+ readonly tester: PublicTxSimulationTester;
22
+ readonly contractsDB: PublicContractsDB;
23
+ readonly globals: GlobalVariables;
24
+ private readonly worldStateService;
25
+ private readonly avmSimulator;
26
+ private constructor();
27
+ static create(opts?: PublicProcessorTestEnvOptions): Promise<PublicProcessorTestEnv>;
28
+ [Symbol.asyncDispose](): Promise<void>;
29
+ }
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3Byb2Nlc3Nvcl90ZXN0X2Vudi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3B1YmxpYy9maXh0dXJlcy9wdWJsaWNfcHJvY2Vzc29yX3Rlc3RfZW52LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUtuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFMUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFHNUUseURBQXlEO0FBQ3pELE1BQU0sV0FBVyw2QkFBNkI7SUFDNUMsd0dBQXdHO0lBQ3hHLE9BQU8sQ0FBQyxFQUFFLGVBQWUsQ0FBQztJQUMxQiw4REFBOEQ7SUFDOUQsTUFBTSxDQUFDLEVBQUUsT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBQUM7Q0FDekM7QUFnQkQ7Ozs7O0dBS0c7QUFDSCxxQkFBYSxzQkFBdUIsWUFBVyxlQUFlO2FBRTFDLFNBQVMsRUFBRSxlQUFlO2FBQzFCLE1BQU0sRUFBRSx3QkFBd0I7YUFDaEMsV0FBVyxFQUFFLGlCQUFpQjthQUM5QixPQUFPLEVBQUUsZUFBZTtJQUN4QyxPQUFPLENBQUMsUUFBUSxDQUFDLGlCQUFpQjtJQUNsQyxPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVk7SUFOL0IsT0FBTyxlQU9IO0lBRUosT0FBYSxNQUFNLENBQUMsSUFBSSxHQUFFLDZCQUFrQyxHQUFHLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQTBCN0Y7SUFFSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBSTNDO0NBQ0YifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public_processor_test_env.d.ts","sourceRoot":"","sources":["../../../src/public/fixtures/public_processor_test_env.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAKnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAE1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAG5E,yDAAyD;AACzD,MAAM,WAAW,6BAA6B;IAC5C,wGAAwG;IACxG,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,8DAA8D;IAC9D,MAAM,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACzC;AAgBD;;;;;GAKG;AACH,qBAAa,sBAAuB,YAAW,eAAe;aAE1C,SAAS,EAAE,eAAe;aAC1B,MAAM,EAAE,wBAAwB;aAChC,WAAW,EAAE,iBAAiB;aAC9B,OAAO,EAAE,eAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAN/B,OAAO,eAOH;IAEJ,OAAa,MAAM,CAAC,IAAI,GAAE,6BAAkC,GAAG,OAAO,CAAC,sBAAsB,CAAC,CA0B7F;IAEK,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAI3C;CACF"}
@@ -0,0 +1,73 @@
1
+ var _computedKey;
2
+ import { createLogger } from '@aztec/foundation/log';
3
+ import { TestDateProvider } from '@aztec/foundation/timer';
4
+ import { PublicSimulatorConfig } from '@aztec/stdlib/avm';
5
+ import { GasFees } from '@aztec/stdlib/gas';
6
+ import { GlobalVariables } from '@aztec/stdlib/tx';
7
+ import { getTelemetryClient } from '@aztec/telemetry-client';
8
+ import { NativeWorldStateService } from '@aztec/world-state';
9
+ import { AvmSimulatorPool } from '../avm_simulator_pool.js';
10
+ import { PublicContractsDB } from '../public_db_sources.js';
11
+ import { GuardedMerkleTreeOperations } from '../public_processor/guarded_merkle_tree.js';
12
+ import { PublicProcessor } from '../public_processor/public_processor.js';
13
+ import { PublicTxSimulator } from '../public_tx_simulator/public_tx_simulator.js';
14
+ import { PublicTxSimulationTester } from './public_tx_simulation_tester.js';
15
+ import { SimpleContractDataSource } from './simple_contract_data_source.js';
16
+ function defaultGlobals() {
17
+ const globals = GlobalVariables.empty();
18
+ globals.gasFees = new GasFees(2, 3);
19
+ return globals;
20
+ }
21
+ const defaultConfig = PublicSimulatorConfig.from({
22
+ skipFeeEnforcement: false,
23
+ collectDebugLogs: true,
24
+ collectHints: false,
25
+ collectStatistics: false,
26
+ collectCallMetadata: true
27
+ });
28
+ _computedKey = Symbol.asyncDispose;
29
+ /**
30
+ * Bundles the real-AVM wiring shared by public-processor app tests: a live WSDB world state, a CDB IPC
31
+ * server, a spawned AVM simulator, a {@link PublicProcessor} backed by all three, and a setup-only
32
+ * {@link PublicTxSimulationTester} sharing the same fork and contract data source for building txs and
33
+ * seeding balances. Own it with `await using`, or call {@link Symbol.asyncDispose} from `afterEach`.
34
+ */ export class PublicProcessorTestEnv {
35
+ processor;
36
+ tester;
37
+ contractsDB;
38
+ globals;
39
+ worldStateService;
40
+ avmSimulator;
41
+ constructor(processor, tester, contractsDB, globals, worldStateService, avmSimulator){
42
+ this.processor = processor;
43
+ this.tester = tester;
44
+ this.contractsDB = contractsDB;
45
+ this.globals = globals;
46
+ this.worldStateService = worldStateService;
47
+ this.avmSimulator = avmSimulator;
48
+ }
49
+ static async create(opts = {}) {
50
+ const globals = opts.globals ?? defaultGlobals();
51
+ const config = opts.config ? PublicSimulatorConfig.from({
52
+ ...defaultConfig,
53
+ ...opts.config
54
+ }) : defaultConfig;
55
+ const contractDataSource = new SimpleContractDataSource();
56
+ const worldStateService = await NativeWorldStateService.tmp();
57
+ const merkleTrees = await worldStateService.fork();
58
+ const contractsDB = new PublicContractsDB(contractDataSource);
59
+ const forkId = merkleTrees.getRevision().forkId;
60
+ const avmSimulator = await AvmSimulatorPool.spawn({
61
+ wsdbIpcPath: worldStateService.getIpcPath()
62
+ });
63
+ const simulator = new PublicTxSimulator(avmSimulator, globals, contractsDB, forkId, config, undefined);
64
+ const processor = new PublicProcessor(globals, new GuardedMerkleTreeOperations(merkleTrees), contractsDB, simulator, new TestDateProvider(), getTelemetryClient(), createLogger('simulator:public-processor'));
65
+ const tester = new PublicTxSimulationTester(merkleTrees, contractDataSource, globals);
66
+ return new PublicProcessorTestEnv(processor, tester, contractsDB, globals, worldStateService, avmSimulator);
67
+ }
68
+ async [_computedKey]() {
69
+ await this.avmSimulator[Symbol.asyncDispose]();
70
+ await this.tester.close();
71
+ await this.worldStateService.close();
72
+ }
73
+ }
@@ -5,7 +5,8 @@ import { Gas } from '@aztec/stdlib/gas';
5
5
  import type { MerkleTreeWriteOperations } from '@aztec/stdlib/interfaces/server';
6
6
  import { GlobalVariables, type Tx } from '@aztec/stdlib/tx';
7
7
  import { NativeWorldStateService } from '@aztec/world-state';
8
- import { BaseAvmSimulationTester } from '../avm/fixtures/base_avm_simulation_tester.js';
8
+ import { BaseAvmSimulationTester } from '../avm/testing/base_avm_simulation_tester.js';
9
+ import { AvmSimulatorPool } from '../avm_simulator_pool.js';
9
10
  import { PublicContractsDB } from '../public_db_sources.js';
10
11
  import type { MeasuredPublicTxSimulatorInterface } from '../public_tx_simulator/public_tx_simulator_interface.js';
11
12
  import { TestExecutorMetrics } from '../test_executor_metrics.js';
@@ -34,8 +35,9 @@ export declare class PublicTxSimulationTester extends BaseAvmSimulationTester {
34
35
  protected txCount: number;
35
36
  private simulator;
36
37
  private metricsPrefix?;
38
+ protected avmSimulator?: AvmSimulatorPool;
37
39
  constructor(merkleTree: MerkleTreeWriteOperations, contractDataSource: SimpleContractDataSource, globals?: GlobalVariables, metrics?: TestExecutorMetrics, simulatorFactory?: MeasuredSimulatorFactory, config?: PublicSimulatorConfig);
38
- static create(worldStateService: NativeWorldStateService, globals?: GlobalVariables, metrics?: TestExecutorMetrics, useCppSimulator?: boolean, config?: PublicSimulatorConfig): Promise<PublicTxSimulationTester>;
40
+ static create(worldStateService: NativeWorldStateService, globals?: GlobalVariables, metrics?: TestExecutorMetrics, config?: PublicSimulatorConfig): Promise<PublicTxSimulationTester>;
39
41
  setMetricsPrefix(prefix: string): void;
40
42
  createTx(sender: AztecAddress, setupCalls?: TestEnqueuedCall[], appCalls?: TestEnqueuedCall[], teardownCall?: TestEnqueuedCall, feePayer?: AztecAddress, privateInsertions?: TestPrivateInsertions, gasLimits?: Gas): Promise<Tx>;
41
43
  simulateTx(sender: AztecAddress, setupCalls?: TestEnqueuedCall[], appCalls?: TestEnqueuedCall[], teardownCall?: TestEnqueuedCall, feePayer?: AztecAddress, privateInsertions?: TestPrivateInsertions, txLabel?: string, gasLimits?: Gas): Promise<PublicTxResult>;
@@ -45,7 +47,7 @@ export declare class PublicTxSimulationTester extends BaseAvmSimulationTester {
45
47
  * This wrapper around simulation allows for easy labeling of a TX
46
48
  * which is especially useful when reporting benchmarks or metrics.
47
49
  */
48
- simulateTxWithLabel(txLabel: string, sender: AztecAddress, setupCalls?: TestEnqueuedCall[], appCalls?: TestEnqueuedCall[], teardownCall?: TestEnqueuedCall, feePayer?: AztecAddress, privateInsertions?: TestPrivateInsertions, gasLimits?: Gas): Promise<PublicTxResult>;
50
+ simulateTxWithLabel(txLabel: string, sender: AztecAddress, setupCalls?: TestEnqueuedCall[], appCalls?: TestEnqueuedCall[], teardownCall?: TestEnqueuedCall, feePayer?: AztecAddress, privateInsertions?: TestPrivateInsertions): Promise<PublicTxResult>;
49
51
  /**
50
52
  * Execute a transaction and return the result.
51
53
  *
@@ -53,11 +55,13 @@ export declare class PublicTxSimulationTester extends BaseAvmSimulationTester {
53
55
  * to do more work (like prove and verify) while still reusing existing
54
56
  * test fixtures (like amm_test). That is why it is not named "simulate*".
55
57
  */
56
- executeTxWithLabel(txLabel: string, sender: AztecAddress, setupCalls?: TestEnqueuedCall[], appCalls?: TestEnqueuedCall[], teardownCall?: TestEnqueuedCall, feePayer?: AztecAddress, privateInsertions?: TestPrivateInsertions, gasLimits?: Gas): Promise<PublicTxResult>;
58
+ executeTxWithLabel(txLabel: string, sender: AztecAddress, setupCalls?: TestEnqueuedCall[], appCalls?: TestEnqueuedCall[], teardownCall?: TestEnqueuedCall, feePayer?: AztecAddress, privateInsertions?: TestPrivateInsertions): Promise<PublicTxResult>;
57
59
  prettyPrintMetrics(): void;
60
+ /** Clean up IPC resources (AVM simulator pool and merkle tree fork) created by create(). */
61
+ close(): Promise<void>;
58
62
  /**
59
63
  * Cancel the current simulation if one is in progress.
60
- * This signals the underlying simulator (e.g., C++) to stop at the next safe point.
64
+ * This signals the underlying simulator to stop at the next safe point.
61
65
  * Safe to call even if no simulation is in progress.
62
66
  *
63
67
  * @param waitTimeoutMs - If provided, wait up to this many ms for the simulation to actually stop.
@@ -67,7 +71,7 @@ export declare class PublicTxSimulationTester extends BaseAvmSimulationTester {
67
71
  * Get the underlying simulator for advanced test scenarios.
68
72
  * Use this when you need direct control over simulation (e.g., for testing cancellation).
69
73
  */
70
- getSimulator(): MeasuredPublicTxSimulatorInterface;
74
+ getSimulator(): MeasuredPublicTxSimulatorInterface | undefined;
71
75
  }
72
76
  export declare function defaultGlobals(): GlobalVariables;
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3R4X3NpbXVsYXRpb25fdGVzdGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHVibGljL2ZpeHR1cmVzL3B1YmxpY190eF9zaW11bGF0aW9uX3Rlc3Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBbUIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvRSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQWtFLEdBQUcsRUFBVyxNQUFNLG1CQUFtQixDQUFDO0FBQ2pILE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFakYsT0FBTyxFQUFFLGVBQWUsRUFBaUMsS0FBSyxFQUFFLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMzRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU3RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQU94RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUc1RCxPQUFPLEtBQUssRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ2xILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxLQUFLLHFCQUFxQixFQUEwQixNQUFNLFlBQVksQ0FBQztBQUloRixNQUFNLE1BQU0sZ0JBQWdCLEdBQUc7SUFDN0IsTUFBTSxDQUFDLEVBQUUsWUFBWSxDQUFDO0lBQ3RCLE9BQU8sRUFBRSxZQUFZLENBQUM7SUFDdEIsTUFBTSxD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
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3R4X3NpbXVsYXRpb25fdGVzdGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHVibGljL2ZpeHR1cmVzL3B1YmxpY190eF9zaW11bGF0aW9uX3Rlc3Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBbUIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvRSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsR0FBRyxFQUFXLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxLQUFLLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVqRixPQUFPLEVBQUUsZUFBZSxFQUFpQyxLQUFLLEVBQUUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzNGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTdELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBT3ZGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTVELE9BQU8sS0FBSyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0seURBQXlELENBQUM7QUFDbEgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDNUUsT0FBTyxFQUFFLEtBQUsscUJBQXFCLEVBQTBCLE1BQU0sWUFBWSxDQUFDO0FBTWhGLE1BQU0sTUFBTSxnQkFBZ0IsR0FBRztJQUM3QixNQUFNLENBQUMsRUFBRSxZQUFZ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