@aztec/simulator 0.0.1-commit.2ed92850 → 0.0.1-commit.2f68f620

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 (342) hide show
  1. package/README.md +4 -4
  2. package/dest/private/acvm/acvm.d.ts +4 -2
  3. package/dest/private/acvm/acvm.d.ts.map +1 -1
  4. package/dest/private/acvm/acvm.js +4 -3
  5. package/dest/private/acvm_native.d.ts +5 -3
  6. package/dest/private/acvm_native.d.ts.map +1 -1
  7. package/dest/private/acvm_native.js +8 -6
  8. package/dest/private/acvm_wasm.d.ts +4 -3
  9. package/dest/private/acvm_wasm.d.ts.map +1 -1
  10. package/dest/private/acvm_wasm.js +7 -5
  11. package/dest/private/circuit_recording/circuit_recorder.d.ts +4 -3
  12. package/dest/private/circuit_recording/circuit_recorder.d.ts.map +1 -1
  13. package/dest/private/circuit_recording/circuit_recorder.js +7 -5
  14. package/dest/private/circuit_recording/file_circuit_recorder.d.ts +3 -2
  15. package/dest/private/circuit_recording/file_circuit_recorder.d.ts.map +1 -1
  16. package/dest/private/circuit_recording/file_circuit_recorder.js +2 -2
  17. package/dest/private/circuit_recording/memory_circuit_recorder.d.ts +7 -2
  18. package/dest/private/circuit_recording/memory_circuit_recorder.d.ts.map +1 -1
  19. package/dest/private/circuit_recording/memory_circuit_recorder.js +4 -4
  20. package/dest/private/factory.d.ts +3 -3
  21. package/dest/private/factory.d.ts.map +1 -1
  22. package/dest/private/factory.js +7 -4
  23. package/dest/public/avm/testing/account_proof_fetcher.d.ts +2 -0
  24. package/dest/public/avm/testing/account_proof_fetcher.d.ts.map +1 -0
  25. package/dest/public/avm/testing/account_proof_fetcher.js +152 -0
  26. package/dest/public/avm/{fixtures → testing}/base_avm_simulation_tester.d.ts +2 -1
  27. package/dest/public/avm/testing/base_avm_simulation_tester.d.ts.map +1 -0
  28. package/dest/public/avm/{fixtures → testing}/base_avm_simulation_tester.js +17 -2
  29. package/dest/public/avm/testing/utils.d.ts +32 -0
  30. package/dest/public/avm/testing/utils.d.ts.map +1 -0
  31. package/dest/public/avm/{fixtures → testing}/utils.js +3 -33
  32. package/dest/public/contracts_db_checkpoint.d.ts +2 -2
  33. package/dest/public/contracts_db_checkpoint.d.ts.map +1 -1
  34. package/dest/public/contracts_db_checkpoint.js +1 -1
  35. package/dest/public/executor_metrics.d.ts +1 -1
  36. package/dest/public/executor_metrics.d.ts.map +1 -1
  37. package/dest/public/executor_metrics.js +7 -2
  38. package/dest/public/fixtures/amm_test.js +2 -2
  39. package/dest/public/fixtures/bulk_test.d.ts +1 -1
  40. package/dest/public/fixtures/bulk_test.d.ts.map +1 -1
  41. package/dest/public/fixtures/bulk_test.js +31 -4
  42. package/dest/public/fixtures/index.d.ts +1 -4
  43. package/dest/public/fixtures/index.d.ts.map +1 -1
  44. package/dest/public/fixtures/index.js +0 -3
  45. package/dest/public/fixtures/public_tx_simulation_tester.d.ts +8 -7
  46. package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
  47. package/dest/public/fixtures/public_tx_simulation_tester.js +16 -17
  48. package/dest/public/fixtures/simple_contract_data_source.js +1 -1
  49. package/dest/public/fixtures/utils.d.ts +2 -2
  50. package/dest/public/fixtures/utils.d.ts.map +1 -1
  51. package/dest/public/fixtures/utils.js +19 -20
  52. package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts +6 -4
  53. package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts.map +1 -1
  54. package/dest/public/fuzzing/avm_fuzzer_simulator.js +12 -7
  55. package/dest/public/fuzzing/avm_simulator_bin.js +4 -4
  56. package/dest/public/index.d.ts +2 -2
  57. package/dest/public/index.d.ts.map +1 -1
  58. package/dest/public/index.js +1 -1
  59. package/dest/public/public_db_sources.d.ts +9 -5
  60. package/dest/public/public_db_sources.d.ts.map +1 -1
  61. package/dest/public/public_db_sources.js +20 -14
  62. package/dest/public/public_processor/guarded_merkle_tree.d.ts +8 -7
  63. package/dest/public/public_processor/guarded_merkle_tree.d.ts.map +1 -1
  64. package/dest/public/public_processor/guarded_merkle_tree.js +8 -5
  65. package/dest/public/public_processor/public_processor.d.ts +11 -6
  66. package/dest/public/public_processor/public_processor.d.ts.map +1 -1
  67. package/dest/public/public_processor/public_processor.js +112 -74
  68. package/dest/public/public_processor/public_processor_metrics.d.ts +5 -2
  69. package/dest/public/public_processor/public_processor_metrics.d.ts.map +1 -1
  70. package/dest/public/public_processor/public_processor_metrics.js +28 -4
  71. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts +3 -2
  72. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts.map +1 -1
  73. package/dest/public/public_tx_simulator/contract_provider_for_cpp.js +5 -4
  74. package/dest/public/public_tx_simulator/dumping_public_tx_simulator.d.ts +23 -0
  75. package/dest/public/public_tx_simulator/dumping_public_tx_simulator.d.ts.map +1 -0
  76. package/dest/public/public_tx_simulator/{dumping_cpp_public_tx_simulator.js → dumping_public_tx_simulator.js} +4 -4
  77. package/dest/public/public_tx_simulator/factories.d.ts +7 -6
  78. package/dest/public/public_tx_simulator/factories.d.ts.map +1 -1
  79. package/dest/public/public_tx_simulator/factories.js +8 -8
  80. package/dest/public/public_tx_simulator/index.d.ts +3 -5
  81. package/dest/public/public_tx_simulator/index.d.ts.map +1 -1
  82. package/dest/public/public_tx_simulator/index.js +2 -4
  83. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +42 -70
  84. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
  85. package/dest/public/public_tx_simulator/public_tx_simulator.js +99 -318
  86. package/dest/public/public_tx_simulator/public_tx_simulator_base.d.ts +22 -0
  87. package/dest/public/public_tx_simulator/public_tx_simulator_base.d.ts.map +1 -0
  88. package/dest/public/public_tx_simulator/public_tx_simulator_base.js +28 -0
  89. package/dest/public/test_executor_metrics.d.ts +3 -2
  90. package/dest/public/test_executor_metrics.d.ts.map +1 -1
  91. package/dest/public/test_executor_metrics.js +2 -2
  92. package/package.json +17 -18
  93. package/src/private/acvm/acvm.ts +4 -3
  94. package/src/private/acvm_native.ts +11 -5
  95. package/src/private/acvm_wasm.ts +11 -4
  96. package/src/private/circuit_recording/circuit_recorder.ts +7 -5
  97. package/src/private/circuit_recording/file_circuit_recorder.ts +7 -2
  98. package/src/private/circuit_recording/memory_circuit_recorder.ts +6 -4
  99. package/src/private/factory.ts +7 -4
  100. package/src/public/avm/testing/account_proof.json +553 -0
  101. package/src/public/avm/testing/account_proof_fetcher.ts +166 -0
  102. package/src/public/avm/{fixtures → testing}/base_avm_simulation_tester.ts +22 -2
  103. package/src/public/avm/{fixtures → testing}/utils.ts +3 -39
  104. package/src/public/contracts_db_checkpoint.ts +1 -1
  105. package/src/public/executor_metrics.ts +4 -1
  106. package/src/public/fixtures/amm_test.ts +2 -2
  107. package/src/public/fixtures/bulk_test.ts +29 -4
  108. package/src/public/fixtures/index.ts +0 -3
  109. package/src/public/fixtures/public_tx_simulation_tester.ts +30 -15
  110. package/src/public/fixtures/simple_contract_data_source.ts +1 -1
  111. package/src/public/fixtures/utils.ts +26 -22
  112. package/src/public/fuzzing/avm_fuzzer_simulator.ts +16 -19
  113. package/src/public/fuzzing/avm_simulator_bin.ts +3 -5
  114. package/src/public/index.ts +3 -3
  115. package/src/public/public_db_sources.ts +36 -19
  116. package/src/public/public_processor/guarded_merkle_tree.ts +11 -8
  117. package/src/public/public_processor/public_processor.ts +156 -94
  118. package/src/public/public_processor/public_processor_metrics.ts +22 -4
  119. package/src/public/public_tx_simulator/contract_provider_for_cpp.ts +9 -5
  120. package/src/public/public_tx_simulator/{dumping_cpp_public_tx_simulator.ts → dumping_public_tx_simulator.ts} +5 -3
  121. package/src/public/public_tx_simulator/factories.ts +10 -7
  122. package/src/public/public_tx_simulator/index.ts +2 -4
  123. package/src/public/public_tx_simulator/public_tx_simulator.ts +153 -475
  124. package/src/public/public_tx_simulator/public_tx_simulator_base.ts +35 -0
  125. package/src/public/test_executor_metrics.ts +3 -3
  126. package/dest/public/avm/avm_context.d.ts +0 -41
  127. package/dest/public/avm/avm_context.d.ts.map +0 -1
  128. package/dest/public/avm/avm_context.js +0 -44
  129. package/dest/public/avm/avm_contract_call_result.d.ts +0 -32
  130. package/dest/public/avm/avm_contract_call_result.d.ts.map +0 -1
  131. package/dest/public/avm/avm_contract_call_result.js +0 -54
  132. package/dest/public/avm/avm_execution_environment.d.ts +0 -24
  133. package/dest/public/avm/avm_execution_environment.d.ts.map +0 -1
  134. package/dest/public/avm/avm_execution_environment.js +0 -33
  135. package/dest/public/avm/avm_gas.d.ts +0 -44
  136. package/dest/public/avm/avm_gas.d.ts.map +0 -1
  137. package/dest/public/avm/avm_gas.js +0 -195
  138. package/dest/public/avm/avm_machine_state.d.ts +0 -98
  139. package/dest/public/avm/avm_machine_state.d.ts.map +0 -1
  140. package/dest/public/avm/avm_machine_state.js +0 -110
  141. package/dest/public/avm/avm_memory_types.d.ts +0 -275
  142. package/dest/public/avm/avm_memory_types.d.ts.map +0 -1
  143. package/dest/public/avm/avm_memory_types.js +0 -354
  144. package/dest/public/avm/avm_simulator.d.ts +0 -41
  145. package/dest/public/avm/avm_simulator.d.ts.map +0 -1
  146. package/dest/public/avm/avm_simulator.js +0 -192
  147. package/dest/public/avm/avm_simulator_interface.d.ts +0 -9
  148. package/dest/public/avm/avm_simulator_interface.d.ts.map +0 -1
  149. package/dest/public/avm/avm_simulator_interface.js +0 -3
  150. package/dest/public/avm/calldata.d.ts +0 -51
  151. package/dest/public/avm/calldata.d.ts.map +0 -1
  152. package/dest/public/avm/calldata.js +0 -63
  153. package/dest/public/avm/errors.d.ts +0 -104
  154. package/dest/public/avm/errors.d.ts.map +0 -1
  155. package/dest/public/avm/errors.js +0 -141
  156. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts +0 -22
  157. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts.map +0 -1
  158. package/dest/public/avm/fixtures/avm_simulation_tester.js +0 -84
  159. package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts.map +0 -1
  160. package/dest/public/avm/fixtures/initializers.d.ts +0 -42
  161. package/dest/public/avm/fixtures/initializers.d.ts.map +0 -1
  162. package/dest/public/avm/fixtures/initializers.js +0 -45
  163. package/dest/public/avm/fixtures/utils.d.ts +0 -39
  164. package/dest/public/avm/fixtures/utils.d.ts.map +0 -1
  165. package/dest/public/avm/index.d.ts +0 -2
  166. package/dest/public/avm/index.d.ts.map +0 -1
  167. package/dest/public/avm/index.js +0 -1
  168. package/dest/public/avm/opcodes/accrued_substate.d.ts +0 -75
  169. package/dest/public/avm/opcodes/accrued_substate.d.ts.map +0 -1
  170. package/dest/public/avm/opcodes/accrued_substate.js +0 -259
  171. package/dest/public/avm/opcodes/addressing_mode.d.ts +0 -31
  172. package/dest/public/avm/opcodes/addressing_mode.d.ts.map +0 -1
  173. package/dest/public/avm/opcodes/addressing_mode.js +0 -94
  174. package/dest/public/avm/opcodes/arithmetic.d.ts +0 -49
  175. package/dest/public/avm/opcodes/arithmetic.d.ts.map +0 -1
  176. package/dest/public/avm/opcodes/arithmetic.js +0 -97
  177. package/dest/public/avm/opcodes/bitwise.d.ts +0 -42
  178. package/dest/public/avm/opcodes/bitwise.d.ts.map +0 -1
  179. package/dest/public/avm/opcodes/bitwise.js +0 -99
  180. package/dest/public/avm/opcodes/comparators.d.ts +0 -25
  181. package/dest/public/avm/opcodes/comparators.d.ts.map +0 -1
  182. package/dest/public/avm/opcodes/comparators.js +0 -43
  183. package/dest/public/avm/opcodes/contract.d.ts +0 -20
  184. package/dest/public/avm/opcodes/contract.d.ts.map +0 -1
  185. package/dest/public/avm/opcodes/contract.js +0 -65
  186. package/dest/public/avm/opcodes/control_flow.d.ts +0 -41
  187. package/dest/public/avm/opcodes/control_flow.d.ts.map +0 -1
  188. package/dest/public/avm/opcodes/control_flow.js +0 -107
  189. package/dest/public/avm/opcodes/conversion.d.ts +0 -18
  190. package/dest/public/avm/opcodes/conversion.d.ts.map +0 -1
  191. package/dest/public/avm/opcodes/conversion.js +0 -333
  192. package/dest/public/avm/opcodes/ec_add.d.ts +0 -19
  193. package/dest/public/avm/opcodes/ec_add.d.ts.map +0 -1
  194. package/dest/public/avm/opcodes/ec_add.js +0 -93
  195. package/dest/public/avm/opcodes/environment_getters.d.ts +0 -28
  196. package/dest/public/avm/opcodes/environment_getters.d.ts.map +0 -1
  197. package/dest/public/avm/opcodes/environment_getters.js +0 -77
  198. package/dest/public/avm/opcodes/external_calls.d.ts +0 -59
  199. package/dest/public/avm/opcodes/external_calls.d.ts.map +0 -1
  200. package/dest/public/avm/opcodes/external_calls.js +0 -210
  201. package/dest/public/avm/opcodes/hashing.d.ts +0 -36
  202. package/dest/public/avm/opcodes/hashing.d.ts.map +0 -1
  203. package/dest/public/avm/opcodes/hashing.js +0 -119
  204. package/dest/public/avm/opcodes/index.d.ts +0 -16
  205. package/dest/public/avm/opcodes/index.d.ts.map +0 -1
  206. package/dest/public/avm/opcodes/index.js +0 -15
  207. package/dest/public/avm/opcodes/instruction.d.ts +0 -74
  208. package/dest/public/avm/opcodes/instruction.d.ts.map +0 -1
  209. package/dest/public/avm/opcodes/instruction.js +0 -95
  210. package/dest/public/avm/opcodes/instruction_impl.d.ts +0 -19
  211. package/dest/public/avm/opcodes/instruction_impl.d.ts.map +0 -1
  212. package/dest/public/avm/opcodes/instruction_impl.js +0 -30
  213. package/dest/public/avm/opcodes/memory.d.ts +0 -74
  214. package/dest/public/avm/opcodes/memory.d.ts.map +0 -1
  215. package/dest/public/avm/opcodes/memory.js +0 -257
  216. package/dest/public/avm/opcodes/misc.d.ts +0 -18
  217. package/dest/public/avm/opcodes/misc.d.ts.map +0 -1
  218. package/dest/public/avm/opcodes/misc.js +0 -73
  219. package/dest/public/avm/opcodes/storage.d.ts +0 -25
  220. package/dest/public/avm/opcodes/storage.d.ts.map +0 -1
  221. package/dest/public/avm/opcodes/storage.js +0 -78
  222. package/dest/public/avm/revert_reason.d.ts +0 -18
  223. package/dest/public/avm/revert_reason.d.ts.map +0 -1
  224. package/dest/public/avm/revert_reason.js +0 -39
  225. package/dest/public/avm/serialization/buffer_cursor.d.ts +0 -26
  226. package/dest/public/avm/serialization/buffer_cursor.d.ts.map +0 -1
  227. package/dest/public/avm/serialization/buffer_cursor.js +0 -99
  228. package/dest/public/avm/serialization/bytecode_serialization.d.ts +0 -17
  229. package/dest/public/avm/serialization/bytecode_serialization.d.ts.map +0 -1
  230. package/dest/public/avm/serialization/bytecode_serialization.js +0 -336
  231. package/dest/public/avm/serialization/instruction_serialization.d.ts +0 -114
  232. package/dest/public/avm/serialization/instruction_serialization.d.ts.map +0 -1
  233. package/dest/public/avm/serialization/instruction_serialization.js +0 -261
  234. package/dest/public/avm/test_utils.d.ts +0 -15
  235. package/dest/public/avm/test_utils.d.ts.map +0 -1
  236. package/dest/public/avm/test_utils.js +0 -44
  237. package/dest/public/debug_fn_name.d.ts +0 -18
  238. package/dest/public/debug_fn_name.d.ts.map +0 -1
  239. package/dest/public/debug_fn_name.js +0 -37
  240. package/dest/public/fixtures/custom_bytecode_tests.d.ts +0 -12
  241. package/dest/public/fixtures/custom_bytecode_tests.d.ts.map +0 -1
  242. package/dest/public/fixtures/custom_bytecode_tests.js +0 -174
  243. package/dest/public/fixtures/minimal_public_tx.d.ts +0 -4
  244. package/dest/public/fixtures/minimal_public_tx.d.ts.map +0 -1
  245. package/dest/public/fixtures/minimal_public_tx.js +0 -19
  246. package/dest/public/fixtures/opcode_spammer.d.ts +0 -123
  247. package/dest/public/fixtures/opcode_spammer.d.ts.map +0 -1
  248. package/dest/public/fixtures/opcode_spammer.js +0 -1693
  249. package/dest/public/hinting_db_sources.d.ts +0 -80
  250. package/dest/public/hinting_db_sources.d.ts.map +0 -1
  251. package/dest/public/hinting_db_sources.js +0 -355
  252. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts +0 -53
  253. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts.map +0 -1
  254. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.js +0 -132
  255. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts +0 -42
  256. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts.map +0 -1
  257. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.js +0 -86
  258. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts +0 -30
  259. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts.map +0 -1
  260. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.js +0 -171
  261. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts +0 -22
  262. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts.map +0 -1
  263. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts +0 -31
  264. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts.map +0 -1
  265. package/dest/public/public_tx_simulator/measured_public_tx_simulator.js +0 -51
  266. package/dest/public/public_tx_simulator/public_tx_context.d.ts +0 -130
  267. package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +0 -1
  268. package/dest/public/public_tx_simulator/public_tx_context.js +0 -300
  269. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts +0 -21
  270. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts.map +0 -1
  271. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.js +0 -415
  272. package/dest/public/side_effect_trace.d.ts +0 -87
  273. package/dest/public/side_effect_trace.d.ts.map +0 -1
  274. package/dest/public/side_effect_trace.js +0 -199
  275. package/dest/public/side_effect_trace_interface.d.ts +0 -22
  276. package/dest/public/side_effect_trace_interface.d.ts.map +0 -1
  277. package/dest/public/side_effect_trace_interface.js +0 -1
  278. package/dest/public/state_manager/index.d.ts +0 -2
  279. package/dest/public/state_manager/index.d.ts.map +0 -1
  280. package/dest/public/state_manager/index.js +0 -1
  281. package/dest/public/state_manager/nullifiers.d.ts +0 -61
  282. package/dest/public/state_manager/nullifiers.d.ts.map +0 -1
  283. package/dest/public/state_manager/nullifiers.js +0 -92
  284. package/dest/public/state_manager/public_storage.d.ts +0 -66
  285. package/dest/public/state_manager/public_storage.d.ts.map +0 -1
  286. package/dest/public/state_manager/public_storage.js +0 -145
  287. package/dest/public/state_manager/state_manager.d.ts +0 -164
  288. package/dest/public/state_manager/state_manager.d.ts.map +0 -1
  289. package/dest/public/state_manager/state_manager.js +0 -395
  290. package/src/public/avm/avm_context.ts +0 -61
  291. package/src/public/avm/avm_contract_call_result.ts +0 -69
  292. package/src/public/avm/avm_execution_environment.ts +0 -51
  293. package/src/public/avm/avm_gas.ts +0 -183
  294. package/src/public/avm/avm_machine_state.ts +0 -170
  295. package/src/public/avm/avm_memory_types.ts +0 -440
  296. package/src/public/avm/avm_simulator.ts +0 -279
  297. package/src/public/avm/avm_simulator_interface.ts +0 -8
  298. package/src/public/avm/calldata.ts +0 -100
  299. package/src/public/avm/errors.ts +0 -177
  300. package/src/public/avm/fixtures/avm_simulation_tester.ts +0 -122
  301. package/src/public/avm/fixtures/initializers.ts +0 -103
  302. package/src/public/avm/index.ts +0 -1
  303. package/src/public/avm/opcodes/accrued_substate.ts +0 -294
  304. package/src/public/avm/opcodes/addressing_mode.ts +0 -111
  305. package/src/public/avm/opcodes/arithmetic.ts +0 -129
  306. package/src/public/avm/opcodes/bitwise.ts +0 -113
  307. package/src/public/avm/opcodes/comparators.ts +0 -55
  308. package/src/public/avm/opcodes/contract.ts +0 -72
  309. package/src/public/avm/opcodes/control_flow.ts +0 -123
  310. package/src/public/avm/opcodes/conversion.ts +0 -104
  311. package/src/public/avm/opcodes/ec_add.ts +0 -105
  312. package/src/public/avm/opcodes/environment_getters.ts +0 -87
  313. package/src/public/avm/opcodes/external_calls.ts +0 -262
  314. package/src/public/avm/opcodes/hashing.ts +0 -151
  315. package/src/public/avm/opcodes/index.ts +0 -15
  316. package/src/public/avm/opcodes/instruction.ts +0 -136
  317. package/src/public/avm/opcodes/instruction_impl.ts +0 -36
  318. package/src/public/avm/opcodes/memory.ts +0 -293
  319. package/src/public/avm/opcodes/misc.ts +0 -102
  320. package/src/public/avm/opcodes/storage.ts +0 -95
  321. package/src/public/avm/revert_reason.ts +0 -58
  322. package/src/public/avm/serialization/buffer_cursor.ts +0 -118
  323. package/src/public/avm/serialization/bytecode_serialization.ts +0 -215
  324. package/src/public/avm/serialization/instruction_serialization.ts +0 -249
  325. package/src/public/avm/test_utils.ts +0 -64
  326. package/src/public/debug_fn_name.ts +0 -52
  327. package/src/public/fixtures/custom_bytecode_tests.ts +0 -228
  328. package/src/public/fixtures/minimal_public_tx.ts +0 -26
  329. package/src/public/fixtures/opcode_spammer.ts +0 -1754
  330. package/src/public/hinting_db_sources.ts +0 -607
  331. package/src/public/public_tx_simulator/cpp_public_tx_simulator.ts +0 -208
  332. package/src/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.ts +0 -132
  333. package/src/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.ts +0 -237
  334. package/src/public/public_tx_simulator/measured_public_tx_simulator.ts +0 -105
  335. package/src/public/public_tx_simulator/public_tx_context.ts +0 -477
  336. package/src/public/public_tx_simulator/telemetry_public_tx_simulator.ts +0 -63
  337. package/src/public/side_effect_trace.ts +0 -290
  338. package/src/public/side_effect_trace_interface.ts +0 -28
  339. package/src/public/state_manager/index.ts +0 -1
  340. package/src/public/state_manager/nullifiers.ts +0 -103
  341. package/src/public/state_manager/public_storage.ts +0 -174
  342. 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';
