@aztec/simulator 0.0.1-commit.3469e52 → 0.0.1-commit.350e0a4d

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 (352) 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/acvm.d.ts +4 -2
  6. package/dest/private/acvm/acvm.d.ts.map +1 -1
  7. package/dest/private/acvm/acvm.js +4 -3
  8. package/dest/private/acvm_native.d.ts +5 -3
  9. package/dest/private/acvm_native.d.ts.map +1 -1
  10. package/dest/private/acvm_native.js +8 -6
  11. package/dest/private/acvm_wasm.d.ts +4 -3
  12. package/dest/private/acvm_wasm.d.ts.map +1 -1
  13. package/dest/private/acvm_wasm.js +7 -5
  14. package/dest/private/circuit_recording/circuit_recorder.d.ts +39 -25
  15. package/dest/private/circuit_recording/circuit_recorder.d.ts.map +1 -1
  16. package/dest/private/circuit_recording/circuit_recorder.js +70 -72
  17. package/dest/private/circuit_recording/file_circuit_recorder.d.ts +9 -20
  18. package/dest/private/circuit_recording/file_circuit_recorder.d.ts.map +1 -1
  19. package/dest/private/circuit_recording/file_circuit_recorder.js +39 -43
  20. package/dest/private/circuit_recording/memory_circuit_recorder.d.ts +7 -2
  21. package/dest/private/circuit_recording/memory_circuit_recorder.d.ts.map +1 -1
  22. package/dest/private/circuit_recording/memory_circuit_recorder.js +4 -4
  23. package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts +1 -1
  24. package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts.map +1 -1
  25. package/dest/private/circuit_recording/simulator_recorder_wrapper.js +11 -14
  26. package/dest/private/factory.d.ts +3 -3
  27. package/dest/private/factory.d.ts.map +1 -1
  28. package/dest/private/factory.js +7 -4
  29. package/dest/public/avm/testing/account_proof_fetcher.d.ts +2 -0
  30. package/dest/public/avm/testing/account_proof_fetcher.d.ts.map +1 -0
  31. package/dest/public/avm/testing/account_proof_fetcher.js +152 -0
  32. package/dest/public/avm/{fixtures → testing}/base_avm_simulation_tester.d.ts +2 -1
  33. package/dest/public/avm/testing/base_avm_simulation_tester.d.ts.map +1 -0
  34. package/dest/public/avm/{fixtures → testing}/base_avm_simulation_tester.js +18 -3
  35. package/dest/public/avm/testing/utils.d.ts +32 -0
  36. package/dest/public/avm/testing/utils.d.ts.map +1 -0
  37. package/dest/public/avm/{fixtures → testing}/utils.js +4 -34
  38. package/dest/public/contracts_db_checkpoint.d.ts +2 -2
  39. package/dest/public/contracts_db_checkpoint.d.ts.map +1 -1
  40. package/dest/public/contracts_db_checkpoint.js +1 -1
  41. package/dest/public/executor_metrics.d.ts +1 -1
  42. package/dest/public/executor_metrics.d.ts.map +1 -1
  43. package/dest/public/executor_metrics.js +7 -2
  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 +1 -4
  52. package/dest/public/fixtures/index.d.ts.map +1 -1
  53. package/dest/public/fixtures/index.js +0 -3
  54. package/dest/public/fixtures/public_tx_simulation_tester.d.ts +8 -7
  55. package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
  56. package/dest/public/fixtures/public_tx_simulation_tester.js +17 -16
  57. package/dest/public/fixtures/simple_contract_data_source.js +1 -1
  58. package/dest/public/fixtures/token_test.js +3 -3
  59. package/dest/public/fixtures/utils.d.ts +2 -2
  60. package/dest/public/fixtures/utils.d.ts.map +1 -1
  61. package/dest/public/fixtures/utils.js +21 -20
  62. package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts +6 -4
  63. package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts.map +1 -1
  64. package/dest/public/fuzzing/avm_fuzzer_simulator.js +12 -7
  65. package/dest/public/fuzzing/avm_simulator_bin.js +11 -8
  66. package/dest/public/index.d.ts +2 -2
  67. package/dest/public/index.d.ts.map +1 -1
  68. package/dest/public/index.js +1 -1
  69. package/dest/public/public_db_sources.d.ts +9 -5
  70. package/dest/public/public_db_sources.d.ts.map +1 -1
  71. package/dest/public/public_db_sources.js +20 -14
  72. package/dest/public/public_processor/guarded_merkle_tree.d.ts +8 -7
  73. package/dest/public/public_processor/guarded_merkle_tree.d.ts.map +1 -1
  74. package/dest/public/public_processor/guarded_merkle_tree.js +8 -5
  75. package/dest/public/public_processor/public_processor.d.ts +11 -6
  76. package/dest/public/public_processor/public_processor.d.ts.map +1 -1
  77. package/dest/public/public_processor/public_processor.js +112 -74
  78. package/dest/public/public_processor/public_processor_metrics.d.ts +5 -2
  79. package/dest/public/public_processor/public_processor_metrics.d.ts.map +1 -1
  80. package/dest/public/public_processor/public_processor_metrics.js +28 -4
  81. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts +3 -2
  82. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts.map +1 -1
  83. package/dest/public/public_tx_simulator/contract_provider_for_cpp.js +7 -6
  84. package/dest/public/public_tx_simulator/dumping_public_tx_simulator.d.ts +23 -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} +4 -4
  87. package/dest/public/public_tx_simulator/factories.d.ts +7 -6
  88. package/dest/public/public_tx_simulator/factories.d.ts.map +1 -1
  89. package/dest/public/public_tx_simulator/factories.js +8 -8
  90. package/dest/public/public_tx_simulator/index.d.ts +3 -5
  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 -70
  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 +99 -317
  96. package/dest/public/public_tx_simulator/public_tx_simulator_base.d.ts +22 -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 +28 -0
  99. package/dest/public/test_executor_metrics.d.ts +3 -2
  100. package/dest/public/test_executor_metrics.d.ts.map +1 -1
  101. package/dest/public/test_executor_metrics.js +2 -2
  102. package/package.json +17 -18
  103. package/src/client.ts +0 -2
  104. package/src/private/acvm/acvm.ts +4 -3
  105. package/src/private/acvm_native.ts +11 -5
  106. package/src/private/acvm_wasm.ts +11 -4
  107. package/src/private/circuit_recording/circuit_recorder.ts +89 -81
  108. package/src/private/circuit_recording/file_circuit_recorder.ts +45 -50
  109. package/src/private/circuit_recording/memory_circuit_recorder.ts +6 -4
  110. package/src/private/circuit_recording/simulator_recorder_wrapper.ts +9 -15
  111. package/src/private/factory.ts +7 -4
  112. package/src/public/avm/testing/account_proof.json +553 -0
  113. package/src/public/avm/testing/account_proof_fetcher.ts +166 -0
  114. package/src/public/avm/{fixtures → testing}/base_avm_simulation_tester.ts +23 -3
  115. package/src/public/avm/{fixtures → testing}/utils.ts +4 -40
  116. package/src/public/contracts_db_checkpoint.ts +1 -1
  117. package/src/public/executor_metrics.ts +4 -1
  118. package/src/public/fixtures/amm_test.ts +4 -4
  119. package/src/public/fixtures/bulk_test.ts +31 -6
  120. package/src/public/fixtures/custom_bytecode_tester.ts +2 -2
  121. package/src/public/fixtures/index.ts +0 -3
  122. package/src/public/fixtures/public_tx_simulation_tester.ts +28 -14
  123. package/src/public/fixtures/simple_contract_data_source.ts +1 -1
  124. package/src/public/fixtures/token_test.ts +3 -3
  125. package/src/public/fixtures/utils.ts +23 -24
  126. package/src/public/fuzzing/avm_fuzzer_simulator.ts +16 -19
  127. package/src/public/fuzzing/avm_simulator_bin.ts +14 -6
  128. package/src/public/index.ts +3 -3
  129. package/src/public/public_db_sources.ts +36 -19
  130. package/src/public/public_processor/guarded_merkle_tree.ts +11 -8
  131. package/src/public/public_processor/public_processor.ts +156 -94
  132. package/src/public/public_processor/public_processor_metrics.ts +22 -4
  133. package/src/public/public_tx_simulator/contract_provider_for_cpp.ts +11 -7
  134. package/src/public/public_tx_simulator/{dumping_cpp_public_tx_simulator.ts → dumping_public_tx_simulator.ts} +5 -3
  135. package/src/public/public_tx_simulator/factories.ts +10 -7
  136. package/src/public/public_tx_simulator/index.ts +2 -4
  137. package/src/public/public_tx_simulator/public_tx_simulator.ts +153 -470
  138. package/src/public/public_tx_simulator/public_tx_simulator_base.ts +35 -0
  139. package/src/public/test_executor_metrics.ts +3 -3
  140. package/dest/public/avm/avm_context.d.ts +0 -41
  141. package/dest/public/avm/avm_context.d.ts.map +0 -1
  142. package/dest/public/avm/avm_context.js +0 -44
  143. package/dest/public/avm/avm_contract_call_result.d.ts +0 -32
  144. package/dest/public/avm/avm_contract_call_result.d.ts.map +0 -1
  145. package/dest/public/avm/avm_contract_call_result.js +0 -54
  146. package/dest/public/avm/avm_execution_environment.d.ts +0 -23
  147. package/dest/public/avm/avm_execution_environment.d.ts.map +0 -1
  148. package/dest/public/avm/avm_execution_environment.js +0 -33
  149. package/dest/public/avm/avm_gas.d.ts +0 -44
  150. package/dest/public/avm/avm_gas.d.ts.map +0 -1
  151. package/dest/public/avm/avm_gas.js +0 -195
  152. package/dest/public/avm/avm_machine_state.d.ts +0 -97
  153. package/dest/public/avm/avm_machine_state.d.ts.map +0 -1
  154. package/dest/public/avm/avm_machine_state.js +0 -109
  155. package/dest/public/avm/avm_memory_types.d.ts +0 -275
  156. package/dest/public/avm/avm_memory_types.d.ts.map +0 -1
  157. package/dest/public/avm/avm_memory_types.js +0 -351
  158. package/dest/public/avm/avm_simulator.d.ts +0 -40
  159. package/dest/public/avm/avm_simulator.d.ts.map +0 -1
  160. package/dest/public/avm/avm_simulator.js +0 -191
  161. package/dest/public/avm/avm_simulator_interface.d.ts +0 -9
  162. package/dest/public/avm/avm_simulator_interface.d.ts.map +0 -1
  163. package/dest/public/avm/avm_simulator_interface.js +0 -3
  164. package/dest/public/avm/errors.d.ts +0 -104
  165. package/dest/public/avm/errors.d.ts.map +0 -1
  166. package/dest/public/avm/errors.js +0 -141
  167. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts +0 -22
  168. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts.map +0 -1
  169. package/dest/public/avm/fixtures/avm_simulation_tester.js +0 -83
  170. package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts.map +0 -1
  171. package/dest/public/avm/fixtures/initializers.d.ts +0 -42
  172. package/dest/public/avm/fixtures/initializers.d.ts.map +0 -1
  173. package/dest/public/avm/fixtures/initializers.js +0 -44
  174. package/dest/public/avm/fixtures/utils.d.ts +0 -39
  175. package/dest/public/avm/fixtures/utils.d.ts.map +0 -1
  176. package/dest/public/avm/index.d.ts +0 -2
  177. package/dest/public/avm/index.d.ts.map +0 -1
  178. package/dest/public/avm/index.js +0 -1
  179. package/dest/public/avm/opcodes/accrued_substate.d.ts +0 -75
  180. package/dest/public/avm/opcodes/accrued_substate.d.ts.map +0 -1
  181. package/dest/public/avm/opcodes/accrued_substate.js +0 -255
  182. package/dest/public/avm/opcodes/addressing_mode.d.ts +0 -31
  183. package/dest/public/avm/opcodes/addressing_mode.d.ts.map +0 -1
  184. package/dest/public/avm/opcodes/addressing_mode.js +0 -94
  185. package/dest/public/avm/opcodes/arithmetic.d.ts +0 -49
  186. package/dest/public/avm/opcodes/arithmetic.d.ts.map +0 -1
  187. package/dest/public/avm/opcodes/arithmetic.js +0 -97
  188. package/dest/public/avm/opcodes/bitwise.d.ts +0 -42
  189. package/dest/public/avm/opcodes/bitwise.d.ts.map +0 -1
  190. package/dest/public/avm/opcodes/bitwise.js +0 -99
  191. package/dest/public/avm/opcodes/comparators.d.ts +0 -25
  192. package/dest/public/avm/opcodes/comparators.d.ts.map +0 -1
  193. package/dest/public/avm/opcodes/comparators.js +0 -43
  194. package/dest/public/avm/opcodes/contract.d.ts +0 -20
  195. package/dest/public/avm/opcodes/contract.d.ts.map +0 -1
  196. package/dest/public/avm/opcodes/contract.js +0 -65
  197. package/dest/public/avm/opcodes/control_flow.d.ts +0 -41
  198. package/dest/public/avm/opcodes/control_flow.d.ts.map +0 -1
  199. package/dest/public/avm/opcodes/control_flow.js +0 -107
  200. package/dest/public/avm/opcodes/conversion.d.ts +0 -18
  201. package/dest/public/avm/opcodes/conversion.d.ts.map +0 -1
  202. package/dest/public/avm/opcodes/conversion.js +0 -333
  203. package/dest/public/avm/opcodes/ec_add.d.ts +0 -19
  204. package/dest/public/avm/opcodes/ec_add.d.ts.map +0 -1
  205. package/dest/public/avm/opcodes/ec_add.js +0 -93
  206. package/dest/public/avm/opcodes/environment_getters.d.ts +0 -28
  207. package/dest/public/avm/opcodes/environment_getters.d.ts.map +0 -1
  208. package/dest/public/avm/opcodes/environment_getters.js +0 -77
  209. package/dest/public/avm/opcodes/external_calls.d.ts +0 -59
  210. package/dest/public/avm/opcodes/external_calls.d.ts.map +0 -1
  211. package/dest/public/avm/opcodes/external_calls.js +0 -210
  212. package/dest/public/avm/opcodes/hashing.d.ts +0 -36
  213. package/dest/public/avm/opcodes/hashing.d.ts.map +0 -1
  214. package/dest/public/avm/opcodes/hashing.js +0 -119
  215. package/dest/public/avm/opcodes/index.d.ts +0 -16
  216. package/dest/public/avm/opcodes/index.d.ts.map +0 -1
  217. package/dest/public/avm/opcodes/index.js +0 -15
  218. package/dest/public/avm/opcodes/instruction.d.ts +0 -74
  219. package/dest/public/avm/opcodes/instruction.d.ts.map +0 -1
  220. package/dest/public/avm/opcodes/instruction.js +0 -95
  221. package/dest/public/avm/opcodes/instruction_impl.d.ts +0 -19
  222. package/dest/public/avm/opcodes/instruction_impl.d.ts.map +0 -1
  223. package/dest/public/avm/opcodes/instruction_impl.js +0 -30
  224. package/dest/public/avm/opcodes/memory.d.ts +0 -74
  225. package/dest/public/avm/opcodes/memory.d.ts.map +0 -1
  226. package/dest/public/avm/opcodes/memory.js +0 -257
  227. package/dest/public/avm/opcodes/misc.d.ts +0 -18
  228. package/dest/public/avm/opcodes/misc.d.ts.map +0 -1
  229. package/dest/public/avm/opcodes/misc.js +0 -73
  230. package/dest/public/avm/opcodes/storage.d.ts +0 -24
  231. package/dest/public/avm/opcodes/storage.d.ts.map +0 -1
  232. package/dest/public/avm/opcodes/storage.js +0 -68
  233. package/dest/public/avm/revert_reason.d.ts +0 -18
  234. package/dest/public/avm/revert_reason.d.ts.map +0 -1
  235. package/dest/public/avm/revert_reason.js +0 -39
  236. package/dest/public/avm/serialization/buffer_cursor.d.ts +0 -26
  237. package/dest/public/avm/serialization/buffer_cursor.d.ts.map +0 -1
  238. package/dest/public/avm/serialization/buffer_cursor.js +0 -99
  239. package/dest/public/avm/serialization/bytecode_serialization.d.ts +0 -17
  240. package/dest/public/avm/serialization/bytecode_serialization.d.ts.map +0 -1
  241. package/dest/public/avm/serialization/bytecode_serialization.js +0 -336
  242. package/dest/public/avm/serialization/instruction_serialization.d.ts +0 -114
  243. package/dest/public/avm/serialization/instruction_serialization.d.ts.map +0 -1
  244. package/dest/public/avm/serialization/instruction_serialization.js +0 -261
  245. package/dest/public/avm/test_utils.d.ts +0 -15
  246. package/dest/public/avm/test_utils.d.ts.map +0 -1
  247. package/dest/public/avm/test_utils.js +0 -44
  248. package/dest/public/debug_fn_name.d.ts +0 -18
  249. package/dest/public/debug_fn_name.d.ts.map +0 -1
  250. package/dest/public/debug_fn_name.js +0 -35
  251. package/dest/public/fixtures/custom_bytecode_tests.d.ts +0 -12
  252. package/dest/public/fixtures/custom_bytecode_tests.d.ts.map +0 -1
  253. package/dest/public/fixtures/custom_bytecode_tests.js +0 -174
  254. package/dest/public/fixtures/minimal_public_tx.d.ts +0 -4
  255. package/dest/public/fixtures/minimal_public_tx.d.ts.map +0 -1
  256. package/dest/public/fixtures/minimal_public_tx.js +0 -19
  257. package/dest/public/fixtures/opcode_spammer.d.ts +0 -123
  258. package/dest/public/fixtures/opcode_spammer.d.ts.map +0 -1
  259. package/dest/public/fixtures/opcode_spammer.js +0 -1681
  260. package/dest/public/hinting_db_sources.d.ts +0 -80
  261. package/dest/public/hinting_db_sources.d.ts.map +0 -1
  262. package/dest/public/hinting_db_sources.js +0 -355
  263. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts +0 -53
  264. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts.map +0 -1
  265. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.js +0 -132
  266. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts +0 -42
  267. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts.map +0 -1
  268. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.js +0 -86
  269. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts +0 -30
  270. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts.map +0 -1
  271. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.js +0 -171
  272. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts +0 -22
  273. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts.map +0 -1
  274. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts +0 -31
  275. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts.map +0 -1
  276. package/dest/public/public_tx_simulator/measured_public_tx_simulator.js +0 -51
  277. package/dest/public/public_tx_simulator/public_tx_context.d.ts +0 -130
  278. package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +0 -1
  279. package/dest/public/public_tx_simulator/public_tx_context.js +0 -300
  280. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts +0 -21
  281. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts.map +0 -1
  282. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.js +0 -415
  283. package/dest/public/side_effect_trace.d.ts +0 -87
  284. package/dest/public/side_effect_trace.d.ts.map +0 -1
  285. package/dest/public/side_effect_trace.js +0 -199
  286. package/dest/public/side_effect_trace_interface.d.ts +0 -22
  287. package/dest/public/side_effect_trace_interface.d.ts.map +0 -1
  288. package/dest/public/side_effect_trace_interface.js +0 -1
  289. package/dest/public/state_manager/index.d.ts +0 -2
  290. package/dest/public/state_manager/index.d.ts.map +0 -1
  291. package/dest/public/state_manager/index.js +0 -1
  292. package/dest/public/state_manager/nullifiers.d.ts +0 -61
  293. package/dest/public/state_manager/nullifiers.d.ts.map +0 -1
  294. package/dest/public/state_manager/nullifiers.js +0 -92
  295. package/dest/public/state_manager/public_storage.d.ts +0 -66
  296. package/dest/public/state_manager/public_storage.d.ts.map +0 -1
  297. package/dest/public/state_manager/public_storage.js +0 -145
  298. package/dest/public/state_manager/state_manager.d.ts +0 -164
  299. package/dest/public/state_manager/state_manager.d.ts.map +0 -1
  300. package/dest/public/state_manager/state_manager.js +0 -395
  301. package/src/public/avm/avm_context.ts +0 -61
  302. package/src/public/avm/avm_contract_call_result.ts +0 -67
  303. package/src/public/avm/avm_execution_environment.ts +0 -46
  304. package/src/public/avm/avm_gas.ts +0 -183
  305. package/src/public/avm/avm_machine_state.ts +0 -169
  306. package/src/public/avm/avm_memory_types.ts +0 -436
  307. package/src/public/avm/avm_simulator.ts +0 -276
  308. package/src/public/avm/avm_simulator_interface.ts +0 -8
  309. package/src/public/avm/errors.ts +0 -177
  310. package/src/public/avm/fixtures/avm_simulation_tester.ts +0 -116
  311. package/src/public/avm/fixtures/initializers.ts +0 -102
  312. package/src/public/avm/index.ts +0 -1
  313. package/src/public/avm/opcodes/accrued_substate.ts +0 -288
  314. package/src/public/avm/opcodes/addressing_mode.ts +0 -111
  315. package/src/public/avm/opcodes/arithmetic.ts +0 -129
  316. package/src/public/avm/opcodes/bitwise.ts +0 -113
  317. package/src/public/avm/opcodes/comparators.ts +0 -55
  318. package/src/public/avm/opcodes/contract.ts +0 -75
  319. package/src/public/avm/opcodes/control_flow.ts +0 -123
  320. package/src/public/avm/opcodes/conversion.ts +0 -104
  321. package/src/public/avm/opcodes/ec_add.ts +0 -105
  322. package/src/public/avm/opcodes/environment_getters.ts +0 -87
  323. package/src/public/avm/opcodes/external_calls.ts +0 -261
  324. package/src/public/avm/opcodes/hashing.ts +0 -151
  325. package/src/public/avm/opcodes/index.ts +0 -15
  326. package/src/public/avm/opcodes/instruction.ts +0 -136
  327. package/src/public/avm/opcodes/instruction_impl.ts +0 -36
  328. package/src/public/avm/opcodes/memory.ts +0 -293
  329. package/src/public/avm/opcodes/misc.ts +0 -102
  330. package/src/public/avm/opcodes/storage.ts +0 -87
  331. package/src/public/avm/revert_reason.ts +0 -58
  332. package/src/public/avm/serialization/buffer_cursor.ts +0 -118
  333. package/src/public/avm/serialization/bytecode_serialization.ts +0 -215
  334. package/src/public/avm/serialization/instruction_serialization.ts +0 -249
  335. package/src/public/avm/test_utils.ts +0 -64
  336. package/src/public/debug_fn_name.ts +0 -50
  337. package/src/public/fixtures/custom_bytecode_tests.ts +0 -228
  338. package/src/public/fixtures/minimal_public_tx.ts +0 -26
  339. package/src/public/fixtures/opcode_spammer.ts +0 -1725
  340. package/src/public/hinting_db_sources.ts +0 -607
  341. package/src/public/public_tx_simulator/cpp_public_tx_simulator.ts +0 -208
  342. package/src/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.ts +0 -132
  343. package/src/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.ts +0 -237
  344. package/src/public/public_tx_simulator/measured_public_tx_simulator.ts +0 -105
  345. package/src/public/public_tx_simulator/public_tx_context.ts +0 -477
  346. package/src/public/public_tx_simulator/telemetry_public_tx_simulator.ts +0 -63
  347. package/src/public/side_effect_trace.ts +0 -290
  348. package/src/public/side_effect_trace_interface.ts +0 -28
  349. package/src/public/state_manager/index.ts +0 -1
  350. package/src/public/state_manager/nullifiers.ts +0 -103
  351. package/src/public/state_manager/public_storage.ts +0 -174
  352. package/src/public/state_manager/state_manager.ts +0 -546
