@aztec/simulator 0.0.0-test.1 → 0.0.1-commit.03f7ef2

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 (521) hide show
  1. package/README.md +6 -0
  2. package/dest/client.d.ts +6 -4
  3. package/dest/client.d.ts.map +1 -1
  4. package/dest/client.js +4 -2
  5. package/dest/common/errors.d.ts +6 -15
  6. package/dest/common/errors.d.ts.map +1 -1
  7. package/dest/common/errors.js +51 -32
  8. package/dest/common/index.d.ts +1 -2
  9. package/dest/common/index.d.ts.map +1 -1
  10. package/dest/common/index.js +0 -1
  11. package/dest/common/stats/index.d.ts +1 -1
  12. package/dest/common/stats/stats.d.ts +1 -1
  13. package/dest/private/acvm/acvm.d.ts +12 -6
  14. package/dest/private/acvm/acvm.d.ts.map +1 -1
  15. package/dest/private/acvm/acvm.js +10 -16
  16. package/dest/private/acvm/acvm_types.d.ts +2 -2
  17. package/dest/private/acvm/acvm_types.d.ts.map +1 -1
  18. package/dest/private/acvm/deserialize.d.ts +19 -20
  19. package/dest/private/acvm/deserialize.d.ts.map +1 -1
  20. package/dest/private/acvm/deserialize.js +32 -24
  21. package/dest/private/acvm/index.d.ts +1 -2
  22. package/dest/private/acvm/index.d.ts.map +1 -1
  23. package/dest/private/acvm/index.js +0 -1
  24. package/dest/private/acvm/serialize.d.ts +21 -4
  25. package/dest/private/acvm/serialize.d.ts.map +1 -1
  26. package/dest/private/acvm/serialize.js +54 -1
  27. package/dest/private/acvm_native.d.ts +39 -0
  28. package/dest/private/acvm_native.d.ts.map +1 -0
  29. package/dest/private/{providers/acvm_native.js → acvm_native.js} +26 -20
  30. package/dest/private/acvm_wasm.d.ts +15 -0
  31. package/dest/private/acvm_wasm.d.ts.map +1 -0
  32. package/dest/private/{providers/acvm_wasm.js → acvm_wasm.js} +22 -19
  33. package/dest/private/acvm_wasm_with_blobs.d.ts +20 -0
  34. package/dest/private/acvm_wasm_with_blobs.d.ts.map +1 -0
  35. package/dest/private/acvm_wasm_with_blobs.js +35 -0
  36. package/dest/private/circuit_recording/circuit_recorder.d.ts +108 -0
  37. package/dest/private/circuit_recording/circuit_recorder.d.ts.map +1 -0
  38. package/dest/private/circuit_recording/circuit_recorder.js +209 -0
  39. package/dest/private/circuit_recording/file_circuit_recorder.d.ts +31 -0
  40. package/dest/private/circuit_recording/file_circuit_recorder.d.ts.map +1 -0
  41. package/dest/private/circuit_recording/file_circuit_recorder.js +135 -0
  42. package/dest/private/circuit_recording/memory_circuit_recorder.d.ts +5 -0
  43. package/dest/private/circuit_recording/memory_circuit_recorder.d.ts.map +1 -0
  44. package/dest/private/circuit_recording/memory_circuit_recorder.js +9 -0
  45. package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts +21 -0
  46. package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts.map +1 -0
  47. package/dest/private/circuit_recording/simulator_recorder_wrapper.js +44 -0
  48. package/dest/private/circuit_simulator.d.ts +35 -0
  49. package/dest/private/circuit_simulator.d.ts.map +1 -0
  50. package/dest/private/circuit_simulator.js +43 -0
  51. package/dest/private/factory.d.ts +12 -0
  52. package/dest/private/factory.d.ts.map +1 -0
  53. package/dest/private/{providers/factory.js → factory.js} +2 -2
  54. package/dest/public/avm/avm_context.d.ts +7 -7
  55. package/dest/public/avm/avm_context.d.ts.map +1 -1
  56. package/dest/public/avm/avm_contract_call_result.d.ts +6 -4
  57. package/dest/public/avm/avm_contract_call_result.d.ts.map +1 -1
  58. package/dest/public/avm/avm_contract_call_result.js +11 -7
  59. package/dest/public/avm/avm_execution_environment.d.ts +5 -3
  60. package/dest/public/avm/avm_execution_environment.d.ts.map +1 -1
  61. package/dest/public/avm/avm_execution_environment.js +5 -3
  62. package/dest/public/avm/avm_gas.d.ts +5 -21
  63. package/dest/public/avm/avm_gas.d.ts.map +1 -1
  64. package/dest/public/avm/avm_gas.js +27 -35
  65. package/dest/public/avm/avm_machine_state.d.ts +4 -2
  66. package/dest/public/avm/avm_machine_state.d.ts.map +1 -1
  67. package/dest/public/avm/avm_machine_state.js +2 -0
  68. package/dest/public/avm/avm_memory_types.d.ts +100 -89
  69. package/dest/public/avm/avm_memory_types.d.ts.map +1 -1
  70. package/dest/public/avm/avm_memory_types.js +18 -7
  71. package/dest/public/avm/avm_simulator.d.ts +7 -7
  72. package/dest/public/avm/avm_simulator.d.ts.map +1 -1
  73. package/dest/public/avm/avm_simulator.js +28 -39
  74. package/dest/public/avm/avm_simulator_interface.d.ts +9 -0
  75. package/dest/public/avm/avm_simulator_interface.d.ts.map +1 -0
  76. package/dest/public/avm/avm_simulator_interface.js +3 -0
  77. package/dest/public/avm/errors.d.ts +11 -29
  78. package/dest/public/avm/errors.d.ts.map +1 -1
  79. package/dest/public/avm/errors.js +19 -57
  80. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts +6 -5
  81. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts.map +1 -1
  82. package/dest/public/avm/fixtures/avm_simulation_tester.js +23 -16
  83. package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts +8 -6
  84. package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts.map +1 -1
  85. package/dest/public/avm/fixtures/base_avm_simulation_tester.js +38 -15
  86. package/dest/public/avm/fixtures/initializers.d.ts +42 -0
  87. package/dest/public/avm/fixtures/initializers.d.ts.map +1 -0
  88. package/dest/public/avm/fixtures/initializers.js +44 -0
  89. package/dest/public/avm/fixtures/utils.d.ts +39 -0
  90. package/dest/public/avm/fixtures/utils.d.ts.map +1 -0
  91. package/dest/public/avm/fixtures/utils.js +96 -0
  92. package/dest/public/avm/index.d.ts +1 -3
  93. package/dest/public/avm/index.d.ts.map +1 -1
  94. package/dest/public/avm/index.js +0 -2
  95. package/dest/public/avm/opcodes/accrued_substate.d.ts +3 -3
  96. package/dest/public/avm/opcodes/accrued_substate.d.ts.map +1 -1
  97. package/dest/public/avm/opcodes/accrued_substate.js +28 -25
  98. package/dest/public/avm/opcodes/addressing_mode.d.ts +12 -8
  99. package/dest/public/avm/opcodes/addressing_mode.d.ts.map +1 -1
  100. package/dest/public/avm/opcodes/addressing_mode.js +46 -26
  101. package/dest/public/avm/opcodes/arithmetic.d.ts +19 -7
  102. package/dest/public/avm/opcodes/arithmetic.d.ts.map +1 -1
  103. package/dest/public/avm/opcodes/arithmetic.js +27 -3
  104. package/dest/public/avm/opcodes/bitwise.d.ts +10 -18
  105. package/dest/public/avm/opcodes/bitwise.d.ts.map +1 -1
  106. package/dest/public/avm/opcodes/bitwise.js +19 -26
  107. package/dest/public/avm/opcodes/comparators.d.ts +4 -4
  108. package/dest/public/avm/opcodes/comparators.d.ts.map +1 -1
  109. package/dest/public/avm/opcodes/comparators.js +3 -3
  110. package/dest/public/avm/opcodes/contract.d.ts +2 -3
  111. package/dest/public/avm/opcodes/contract.d.ts.map +1 -1
  112. package/dest/public/avm/opcodes/contract.js +9 -10
  113. package/dest/public/avm/opcodes/control_flow.d.ts +1 -1
  114. package/dest/public/avm/opcodes/control_flow.d.ts.map +1 -1
  115. package/dest/public/avm/opcodes/control_flow.js +10 -8
  116. package/dest/public/avm/opcodes/conversion.d.ts +2 -1
  117. package/dest/public/avm/opcodes/conversion.d.ts.map +1 -1
  118. package/dest/public/avm/opcodes/conversion.js +267 -3
  119. package/dest/public/avm/opcodes/ec_add.d.ts +2 -2
  120. package/dest/public/avm/opcodes/ec_add.d.ts.map +1 -1
  121. package/dest/public/avm/opcodes/ec_add.js +8 -8
  122. package/dest/public/avm/opcodes/environment_getters.d.ts +3 -3
  123. package/dest/public/avm/opcodes/environment_getters.d.ts.map +1 -1
  124. package/dest/public/avm/opcodes/environment_getters.js +17 -19
  125. package/dest/public/avm/opcodes/external_calls.d.ts +9 -8
  126. package/dest/public/avm/opcodes/external_calls.d.ts.map +1 -1
  127. package/dest/public/avm/opcodes/external_calls.js +39 -34
  128. package/dest/public/avm/opcodes/hashing.d.ts +2 -2
  129. package/dest/public/avm/opcodes/hashing.d.ts.map +1 -1
  130. package/dest/public/avm/opcodes/hashing.js +15 -10
  131. package/dest/public/avm/opcodes/index.d.ts +1 -1
  132. package/dest/public/avm/opcodes/instruction.d.ts +15 -11
  133. package/dest/public/avm/opcodes/instruction.d.ts.map +1 -1
  134. package/dest/public/avm/opcodes/instruction.js +23 -19
  135. package/dest/public/avm/opcodes/instruction_impl.d.ts +1 -1
  136. package/dest/public/avm/opcodes/instruction_impl.d.ts.map +1 -1
  137. package/dest/public/avm/opcodes/memory.d.ts +6 -6
  138. package/dest/public/avm/opcodes/memory.d.ts.map +1 -1
  139. package/dest/public/avm/opcodes/memory.js +37 -33
  140. package/dest/public/avm/opcodes/misc.d.ts +3 -2
  141. package/dest/public/avm/opcodes/misc.d.ts.map +1 -1
  142. package/dest/public/avm/opcodes/misc.js +41 -16
  143. package/dest/public/avm/opcodes/storage.d.ts +3 -3
  144. package/dest/public/avm/opcodes/storage.d.ts.map +1 -1
  145. package/dest/public/avm/opcodes/storage.js +7 -5
  146. package/dest/public/avm/revert_reason.d.ts +18 -0
  147. package/dest/public/avm/revert_reason.d.ts.map +1 -0
  148. package/dest/public/avm/revert_reason.js +39 -0
  149. package/dest/public/avm/serialization/buffer_cursor.d.ts +1 -3
  150. package/dest/public/avm/serialization/buffer_cursor.d.ts.map +1 -1
  151. package/dest/public/avm/serialization/bytecode_serialization.d.ts +3 -7
  152. package/dest/public/avm/serialization/bytecode_serialization.d.ts.map +1 -1
  153. package/dest/public/avm/serialization/bytecode_serialization.js +79 -75
  154. package/dest/public/avm/serialization/instruction_serialization.d.ts +14 -5
  155. package/dest/public/avm/serialization/instruction_serialization.d.ts.map +1 -1
  156. package/dest/public/avm/serialization/instruction_serialization.js +70 -35
  157. package/dest/public/avm/test_utils.d.ts +12 -15
  158. package/dest/public/avm/test_utils.d.ts.map +1 -1
  159. package/dest/public/avm/test_utils.js +17 -25
  160. package/dest/public/contracts_db_checkpoint.d.ts +16 -0
  161. package/dest/public/contracts_db_checkpoint.d.ts.map +1 -0
  162. package/dest/public/contracts_db_checkpoint.js +30 -0
  163. package/dest/public/db_interfaces.d.ts +68 -0
  164. package/dest/public/db_interfaces.d.ts.map +1 -0
  165. package/dest/public/db_interfaces.js +3 -0
  166. package/dest/public/debug_fn_name.d.ts +18 -0
  167. package/dest/public/debug_fn_name.d.ts.map +1 -0
  168. package/dest/public/debug_fn_name.js +35 -0
  169. package/dest/public/executor_metrics.d.ts +12 -4
  170. package/dest/public/executor_metrics.d.ts.map +1 -1
  171. package/dest/public/executor_metrics.js +37 -6
  172. package/dest/public/executor_metrics_interface.d.ts +10 -0
  173. package/dest/public/executor_metrics_interface.d.ts.map +1 -0
  174. package/dest/public/executor_metrics_interface.js +1 -0
  175. package/dest/public/fixtures/amm_test.d.ts +10 -0
  176. package/dest/public/fixtures/amm_test.d.ts.map +1 -0
  177. package/dest/public/fixtures/amm_test.js +213 -0
  178. package/dest/public/fixtures/bulk_test.d.ts +6 -0
  179. package/dest/public/fixtures/bulk_test.d.ts.map +1 -0
  180. package/dest/public/fixtures/bulk_test.js +278 -0
  181. package/dest/public/fixtures/custom_bytecode_tester.d.ts +34 -0
  182. package/dest/public/fixtures/custom_bytecode_tester.d.ts.map +1 -0
  183. package/dest/public/fixtures/custom_bytecode_tester.js +53 -0
  184. package/dest/public/fixtures/custom_bytecode_tests.d.ts +12 -0
  185. package/dest/public/fixtures/custom_bytecode_tests.d.ts.map +1 -0
  186. package/dest/public/fixtures/custom_bytecode_tests.js +174 -0
  187. package/dest/public/fixtures/index.d.ts +10 -1
  188. package/dest/public/fixtures/index.d.ts.map +1 -1
  189. package/dest/public/fixtures/index.js +9 -0
  190. package/dest/public/fixtures/minimal_public_tx.d.ts +4 -0
  191. package/dest/public/fixtures/minimal_public_tx.d.ts.map +1 -0
  192. package/dest/public/fixtures/minimal_public_tx.js +19 -0
  193. package/dest/public/fixtures/opcode_spammer.d.ts +123 -0
  194. package/dest/public/fixtures/opcode_spammer.d.ts.map +1 -0
  195. package/dest/public/fixtures/opcode_spammer.js +1681 -0
  196. package/dest/public/fixtures/public_tx_simulation_tester.d.ts +55 -15
  197. package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
  198. package/dest/public/fixtures/public_tx_simulation_tester.js +138 -72
  199. package/dest/public/fixtures/simple_contract_data_source.d.ts +36 -0
  200. package/dest/public/fixtures/simple_contract_data_source.d.ts.map +1 -0
  201. package/dest/public/{avm/fixtures → fixtures}/simple_contract_data_source.js +31 -10
  202. package/dest/public/fixtures/token_test.d.ts +12 -0
  203. package/dest/public/fixtures/token_test.d.ts.map +1 -0
  204. package/dest/public/fixtures/token_test.js +96 -0
  205. package/dest/public/fixtures/utils.d.ts +18 -5
  206. package/dest/public/fixtures/utils.d.ts.map +1 -1
  207. package/dest/public/fixtures/utils.js +102 -59
  208. package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts +46 -0
  209. package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts.map +1 -0
  210. package/dest/public/fuzzing/avm_fuzzer_simulator.js +139 -0
  211. package/dest/public/fuzzing/avm_simulator_bin.d.ts +2 -0
  212. package/dest/public/fuzzing/avm_simulator_bin.d.ts.map +1 -0
  213. package/dest/public/fuzzing/avm_simulator_bin.js +100 -0
  214. package/dest/public/hinting_db_sources.d.ts +80 -0
  215. package/dest/public/hinting_db_sources.d.ts.map +1 -0
  216. package/dest/public/hinting_db_sources.js +353 -0
  217. package/dest/public/index.d.ts +6 -9
  218. package/dest/public/index.d.ts.map +1 -1
  219. package/dest/public/index.js +4 -7
  220. package/dest/public/public_db_sources.d.ts +52 -102
  221. package/dest/public/public_db_sources.d.ts.map +1 -1
  222. package/dest/public/public_db_sources.js +220 -193
  223. package/dest/public/public_errors.d.ts +12 -0
  224. package/dest/public/public_errors.d.ts.map +1 -0
  225. package/dest/public/public_errors.js +13 -0
  226. package/dest/public/public_processor/guarded_merkle_tree.d.ts +51 -0
  227. package/dest/public/public_processor/guarded_merkle_tree.d.ts.map +1 -0
  228. package/dest/public/public_processor/guarded_merkle_tree.js +111 -0
  229. package/dest/public/public_processor/public_processor.d.ts +26 -38
  230. package/dest/public/public_processor/public_processor.d.ts.map +1 -1
  231. package/dest/public/public_processor/public_processor.js +177 -121
  232. package/dest/public/public_processor/public_processor_metrics.d.ts +3 -3
  233. package/dest/public/public_processor/public_processor_metrics.d.ts.map +1 -1
  234. package/dest/public/public_processor/public_processor_metrics.js +1 -1
  235. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts +18 -0
  236. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts.map +1 -0
  237. package/dest/public/public_tx_simulator/contract_provider_for_cpp.js +98 -0
  238. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts +53 -0
  239. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts.map +1 -0
  240. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.js +131 -0
  241. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts +42 -0
  242. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts.map +1 -0
  243. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.js +86 -0
  244. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts +30 -0
  245. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts.map +1 -0
  246. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.js +171 -0
  247. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts +22 -0
  248. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts.map +1 -0
  249. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.js +52 -0
  250. package/dest/public/public_tx_simulator/factories.d.ts +13 -0
  251. package/dest/public/public_tx_simulator/factories.d.ts.map +1 -0
  252. package/dest/public/public_tx_simulator/factories.js +28 -0
  253. package/dest/public/public_tx_simulator/index.d.ts +8 -0
  254. package/dest/public/public_tx_simulator/index.d.ts.map +1 -0
  255. package/dest/public/public_tx_simulator/index.js +5 -0
  256. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts +31 -0
  257. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts.map +1 -0
  258. package/dest/public/public_tx_simulator/measured_public_tx_simulator.js +51 -0
  259. package/dest/public/public_tx_simulator/public_tx_context.d.ts +24 -31
  260. package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +1 -1
  261. package/dest/public/public_tx_simulator/public_tx_context.js +72 -92
  262. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +36 -58
  263. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
  264. package/dest/public/public_tx_simulator/public_tx_simulator.js +213 -205
  265. package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts +32 -0
  266. package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts.map +1 -0
  267. package/dest/public/public_tx_simulator/public_tx_simulator_interface.js +1 -0
  268. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts +21 -0
  269. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts.map +1 -0
  270. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.js +39 -0
  271. package/dest/public/side_effect_errors.d.ts +42 -2
  272. package/dest/public/side_effect_errors.d.ts.map +1 -1
  273. package/dest/public/side_effect_errors.js +70 -1
  274. package/dest/public/side_effect_trace.d.ts +22 -68
  275. package/dest/public/side_effect_trace.d.ts.map +1 -1
  276. package/dest/public/side_effect_trace.js +72 -122
  277. package/dest/public/side_effect_trace_interface.d.ts +13 -25
  278. package/dest/public/side_effect_trace_interface.d.ts.map +1 -1
  279. package/dest/public/state_manager/index.d.ts +2 -0
  280. package/dest/public/state_manager/index.d.ts.map +1 -0
  281. package/dest/public/state_manager/index.js +1 -0
  282. package/dest/public/{avm/journal → state_manager}/nullifiers.d.ts +4 -7
  283. package/dest/public/state_manager/nullifiers.d.ts.map +1 -0
  284. package/dest/public/{avm/journal → state_manager}/nullifiers.js +3 -8
  285. package/dest/public/{avm/journal → state_manager}/public_storage.d.ts +4 -4
  286. package/dest/public/state_manager/public_storage.d.ts.map +1 -0
  287. package/dest/public/{avm/journal → state_manager}/public_storage.js +1 -1
  288. package/dest/public/state_manager/state_manager.d.ts +164 -0
  289. package/dest/public/state_manager/state_manager.d.ts.map +1 -0
  290. package/dest/public/state_manager/state_manager.js +395 -0
  291. package/dest/public/test_executor_metrics.d.ts +55 -0
  292. package/dest/public/test_executor_metrics.d.ts.map +1 -0
  293. package/dest/public/test_executor_metrics.js +307 -0
  294. package/dest/public/unique_class_ids.d.ts +1 -1
  295. package/dest/public/unique_class_ids.d.ts.map +1 -1
  296. package/dest/public/utils.d.ts +3 -5
  297. package/dest/public/utils.d.ts.map +1 -1
  298. package/dest/public/utils.js +4 -21
  299. package/dest/server.d.ts +7 -4
  300. package/dest/server.d.ts.map +1 -1
  301. package/dest/server.js +5 -2
  302. package/dest/testing.d.ts +2 -0
  303. package/dest/testing.d.ts.map +1 -0
  304. package/dest/testing.js +1 -0
  305. package/package.json +39 -33
  306. package/src/client.ts +5 -3
  307. package/src/common/errors.ts +80 -45
  308. package/src/common/index.ts +0 -1
  309. package/src/private/acvm/acvm.ts +17 -32
  310. package/src/private/acvm/acvm_types.ts +1 -1
  311. package/src/private/acvm/deserialize.ts +36 -30
  312. package/src/private/acvm/index.ts +0 -1
  313. package/src/private/acvm/serialize.ts +64 -1
  314. package/src/private/{providers/acvm_native.ts → acvm_native.ts} +47 -24
  315. package/src/private/acvm_wasm.ts +72 -0
  316. package/src/private/acvm_wasm_with_blobs.ts +54 -0
  317. package/src/private/circuit_recording/circuit_recorder.ts +260 -0
  318. package/src/private/circuit_recording/file_circuit_recorder.ts +158 -0
  319. package/src/private/circuit_recording/memory_circuit_recorder.ts +11 -0
  320. package/src/private/circuit_recording/simulator_recorder_wrapper.ts +91 -0
  321. package/src/private/circuit_simulator.ts +90 -0
  322. package/src/private/{providers/factory.ts → factory.ts} +6 -6
  323. package/src/public/avm/avm_context.ts +5 -5
  324. package/src/public/avm/avm_contract_call_result.ts +18 -6
  325. package/src/public/avm/avm_execution_environment.ts +9 -2
  326. package/src/public/avm/avm_gas.ts +26 -38
  327. package/src/public/avm/avm_machine_state.ts +6 -1
  328. package/src/public/avm/avm_memory_types.ts +20 -7
  329. package/src/public/avm/avm_simulator.ts +50 -58
  330. package/src/public/avm/avm_simulator_interface.ts +8 -0
  331. package/src/public/avm/errors.ts +20 -75
  332. package/src/public/avm/fixtures/avm_simulation_tester.ts +33 -22
  333. package/src/public/avm/fixtures/base_avm_simulation_tester.ts +46 -13
  334. package/src/public/avm/fixtures/initializers.ts +102 -0
  335. package/src/public/avm/fixtures/utils.ts +151 -0
  336. package/src/public/avm/index.ts +0 -2
  337. package/src/public/avm/opcodes/accrued_substate.ts +64 -29
  338. package/src/public/avm/opcodes/addressing_mode.ts +56 -32
  339. package/src/public/avm/opcodes/arithmetic.ts +37 -3
  340. package/src/public/avm/opcodes/bitwise.ts +33 -29
  341. package/src/public/avm/opcodes/comparators.ts +6 -3
  342. package/src/public/avm/opcodes/contract.ts +10 -7
  343. package/src/public/avm/opcodes/control_flow.ts +19 -10
  344. package/src/public/avm/opcodes/conversion.ts +27 -3
  345. package/src/public/avm/opcodes/ec_add.ts +11 -8
  346. package/src/public/avm/opcodes/environment_getters.ts +27 -22
  347. package/src/public/avm/opcodes/external_calls.ts +61 -29
  348. package/src/public/avm/opcodes/hashing.ts +38 -12
  349. package/src/public/avm/opcodes/instruction.ts +31 -21
  350. package/src/public/avm/opcodes/memory.ts +71 -32
  351. package/src/public/avm/opcodes/misc.ts +60 -18
  352. package/src/public/avm/opcodes/storage.ts +22 -6
  353. package/src/public/avm/revert_reason.ts +58 -0
  354. package/src/public/avm/serialization/buffer_cursor.ts +4 -1
  355. package/src/public/avm/serialization/bytecode_serialization.ts +89 -80
  356. package/src/public/avm/serialization/instruction_serialization.ts +75 -34
  357. package/src/public/avm/test_utils.ts +25 -42
  358. package/src/public/contracts_db_checkpoint.ts +41 -0
  359. package/src/public/db_interfaces.ts +76 -0
  360. package/src/public/debug_fn_name.ts +50 -0
  361. package/src/public/executor_metrics.ts +56 -6
  362. package/src/public/executor_metrics_interface.ts +15 -0
  363. package/src/public/fixtures/amm_test.ts +331 -0
  364. package/src/public/fixtures/bulk_test.ts +169 -0
  365. package/src/public/fixtures/custom_bytecode_tester.ts +83 -0
  366. package/src/public/fixtures/custom_bytecode_tests.ts +219 -0
  367. package/src/public/fixtures/index.ts +13 -0
  368. package/src/public/fixtures/minimal_public_tx.ts +26 -0
  369. package/src/public/fixtures/opcode_spammer.ts +1638 -0
  370. package/src/public/fixtures/public_tx_simulation_tester.ts +223 -114
  371. package/src/public/{avm/fixtures → fixtures}/simple_contract_data_source.ts +37 -20
  372. package/src/public/fixtures/token_test.ts +148 -0
  373. package/src/public/fixtures/utils.ts +141 -69
  374. package/src/public/fuzzing/avm_fuzzer_simulator.ts +240 -0
  375. package/src/public/fuzzing/avm_simulator_bin.ts +140 -0
  376. package/src/public/hinting_db_sources.ts +607 -0
  377. package/src/public/index.ts +11 -8
  378. package/src/public/public_db_sources.ts +279 -259
  379. package/src/public/public_errors.ts +14 -0
  380. package/src/public/public_processor/guarded_merkle_tree.ts +158 -0
  381. package/src/public/public_processor/public_processor.ts +242 -178
  382. package/src/public/public_processor/public_processor_metrics.ts +2 -2
  383. package/src/public/public_tx_simulator/contract_provider_for_cpp.ts +121 -0
  384. package/src/public/public_tx_simulator/cpp_public_tx_simulator.ts +200 -0
  385. package/src/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.ts +132 -0
  386. package/src/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.ts +237 -0
  387. package/src/public/public_tx_simulator/dumping_cpp_public_tx_simulator.ts +81 -0
  388. package/src/public/public_tx_simulator/factories.ts +41 -0
  389. package/src/public/public_tx_simulator/index.ts +7 -0
  390. package/src/public/public_tx_simulator/measured_public_tx_simulator.ts +105 -0
  391. package/src/public/public_tx_simulator/public_tx_context.ts +168 -195
  392. package/src/public/public_tx_simulator/public_tx_simulator.ts +302 -260
  393. package/src/public/public_tx_simulator/public_tx_simulator_interface.ts +33 -0
  394. package/src/public/public_tx_simulator/telemetry_public_tx_simulator.ts +63 -0
  395. package/src/public/side_effect_errors.ts +91 -1
  396. package/src/public/side_effect_trace.ts +95 -321
  397. package/src/public/side_effect_trace_interface.ts +11 -59
  398. package/src/public/state_manager/index.ts +1 -0
  399. package/src/public/{avm/journal → state_manager}/nullifiers.ts +6 -12
  400. package/src/public/{avm/journal → state_manager}/public_storage.ts +3 -3
  401. package/src/public/state_manager/state_manager.ts +560 -0
  402. package/src/public/test_executor_metrics.ts +397 -0
  403. package/src/public/utils.ts +5 -21
  404. package/src/server.ts +6 -3
  405. package/src/testing.ts +1 -0
  406. package/dest/common/db_interfaces.d.ts +0 -80
  407. package/dest/common/db_interfaces.d.ts.map +0 -1
  408. package/dest/common/db_interfaces.js +0 -1
  409. package/dest/common/debug_fn_name.d.ts +0 -5
  410. package/dest/common/debug_fn_name.d.ts.map +0 -1
  411. package/dest/common/debug_fn_name.js +0 -6
  412. package/dest/common/message_load_oracle_inputs.d.ts +0 -15
  413. package/dest/common/message_load_oracle_inputs.d.ts.map +0 -1
  414. package/dest/common/message_load_oracle_inputs.js +0 -15
  415. package/dest/private/acvm/oracle/index.d.ts +0 -14
  416. package/dest/private/acvm/oracle/index.d.ts.map +0 -1
  417. package/dest/private/acvm/oracle/index.js +0 -2
  418. package/dest/private/acvm/oracle/oracle.d.ts +0 -49
  419. package/dest/private/acvm/oracle/oracle.d.ts.map +0 -1
  420. package/dest/private/acvm/oracle/oracle.js +0 -263
  421. package/dest/private/acvm/oracle/typed_oracle.d.ts +0 -83
  422. package/dest/private/acvm/oracle/typed_oracle.d.ts.map +0 -1
  423. package/dest/private/acvm/oracle/typed_oracle.js +0 -132
  424. package/dest/private/execution_data_provider.d.ts +0 -261
  425. package/dest/private/execution_data_provider.d.ts.map +0 -1
  426. package/dest/private/execution_data_provider.js +0 -14
  427. package/dest/private/execution_note_cache.d.ts +0 -93
  428. package/dest/private/execution_note_cache.d.ts.map +0 -1
  429. package/dest/private/execution_note_cache.js +0 -180
  430. package/dest/private/hashed_values_cache.d.ts +0 -28
  431. package/dest/private/hashed_values_cache.d.ts.map +0 -1
  432. package/dest/private/hashed_values_cache.js +0 -46
  433. package/dest/private/index.d.ts +0 -13
  434. package/dest/private/index.d.ts.map +0 -1
  435. package/dest/private/index.js +0 -12
  436. package/dest/private/pick_notes.d.ts +0 -85
  437. package/dest/private/pick_notes.d.ts.map +0 -1
  438. package/dest/private/pick_notes.js +0 -51
  439. package/dest/private/private_execution.d.ts +0 -25
  440. package/dest/private/private_execution.d.ts.map +0 -1
  441. package/dest/private/private_execution.js +0 -92
  442. package/dest/private/private_execution_oracle.d.ts +0 -215
  443. package/dest/private/private_execution_oracle.d.ts.map +0 -1
  444. package/dest/private/private_execution_oracle.js +0 -382
  445. package/dest/private/providers/acvm_native.d.ts +0 -40
  446. package/dest/private/providers/acvm_native.d.ts.map +0 -1
  447. package/dest/private/providers/acvm_wasm.d.ts +0 -15
  448. package/dest/private/providers/acvm_wasm.d.ts.map +0 -1
  449. package/dest/private/providers/acvm_wasm_with_blobs.d.ts +0 -19
  450. package/dest/private/providers/acvm_wasm_with_blobs.d.ts.map +0 -1
  451. package/dest/private/providers/acvm_wasm_with_blobs.js +0 -32
  452. package/dest/private/providers/factory.d.ts +0 -12
  453. package/dest/private/providers/factory.d.ts.map +0 -1
  454. package/dest/private/providers/simulation_provider.d.ts +0 -19
  455. package/dest/private/providers/simulation_provider.d.ts.map +0 -1
  456. package/dest/private/providers/simulation_provider.js +0 -24
  457. package/dest/private/simulator.d.ts +0 -34
  458. package/dest/private/simulator.d.ts.map +0 -1
  459. package/dest/private/simulator.js +0 -76
  460. package/dest/private/unconstrained_execution.d.ts +0 -10
  461. package/dest/private/unconstrained_execution.d.ts.map +0 -1
  462. package/dest/private/unconstrained_execution.js +0 -27
  463. package/dest/private/unconstrained_execution_oracle.d.ts +0 -161
  464. package/dest/private/unconstrained_execution_oracle.d.ts.map +0 -1
  465. package/dest/private/unconstrained_execution_oracle.js +0 -258
  466. package/dest/public/avm/bytecode_utils.d.ts +0 -5
  467. package/dest/public/avm/bytecode_utils.d.ts.map +0 -1
  468. package/dest/public/avm/bytecode_utils.js +0 -17
  469. package/dest/public/avm/fixtures/index.d.ts +0 -84
  470. package/dest/public/avm/fixtures/index.d.ts.map +0 -1
  471. package/dest/public/avm/fixtures/index.js +0 -175
  472. package/dest/public/avm/fixtures/simple_contract_data_source.d.ts +0 -35
  473. package/dest/public/avm/fixtures/simple_contract_data_source.d.ts.map +0 -1
  474. package/dest/public/avm/journal/index.d.ts +0 -2
  475. package/dest/public/avm/journal/index.d.ts.map +0 -1
  476. package/dest/public/avm/journal/index.js +0 -1
  477. package/dest/public/avm/journal/journal.d.ts +0 -209
  478. package/dest/public/avm/journal/journal.d.ts.map +0 -1
  479. package/dest/public/avm/journal/journal.js +0 -486
  480. package/dest/public/avm/journal/nullifiers.d.ts.map +0 -1
  481. package/dest/public/avm/journal/public_storage.d.ts.map +0 -1
  482. package/dest/public/bytecode_errors.d.ts +0 -4
  483. package/dest/public/bytecode_errors.d.ts.map +0 -1
  484. package/dest/public/bytecode_errors.js +0 -6
  485. package/dest/public/execution.d.ts +0 -108
  486. package/dest/public/execution.d.ts.map +0 -1
  487. package/dest/public/execution.js +0 -9
  488. package/dest/public/tx_contract_cache.d.ts +0 -41
  489. package/dest/public/tx_contract_cache.d.ts.map +0 -1
  490. package/dest/public/tx_contract_cache.js +0 -49
  491. package/dest/test/utils.d.ts +0 -13
  492. package/dest/test/utils.d.ts.map +0 -1
  493. package/dest/test/utils.js +0 -22
  494. package/src/common/db_interfaces.ts +0 -94
  495. package/src/common/debug_fn_name.ts +0 -18
  496. package/src/common/message_load_oracle_inputs.ts +0 -15
  497. package/src/private/acvm/oracle/index.ts +0 -16
  498. package/src/private/acvm/oracle/oracle.ts +0 -455
  499. package/src/private/acvm/oracle/typed_oracle.ts +0 -259
  500. package/src/private/execution_data_provider.ts +0 -323
  501. package/src/private/execution_note_cache.ts +0 -217
  502. package/src/private/hashed_values_cache.ts +0 -55
  503. package/src/private/index.ts +0 -16
  504. package/src/private/pick_notes.ts +0 -141
  505. package/src/private/private_execution.ts +0 -151
  506. package/src/private/private_execution_oracle.ts +0 -614
  507. package/src/private/providers/acvm_wasm.ts +0 -63
  508. package/src/private/providers/acvm_wasm_with_blobs.ts +0 -50
  509. package/src/private/providers/simulation_provider.ts +0 -45
  510. package/src/private/simulator.ts +0 -147
  511. package/src/private/unconstrained_execution.ts +0 -50
  512. package/src/private/unconstrained_execution_oracle.ts +0 -373
  513. package/src/public/avm/bytecode_utils.ts +0 -17
  514. package/src/public/avm/fixtures/index.ts +0 -296
  515. package/src/public/avm/journal/index.ts +0 -1
  516. package/src/public/avm/journal/journal.ts +0 -742
  517. package/src/public/avm/opcodes/.eslintrc.cjs +0 -8
  518. package/src/public/bytecode_errors.ts +0 -6
  519. package/src/public/execution.ts +0 -140
  520. package/src/public/tx_contract_cache.ts +0 -69
  521. package/src/test/utils.ts +0 -36