@@ -14,7 +12,13 @@ import { CONTRACT_INSTANCE_PUBLISHED_EVENT_TAG } from '@aztec/protocol-contracts
14
12
  import { bufferAsFields } from '@aztec/stdlib/abi';
15
13
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
16
14
  import type { ContractClassPublic, ContractInstanceWithAddress } from '@aztec/stdlib/contract';
17
- import { Gas, GasFees, GasSettings } from '@aztec/stdlib/gas';
15
+ import {
16
+ FALLBACK_TEARDOWN_DA_GAS_LIMIT,
17
+ FALLBACK_TEARDOWN_L2_GAS_LIMIT,
18
+ Gas,
19
+ GasFees,
20
+ GasSettings,
21
+ } from '@aztec/stdlib/gas';
18
22
  import { siloNullifier } from '@aztec/stdlib/hash';
19
23
  import {
20
24
  LogHash,
@@ -62,13 +66,14 @@ export async function createTxForPublicCalls(
62
66
  feePayer = AztecAddress.zero(),
63
67
  gasUsedByPrivate: Gas = Gas.empty(),
64
68
  globals: GlobalVariables = GlobalVariables.empty(),
69
+ gasLimits?: Gas,
65
70
  ): Promise<Tx> {
66
71
  assert(
67
72
  setupCallRequests.length > 0 || appCallRequests.length > 0 || teardownCallRequest !== undefined,
68
73
  "Can't create public tx with no enqueued calls",
69
74
  );
70
75
  // use max limits
71
- const gasLimits = new Gas(DEFAULT_DA_GAS_LIMIT, DEFAULT_L2_GAS_LIMIT);
76
+ gasLimits = gasLimits ?? new Gas(MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT, MAX_PROCESSABLE_L2_GAS);
72
77
 
73
78
  const forPublic = PartialPrivateTailPublicInputsForPublic.empty();
74
79
 
@@ -128,19 +133,19 @@ export async function createTxForPublicCalls(
128
133
 
129
134
  const maxFeesPerGas = feePayer.isZero() ? GasFees.empty() : new GasFees(10, 10);
130
135
  const teardownGasLimits = teardownCallRequest
131
- ? new Gas(DEFAULT_TEARDOWN_DA_GAS_LIMIT, DEFAULT_TEARDOWN_L2_GAS_LIMIT)
136
+ ? new Gas(FALLBACK_TEARDOWN_DA_GAS_LIMIT, FALLBACK_TEARDOWN_L2_GAS_LIMIT)
132
137
  : Gas.empty();
133
138
  const gasSettings = new GasSettings(gasLimits, teardownGasLimits, maxFeesPerGas, GasFees.empty());
134
139
  const txContext = new TxContext(Fr.zero(), Fr.zero(), gasSettings);
135
140
  const header = BlockHeader.empty({ globalVariables: globals });
136
141
  const constantData = new TxConstantData(header, txContext, Fr.zero(), Fr.zero());
137
- const includeByTimestamp = 0n; // Not used in the simulator.
142
+ const expirationTimestamp = 0n; // Not used in the simulator.
138
143
 
139
144
  const txData = new PrivateKernelTailCircuitPublicInputs(
140
145
  constantData,
141
146
  /*gasUsed=*/ gasUsedByPrivate,
142
147
  feePayer,
143
- includeByTimestamp,
148
+ expirationTimestamp,
144
149
  forPublic,
145
150
  );
146
151
 
@@ -163,7 +168,7 @@ export async function createTxForPrivateOnly(
163
168
  gasUsedByPrivate: Gas = new Gas(10, 10),
164
169
  ): Promise<Tx> {
165
170
  // use max limits
166
- const gasLimits = new Gas(DEFAULT_DA_GAS_LIMIT, DEFAULT_L2_GAS_LIMIT);
171
+ const gasLimits = new Gas(MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT, MAX_PROCESSABLE_L2_GAS);
167
172
 
168
173
  const forRollup = PartialPrivateTailPublicInputsForRollup.empty();
169
174
 
@@ -171,13 +176,13 @@ export async function createTxForPrivateOnly(
171
176
  const gasSettings = new GasSettings(gasLimits, Gas.empty(), maxFeesPerGas, GasFees.empty());
172
177
  const txContext = new TxContext(Fr.zero(), Fr.zero(), gasSettings);
173
178
  const constantData = new TxConstantData(BlockHeader.empty(), txContext, Fr.zero(), Fr.zero());
174
- const includeByTimestamp = 0n; // Not used in the simulator.
179
+ const expirationTimestamp = 0n; // Not used in the simulator.
175
180
 
176
181
  const txData = new PrivateKernelTailCircuitPublicInputs(
177
182
  constantData,
178
183
  /*gasUsed=*/ gasUsedByPrivate,
179
184
  feePayer,
180
- includeByTimestamp,
185
+ expirationTimestamp,
181
186
  /*forPublic=*/ undefined,
182
187
  forRollup,
183
188
  );
@@ -228,17 +233,15 @@ export async function addNewContractInstanceToTx(
228
233
  contractInstance: ContractInstanceWithAddress,
229
234
  skipNullifierInsertion = false,
230
235
  ) {
231
- // can't use publicKeys.toFields() because it includes isInfinite which
232
- // is not broadcast in such private logs
236
+ // Only ivpk_m is broadcast as a point (x, y); the other five keys are hashes.
233
237
  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,
238
+ contractInstance.publicKeys.npkMHash,
239
+ contractInstance.publicKeys.ivpkM.x,
240
+ contractInstance.publicKeys.ivpkM.y,
241
+ contractInstance.publicKeys.ovpkMHash,
242
+ contractInstance.publicKeys.tpkMHash,
243
+ contractInstance.publicKeys.mspkMHash,
244
+ contractInstance.publicKeys.fbpkMHash,
242
245
  ];
243
246
  const logFields = [
244
247
  CONTRACT_INSTANCE_PUBLISHED_EVENT_TAG,
@@ -247,6 +250,7 @@ export async function addNewContractInstanceToTx(
247
250
  new Fr(contractInstance.salt),
248
251
  contractInstance.currentContractClassId,
249
252
  contractInstance.initializationHash,
253
+ contractInstance.immutablesHash,
250
254
  ...publicKeysAsFields,
251
255
  contractInstance.deployer.toField(),
252
256
  ];
@@ -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
  /**
@@ -7,7 +7,7 @@ import {
7
7
  deserializeFromMessagePack,
8
8
  serializeWithMessagePack,
9
9
  } from '@aztec/stdlib/avm';
10
- import { GlobalVariables, ProtocolContracts, TreeSnapshots } from '@aztec/stdlib/tx';
10
+ import { GlobalVariables, TreeSnapshots } from '@aztec/stdlib/tx';
11
11
  import { NativeWorldStateService } from '@aztec/world-state';
12
12
 
13
13
  import { createInterface } from 'readline';
@@ -58,7 +58,6 @@ async function simulateWithFuzzer(
58
58
  rawContractInstances: [any, any][], // Replace these when we are moving contract instances to TS
59
59
  rawPublicDataWrites: any[], // Public data tree writes to apply before simulation
60
60
  rawNoteHashes: any[], // Note hashes to apply before simulation
61
- protocolContracts: ProtocolContracts, // Protocol contracts mapping from C++
62
61
  ): Promise<{
63
62
  reverted: boolean;
64
63
  output: Fr[];
@@ -68,7 +67,7 @@ async function simulateWithFuzzer(
68
67
  }> {
69
68
  const worldStateService = await openExistingWorldState(dataDir, mapSizeKb);
70
69
 
71
- const simulator = await AvmFuzzerSimulator.create(worldStateService, globals, protocolContracts);
70
+ const simulator = await AvmFuzzerSimulator.create(worldStateService, globals);
72
71
 
73
72
  await simulator.applyNoteHashes(rawNoteHashes);
74
73
 
@@ -108,7 +107,7 @@ async function execute(base64Line: string): Promise<void> {
108
107
  const rawRequest = deserializeFromMessagePack(buffer);
109
108
  const request = FuzzerSimulationRequest.fromPlainObject(rawRequest);
110
109
 
111
- // Run the TS simulation
110
+ // Run the simulation on the C++ AVM simulator
112
111
  const result = await simulateWithFuzzer(
113
112
  request.wsDataDir,
114
113
  request.wsMapSizeKb,
@@ -118,7 +117,6 @@ async function execute(base64Line: string): Promise<void> {
118
117
  request.contractInstances,
119
118
  request.publicDataWrites,
120
119
  request.noteHashes,
121
- request.protocolContracts,
122
120
  );
123
121
 
124
122
  // Serialize the result to msgpack and encode it in base64 for output
@@ -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,