@aztec/simulator 0.0.1-commit.2eb6648a → 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 (312) hide show
  1. package/README.md +4 -4
  2. package/dest/private/acvm_wasm.d.ts +1 -1
  3. package/dest/private/acvm_wasm.d.ts.map +1 -1
  4. package/dest/private/acvm_wasm.js +3 -1
  5. package/dest/private/circuit_recording/circuit_recorder.js +2 -2
  6. package/dest/public/avm/testing/account_proof_fetcher.d.ts +2 -0
  7. package/dest/public/avm/testing/account_proof_fetcher.d.ts.map +1 -0
  8. package/dest/public/avm/testing/account_proof_fetcher.js +152 -0
  9. package/dest/public/avm/{fixtures → testing}/base_avm_simulation_tester.d.ts +2 -1
  10. package/dest/public/avm/testing/base_avm_simulation_tester.d.ts.map +1 -0
  11. package/dest/public/avm/{fixtures → testing}/base_avm_simulation_tester.js +17 -2
  12. package/dest/public/avm/testing/utils.d.ts +32 -0
  13. package/dest/public/avm/testing/utils.d.ts.map +1 -0
  14. package/dest/public/avm/{fixtures → testing}/utils.js +3 -33
  15. package/dest/public/contracts_db_checkpoint.d.ts +2 -2
  16. package/dest/public/contracts_db_checkpoint.d.ts.map +1 -1
  17. package/dest/public/contracts_db_checkpoint.js +1 -1
  18. package/dest/public/fixtures/amm_test.js +2 -2
  19. package/dest/public/fixtures/bulk_test.d.ts +1 -1
  20. package/dest/public/fixtures/bulk_test.d.ts.map +1 -1
  21. package/dest/public/fixtures/bulk_test.js +31 -4
  22. package/dest/public/fixtures/index.d.ts +1 -4
  23. package/dest/public/fixtures/index.d.ts.map +1 -1
  24. package/dest/public/fixtures/index.js +0 -3
  25. package/dest/public/fixtures/public_tx_simulation_tester.d.ts +8 -7
  26. package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
  27. package/dest/public/fixtures/public_tx_simulation_tester.js +16 -17
  28. package/dest/public/fixtures/simple_contract_data_source.js +1 -1
  29. package/dest/public/fixtures/utils.d.ts +2 -2
  30. package/dest/public/fixtures/utils.d.ts.map +1 -1
  31. package/dest/public/fixtures/utils.js +19 -20
  32. package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts +6 -4
  33. package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts.map +1 -1
  34. package/dest/public/fuzzing/avm_fuzzer_simulator.js +12 -7
  35. package/dest/public/fuzzing/avm_simulator_bin.js +4 -4
  36. package/dest/public/index.d.ts +2 -2
  37. package/dest/public/index.d.ts.map +1 -1
  38. package/dest/public/index.js +1 -1
  39. package/dest/public/public_db_sources.d.ts +6 -3
  40. package/dest/public/public_db_sources.d.ts.map +1 -1
  41. package/dest/public/public_db_sources.js +16 -10
  42. package/dest/public/public_processor/guarded_merkle_tree.d.ts +8 -7
  43. package/dest/public/public_processor/guarded_merkle_tree.d.ts.map +1 -1
  44. package/dest/public/public_processor/guarded_merkle_tree.js +8 -5
  45. package/dest/public/public_processor/public_processor.d.ts +8 -5
  46. package/dest/public/public_processor/public_processor.d.ts.map +1 -1
  47. package/dest/public/public_processor/public_processor.js +109 -74
  48. package/dest/public/public_processor/public_processor_metrics.d.ts +4 -1
  49. package/dest/public/public_processor/public_processor_metrics.d.ts.map +1 -1
  50. package/dest/public/public_processor/public_processor_metrics.js +8 -0
  51. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts +1 -1
  52. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts.map +1 -1
  53. package/dest/public/public_tx_simulator/contract_provider_for_cpp.js +3 -2
  54. package/dest/public/public_tx_simulator/dumping_public_tx_simulator.d.ts +23 -0
  55. package/dest/public/public_tx_simulator/dumping_public_tx_simulator.d.ts.map +1 -0
  56. package/dest/public/public_tx_simulator/{dumping_cpp_public_tx_simulator.js → dumping_public_tx_simulator.js} +2 -2
  57. package/dest/public/public_tx_simulator/factories.d.ts +6 -6
  58. package/dest/public/public_tx_simulator/factories.d.ts.map +1 -1
  59. package/dest/public/public_tx_simulator/factories.js +8 -8
  60. package/dest/public/public_tx_simulator/index.d.ts +3 -5
  61. package/dest/public/public_tx_simulator/index.d.ts.map +1 -1
  62. package/dest/public/public_tx_simulator/index.js +2 -4
  63. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +41 -70
  64. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
  65. package/dest/public/public_tx_simulator/public_tx_simulator.js +98 -319
  66. package/dest/public/public_tx_simulator/public_tx_simulator_base.d.ts +22 -0
  67. package/dest/public/public_tx_simulator/public_tx_simulator_base.d.ts.map +1 -0
  68. package/dest/public/public_tx_simulator/public_tx_simulator_base.js +28 -0
  69. package/package.json +17 -18
  70. package/src/private/acvm_wasm.ts +4 -1
  71. package/src/private/circuit_recording/circuit_recorder.ts +2 -2
  72. package/src/public/avm/testing/account_proof.json +553 -0
  73. package/src/public/avm/testing/account_proof_fetcher.ts +166 -0
  74. package/src/public/avm/{fixtures → testing}/base_avm_simulation_tester.ts +22 -2
  75. package/src/public/avm/{fixtures → testing}/utils.ts +3 -39
  76. package/src/public/contracts_db_checkpoint.ts +1 -1
  77. package/src/public/fixtures/amm_test.ts +2 -2
  78. package/src/public/fixtures/bulk_test.ts +29 -4
  79. package/src/public/fixtures/index.ts +0 -3
  80. package/src/public/fixtures/public_tx_simulation_tester.ts +30 -15
  81. package/src/public/fixtures/simple_contract_data_source.ts +1 -1
  82. package/src/public/fixtures/utils.ts +26 -22
  83. package/src/public/fuzzing/avm_fuzzer_simulator.ts +16 -19
  84. package/src/public/fuzzing/avm_simulator_bin.ts +3 -5
  85. package/src/public/index.ts +3 -3
  86. package/src/public/public_db_sources.ts +21 -14
  87. package/src/public/public_processor/guarded_merkle_tree.ts +11 -8
  88. package/src/public/public_processor/public_processor.ts +142 -93
  89. package/src/public/public_processor/public_processor_metrics.ts +12 -0
  90. package/src/public/public_tx_simulator/contract_provider_for_cpp.ts +3 -2
  91. package/src/public/public_tx_simulator/{dumping_cpp_public_tx_simulator.ts → dumping_public_tx_simulator.ts} +2 -2
  92. package/src/public/public_tx_simulator/factories.ts +8 -7
  93. package/src/public/public_tx_simulator/index.ts +2 -4
  94. package/src/public/public_tx_simulator/public_tx_simulator.ts +150 -476
  95. package/src/public/public_tx_simulator/public_tx_simulator_base.ts +35 -0
  96. package/dest/public/avm/avm_context.d.ts +0 -41
  97. package/dest/public/avm/avm_context.d.ts.map +0 -1
  98. package/dest/public/avm/avm_context.js +0 -44
  99. package/dest/public/avm/avm_contract_call_result.d.ts +0 -32
  100. package/dest/public/avm/avm_contract_call_result.d.ts.map +0 -1
  101. package/dest/public/avm/avm_contract_call_result.js +0 -54
  102. package/dest/public/avm/avm_execution_environment.d.ts +0 -24
  103. package/dest/public/avm/avm_execution_environment.d.ts.map +0 -1
  104. package/dest/public/avm/avm_execution_environment.js +0 -33
  105. package/dest/public/avm/avm_gas.d.ts +0 -44
  106. package/dest/public/avm/avm_gas.d.ts.map +0 -1
  107. package/dest/public/avm/avm_gas.js +0 -195
  108. package/dest/public/avm/avm_machine_state.d.ts +0 -98
  109. package/dest/public/avm/avm_machine_state.d.ts.map +0 -1
  110. package/dest/public/avm/avm_machine_state.js +0 -110
  111. package/dest/public/avm/avm_memory_types.d.ts +0 -275
  112. package/dest/public/avm/avm_memory_types.d.ts.map +0 -1
  113. package/dest/public/avm/avm_memory_types.js +0 -354
  114. package/dest/public/avm/avm_simulator.d.ts +0 -41
  115. package/dest/public/avm/avm_simulator.d.ts.map +0 -1
  116. package/dest/public/avm/avm_simulator.js +0 -192
  117. package/dest/public/avm/avm_simulator_interface.d.ts +0 -9
  118. package/dest/public/avm/avm_simulator_interface.d.ts.map +0 -1
  119. package/dest/public/avm/avm_simulator_interface.js +0 -3
  120. package/dest/public/avm/calldata.d.ts +0 -51
  121. package/dest/public/avm/calldata.d.ts.map +0 -1
  122. package/dest/public/avm/calldata.js +0 -63
  123. package/dest/public/avm/errors.d.ts +0 -104
  124. package/dest/public/avm/errors.d.ts.map +0 -1
  125. package/dest/public/avm/errors.js +0 -141
  126. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts +0 -22
  127. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts.map +0 -1
  128. package/dest/public/avm/fixtures/avm_simulation_tester.js +0 -84
  129. package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts.map +0 -1
  130. package/dest/public/avm/fixtures/initializers.d.ts +0 -42
  131. package/dest/public/avm/fixtures/initializers.d.ts.map +0 -1
  132. package/dest/public/avm/fixtures/initializers.js +0 -45
  133. package/dest/public/avm/fixtures/utils.d.ts +0 -39
  134. package/dest/public/avm/fixtures/utils.d.ts.map +0 -1
  135. package/dest/public/avm/index.d.ts +0 -2
  136. package/dest/public/avm/index.d.ts.map +0 -1
  137. package/dest/public/avm/index.js +0 -1
  138. package/dest/public/avm/opcodes/accrued_substate.d.ts +0 -74
  139. package/dest/public/avm/opcodes/accrued_substate.d.ts.map +0 -1
  140. package/dest/public/avm/opcodes/accrued_substate.js +0 -255
  141. package/dest/public/avm/opcodes/addressing_mode.d.ts +0 -31
  142. package/dest/public/avm/opcodes/addressing_mode.d.ts.map +0 -1
  143. package/dest/public/avm/opcodes/addressing_mode.js +0 -94
  144. package/dest/public/avm/opcodes/arithmetic.d.ts +0 -49
  145. package/dest/public/avm/opcodes/arithmetic.d.ts.map +0 -1
  146. package/dest/public/avm/opcodes/arithmetic.js +0 -97
  147. package/dest/public/avm/opcodes/bitwise.d.ts +0 -42
  148. package/dest/public/avm/opcodes/bitwise.d.ts.map +0 -1
  149. package/dest/public/avm/opcodes/bitwise.js +0 -99
  150. package/dest/public/avm/opcodes/comparators.d.ts +0 -25
  151. package/dest/public/avm/opcodes/comparators.d.ts.map +0 -1
  152. package/dest/public/avm/opcodes/comparators.js +0 -43
  153. package/dest/public/avm/opcodes/contract.d.ts +0 -20
  154. package/dest/public/avm/opcodes/contract.d.ts.map +0 -1
  155. package/dest/public/avm/opcodes/contract.js +0 -65
  156. package/dest/public/avm/opcodes/control_flow.d.ts +0 -41
  157. package/dest/public/avm/opcodes/control_flow.d.ts.map +0 -1
  158. package/dest/public/avm/opcodes/control_flow.js +0 -107
  159. package/dest/public/avm/opcodes/conversion.d.ts +0 -18
  160. package/dest/public/avm/opcodes/conversion.d.ts.map +0 -1
  161. package/dest/public/avm/opcodes/conversion.js +0 -333
  162. package/dest/public/avm/opcodes/ec_add.d.ts +0 -19
  163. package/dest/public/avm/opcodes/ec_add.d.ts.map +0 -1
  164. package/dest/public/avm/opcodes/ec_add.js +0 -93
  165. package/dest/public/avm/opcodes/environment_getters.d.ts +0 -28
  166. package/dest/public/avm/opcodes/environment_getters.d.ts.map +0 -1
  167. package/dest/public/avm/opcodes/environment_getters.js +0 -77
  168. package/dest/public/avm/opcodes/external_calls.d.ts +0 -59
  169. package/dest/public/avm/opcodes/external_calls.d.ts.map +0 -1
  170. package/dest/public/avm/opcodes/external_calls.js +0 -210
  171. package/dest/public/avm/opcodes/hashing.d.ts +0 -36
  172. package/dest/public/avm/opcodes/hashing.d.ts.map +0 -1
  173. package/dest/public/avm/opcodes/hashing.js +0 -119
  174. package/dest/public/avm/opcodes/index.d.ts +0 -16
  175. package/dest/public/avm/opcodes/index.d.ts.map +0 -1
  176. package/dest/public/avm/opcodes/index.js +0 -15
  177. package/dest/public/avm/opcodes/instruction.d.ts +0 -74
  178. package/dest/public/avm/opcodes/instruction.d.ts.map +0 -1
  179. package/dest/public/avm/opcodes/instruction.js +0 -95
  180. package/dest/public/avm/opcodes/instruction_impl.d.ts +0 -19
  181. package/dest/public/avm/opcodes/instruction_impl.d.ts.map +0 -1
  182. package/dest/public/avm/opcodes/instruction_impl.js +0 -30
  183. package/dest/public/avm/opcodes/memory.d.ts +0 -74
  184. package/dest/public/avm/opcodes/memory.d.ts.map +0 -1
  185. package/dest/public/avm/opcodes/memory.js +0 -257
  186. package/dest/public/avm/opcodes/misc.d.ts +0 -18
  187. package/dest/public/avm/opcodes/misc.d.ts.map +0 -1
  188. package/dest/public/avm/opcodes/misc.js +0 -73
  189. package/dest/public/avm/opcodes/storage.d.ts +0 -25
  190. package/dest/public/avm/opcodes/storage.d.ts.map +0 -1
  191. package/dest/public/avm/opcodes/storage.js +0 -78
  192. package/dest/public/avm/revert_reason.d.ts +0 -18
  193. package/dest/public/avm/revert_reason.d.ts.map +0 -1
  194. package/dest/public/avm/revert_reason.js +0 -39
  195. package/dest/public/avm/serialization/buffer_cursor.d.ts +0 -26
  196. package/dest/public/avm/serialization/buffer_cursor.d.ts.map +0 -1
  197. package/dest/public/avm/serialization/buffer_cursor.js +0 -99
  198. package/dest/public/avm/serialization/bytecode_serialization.d.ts +0 -17
  199. package/dest/public/avm/serialization/bytecode_serialization.d.ts.map +0 -1
  200. package/dest/public/avm/serialization/bytecode_serialization.js +0 -336
  201. package/dest/public/avm/serialization/instruction_serialization.d.ts +0 -114
  202. package/dest/public/avm/serialization/instruction_serialization.d.ts.map +0 -1
  203. package/dest/public/avm/serialization/instruction_serialization.js +0 -261
  204. package/dest/public/avm/test_utils.d.ts +0 -15
  205. package/dest/public/avm/test_utils.d.ts.map +0 -1
  206. package/dest/public/avm/test_utils.js +0 -44
  207. package/dest/public/debug_fn_name.d.ts +0 -18
  208. package/dest/public/debug_fn_name.d.ts.map +0 -1
  209. package/dest/public/debug_fn_name.js +0 -37
  210. package/dest/public/fixtures/custom_bytecode_tests.d.ts +0 -12
  211. package/dest/public/fixtures/custom_bytecode_tests.d.ts.map +0 -1
  212. package/dest/public/fixtures/custom_bytecode_tests.js +0 -174
  213. package/dest/public/fixtures/minimal_public_tx.d.ts +0 -4
  214. package/dest/public/fixtures/minimal_public_tx.d.ts.map +0 -1
  215. package/dest/public/fixtures/minimal_public_tx.js +0 -19
  216. package/dest/public/fixtures/opcode_spammer.d.ts +0 -122
  217. package/dest/public/fixtures/opcode_spammer.d.ts.map +0 -1
  218. package/dest/public/fixtures/opcode_spammer.js +0 -1653
  219. package/dest/public/hinting_db_sources.d.ts +0 -80
  220. package/dest/public/hinting_db_sources.d.ts.map +0 -1
  221. package/dest/public/hinting_db_sources.js +0 -355
  222. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts +0 -53
  223. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts.map +0 -1
  224. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.js +0 -132
  225. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts +0 -42
  226. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts.map +0 -1
  227. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.js +0 -86
  228. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts +0 -30
  229. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts.map +0 -1
  230. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.js +0 -171
  231. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts +0 -23
  232. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts.map +0 -1
  233. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts +0 -31
  234. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts.map +0 -1
  235. package/dest/public/public_tx_simulator/measured_public_tx_simulator.js +0 -51
  236. package/dest/public/public_tx_simulator/public_tx_context.d.ts +0 -131
  237. package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +0 -1
  238. package/dest/public/public_tx_simulator/public_tx_context.js +0 -300
  239. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts +0 -21
  240. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts.map +0 -1
  241. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.js +0 -415
  242. package/dest/public/side_effect_trace.d.ts +0 -87
  243. package/dest/public/side_effect_trace.d.ts.map +0 -1
  244. package/dest/public/side_effect_trace.js +0 -199
  245. package/dest/public/side_effect_trace_interface.d.ts +0 -22
  246. package/dest/public/side_effect_trace_interface.d.ts.map +0 -1
  247. package/dest/public/side_effect_trace_interface.js +0 -1
  248. package/dest/public/state_manager/index.d.ts +0 -2
  249. package/dest/public/state_manager/index.d.ts.map +0 -1
  250. package/dest/public/state_manager/index.js +0 -1
  251. package/dest/public/state_manager/nullifiers.d.ts +0 -61
  252. package/dest/public/state_manager/nullifiers.d.ts.map +0 -1
  253. package/dest/public/state_manager/nullifiers.js +0 -92
  254. package/dest/public/state_manager/public_storage.d.ts +0 -66
  255. package/dest/public/state_manager/public_storage.d.ts.map +0 -1
  256. package/dest/public/state_manager/public_storage.js +0 -145
  257. package/dest/public/state_manager/state_manager.d.ts +0 -170
  258. package/dest/public/state_manager/state_manager.d.ts.map +0 -1
  259. package/dest/public/state_manager/state_manager.js +0 -402
  260. package/src/public/avm/avm_context.ts +0 -61
  261. package/src/public/avm/avm_contract_call_result.ts +0 -69
  262. package/src/public/avm/avm_execution_environment.ts +0 -51
  263. package/src/public/avm/avm_gas.ts +0 -183
  264. package/src/public/avm/avm_machine_state.ts +0 -170
  265. package/src/public/avm/avm_memory_types.ts +0 -440
  266. package/src/public/avm/avm_simulator.ts +0 -279
  267. package/src/public/avm/avm_simulator_interface.ts +0 -8
  268. package/src/public/avm/calldata.ts +0 -100
  269. package/src/public/avm/errors.ts +0 -177
  270. package/src/public/avm/fixtures/avm_simulation_tester.ts +0 -122
  271. package/src/public/avm/fixtures/initializers.ts +0 -103
  272. package/src/public/avm/index.ts +0 -1
  273. package/src/public/avm/opcodes/accrued_substate.ts +0 -286
  274. package/src/public/avm/opcodes/addressing_mode.ts +0 -111
  275. package/src/public/avm/opcodes/arithmetic.ts +0 -129
  276. package/src/public/avm/opcodes/bitwise.ts +0 -113
  277. package/src/public/avm/opcodes/comparators.ts +0 -55
  278. package/src/public/avm/opcodes/contract.ts +0 -72
  279. package/src/public/avm/opcodes/control_flow.ts +0 -123
  280. package/src/public/avm/opcodes/conversion.ts +0 -104
  281. package/src/public/avm/opcodes/ec_add.ts +0 -105
  282. package/src/public/avm/opcodes/environment_getters.ts +0 -87
  283. package/src/public/avm/opcodes/external_calls.ts +0 -262
  284. package/src/public/avm/opcodes/hashing.ts +0 -151
  285. package/src/public/avm/opcodes/index.ts +0 -15
  286. package/src/public/avm/opcodes/instruction.ts +0 -136
  287. package/src/public/avm/opcodes/instruction_impl.ts +0 -36
  288. package/src/public/avm/opcodes/memory.ts +0 -293
  289. package/src/public/avm/opcodes/misc.ts +0 -102
  290. package/src/public/avm/opcodes/storage.ts +0 -95
  291. package/src/public/avm/revert_reason.ts +0 -58
  292. package/src/public/avm/serialization/buffer_cursor.ts +0 -118
  293. package/src/public/avm/serialization/bytecode_serialization.ts +0 -215
  294. package/src/public/avm/serialization/instruction_serialization.ts +0 -249
  295. package/src/public/avm/test_utils.ts +0 -64
  296. package/src/public/debug_fn_name.ts +0 -52
  297. package/src/public/fixtures/custom_bytecode_tests.ts +0 -228
  298. package/src/public/fixtures/minimal_public_tx.ts +0 -26
  299. package/src/public/fixtures/opcode_spammer.ts +0 -1721
  300. package/src/public/hinting_db_sources.ts +0 -607
  301. package/src/public/public_tx_simulator/cpp_public_tx_simulator.ts +0 -211
  302. package/src/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.ts +0 -134
  303. package/src/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.ts +0 -239
  304. package/src/public/public_tx_simulator/measured_public_tx_simulator.ts +0 -105
  305. package/src/public/public_tx_simulator/public_tx_context.ts +0 -484
  306. package/src/public/public_tx_simulator/telemetry_public_tx_simulator.ts +0 -63
  307. package/src/public/side_effect_trace.ts +0 -293
  308. package/src/public/side_effect_trace_interface.ts +0 -28
  309. package/src/public/state_manager/index.ts +0 -1
  310. package/src/public/state_manager/nullifiers.ts +0 -103
  311. package/src/public/state_manager/public_storage.ts +0 -174
  312. package/src/public/state_manager/state_manager.ts +0 -569