@@ -2,10 +2,8 @@ import {
2
2
  CONTRACT_CLASS_PUBLISHED_MAGIC_VALUE,
3
3
  CONTRACT_CLASS_REGISTRY_CONTRACT_ADDRESS,
4
4
  CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS,
5
- DEFAULT_DA_GAS_LIMIT,
6
- DEFAULT_L2_GAS_LIMIT,
7
- DEFAULT_TEARDOWN_DA_GAS_LIMIT,
8
- DEFAULT_TEARDOWN_L2_GAS_LIMIT,
5
+ MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT,
6
+ MAX_PROCESSABLE_L2_GAS,
9
7
  PRIVATE_LOG_SIZE_IN_FIELDS,
10
8
  } from '@aztec/constants';
11
9
  import { padArrayEnd } from '@aztec/foundation/collection';
@@ -38,6 +36,9 @@ import {
38
36
 
39
37
  import { strict as assert } from 'assert';
40
38
 
39
+ const TEARDOWN_DA_GAS_LIMIT = 98_304;
40
+ const TEARDOWN_L2_GAS_LIMIT = 817_500;
41
+
41
42
  export type TestPrivateInsertions = {
42
43
  revertible?: {
43
44
  nullifiers?: Fr[];
@@ -62,13 +63,14 @@ export async function createTxForPublicCalls(
62
63
  feePayer = AztecAddress.zero(),
63
64
  gasUsedByPrivate: Gas = Gas.empty(),
64
65
  globals: GlobalVariables = GlobalVariables.empty(),
66
+ gasLimits?: Gas,
65
67
  ): Promise<Tx> {
66
68
  assert(
67
69
  setupCallRequests.length > 0 || appCallRequests.length > 0 || teardownCallRequest !== undefined,
68
70
  "Can't create public tx with no enqueued calls",
69
71
  );
70
72
  // use max limits
71
- const gasLimits = new Gas(DEFAULT_DA_GAS_LIMIT, DEFAULT_L2_GAS_LIMIT);
73
+ gasLimits = gasLimits ?? new Gas(MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT, MAX_PROCESSABLE_L2_GAS);
72
74
 
73
75
  const forPublic = PartialPrivateTailPublicInputsForPublic.empty();
74
76
 
@@ -127,20 +129,18 @@ export async function createTxForPublicCalls(
127
129
  }
128
130
 
129
131
  const maxFeesPerGas = feePayer.isZero() ? GasFees.empty() : new GasFees(10, 10);
130
- const teardownGasLimits = teardownCallRequest
131
- ? new Gas(DEFAULT_TEARDOWN_DA_GAS_LIMIT, DEFAULT_TEARDOWN_L2_GAS_LIMIT)
132
- : Gas.empty();
132
+ const teardownGasLimits = teardownCallRequest ? new Gas(TEARDOWN_DA_GAS_LIMIT, TEARDOWN_L2_GAS_LIMIT) : Gas.empty();
133
133
  const gasSettings = new GasSettings(gasLimits, teardownGasLimits, maxFeesPerGas, GasFees.empty());
134
134
  const txContext = new TxContext(Fr.zero(), Fr.zero(), gasSettings);
135
135
  const header = BlockHeader.empty({ globalVariables: globals });
136
136
  const constantData = new TxConstantData(header, txContext, Fr.zero(), Fr.zero());
137
- const includeByTimestamp = 0n; // Not used in the simulator.
137
+ const expirationTimestamp = 0n; // Not used in the simulator.
138
138
 
139
139
  const txData = new PrivateKernelTailCircuitPublicInputs(
140
140
  constantData,
141
141
  /*gasUsed=*/ gasUsedByPrivate,
142
142
  feePayer,
143
- includeByTimestamp,
143
+ expirationTimestamp,
144
144
  forPublic,
145
145
  );
146
146
 
@@ -163,7 +163,7 @@ export async function createTxForPrivateOnly(
163
163
  gasUsedByPrivate: Gas = new Gas(10, 10),
164
164
  ): Promise<Tx> {
165
165
  // use max limits
166
- const gasLimits = new Gas(DEFAULT_DA_GAS_LIMIT, DEFAULT_L2_GAS_LIMIT);
166
+ const gasLimits = new Gas(MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT, MAX_PROCESSABLE_L2_GAS);
167
167
 
168
168
  const forRollup = PartialPrivateTailPublicInputsForRollup.empty();
169
169
 
@@ -171,13 +171,13 @@ export async function createTxForPrivateOnly(
171
171
  const gasSettings = new GasSettings(gasLimits, Gas.empty(), maxFeesPerGas, GasFees.empty());
172
172
  const txContext = new TxContext(Fr.zero(), Fr.zero(), gasSettings);
173
173
  const constantData = new TxConstantData(BlockHeader.empty(), txContext, Fr.zero(), Fr.zero());
174
- const includeByTimestamp = 0n; // Not used in the simulator.
174
+ const expirationTimestamp = 0n; // Not used in the simulator.
175
175
 
176
176
  const txData = new PrivateKernelTailCircuitPublicInputs(
177
177
  constantData,
178
178
  /*gasUsed=*/ gasUsedByPrivate,
179
179
  feePayer,
180
- includeByTimestamp,
180
+ expirationTimestamp,
181
181
  /*forPublic=*/ undefined,
182
182
  forRollup,
183
183
  );
@@ -228,17 +228,15 @@ export async function addNewContractInstanceToTx(
228
228
  contractInstance: ContractInstanceWithAddress,
229
229
  skipNullifierInsertion = false,
230
230
  ) {
231
- // can't use publicKeys.toFields() because it includes isInfinite which
232
- // is not broadcast in such private logs
231
+ // Only ivpk_m is broadcast as a point (x, y); the other five keys are hashes.
233
232
  const publicKeysAsFields = [
234
- contractInstance.publicKeys.masterNullifierPublicKey.x,
235
- contractInstance.publicKeys.masterNullifierPublicKey.y,
236
- contractInstance.publicKeys.masterIncomingViewingPublicKey.x,
237
- contractInstance.publicKeys.masterIncomingViewingPublicKey.y,
238
- contractInstance.publicKeys.masterOutgoingViewingPublicKey.x,
239
- contractInstance.publicKeys.masterOutgoingViewingPublicKey.y,
240
- contractInstance.publicKeys.masterTaggingPublicKey.x,
241
- contractInstance.publicKeys.masterTaggingPublicKey.y,
233
+ contractInstance.publicKeys.npkMHash,
234
+ contractInstance.publicKeys.ivpkM.x,
235
+ contractInstance.publicKeys.ivpkM.y,
236
+ contractInstance.publicKeys.ovpkMHash,
237
+ contractInstance.publicKeys.tpkMHash,
238
+ contractInstance.publicKeys.mspkMHash,
239
+ contractInstance.publicKeys.fbpkMHash,
242
240
  ];
243
241
  const logFields = [
244
242
  CONTRACT_INSTANCE_PUBLISHED_EVENT_TAG,
@@ -247,6 +245,7 @@ export async function addNewContractInstanceToTx(
247
245
  new Fr(contractInstance.salt),
248
246
  contractInstance.currentContractClassId,
249
247
  contractInstance.initializationHash,
248
+ contractInstance.immutablesHash,
250
249
  ...publicKeysAsFields,
251
250
  contractInstance.deployer.toField(),
252
251
  ];
@@ -256,7 +255,7 @@ export async function addNewContractInstanceToTx(
256
255
  );
257
256
 
258
257
  const contractAddressNullifier = await siloNullifier(
259
- AztecAddress.fromNumber(CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS),
258
+ AztecAddress.fromNumberUnsafe(CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS),
260
259
  contractInstance.address.toField(),
261
260
  );
262
261
 
@@ -33,7 +33,7 @@ import {
33
33
  } from '@aztec/stdlib/tx';
34
34
  import type { NativeWorldStateService } from '@aztec/world-state';
35
35
 
36
- import { BaseAvmSimulationTester } from '../avm/fixtures/base_avm_simulation_tester.js';
36
+ import { BaseAvmSimulationTester } from '../avm/testing/base_avm_simulation_tester.js';
37
37
  import { SimpleContractDataSource } from '../fixtures/simple_contract_data_source.js';
38
38
  import { PublicContractsDB } from '../public_db_sources.js';
39
39
  import { PublicTxSimulator } from '../public_tx_simulator/public_tx_simulator.js';
@@ -75,7 +75,7 @@ export class FuzzerSimulationRequest {
75
75
 
76
76
  /**
77
77
  * Creates a TypeScript Tx object from a deserialized C++ Tx (AvmTxHint-like structure).
78
- * This allows using PublicTxSimulator.simulate() with fuzzer-generated transactions.
78
+ * This allows simulating fuzzer-generated transactions with the C++ public tx simulator.
79
79
  */
80
80
  async function createTxFromHint(cppTx: AvmTxHint): Promise<Tx> {
81
81
  // Create TxHash from the C++ tx hash string
@@ -146,7 +146,7 @@ async function createTxFromHint(cppTx: AvmTxHint): Promise<Tx> {
146
146
  constants,
147
147
  cppTx.gasUsedByPrivate,
148
148
  cppTx.feePayer,
149
- 0n, // includeByTimestamp
149
+ 0n, // expirationTimestamp
150
150
  forPublic,
151
151
  undefined, // forRollup - not needed for public simulation
152
152
  );
@@ -189,6 +189,8 @@ async function createTxFromHint(cppTx: AvmTxHint): Promise<Tx> {
189
189
  /**
190
190
  * A simulator class for the AVM fuzzer that extends BaseAvmSimulationTester.
191
191
  * It provides methods for registering contracts from C++ msgpack data and simulating transactions.
192
+ * The simulation itself runs on the production C++ AVM simulator, so the fuzzer compares brillig
193
+ * execution against the real AVM rather than a TS reference.
192
194
  */
193
195
  export class AvmFuzzerSimulator extends BaseAvmSimulationTester {
194
196
  private simulator: PublicTxSimulator;
@@ -197,23 +199,19 @@ export class AvmFuzzerSimulator extends BaseAvmSimulationTester {
197
199
  merkleTrees: MerkleTreeWriteOperations,
198
200
  contractDataSource: SimpleContractDataSource,
199
201
  globals: GlobalVariables,
200
- protocolContracts: ProtocolContracts,
201
202
  ) {
202
203
  super(contractDataSource, merkleTrees);
203
204
  const contractsDb = new PublicContractsDB(contractDataSource);
204
- this.simulator = new PublicTxSimulator(
205
- merkleTrees,
206
- contractsDb,
207
- globals,
208
- {
209
- skipFeeEnforcement: false,
210
- collectDebugLogs: false,
211
- collectHints: false,
212
- collectStatistics: false,
213
- collectCallMetadata: false,
214
- },
215
- protocolContracts,
216
- );
205
+ // collectPublicInputs and collectCallMetadata are required so the C++ result carries the end
206
+ // tree snapshots and app-logic return values that the fuzzer bin reports back to the harness.
207
+ this.simulator = new PublicTxSimulator(merkleTrees, contractsDb, globals, {
208
+ skipFeeEnforcement: false,
209
+ collectDebugLogs: false,
210
+ collectHints: false,
211
+ collectPublicInputs: true,
212
+ collectStatistics: false,
213
+ collectCallMetadata: true,
214
+ });
217
215
  }
218
216
 
219
217
  /**
@@ -222,11 +220,10 @@ export class AvmFuzzerSimulator extends BaseAvmSimulationTester {
222
220
  public static async create(
223
221
  worldStateService: NativeWorldStateService,
224
222
  globals: GlobalVariables,
225
- protocolContracts: ProtocolContracts,
226
223
  ): Promise<AvmFuzzerSimulator> {
227
224
  const contractDataSource = new SimpleContractDataSource();
228
225
  const merkleTrees = await worldStateService.fork();
229
- return new AvmFuzzerSimulator(merkleTrees, contractDataSource, globals, protocolContracts);
226
+ return new AvmFuzzerSimulator(merkleTrees, contractDataSource, globals);
230
227
  }
231
228
 
232
229
  /**
@@ -3,10 +3,11 @@ import { EthAddress } from '@aztec/foundation/eth-address';
3
3
  import {
4
4
  AvmCircuitPublicInputs,
5
5
  type AvmTxHint,
6
+ PublicTxEffect,
6
7
  deserializeFromMessagePack,
7
8
  serializeWithMessagePack,
8
9
  } from '@aztec/stdlib/avm';
9
- import { GlobalVariables, ProtocolContracts, TreeSnapshots } from '@aztec/stdlib/tx';
10
+ import { GlobalVariables, TreeSnapshots } from '@aztec/stdlib/tx';
10
11
  import { NativeWorldStateService } from '@aztec/world-state';
11
12
 
12
13
  import { createInterface } from 'readline';
@@ -57,11 +58,16 @@ async function simulateWithFuzzer(
57
58
  rawContractInstances: [any, any][], // Replace these when we are moving contract instances to TS
58
59
  rawPublicDataWrites: any[], // Public data tree writes to apply before simulation
59
60
  rawNoteHashes: any[], // Note hashes to apply before simulation
60
- protocolContracts: ProtocolContracts, // Protocol contracts mapping from C++
61
- ): Promise<{ reverted: boolean; output: Fr[]; revertReason?: string; publicInputs: AvmCircuitPublicInputs }> {
61
+ ): Promise<{
62
+ reverted: boolean;
63
+ output: Fr[];
64
+ revertReason?: string;
65
+ publicInputs: AvmCircuitPublicInputs;
66
+ publicTxEffect: PublicTxEffect;
67
+ }> {
62
68
  const worldStateService = await openExistingWorldState(dataDir, mapSizeKb);
63
69
 
64
- const simulator = await AvmFuzzerSimulator.create(worldStateService, globals, protocolContracts);
70
+ const simulator = await AvmFuzzerSimulator.create(worldStateService, globals);
65
71
 
66
72
  await simulator.applyNoteHashes(rawNoteHashes);
67
73
 
@@ -90,6 +96,7 @@ async function simulateWithFuzzer(
90
96
  output,
91
97
  revertReason: result.findRevertReason()?.message,
92
98
  publicInputs: result.publicInputs!,
99
+ publicTxEffect: result.publicTxEffect,
93
100
  };
94
101
  }
95
102
 
@@ -100,7 +107,7 @@ async function execute(base64Line: string): Promise<void> {
100
107
  const rawRequest = deserializeFromMessagePack(buffer);
101
108
  const request = FuzzerSimulationRequest.fromPlainObject(rawRequest);
102
109
 
103
- // Run the TS simulation
110
+ // Run the simulation on the C++ AVM simulator
104
111
  const result = await simulateWithFuzzer(
105
112
  request.wsDataDir,
106
113
  request.wsMapSizeKb,
@@ -110,7 +117,6 @@ async function execute(base64Line: string): Promise<void> {
110
117
  request.contractInstances,
111
118
  request.publicDataWrites,
112
119
  request.noteHashes,
113
- request.protocolContracts,
114
120
  );
115
121
 
116
122
  // Serialize the result to msgpack and encode it in base64 for output
@@ -119,6 +125,7 @@ async function execute(base64Line: string): Promise<void> {
119
125
  output: result.output,
120
126
  revertReason: result.revertReason ?? '',
121
127
  endTreeSnapshots: result.publicInputs.endTreeSnapshots,
128
+ publicTxEffect: result.publicTxEffect,
122
129
  });
123
130
  const base64Response = resultBuffer.toString('base64') + '\n';
124
131
  await writeOutput(base64Response);
@@ -129,6 +136,7 @@ async function execute(base64Line: string): Promise<void> {
129
136
  output: [] as Fr[],
130
137
  revertReason: `Unexpected Error ${error.message}`,
131
138
  endTreeSnapshots: TreeSnapshots.empty(),
139
+ publicTxEffect: PublicTxEffect.empty(),
132
140
  });
133
141
  await writeOutput(errorResult.toString('base64') + '\n');
134
142
  }
@@ -2,11 +2,11 @@ export { PublicContractsDB } from './public_db_sources.js';
2
2
  export { GuardedMerkleTreeOperations } from './public_processor/guarded_merkle_tree.js';
3
3
  export { PublicProcessor, PublicProcessorFactory } from './public_processor/public_processor.js';
4
4
  export {
5
- CppPublicTxSimulator,
5
+ PublicTxSimulator,
6
6
  createPublicTxSimulatorForBlockBuilding,
7
- DumpingCppPublicTxSimulator,
7
+ DumpingPublicTxSimulator,
8
8
  type PublicTxSimulatorInterface,
9
- TelemetryCppPublicTxSimulator,
9
+ TelemetryPublicTxSimulator,
10
10
  } from './public_tx_simulator/index.js';
11
11
  export type { PublicTxResult, PublicSimulatorConfig as PublicTxSimulatorConfig } from '@aztec/stdlib/avm';
12
12
  export { getCallRequestsWithCalldataByPhase } from './utils.js';
@@ -5,7 +5,7 @@ import {
5
5
  PUBLIC_DATA_SUBTREE_HEIGHT,
6
6
  } from '@aztec/constants';
7
7
  import { Fr } from '@aztec/foundation/curves/bn254';
8
- import { createLogger } from '@aztec/foundation/log';
8
+ import { type Logger, type LoggerBindings, createLogger } from '@aztec/foundation/log';
9
9
  import { Timer } from '@aztec/foundation/timer';
10
10
  import { ContractClassPublishedEvent } from '@aztec/protocol-contracts/class-registry';
11
11
  import { ContractInstancePublishedEvent } from '@aztec/protocol-contracts/instance-registry';
@@ -46,14 +46,20 @@ import { L1ToL2MessageIndexOutOfRangeError, NoteHashIndexOutOfRangeError } from
46
46
  export class PublicContractsDB implements PublicContractsDBInterface {
47
47
  private contractStateStack: ContractsDbCheckpoint[] = [new ContractsDbCheckpoint()];
48
48
 
49
- private log = createLogger('simulator:contracts-data-source');
49
+ private log: Logger;
50
50
 
51
- constructor(private dataSource: ContractDataSource) {}
51
+ constructor(
52
+ private dataSource: ContractDataSource,
53
+ bindings?: LoggerBindings,
54
+ ) {
55
+ this.log = createLogger('simulator:contracts-data-source', bindings);
56
+ }
52
57
 
53
- public async addContracts(contractDeploymentData: ContractDeploymentData): Promise<void> {
58
+ /** Parses raw log data from the C++/NAPI bridge and inserts the resulting contracts into the current checkpoint. */
59
+ public addContractsFromLogs(contractDeploymentData: ContractDeploymentData): void {
54
60
  const currentState = this.getCurrentState();
55
61
 
56
- await this.addContractClassesFromEvents(
62
+ this.addContractClassesFromEvents(
57
63
  ContractClassPublishedEvent.extractContractClassEvents(contractDeploymentData.getContractClassLogs()),
58
64
  currentState,
59
65
  );
@@ -64,10 +70,18 @@ export class PublicContractsDB implements PublicContractsDBInterface {
64
70
  );
65
71
  }
66
72
 
67
- public async addNewContracts(tx: Tx): Promise<void> {
73
+ public addNewContracts(tx: Tx): void {
68
74
  const contractDeploymentData = AllContractDeploymentData.fromTx(tx);
69
- await this.addContracts(contractDeploymentData.getNonRevertibleContractDeploymentData());
70
- await this.addContracts(contractDeploymentData.getRevertibleContractDeploymentData());
75
+ this.addContractsFromLogs(contractDeploymentData.getNonRevertibleContractDeploymentData());
76
+ this.addContractsFromLogs(contractDeploymentData.getRevertibleContractDeploymentData());
77
+ }
78
+
79
+ /** Inserts typed contract instances directly into the current checkpoint. */
80
+ public addContracts(contractInstances?: ContractInstanceWithAddress[]): void {
81
+ const currentState = this.getCurrentState();
82
+ for (const instance of contractInstances ?? []) {
83
+ currentState.addInstance(instance.address, instance);
84
+ }
71
85
  }
72
86
 
73
87
  /**
@@ -76,7 +90,7 @@ export class PublicContractsDB implements PublicContractsDBInterface {
76
90
  */
77
91
  public createCheckpoint(): void {
78
92
  const currentState = this.getCurrentState();
79
- const newState = currentState.deepCopy();
93
+ const newState = currentState.fork();
80
94
  this.contractStateStack.push(newState);
81
95
  }
82
96
 
@@ -169,17 +183,15 @@ export class PublicContractsDB implements PublicContractsDBInterface {
169
183
  return await this.dataSource.getDebugFunctionName(address, selector);
170
184
  }
171
185
 
172
- private async addContractClassesFromEvents(
186
+ private addContractClassesFromEvents(
173
187
  contractClassEvents: ContractClassPublishedEvent[],
174
188
  state: ContractsDbCheckpoint,
175
189
  ) {
176
- await Promise.all(
177
- contractClassEvents.map(async (event: ContractClassPublishedEvent) => {
178
- this.log.debug(`Adding class ${event.contractClassId.toString()} to contract state`);
179
- const contractClass = await event.toContractClassPublic();
180
- state.addClass(event.contractClassId, contractClass);
181
- }),
182
- );
190
+ for (const event of contractClassEvents) {
191
+ this.log.debug(`Adding class ${event.contractClassId.toString()} to contract state`);
192
+ const contractClass = event.toContractClassPublic();
193
+ state.addClass(event.contractClassId, contractClass);
194
+ }
183
195
  }
184
196
 
185
197
  private addContractInstancesFromEvents(
@@ -208,9 +220,14 @@ export class PublicContractsDB implements PublicContractsDBInterface {
208
220
  * to decide whether to use hints or not (same with tracing, etc).
209
221
  */
210
222
  export class PublicTreesDB implements PublicStateDBInterface {
211
- private logger = createLogger('simulator:public-trees-db');
223
+ private logger: Logger;
212
224
 
213
- constructor(private readonly db: MerkleTreeWriteOperations) {}
225
+ constructor(
226
+ private readonly db: MerkleTreeWriteOperations,
227
+ bindings?: LoggerBindings,
228
+ ) {
229
+ this.logger = createLogger('simulator:public-trees-db', bindings);
230
+ }
214
231
 
215
232
  public async storageRead(contract: AztecAddress, slot: Fr): Promise<Fr> {
216
233
  const timer = new Timer();
@@ -12,7 +12,7 @@ import type {
12
12
  TreeInfo,
13
13
  } from '@aztec/stdlib/trees';
14
14
  import type { BlockHeader, StateReference } from '@aztec/stdlib/tx';
15
- import type { WorldStateRevision, WorldStateRevisionWithHandle } from '@aztec/stdlib/world-state';
15
+ import type { WorldStateRevision } from '@aztec/stdlib/world-state';
16
16
 
17
17
  /**
18
18
  * Wraps an instance of `MerkleTreeWriteOperations` to allow the sequencer to gate access.
@@ -82,7 +82,7 @@ export class GuardedMerkleTreeOperations implements MerkleTreeWriteOperations {
82
82
  return this.guardAndPush(() => this.target.close());
83
83
  }
84
84
 
85
- async [Symbol.dispose](): Promise<void> {
85
+ async [Symbol.asyncDispose](): Promise<void> {
86
86
  await this.close();
87
87
  }
88
88
  getTreeInfo(treeId: MerkleTreeId): Promise<TreeInfo> {
@@ -94,9 +94,12 @@ export class GuardedMerkleTreeOperations implements MerkleTreeWriteOperations {
94
94
  getInitialHeader(): BlockHeader {
95
95
  return this.target.getInitialHeader();
96
96
  }
97
- public getRevision(): WorldStateRevision | WorldStateRevisionWithHandle {
97
+ public getRevision(): WorldStateRevision {
98
98
  return this.target.getRevision();
99
99
  }
100
+ public getIpcPath(): string {
101
+ return this.target.getIpcPath();
102
+ }
100
103
  getSiblingPath<ID extends MerkleTreeId>(treeId: ID, index: bigint): Promise<SiblingPath<TreeHeights[ID]>> {
101
104
  return this.guardAndPush(() => this.target.getSiblingPath(treeId, index));
102
105
  }
@@ -134,7 +137,7 @@ export class GuardedMerkleTreeOperations implements MerkleTreeWriteOperations {
134
137
  ): Promise<(BlockNumber | undefined)[]> {
135
138
  return this.guardAndPush(() => this.target.getBlockNumbersForLeafIndices(treeId, leafIndices));
136
139
  }
137
- createCheckpoint(): Promise<void> {
140
+ createCheckpoint(): Promise<number> {
138
141
  return this.guardAndPush(() => this.target.createCheckpoint());
139
142
  }
140
143
  commitCheckpoint(): Promise<void> {
@@ -143,11 +146,11 @@ export class GuardedMerkleTreeOperations implements MerkleTreeWriteOperations {
143
146
  revertCheckpoint(): Promise<void> {
144
147
  return this.guardAndPush(() => this.target.revertCheckpoint());
145
148
  }
146
- commitAllCheckpoints(): Promise<void> {
147
- return this.guardAndPush(() => this.target.commitAllCheckpoints());
149
+ commitAllCheckpointsTo(depth: number): Promise<void> {
150
+ return this.guardAndPush(() => this.target.commitAllCheckpointsTo(depth));
148
151
  }
149
- revertAllCheckpoints(): Promise<void> {
150
- return this.guardAndPush(() => this.target.revertAllCheckpoints());
152
+ revertAllCheckpointsTo(depth: number): Promise<void> {
153
+ return this.guardAndPush(() => this.target.revertAllCheckpointsTo(depth));
151
154
  }
152
155
  findSiblingPaths<ID extends MerkleTreeId>(
153
156
  treeId: ID,