@@ -4,49 +4,51 @@ import { Addressing } from './addressing_mode.js';
4
4
  import { Instruction } from './instruction.js';
5
5
  class ExternalCall extends Instruction {
6
6
  indirect;
7
- gasOffset;
7
+ l2GasOffset;
8
+ daGasOffset;
8
9
  addrOffset;
9
- argsOffset;
10
10
  argsSizeOffset;
11
+ argsOffset;
11
12
  // Informs (de)serialization. See Instruction.deserialize.
12
13
  static wireFormat = [
13
14
  OperandType.UINT8,
14
- OperandType.UINT8,
15
+ OperandType.UINT16,
16
+ OperandType.UINT16,
15
17
  OperandType.UINT16,
16
18
  OperandType.UINT16,
17
19
  OperandType.UINT16,
18
20
  OperandType.UINT16
19
21
  ];
20
- constructor(indirect, gasOffset, addrOffset, argsOffset, argsSizeOffset){
21
- super(), this.indirect = indirect, this.gasOffset = gasOffset, this.addrOffset = addrOffset, this.argsOffset = argsOffset, this.argsSizeOffset = argsSizeOffset;
22
+ constructor(indirect, l2GasOffset, daGasOffset, addrOffset, argsSizeOffset, argsOffset){
23
+ super(), this.indirect = indirect, this.l2GasOffset = l2GasOffset, this.daGasOffset = daGasOffset, this.addrOffset = addrOffset, this.argsSizeOffset = argsSizeOffset, this.argsOffset = argsOffset;
22
24
  }
23
25
  async execute(context) {
24
26
  const memory = context.machineState.memory;
27
+ const addressing = Addressing.fromWire(this.indirect);
28
+ context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
25
29
  const operands = [
26
- this.gasOffset,
30
+ this.l2GasOffset,
31
+ this.daGasOffset,
27
32
  this.addrOffset,
28
- this.argsOffset,
29
- this.argsSizeOffset
33
+ this.argsSizeOffset,
34
+ this.argsOffset
30
35
  ];
31
- const addressing = Addressing.fromWire(this.indirect, operands.length);
32
- const [gasOffset, addrOffset, argsOffset, argsSizeOffset] = addressing.resolve(operands, memory);
33
- memory.checkTags(TypeTag.FIELD, gasOffset, gasOffset + 1);
36
+ const [l2GasOffset, daGasOffset, addrOffset, argsSizeOffset, argsOffset] = addressing.resolve(operands, memory);
37
+ memory.checkTags(TypeTag.UINT32, l2GasOffset);
38
+ memory.checkTags(TypeTag.UINT32, daGasOffset);
34
39
  memory.checkTag(TypeTag.FIELD, addrOffset);
35
40
  memory.checkTag(TypeTag.UINT32, argsSizeOffset);
36
41
  const calldataSize = memory.get(argsSizeOffset).toNumber();
37
42
  const calldata = memory.getSlice(argsOffset, calldataSize).map((f)=>f.toFr());
38
- memory.checkTagsRange(TypeTag.FIELD, argsOffset, calldataSize);
39
43
  const callAddress = memory.getAs(addrOffset);
40
44
  // If we are already in a static call, we propagate the environment.
41
45
  const callType = context.environment.isStaticCall ? 'STATICCALL' : this.type;
42
- // First we consume the gas for this operation.
43
- context.machineState.consumeGas(this.gasCost(calldataSize));
44
- // Then we consume the gas allocated for the nested call. The excess will be refunded later.
46
+ // We consume the gas allocated for the nested call. The excess will be refunded later.
45
47
  // Gas allocation is capped by the amount of gas left in the current context.
46
48
  // We have to do some dancing here because the gas allocation is a field,
47
49
  // but in the machine state we track gas as a number.
48
- const allocatedL2Gas = Number(BigIntMin(memory.get(gasOffset).toBigInt(), BigInt(context.machineState.l2GasLeft)));
49
- const allocatedDaGas = Number(BigIntMin(memory.get(gasOffset + 1).toBigInt(), BigInt(context.machineState.daGasLeft)));
50
+ const allocatedL2Gas = Number(BigIntMin(memory.get(l2GasOffset).toBigInt(), BigInt(context.machineState.l2GasLeft)));
51
+ const allocatedDaGas = Number(BigIntMin(memory.get(daGasOffset).toBigInt(), BigInt(context.machineState.daGasLeft)));
50
52
  const allocatedGas = {
51
53
  l2Gas: allocatedL2Gas,
52
54
  daGas: allocatedDaGas
@@ -62,6 +64,8 @@ class ExternalCall extends Instruction {
62
64
  context.machineState.nestedReturndata = fullReturnData;
63
65
  // Track the success status directly
64
66
  context.machineState.nestedCallSuccess = success;
67
+ // Account for all instructions executed in the nested call
68
+ context.machineState.instrCounter += nestedCallResults.totalInstructions;
65
69
  // If the nested call reverted, we try to save the reason and the revert data.
66
70
  // This will be used by the caller to try to reconstruct the call stack.
67
71
  // This is only a heuristic and may not always work. It is intended to work
@@ -113,10 +117,11 @@ export class SuccessCopy extends Instruction {
113
117
  }
114
118
  async execute(context) {
115
119
  const memory = context.machineState.memory;
120
+ const addressing = Addressing.fromWire(this.indirect);
121
+ context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
116
122
  const operands = [
117
123
  this.dstOffset
118
124
  ];
119
- const addressing = Addressing.fromWire(this.indirect, operands.length);
120
125
  const [dstOffset] = addressing.resolve(operands, memory);
121
126
  // Use the direct success tracking property
122
127
  const success = context.machineState.nestedCallSuccess;
@@ -126,8 +131,8 @@ export class SuccessCopy extends Instruction {
126
131
  }
127
132
  export class Return extends Instruction {
128
133
  indirect;
129
- returnOffset;
130
134
  returnSizeOffset;
135
+ returnOffset;
131
136
  static type = 'RETURN';
132
137
  static opcode = Opcode.RETURN;
133
138
  // Informs (de)serialization. See Instruction.deserialize.
@@ -137,20 +142,20 @@ export class Return extends Instruction {
137
142
  OperandType.UINT16,
138
143
  OperandType.UINT16
139
144
  ];
140
- constructor(indirect, returnOffset, returnSizeOffset){
141
- super(), this.indirect = indirect, this.returnOffset = returnOffset, this.returnSizeOffset = returnSizeOffset;
145
+ constructor(indirect, returnSizeOffset, returnOffset){
146
+ super(), this.indirect = indirect, this.returnSizeOffset = returnSizeOffset, this.returnOffset = returnOffset;
142
147
  }
143
148
  async execute(context) {
144
149
  const memory = context.machineState.memory;
150
+ const addressing = Addressing.fromWire(this.indirect);
151
+ context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
145
152
  const operands = [
146
- this.returnOffset,
147
- this.returnSizeOffset
153
+ this.returnSizeOffset,
154
+ this.returnOffset
148
155
  ];
149
- const addressing = Addressing.fromWire(this.indirect, operands.length);
150
- const [returnOffset, returnSizeOffset] = addressing.resolve(operands, memory);
156
+ const [returnSizeOffset, returnOffset] = addressing.resolve(operands, memory);
151
157
  memory.checkTag(TypeTag.UINT32, returnSizeOffset);
152
158
  const returnSize = memory.get(returnSizeOffset).toNumber();
153
- context.machineState.consumeGas(this.gasCost(returnSize));
154
159
  const output = memory.getSlice(returnOffset, returnSize).map((word)=>word.toFr());
155
160
  context.machineState.return(output);
156
161
  }
@@ -160,8 +165,8 @@ export class Return extends Instruction {
160
165
  }
161
166
  export class Revert extends Instruction {
162
167
  indirect;
163
- returnOffset;
164
168
  retSizeOffset;
169
+ returnOffset;
165
170
  static type = 'REVERT';
166
171
  static opcode = Opcode.REVERT_8;
167
172
  static wireFormat8 = [
@@ -176,20 +181,20 @@ export class Revert extends Instruction {
176
181
  OperandType.UINT16,
177
182
  OperandType.UINT16
178
183
  ];
179
- constructor(indirect, returnOffset, retSizeOffset){
180
- super(), this.indirect = indirect, this.returnOffset = returnOffset, this.retSizeOffset = retSizeOffset;
184
+ constructor(indirect, retSizeOffset, returnOffset){
185
+ super(), this.indirect = indirect, this.retSizeOffset = retSizeOffset, this.returnOffset = returnOffset;
181
186
  }
182
187
  async execute(context) {
183
188
  const memory = context.machineState.memory;
189
+ const addressing = Addressing.fromWire(this.indirect);
190
+ context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
184
191
  const operands = [
185
- this.returnOffset,
186
- this.retSizeOffset
192
+ this.retSizeOffset,
193
+ this.returnOffset
187
194
  ];
188
- const addressing = Addressing.fromWire(this.indirect, operands.length);
189
- const [returnOffset, retSizeOffset] = addressing.resolve(operands, memory);
195
+ const [retSizeOffset, returnOffset] = addressing.resolve(operands, memory);
190
196
  memory.checkTag(TypeTag.UINT32, retSizeOffset);
191
197
  const retSize = memory.get(retSizeOffset).toNumber();
192
- context.machineState.consumeGas(this.gasCost(retSize));
193
198
  const output = memory.getSlice(returnOffset, retSize).map((word)=>word.toFr());
194
199
  context.machineState.revert(output);
195
200
  }
@@ -7,7 +7,7 @@ export declare class Poseidon2 extends Instruction {
7
7
  private outputStateOffset;
8
8
  static type: string;
9
9
  static readonly opcode: Opcode;
10
- static readonly stateSize = 4;
10
+ static readonly stateSize: number;
11
11
  static readonly wireFormat: OperandType[];
12
12
  constructor(indirect: number, inputStateOffset: number, outputStateOffset: number);
13
13
  execute(context: AvmContext): Promise<void>;
@@ -33,4 +33,4 @@ export declare class Sha256Compression extends Instruction {
33
33
  constructor(indirect: number, outputOffset: number, stateOffset: number, inputsOffset: number);
34
34
  execute(context: AvmContext): Promise<void>;
35
35
  }
36
- //# sourceMappingURL=hashing.d.ts.map
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzaGluZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3B1YmxpYy9hdm0vb3Bjb2Rlcy9oYXNoaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXBELE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFFcEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRS9DLHFCQUFhLFNBQVUsU0FBUSxXQUFXO0lBY3RDLE9BQU8sQ0FBQyxRQUFRO0lBQ2hCLE9BQU8sQ0FBQyxnQkFBZ0I7SUFDeEIsT0FBTyxDQUFDLGlCQUFpQjtJQWYzQixNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBZTtJQUNsQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQW9CO0lBQ2xELE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxTQUFLO0lBRzlCLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSxDQUt2QztJQUVGLFlBQ1UsUUFBUSxFQUFFLE1BQU0sRUFDaEIsZ0JBQWdCLEVBQUUsTUFBTSxFQUN4QixpQkFBaUIsRUFBRSxNQUFNLEVBR2xDO0lBRVksT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQW9CdkQ7Q0FDRjtBQUVELHFCQUFhLFdBQVksU0FBUSxXQUFXO0lBYXhDLE9BQU8sQ0FBQyxRQUFRO0lBQ2hCLE9BQU8sQ0FBQyxTQUFTO0lBQ2pCLE9BQU8sQ0FBQyxXQUFXO0lBZHJCLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFpQjtJQUNwQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQXNCO0lBR3BELE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSxDQUt2QztJQUVGLFlBQ1UsUUFBUSxFQUFFLE1BQU0sRUFDaEIsU0FBUyxFQUFFLE1BQU0sRUFDakIsV0FBVyxFQUFFLE1BQU0sRUFHNUI7SUFHWSxPQUFPLENBQUMsT0FBTyxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBbUJ2RDtDQUNGO0FBRUQscUJBQWEsaUJBQWtCLFNBQVEsV0FBVztJQWM5QyxPQUFPLENBQUMsUUFBUTtJQUNoQixPQUFPLENBQUMsWUFBWTtJQUNwQixPQUFPLENBQUMsV0FBVztJQUNuQixPQUFPLENBQUMsWUFBWTtJQWhCdEIsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQXVCO0lBQzFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBNEI7SUFHMUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLENBTXZDO0lBRUYsWUFDVSxRQUFRLEVBQUUsTUFBTSxFQUNoQixZQUFZLEVBQUUsTUFBTSxFQUNwQixXQUFXLEVBQUUsTUFBTSxFQUNuQixZQUFZLEVBQUUsTUFBTSxFQUc3QjtJQUVZLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0E4QnZEO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"hashing.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/hashing.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBAAa,SAAU,SAAQ,WAAW;IAa5B,OAAO,CAAC,QAAQ;IAAU,OAAO,CAAC,gBAAgB;IAAU,OAAO,CAAC,iBAAiB;IAZjG,MAAM,CAAC,IAAI,EAAE,MAAM,CAAe;IAClC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAoB;IAClD,MAAM,CAAC,QAAQ,CAAC,SAAS,KAAK;IAG9B,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAKvC;gBAEkB,QAAQ,EAAE,MAAM,EAAU,gBAAgB,EAAE,MAAM,EAAU,iBAAiB,EAAE,MAAM;IAI5F,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAiBzD;AAED,qBAAa,WAAY,SAAQ,WAAW;IAY9B,OAAO,CAAC,QAAQ;IAAU,OAAO,CAAC,SAAS;IAAU,OAAO,CAAC,WAAW;IAXpF,MAAM,CAAC,IAAI,EAAE,MAAM,CAAiB;IACpC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAsB;IAGpD,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAKvC;gBAEkB,QAAQ,EAAE,MAAM,EAAU,SAAS,EAAE,MAAM,EAAU,WAAW,EAAE,MAAM;IAK/E,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAgBzD;AAED,qBAAa,iBAAkB,SAAQ,WAAW;IAc9C,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,YAAY;IAhBtB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAuB;IAC1C,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAA4B;IAG1D,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAMvC;gBAGQ,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM;IAKjB,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAuBzD"}
1
+ {"version":3,"file":"hashing.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/hashing.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBAAa,SAAU,SAAQ,WAAW;IActC,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,iBAAiB;IAf3B,MAAM,CAAC,IAAI,EAAE,MAAM,CAAe;IAClC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAoB;IAClD,MAAM,CAAC,QAAQ,CAAC,SAAS,SAAK;IAG9B,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAKvC;IAEF,YACU,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,iBAAiB,EAAE,MAAM,EAGlC;IAEY,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBvD;CACF;AAED,qBAAa,WAAY,SAAQ,WAAW;IAaxC,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,WAAW;IAdrB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAiB;IACpC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAsB;IAGpD,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAKvC;IAEF,YACU,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EAG5B;IAGY,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBvD;CACF;AAED,qBAAa,iBAAkB,SAAQ,WAAW;IAc9C,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,YAAY;IAhBtB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAuB;IAC1C,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAA4B;IAG1D,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAMvC;IAEF,YACU,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EAG7B;IAEY,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA8BvD;CACF"}
@@ -1,4 +1,6 @@
1
- import { keccakf1600, poseidon2Permutation, sha256Compression } from '@aztec/foundation/crypto';
1
+ import { keccakf1600 } from '@aztec/foundation/crypto/keccak';
2
+ import { poseidon2Permutation } from '@aztec/foundation/crypto/poseidon';
3
+ import { sha256Compression } from '@aztec/foundation/crypto/sha256';
2
4
  import { Field, TypeTag, Uint32, Uint64 } from '../avm_memory_types.js';
3
5
  import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
4
6
  import { Addressing } from './addressing_mode.js';
@@ -22,12 +24,12 @@ export class Poseidon2 extends Instruction {
22
24
  }
23
25
  async execute(context) {
24
26
  const memory = context.machineState.memory;
25
- context.machineState.consumeGas(this.gasCost());
27
+ const addressing = Addressing.fromWire(this.indirect);
28
+ context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
26
29
  const operands = [
27
30
  this.inputStateOffset,
28
31
  this.outputStateOffset
29
32
  ];
30
- const addressing = Addressing.fromWire(this.indirect, operands.length);
31
33
  const [inputOffset, outputOffset] = addressing.resolve(operands, memory);
32
34
  const inputState = memory.getSlice(inputOffset, Poseidon2.stateSize);
33
35
  memory.checkTagsRange(TypeTag.FIELD, inputOffset, Poseidon2.stateSize);
@@ -55,13 +57,13 @@ export class KeccakF1600 extends Instruction {
55
57
  async execute(context) {
56
58
  const inputSize = 25;
57
59
  const memory = context.machineState.memory;
60
+ const addressing = Addressing.fromWire(this.indirect);
61
+ context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
58
62
  const operands = [
59
63
  this.dstOffset,
60
64
  this.inputOffset
61
65
  ];
62
- const addressing = Addressing.fromWire(this.indirect, operands.length);
63
66
  const [dstOffset, inputOffset] = addressing.resolve(operands, memory);
64
- context.machineState.consumeGas(this.gasCost());
65
67
  const stateData = memory.getSlice(inputOffset, inputSize).map((word)=>word.toBigInt());
66
68
  memory.checkTagsRange(TypeTag.UINT64, inputOffset, inputSize);
67
69
  const updatedState = keccakf1600(stateData);
@@ -91,20 +93,23 @@ export class Sha256Compression extends Instruction {
91
93
  const STATE_SIZE = 8;
92
94
  const INPUTS_SIZE = 16;
93
95
  const memory = context.machineState.memory;
96
+ const addressing = Addressing.fromWire(this.indirect);
97
+ context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
94
98
  const operands = [
95
99
  this.outputOffset,
96
100
  this.stateOffset,
97
101
  this.inputsOffset
98
102
  ];
99
- const addressing = Addressing.fromWire(this.indirect, operands.length);
100
103
  const [outputOffset, stateOffset, inputsOffset] = addressing.resolve(operands, memory);
101
104
  // Note: size of output is same as size of state
102
- context.machineState.consumeGas(this.gasCost());
103
- const inputs = Uint32Array.from(memory.getSlice(inputsOffset, INPUTS_SIZE).map((word)=>word.toNumber()));
104
- const state = Uint32Array.from(memory.getSlice(stateOffset, STATE_SIZE).map((word)=>word.toNumber()));
105
+ const inputs = memory.getSlice(inputsOffset, INPUTS_SIZE).map((word)=>word.toBigInt());
106
+ const state = memory.getSlice(stateOffset, STATE_SIZE).map((word)=>word.toBigInt());
105
107
  memory.checkTagsRange(TypeTag.UINT32, inputsOffset, INPUTS_SIZE);
106
108
  memory.checkTagsRange(TypeTag.UINT32, stateOffset, STATE_SIZE);
107
- const output = sha256Compression(state, inputs);
109
+ // At this point both state and inputs are Uint32Array-compatible
110
+ const inputsArray = new Uint32Array(inputs.map((i)=>Number(i)));
111
+ const stateArray = new Uint32Array(state.map((i)=>Number(i)));
112
+ const output = sha256Compression(stateArray, inputsArray);
108
113
  // Conversion required from Uint32Array to Uint32[] (can't map directly, need `...`)
109
114
  const res = [
110
115
  ...output
@@ -13,4 +13,4 @@ export * from './environment_getters.js';
13
13
  export * from './accrued_substate.js';
14
14
  export * from './hashing.js';
15
15
  export * from './ec_add.js';
16
- //# sourceMappingURL=index.d.ts.map
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wdWJsaWMvYXZtL29wY29kZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsYUFBYSxDQUFDIn0=
@@ -1,9 +1,7 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
1
+ import type { Bufferable } from '@aztec/foundation/serialize';
3
2
  import type { AvmContext } from '../avm_context.js';
4
3
  import { type Gas } from '../avm_gas.js';
5
4
  import type { BufferCursor } from '../serialization/buffer_cursor.js';
6
- import type { Serializable } from '../serialization/bytecode_serialization.js';
7
5
  import { Opcode, type OperandType } from '../serialization/instruction_serialization.js';
8
6
  type InstructionConstructor = {
9
7
  new (...args: any[]): Instruction;
@@ -29,18 +27,18 @@ export declare abstract class Instruction {
29
27
  * @returns Thee string representation.
30
28
  */
31
29
  toString(): string;
32
- static deserialize(this: InstructionConstructor & {
30
+ static fromBuffer(this: InstructionConstructor & {
33
31
  wireFormat: OperandType[];
34
32
  as: any;
35
33
  }, buf: BufferCursor | Buffer): Instruction;
36
- serialize(): Buffer;
34
+ toBuffer(): Buffer;
37
35
  /**
38
36
  * Returns a new instruction instance that can be serialized with the given opcode and wire format.
39
37
  * @param opcode The opcode of the instruction.
40
38
  * @param wireFormat The wire format of the instruction.
41
39
  * @returns The new instruction instance.
42
40
  */
43
- as(opcode: Opcode, wireFormat: OperandType[]): Instruction & Serializable;
41
+ as(opcode: Opcode, wireFormat: OperandType[]): Instruction & Bufferable;
44
42
  /**
45
43
  * Returns a new instruction class that can be deserialized with the given opcode and wire format.
46
44
  * @param opcode The opcode of the instruction.
@@ -48,13 +46,19 @@ export declare abstract class Instruction {
48
46
  * @returns The new instruction class.
49
47
  */
50
48
  static as(this: InstructionConstructor, wireFormat: OperandType[]): InstructionConstructor & {
51
- deserialize: (buf: BufferCursor | Buffer) => Instruction;
49
+ fromBuffer: (buf: Buffer<ArrayBufferLike> | BufferCursor) => Instruction;
52
50
  };
53
51
  /**
54
- * Computes gas cost for the instruction based on its base cost and memory operations.
55
- * @returns Gas cost.
52
+ * Returns the base gas cost for the instruction.
53
+ * @returns The base gas cost.
56
54
  */
57
- protected gasCost(dynMultiplier?: number): Gas;
55
+ protected baseGasCost(indirectOperandsCount: number, relativeOperandsCount: number): Gas;
56
+ /**
57
+ * Computes the dynamic gas cost for the instruction
58
+ * @param dynMultiplier - The multiplier for the dynamic gas cost.
59
+ * @returns The dynamic gas cost.
60
+ */
61
+ protected dynamicGasCost(dynMultiplier?: number): Gas;
58
62
  /**
59
63
  * Returns the stringified type of the instruction.
60
64
  * Instruction sub-classes should have a static `type` property.
@@ -67,4 +71,4 @@ export declare abstract class Instruction {
67
71
  get opcode(): Opcode;
68
72
  }
69
73
  export {};
70
- //# sourceMappingURL=instruction.d.ts.map
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1Y3Rpb24uZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wdWJsaWMvYXZtL29wY29kZXMvaW5zdHJ1Y3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFJOUQsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLEtBQUssR0FBRyxFQUE0RSxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssV0FBVyxFQUE0QixNQUFNLCtDQUErQyxDQUFDO0FBRW5ILEtBQUssc0JBQXNCLEdBQUc7SUFDNUIsS0FBSyxHQUFHLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxXQUFXLENBQUM7Q0FDbkMsQ0FBQztBQUVGOzs7R0FHRztBQUNILDhCQUFzQixXQUFXO0lBQy9COzs7O09BSUc7SUFDSCxTQUFnQixPQUFPLENBQUMsT0FBTyxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFNUQ7O09BRUc7SUFDSSxTQUFTLElBQUksT0FBTyxDQUUxQjtJQUVEOzs7O09BSUc7SUFDSSxRQUFRLElBQUksTUFBTSxDQVN4QjtJQUdELE9BQWMsVUFBVSxDQUN0QixJQUFJLEVBQUUsc0JBQXNCLEdBQUc7UUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFBQyxFQUFFLEVBQUUsR0FBRyxDQUFBO0tBQUUsRUFDckUsR0FBRyxFQUFFLFlBQVksR0FBRyxNQUFNLEdBQ3pCLFdBQVcsQ0FFYjtJQUdNLFFBQVEsSUFBSSxNQUFNLENBS3hCO0lBRUQ7Ozs7O09BS0c7SUFDSSxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEdBQUcsV0FBVyxHQUFHLFVBQVUsQ0FPN0U7SUFFRDs7Ozs7T0FLRztJQUNILE9BQWMsRUFBRSxDQUFDLElBQUksRUFBRSxzQkFBc0IsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFOztNQVF2RTtJQUVEOzs7T0FHRztJQUNILFNBQVMsQ0FBQyxXQUFXLENBQUMscUJBQXFCLEVBQUUsTUFBTSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sR0FBRyxHQUFHLENBRXZGO0lBRUQ7Ozs7T0FJRztJQUNILFNBQVMsQ0FBQyxjQUFjLENBQUMsYUFBYSxHQUFFLE1BQVUsR0FBRyxHQUFHLENBRXZEO0lBRUQ7OztPQUdHO0lBQ0gsSUFBVyxJQUFJLElBQUksTUFBTSxDQUl4QjtJQUVEOzs7T0FHRztJQUNILElBQVcsTUFBTSxJQUFJLE1BQU0sQ0FRMUI7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"instruction.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/instruction.ts"],"names":[],"mappings":";;AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,KAAK,GAAG,EAAqD,MAAM,eAAe,CAAC;AAC5F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC/E,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAA4B,MAAM,+CAA+C,CAAC;AAEnH,KAAK,sBAAsB,GAAG;IAC5B,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,WAAW,CAAC;CACnC,CAAC;AAEF;;;GAGG;AACH,8BAAsB,WAAW;IAC/B;;;;OAIG;aACa,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAE3D;;OAEG;IACI,SAAS,IAAI,OAAO;IAI3B;;;;OAIG;IACI,QAAQ,IAAI,MAAM;WAUX,WAAW,CACvB,IAAI,EAAE,sBAAsB,GAAG;QAAE,UAAU,EAAE,WAAW,EAAE,CAAC;QAAC,EAAE,EAAE,GAAG,CAAA;KAAE,EACrE,GAAG,EAAE,YAAY,GAAG,MAAM,GACzB,WAAW;IAKP,SAAS,IAAI,MAAM;IAO1B;;;;;OAKG;IACI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,WAAW,GAAG,YAAY;IAShF;;;;;OAKG;WACW,EAAE,CAAC,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,WAAW,EAAE;2BAEjD,YAAY,GAAG,MAAM,KAAG,WAAW;;IAQ1D;;;OAGG;IACH,SAAS,CAAC,OAAO,CAAC,aAAa,GAAE,MAAU,GAAG,GAAG;IAMjD;;;OAGG;IACH,IAAW,IAAI,IAAI,MAAM,CAMxB;IAED;;;OAGG;IACH,IAAW,MAAM,IAAI,MAAM,CAM1B;CACF"}
1
+ {"version":3,"file":"instruction.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/instruction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAI9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,KAAK,GAAG,EAA4E,MAAM,eAAe,CAAC;AACnH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAA4B,MAAM,+CAA+C,CAAC;AAEnH,KAAK,sBAAsB,GAAG;IAC5B,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,WAAW,CAAC;CACnC,CAAC;AAEF;;;GAGG;AACH,8BAAsB,WAAW;IAC/B;;;;OAIG;IACH,SAAgB,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5D;;OAEG;IACI,SAAS,IAAI,OAAO,CAE1B;IAED;;;;OAIG;IACI,QAAQ,IAAI,MAAM,CASxB;IAGD,OAAc,UAAU,CACtB,IAAI,EAAE,sBAAsB,GAAG;QAAE,UAAU,EAAE,WAAW,EAAE,CAAC;QAAC,EAAE,EAAE,GAAG,CAAA;KAAE,EACrE,GAAG,EAAE,YAAY,GAAG,MAAM,GACzB,WAAW,CAEb;IAGM,QAAQ,IAAI,MAAM,CAKxB;IAED;;;;;OAKG;IACI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,WAAW,GAAG,UAAU,CAO7E;IAED;;;;;OAKG;IACH,OAAc,EAAE,CAAC,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,WAAW,EAAE;;MAQvE;IAED;;;OAGG;IACH,SAAS,CAAC,WAAW,CAAC,qBAAqB,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,GAAG,GAAG,CAEvF;IAED;;;;OAIG;IACH,SAAS,CAAC,cAAc,CAAC,aAAa,GAAE,MAAU,GAAG,GAAG,CAEvD;IAED;;;OAGG;IACH,IAAW,IAAI,IAAI,MAAM,CAIxB;IAED;;;OAGG;IACH,IAAW,MAAM,IAAI,MAAM,CAQ1B;CACF"}
@@ -1,5 +1,5 @@
1
1
  import { strict as assert } from 'assert';
2
- import { getBaseGasCost, getDynamicGasCost, mulGas, sumGas } from '../avm_gas.js';
2
+ import { computeAddressingCost, getBaseGasCost, getDynamicGasCost, mulGas, sumGas } from '../avm_gas.js';
3
3
  import { Opcode, deserialize, serializeAs } from '../serialization/instruction_serialization.js';
4
4
  /**
5
5
  * Parent class for all AVM instructions.
@@ -15,6 +15,8 @@ import { Opcode, deserialize, serializeAs } from '../serialization/instruction_s
15
15
  * the instruction sub-class name all of its flags and operands.
16
16
  * @returns Thee string representation.
17
17
  */ toString() {
18
+ // Note: we could have this be the actual wire opcode if `bytecode_serialization.ts` were to
19
+ // pass it into the class' static `Instruction.as(this, wireFormat)` method.
18
20
  let instructionStr = this.constructor.name + ': ';
19
21
  // assumes that all properties are flags or operands
20
22
  for (const prop of Object.getOwnPropertyNames(this)){
@@ -23,15 +25,15 @@ import { Opcode, deserialize, serializeAs } from '../serialization/instruction_s
23
25
  return instructionStr;
24
26
  }
25
27
  // Default deserialization which uses Class.opcode and Class.wireFormat.
26
- static deserialize(buf) {
27
- return this.as(this.wireFormat).deserialize(buf);
28
+ static fromBuffer(buf) {
29
+ return this.as(this.wireFormat).fromBuffer(buf);
28
30
  }
29
31
  // Default serialization which uses Class.opcode and Class.wireFormat.
30
- serialize() {
32
+ toBuffer() {
31
33
  const klass = this.constructor;
32
34
  assert(klass.opcode !== undefined && klass.opcode !== null);
33
35
  assert(klass.wireFormat !== undefined && klass.wireFormat !== null);
34
- return this.as(klass.opcode, klass.wireFormat).serialize();
36
+ return this.as(klass.opcode, klass.wireFormat).toBuffer();
35
37
  }
36
38
  /**
37
39
  * Returns a new instruction instance that can be serialized with the given opcode and wire format.
@@ -39,7 +41,7 @@ import { Opcode, deserialize, serializeAs } from '../serialization/instruction_s
39
41
  * @param wireFormat The wire format of the instruction.
40
42
  * @returns The new instruction instance.
41
43
  */ as(opcode, wireFormat) {
42
- return Object.defineProperty(this, 'serialize', {
44
+ return Object.defineProperty(this, 'toBuffer', {
43
45
  value: ()=>{
44
46
  return serializeAs(wireFormat, opcode, this);
45
47
  },
@@ -53,7 +55,7 @@ import { Opcode, deserialize, serializeAs } from '../serialization/instruction_s
53
55
  * @returns The new instruction class.
54
56
  */ static as(wireFormat) {
55
57
  return Object.assign(this, {
56
- deserialize: (buf)=>{
58
+ fromBuffer: (buf)=>{
57
59
  const res = deserialize(buf, wireFormat);
58
60
  const args = res.slice(1); // Remove opcode.
59
61
  return new this(...args);
@@ -61,21 +63,24 @@ import { Opcode, deserialize, serializeAs } from '../serialization/instruction_s
61
63
  });
62
64
  }
63
65
  /**
64
- * Computes gas cost for the instruction based on its base cost and memory operations.
65
- * @returns Gas cost.
66
- */ gasCost(dynMultiplier = 0) {
67
- const baseGasCost = getBaseGasCost(this.opcode);
68
- const dynGasCost = mulGas(getDynamicGasCost(this.opcode), dynMultiplier);
69
- return sumGas(baseGasCost, dynGasCost);
66
+ * Returns the base gas cost for the instruction.
67
+ * @returns The base gas cost.
68
+ */ baseGasCost(indirectOperandsCount, relativeOperandsCount) {
69
+ return sumGas(getBaseGasCost(this.opcode), computeAddressingCost(indirectOperandsCount, relativeOperandsCount));
70
+ }
71
+ /**
72
+ * Computes the dynamic gas cost for the instruction
73
+ * @param dynMultiplier - The multiplier for the dynamic gas cost.
74
+ * @returns The dynamic gas cost.
75
+ */ dynamicGasCost(dynMultiplier = 0) {
76
+ return mulGas(getDynamicGasCost(this.opcode), dynMultiplier);
70
77
  }
71
78
  /**
72
79
  * Returns the stringified type of the instruction.
73
80
  * Instruction sub-classes should have a static `type` property.
74
81
  */ get type() {
75
82
  const type = 'type' in this.constructor && this.constructor.type;
76
- if (!type) {
77
- throw new Error(`Instruction class ${this.constructor.name} does not have a static 'type' property defined.`);
78
- }
83
+ assert(!!type, `Instruction class ${this.constructor.name} does not have a static 'type' property defined.`);
79
84
  return type;
80
85
  }
81
86
  /**
@@ -83,9 +88,8 @@ import { Opcode, deserialize, serializeAs } from '../serialization/instruction_s
83
88
  * Instruction sub-classes should have a static `opcode` property.
84
89
  */ get opcode() {
85
90
  const opcode = 'opcode' in this.constructor ? this.constructor.opcode : undefined;
86
- if (opcode === undefined || Opcode[opcode] === undefined) {
87
- throw new Error(`Instruction class ${this.constructor.name} does not have a static 'opcode' property defined.`);
88
- }
91
+ assert(opcode !== undefined, `Instruction class ${this.constructor.name} does not have a static 'opcode' property defined.`);
92
+ assert(Opcode[opcode] !== undefined, `Invalid opcode ${opcode} for instruction class ${this.constructor.name}.`);
89
93
  return opcode;
90
94
  }
91
95
  }
@@ -16,4 +16,4 @@ export declare abstract class ThreeOperandInstruction extends Instruction {
16
16
  static readonly wireFormat16: OperandType[];
17
17
  constructor(indirect: number, aOffset: number, bOffset: number, dstOffset: number);
18
18
  }
19
- //# sourceMappingURL=instruction_impl.d.ts.map
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1Y3Rpb25faW1wbC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3B1YmxpYy9hdm0vb3Bjb2Rlcy9pbnN0cnVjdGlvbl9pbXBsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFL0MscUZBQXFGO0FBQ3JGLGVBQU8sTUFBTSx1QkFBdUIsZUFNbkMsQ0FBQztBQUNGLGVBQU8sTUFBTSx3QkFBd0IsZUFNcEMsQ0FBQztBQUVGOzs7R0FHRztBQUNILDhCQUFzQix1QkFBd0IsU0FBUSxXQUFXO0lBSzdELFNBQVMsQ0FBQyxRQUFRLEVBQUUsTUFBTTtJQUMxQixTQUFTLENBQUMsT0FBTyxFQUFFLE1BQU07SUFDekIsU0FBUyxDQUFDLE9BQU8sRUFBRSxNQUFNO0lBQ3pCLFNBQVMsQ0FBQyxTQUFTLEVBQUUsTUFBTTtJQVA3QixNQUFNLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsQ0FBMkI7SUFDckUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLENBQTRCO0lBRXZFLFlBQ1ksUUFBUSxFQUFFLE1BQU0sRUFDaEIsT0FBTyxFQUFFLE1BQU0sRUFDZixPQUFPLEVBQUUsTUFBTSxFQUNmLFNBQVMsRUFBRSxNQUFNLEVBRzVCO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"instruction_impl.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/instruction_impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qFAAqF;AACrF,eAAO,MAAM,uBAAuB,eAMnC,CAAC;AACF,eAAO,MAAM,wBAAwB,eAMpC,CAAC;AAEF;;;GAGG;AACH,8BAAsB,uBAAwB,SAAQ,WAAW;IAK7D,SAAS,CAAC,QAAQ,EAAE,MAAM;IAC1B,SAAS,CAAC,OAAO,EAAE,MAAM;IACzB,SAAS,CAAC,OAAO,EAAE,MAAM;IACzB,SAAS,CAAC,SAAS,EAAE,MAAM;IAP7B,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,CAA2B;IACrE,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,WAAW,EAAE,CAA4B;gBAG3D,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM;CAI9B"}
1
+ {"version":3,"file":"instruction_impl.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/instruction_impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qFAAqF;AACrF,eAAO,MAAM,uBAAuB,eAMnC,CAAC;AACF,eAAO,MAAM,wBAAwB,eAMpC,CAAC;AAEF;;;GAGG;AACH,8BAAsB,uBAAwB,SAAQ,WAAW;IAK7D,SAAS,CAAC,QAAQ,EAAE,MAAM;IAC1B,SAAS,CAAC,OAAO,EAAE,MAAM;IACzB,SAAS,CAAC,OAAO,EAAE,MAAM;IACzB,SAAS,CAAC,SAAS,EAAE,MAAM;IAP7B,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,CAA2B;IACrE,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,WAAW,EAAE,CAA4B;IAEvE,YACY,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EAG5B;CACF"}
@@ -23,7 +23,7 @@ export declare class Cast extends Instruction {
23
23
  private dstOffset;
24
24
  private dstTag;
25
25
  static readonly type: string;
26
- static readonly opcode = Opcode.CAST_8;
26
+ static readonly opcode: Opcode;
27
27
  static readonly wireFormat8: OperandType[];
28
28
  static readonly wireFormat16: OperandType[];
29
29
  constructor(indirect: number, srcOffset: number, dstOffset: number, dstTag: number);
@@ -42,13 +42,13 @@ export declare class Mov extends Instruction {
42
42
  }
43
43
  export declare class CalldataCopy extends Instruction {
44
44
  private indirect;
45
- private cdStartOffset;
46
45
  private copySizeOffset;
46
+ private cdStartOffset;
47
47
  private dstOffset;
48
48
  static readonly type: string;
49
49
  static readonly opcode: Opcode;
50
50
  static readonly wireFormat: OperandType[];
51
- constructor(indirect: number, cdStartOffset: number, copySizeOffset: number, dstOffset: number);
51
+ constructor(indirect: number, copySizeOffset: number, cdStartOffset: number, dstOffset: number);
52
52
  execute(context: AvmContext): Promise<void>;
53
53
  }
54
54
  export declare class ReturndataSize extends Instruction {
@@ -62,13 +62,13 @@ export declare class ReturndataSize extends Instruction {
62
62
  }
63
63
  export declare class ReturndataCopy extends Instruction {
64
64
  private indirect;
65
- private rdStartOffset;
66
65
  private copySizeOffset;
66
+ private rdStartOffset;
67
67
  private dstOffset;
68
68
  static readonly type: string;
69
69
  static readonly opcode: Opcode;
70
70
  static readonly wireFormat: OperandType[];
71
- constructor(indirect: number, rdStartOffset: number, copySizeOffset: number, dstOffset: number);
71
+ constructor(indirect: number, copySizeOffset: number, rdStartOffset: number, dstOffset: number);
72
72
  execute(context: AvmContext): Promise<void>;
73
73
  }
74
- //# sourceMappingURL=memory.d.ts.map
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHVibGljL2F2bS9vcGNvZGVzL21lbW9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBRXBGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUvQyxxQkFBYSxHQUFJLFNBQVEsV0FBVztJQWlEaEMsT0FBTyxDQUFDLFFBQVE7SUFDaEIsT0FBTyxDQUFDLFNBQVM7SUFDakIsT0FBTyxDQUFDLEtBQUs7SUFDYixPQUFPLENBQUMsS0FBSztJQW5EZixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLENBQVM7SUFFckMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFnQjtJQUU5QyxnQkFBdUIsV0FBVyxFQUFFLFdBQVcsRUFBRSxDQU0vQztJQUNGLGdCQUF1QixZQUFZLEVBQUUsV0FBVyxFQUFFLENBTWhEO0lBQ0YsZ0JBQXVCLFlBQVksRUFBRSxXQUFXLEVBQUUsQ0FNaEQ7SUFDRixnQkFBdUIsWUFBWSxFQUFFLFdBQVcsRUFBRSxDQU1oRDtJQUNGLGdCQUF1QixhQUFhLEVBQUUsV0FBVyxFQUFFLENBTWpEO0lBQ0YsZ0JBQXVCLFlBQVksRUFBRSxXQUFXLEVBQUUsQ0FNaEQ7SUFFRixZQUNVLFFBQVEsRUFBRSxNQUFNLEVBQ2hCLFNBQVMsRUFBRSxNQUFNLEVBQ2pCLEtBQUssRUFBRSxNQUFNLEVBQ2IsS0FBSyxFQUFFLE1BQU0sR0FBRyxNQUFNLEVBSy9CO0lBRVksT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWN2RDtDQUNGO0FBRUQscUJBQWEsSUFBSyxTQUFRLFdB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
@@ -1 +1 @@
1
- {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/memory.ts"],"names":[],"mappings":"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"}