@@ -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';
@@ -55,10 +55,11 @@ export class PublicContractsDB implements PublicContractsDBInterface {
55
55
  this.log = createLogger('simulator:contracts-data-source', bindings);
56
56
  }
57
57
 
58
- 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 {
59
60
  const currentState = this.getCurrentState();
60
61
 
61
- await this.addContractClassesFromEvents(
62
+ this.addContractClassesFromEvents(
62
63
  ContractClassPublishedEvent.extractContractClassEvents(contractDeploymentData.getContractClassLogs()),
63
64
  currentState,
64
65
  );
@@ -69,10 +70,18 @@ export class PublicContractsDB implements PublicContractsDBInterface {
69
70
  );
70
71
  }
71
72
 
72
- public async addNewContracts(tx: Tx): Promise<void> {
73
+ public addNewContracts(tx: Tx): void {
73
74
  const contractDeploymentData = AllContractDeploymentData.fromTx(tx);
74
- await this.addContracts(contractDeploymentData.getNonRevertibleContractDeploymentData());
75
- 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
+ }
76
85
  }
77
86
 
78
87
  /**
@@ -81,7 +90,7 @@ export class PublicContractsDB implements PublicContractsDBInterface {
81
90
  */
82
91
  public createCheckpoint(): void {
83
92
  const currentState = this.getCurrentState();
84
- const newState = currentState.deepCopy();
93
+ const newState = currentState.fork();
85
94
  this.contractStateStack.push(newState);
86
95
  }
87
96
 
@@ -174,17 +183,15 @@ export class PublicContractsDB implements PublicContractsDBInterface {
174
183
  return await this.dataSource.getDebugFunctionName(address, selector);
175
184
  }
176
185
 
177
- private async addContractClassesFromEvents(
186
+ private addContractClassesFromEvents(
178
187
  contractClassEvents: ContractClassPublishedEvent[],
179
188
  state: ContractsDbCheckpoint,
180
189
  ) {
181
- await Promise.all(
182
- contractClassEvents.map(async (event: ContractClassPublishedEvent) => {
183
- this.log.debug(`Adding class ${event.contractClassId.toString()} to contract state`);
184
- const contractClass = await event.toContractClassPublic();
185
- state.addClass(event.contractClassId, contractClass);
186
- }),
187
- );
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
+ }
188
195
  }
189
196
 
190
197
  private addContractInstancesFromEvents(
@@ -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,