@aztec/simulator 0.0.1-commit.b6e433891 → 0.0.1-commit.b8a057fa

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 (363) hide show
  1. package/dest/client.d.ts +1 -3
  2. package/dest/client.d.ts.map +1 -1
  3. package/dest/client.js +0 -2
  4. package/dest/private/acvm_wasm.d.ts +1 -1
  5. package/dest/private/acvm_wasm.d.ts.map +1 -1
  6. package/dest/private/acvm_wasm.js +3 -1
  7. package/dest/private/circuit_recording/circuit_recorder.d.ts +36 -23
  8. package/dest/private/circuit_recording/circuit_recorder.d.ts.map +1 -1
  9. package/dest/private/circuit_recording/circuit_recorder.js +65 -69
  10. package/dest/private/circuit_recording/file_circuit_recorder.d.ts +7 -19
  11. package/dest/private/circuit_recording/file_circuit_recorder.d.ts.map +1 -1
  12. package/dest/private/circuit_recording/file_circuit_recorder.js +38 -42
  13. package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts +1 -1
  14. package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts.map +1 -1
  15. package/dest/private/circuit_recording/simulator_recorder_wrapper.js +11 -14
  16. package/dest/public/avm/testing/account_proof_fetcher.d.ts +2 -0
  17. package/dest/public/avm/testing/account_proof_fetcher.d.ts.map +1 -0
  18. package/dest/public/avm/{fixtures → testing}/base_avm_simulation_tester.d.ts +2 -1
  19. package/dest/public/avm/testing/base_avm_simulation_tester.d.ts.map +1 -0
  20. package/dest/public/avm/{fixtures → testing}/base_avm_simulation_tester.js +18 -3
  21. package/dest/public/avm/testing/utils.d.ts +32 -0
  22. package/dest/public/avm/testing/utils.d.ts.map +1 -0
  23. package/dest/public/avm/{fixtures → testing}/utils.js +4 -34
  24. package/dest/public/avm_simulator.d.ts +28 -0
  25. package/dest/public/avm_simulator.d.ts.map +1 -0
  26. package/dest/public/avm_simulator.js +4 -0
  27. package/dest/public/avm_simulator_pool.d.ts +45 -0
  28. package/dest/public/avm_simulator_pool.d.ts.map +1 -0
  29. package/dest/public/avm_simulator_pool.js +197 -0
  30. package/dest/public/cdb/generated/api_types.d.ts +171 -0
  31. package/dest/public/cdb/generated/api_types.d.ts.map +1 -0
  32. package/dest/public/cdb/generated/api_types.js +314 -0
  33. package/dest/public/cdb/generated/server.d.ts +26 -0
  34. package/dest/public/cdb/generated/server.d.ts.map +1 -0
  35. package/dest/public/cdb/generated/server.js +135 -0
  36. package/dest/public/cdb_ipc_server.d.ts +33 -0
  37. package/dest/public/cdb_ipc_server.d.ts.map +1 -0
  38. package/dest/public/cdb_ipc_server.js +153 -0
  39. package/dest/public/contracts_db_checkpoint.d.ts +2 -2
  40. package/dest/public/contracts_db_checkpoint.d.ts.map +1 -1
  41. package/dest/public/contracts_db_checkpoint.js +1 -1
  42. package/dest/public/fixtures/amm_test.js +2 -2
  43. package/dest/public/fixtures/bulk_test.d.ts +1 -1
  44. package/dest/public/fixtures/bulk_test.d.ts.map +1 -1
  45. package/dest/public/fixtures/bulk_test.js +33 -6
  46. package/dest/public/fixtures/custom_bytecode_tester.d.ts +1 -1
  47. package/dest/public/fixtures/custom_bytecode_tester.d.ts.map +1 -1
  48. package/dest/public/fixtures/custom_bytecode_tester.js +2 -2
  49. package/dest/public/fixtures/index.d.ts +2 -4
  50. package/dest/public/fixtures/index.d.ts.map +1 -1
  51. package/dest/public/fixtures/index.js +1 -3
  52. package/dest/public/fixtures/public_processor_test_env.d.ts +30 -0
  53. package/dest/public/fixtures/public_processor_test_env.d.ts.map +1 -0
  54. package/dest/public/fixtures/public_processor_test_env.js +73 -0
  55. package/dest/public/fixtures/public_tx_simulation_tester.d.ts +11 -7
  56. package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
  57. package/dest/public/fixtures/public_tx_simulation_tester.js +33 -43
  58. package/dest/public/fixtures/simple_contract_data_source.js +1 -1
  59. package/dest/public/fixtures/token_test.js +3 -3
  60. package/dest/public/fixtures/utils.d.ts +1 -1
  61. package/dest/public/fixtures/utils.d.ts.map +1 -1
  62. package/dest/public/fixtures/utils.js +16 -15
  63. package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts +11 -4
  64. package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts.map +1 -1
  65. package/dest/public/fuzzing/avm_fuzzer_simulator.js +24 -10
  66. package/dest/public/fuzzing/avm_simulator_bin.js +4 -4
  67. package/dest/public/index.d.ts +5 -2
  68. package/dest/public/index.d.ts.map +1 -1
  69. package/dest/public/index.js +2 -1
  70. package/dest/public/public_db_sources.d.ts +6 -3
  71. package/dest/public/public_db_sources.d.ts.map +1 -1
  72. package/dest/public/public_db_sources.js +16 -10
  73. package/dest/public/public_processor/guarded_merkle_tree.d.ts +4 -3
  74. package/dest/public/public_processor/guarded_merkle_tree.d.ts.map +1 -1
  75. package/dest/public/public_processor/guarded_merkle_tree.js +3 -0
  76. package/dest/public/public_processor/public_processor.d.ts +11 -6
  77. package/dest/public/public_processor/public_processor.d.ts.map +1 -1
  78. package/dest/public/public_processor/public_processor.js +68 -39
  79. package/dest/public/public_processor/public_processor_metrics.d.ts +4 -1
  80. package/dest/public/public_processor/public_processor_metrics.d.ts.map +1 -1
  81. package/dest/public/public_processor/public_processor_metrics.js +8 -0
  82. package/dest/public/public_tx_simulator/dumping_public_tx_simulator.d.ts +17 -0
  83. package/dest/public/public_tx_simulator/dumping_public_tx_simulator.d.ts.map +1 -0
  84. package/dest/public/public_tx_simulator/{dumping_cpp_public_tx_simulator.js → dumping_public_tx_simulator.js} +10 -23
  85. package/dest/public/public_tx_simulator/factories.d.ts +8 -8
  86. package/dest/public/public_tx_simulator/factories.d.ts.map +1 -1
  87. package/dest/public/public_tx_simulator/factories.js +8 -8
  88. package/dest/public/public_tx_simulator/index.d.ts +4 -6
  89. package/dest/public/public_tx_simulator/index.d.ts.map +1 -1
  90. package/dest/public/public_tx_simulator/index.js +2 -4
  91. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +42 -71
  92. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
  93. package/dest/public/public_tx_simulator/public_tx_simulator.js +98 -318
  94. package/dest/public/public_tx_simulator/public_tx_simulator_base.d.ts +24 -0
  95. package/dest/public/public_tx_simulator/public_tx_simulator_base.d.ts.map +1 -0
  96. package/dest/public/public_tx_simulator/public_tx_simulator_base.js +31 -0
  97. package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts +5 -5
  98. package/dest/public/test_executor_metrics.d.ts +1 -6
  99. package/dest/public/test_executor_metrics.d.ts.map +1 -1
  100. package/dest/public/test_executor_metrics.js +0 -22
  101. package/package.json +22 -18
  102. package/src/client.ts +0 -2
  103. package/src/private/acvm_wasm.ts +4 -1
  104. package/src/private/circuit_recording/circuit_recorder.ts +84 -78
  105. package/src/private/circuit_recording/file_circuit_recorder.ts +38 -48
  106. package/src/private/circuit_recording/simulator_recorder_wrapper.ts +9 -15
  107. package/src/public/avm/{fixtures → testing}/base_avm_simulation_tester.ts +23 -3
  108. package/src/public/avm/{fixtures → testing}/utils.ts +4 -40
  109. package/src/public/avm_simulator.ts +29 -0
  110. package/src/public/avm_simulator_pool.ts +226 -0
  111. package/src/public/cdb/generated/api_types.ts +457 -0
  112. package/src/public/cdb/generated/server.ts +109 -0
  113. package/src/public/cdb_ipc_server.ts +197 -0
  114. package/src/public/contracts_db_checkpoint.ts +1 -1
  115. package/src/public/fixtures/amm_test.ts +2 -2
  116. package/src/public/fixtures/bulk_test.ts +31 -6
  117. package/src/public/fixtures/custom_bytecode_tester.ts +2 -2
  118. package/src/public/fixtures/index.ts +1 -3
  119. package/src/public/fixtures/public_processor_test_env.ts +88 -0
  120. package/src/public/fixtures/public_tx_simulation_tester.ts +41 -60
  121. package/src/public/fixtures/simple_contract_data_source.ts +1 -1
  122. package/src/public/fixtures/token_test.ts +3 -3
  123. package/src/public/fixtures/utils.ts +18 -20
  124. package/src/public/fuzzing/avm_fuzzer_simulator.ts +25 -10
  125. package/src/public/fuzzing/avm_simulator_bin.ts +3 -5
  126. package/src/public/index.ts +7 -3
  127. package/src/public/public_db_sources.ts +21 -14
  128. package/src/public/public_processor/guarded_merkle_tree.ts +5 -2
  129. package/src/public/public_processor/public_processor.ts +90 -47
  130. package/src/public/public_processor/public_processor_metrics.ts +12 -0
  131. package/src/public/public_tx_simulator/{dumping_cpp_public_tx_simulator.ts → dumping_public_tx_simulator.ts} +15 -31
  132. package/src/public/public_tx_simulator/factories.ts +27 -10
  133. package/src/public/public_tx_simulator/index.ts +6 -5
  134. package/src/public/public_tx_simulator/public_tx_simulator.ts +139 -476
  135. package/src/public/public_tx_simulator/public_tx_simulator_base.ts +37 -0
  136. package/src/public/public_tx_simulator/public_tx_simulator_interface.ts +5 -5
  137. package/src/public/test_executor_metrics.ts +0 -24
  138. package/dest/public/avm/avm_context.d.ts +0 -41
  139. package/dest/public/avm/avm_context.d.ts.map +0 -1
  140. package/dest/public/avm/avm_context.js +0 -44
  141. package/dest/public/avm/avm_contract_call_result.d.ts +0 -32
  142. package/dest/public/avm/avm_contract_call_result.d.ts.map +0 -1
  143. package/dest/public/avm/avm_contract_call_result.js +0 -54
  144. package/dest/public/avm/avm_execution_environment.d.ts +0 -24
  145. package/dest/public/avm/avm_execution_environment.d.ts.map +0 -1
  146. package/dest/public/avm/avm_execution_environment.js +0 -33
  147. package/dest/public/avm/avm_gas.d.ts +0 -44
  148. package/dest/public/avm/avm_gas.d.ts.map +0 -1
  149. package/dest/public/avm/avm_gas.js +0 -195
  150. package/dest/public/avm/avm_machine_state.d.ts +0 -98
  151. package/dest/public/avm/avm_machine_state.d.ts.map +0 -1
  152. package/dest/public/avm/avm_machine_state.js +0 -110
  153. package/dest/public/avm/avm_memory_types.d.ts +0 -275
  154. package/dest/public/avm/avm_memory_types.d.ts.map +0 -1
  155. package/dest/public/avm/avm_memory_types.js +0 -354
  156. package/dest/public/avm/avm_simulator.d.ts +0 -41
  157. package/dest/public/avm/avm_simulator.d.ts.map +0 -1
  158. package/dest/public/avm/avm_simulator.js +0 -192
  159. package/dest/public/avm/avm_simulator_interface.d.ts +0 -9
  160. package/dest/public/avm/avm_simulator_interface.d.ts.map +0 -1
  161. package/dest/public/avm/avm_simulator_interface.js +0 -3
  162. package/dest/public/avm/calldata.d.ts +0 -51
  163. package/dest/public/avm/calldata.d.ts.map +0 -1
  164. package/dest/public/avm/calldata.js +0 -63
  165. package/dest/public/avm/errors.d.ts +0 -104
  166. package/dest/public/avm/errors.d.ts.map +0 -1
  167. package/dest/public/avm/errors.js +0 -141
  168. package/dest/public/avm/fixtures/account_proof_fetcher.d.ts +0 -2
  169. package/dest/public/avm/fixtures/account_proof_fetcher.d.ts.map +0 -1
  170. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts +0 -22
  171. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts.map +0 -1
  172. package/dest/public/avm/fixtures/avm_simulation_tester.js +0 -84
  173. package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts.map +0 -1
  174. package/dest/public/avm/fixtures/initializers.d.ts +0 -42
  175. package/dest/public/avm/fixtures/initializers.d.ts.map +0 -1
  176. package/dest/public/avm/fixtures/initializers.js +0 -45
  177. package/dest/public/avm/fixtures/utils.d.ts +0 -39
  178. package/dest/public/avm/fixtures/utils.d.ts.map +0 -1
  179. package/dest/public/avm/index.d.ts +0 -2
  180. package/dest/public/avm/index.d.ts.map +0 -1
  181. package/dest/public/avm/index.js +0 -1
  182. package/dest/public/avm/opcodes/accrued_substate.d.ts +0 -74
  183. package/dest/public/avm/opcodes/accrued_substate.d.ts.map +0 -1
  184. package/dest/public/avm/opcodes/accrued_substate.js +0 -254
  185. package/dest/public/avm/opcodes/addressing_mode.d.ts +0 -31
  186. package/dest/public/avm/opcodes/addressing_mode.d.ts.map +0 -1
  187. package/dest/public/avm/opcodes/addressing_mode.js +0 -94
  188. package/dest/public/avm/opcodes/arithmetic.d.ts +0 -49
  189. package/dest/public/avm/opcodes/arithmetic.d.ts.map +0 -1
  190. package/dest/public/avm/opcodes/arithmetic.js +0 -97
  191. package/dest/public/avm/opcodes/bitwise.d.ts +0 -42
  192. package/dest/public/avm/opcodes/bitwise.d.ts.map +0 -1
  193. package/dest/public/avm/opcodes/bitwise.js +0 -99
  194. package/dest/public/avm/opcodes/comparators.d.ts +0 -25
  195. package/dest/public/avm/opcodes/comparators.d.ts.map +0 -1
  196. package/dest/public/avm/opcodes/comparators.js +0 -43
  197. package/dest/public/avm/opcodes/contract.d.ts +0 -20
  198. package/dest/public/avm/opcodes/contract.d.ts.map +0 -1
  199. package/dest/public/avm/opcodes/contract.js +0 -65
  200. package/dest/public/avm/opcodes/control_flow.d.ts +0 -41
  201. package/dest/public/avm/opcodes/control_flow.d.ts.map +0 -1
  202. package/dest/public/avm/opcodes/control_flow.js +0 -107
  203. package/dest/public/avm/opcodes/conversion.d.ts +0 -18
  204. package/dest/public/avm/opcodes/conversion.d.ts.map +0 -1
  205. package/dest/public/avm/opcodes/conversion.js +0 -333
  206. package/dest/public/avm/opcodes/ec_add.d.ts +0 -19
  207. package/dest/public/avm/opcodes/ec_add.d.ts.map +0 -1
  208. package/dest/public/avm/opcodes/ec_add.js +0 -93
  209. package/dest/public/avm/opcodes/environment_getters.d.ts +0 -28
  210. package/dest/public/avm/opcodes/environment_getters.d.ts.map +0 -1
  211. package/dest/public/avm/opcodes/environment_getters.js +0 -77
  212. package/dest/public/avm/opcodes/external_calls.d.ts +0 -59
  213. package/dest/public/avm/opcodes/external_calls.d.ts.map +0 -1
  214. package/dest/public/avm/opcodes/external_calls.js +0 -210
  215. package/dest/public/avm/opcodes/hashing.d.ts +0 -36
  216. package/dest/public/avm/opcodes/hashing.d.ts.map +0 -1
  217. package/dest/public/avm/opcodes/hashing.js +0 -119
  218. package/dest/public/avm/opcodes/index.d.ts +0 -16
  219. package/dest/public/avm/opcodes/index.d.ts.map +0 -1
  220. package/dest/public/avm/opcodes/index.js +0 -15
  221. package/dest/public/avm/opcodes/instruction.d.ts +0 -74
  222. package/dest/public/avm/opcodes/instruction.d.ts.map +0 -1
  223. package/dest/public/avm/opcodes/instruction.js +0 -95
  224. package/dest/public/avm/opcodes/instruction_impl.d.ts +0 -19
  225. package/dest/public/avm/opcodes/instruction_impl.d.ts.map +0 -1
  226. package/dest/public/avm/opcodes/instruction_impl.js +0 -30
  227. package/dest/public/avm/opcodes/memory.d.ts +0 -74
  228. package/dest/public/avm/opcodes/memory.d.ts.map +0 -1
  229. package/dest/public/avm/opcodes/memory.js +0 -257
  230. package/dest/public/avm/opcodes/misc.d.ts +0 -18
  231. package/dest/public/avm/opcodes/misc.d.ts.map +0 -1
  232. package/dest/public/avm/opcodes/misc.js +0 -73
  233. package/dest/public/avm/opcodes/storage.d.ts +0 -25
  234. package/dest/public/avm/opcodes/storage.d.ts.map +0 -1
  235. package/dest/public/avm/opcodes/storage.js +0 -78
  236. package/dest/public/avm/revert_reason.d.ts +0 -18
  237. package/dest/public/avm/revert_reason.d.ts.map +0 -1
  238. package/dest/public/avm/revert_reason.js +0 -39
  239. package/dest/public/avm/serialization/buffer_cursor.d.ts +0 -26
  240. package/dest/public/avm/serialization/buffer_cursor.d.ts.map +0 -1
  241. package/dest/public/avm/serialization/buffer_cursor.js +0 -99
  242. package/dest/public/avm/serialization/bytecode_serialization.d.ts +0 -17
  243. package/dest/public/avm/serialization/bytecode_serialization.d.ts.map +0 -1
  244. package/dest/public/avm/serialization/bytecode_serialization.js +0 -336
  245. package/dest/public/avm/serialization/instruction_serialization.d.ts +0 -114
  246. package/dest/public/avm/serialization/instruction_serialization.d.ts.map +0 -1
  247. package/dest/public/avm/serialization/instruction_serialization.js +0 -261
  248. package/dest/public/avm/test_utils.d.ts +0 -15
  249. package/dest/public/avm/test_utils.d.ts.map +0 -1
  250. package/dest/public/avm/test_utils.js +0 -44
  251. package/dest/public/debug_fn_name.d.ts +0 -18
  252. package/dest/public/debug_fn_name.d.ts.map +0 -1
  253. package/dest/public/debug_fn_name.js +0 -37
  254. package/dest/public/fixtures/custom_bytecode_tests.d.ts +0 -12
  255. package/dest/public/fixtures/custom_bytecode_tests.d.ts.map +0 -1
  256. package/dest/public/fixtures/custom_bytecode_tests.js +0 -174
  257. package/dest/public/fixtures/minimal_public_tx.d.ts +0 -4
  258. package/dest/public/fixtures/minimal_public_tx.d.ts.map +0 -1
  259. package/dest/public/fixtures/minimal_public_tx.js +0 -19
  260. package/dest/public/fixtures/opcode_spammer.d.ts +0 -122
  261. package/dest/public/fixtures/opcode_spammer.d.ts.map +0 -1
  262. package/dest/public/fixtures/opcode_spammer.js +0 -1653
  263. package/dest/public/hinting_db_sources.d.ts +0 -80
  264. package/dest/public/hinting_db_sources.d.ts.map +0 -1
  265. package/dest/public/hinting_db_sources.js +0 -356
  266. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts +0 -19
  267. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts.map +0 -1
  268. package/dest/public/public_tx_simulator/contract_provider_for_cpp.js +0 -98
  269. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts +0 -53
  270. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts.map +0 -1
  271. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.js +0 -131
  272. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts +0 -42
  273. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts.map +0 -1
  274. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.js +0 -86
  275. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts +0 -30
  276. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts.map +0 -1
  277. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.js +0 -171
  278. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts +0 -23
  279. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts.map +0 -1
  280. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts +0 -31
  281. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts.map +0 -1
  282. package/dest/public/public_tx_simulator/measured_public_tx_simulator.js +0 -51
  283. package/dest/public/public_tx_simulator/public_tx_context.d.ts +0 -131
  284. package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +0 -1
  285. package/dest/public/public_tx_simulator/public_tx_context.js +0 -300
  286. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts +0 -21
  287. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts.map +0 -1
  288. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.js +0 -415
  289. package/dest/public/side_effect_trace.d.ts +0 -87
  290. package/dest/public/side_effect_trace.d.ts.map +0 -1
  291. package/dest/public/side_effect_trace.js +0 -199
  292. package/dest/public/side_effect_trace_interface.d.ts +0 -22
  293. package/dest/public/side_effect_trace_interface.d.ts.map +0 -1
  294. package/dest/public/side_effect_trace_interface.js +0 -1
  295. package/dest/public/state_manager/index.d.ts +0 -2
  296. package/dest/public/state_manager/index.d.ts.map +0 -1
  297. package/dest/public/state_manager/index.js +0 -1
  298. package/dest/public/state_manager/nullifiers.d.ts +0 -61
  299. package/dest/public/state_manager/nullifiers.d.ts.map +0 -1
  300. package/dest/public/state_manager/nullifiers.js +0 -92
  301. package/dest/public/state_manager/public_storage.d.ts +0 -66
  302. package/dest/public/state_manager/public_storage.d.ts.map +0 -1
  303. package/dest/public/state_manager/public_storage.js +0 -145
  304. package/dest/public/state_manager/state_manager.d.ts +0 -170
  305. package/dest/public/state_manager/state_manager.d.ts.map +0 -1
  306. package/dest/public/state_manager/state_manager.js +0 -402
  307. package/src/public/avm/avm_context.ts +0 -61
  308. package/src/public/avm/avm_contract_call_result.ts +0 -69
  309. package/src/public/avm/avm_execution_environment.ts +0 -51
  310. package/src/public/avm/avm_gas.ts +0 -183
  311. package/src/public/avm/avm_machine_state.ts +0 -170
  312. package/src/public/avm/avm_memory_types.ts +0 -440
  313. package/src/public/avm/avm_simulator.ts +0 -279
  314. package/src/public/avm/avm_simulator_interface.ts +0 -8
  315. package/src/public/avm/calldata.ts +0 -100
  316. package/src/public/avm/errors.ts +0 -177
  317. package/src/public/avm/fixtures/avm_simulation_tester.ts +0 -122
  318. package/src/public/avm/fixtures/initializers.ts +0 -103
  319. package/src/public/avm/index.ts +0 -1
  320. package/src/public/avm/opcodes/accrued_substate.ts +0 -285
  321. package/src/public/avm/opcodes/addressing_mode.ts +0 -111
  322. package/src/public/avm/opcodes/arithmetic.ts +0 -129
  323. package/src/public/avm/opcodes/bitwise.ts +0 -113
  324. package/src/public/avm/opcodes/comparators.ts +0 -55
  325. package/src/public/avm/opcodes/contract.ts +0 -72
  326. package/src/public/avm/opcodes/control_flow.ts +0 -123
  327. package/src/public/avm/opcodes/conversion.ts +0 -104
  328. package/src/public/avm/opcodes/ec_add.ts +0 -105
  329. package/src/public/avm/opcodes/environment_getters.ts +0 -87
  330. package/src/public/avm/opcodes/external_calls.ts +0 -262
  331. package/src/public/avm/opcodes/hashing.ts +0 -151
  332. package/src/public/avm/opcodes/index.ts +0 -15
  333. package/src/public/avm/opcodes/instruction.ts +0 -136
  334. package/src/public/avm/opcodes/instruction_impl.ts +0 -36
  335. package/src/public/avm/opcodes/memory.ts +0 -293
  336. package/src/public/avm/opcodes/misc.ts +0 -102
  337. package/src/public/avm/opcodes/storage.ts +0 -95
  338. package/src/public/avm/revert_reason.ts +0 -58
  339. package/src/public/avm/serialization/buffer_cursor.ts +0 -118
  340. package/src/public/avm/serialization/bytecode_serialization.ts +0 -215
  341. package/src/public/avm/serialization/instruction_serialization.ts +0 -249
  342. package/src/public/avm/test_utils.ts +0 -64
  343. package/src/public/debug_fn_name.ts +0 -52
  344. package/src/public/fixtures/custom_bytecode_tests.ts +0 -228
  345. package/src/public/fixtures/minimal_public_tx.ts +0 -26
  346. package/src/public/fixtures/opcode_spammer.ts +0 -1717
  347. package/src/public/hinting_db_sources.ts +0 -609
  348. package/src/public/public_tx_simulator/contract_provider_for_cpp.ts +0 -124
  349. package/src/public/public_tx_simulator/cpp_public_tx_simulator.ts +0 -210
  350. package/src/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.ts +0 -134
  351. package/src/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.ts +0 -239
  352. package/src/public/public_tx_simulator/measured_public_tx_simulator.ts +0 -105
  353. package/src/public/public_tx_simulator/public_tx_context.ts +0 -484
  354. package/src/public/public_tx_simulator/telemetry_public_tx_simulator.ts +0 -63
  355. package/src/public/side_effect_trace.ts +0 -293
  356. package/src/public/side_effect_trace_interface.ts +0 -28
  357. package/src/public/state_manager/index.ts +0 -1
  358. package/src/public/state_manager/nullifiers.ts +0 -103
  359. package/src/public/state_manager/public_storage.ts +0 -174
  360. package/src/public/state_manager/state_manager.ts +0 -569
  361. /package/dest/public/avm/{fixtures → testing}/account_proof_fetcher.js +0 -0
  362. /package/src/public/avm/{fixtures → testing}/account_proof.json +0 -0
  363. /package/src/public/avm/{fixtures → testing}/account_proof_fetcher.ts +0 -0
