@aztec/simulator 0.0.1-commit.a072138 → 0.0.1-commit.a4600f49

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 (358) hide show
  1. package/README.md +4 -4
  2. package/dest/client.d.ts +1 -3
  3. package/dest/client.d.ts.map +1 -1
  4. package/dest/client.js +0 -2
  5. package/dest/private/acvm_wasm.d.ts +1 -1
  6. package/dest/private/acvm_wasm.d.ts.map +1 -1
  7. package/dest/private/acvm_wasm.js +3 -1
  8. package/dest/private/circuit_recording/circuit_recorder.d.ts +36 -23
  9. package/dest/private/circuit_recording/circuit_recorder.d.ts.map +1 -1
  10. package/dest/private/circuit_recording/circuit_recorder.js +65 -69
  11. package/dest/private/circuit_recording/file_circuit_recorder.d.ts +7 -19
  12. package/dest/private/circuit_recording/file_circuit_recorder.d.ts.map +1 -1
  13. package/dest/private/circuit_recording/file_circuit_recorder.js +38 -42
  14. package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts +1 -1
  15. package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts.map +1 -1
  16. package/dest/private/circuit_recording/simulator_recorder_wrapper.js +11 -14
  17. package/dest/public/avm/testing/account_proof_fetcher.d.ts +2 -0
  18. package/dest/public/avm/testing/account_proof_fetcher.d.ts.map +1 -0
  19. package/dest/public/avm/testing/account_proof_fetcher.js +152 -0
  20. package/dest/public/avm/{fixtures → testing}/base_avm_simulation_tester.d.ts +2 -1
  21. package/dest/public/avm/testing/base_avm_simulation_tester.d.ts.map +1 -0
  22. package/dest/public/avm/{fixtures → testing}/base_avm_simulation_tester.js +18 -3
  23. package/dest/public/avm/testing/utils.d.ts +32 -0
  24. package/dest/public/avm/testing/utils.d.ts.map +1 -0
  25. package/dest/public/avm/{fixtures → testing}/utils.js +4 -34
  26. package/dest/public/avm_simulator.d.ts +28 -0
  27. package/dest/public/avm_simulator.d.ts.map +1 -0
  28. package/dest/public/avm_simulator.js +4 -0
  29. package/dest/public/avm_simulator_pool.d.ts +45 -0
  30. package/dest/public/avm_simulator_pool.d.ts.map +1 -0
  31. package/dest/public/avm_simulator_pool.js +197 -0
  32. package/dest/public/cdb/generated/api_types.d.ts +171 -0
  33. package/dest/public/cdb/generated/api_types.d.ts.map +1 -0
  34. package/dest/public/cdb/generated/api_types.js +314 -0
  35. package/dest/public/cdb/generated/server.d.ts +26 -0
  36. package/dest/public/cdb/generated/server.d.ts.map +1 -0
  37. package/dest/public/cdb/generated/server.js +135 -0
  38. package/dest/public/cdb_ipc_server.d.ts +33 -0
  39. package/dest/public/cdb_ipc_server.d.ts.map +1 -0
  40. package/dest/public/cdb_ipc_server.js +153 -0
  41. package/dest/public/contracts_db_checkpoint.d.ts +2 -2
  42. package/dest/public/contracts_db_checkpoint.d.ts.map +1 -1
  43. package/dest/public/contracts_db_checkpoint.js +1 -1
  44. package/dest/public/fixtures/amm_test.js +4 -4
  45. package/dest/public/fixtures/bulk_test.d.ts +1 -1
  46. package/dest/public/fixtures/bulk_test.d.ts.map +1 -1
  47. package/dest/public/fixtures/bulk_test.js +33 -6
  48. package/dest/public/fixtures/custom_bytecode_tester.d.ts +1 -1
  49. package/dest/public/fixtures/custom_bytecode_tester.d.ts.map +1 -1
  50. package/dest/public/fixtures/custom_bytecode_tester.js +2 -2
  51. package/dest/public/fixtures/index.d.ts +2 -4
  52. package/dest/public/fixtures/index.d.ts.map +1 -1
  53. package/dest/public/fixtures/index.js +1 -3
  54. package/dest/public/fixtures/public_processor_test_env.d.ts +30 -0
  55. package/dest/public/fixtures/public_processor_test_env.d.ts.map +1 -0
  56. package/dest/public/fixtures/public_processor_test_env.js +73 -0
  57. package/dest/public/fixtures/public_tx_simulation_tester.d.ts +12 -7
  58. package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
  59. package/dest/public/fixtures/public_tx_simulation_tester.js +32 -15
  60. package/dest/public/fixtures/simple_contract_data_source.js +1 -1
  61. package/dest/public/fixtures/token_test.js +3 -3
  62. package/dest/public/fixtures/utils.d.ts +2 -2
  63. package/dest/public/fixtures/utils.d.ts.map +1 -1
  64. package/dest/public/fixtures/utils.js +21 -20
  65. package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts +11 -4
  66. package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts.map +1 -1
  67. package/dest/public/fuzzing/avm_fuzzer_simulator.js +24 -10
  68. package/dest/public/fuzzing/avm_simulator_bin.js +4 -4
  69. package/dest/public/index.d.ts +5 -2
  70. package/dest/public/index.d.ts.map +1 -1
  71. package/dest/public/index.js +2 -1
  72. package/dest/public/public_db_sources.d.ts +6 -3
  73. package/dest/public/public_db_sources.d.ts.map +1 -1
  74. package/dest/public/public_db_sources.js +16 -10
  75. package/dest/public/public_processor/guarded_merkle_tree.d.ts +8 -7
  76. package/dest/public/public_processor/guarded_merkle_tree.d.ts.map +1 -1
  77. package/dest/public/public_processor/guarded_merkle_tree.js +8 -5
  78. package/dest/public/public_processor/public_processor.d.ts +15 -8
  79. package/dest/public/public_processor/public_processor.d.ts.map +1 -1
  80. package/dest/public/public_processor/public_processor.js +117 -78
  81. package/dest/public/public_processor/public_processor_metrics.d.ts +4 -1
  82. package/dest/public/public_processor/public_processor_metrics.d.ts.map +1 -1
  83. package/dest/public/public_processor/public_processor_metrics.js +8 -0
  84. package/dest/public/public_tx_simulator/dumping_public_tx_simulator.d.ts +17 -0
  85. package/dest/public/public_tx_simulator/dumping_public_tx_simulator.d.ts.map +1 -0
  86. package/dest/public/public_tx_simulator/{dumping_cpp_public_tx_simulator.js → dumping_public_tx_simulator.js} +10 -23
  87. package/dest/public/public_tx_simulator/factories.d.ts +8 -8
  88. package/dest/public/public_tx_simulator/factories.d.ts.map +1 -1
  89. package/dest/public/public_tx_simulator/factories.js +9 -9
  90. package/dest/public/public_tx_simulator/index.d.ts +4 -6
  91. package/dest/public/public_tx_simulator/index.d.ts.map +1 -1
  92. package/dest/public/public_tx_simulator/index.js +2 -4
  93. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +42 -71
  94. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
  95. package/dest/public/public_tx_simulator/public_tx_simulator.js +98 -318
  96. package/dest/public/public_tx_simulator/public_tx_simulator_base.d.ts +24 -0
  97. package/dest/public/public_tx_simulator/public_tx_simulator_base.d.ts.map +1 -0
  98. package/dest/public/public_tx_simulator/public_tx_simulator_base.js +31 -0
  99. package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts +5 -5
  100. package/package.json +22 -19
  101. package/src/client.ts +0 -2
  102. package/src/private/acvm_wasm.ts +4 -1
  103. package/src/private/circuit_recording/circuit_recorder.ts +84 -78
  104. package/src/private/circuit_recording/file_circuit_recorder.ts +38 -48
  105. package/src/private/circuit_recording/simulator_recorder_wrapper.ts +9 -15
  106. package/src/public/avm/testing/account_proof.json +553 -0
  107. package/src/public/avm/testing/account_proof_fetcher.ts +166 -0
  108. package/src/public/avm/{fixtures → testing}/base_avm_simulation_tester.ts +23 -3
  109. package/src/public/avm/{fixtures → testing}/utils.ts +4 -40
  110. package/src/public/avm_simulator.ts +29 -0
  111. package/src/public/avm_simulator_pool.ts +226 -0
  112. package/src/public/cdb/generated/api_types.ts +457 -0
  113. package/src/public/cdb/generated/server.ts +109 -0
  114. package/src/public/cdb_ipc_server.ts +197 -0
  115. package/src/public/contracts_db_checkpoint.ts +1 -1
  116. package/src/public/fixtures/amm_test.ts +4 -4
  117. package/src/public/fixtures/bulk_test.ts +31 -6
  118. package/src/public/fixtures/custom_bytecode_tester.ts +2 -2
  119. package/src/public/fixtures/index.ts +1 -3
  120. package/src/public/fixtures/public_processor_test_env.ts +88 -0
  121. package/src/public/fixtures/public_tx_simulation_tester.ts +45 -18
  122. package/src/public/fixtures/simple_contract_data_source.ts +1 -1
  123. package/src/public/fixtures/token_test.ts +3 -3
  124. package/src/public/fixtures/utils.ts +23 -24
  125. package/src/public/fuzzing/avm_fuzzer_simulator.ts +26 -11
  126. package/src/public/fuzzing/avm_simulator_bin.ts +3 -5
  127. package/src/public/index.ts +7 -3
  128. package/src/public/public_db_sources.ts +21 -14
  129. package/src/public/public_processor/guarded_merkle_tree.ts +11 -8
  130. package/src/public/public_processor/public_processor.ts +154 -98
  131. package/src/public/public_processor/public_processor_metrics.ts +12 -0
  132. package/src/public/public_tx_simulator/{dumping_cpp_public_tx_simulator.ts → dumping_public_tx_simulator.ts} +15 -31
  133. package/src/public/public_tx_simulator/factories.ts +29 -11
  134. package/src/public/public_tx_simulator/index.ts +6 -5
  135. package/src/public/public_tx_simulator/public_tx_simulator.ts +139 -476
  136. package/src/public/public_tx_simulator/public_tx_simulator_base.ts +37 -0
  137. package/src/public/public_tx_simulator/public_tx_simulator_interface.ts +5 -5
  138. package/dest/public/avm/avm_context.d.ts +0 -41
  139. package/dest/public/avm/avm_context.d.ts.map +0 -1
  140. package/dest/public/avm/avm_context.js +0 -44
  141. package/dest/public/avm/avm_contract_call_result.d.ts +0 -32
  142. package/dest/public/avm/avm_contract_call_result.d.ts.map +0 -1
  143. package/dest/public/avm/avm_contract_call_result.js +0 -54
  144. package/dest/public/avm/avm_execution_environment.d.ts +0 -24
  145. package/dest/public/avm/avm_execution_environment.d.ts.map +0 -1
  146. package/dest/public/avm/avm_execution_environment.js +0 -33
  147. package/dest/public/avm/avm_gas.d.ts +0 -44
  148. package/dest/public/avm/avm_gas.d.ts.map +0 -1
  149. package/dest/public/avm/avm_gas.js +0 -195
  150. package/dest/public/avm/avm_machine_state.d.ts +0 -98
  151. package/dest/public/avm/avm_machine_state.d.ts.map +0 -1
  152. package/dest/public/avm/avm_machine_state.js +0 -110
  153. package/dest/public/avm/avm_memory_types.d.ts +0 -275
  154. package/dest/public/avm/avm_memory_types.d.ts.map +0 -1
  155. package/dest/public/avm/avm_memory_types.js +0 -354
  156. package/dest/public/avm/avm_simulator.d.ts +0 -41
  157. package/dest/public/avm/avm_simulator.d.ts.map +0 -1
  158. package/dest/public/avm/avm_simulator.js +0 -192
  159. package/dest/public/avm/avm_simulator_interface.d.ts +0 -9
  160. package/dest/public/avm/avm_simulator_interface.d.ts.map +0 -1
  161. package/dest/public/avm/avm_simulator_interface.js +0 -3
  162. package/dest/public/avm/calldata.d.ts +0 -51
  163. package/dest/public/avm/calldata.d.ts.map +0 -1
  164. package/dest/public/avm/calldata.js +0 -63
  165. package/dest/public/avm/errors.d.ts +0 -104
  166. package/dest/public/avm/errors.d.ts.map +0 -1
  167. package/dest/public/avm/errors.js +0 -141
  168. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts +0 -22
  169. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts.map +0 -1
  170. package/dest/public/avm/fixtures/avm_simulation_tester.js +0 -84
  171. package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts.map +0 -1
  172. package/dest/public/avm/fixtures/initializers.d.ts +0 -42
  173. package/dest/public/avm/fixtures/initializers.d.ts.map +0 -1
  174. package/dest/public/avm/fixtures/initializers.js +0 -45
  175. package/dest/public/avm/fixtures/utils.d.ts +0 -39
  176. package/dest/public/avm/fixtures/utils.d.ts.map +0 -1
  177. package/dest/public/avm/index.d.ts +0 -2
  178. package/dest/public/avm/index.d.ts.map +0 -1
  179. package/dest/public/avm/index.js +0 -1
  180. package/dest/public/avm/opcodes/accrued_substate.d.ts +0 -74
  181. package/dest/public/avm/opcodes/accrued_substate.d.ts.map +0 -1
  182. package/dest/public/avm/opcodes/accrued_substate.js +0 -255
  183. package/dest/public/avm/opcodes/addressing_mode.d.ts +0 -31
  184. package/dest/public/avm/opcodes/addressing_mode.d.ts.map +0 -1
  185. package/dest/public/avm/opcodes/addressing_mode.js +0 -94
  186. package/dest/public/avm/opcodes/arithmetic.d.ts +0 -49
  187. package/dest/public/avm/opcodes/arithmetic.d.ts.map +0 -1
  188. package/dest/public/avm/opcodes/arithmetic.js +0 -97
  189. package/dest/public/avm/opcodes/bitwise.d.ts +0 -42
  190. package/dest/public/avm/opcodes/bitwise.d.ts.map +0 -1
  191. package/dest/public/avm/opcodes/bitwise.js +0 -99
  192. package/dest/public/avm/opcodes/comparators.d.ts +0 -25
  193. package/dest/public/avm/opcodes/comparators.d.ts.map +0 -1
  194. package/dest/public/avm/opcodes/comparators.js +0 -43
  195. package/dest/public/avm/opcodes/contract.d.ts +0 -20
  196. package/dest/public/avm/opcodes/contract.d.ts.map +0 -1
  197. package/dest/public/avm/opcodes/contract.js +0 -65
  198. package/dest/public/avm/opcodes/control_flow.d.ts +0 -41
  199. package/dest/public/avm/opcodes/control_flow.d.ts.map +0 -1
  200. package/dest/public/avm/opcodes/control_flow.js +0 -107
  201. package/dest/public/avm/opcodes/conversion.d.ts +0 -18
  202. package/dest/public/avm/opcodes/conversion.d.ts.map +0 -1
  203. package/dest/public/avm/opcodes/conversion.js +0 -333
  204. package/dest/public/avm/opcodes/ec_add.d.ts +0 -19
  205. package/dest/public/avm/opcodes/ec_add.d.ts.map +0 -1
  206. package/dest/public/avm/opcodes/ec_add.js +0 -93
  207. package/dest/public/avm/opcodes/environment_getters.d.ts +0 -28
  208. package/dest/public/avm/opcodes/environment_getters.d.ts.map +0 -1
  209. package/dest/public/avm/opcodes/environment_getters.js +0 -77
  210. package/dest/public/avm/opcodes/external_calls.d.ts +0 -59
  211. package/dest/public/avm/opcodes/external_calls.d.ts.map +0 -1
  212. package/dest/public/avm/opcodes/external_calls.js +0 -210
  213. package/dest/public/avm/opcodes/hashing.d.ts +0 -36
  214. package/dest/public/avm/opcodes/hashing.d.ts.map +0 -1
  215. package/dest/public/avm/opcodes/hashing.js +0 -119
  216. package/dest/public/avm/opcodes/index.d.ts +0 -16
  217. package/dest/public/avm/opcodes/index.d.ts.map +0 -1
  218. package/dest/public/avm/opcodes/index.js +0 -15
  219. package/dest/public/avm/opcodes/instruction.d.ts +0 -74
  220. package/dest/public/avm/opcodes/instruction.d.ts.map +0 -1
  221. package/dest/public/avm/opcodes/instruction.js +0 -95
  222. package/dest/public/avm/opcodes/instruction_impl.d.ts +0 -19
  223. package/dest/public/avm/opcodes/instruction_impl.d.ts.map +0 -1
  224. package/dest/public/avm/opcodes/instruction_impl.js +0 -30
  225. package/dest/public/avm/opcodes/memory.d.ts +0 -74
  226. package/dest/public/avm/opcodes/memory.d.ts.map +0 -1
  227. package/dest/public/avm/opcodes/memory.js +0 -257
  228. package/dest/public/avm/opcodes/misc.d.ts +0 -18
  229. package/dest/public/avm/opcodes/misc.d.ts.map +0 -1
  230. package/dest/public/avm/opcodes/misc.js +0 -73
  231. package/dest/public/avm/opcodes/storage.d.ts +0 -25
  232. package/dest/public/avm/opcodes/storage.d.ts.map +0 -1
  233. package/dest/public/avm/opcodes/storage.js +0 -78
  234. package/dest/public/avm/revert_reason.d.ts +0 -18
  235. package/dest/public/avm/revert_reason.d.ts.map +0 -1
  236. package/dest/public/avm/revert_reason.js +0 -39
  237. package/dest/public/avm/serialization/buffer_cursor.d.ts +0 -26
  238. package/dest/public/avm/serialization/buffer_cursor.d.ts.map +0 -1
  239. package/dest/public/avm/serialization/buffer_cursor.js +0 -99
  240. package/dest/public/avm/serialization/bytecode_serialization.d.ts +0 -17
  241. package/dest/public/avm/serialization/bytecode_serialization.d.ts.map +0 -1
  242. package/dest/public/avm/serialization/bytecode_serialization.js +0 -336
  243. package/dest/public/avm/serialization/instruction_serialization.d.ts +0 -114
  244. package/dest/public/avm/serialization/instruction_serialization.d.ts.map +0 -1
  245. package/dest/public/avm/serialization/instruction_serialization.js +0 -261
  246. package/dest/public/avm/test_utils.d.ts +0 -15
  247. package/dest/public/avm/test_utils.d.ts.map +0 -1
  248. package/dest/public/avm/test_utils.js +0 -44
  249. package/dest/public/debug_fn_name.d.ts +0 -18
  250. package/dest/public/debug_fn_name.d.ts.map +0 -1
  251. package/dest/public/debug_fn_name.js +0 -37
  252. package/dest/public/fixtures/custom_bytecode_tests.d.ts +0 -12
  253. package/dest/public/fixtures/custom_bytecode_tests.d.ts.map +0 -1
  254. package/dest/public/fixtures/custom_bytecode_tests.js +0 -174
  255. package/dest/public/fixtures/minimal_public_tx.d.ts +0 -4
  256. package/dest/public/fixtures/minimal_public_tx.d.ts.map +0 -1
  257. package/dest/public/fixtures/minimal_public_tx.js +0 -19
  258. package/dest/public/fixtures/opcode_spammer.d.ts +0 -122
  259. package/dest/public/fixtures/opcode_spammer.d.ts.map +0 -1
  260. package/dest/public/fixtures/opcode_spammer.js +0 -1653
  261. package/dest/public/hinting_db_sources.d.ts +0 -80
  262. package/dest/public/hinting_db_sources.d.ts.map +0 -1
  263. package/dest/public/hinting_db_sources.js +0 -355
  264. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts +0 -19
  265. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts.map +0 -1
  266. package/dest/public/public_tx_simulator/contract_provider_for_cpp.js +0 -98
  267. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts +0 -53
  268. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts.map +0 -1
  269. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.js +0 -132
  270. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts +0 -42
  271. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts.map +0 -1
  272. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.js +0 -86
  273. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts +0 -30
  274. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts.map +0 -1
  275. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.js +0 -171
  276. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts +0 -23
  277. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts.map +0 -1
  278. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts +0 -31
  279. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts.map +0 -1
  280. package/dest/public/public_tx_simulator/measured_public_tx_simulator.js +0 -51
  281. package/dest/public/public_tx_simulator/public_tx_context.d.ts +0 -131
  282. package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +0 -1
  283. package/dest/public/public_tx_simulator/public_tx_context.js +0 -300
  284. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts +0 -21
  285. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts.map +0 -1
  286. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.js +0 -415
  287. package/dest/public/side_effect_trace.d.ts +0 -87
  288. package/dest/public/side_effect_trace.d.ts.map +0 -1
  289. package/dest/public/side_effect_trace.js +0 -199
  290. package/dest/public/side_effect_trace_interface.d.ts +0 -22
  291. package/dest/public/side_effect_trace_interface.d.ts.map +0 -1
  292. package/dest/public/side_effect_trace_interface.js +0 -1
  293. package/dest/public/state_manager/index.d.ts +0 -2
  294. package/dest/public/state_manager/index.d.ts.map +0 -1
  295. package/dest/public/state_manager/index.js +0 -1
  296. package/dest/public/state_manager/nullifiers.d.ts +0 -61
  297. package/dest/public/state_manager/nullifiers.d.ts.map +0 -1
  298. package/dest/public/state_manager/nullifiers.js +0 -92
  299. package/dest/public/state_manager/public_storage.d.ts +0 -66
  300. package/dest/public/state_manager/public_storage.d.ts.map +0 -1
  301. package/dest/public/state_manager/public_storage.js +0 -145
  302. package/dest/public/state_manager/state_manager.d.ts +0 -170
  303. package/dest/public/state_manager/state_manager.d.ts.map +0 -1
  304. package/dest/public/state_manager/state_manager.js +0 -402
  305. package/src/public/avm/avm_context.ts +0 -61
  306. package/src/public/avm/avm_contract_call_result.ts +0 -69
  307. package/src/public/avm/avm_execution_environment.ts +0 -51
  308. package/src/public/avm/avm_gas.ts +0 -183
  309. package/src/public/avm/avm_machine_state.ts +0 -170
  310. package/src/public/avm/avm_memory_types.ts +0 -440
  311. package/src/public/avm/avm_simulator.ts +0 -279
  312. package/src/public/avm/avm_simulator_interface.ts +0 -8
  313. package/src/public/avm/calldata.ts +0 -100
  314. package/src/public/avm/errors.ts +0 -177
  315. package/src/public/avm/fixtures/avm_simulation_tester.ts +0 -122
  316. package/src/public/avm/fixtures/initializers.ts +0 -103
  317. package/src/public/avm/index.ts +0 -1
  318. package/src/public/avm/opcodes/accrued_substate.ts +0 -286
  319. package/src/public/avm/opcodes/addressing_mode.ts +0 -111
  320. package/src/public/avm/opcodes/arithmetic.ts +0 -129
  321. package/src/public/avm/opcodes/bitwise.ts +0 -113
  322. package/src/public/avm/opcodes/comparators.ts +0 -55
  323. package/src/public/avm/opcodes/contract.ts +0 -72
  324. package/src/public/avm/opcodes/control_flow.ts +0 -123
  325. package/src/public/avm/opcodes/conversion.ts +0 -104
  326. package/src/public/avm/opcodes/ec_add.ts +0 -105
  327. package/src/public/avm/opcodes/environment_getters.ts +0 -87
  328. package/src/public/avm/opcodes/external_calls.ts +0 -262
  329. package/src/public/avm/opcodes/hashing.ts +0 -151
  330. package/src/public/avm/opcodes/index.ts +0 -15
  331. package/src/public/avm/opcodes/instruction.ts +0 -136
  332. package/src/public/avm/opcodes/instruction_impl.ts +0 -36
  333. package/src/public/avm/opcodes/memory.ts +0 -293
  334. package/src/public/avm/opcodes/misc.ts +0 -102
  335. package/src/public/avm/opcodes/storage.ts +0 -95
  336. package/src/public/avm/revert_reason.ts +0 -58
  337. package/src/public/avm/serialization/buffer_cursor.ts +0 -118
  338. package/src/public/avm/serialization/bytecode_serialization.ts +0 -215
  339. package/src/public/avm/serialization/instruction_serialization.ts +0 -249
  340. package/src/public/avm/test_utils.ts +0 -64
  341. package/src/public/debug_fn_name.ts +0 -52
  342. package/src/public/fixtures/custom_bytecode_tests.ts +0 -228
  343. package/src/public/fixtures/minimal_public_tx.ts +0 -26
  344. package/src/public/fixtures/opcode_spammer.ts +0 -1721
  345. package/src/public/hinting_db_sources.ts +0 -607
  346. package/src/public/public_tx_simulator/contract_provider_for_cpp.ts +0 -124
  347. package/src/public/public_tx_simulator/cpp_public_tx_simulator.ts +0 -211
  348. package/src/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.ts +0 -134
  349. package/src/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.ts +0 -239
  350. package/src/public/public_tx_simulator/measured_public_tx_simulator.ts +0 -105
  351. package/src/public/public_tx_simulator/public_tx_context.ts +0 -484
  352. package/src/public/public_tx_simulator/telemetry_public_tx_simulator.ts +0 -63
  353. package/src/public/side_effect_trace.ts +0 -293
  354. package/src/public/side_effect_trace_interface.ts +0 -28
  355. package/src/public/state_manager/index.ts +0 -1
  356. package/src/public/state_manager/nullifiers.ts +0 -103
  357. package/src/public/state_manager/public_storage.ts +0 -174
  358. package/src/public/state_manager/state_manager.ts +0 -569
