@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,74 +0,0 @@
1
- import type { AvmContext } from '../avm_context.js';
2
- import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
3
- import { Instruction } from './instruction.js';
4
- export declare class NoteHashExists extends Instruction {
5
- private addressingMode;
6
- private noteHashOffset;
7
- private leafIndexOffset;
8
- private existsOffset;
9
- static type: string;
10
- static readonly opcode: Opcode;
11
- static readonly wireFormat: OperandType[];
12
- constructor(addressingMode: number, noteHashOffset: number, leafIndexOffset: number, existsOffset: number);
13
- execute(context: AvmContext): Promise<void>;
14
- }
15
- export declare class EmitNoteHash extends Instruction {
16
- private addressingMode;
17
- private noteHashOffset;
18
- static type: string;
19
- static readonly opcode: Opcode;
20
- static readonly wireFormat: OperandType[];
21
- constructor(addressingMode: number, noteHashOffset: number);
22
- execute(context: AvmContext): Promise<void>;
23
- }
24
- export declare class NullifierExists extends Instruction {
25
- private addressingMode;
26
- private siloedNullifierOffset;
27
- private existsOffset;
28
- static type: string;
29
- static readonly opcode: Opcode;
30
- static readonly wireFormat: OperandType[];
31
- constructor(addressingMode: number, siloedNullifierOffset: number, existsOffset: number);
32
- execute(context: AvmContext): Promise<void>;
33
- }
34
- export declare class EmitNullifier extends Instruction {
35
- private addressingMode;
36
- private nullifierOffset;
37
- static type: string;
38
- static readonly opcode: Opcode;
39
- static readonly wireFormat: OperandType[];
40
- constructor(addressingMode: number, nullifierOffset: number);
41
- execute(context: AvmContext): Promise<void>;
42
- }
43
- export declare class L1ToL2MessageExists extends Instruction {
44
- private addressingMode;
45
- private msgHashOffset;
46
- private msgLeafIndexOffset;
47
- private existsOffset;
48
- static type: string;
49
- static readonly opcode: Opcode;
50
- static readonly wireFormat: OperandType[];
51
- constructor(addressingMode: number, msgHashOffset: number, msgLeafIndexOffset: number, existsOffset: number);
52
- execute(context: AvmContext): Promise<void>;
53
- }
54
- export declare class EmitPublicLog extends Instruction {
55
- private addressingMode;
56
- private logSizeOffset;
57
- private logOffset;
58
- static type: string;
59
- static readonly opcode: Opcode;
60
- static readonly wireFormat: OperandType[];
61
- constructor(addressingMode: number, logSizeOffset: number, logOffset: number);
62
- execute(context: AvmContext): Promise<void>;
63
- }
64
- export declare class SendL2ToL1Message extends Instruction {
65
- private addressingMode;
66
- private recipientOffset;
67
- private contentOffset;
68
- static type: string;
69
- static readonly opcode: Opcode;
70
- static readonly wireFormat: OperandType[];
71
- constructor(addressingMode: number, recipientOffset: number, contentOffset: number);
72
- execute(context: AvmContext): Promise<void>;
73
- }
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjcnVlZF9zdWJzdGF0ZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3B1YmxpYy9hdm0vb3Bjb2Rlcy9hY2NydWVkX3N1YnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR3BELE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFFcEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRS9DLHFCQUFhLGNBQWUsU0FBUSxXQUFXO0lBYTNDLE9BQU8sQ0FBQyxjQUFjO0lBQ3RCLE9BQU8sQ0FBQyxjQUFjO0lBQ3RCLE9BQU8sQ0FBQyxlQUFlO0lBQ3ZCLE9BQU8sQ0FBQyxZQUFZO0lBZnRCLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFvQjtJQUN2QyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQXlCO0lBRXZELE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxnQkFNeEI7SUFFRixZQUNVLGNBQWMsRUFBRSxNQUFNLEVBQ3RCLGNBQWMsRUFBRSxNQUFNLEVBQ3RCLGVBQWUsRUFBRSxNQUFNLEVBQ3ZCLFlBQVksRUFBRSxNQUFNLEVBRzdCO0lBRVksT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWtCdkQ7Q0FDRjtBQUVELHFCQUFhLFlBQWEsU0FBUSxXQUFXO0lBT3pDLE9BQU8sQ0FBQyxjQUFjO0lBQ3RCLE9BQU8sQ0FBQyxjQUFjO0lBUHhCLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFrQjtJQUNyQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQXVCO0lBRXJELE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxnQkFBOEQ7SUFFeEYsWUFDVSxjQUFjLEVBQUUs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
@@ -1 +0,0 @@
1
- {"version":3,"file":"accrued_substate.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/accrued_substate.ts"],"names":[],"mappings":"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"}
@@ -1,254 +0,0 @@
1
- import { MAX_ETH_ADDRESS_VALUE } from '@aztec/constants';
2
- import { NullifierCollisionError } from '../../side_effect_errors.js';
3
- import { TypeTag, Uint1 } from '../avm_memory_types.js';
4
- import { InstructionExecutionError, StaticCallAlterationError } from '../errors.js';
5
- import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
6
- import { Addressing } from './addressing_mode.js';
7
- import { Instruction } from './instruction.js';
8
- export class NoteHashExists extends Instruction {
9
- addressingMode;
10
- noteHashOffset;
11
- leafIndexOffset;
12
- existsOffset;
13
- static type = 'NOTEHASHEXISTS';
14
- static opcode = Opcode.NOTEHASHEXISTS;
15
- // Informs (de)serialization. See Instruction.deserialize.
16
- static wireFormat = [
17
- OperandType.UINT8,
18
- OperandType.UINT8,
19
- OperandType.UINT16,
20
- OperandType.UINT16,
21
- OperandType.UINT16
22
- ];
23
- constructor(addressingMode, noteHashOffset, leafIndexOffset, existsOffset){
24
- super(), this.addressingMode = addressingMode, this.noteHashOffset = noteHashOffset, this.leafIndexOffset = leafIndexOffset, this.existsOffset = existsOffset;
25
- }
26
- async execute(context) {
27
- const memory = context.machineState.memory;
28
- const addressing = Addressing.fromWire(this.addressingMode);
29
- context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
30
- const operands = [
31
- this.noteHashOffset,
32
- this.leafIndexOffset,
33
- this.existsOffset
34
- ];
35
- const [noteHashOffset, leafIndexOffset, existsOffset] = addressing.resolve(operands, memory);
36
- memory.checkTag(TypeTag.FIELD, noteHashOffset);
37
- memory.checkTag(TypeTag.UINT64, leafIndexOffset);
38
- // Note that this instruction accepts any type in memory, and converts to Field.
39
- const noteHash = memory.get(noteHashOffset).toFr();
40
- const leafIndex = memory.get(leafIndexOffset).toBigInt();
41
- const exists = await context.persistableState.checkNoteHashExists(context.environment.address, noteHash, leafIndex);
42
- memory.set(existsOffset, exists ? new Uint1(1) : new Uint1(0));
43
- }
44
- }
45
- export class EmitNoteHash extends Instruction {
46
- addressingMode;
47
- noteHashOffset;
48
- static type = 'EMITNOTEHASH';
49
- static opcode = Opcode.EMITNOTEHASH;
50
- // Informs (de)serialization. See Instruction.deserialize.
51
- static wireFormat = [
52
- OperandType.UINT8,
53
- OperandType.UINT8,
54
- OperandType.UINT16
55
- ];
56
- constructor(addressingMode, noteHashOffset){
57
- super(), this.addressingMode = addressingMode, this.noteHashOffset = noteHashOffset;
58
- }
59
- async execute(context) {
60
- const memory = context.machineState.memory;
61
- const addressing = Addressing.fromWire(this.addressingMode);
62
- context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
63
- const operands = [
64
- this.noteHashOffset
65
- ];
66
- const [noteHashOffset] = addressing.resolve(operands, memory);
67
- memory.checkTag(TypeTag.FIELD, noteHashOffset);
68
- if (context.environment.isStaticCall) {
69
- throw new StaticCallAlterationError();
70
- }
71
- const noteHash = memory.get(noteHashOffset).toFr();
72
- await context.persistableState.writeNoteHash(context.environment.address, noteHash);
73
- }
74
- }
75
- export class NullifierExists extends Instruction {
76
- addressingMode;
77
- siloedNullifierOffset;
78
- existsOffset;
79
- static type = 'NULLIFIEREXISTS';
80
- static opcode = Opcode.NULLIFIEREXISTS;
81
- // Informs (de)serialization. See Instruction.deserialize.
82
- static wireFormat = [
83
- OperandType.UINT8,
84
- OperandType.UINT8,
85
- OperandType.UINT16,
86
- OperandType.UINT16
87
- ];
88
- constructor(addressingMode, siloedNullifierOffset, existsOffset){
89
- super(), this.addressingMode = addressingMode, this.siloedNullifierOffset = siloedNullifierOffset, this.existsOffset = existsOffset;
90
- }
91
- async execute(context) {
92
- const memory = context.machineState.memory;
93
- const addressing = Addressing.fromWire(this.addressingMode);
94
- context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
95
- const operands = [
96
- this.siloedNullifierOffset,
97
- this.existsOffset
98
- ];
99
- const [siloedNullifierOffset, existsOffset] = addressing.resolve(operands, memory);
100
- memory.checkTag(TypeTag.FIELD, siloedNullifierOffset);
101
- const siloedNullifier = memory.get(siloedNullifierOffset).toFr();
102
- const exists = await context.persistableState.checkSiloedNullifierExists(siloedNullifier);
103
- memory.set(existsOffset, exists ? new Uint1(1) : new Uint1(0));
104
- }
105
- }
106
- export class EmitNullifier extends Instruction {
107
- addressingMode;
108
- nullifierOffset;
109
- static type = 'EMITNULLIFIER';
110
- static opcode = Opcode.EMITNULLIFIER;
111
- // Informs (de)serialization. See Instruction.deserialize.
112
- static wireFormat = [
113
- OperandType.UINT8,
114
- OperandType.UINT8,
115
- OperandType.UINT16
116
- ];
117
- constructor(addressingMode, nullifierOffset){
118
- super(), this.addressingMode = addressingMode, this.nullifierOffset = nullifierOffset;
119
- }
120
- async execute(context) {
121
- if (context.environment.isStaticCall) {
122
- throw new StaticCallAlterationError();
123
- }
124
- const memory = context.machineState.memory;
125
- const addressing = Addressing.fromWire(this.addressingMode);
126
- context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
127
- const operands = [
128
- this.nullifierOffset
129
- ];
130
- const [nullifierOffset] = addressing.resolve(operands, memory);
131
- memory.checkTag(TypeTag.FIELD, nullifierOffset);
132
- const nullifier = memory.get(nullifierOffset).toFr();
133
- try {
134
- await context.persistableState.writeNullifier(context.environment.address, nullifier);
135
- } catch (e) {
136
- if (e instanceof NullifierCollisionError) {
137
- // Error is known/expected, raise as InstructionExecutionError that the will lead the simulator to revert this call
138
- throw new InstructionExecutionError(`Attempted to emit duplicate nullifier ${nullifier} (contract address: ${context.environment.address}).`);
139
- } else {
140
- throw e;
141
- }
142
- }
143
- }
144
- }
145
- export class L1ToL2MessageExists extends Instruction {
146
- addressingMode;
147
- msgHashOffset;
148
- msgLeafIndexOffset;
149
- existsOffset;
150
- static type = 'L1TOL2MSGEXISTS';
151
- static opcode = Opcode.L1TOL2MSGEXISTS;
152
- // Informs (de)serialization. See Instruction.deserialize.
153
- static wireFormat = [
154
- OperandType.UINT8,
155
- OperandType.UINT8,
156
- OperandType.UINT16,
157
- OperandType.UINT16,
158
- OperandType.UINT16
159
- ];
160
- constructor(addressingMode, msgHashOffset, msgLeafIndexOffset, existsOffset){
161
- super(), this.addressingMode = addressingMode, this.msgHashOffset = msgHashOffset, this.msgLeafIndexOffset = msgLeafIndexOffset, this.existsOffset = existsOffset;
162
- }
163
- async execute(context) {
164
- const memory = context.machineState.memory;
165
- const addressing = Addressing.fromWire(this.addressingMode);
166
- context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
167
- const operands = [
168
- this.msgHashOffset,
169
- this.msgLeafIndexOffset,
170
- this.existsOffset
171
- ];
172
- const [msgHashOffset, msgLeafIndexOffset, existsOffset] = addressing.resolve(operands, memory);
173
- memory.checkTag(TypeTag.FIELD, msgHashOffset);
174
- memory.checkTag(TypeTag.UINT64, msgLeafIndexOffset);
175
- const msgHash = memory.get(msgHashOffset).toFr();
176
- const msgLeafIndex = memory.get(msgLeafIndexOffset).toFr();
177
- const exists = await context.persistableState.checkL1ToL2MessageExists(msgHash, msgLeafIndex);
178
- memory.set(existsOffset, exists ? new Uint1(1) : new Uint1(0));
179
- }
180
- }
181
- export class EmitPublicLog extends Instruction {
182
- addressingMode;
183
- logSizeOffset;
184
- logOffset;
185
- static type = 'EMITPUBLICLOG';
186
- static opcode = Opcode.EMITPUBLICLOG;
187
- // Informs (de)serialization. See Instruction.deserialize.
188
- static wireFormat = [
189
- OperandType.UINT8,
190
- OperandType.UINT8,
191
- OperandType.UINT16,
192
- OperandType.UINT16
193
- ];
194
- constructor(addressingMode, logSizeOffset, logOffset){
195
- super(), this.addressingMode = addressingMode, this.logSizeOffset = logSizeOffset, this.logOffset = logOffset;
196
- }
197
- async execute(context) {
198
- if (context.environment.isStaticCall) {
199
- throw new StaticCallAlterationError();
200
- }
201
- const memory = context.machineState.memory;
202
- const addressing = Addressing.fromWire(this.addressingMode);
203
- context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
204
- const operands = [
205
- this.logSizeOffset,
206
- this.logOffset
207
- ];
208
- const [logSizeOffset, logOffset] = addressing.resolve(operands, memory);
209
- memory.checkTag(TypeTag.UINT32, logSizeOffset);
210
- const logSize = memory.get(logSizeOffset).toNumber();
211
- const contractAddress = context.environment.address;
212
- context.machineState.consumeGas(this.dynamicGasCost(logSize));
213
- memory.checkTagsRange(TypeTag.FIELD, logOffset, logSize);
214
- const log = memory.getSlice(logOffset, logSize).map((f)=>f.toFr());
215
- context.persistableState.writePublicLog(contractAddress, log);
216
- }
217
- }
218
- export class SendL2ToL1Message extends Instruction {
219
- addressingMode;
220
- recipientOffset;
221
- contentOffset;
222
- static type = 'SENDL2TOL1MSG';
223
- static opcode = Opcode.SENDL2TOL1MSG;
224
- // Informs (de)serialization. See Instruction.deserialize.
225
- static wireFormat = [
226
- OperandType.UINT8,
227
- OperandType.UINT8,
228
- OperandType.UINT16,
229
- OperandType.UINT16
230
- ];
231
- constructor(addressingMode, recipientOffset, contentOffset){
232
- super(), this.addressingMode = addressingMode, this.recipientOffset = recipientOffset, this.contentOffset = contentOffset;
233
- }
234
- async execute(context) {
235
- if (context.environment.isStaticCall) {
236
- throw new StaticCallAlterationError();
237
- }
238
- const memory = context.machineState.memory;
239
- const addressing = Addressing.fromWire(this.addressingMode);
240
- context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
241
- const operands = [
242
- this.recipientOffset,
243
- this.contentOffset
244
- ];
245
- const [recipientOffset, contentOffset] = addressing.resolve(operands, memory);
246
- memory.checkTags(TypeTag.FIELD, recipientOffset, contentOffset);
247
- const recipient = memory.get(recipientOffset).toFr();
248
- if (recipient.toBigInt() > MAX_ETH_ADDRESS_VALUE) {
249
- throw new InstructionExecutionError(`SENDL2TOL1MSG: Recipient address is too large`);
250
- }
251
- const content = memory.get(contentOffset).toFr();
252
- context.persistableState.writeL2ToL1Message(context.environment.address, recipient, content);
253
- }
254
- }
@@ -1,31 +0,0 @@
1
- import { AVM_MAX_OPERANDS } from '@aztec/constants';
2
- import type { Tuple } from '@aztec/foundation/serialize';
3
- import { type TaggedMemoryInterface } from '../avm_memory_types.js';
4
- export declare enum AddressingMode {
5
- DIRECT = 0,
6
- INDIRECT = 1,
7
- RELATIVE = 2,
8
- INDIRECT_RELATIVE = 3
9
- }
10
- /** A class to represent the addressing mode of an instruction. */
11
- export declare class Addressing {
12
- /** The addressing mode for each possible operand. */
13
- private readonly modePerOperand;
14
- constructor(
15
- /** The addressing mode for each possible operand. */
16
- modePerOperand: Tuple<AddressingMode, typeof AVM_MAX_OPERANDS>);
17
- static fromModes(modes: AddressingMode[]): Addressing;
18
- static fromWire(wireModes: number): Addressing;
19
- toWire(): number;
20
- indirectOperandsCount(): number;
21
- relativeOperandsCount(): number;
22
- /**
23
- * Resolves the offsets using the addressing mode.
24
- * @param offsets The offsets to resolve.
25
- * @param mem The memory to use for resolution.
26
- * @returns The resolved offsets. The length of the returned array is the same as the length of the input array and the resolved offsets are guaranteed to be valid addresses.
27
- * @throws An error if any step failed. Should be treated as a black box.
28
- */
29
- resolve(offsets: number[], mem: TaggedMemoryInterface): number[];
30
- }
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzc2luZ19tb2RlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHVibGljL2F2bS9vcGNvZGVzL2FkZHJlc3NpbmdfbW9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVwRCxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUl6RCxPQUFPLEVBQTZCLEtBQUsscUJBQXFCLEVBQVcsTUFBTSx3QkFBd0IsQ0FBQztBQUd4RyxvQkFBWSxjQUFjO0lBQ3hCLE1BQU0sSUFBSTtJQUNWLFFBQVEsSUFBSTtJQUNaLFFBQVEsSUFBSTtJQUNaLGlCQUFpQixJQUFJO0NBQ3RCO0FBRUQsa0VBQWtFO0FBQ2xFLHFCQUFhLFVBQVU7SUFFbkIscURBQXFEO0lBQ3JELE9BQU8sQ0FBQyxRQUFRLENBQUMsY0FBYztJQUZqQztJQUNFLHFEQUFxRDtJQUNwQyxjQUFjLEVBQUUsS0FBSyxDQUFDLGNBQWMsRUFBRSxPQUFPLGdCQUFnQixDQUFDLEVBQzdFO0lBRUosT0FBYyxTQUFTLENBQUMsS0FBSyxFQUFFLGNBQWMsRUFBRSxHQUFHLFVBQVUsQ0FHM0Q7SUFFRCxPQUFjLFFBQVEsQ0FBQyxTQUFTLEVBQUUsTUFBTSxHQUFHLFVBQVUsQ0FXcEQ7SUFFTSxNQUFNLElBQUksTUFBTSxDQWF0QjtJQUVNLHFCQUFxQixJQUFJLE1BQU0sQ0FFckM7SUFFTSxxQkFBcUIsSUFBSSxNQUFNLENBRXJDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksT0FBTyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUscUJBQXFCLEdBQUcsTUFBTSxFQUFFLENBc0N0RTtDQUNGIn0=
@@ -1 +0,0 @@
1
- {"version":3,"file":"addressing_mode.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/addressing_mode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAIzD,OAAO,EAA6B,KAAK,qBAAqB,EAAW,MAAM,wBAAwB,CAAC;AAGxG,oBAAY,cAAc;IACxB,MAAM,IAAI;IACV,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,iBAAiB,IAAI;CACtB;AAED,kEAAkE;AAClE,qBAAa,UAAU;IAEnB,qDAAqD;IACrD,OAAO,CAAC,QAAQ,CAAC,cAAc;IAFjC;IACE,qDAAqD;IACpC,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,OAAO,gBAAgB,CAAC,EAC7E;IAEJ,OAAc,SAAS,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,UAAU,CAG3D;IAED,OAAc,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CAWpD;IAEM,MAAM,IAAI,MAAM,CAatB;IAEM,qBAAqB,IAAI,MAAM,CAErC;IAEM,qBAAqB,IAAI,MAAM,CAErC;IAED;;;;;;OAMG;IACI,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,qBAAqB,GAAG,MAAM,EAAE,CAsCtE;CACF"}
@@ -1,94 +0,0 @@
1
- import { AVM_MAX_OPERANDS } from '@aztec/constants';
2
- import { padArrayEnd } from '@aztec/foundation/collection';
3
- import { strict as assert } from 'assert';
4
- import { TaggedMemory, TypeTag } from '../avm_memory_types.js';
5
- import { RelativeAddressOutOfRangeError, TagCheckError } from '../errors.js';
6
- export var AddressingMode = /*#__PURE__*/ function(AddressingMode) {
7
- AddressingMode[AddressingMode["DIRECT"] = 0] = "DIRECT";
8
- AddressingMode[AddressingMode["INDIRECT"] = 1] = "INDIRECT";
9
- AddressingMode[AddressingMode["RELATIVE"] = 2] = "RELATIVE";
10
- AddressingMode[AddressingMode["INDIRECT_RELATIVE"] = 3] = "INDIRECT_RELATIVE";
11
- return AddressingMode;
12
- }({});
13
- /** A class to represent the addressing mode of an instruction. */ export class Addressing {
14
- modePerOperand;
15
- constructor(/** The addressing mode for each possible operand. */ modePerOperand){
16
- this.modePerOperand = modePerOperand;
17
- }
18
- static fromModes(modes) {
19
- assert(modes.length <= AVM_MAX_OPERANDS, 'Too many operands for addressing mode');
20
- return new Addressing(padArrayEnd(modes, 0, AVM_MAX_OPERANDS));
21
- }
22
- static fromWire(wireModes) {
23
- // The modes are stored in the wire format as one or two bytes, with each two bits representing the modes for an operand.
24
- // Even bits are indirect, odd bits are relative.
25
- const modes = new Array(AVM_MAX_OPERANDS);
26
- for(let i = 0; i < AVM_MAX_OPERANDS; i++){
27
- modes[i] = (wireModes >> i * 2 & 1) * 1 | (wireModes >> i * 2 + 1 & 1) * 2;
28
- }
29
- // Casting the array to tuple since it should be more performant than using makeTuple
30
- return new Addressing(modes);
31
- }
32
- toWire() {
33
- // The modes are stored in the wire format as a byte, with each bit representing the mode for an operand.
34
- // The least significant bit represents the zeroth operand, and the least significant bit represents the last operand.
35
- let wire = 0;
36
- for(let i = 0; i < this.modePerOperand.length; i++){
37
- if (this.modePerOperand[i] & 1) {
38
- wire |= 1 << i * 2;
39
- }
40
- if (this.modePerOperand[i] & 2) {
41
- wire |= 1 << i * 2 + 1;
42
- }
43
- }
44
- return wire;
45
- }
46
- indirectOperandsCount() {
47
- return this.modePerOperand.filter((mode)=>mode & 1).length;
48
- }
49
- relativeOperandsCount() {
50
- return this.modePerOperand.filter((mode)=>mode & 2).length;
51
- }
52
- /**
53
- * Resolves the offsets using the addressing mode.
54
- * @param offsets The offsets to resolve.
55
- * @param mem The memory to use for resolution.
56
- * @returns The resolved offsets. The length of the returned array is the same as the length of the input array and the resolved offsets are guaranteed to be valid addresses.
57
- * @throws An error if any step failed. Should be treated as a black box.
58
- */ resolve(offsets, mem) {
59
- const resolved = new Array(offsets.length);
60
- // These will be read (once) if we have any relative operands.
61
- let baseAddr;
62
- for (const [i, offset] of offsets.entries()){
63
- const mode = this.modePerOperand[i];
64
- // The given offsets are assumed to be valid addresses.
65
- resolved[i] = offset;
66
- if (mode & 2) {
67
- if (!baseAddr) {
68
- baseAddr = mem.get(0);
69
- const baseAddrTag = baseAddr.getTag();
70
- if (!TaggedMemory.isValidMemoryAddressTag(baseAddrTag)) {
71
- throw TagCheckError.forBaseAddress(TypeTag[baseAddrTag]);
72
- }
73
- }
74
- // Here we know that resolved[i] is at most 32 bits and baseAddr is at most 32 bits.
75
- // Therefore, the addition is safe since the `number` type fits more than 33 bits.
76
- resolved[i] += Number(baseAddr.toBigInt());
77
- if (resolved[i] >= TaggedMemory.MAX_MEMORY_SIZE) {
78
- throw new RelativeAddressOutOfRangeError(Number(baseAddr.toBigInt()), offset);
79
- }
80
- }
81
- if (mode & 1) {
82
- // At this point we know that resolved[i] is a valid memory address.
83
- const resolvedValue = mem.get(resolved[i]);
84
- const resolvedTag = resolvedValue.getTag();
85
- // Final check.
86
- if (!TaggedMemory.isValidMemoryAddressTag(resolvedTag)) {
87
- throw TagCheckError.forIndirectAddress(resolved[i], TypeTag[resolvedTag]);
88
- }
89
- resolved[i] = Number(resolvedValue.toBigInt());
90
- }
91
- }
92
- return resolved;
93
- }
94
- }
@@ -1,49 +0,0 @@
1
- import type { AvmContext } from '../avm_context.js';
2
- import { type Field, type IntegralValue, type MemoryValue, type TaggedMemoryInterface } from '../avm_memory_types.js';
3
- import { Opcode } from '../serialization/instruction_serialization.js';
4
- import { ThreeOperandInstruction } from './instruction_impl.js';
5
- export declare abstract class ThreeOperandArithmeticInstruction extends ThreeOperandInstruction {
6
- execute(context: AvmContext): Promise<void>;
7
- protected abstract compute(a: MemoryValue, b: MemoryValue): MemoryValue;
8
- protected checkTags(memory: TaggedMemoryInterface, aOffset: number, bOffset: number): void;
9
- }
10
- export declare class Add extends ThreeOperandArithmeticInstruction {
11
- static readonly type: string;
12
- static readonly opcode = Opcode.ADD_8;
13
- protected compute(a: MemoryValue, b: MemoryValue): MemoryValue;
14
- }
15
- export declare class Sub extends ThreeOperandArithmeticInstruction {
16
- static readonly type: string;
17
- static readonly opcode = Opcode.SUB_8;
18
- protected compute(a: MemoryValue, b: MemoryValue): MemoryValue;
19
- }
20
- export declare class Mul extends ThreeOperandArithmeticInstruction {
21
- static type: string;
22
- static readonly opcode = Opcode.MUL_8;
23
- protected compute(a: MemoryValue, b: MemoryValue): MemoryValue;
24
- }
25
- export declare class Div extends ThreeOperandArithmeticInstruction {
26
- static type: string;
27
- static readonly opcode = Opcode.DIV_8;
28
- protected compute(a: MemoryValue, b: MemoryValue): MemoryValue;
29
- protected checkTags(memory: TaggedMemoryInterface, aOffset: number, bOffset: number): void;
30
- }
31
- export declare class FieldDiv extends ThreeOperandArithmeticInstruction {
32
- static type: string;
33
- static readonly opcode = Opcode.FDIV_8;
34
- protected compute(a: Field, b: Field): Field;
35
- protected checkTags(memory: TaggedMemoryInterface, aOffset: number, bOffset: number): void;
36
- }
37
- export declare class Shl extends ThreeOperandArithmeticInstruction {
38
- static readonly type: string;
39
- static readonly opcode = Opcode.SHL_8;
40
- protected compute(a: IntegralValue, b: IntegralValue): IntegralValue;
41
- protected checkTags(memory: TaggedMemoryInterface, aOffset: number, bOffset: number): void;
42
- }
43
- export declare class Shr extends ThreeOperandArithmeticInstruction {
44
- static readonly type: string;
45
- static readonly opcode = Opcode.SHR_8;
46
- protected compute(a: IntegralValue, b: IntegralValue): IntegralValue;
47
- protected checkTags(memory: TaggedMemoryInterface, aOffset: number, bOffset: number): void;
48
- }
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJpdGhtZXRpYy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3B1YmxpYy9hdm0vb3Bjb2Rlcy9hcml0aG1ldGljLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFDTCxLQUFLLEtBQUssRUFDVixLQUFLLGFBQWEsRUFDbEIsS0FBSyxXQUFXLEVBRWhCLEtBQUsscUJBQXFCLEVBRTNCLE1BQU0sd0JBQXdCLENBQUM7QUFFaEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBRXZFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWhFLDhCQUFzQixpQ0FBa0MsU0FBUSx1QkFBdUI7SUFDeEUsT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWlCdkQ7SUFFRCxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ3hFLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLHFCQUFxQixFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sUUFFbEY7Q0FDRjtBQUVELHFCQUFhLEdBQUksU0FBUSxpQ0FBaUM7SUFDeEQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFTO0lBQ3JDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxnQkFBZ0I7SUFFdEMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxXQUFXLEdBQUcsV0FBVyxDQUU3RDtDQUNGO0FBRUQscUJBQWEsR0FBSSxTQUFRLGlDQUFpQztJQUN4RCxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLENBQVM7SUFDckMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLGdCQUFnQjtJQUV0QyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLFdBQVcsR0FBRyxXQUFXLENBRTdEO0NBQ0Y7QUFFRCxxQkFBYSxHQUFJLFNBQVEsaUNBQWlDO0lBQ3hELE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFTO0lBQzVCLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxnQkFBZ0I7SUFFdEMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxXQUFXLEdBQUcsV0FBVyxDQUU3RDtDQUNGO0FBRUQscUJBQWEsR0FBSSxTQUFRLGlDQUFpQztJQUN4RCxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBUztJQUM1QixNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sZ0JBQWdCO0lBRXRDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsV0FBVyxHQUFHLFdBQVcsQ0FNN0Q7SUFFRCxVQUFtQixTQUFTLENBQUMsTUFBTSxFQUFFLHFCQUFxQixFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sUUFHM0Y7Q0FDRjtBQUVELHFCQUFhLFFBQVMsU0FBUSxpQ0FBaUM7SUFDN0QsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQVU7SUFDN0IsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLGlCQUFpQjtJQUV2QyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssR0FBRyxLQUFLLENBSzNDO0lBRUQsVUFBbUIsU0FBUyxDQUFDLE1BQU0sRUFBRSxxQkFBcUIsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBRzNGO0NBQ0Y7QUFFRCxxQkFBYSxHQUFJLFNBQVEsaUNBQWlDO0lBQ3hELE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBUztJQUNyQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sZ0JBQWdCO0lBRXRDLFVBQW1CLE9BQU8sQ0FBQyxDQUFDLEVBQUUsYUFBYSxFQUFFLENBQUMsRUFBRSxhQUFhLEdBQUcsYUFBYSxDQUU1RTtJQUVELFVBQW1CLFNBQVMsQ0FBQyxNQUFNLEVBQUUscUJBQXFCLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxRQUczRjtDQUNGO0FBRUQscUJBQWEsR0FBSSxTQUFRLGlDQUFpQztJQUN4RCxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLENBQVM7SUFDckMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLGdCQUFnQjtJQUV0QyxVQUFtQixPQUFPLENBQUMsQ0FBQyxFQUFFLGFBQWEsRUFBRSxDQUFDLEVBQUUsYUFBYSxHQUFHLGFBQWEsQ0FFNUU7SUFFRCxVQUFtQixTQUFTLENBQUMsTUFBTSxFQUFFLHFCQUFxQixFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sUUFHM0Y7Q0FDRiJ9
@@ -1 +0,0 @@
1
- {"version":3,"file":"arithmetic.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/arithmetic.ts"],"names":[],"mappings":"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"}
@@ -1,97 +0,0 @@
1
- import { TaggedMemory, TypeTag } from '../avm_memory_types.js';
2
- import { ArithmeticError } from '../errors.js';
3
- import { Opcode } from '../serialization/instruction_serialization.js';
4
- import { Addressing } from './addressing_mode.js';
5
- import { ThreeOperandInstruction } from './instruction_impl.js';
6
- export class ThreeOperandArithmeticInstruction extends ThreeOperandInstruction {
7
- async execute(context) {
8
- const memory = context.machineState.memory;
9
- const addressing = Addressing.fromWire(this.addressingMode);
10
- context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
11
- const operands = [
12
- this.aOffset,
13
- this.bOffset,
14
- this.dstOffset
15
- ];
16
- const [aOffset, bOffset, dstOffset] = addressing.resolve(operands, memory);
17
- this.checkTags(memory, aOffset, bOffset);
18
- const a = memory.get(aOffset);
19
- const b = memory.get(bOffset);
20
- const dest = this.compute(a, b);
21
- memory.set(dstOffset, dest);
22
- }
23
- checkTags(memory, aOffset, bOffset) {
24
- memory.checkTagsAreSame(aOffset, bOffset);
25
- }
26
- }
27
- export class Add extends ThreeOperandArithmeticInstruction {
28
- static type = 'ADD';
29
- static opcode = Opcode.ADD_8;
30
- compute(a, b) {
31
- return a.add(b);
32
- }
33
- }
34
- export class Sub extends ThreeOperandArithmeticInstruction {
35
- static type = 'SUB';
36
- static opcode = Opcode.SUB_8;
37
- compute(a, b) {
38
- return a.sub(b);
39
- }
40
- }
41
- export class Mul extends ThreeOperandArithmeticInstruction {
42
- static type = 'MUL';
43
- static opcode = Opcode.MUL_8;
44
- compute(a, b) {
45
- return a.mul(b);
46
- }
47
- }
48
- export class Div extends ThreeOperandArithmeticInstruction {
49
- static type = 'DIV';
50
- static opcode = Opcode.DIV_8;
51
- compute(a, b) {
52
- if (b.toBigInt() === 0n) {
53
- throw new ArithmeticError('Division by zero');
54
- }
55
- return a.div(b);
56
- }
57
- checkTags(memory, aOffset, bOffset) {
58
- memory.checkTagsAreSame(aOffset, bOffset);
59
- TaggedMemory.checkIsIntegralTag(memory.getTag(aOffset)); // Follows that bOffset tag is also of integral type
60
- }
61
- }
62
- export class FieldDiv extends ThreeOperandArithmeticInstruction {
63
- static type = 'FDIV';
64
- static opcode = Opcode.FDIV_8;
65
- compute(a, b) {
66
- if (b.toBigInt() === 0n) {
67
- throw new ArithmeticError('Division by zero');
68
- }
69
- return a.fdiv(b);
70
- }
71
- checkTags(memory, aOffset, bOffset) {
72
- memory.checkTagsAreSame(aOffset, bOffset);
73
- memory.checkTag(TypeTag.FIELD, aOffset); // Follows that bOffset has also tag of type Field
74
- }
75
- }
76
- export class Shl extends ThreeOperandArithmeticInstruction {
77
- static type = 'SHL';
78
- static opcode = Opcode.SHL_8;
79
- compute(a, b) {
80
- return a.shl(b);
81
- }
82
- checkTags(memory, aOffset, bOffset) {
83
- memory.checkTagsAreSame(aOffset, bOffset);
84
- TaggedMemory.checkIsIntegralTag(memory.getTag(aOffset)); // Follows that bOffset tag is also of integral type
85
- }
86
- }
87
- export class Shr extends ThreeOperandArithmeticInstruction {
88
- static type = 'SHR';
89
- static opcode = Opcode.SHR_8;
90
- compute(a, b) {
91
- return a.shr(b);
92
- }
93
- checkTags(memory, aOffset, bOffset) {
94
- memory.checkTagsAreSame(aOffset, bOffset);
95
- TaggedMemory.checkIsIntegralTag(memory.getTag(aOffset)); // Follows that bOffset tag is also of integral type
96
- }
97
- }