@@ -1,293 +0,0 @@
1
- import { Fr } from '@aztec/foundation/curves/bn254';
2
-
3
- import { strict as assert } from 'assert';
4
-
5
- import type { AvmContext } from '../avm_context.js';
6
- import { Field, TaggedMemory, TypeTag, Uint32 } from '../avm_memory_types.js';
7
- import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
8
- import { Addressing } from './addressing_mode.js';
9
- import { Instruction } from './instruction.js';
10
-
11
- export class Set extends Instruction {
12
- static readonly type: string = 'SET';
13
- // Required for gas.
14
- static readonly opcode: Opcode = Opcode.SET_8;
15
-
16
- public static readonly wireFormat8: OperandType[] = [
17
- OperandType.UINT8, // opcode
18
- OperandType.UINT8, // addressing_mode
19
- OperandType.UINT8, // dstOffset
20
- OperandType.TAG, // tag
21
- OperandType.UINT8, // const (value)
22
- ];
23
- public static readonly wireFormat16: OperandType[] = [
24
- OperandType.UINT8, // opcode
25
- OperandType.UINT8, // addressing_mode
26
- OperandType.UINT16, // dstOffset
27
- OperandType.TAG, // tag
28
- OperandType.UINT16, // const (value)
29
- ];
30
- public static readonly wireFormat32: OperandType[] = [
31
- OperandType.UINT8, // opcode
32
- OperandType.UINT8, // addressing_mode
33
- OperandType.UINT16, // dstOffset
34
- OperandType.TAG, // tag
35
- OperandType.UINT32, // const (value)
36
- ];
37
- public static readonly wireFormat64: OperandType[] = [
38
- OperandType.UINT8, // opcode
39
- OperandType.UINT8, // addressing_mode
40
- OperandType.UINT16, // dstOffset
41
- OperandType.TAG, // tag
42
- OperandType.UINT64, // const (value)
43
- ];
44
- public static readonly wireFormat128: OperandType[] = [
45
- OperandType.UINT8, // opcode
46
- OperandType.UINT8, // addressing_mode
47
- OperandType.UINT16, // dstOffset
48
- OperandType.TAG, // tag
49
- OperandType.UINT128, // const (value)
50
- ];
51
- public static readonly wireFormatFF: OperandType[] = [
52
- OperandType.UINT8, // opcode
53
- OperandType.UINT8, // addressing_mode
54
- OperandType.UINT16, // dstOffset
55
- OperandType.TAG, // tag
56
- OperandType.FF, // const (value)
57
- ];
58
-
59
- constructor(
60
- private addressingMode: number,
61
- private dstOffset: number,
62
- private inTag: number,
63
- private value: bigint | number,
64
- ) {
65
- super();
66
- assert(this.value >= 0, `Value ${this.value} is negative`);
67
- assert(this.value < Fr.MODULUS, `Value ${this.value} is larger than Fr.MODULUS`);
68
- }
69
-
70
- public async execute(context: AvmContext): Promise<void> {
71
- // Constructor ensured that this.inTag is a valid tag
72
- const res = TaggedMemory.buildFromTagTruncating(this.value, this.inTag);
73
-
74
- const memory = context.machineState.memory;
75
- const addressing = Addressing.fromWire(this.addressingMode);
76
-
77
- context.machineState.consumeGas(
78
- this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()),
79
- );
80
-
81
- const operands = [this.dstOffset];
82
- const [dstOffset] = addressing.resolve(operands, memory);
83
- memory.set(dstOffset, res);
84
- }
85
- }
86
-
87
- export class Cast extends Instruction {
88
- static readonly type: string = 'CAST';
89
- static readonly opcode = Opcode.CAST_8;
90
-
91
- static readonly wireFormat8 = [
92
- OperandType.UINT8,
93
- OperandType.UINT8,
94
- OperandType.UINT8,
95
- OperandType.UINT8,
96
- OperandType.TAG,
97
- ];
98
- static readonly wireFormat16 = [
99
- OperandType.UINT8,
100
- OperandType.UINT8,
101
- OperandType.UINT16,
102
- OperandType.UINT16,
103
- OperandType.TAG,
104
- ];
105
-
106
- constructor(
107
- private addressingMode: number,
108
- private srcOffset: number,
109
- private dstOffset: number,
110
- private dstTag: number,
111
- ) {
112
- super();
113
- }
114
-
115
- public async execute(context: AvmContext): Promise<void> {
116
- const memory = context.machineState.memory;
117
- const addressing = Addressing.fromWire(this.addressingMode);
118
-
119
- context.machineState.consumeGas(
120
- this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()),
121
- );
122
-
123
- const operands = [this.srcOffset, this.dstOffset];
124
- const [srcOffset, dstOffset] = addressing.resolve(operands, memory);
125
-
126
- const a = memory.get(srcOffset);
127
- // Constructor ensured that this.dstTag is a valid tag
128
- const casted = TaggedMemory.buildFromTagTruncating(a.toBigInt(), this.dstTag);
129
-
130
- memory.set(dstOffset, casted);
131
- }
132
- }
133
-
134
- export class Mov extends Instruction {
135
- static readonly type: string = 'MOV';
136
- // FIXME: This is needed for gas.
137
- static readonly opcode: Opcode = Opcode.MOV_8;
138
-
139
- static readonly wireFormat8: OperandType[] = [
140
- OperandType.UINT8,
141
- OperandType.UINT8,
142
- OperandType.UINT8,
143
- OperandType.UINT8,
144
- ];
145
- static readonly wireFormat16: OperandType[] = [
146
- OperandType.UINT8,
147
- OperandType.UINT8,
148
- OperandType.UINT16,
149
- OperandType.UINT16,
150
- ];
151
-
152
- constructor(
153
- private addressingMode: number,
154
- private srcOffset: number,
155
- private dstOffset: number,
156
- ) {
157
- super();
158
- }
159
-
160
- public async execute(context: AvmContext): Promise<void> {
161
- const memory = context.machineState.memory;
162
- const addressing = Addressing.fromWire(this.addressingMode);
163
-
164
- context.machineState.consumeGas(
165
- this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()),
166
- );
167
-
168
- const operands = [this.srcOffset, this.dstOffset];
169
- const [srcOffset, dstOffset] = addressing.resolve(operands, memory);
170
- const a = memory.get(srcOffset);
171
- memory.set(dstOffset, a);
172
- }
173
- }
174
-
175
- export class CalldataCopy extends Instruction {
176
- static readonly type: string = 'CALLDATACOPY';
177
- static readonly opcode: Opcode = Opcode.CALLDATACOPY;
178
- // Informs (de)serialization. See Instruction.deserialize.
179
- static readonly wireFormat: OperandType[] = [
180
- OperandType.UINT8,
181
- OperandType.UINT8,
182
- OperandType.UINT16,
183
- OperandType.UINT16,
184
- OperandType.UINT16,
185
- ];
186
-
187
- constructor(
188
- private addressingMode: number,
189
- private copySizeOffset: number,
190
- private cdStartOffset: number,
191
- private dstOffset: number,
192
- ) {
193
- super();
194
- }
195
-
196
- public async execute(context: AvmContext): Promise<void> {
197
- const memory = context.machineState.memory;
198
- const addressing = Addressing.fromWire(this.addressingMode);
199
-
200
- context.machineState.consumeGas(
201
- this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()),
202
- );
203
-
204
- const operands = [this.copySizeOffset, this.cdStartOffset, this.dstOffset];
205
- const [copySizeOffset, cdStartOffset, dstOffset] = addressing.resolve(operands, memory);
206
-
207
- memory.checkTags(TypeTag.UINT32, cdStartOffset, copySizeOffset);
208
- const cdStart = memory.get(cdStartOffset).toNumber();
209
- const copySize = memory.get(copySizeOffset).toNumber();
210
- context.machineState.consumeGas(this.dynamicGasCost(copySize));
211
-
212
- // Values which are out-of-range of the calldata array will be set with Field(0);
213
- const slice = context.environment.calldata.slice(cdStart, cdStart + copySize).map(f => new Field(f));
214
- // slice has size = MIN(copySize, calldata.length - cdStart) as TS truncates out-of-range portion
215
- const transformedData = [...slice, ...Array(copySize - slice.length).fill(new Field(0))];
216
-
217
- memory.setSlice(dstOffset, transformedData);
218
- }
219
- }
220
-
221
- export class ReturndataSize extends Instruction {
222
- static readonly type: string = 'RETURNDATASIZE';
223
- static readonly opcode: Opcode = Opcode.RETURNDATASIZE;
224
- // Informs (de)serialization. See Instruction.deserialize.
225
- static readonly wireFormat: OperandType[] = [OperandType.UINT8, OperandType.UINT8, OperandType.UINT16];
226
-
227
- constructor(
228
- private addressingMode: number,
229
- private dstOffset: number,
230
- ) {
231
- super();
232
- }
233
-
234
- public async execute(context: AvmContext): Promise<void> {
235
- const memory = context.machineState.memory;
236
- const addressing = Addressing.fromWire(this.addressingMode);
237
-
238
- context.machineState.consumeGas(
239
- this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()),
240
- );
241
-
242
- const operands = [this.dstOffset];
243
- const [dstOffset] = addressing.resolve(operands, memory);
244
-
245
- memory.set(dstOffset, new Uint32(context.machineState.nestedReturndata.length()));
246
- }
247
- }
248
-
249
- export class ReturndataCopy extends Instruction {
250
- static readonly type: string = 'RETURNDATACOPY';
251
- static readonly opcode: Opcode = Opcode.RETURNDATACOPY;
252
- // Informs (de)serialization. See Instruction.deserialize.
253
- static readonly wireFormat: OperandType[] = [
254
- OperandType.UINT8,
255
- OperandType.UINT8,
256
- OperandType.UINT16,
257
- OperandType.UINT16,
258
- OperandType.UINT16,
259
- ];
260
-
261
- constructor(
262
- private addressingMode: number,
263
- private copySizeOffset: number,
264
- private rdStartOffset: number,
265
- private dstOffset: number,
266
- ) {
267
- super();
268
- }
269
-
270
- public async execute(context: AvmContext): Promise<void> {
271
- const memory = context.machineState.memory;
272
- const addressing = Addressing.fromWire(this.addressingMode);
273
-
274
- context.machineState.consumeGas(
275
- this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()),
276
- );
277
-
278
- const operands = [this.copySizeOffset, this.rdStartOffset, this.dstOffset];
279
- const [copySizeOffset, rdStartOffset, dstOffset] = addressing.resolve(operands, memory);
280
-
281
- memory.checkTags(TypeTag.UINT32, rdStartOffset, copySizeOffset);
282
- const copySize = memory.get(copySizeOffset).toNumber();
283
- const rdStart = memory.get(rdStartOffset).toNumber();
284
- context.machineState.consumeGas(this.dynamicGasCost(copySize));
285
-
286
- // Values which are out-of-range of the returndata array will be set with Field(0);
287
- const slice = context.machineState.nestedReturndata.slice(rdStart, rdStart + copySize).map(f => new Field(f));
288
- // slice has size = MIN(copySize, returndata.length - rdStart) as TS truncates out-of-range portion
289
- const transformedData = [...slice, ...Array(copySize - slice.length).fill(new Field(0))];
290
-
291
- memory.setSlice(dstOffset, transformedData);
292
- }
293
- }
@@ -1,102 +0,0 @@
1
- import { LogLevels, applyStringFormatting, createLogger } from '@aztec/foundation/log';
2
-
3
- import type { AvmContext } from '../avm_context.js';
4
- import { TypeTag } from '../avm_memory_types.js';
5
- import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
6
- import { Addressing } from './addressing_mode.js';
7
- import { Instruction } from './instruction.js';
8
-
9
- export class DebugLog extends Instruction {
10
- static type: string = 'DEBUGLOG';
11
- static readonly opcode: Opcode = Opcode.DEBUGLOG;
12
- static readonly logger = createLogger('simulator:avm:debug_log');
13
-
14
- // Informs (de)serialization. See Instruction.deserialize.
15
- static readonly wireFormat: OperandType[] = [
16
- OperandType.UINT8, // Opcode
17
- OperandType.UINT8, // Indirect
18
- OperandType.UINT16, // level memory address
19
- OperandType.UINT16, // message memory address
20
- OperandType.UINT16, // fields memory address
21
- OperandType.UINT16, // fields size address
22
- OperandType.UINT16, // message size
23
- ];
24
-
25
- constructor(
26
- private addressingMode: number,
27
- private levelOffset: number,
28
- private messageOffset: number,
29
- private fieldsOffset: number,
30
- private fieldsSizeOffset: number,
31
- private messageSize: number,
32
- ) {
33
- super();
34
- }
35
-
36
- public async execute(context: AvmContext): Promise<void> {
37
- const memory = context.machineState.memory;
38
- const addressing = Addressing.fromWire(this.addressingMode);
39
-
40
- context.machineState.consumeGas(
41
- this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()),
42
- );
43
-
44
- const operands = [this.levelOffset, this.messageOffset, this.fieldsOffset, this.fieldsSizeOffset];
45
- const [levelOffset, messageOffset, fieldsOffset, fieldsSizeOffset] = addressing.resolve(operands, memory);
46
-
47
- // DebugLog is a no-op except unless the config is set to collect debug logs.
48
- // Note that we still do address resolution and basic tag-checking (above)
49
- // To avoid a special-case in the witness generator and circuit.
50
- if (context.environment.config.collectDebugLogs) {
51
- memory.checkTag(TypeTag.UINT8, levelOffset);
52
- const levelNumber = memory.get(levelOffset).toNumber();
53
- memory.checkTag(TypeTag.UINT32, fieldsSizeOffset);
54
- const fieldsSize = memory.get(fieldsSizeOffset).toNumber();
55
-
56
- const memoryReads = 1 /* level */ + 1 /* fieldsSize */ + this.messageSize /* message */ + fieldsSize; /* fields */
57
- if (
58
- context.persistableState.getDebugLogMemoryReads() + memoryReads >
59
- context.environment.config.collectionLimits.maxDebugLogMemoryReads
60
- ) {
61
- // Regular error on purpose: this is not a recoverable error.
62
- throw new Error(
63
- `Max debug log memory reads exceeded: ${context.persistableState.getDebugLogMemoryReads() + memoryReads} > ${context.environment.config.collectionLimits.maxDebugLogMemoryReads}`,
64
- );
65
- }
66
- context.persistableState.writeDebugLogMemoryReads(memoryReads);
67
-
68
- const rawMessage = memory.getSlice(messageOffset, this.messageSize);
69
- const fields = memory.getSlice(fieldsOffset, fieldsSize);
70
-
71
- memory.checkTagsRange(TypeTag.UINT8, messageOffset, this.messageSize);
72
- memory.checkTagsRange(TypeTag.FIELD, fieldsOffset, fieldsSize);
73
-
74
- // Interpret str<N> = [u8; N] to string.
75
- const messageAsStr = rawMessage.map(field => String.fromCharCode(field.toNumber())).join('');
76
-
77
- if (!LogLevels[levelNumber]) {
78
- // Regular error on purpose: this is not a recoverable error.
79
- throw new Error(`Invalid debug log level: ${levelNumber}`);
80
- }
81
-
82
- const level = LogLevels[levelNumber];
83
-
84
- context.persistableState.writeDebugLog(
85
- context.environment.address,
86
- level,
87
- messageAsStr,
88
- fields.map(field => field.toFr()),
89
- );
90
-
91
- // Skips string formatting if the level is disabled.
92
- if (DebugLog.logger.isLevelEnabled(level)) {
93
- const formattedStr = applyStringFormatting(
94
- messageAsStr,
95
- fields.map(field => field.toFr()),
96
- );
97
-
98
- DebugLog.logger[level](formattedStr);
99
- }
100
- }
101
- }
102
- }
@@ -1,95 +0,0 @@
1
- import type { AvmContext } from '../avm_context.js';
2
- import { Field, TypeTag } from '../avm_memory_types.js';
3
- import { StaticCallAlterationError } from '../errors.js';
4
- import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
5
- import { Addressing } from './addressing_mode.js';
6
- import { Instruction } from './instruction.js';
7
-
8
- export class SStore extends Instruction {
9
- static readonly type: string = 'SSTORE';
10
- static readonly opcode = Opcode.SSTORE;
11
- // Informs (de)serialization. See Instruction.deserialize.
12
- public static readonly wireFormat: OperandType[] = [
13
- OperandType.UINT8,
14
- OperandType.UINT8,
15
- OperandType.UINT16,
16
- OperandType.UINT16,
17
- ];
18
-
19
- constructor(
20
- private addressingMode: number,
21
- private srcOffset: number,
22
- private slotOffset: number,
23
- ) {
24
- super();
25
- }
26
-
27
- public async execute(context: AvmContext): Promise<void> {
28
- if (context.environment.isStaticCall) {
29
- throw new StaticCallAlterationError();
30
- }
31
-
32
- const memory = context.machineState.memory;
33
- const addressing = Addressing.fromWire(this.addressingMode);
34
-
35
- context.machineState.consumeGas(
36
- this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()),
37
- );
38
-
39
- const operands = [this.srcOffset, this.slotOffset];
40
- const [srcOffset, slotOffset] = addressing.resolve(operands, memory);
41
- // We read before tag checking since it's needed for gas cost calculation
42
- const slot = memory.get(slotOffset).toFr();
43
-
44
- context.machineState.consumeGas(
45
- this.dynamicGasCost(Number(context.persistableState.isStorageCold(context.environment.address, slot))),
46
- );
47
-
48
- memory.checkTag(TypeTag.FIELD, slotOffset);
49
- memory.checkTag(TypeTag.FIELD, srcOffset);
50
-
51
- const value = memory.get(srcOffset).toFr();
52
- await context.persistableState.writeStorage(context.environment.address, slot, value);
53
- }
54
- }
55
-
56
- export class SLoad extends Instruction {
57
- static readonly type: string = 'SLOAD';
58
- static readonly opcode = Opcode.SLOAD;
59
- // Informs (de)serialization. See Instruction.deserialize.
60
- public static readonly wireFormat: OperandType[] = [
61
- OperandType.UINT8,
62
- OperandType.UINT8,
63
- OperandType.UINT16,
64
- OperandType.UINT16,
65
- OperandType.UINT16,
66
- ];
67
-
68
- constructor(
69
- private addressingMode: number,
70
- private slotOffset: number,
71
- private contractAddressOffset: number,
72
- private dstOffset: number,
73
- ) {
74
- super();
75
- }
76
-
77
- public async execute(context: AvmContext): Promise<void> {
78
- const memory = context.machineState.memory;
79
- const addressing = Addressing.fromWire(this.addressingMode);
80
-
81
- context.machineState.consumeGas(
82
- this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()),
83
- );
84
-
85
- const operands = [this.slotOffset, this.contractAddressOffset, this.dstOffset];
86
- const [slotOffset, contractAddressOffset, dstOffset] = addressing.resolve(operands, memory);
87
- memory.checkTag(TypeTag.FIELD, slotOffset);
88
- memory.checkTag(TypeTag.FIELD, contractAddressOffset);
89
-
90
- const slot = memory.get(slotOffset).toFr();
91
- const contractAddress = memory.get(contractAddressOffset).toAztecAddress();
92
- const value = await context.persistableState.readStorage(contractAddress, slot);
93
- memory.set(dstOffset, new Field(value));
94
- }
95
- }
@@ -1,58 +0,0 @@
1
- import type { Fr } from '@aztec/foundation/curves/bn254';
2
-
3
- import type { AvmContext } from './avm_context.js';
4
- import { type AvmExecutionError, AvmRevertReason } from './errors.js';
5
-
6
- async function createRevertReason(message: string, revertData: Fr[], context: AvmContext): Promise<AvmRevertReason> {
7
- // We drop the returnPc information.
8
- const internalCallStack = context.machineState.internalCallStack.map(entry => entry.callPc);
9
-
10
- // If we are reverting due to the same error that we have been tracking, we use the nested error as the cause.
11
- let nestedError = undefined;
12
- const revertDataEquals = (a: Fr[], b: Fr[]) => a.length === b.length && a.every((v, i) => v.equals(b[i]));
13
- if (
14
- context.machineState.collectedRevertInfo &&
15
- revertDataEquals(context.machineState.collectedRevertInfo.revertDataRepresentative, revertData)
16
- ) {
17
- nestedError = context.machineState.collectedRevertInfo.recursiveRevertReason;
18
- message = context.machineState.collectedRevertInfo.recursiveRevertReason.message;
19
- }
20
-
21
- const { functionSelector, functionName } = await context.persistableState.getPublicFunctionSelectorAndName(
22
- context.environment,
23
- );
24
-
25
- return new AvmRevertReason(
26
- message,
27
- /*failingFunction=*/ {
28
- contractAddress: context.environment.address,
29
- functionSelector,
30
- functionName,
31
- },
32
- /*noirCallStack=*/ [...internalCallStack, context.machineState.pc].map(pc => `0.${pc}`),
33
- /*options=*/ { cause: nestedError },
34
- );
35
- }
36
-
37
- /**
38
- * Create a "revert reason" error for an exceptional halt.
39
- *
40
- * @param haltingError - the lower-level error causing the exceptional halt
41
- * @param context - the context of the AVM execution used to extract the failingFunction and noirCallStack
42
- */
43
- export async function revertReasonFromExceptionalHalt(
44
- haltingError: AvmExecutionError,
45
- context: AvmContext,
46
- ): Promise<AvmRevertReason> {
47
- return await createRevertReason(haltingError.message, [], context);
48
- }
49
-
50
- /**
51
- * Create a "revert reason" error for an explicit revert (a root cause).
52
- *
53
- * @param revertData - output data of the explicit REVERT instruction
54
- * @param context - the context of the AVM execution used to extract the failingFunction and noirCallStack
55
- */
56
- export async function revertReasonFromExplicitRevert(revertData: Fr[], context: AvmContext): Promise<AvmRevertReason> {
57
- return await createRevertReason('Assertion failed: ', revertData, context);
58
- }
@@ -1,118 +0,0 @@
1
- /*
2
- * A Buffer-like class that automatically advances the position.
3
- */
4
- export class BufferCursor {
5
- constructor(
6
- private _buffer: Buffer,
7
- private _position: number = 0,
8
- ) {}
9
-
10
- public position(): number {
11
- return this._position;
12
- }
13
-
14
- public buffer(): Buffer {
15
- return this._buffer;
16
- }
17
-
18
- public eof(): boolean {
19
- return this._position === this._buffer.length;
20
- }
21
-
22
- public bufferAtPosition(): Buffer {
23
- return this._buffer.subarray(this._position);
24
- }
25
-
26
- public advance(n: number): void {
27
- this._position += n;
28
- }
29
-
30
- public peekUint8(): number {
31
- const ret = this._buffer.readUint8(this._position);
32
- return ret;
33
- }
34
-
35
- public readUint8(): number {
36
- const ret = this._buffer.readUint8(this._position);
37
- this._position += 1;
38
- return ret;
39
- }
40
-
41
- public readUint16LE(): number {
42
- const ret = this._buffer.readUint16LE(this._position);
43
- this._position += 2;
44
- return ret;
45
- }
46
-
47
- public readUint16BE(): number {
48
- const ret = this._buffer.readUint16BE(this._position);
49
- this._position += 2;
50
- return ret;
51
- }
52
-
53
- public readUint32LE(): number {
54
- const ret = this._buffer.readUint32LE(this._position);
55
- this._position += 4;
56
- return ret;
57
- }
58
-
59
- public readUint32BE(): number {
60
- const ret = this._buffer.readUint32BE(this._position);
61
- this._position += 4;
62
- return ret;
63
- }
64
-
65
- public readBigInt64LE(): bigint {
66
- const ret = this._buffer.readBigInt64LE(this._position);
67
- this._position += 8;
68
- return ret;
69
- }
70
-
71
- public readBigInt64BE(): bigint {
72
- const ret = this._buffer.readBigInt64BE(this._position);
73
- this._position += 8;
74
- return ret;
75
- }
76
-
77
- public writeUint8(v: number) {
78
- const ret = this._buffer.writeUint8(v, this._position);
79
- this._position += 1;
80
- return ret;
81
- }
82
-
83
- public writeUint16LE(v: number) {
84
- const ret = this._buffer.writeUint16LE(v, this._position);
85
- this._position += 2;
86
- return ret;
87
- }
88
-
89
- public writeUint16BE(v: number) {
90
- const ret = this._buffer.writeUint16BE(v, this._position);
91
- this._position += 2;
92
- return ret;
93
- }
94
-
95
- public writeUint32LE(v: number) {
96
- const ret = this._buffer.writeUint32LE(v, this._position);
97
- this._position += 4;
98
- return ret;
99
- }
100
-
101
- public writeUint32BE(v: number) {
102
- const ret = this._buffer.writeUint32BE(v, this._position);
103
- this._position += 4;
104
- return ret;
105
- }
106
-
107
- public writeBigInt64LE(v: bigint) {
108
- const ret = this._buffer.writeBigInt64LE(v, this._position);
109
- this._position += 8;
110
- return ret;
111
- }
112
-
113
- public writeBigInt64BE(v: bigint) {
114
- const ret = this._buffer.writeBigInt64BE(v, this._position);
115
- this._position += 8;
116
- return ret;
117
- }
118
- }