@@ -16,21 +16,18 @@
16
16
  return this.#simulate((wrappedCallback)=>this.simulator.executeUserCircuit(input, artifact, wrappedCallback), input, artifact.bytecode, artifact.contractName, artifact.name, callback);
17
17
  }
18
18
  async #simulate(simulateFn, input, bytecode, contractName, functionName, callback) {
19
- // Start recording circuit execution
20
- await this.recorder.start(input, bytecode, contractName, functionName);
21
- // If callback was provided, we wrap it in a circuit recorder callback wrapper
19
+ // If a callback was provided, we wrap it so that its oracle calls are recorded. The wrapped callback reads the
20
+ // active recording lazily, so it picks up the recording opened by record() below.
22
21
  const wrappedCallback = this.recorder.wrapCallback(callback);
23
- let result;
24
- try {
25
- result = await simulateFn(wrappedCallback);
26
- } catch (error) {
27
- // If an error occurs, we finalize the recording file with the error
28
- await this.recorder.finishWithError(error);
29
- throw error;
30
- }
31
- // Witness generation is complete so we finish the circuit recorder
32
- const recording = await this.recorder.finish();
33
- result.oracles = recording.oracleCalls?.reduce((acc, { time, name })=>{
22
+ // record() opens a recording for this circuit, runs the simulation within it, and finalizes it. A simulation
23
+ // failure is re-thrown unchanged, so recorder bookkeeping never masks the underlying error.
24
+ const { result, recording } = await this.recorder.record({
25
+ input,
26
+ bytecode,
27
+ circuitName: contractName,
28
+ functionName
29
+ }, ()=>simulateFn(wrappedCallback));
30
+ result.oracles = recording.oracleCalls.reduce((acc, { time, name })=>{
34
31
  if (!acc[name]) {
35
32
  acc[name] = {
36
33
  times: []
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudF9wcm9vZl9mZXRjaGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHVibGljL2F2bS90ZXN0aW5nL2FjY291bnRfcHJvb2ZfZmV0Y2hlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account_proof_fetcher.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/testing/account_proof_fetcher.ts"],"names":[],"mappings":""}
@@ -0,0 +1,152 @@
1
+ /**
2
+ * Fetches an account proof from the Ethereum mainnet and saves it as account_proof.json.
3
+ * This script is not using any Aztec library code, so it's easily portable.
4
+ */ import fs from 'fs';
5
+ import { dirname, join } from 'path';
6
+ import { fileURLToPath } from 'url';
7
+ import { createPublicClient, fromRlp, hexToBytes, http } from 'viem';
8
+ import { mainnet } from 'viem/chains';
9
+ const __dirname = dirname(fileURLToPath(import.meta.url));
10
+ const RPC_URL = process.env.RPC_URL;
11
+ const ADDRESS = process.env.ADDRESS || '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045';
12
+ const BLOCK_TAG = process.env.BLOCK_NUMBER ? BigInt(process.env.BLOCK_NUMBER) : 'latest';
13
+ const MAX_ACCOUNT_PATH = 15;
14
+ function padTo(arr, len) {
15
+ return [
16
+ ...arr,
17
+ ...Array(len - arr.length).fill(0)
18
+ ].slice(0, len);
19
+ }
20
+ function toBytes(hex) {
21
+ return Array.from(hexToBytes(hex));
22
+ }
23
+ function bytesToU64s(bytes) {
24
+ const paddedBytes = padTo(bytes, 32);
25
+ return Array.from({
26
+ length: 4
27
+ }, (_, i)=>{
28
+ let val = 0n;
29
+ for(let j = 0; j < 8; j++){
30
+ val += BigInt(paddedBytes[i * 8 + j]) << BigInt(j * 8);
31
+ }
32
+ return val.toString();
33
+ });
34
+ }
35
+ function toBytesAndLen(val) {
36
+ if (val === 0n || val === 0) {
37
+ return {
38
+ bytes: [
39
+ 0
40
+ ],
41
+ length: 0
42
+ };
43
+ }
44
+ let hex = val.toString(16);
45
+ if (hex.length % 2) {
46
+ hex = '0' + hex;
47
+ }
48
+ const bytes = toBytes(`0x${hex}`);
49
+ return {
50
+ bytes,
51
+ length: bytes.length
52
+ };
53
+ }
54
+ function parseNode(rlp) {
55
+ // Should be safe when working with branches and extensions without embedded children.
56
+ const decoded = fromRlp(rlp);
57
+ const node = {
58
+ rows: Array(16).fill(0).map(()=>Array(32).fill(0)),
59
+ row_exist: Array(16).fill(false),
60
+ node_type: 0
61
+ };
62
+ if (decoded.length === 17) {
63
+ for(let i = 0; i < 16; i++){
64
+ if (decoded[i] !== '0x') {
65
+ node.row_exist[i] = true;
66
+ node.rows[i] = padTo(toBytes(decoded[i]), 32);
67
+ }
68
+ }
69
+ } else if (decoded.length === 2) {
70
+ const keyBytes = toBytes(decoded[0]);
71
+ const prefix = keyBytes[0];
72
+ if (prefix >> 4 >= 2) {
73
+ throw new Error('Unsupported: leaf node in proof path');
74
+ }
75
+ node.node_type = 1;
76
+ // Extension header format expected by the noir code: check out storage_proof types.nr.
77
+ node.rows[0][0] = prefix >> 4;
78
+ node.rows[0][8] = prefix & 0x0f;
79
+ node.rows[0][16] = keyBytes.length - 1;
80
+ for(let i = 1; i < keyBytes.length && i < 32; i++){
81
+ node.rows[1][i - 1] = keyBytes[i];
82
+ }
83
+ node.rows[2] = padTo(toBytes(decoded[1]), 32);
84
+ node.row_exist[0] = node.row_exist[1] = node.row_exist[2] = true;
85
+ }
86
+ return node;
87
+ }
88
+ function parseProof(proof, maxLen) {
89
+ const nodes = proof.slice(0, -1).slice(0, maxLen).map(parseNode);
90
+ while(nodes.length < maxLen){
91
+ nodes.push({
92
+ rows: Array(16).fill(0).map(()=>Array(32).fill(0)),
93
+ row_exist: Array(16).fill(false),
94
+ node_type: 0
95
+ });
96
+ }
97
+ return nodes;
98
+ }
99
+ function nodeToLibFormat(node) {
100
+ return {
101
+ rows: node.rows.map(bytesToU64s),
102
+ row_exist: node.row_exist,
103
+ node_type: String(node.node_type)
104
+ };
105
+ }
106
+ async function main() {
107
+ if (!RPC_URL) {
108
+ throw new Error('RPC_URL is not set');
109
+ }
110
+ console.log(`Fetching account proof for ${ADDRESS}`);
111
+ const client = createPublicClient({
112
+ chain: mainnet,
113
+ transport: http(RPC_URL)
114
+ });
115
+ const [blockNumber, proof, block] = await Promise.all([
116
+ client.getBlockNumber(),
117
+ client.getProof({
118
+ address: ADDRESS,
119
+ storageKeys: [],
120
+ blockNumber: BLOCK_TAG === 'latest' ? undefined : BLOCK_TAG
121
+ }),
122
+ client.getBlock({
123
+ blockNumber: BLOCK_TAG === 'latest' ? undefined : BLOCK_TAG
124
+ })
125
+ ]);
126
+ console.log(`Block: ${blockNumber}, Account nodes: ${proof.accountProof.length}`);
127
+ // The -1 is because the last node in the proof is the leaf, which is excluded from path verification.
128
+ const accountPathLen = proof.accountProof.length - 1;
129
+ if (accountPathLen > MAX_ACCOUNT_PATH) {
130
+ throw new Error(`Account proof path length ${accountPathLen} exceeds MAX_ACCOUNT_PATH ${MAX_ACCOUNT_PATH}. Increase the limit.`);
131
+ }
132
+ const nonce = toBytesAndLen(proof.nonce);
133
+ const balance = toBytesAndLen(proof.balance);
134
+ const data = {
135
+ block_number: String(blockNumber),
136
+ node_length: String(accountPathLen),
137
+ root: bytesToU64s(toBytes(block.stateRoot)),
138
+ nodes: parseProof(proof.accountProof, MAX_ACCOUNT_PATH).map(nodeToLibFormat),
139
+ account: {
140
+ address: toBytes(ADDRESS).map(String),
141
+ balance: padTo(balance.bytes, 32).map(String),
142
+ balance_length: String(balance.length),
143
+ code_hash: bytesToU64s(toBytes(proof.codeHash)),
144
+ nonce: padTo(nonce.bytes, 8).map(String),
145
+ nonce_length: String(nonce.length),
146
+ storage_hash: bytesToU64s(toBytes(proof.storageHash))
147
+ }
148
+ };
149
+ fs.writeFileSync(join(__dirname, 'account_proof.json'), JSON.stringify(data, null, 2));
150
+ console.log('account_proof.json generated');
151
+ }
152
+ main().catch(console.error);
@@ -30,9 +30,10 @@ export declare abstract class BaseAvmSimulationTester {
30
30
  registerAndDeployContract(constructorArgs: any[], deployer: AztecAddress, contractArtifact: ContractArtifact, skipNullifierInsertion?: boolean, seed?: number, contractClassSeed?: number, originalContractClassId?: Fr): Promise<ContractInstanceWithAddress>;
31
31
  registerFeeJuiceContract(): Promise<ContractInstanceWithAddress>;
32
32
  registerAuthContract(): Promise<ContractInstanceWithAddress>;
33
+ registerClassRegistryContract(): Promise<ContractInstanceWithAddress>;
33
34
  registerInstanceRegistryContract(): Promise<ContractInstanceWithAddress>;
34
35
  addContractInstance(contractInstance: ContractInstanceWithAddress, skipNullifierInsertion?: boolean): Promise<void>;
35
36
  private insertContractAddressNullifier;
36
37
  insertNullifier(contractThatEmitted: AztecAddress, nullifier: Fr): Promise<void>;
37
38
  }
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV9hdm1fc2ltdWxhdGlvbl90ZXN0ZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wdWJsaWMvYXZtL2ZpeHR1cmVzL2Jhc2VfYXZtX3NpbXVsYXRpb25fdGVzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQU1wRCxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEtBQUssRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTFFLE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHakYsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUc5Rjs7Ozs7Ozs7OztHQVVHO0FBQ0gsOEJBQXNCLHVCQUF1QjtJQUlsQyxrQkFBa0IsRUFBRSx3QkFBd0I7SUFDNUMsV0FBVyxFQUFFLHlCQUF5QjtJQUM3QyxPQUFPLENBQUMsc0JBQXNCO0lBTHpCLE1BQU0seUNBQXlDO0lBRXRELFlBQ1Msa0JBQWtCLEVBQUUsd0JBQXdCLEVBQzVDLFdBQVcsRUFBRSx5QkFBeUIsRUFDckMsc0JBQXNCLEtBQW1CLEVBQy9DO0lBRUUsa0JBQWtCLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxPQUFPLEtBQThCLGlCQUlyRjtJQUVLLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxpQkFLaEU7SUFFRDs7O09BR0c7SUFDRyx5QkFBeUIsQ0FDN0IsZUFBZSxFQUFFLEdBQUcsRUFBRSxFQUN0QixRQUFRLEVBQUUsWUFBWSxFQUN0QixnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFDbEMsc0JBQXNCLFVBQVEsRUFDOUIsSUFBSSxTQUFJLEVBQ1IsaUJBQWlCLFNBQU8sRUFDeEIsdUJBQXVCLENBQUMsRUFBRSxFQUFFLEdBQzNCLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQWdCdEM7SUFFSyx3QkFBd0IsSUFBSSxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FTckU7SUFFSyxvQkFBb0IsSUFBSSxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FhakU7SUFFSyxnQ0FBZ0MsSUFBSSxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FhN0U7SUFFSyxtQkFBbUIsQ0FBQyxnQkFBZ0IsRUFBRSwyQkFBMkIsRUFBRSxzQkFBc0IsVUFBUSxpQkFLdEc7WUFFYSw4QkFBOEI7SUFRdEMsZUFBZSxDQUFDLG1CQUFtQixFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsRUFBRSxpQkFHckU7Q0FDRiJ9
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV9hdm1fc2ltdWxhdGlvbl90ZXN0ZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wdWJsaWMvYXZtL3Rlc3RpbmcvYmFzZV9hdm1fc2ltdWxhdGlvbl90ZXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBT3BELE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sS0FBSyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFMUUsT0FBTyxLQUFLLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUdqRixPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBRzlGOzs7Ozs7Ozs7O0dBVUc7QUFDSCw4QkFBc0IsdUJBQXVCO0lBSWxDLGtCQUFrQixFQUFFLHdCQUF3QjtJQUM1QyxXQUFXLEVBQUUseUJBQXlCO0lBQzdDLE9BQU8sQ0FBQyxzQkFBc0I7SUFMekIsTUFBTSx5Q0FBeUM7SUFFdEQsWUFDUyxrQkFBa0IsRUFBRSx3QkFBd0IsRUFDNUMsV0FBVyxFQUFFLHlCQUF5QixFQUNyQyxzQkFBc0IsS0FBbUIsRUFDL0M7SUFFRSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsWUFBWSxFQUFFLE9BQU8sS0FBOEIsaUJBSXJGO0lBRUssZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLGlCQUtoRTtJQUVEOzs7T0FHRztJQUNHLHlCQUF5QixDQUM3QixlQUFlLEVBQUUsR0FBRyxFQUFFLEVBQ3RCLFFBQVEsRUFBRSxZQUFZLEVBQ3RCLGdCQUFnQixFQUFFLGdCQUFnQixFQUNsQyxzQkFBc0IsVUFBUSxFQUM5QixJQUFJLFNBQUksRUFDUixpQkFBaUIsU0FBTyxFQUN4Qix1QkFBdUIsQ0FBQyxFQUFFLEVBQUUsR0FDM0IsT0FBTyxDQUFDLDJCQUEyQixDQUFDLENBZ0J0QztJQUVLLHdCQUF3QixJQUFJLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQVNyRTtJQUVLLG9CQUFvQixJQUFJLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQWlCakU7SUFFSyw2QkFBNkIsSUFBSSxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FhMUU7SUFFSyxnQ0FBZ0MsSUFBSSxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FhN0U7SUFFSyxtQkFBbUIsQ0FBQyxnQkFBZ0IsRUFBRSwyQkFBMkIsRUFBRSxzQkFBc0IsVUFBUSxpQkFLdEc7WUFFYSw4QkFBOEI7SUFRdEMsZUFBZSxDQUFDLG1CQUFtQixFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsRUFBRSxpQkFHckU7Q0FDRiJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base_avm_simulation_tester.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/testing/base_avm_simulation_tester.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAOpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAE1E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAGjF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AAG9F;;;;;;;;;;GAUG;AACH,8BAAsB,uBAAuB;IAIlC,kBAAkB,EAAE,wBAAwB;IAC5C,WAAW,EAAE,yBAAyB;IAC7C,OAAO,CAAC,sBAAsB;IALzB,MAAM,yCAAyC;IAEtD,YACS,kBAAkB,EAAE,wBAAwB,EAC5C,WAAW,EAAE,yBAAyB,EACrC,sBAAsB,KAAmB,EAC/C;IAEE,kBAAkB,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,KAA8B,iBAIrF;IAEK,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,iBAKhE;IAED;;;OAGG;IACG,yBAAyB,CAC7B,eAAe,EAAE,GAAG,EAAE,EACtB,QAAQ,EAAE,YAAY,EACtB,gBAAgB,EAAE,gBAAgB,EAClC,sBAAsB,UAAQ,EAC9B,IAAI,SAAI,EACR,iBAAiB,SAAO,EACxB,uBAAuB,CAAC,EAAE,EAAE,GAC3B,OAAO,CAAC,2BAA2B,CAAC,CAgBtC;IAEK,wBAAwB,IAAI,OAAO,CAAC,2BAA2B,CAAC,CASrE;IAEK,oBAAoB,IAAI,OAAO,CAAC,2BAA2B,CAAC,CAiBjE;IAEK,6BAA6B,IAAI,OAAO,CAAC,2BAA2B,CAAC,CAa1E;IAEK,gCAAgC,IAAI,OAAO,CAAC,2BAA2B,CAAC,CAa7E;IAEK,mBAAmB,CAAC,gBAAgB,EAAE,2BAA2B,EAAE,sBAAsB,UAAQ,iBAKtG;YAEa,8BAA8B;IAQtC,eAAe,CAAC,mBAAmB,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,iBAGrE;CACF"}
@@ -2,9 +2,10 @@ import { CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS } from '@aztec/constants';
2
2
  import { Fr } from '@aztec/foundation/curves/bn254';
3
3
  import { createLogger } from '@aztec/foundation/log';
4
4
  import { ProtocolContractAddress } from '@aztec/protocol-contracts';
5
- import { getCanonicalAuthRegistry } from '@aztec/protocol-contracts/auth-registry';
5
+ import { getCanonicalClassRegistry } from '@aztec/protocol-contracts/class-registry';
6
6
  import { computeFeePayerBalanceStorageSlot, getCanonicalFeeJuice } from '@aztec/protocol-contracts/fee-juice';
7
7
  import { getCanonicalInstanceRegistry } from '@aztec/protocol-contracts/instance-registry';
8
+ import { getStandardAuthRegistry } from '@aztec/standard-contracts/auth-registry';
8
9
  import { PublicDataWrite } from '@aztec/stdlib/avm';
9
10
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
10
11
  import { computePublicDataTreeLeafSlot, siloNullifier } from '@aztec/stdlib/hash';
@@ -66,15 +67,29 @@ import { createContractClassAndInstance } from './utils.js';
66
67
  return feeJuice.instance;
67
68
  }
68
69
  async registerAuthContract() {
69
- const authRegistry = await getCanonicalAuthRegistry();
70
+ const authRegistry = await getStandardAuthRegistry();
70
71
  const authRegistryContractClassPublic = {
71
72
  ...authRegistry.contractClass,
72
73
  privateFunctions: [],
73
74
  utilityFunctions: []
74
75
  };
75
76
  await this.contractDataSource.addNewContract(authRegistry.artifact, authRegistryContractClassPublic, authRegistry.instance);
77
+ // AuthRegistry is a standard contract (not a protocol contract), so the AVM enforces a
78
+ // deployment-nullifier check on every instance retrieval. Insert the nullifier here so
79
+ // calls to AuthRegistry don't EXCEPTIONAL_HALT during simulation.
80
+ await this.insertContractAddressNullifier(authRegistry.instance.address);
76
81
  return authRegistry.instance;
77
82
  }
83
+ async registerClassRegistryContract() {
84
+ const classRegistry = await getCanonicalClassRegistry();
85
+ const classRegistryContractClassPublic = {
86
+ ...classRegistry.contractClass,
87
+ privateFunctions: [],
88
+ utilityFunctions: []
89
+ };
90
+ await this.contractDataSource.addNewContract(classRegistry.artifact, classRegistryContractClassPublic, classRegistry.instance);
91
+ return classRegistry.instance;
92
+ }
78
93
  async registerInstanceRegistryContract() {
79
94
  const instanceRegistry = await getCanonicalInstanceRegistry();
80
95
  const instanceRegistryContractClassPublic = {
@@ -92,7 +107,7 @@ import { createContractClassAndInstance } from './utils.js';
92
107
  await this.contractDataSource.addContractInstance(contractInstance);
93
108
  }
94
109
  async insertContractAddressNullifier(contractAddress) {
95
- const contractAddressNullifier = await siloNullifier(AztecAddress.fromNumber(CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS), contractAddress.toField());
110
+ const contractAddressNullifier = await siloNullifier(AztecAddress.fromNumberUnsafe(CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS), contractAddress.toField());
96
111
  await this.merkleTrees.sequentialInsert(MerkleTreeId.NULLIFIER_TREE, [
97
112
  contractAddressNullifier.toBuffer()
98
113
  ]);
@@ -0,0 +1,32 @@
1
+ import { BlockNumber } from '@aztec/foundation/branded-types';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
+ import { type ContractArtifact, type FunctionAbi, type FunctionArtifact, FunctionSelector } from '@aztec/stdlib/abi';
4
+ import { AztecAddress } from '@aztec/stdlib/aztec-address';
5
+ import { type ContractClassPublic, type ContractInstanceWithAddress } from '@aztec/stdlib/contract';
6
+ import type { UInt64 } from '@aztec/stdlib/types';
7
+ export declare const PUBLIC_DISPATCH_FN_NAME = "public_dispatch";
8
+ export declare const DEFAULT_TIMESTAMP: UInt64;
9
+ export declare const DEFAULT_BLOCK_NUMBER: BlockNumber;
10
+ /**
11
+ * Create a new object with all the same properties as the original, except for the ones in the overrides object.
12
+ */
13
+ export declare function allSameExcept(original: any, overrides: any): any;
14
+ export declare function getFunctionSelector(functionName: string, contractArtifact: ContractArtifact): Promise<FunctionSelector>;
15
+ export declare function getContractFunctionArtifact(functionName: string, contractArtifact: ContractArtifact): FunctionArtifact | undefined;
16
+ export declare function getContractFunctionAbi(functionName: string, contractArtifact: ContractArtifact): FunctionAbi | undefined;
17
+ /**
18
+ * Create a contract class and instance given constructor args, artifact, etc.
19
+ * NOTE: This is useful for testing real-ish contract class registration and instance deployment TXs (via logs)
20
+ * @param constructorArgs - The constructor arguments for the contract.
21
+ * @param deployer - The deployer of the contract.
22
+ * @param contractArtifact - The contract artifact for the contract.
23
+ * @param seed - The seed for the contract.
24
+ * @param originalContractClassId - The original contract class ID (if upgraded)
25
+ * @returns The contract class, instance, and contract address nullifier.
26
+ */
27
+ export declare function createContractClassAndInstance(constructorArgs: any[], deployer: AztecAddress, contractArtifact: ContractArtifact, seed?: number, contractClassSeed?: number, originalContractClassId?: Fr): Promise<{
28
+ contractClass: ContractClassPublic;
29
+ contractInstance: ContractInstanceWithAddress;
30
+ contractAddressNullifier: Fr;
31
+ }>;
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wdWJsaWMvYXZtL3Rlc3RpbmcvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsS0FBSyxnQkFBZ0IsRUFDckIsS0FBSyxXQUFXLEVBQ2hCLEtBQUssZ0JBQWdCLEVBQ3JCLGdCQUFnQixFQUVqQixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQ0wsS0FBSyxtQkFBbUIsRUFDeEIsS0FBSywyQkFBMkIsRUFFakMsTUFBTSx3QkFBd0IsQ0FBQztBQUloQyxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUtsRCxlQUFPLE1BQU0sdUJBQXVCLG9CQUFvQixDQUFDO0FBQ3pELGVBQU8sTUFBTSxpQkFBaUIsRUFBRSxNQUFlLENBQUM7QUFDaEQsZUFBTyxNQUFNLG9CQUFvQixhQUFrQixDQUFDO0FBRXBEOztHQUVHO0FBQ0gsd0JBQWdCLGFBQWEsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUVoRTtBQUVELHdCQUFnQixtQkFBbUIsQ0FDakMsWUFBWSxFQUFFLE1BQU0sRUFDcEIsZ0JBQWdCLEVBQUUsZ0JBQWdCLEdBQ2pDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUszQjtBQUVELHdCQUFnQiwyQkFBMkIsQ0FDekMsWUFBWSxFQUFFLE1BQU0sRUFDcEIsZ0JBQWdCLEVBQUUsZ0JBQWdCLEdBQ2pDLGdCQUFnQixHQUFHLFNBQVMsQ0FFOUI7QUFFRCx3QkFBZ0Isc0JBQXNCLENBQ3BDLFlBQVksRUFBRSxNQUFNLEVBQ3BCLGdCQUFnQixFQUFFLGdCQUFnQixHQUNqQyxXQUFXLEdBQUcsU0FBUyxDQUt6QjtBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILHdCQUFzQiw4QkFBOEIsQ0FDbEQsZUFBZSxFQUFFLEdBQUcsRUFBRSxFQUN0QixRQUFRLEVBQUUsWUFBWSxFQUN0QixnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFDbEMsSUFBSSxTQUFJLEVBQ1IsaUJBQWlCLFNBQU8sRUFDeEIsdUJBQXVCLENBQUMsRUFBRSxFQUFFLEdBQzNCLE9BQU8sQ0FBQztJQUNULGFBQWEsRUFBRSxtQkFBbUIsQ0FBQztJQUNuQyxnQkFBZ0IsRUFBRSwyQkFBMkIsQ0FBQztJQUM5Qyx3QkFBd0IsRUFBRSxFQUFFLENBQUM7Q0FDOUIsQ0FBQyxDQStCRCJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/testing/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,gBAAgB,EAEjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,2BAA2B,EAEjC,MAAM,wBAAwB,CAAC;AAIhC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAKlD,eAAO,MAAM,uBAAuB,oBAAoB,CAAC;AACzD,eAAO,MAAM,iBAAiB,EAAE,MAAe,CAAC;AAChD,eAAO,MAAM,oBAAoB,aAAkB,CAAC;AAEpD;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,GAAG,GAAG,CAEhE;AAED,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,gBAAgB,GACjC,OAAO,CAAC,gBAAgB,CAAC,CAK3B;AAED,wBAAgB,2BAA2B,CACzC,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,gBAAgB,GACjC,gBAAgB,GAAG,SAAS,CAE9B;AAED,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,gBAAgB,GACjC,WAAW,GAAG,SAAS,CAKzB;AAED;;;;;;;;;GASG;AACH,wBAAsB,8BAA8B,CAClD,eAAe,EAAE,GAAG,EAAE,EACtB,QAAQ,EAAE,YAAY,EACtB,gBAAgB,EAAE,gBAAgB,EAClC,IAAI,SAAI,EACR,iBAAiB,SAAO,EACxB,uBAAuB,CAAC,EAAE,EAAE,GAC3B,OAAO,CAAC;IACT,aAAa,EAAE,mBAAmB,CAAC;IACnC,gBAAgB,EAAE,2BAA2B,CAAC;IAC9C,wBAAwB,EAAE,EAAE,CAAC;CAC9B,CAAC,CA+BD"}
@@ -4,14 +4,11 @@ import { Fr } from '@aztec/foundation/curves/bn254';
4
4
  import { FunctionSelector, getAllFunctionAbis } from '@aztec/stdlib/abi';
5
5
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
6
6
  import { computeInitializationHash } from '@aztec/stdlib/contract';
7
- import { isNoirCallStackUnresolved } from '@aztec/stdlib/errors';
8
7
  import { siloNullifier } from '@aztec/stdlib/hash';
9
8
  import { deriveKeys } from '@aztec/stdlib/keys';
10
9
  import { makeContractClassPublic, makeContractInstanceFromClassId } from '@aztec/stdlib/testing';
11
10
  import { strict as assert } from 'assert';
12
11
  import merge from 'lodash.merge';
13
- import { resolveAssertionMessageFromRevertData, traverseCauseChain } from '../../../common/index.js';
14
- import { Field, Uint8, Uint32, Uint64 } from '../avm_memory_types.js';
15
12
  export const PUBLIC_DISPATCH_FN_NAME = 'public_dispatch';
16
13
  export const DEFAULT_TIMESTAMP = 99833n;
17
14
  export const DEFAULT_BLOCK_NUMBER = BlockNumber(42);
@@ -20,26 +17,6 @@ export const DEFAULT_BLOCK_NUMBER = BlockNumber(42);
20
17
  */ export function allSameExcept(original, overrides) {
21
18
  return merge({}, original, overrides);
22
19
  }
23
- export function randomMemoryBytes(length) {
24
- return [
25
- ...Array(length)
26
- ].map((_)=>new Uint8(Math.floor(Math.random() * 255)));
27
- }
28
- export function randomMemoryUint32s(length) {
29
- return [
30
- ...Array(length)
31
- ].map((_)=>new Uint32(Math.floor(Math.random() * 255)));
32
- }
33
- export function randomMemoryUint64s(length) {
34
- return [
35
- ...Array(length)
36
- ].map((_)=>new Uint64(Math.floor(Math.random() * 255)));
37
- }
38
- export function randomMemoryFields(length) {
39
- return [
40
- ...Array(length)
41
- ].map((_)=>new Field(Fr.random()));
42
- }
43
20
  export function getFunctionSelector(functionName, contractArtifact) {
44
21
  const fnArtifact = getAllFunctionAbis(contractArtifact).find((f)=>f.name === functionName);
45
22
  assert(!!fnArtifact, `Function ${functionName} not found in ${contractArtifact.name}`);
@@ -52,16 +29,6 @@ export function getContractFunctionArtifact(functionName, contractArtifact) {
52
29
  export function getContractFunctionAbi(functionName, contractArtifact) {
53
30
  return contractArtifact.functions.find((f)=>f.name === functionName) ?? contractArtifact.nonDispatchPublicFunctions.find((f)=>f.name === functionName);
54
31
  }
55
- export function resolveContractAssertionMessage(functionName, revertReason, output, contractArtifact) {
56
- traverseCauseChain(revertReason, (cause)=>{
57
- revertReason = cause;
58
- });
59
- const functionArtifact = getAllFunctionAbis(contractArtifact).find((f)=>f.name === functionName);
60
- if (!functionArtifact || !revertReason.noirCallStack || !isNoirCallStackUnresolved(revertReason.noirCallStack)) {
61
- return undefined;
62
- }
63
- return resolveAssertionMessageFromRevertData(output, functionArtifact);
64
- }
65
32
  /**
66
33
  * Create a contract class and instance given constructor args, artifact, etc.
67
34
  * NOTE: This is useful for testing real-ish contract class registration and instance deployment TXs (via logs)
@@ -77,17 +44,20 @@ export function resolveContractAssertionMessage(functionName, revertReason, outp
77
44
  const constructorAbi = getContractFunctionAbi('constructor', contractArtifact);
78
45
  const { publicKeys } = await deriveKeys(new Fr(seed));
79
46
  const initializationHash = await computeInitializationHash(constructorAbi, constructorArgs);
47
+ const immutablesHash = new Fr(seed + 1);
80
48
  const contractInstance = originalContractClassId === undefined ? await makeContractInstanceFromClassId(contractClass.id, seed, {
81
49
  deployer,
82
50
  initializationHash,
51
+ immutablesHash,
83
52
  publicKeys
84
53
  }) : await makeContractInstanceFromClassId(originalContractClassId, seed, {
85
54
  deployer,
86
55
  initializationHash,
87
56
  currentClassId: contractClass.id,
57
+ immutablesHash,
88
58
  publicKeys
89
59
  });
90
- const contractAddressNullifier = await siloNullifier(AztecAddress.fromNumber(CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS), contractInstance.address.toField());
60
+ const contractAddressNullifier = await siloNullifier(AztecAddress.fromNumberUnsafe(CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS), contractInstance.address.toField());
91
61
  return {
92
62
  contractClass,
93
63
  contractInstance,
@@ -0,0 +1,28 @@
1
+ import type { PublicContractsDB } from './public_db_sources.js';
2
+ /**
3
+ * Identifies the contract data a single simulation reads. The AVM's contract-data lookups during a
4
+ * `simulate` call are answered from `contractsDB`; `forkId` and `timestamp` scope those lookups to the
5
+ * world-state fork being simulated against. How this reaches the AVM (in-process call, IPC callback
6
+ * server, ...) is the implementation's concern — callers only supply the context.
7
+ */
8
+ export interface AvmContractsDBContext {
9
+ contractsDB: PublicContractsDB;
10
+ forkId: number;
11
+ timestamp: bigint;
12
+ }
13
+ /**
14
+ * Something that can run AVM simulations, independent of how the work is dispatched (a single external
15
+ * process, a pool of them, or an in-process stub). Callers hold this and never see the underlying transport.
16
+ */
17
+ export interface AvmSimulator {
18
+ /**
19
+ * Run a fast simulation and return the msgpack-encoded result. `context` supplies the contracts DB whose
20
+ * data the simulation reads. If `signal` aborts, the simulation stops at the next cancellation checkpoint.
21
+ */
22
+ simulate(inputBuffer: Uint8Array, context: AvmContractsDBContext, signal?: AbortSignal): Promise<Uint8Array>;
23
+ /** Run a simulation collecting proving hints and return the msgpack-encoded result. */
24
+ simulateWithHints(inputBuffer: Uint8Array): Promise<Uint8Array>;
25
+ /** Release any resources held by the underlying implementation. */
26
+ destroy?(): Promise<void>;
27
+ }
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZtX3NpbXVsYXRvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1YmxpYy9hdm1fc2ltdWxhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFaEU7Ozs7O0dBS0c7QUFDSCxNQUFNLFdBQVcscUJBQXFCO0lBQ3BDLFdBQVcsRUFBRSxpQkFBaUIsQ0FBQztJQUMvQixNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ2YsU0FBUyxFQUFFLE1BQU0sQ0FBQztDQUNuQjtBQUVEOzs7R0FHRztBQUNILE1BQU0sV0FBVyxZQUFZO0lBQzNCOzs7T0FHRztJQUNILFFBQVEsQ0FBQyxXQUFXLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLENBQUMsRUFBRSxXQUFXLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzdHLHVGQUF1RjtJQUN2RixpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNoRSxtRUFBbUU7SUFDbkUsT0FBTyxDQUFDLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0NBQzNCIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avm_simulator.d.ts","sourceRoot":"","sources":["../../src/public/avm_simulator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,iBAAiB,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7G,uFAAuF;IACvF,iBAAiB,CAAC,WAAW,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAChE,mEAAmE;IACnE,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B"}
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Something that can run AVM simulations, independent of how the work is dispatched (a single external
3
+ * process, a pool of them, or an in-process stub). Callers hold this and never see the underlying transport.
4
+ */ export { };
@@ -0,0 +1,45 @@
1
+ import type { AvmContractsDBContext, AvmSimulator } from './avm_simulator.js';
2
+ export interface AvmSimulatorPoolOptions {
3
+ /** Maximum number of concurrent AVM processes. If not set, defaults to AVM_MAX_CONCURRENT_SIMULATIONS env var or 4. */
4
+ maxSize?: number;
5
+ /** Path to the bb-avm-sim binary. If omitted, the generated package resolves it. */
6
+ avmBinaryPath?: string;
7
+ /** IPC path for the shared WSDB server. */
8
+ wsdbIpcPath: string;
9
+ /** Optional logger function for AVM process output. */
10
+ logger?: (msg: string) => void;
11
+ }
12
+ /**
13
+ * The public-execution AVM backend: a lazily-grown pool of bb-avm-sim processes plus the CDB server that
14
+ * answers those processes' contract-data callbacks. Callers hold this as an {@link AvmSimulator}; the pool,
15
+ * the CDB server, its IPC path, and fork-id routing are all hidden behind that interface. Each `simulate`
16
+ * registers the call's contracts DB on the CDB server for the duration of the simulation (keyed by fork id
17
+ * so concurrent simulations on different forks don't collide) and unregisters it once the call returns.
18
+ */
19
+ export declare class AvmSimulatorPool implements AvmSimulator {
20
+ private options;
21
+ private slots;
22
+ private available;
23
+ private waiters;
24
+ private createdCount;
25
+ private log;
26
+ private maxSize;
27
+ private cdbServer;
28
+ constructor(options: AvmSimulatorPoolOptions);
29
+ static spawn(options: AvmSimulatorPoolOptions): Promise<AvmSimulatorPool>;
30
+ [Symbol.asyncDispose](): Promise<void>;
31
+ simulate(inputBuffer: Uint8Array, context: AvmContractsDBContext, signal?: AbortSignal): Promise<Uint8Array>;
32
+ simulateWithHints(inputBuffer: Uint8Array): Promise<Uint8Array>;
33
+ /** Destroy all AVM processes in the pool and close the CDB server. */
34
+ destroy(): Promise<void>;
35
+ /**
36
+ * Eagerly spawn up to `count` AVM processes (capped at maxSize) and leave them available, so the
37
+ * first simulate() doesn't pay process spawn/connect cost. Idempotent.
38
+ */
39
+ prewarm(count?: number): Promise<void>;
40
+ private checkout;
41
+ /** Return an AVM process to the pool after use. */
42
+ private return;
43
+ private createSlot;
44
+ }
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZtX3NpbXVsYXRvcl9wb29sLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL2F2bV9zaW11bGF0b3JfcG9vbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUc5RSxNQUFNLFdBQVcsdUJBQXVCO0lBQ3RDLHVIQUF1SDtJQUN2SCxPQUFPLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDakIsb0ZBQW9GO0lBQ3BGLGFBQWEsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUN2QiwyQ0FBMkM7SUFDM0MsV0FBVyxFQUFFLE1BQU0sQ0FBQztJQUNwQix1REFBdUQ7SUFDdkQsTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxLQUFLLElBQUksQ0FBQztDQUNoQztBQWFEOzs7Ozs7R0FNRztBQUNILHFCQUFhLGdCQUFpQixZQUFXLFlBQVk7SUFTdkMsT0FBTyxDQUFDLE9BQU87SUFSM0IsT0FBTyxDQUFDLEtBQUssQ0FBc0M7SUFDbkQsT0FBTyxDQUFDLFNBQVMsQ0FBZ0I7SUFDakMsT0FBTyxDQUFDLE9BQU8sQ0FBaUc7SUFDaEgsT0FBTyxDQUFDLFlBQVksQ0FBSztJQUN6QixPQUFPLENBQUMsR0FBRyxDQUFTO0lBQ3BCLE9BQU8sQ0FBQyxPQUFPLENBQVM7SUFDeEIsT0FBTyxDQUFDLFNBQVMsQ0FBZTtJQUVoQyxZQUFvQixPQUFPLEVBQUUsdUJBQXVCLEVBSW5EO0lBRUQsT0FBYSxLQUFLLENBQUMsT0FBTyxFQUFFLHVCQUF1QixHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUs5RTtJQUVLLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFM0M7SUFFSyxRQUFRLENBQUMsV0FBVyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxDQUFDLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0Fjakg7SUFFSyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FRcEU7SUFFRCxzRUFBc0U7SUFDaEUsT0FBTyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FtQjdCO0lBRUQ7OztPQUdHO0lBQ0csT0FBTyxDQUFDLEtBQUssU0FBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FVdEM7WUFHYSxRQUFRO0lBZXRCLG1EQUFtRDtJQUNuRCxPQUFPLENBQUMsTUFBTTtZQVlBLFVBQVU7Q0E4QnpCIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avm_simulator_pool.d.ts","sourceRoot":"","sources":["../../src/public/avm_simulator_pool.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAG9E,MAAM,WAAW,uBAAuB;IACtC,uHAAuH;IACvH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oFAAoF;IACpF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2CAA2C;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAaD;;;;;;GAMG;AACH,qBAAa,gBAAiB,YAAW,YAAY;IASvC,OAAO,CAAC,OAAO;IAR3B,OAAO,CAAC,KAAK,CAAsC;IACnD,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,OAAO,CAAiG;IAChH,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAe;IAEhC,YAAoB,OAAO,EAAE,uBAAuB,EAInD;IAED,OAAa,KAAK,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAK9E;IAEK,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3C;IAEK,QAAQ,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAcjH;IAEK,iBAAiB,CAAC,WAAW,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAQpE;IAED,sEAAsE;IAChE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAmB7B;IAED;;;OAGG;IACG,OAAO,CAAC,KAAK,SAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAUtC;YAGa,QAAQ;IAetB,mDAAmD;IACnD,OAAO,CAAC,MAAM;YAYA,UAAU;CA8BzB"}