@aztec/simulator 0.0.0-test.1 → 0.0.1-fake-ceab37513c

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 (436) hide show
  1. package/README.md +6 -0
  2. package/dest/client.d.ts +5 -3
  3. package/dest/client.d.ts.map +1 -1
  4. package/dest/client.js +4 -2
  5. package/dest/common/errors.d.ts +4 -7
  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 +0 -1
  9. package/dest/common/index.d.ts.map +1 -1
  10. package/dest/common/index.js +0 -1
  11. package/dest/private/acvm/acvm.d.ts +11 -5
  12. package/dest/private/acvm/acvm.d.ts.map +1 -1
  13. package/dest/private/acvm/acvm.js +10 -16
  14. package/dest/private/acvm/acvm_types.d.ts +1 -1
  15. package/dest/private/acvm/acvm_types.d.ts.map +1 -1
  16. package/dest/private/acvm/deserialize.d.ts +17 -18
  17. package/dest/private/acvm/deserialize.d.ts.map +1 -1
  18. package/dest/private/acvm/deserialize.js +31 -23
  19. package/dest/private/acvm/index.d.ts +0 -1
  20. package/dest/private/acvm/index.d.ts.map +1 -1
  21. package/dest/private/acvm/index.js +0 -1
  22. package/dest/private/acvm/serialize.d.ts +19 -2
  23. package/dest/private/acvm/serialize.d.ts.map +1 -1
  24. package/dest/private/acvm/serialize.js +53 -0
  25. package/dest/private/{providers/acvm_native.d.ts → acvm_native.d.ts} +10 -10
  26. package/dest/private/acvm_native.d.ts.map +1 -0
  27. package/dest/private/{providers/acvm_native.js → acvm_native.js} +11 -7
  28. package/dest/private/acvm_wasm.d.ts +15 -0
  29. package/dest/private/acvm_wasm.d.ts.map +1 -0
  30. package/dest/private/{providers/acvm_wasm.js → acvm_wasm.js} +22 -19
  31. package/dest/private/acvm_wasm_with_blobs.d.ts +20 -0
  32. package/dest/private/acvm_wasm_with_blobs.d.ts.map +1 -0
  33. package/dest/private/acvm_wasm_with_blobs.js +35 -0
  34. package/dest/private/circuit_recording/circuit_recorder.d.ts +108 -0
  35. package/dest/private/circuit_recording/circuit_recorder.d.ts.map +1 -0
  36. package/dest/private/circuit_recording/circuit_recorder.js +209 -0
  37. package/dest/private/circuit_recording/file_circuit_recorder.d.ts +31 -0
  38. package/dest/private/circuit_recording/file_circuit_recorder.d.ts.map +1 -0
  39. package/dest/private/circuit_recording/file_circuit_recorder.js +135 -0
  40. package/dest/private/circuit_recording/memory_circuit_recorder.d.ts +5 -0
  41. package/dest/private/circuit_recording/memory_circuit_recorder.d.ts.map +1 -0
  42. package/dest/private/circuit_recording/memory_circuit_recorder.js +9 -0
  43. package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts +21 -0
  44. package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts.map +1 -0
  45. package/dest/private/circuit_recording/simulator_recorder_wrapper.js +44 -0
  46. package/dest/private/circuit_simulator.d.ts +35 -0
  47. package/dest/private/circuit_simulator.d.ts.map +1 -0
  48. package/dest/private/circuit_simulator.js +43 -0
  49. package/dest/private/factory.d.ts +12 -0
  50. package/dest/private/factory.d.ts.map +1 -0
  51. package/dest/private/{providers/factory.js → factory.js} +2 -2
  52. package/dest/public/avm/avm_context.d.ts +5 -5
  53. package/dest/public/avm/avm_context.d.ts.map +1 -1
  54. package/dest/public/avm/avm_contract_call_result.d.ts +4 -2
  55. package/dest/public/avm/avm_contract_call_result.d.ts.map +1 -1
  56. package/dest/public/avm/avm_contract_call_result.js +11 -7
  57. package/dest/public/avm/avm_execution_environment.d.ts +2 -1
  58. package/dest/public/avm/avm_execution_environment.d.ts.map +1 -1
  59. package/dest/public/avm/avm_execution_environment.js +4 -2
  60. package/dest/public/avm/avm_gas.d.ts +4 -20
  61. package/dest/public/avm/avm_gas.d.ts.map +1 -1
  62. package/dest/public/avm/avm_gas.js +27 -35
  63. package/dest/public/avm/avm_machine_state.d.ts +2 -0
  64. package/dest/public/avm/avm_machine_state.d.ts.map +1 -1
  65. package/dest/public/avm/avm_machine_state.js +2 -0
  66. package/dest/public/avm/avm_memory_types.d.ts +98 -87
  67. package/dest/public/avm/avm_memory_types.d.ts.map +1 -1
  68. package/dest/public/avm/avm_memory_types.js +17 -6
  69. package/dest/public/avm/avm_simulator.d.ts +4 -5
  70. package/dest/public/avm/avm_simulator.d.ts.map +1 -1
  71. package/dest/public/avm/avm_simulator.js +13 -18
  72. package/dest/public/avm/avm_simulator_interface.d.ts +9 -0
  73. package/dest/public/avm/avm_simulator_interface.d.ts.map +1 -0
  74. package/dest/public/avm/avm_simulator_interface.js +3 -0
  75. package/dest/public/avm/errors.d.ts +1 -16
  76. package/dest/public/avm/errors.d.ts.map +1 -1
  77. package/dest/public/avm/errors.js +0 -37
  78. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts +3 -3
  79. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts.map +1 -1
  80. package/dest/public/avm/fixtures/avm_simulation_tester.js +10 -11
  81. package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts +4 -4
  82. package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts.map +1 -1
  83. package/dest/public/avm/fixtures/base_avm_simulation_tester.js +16 -15
  84. package/dest/public/avm/fixtures/initializers.d.ts +43 -0
  85. package/dest/public/avm/fixtures/initializers.d.ts.map +1 -0
  86. package/dest/public/avm/fixtures/initializers.js +42 -0
  87. package/dest/public/avm/fixtures/utils.d.ts +38 -0
  88. package/dest/public/avm/fixtures/utils.d.ts.map +1 -0
  89. package/dest/public/avm/fixtures/utils.js +95 -0
  90. package/dest/public/avm/index.d.ts +0 -2
  91. package/dest/public/avm/index.d.ts.map +1 -1
  92. package/dest/public/avm/index.js +0 -2
  93. package/dest/public/avm/opcodes/accrued_substate.d.ts.map +1 -1
  94. package/dest/public/avm/opcodes/accrued_substate.js +22 -19
  95. package/dest/public/avm/opcodes/addressing_mode.d.ts +11 -7
  96. package/dest/public/avm/opcodes/addressing_mode.d.ts.map +1 -1
  97. package/dest/public/avm/opcodes/addressing_mode.js +48 -27
  98. package/dest/public/avm/opcodes/arithmetic.d.ts +11 -1
  99. package/dest/public/avm/opcodes/arithmetic.d.ts.map +1 -1
  100. package/dest/public/avm/opcodes/arithmetic.js +16 -2
  101. package/dest/public/avm/opcodes/bitwise.d.ts +5 -13
  102. package/dest/public/avm/opcodes/bitwise.d.ts.map +1 -1
  103. package/dest/public/avm/opcodes/bitwise.js +19 -26
  104. package/dest/public/avm/opcodes/comparators.d.ts.map +1 -1
  105. package/dest/public/avm/opcodes/comparators.js +3 -3
  106. package/dest/public/avm/opcodes/contract.d.ts +1 -2
  107. package/dest/public/avm/opcodes/contract.d.ts.map +1 -1
  108. package/dest/public/avm/opcodes/contract.js +9 -10
  109. package/dest/public/avm/opcodes/control_flow.d.ts.map +1 -1
  110. package/dest/public/avm/opcodes/control_flow.js +10 -8
  111. package/dest/public/avm/opcodes/conversion.d.ts +1 -0
  112. package/dest/public/avm/opcodes/conversion.d.ts.map +1 -1
  113. package/dest/public/avm/opcodes/conversion.js +264 -3
  114. package/dest/public/avm/opcodes/ec_add.d.ts.map +1 -1
  115. package/dest/public/avm/opcodes/ec_add.js +2 -2
  116. package/dest/public/avm/opcodes/environment_getters.d.ts +2 -2
  117. package/dest/public/avm/opcodes/environment_getters.d.ts.map +1 -1
  118. package/dest/public/avm/opcodes/environment_getters.js +12 -12
  119. package/dest/public/avm/opcodes/external_calls.d.ts +8 -7
  120. package/dest/public/avm/opcodes/external_calls.d.ts.map +1 -1
  121. package/dest/public/avm/opcodes/external_calls.js +39 -33
  122. package/dest/public/avm/opcodes/hashing.d.ts.map +1 -1
  123. package/dest/public/avm/opcodes/hashing.js +6 -6
  124. package/dest/public/avm/opcodes/instruction.d.ts +14 -10
  125. package/dest/public/avm/opcodes/instruction.d.ts.map +1 -1
  126. package/dest/public/avm/opcodes/instruction.js +18 -13
  127. package/dest/public/avm/opcodes/memory.d.ts +4 -4
  128. package/dest/public/avm/opcodes/memory.d.ts.map +1 -1
  129. package/dest/public/avm/opcodes/memory.js +37 -33
  130. package/dest/public/avm/opcodes/misc.d.ts.map +1 -1
  131. package/dest/public/avm/opcodes/misc.js +17 -12
  132. package/dest/public/avm/opcodes/storage.d.ts.map +1 -1
  133. package/dest/public/avm/opcodes/storage.js +7 -5
  134. package/dest/public/avm/revert_reason.d.ts +18 -0
  135. package/dest/public/avm/revert_reason.d.ts.map +1 -0
  136. package/dest/public/avm/revert_reason.js +38 -0
  137. package/dest/public/avm/serialization/buffer_cursor.d.ts +0 -2
  138. package/dest/public/avm/serialization/buffer_cursor.d.ts.map +1 -1
  139. package/dest/public/avm/serialization/bytecode_serialization.d.ts +2 -6
  140. package/dest/public/avm/serialization/bytecode_serialization.d.ts.map +1 -1
  141. package/dest/public/avm/serialization/bytecode_serialization.js +70 -69
  142. package/dest/public/avm/serialization/instruction_serialization.d.ts +5 -4
  143. package/dest/public/avm/serialization/instruction_serialization.d.ts.map +1 -1
  144. package/dest/public/avm/serialization/instruction_serialization.js +60 -35
  145. package/dest/public/avm/test_utils.d.ts +10 -13
  146. package/dest/public/avm/test_utils.d.ts.map +1 -1
  147. package/dest/public/avm/test_utils.js +12 -17
  148. package/dest/public/db_interfaces.d.ts +56 -0
  149. package/dest/public/db_interfaces.d.ts.map +1 -0
  150. package/dest/public/db_interfaces.js +3 -0
  151. package/dest/public/debug_fn_name.d.ts +5 -0
  152. package/dest/public/debug_fn_name.d.ts.map +1 -0
  153. package/dest/public/debug_fn_name.js +9 -0
  154. package/dest/public/executor_metrics.d.ts +10 -3
  155. package/dest/public/executor_metrics.d.ts.map +1 -1
  156. package/dest/public/executor_metrics.js +37 -6
  157. package/dest/public/executor_metrics_interface.d.ts +9 -0
  158. package/dest/public/executor_metrics_interface.d.ts.map +1 -0
  159. package/dest/public/executor_metrics_interface.js +1 -0
  160. package/dest/public/fixtures/amm_test.d.ts +10 -0
  161. package/dest/public/fixtures/amm_test.d.ts.map +1 -0
  162. package/dest/public/fixtures/amm_test.js +213 -0
  163. package/dest/public/fixtures/bulk_test.d.ts +6 -0
  164. package/dest/public/fixtures/bulk_test.d.ts.map +1 -0
  165. package/dest/public/fixtures/bulk_test.js +393 -0
  166. package/dest/public/fixtures/index.d.ts +6 -0
  167. package/dest/public/fixtures/index.d.ts.map +1 -1
  168. package/dest/public/fixtures/index.js +6 -0
  169. package/dest/public/fixtures/minimal_public_tx.d.ts +9 -0
  170. package/dest/public/fixtures/minimal_public_tx.d.ts.map +1 -0
  171. package/dest/public/fixtures/minimal_public_tx.js +43 -0
  172. package/dest/public/fixtures/public_tx_simulation_tester.d.ts +33 -13
  173. package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
  174. package/dest/public/fixtures/public_tx_simulation_tester.js +90 -70
  175. package/dest/public/{avm/fixtures → fixtures}/simple_contract_data_source.d.ts +6 -6
  176. package/dest/public/fixtures/simple_contract_data_source.d.ts.map +1 -0
  177. package/dest/public/{avm/fixtures → fixtures}/simple_contract_data_source.js +31 -10
  178. package/dest/public/fixtures/token_test.d.ts +8 -0
  179. package/dest/public/fixtures/token_test.d.ts.map +1 -0
  180. package/dest/public/fixtures/token_test.js +95 -0
  181. package/dest/public/fixtures/utils.d.ts +16 -3
  182. package/dest/public/fixtures/utils.d.ts.map +1 -1
  183. package/dest/public/fixtures/utils.js +100 -58
  184. package/dest/public/hinting_db_sources.d.ts +68 -0
  185. package/dest/public/hinting_db_sources.d.ts.map +1 -0
  186. package/dest/public/hinting_db_sources.js +294 -0
  187. package/dest/public/index.d.ts +4 -8
  188. package/dest/public/index.d.ts.map +1 -1
  189. package/dest/public/index.js +4 -7
  190. package/dest/public/public_db_sources.d.ts +30 -39
  191. package/dest/public/public_db_sources.d.ts.map +1 -1
  192. package/dest/public/public_db_sources.js +141 -67
  193. package/dest/public/public_processor/guarded_merkle_tree.d.ts +47 -0
  194. package/dest/public/public_processor/guarded_merkle_tree.d.ts.map +1 -0
  195. package/dest/public/public_processor/guarded_merkle_tree.js +105 -0
  196. package/dest/public/public_processor/public_processor.d.ts +19 -29
  197. package/dest/public/public_processor/public_processor.d.ts.map +1 -1
  198. package/dest/public/public_processor/public_processor.js +133 -94
  199. package/dest/public/public_processor/public_processor_metrics.d.ts +2 -2
  200. package/dest/public/public_processor/public_processor_metrics.d.ts.map +1 -1
  201. package/dest/public/public_processor/public_processor_metrics.js +1 -1
  202. package/dest/public/public_tx_simulator/index.d.ts +3 -0
  203. package/dest/public/public_tx_simulator/index.d.ts.map +1 -0
  204. package/dest/public/public_tx_simulator/index.js +2 -0
  205. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts +23 -0
  206. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts.map +1 -0
  207. package/dest/public/public_tx_simulator/measured_public_tx_simulator.js +52 -0
  208. package/dest/public/public_tx_simulator/public_tx_context.d.ts +17 -29
  209. package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +1 -1
  210. package/dest/public/public_tx_simulator/public_tx_context.js +59 -91
  211. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +27 -42
  212. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
  213. package/dest/public/public_tx_simulator/public_tx_simulator.js +128 -171
  214. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts +20 -0
  215. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts.map +1 -0
  216. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.js +39 -0
  217. package/dest/public/side_effect_trace.d.ts +10 -62
  218. package/dest/public/side_effect_trace.d.ts.map +1 -1
  219. package/dest/public/side_effect_trace.js +43 -108
  220. package/dest/public/side_effect_trace_interface.d.ts +5 -22
  221. package/dest/public/side_effect_trace_interface.d.ts.map +1 -1
  222. package/dest/public/state_manager/index.d.ts +2 -0
  223. package/dest/public/state_manager/index.d.ts.map +1 -0
  224. package/dest/public/state_manager/index.js +1 -0
  225. package/dest/public/{avm/journal → state_manager}/nullifiers.d.ts +2 -2
  226. package/dest/public/state_manager/nullifiers.d.ts.map +1 -0
  227. package/dest/public/{avm/journal → state_manager}/nullifiers.js +2 -2
  228. package/dest/public/{avm/journal → state_manager}/public_storage.d.ts +2 -2
  229. package/dest/public/state_manager/public_storage.d.ts.map +1 -0
  230. package/dest/public/{avm/journal/journal.d.ts → state_manager/state_manager.d.ts} +37 -85
  231. package/dest/public/state_manager/state_manager.d.ts.map +1 -0
  232. package/dest/public/state_manager/state_manager.js +352 -0
  233. package/dest/public/test_executor_metrics.d.ts +54 -0
  234. package/dest/public/test_executor_metrics.d.ts.map +1 -0
  235. package/dest/public/test_executor_metrics.js +306 -0
  236. package/dest/public/unique_class_ids.d.ts.map +1 -1
  237. package/dest/public/utils.d.ts +2 -4
  238. package/dest/public/utils.d.ts.map +1 -1
  239. package/dest/public/utils.js +4 -21
  240. package/dest/server.d.ts +6 -3
  241. package/dest/server.d.ts.map +1 -1
  242. package/dest/server.js +5 -2
  243. package/dest/testing.d.ts +2 -0
  244. package/dest/testing.d.ts.map +1 -0
  245. package/dest/testing.js +1 -0
  246. package/package.json +31 -30
  247. package/src/client.ts +5 -3
  248. package/src/common/errors.ts +79 -44
  249. package/src/common/index.ts +0 -1
  250. package/src/private/acvm/acvm.ts +17 -32
  251. package/src/private/acvm/acvm_types.ts +1 -1
  252. package/src/private/acvm/deserialize.ts +35 -29
  253. package/src/private/acvm/index.ts +0 -1
  254. package/src/private/acvm/serialize.ts +63 -0
  255. package/src/private/{providers/acvm_native.ts → acvm_native.ts} +31 -15
  256. package/src/private/acvm_wasm.ts +72 -0
  257. package/src/private/acvm_wasm_with_blobs.ts +54 -0
  258. package/src/private/circuit_recording/circuit_recorder.ts +260 -0
  259. package/src/private/circuit_recording/file_circuit_recorder.ts +158 -0
  260. package/src/private/circuit_recording/memory_circuit_recorder.ts +11 -0
  261. package/src/private/circuit_recording/simulator_recorder_wrapper.ts +91 -0
  262. package/src/private/circuit_simulator.ts +90 -0
  263. package/src/private/{providers/factory.ts → factory.ts} +6 -6
  264. package/src/public/avm/avm_context.ts +4 -4
  265. package/src/public/avm/avm_contract_call_result.ts +17 -5
  266. package/src/public/avm/avm_execution_environment.ts +7 -1
  267. package/src/public/avm/avm_gas.ts +23 -35
  268. package/src/public/avm/avm_machine_state.ts +5 -0
  269. package/src/public/avm/avm_memory_types.ts +19 -6
  270. package/src/public/avm/avm_simulator.ts +30 -29
  271. package/src/public/avm/avm_simulator_interface.ts +8 -0
  272. package/src/public/avm/errors.ts +1 -53
  273. package/src/public/avm/fixtures/avm_simulation_tester.ts +19 -18
  274. package/src/public/avm/fixtures/base_avm_simulation_tester.ts +15 -14
  275. package/src/public/avm/fixtures/initializers.ts +103 -0
  276. package/src/public/avm/fixtures/utils.ts +150 -0
  277. package/src/public/avm/index.ts +0 -2
  278. package/src/public/avm/opcodes/accrued_substate.ts +62 -27
  279. package/src/public/avm/opcodes/addressing_mode.ts +57 -33
  280. package/src/public/avm/opcodes/arithmetic.ts +24 -2
  281. package/src/public/avm/opcodes/bitwise.ts +33 -29
  282. package/src/public/avm/opcodes/comparators.ts +6 -3
  283. package/src/public/avm/opcodes/contract.ts +10 -7
  284. package/src/public/avm/opcodes/control_flow.ts +19 -10
  285. package/src/public/avm/opcodes/conversion.ts +23 -3
  286. package/src/public/avm/opcodes/ec_add.ts +5 -2
  287. package/src/public/avm/opcodes/environment_getters.ts +22 -15
  288. package/src/public/avm/opcodes/external_calls.ts +61 -28
  289. package/src/public/avm/opcodes/hashing.ts +28 -8
  290. package/src/public/avm/opcodes/instruction.ts +23 -15
  291. package/src/public/avm/opcodes/memory.ts +71 -32
  292. package/src/public/avm/opcodes/misc.ts +24 -16
  293. package/src/public/avm/opcodes/storage.ts +22 -6
  294. package/src/public/avm/revert_reason.ts +55 -0
  295. package/src/public/avm/serialization/buffer_cursor.ts +4 -1
  296. package/src/public/avm/serialization/bytecode_serialization.ts +72 -74
  297. package/src/public/avm/serialization/instruction_serialization.ts +63 -34
  298. package/src/public/avm/test_utils.ts +23 -32
  299. package/src/public/db_interfaces.ts +61 -0
  300. package/src/{common → public}/debug_fn_name.ts +7 -7
  301. package/src/public/executor_metrics.ts +55 -6
  302. package/src/public/executor_metrics_interface.ts +14 -0
  303. package/src/public/fixtures/amm_test.ts +331 -0
  304. package/src/public/fixtures/bulk_test.ts +151 -0
  305. package/src/public/fixtures/index.ts +6 -0
  306. package/src/public/fixtures/minimal_public_tx.ts +59 -0
  307. package/src/public/fixtures/public_tx_simulation_tester.ts +154 -113
  308. package/src/public/{avm/fixtures → fixtures}/simple_contract_data_source.ts +36 -18
  309. package/src/public/fixtures/token_test.ts +140 -0
  310. package/src/public/fixtures/utils.ts +141 -68
  311. package/src/public/hinting_db_sources.ts +500 -0
  312. package/src/public/index.ts +4 -8
  313. package/src/public/public_db_sources.ts +179 -96
  314. package/src/public/public_processor/guarded_merkle_tree.ts +149 -0
  315. package/src/public/public_processor/public_processor.ts +179 -139
  316. package/src/public/public_processor/public_processor_metrics.ts +2 -2
  317. package/src/public/public_tx_simulator/index.ts +2 -0
  318. package/src/public/public_tx_simulator/measured_public_tx_simulator.ts +106 -0
  319. package/src/public/public_tx_simulator/public_tx_context.ts +153 -193
  320. package/src/public/public_tx_simulator/public_tx_simulator.ts +167 -211
  321. package/src/public/public_tx_simulator/telemetry_public_tx_simulator.ts +72 -0
  322. package/src/public/side_effect_trace.ts +52 -303
  323. package/src/public/side_effect_trace_interface.ts +4 -58
  324. package/src/public/state_manager/index.ts +1 -0
  325. package/src/public/{avm/journal → state_manager}/nullifiers.ts +4 -4
  326. package/src/public/{avm/journal → state_manager}/public_storage.ts +2 -2
  327. package/src/public/state_manager/state_manager.ts +512 -0
  328. package/src/public/test_executor_metrics.ts +395 -0
  329. package/src/public/utils.ts +5 -21
  330. package/src/server.ts +6 -3
  331. package/src/testing.ts +1 -0
  332. package/dest/common/db_interfaces.d.ts +0 -80
  333. package/dest/common/db_interfaces.d.ts.map +0 -1
  334. package/dest/common/db_interfaces.js +0 -1
  335. package/dest/common/debug_fn_name.d.ts +0 -5
  336. package/dest/common/debug_fn_name.d.ts.map +0 -1
  337. package/dest/common/debug_fn_name.js +0 -6
  338. package/dest/common/message_load_oracle_inputs.d.ts +0 -15
  339. package/dest/common/message_load_oracle_inputs.d.ts.map +0 -1
  340. package/dest/common/message_load_oracle_inputs.js +0 -15
  341. package/dest/private/acvm/oracle/index.d.ts +0 -14
  342. package/dest/private/acvm/oracle/index.d.ts.map +0 -1
  343. package/dest/private/acvm/oracle/index.js +0 -2
  344. package/dest/private/acvm/oracle/oracle.d.ts +0 -49
  345. package/dest/private/acvm/oracle/oracle.d.ts.map +0 -1
  346. package/dest/private/acvm/oracle/oracle.js +0 -263
  347. package/dest/private/acvm/oracle/typed_oracle.d.ts +0 -83
  348. package/dest/private/acvm/oracle/typed_oracle.d.ts.map +0 -1
  349. package/dest/private/acvm/oracle/typed_oracle.js +0 -132
  350. package/dest/private/execution_data_provider.d.ts +0 -261
  351. package/dest/private/execution_data_provider.d.ts.map +0 -1
  352. package/dest/private/execution_data_provider.js +0 -14
  353. package/dest/private/execution_note_cache.d.ts +0 -93
  354. package/dest/private/execution_note_cache.d.ts.map +0 -1
  355. package/dest/private/execution_note_cache.js +0 -180
  356. package/dest/private/hashed_values_cache.d.ts +0 -28
  357. package/dest/private/hashed_values_cache.d.ts.map +0 -1
  358. package/dest/private/hashed_values_cache.js +0 -46
  359. package/dest/private/index.d.ts +0 -13
  360. package/dest/private/index.d.ts.map +0 -1
  361. package/dest/private/index.js +0 -12
  362. package/dest/private/pick_notes.d.ts +0 -85
  363. package/dest/private/pick_notes.d.ts.map +0 -1
  364. package/dest/private/pick_notes.js +0 -51
  365. package/dest/private/private_execution.d.ts +0 -25
  366. package/dest/private/private_execution.d.ts.map +0 -1
  367. package/dest/private/private_execution.js +0 -92
  368. package/dest/private/private_execution_oracle.d.ts +0 -215
  369. package/dest/private/private_execution_oracle.d.ts.map +0 -1
  370. package/dest/private/private_execution_oracle.js +0 -382
  371. package/dest/private/providers/acvm_native.d.ts.map +0 -1
  372. package/dest/private/providers/acvm_wasm.d.ts +0 -15
  373. package/dest/private/providers/acvm_wasm.d.ts.map +0 -1
  374. package/dest/private/providers/acvm_wasm_with_blobs.d.ts +0 -19
  375. package/dest/private/providers/acvm_wasm_with_blobs.d.ts.map +0 -1
  376. package/dest/private/providers/acvm_wasm_with_blobs.js +0 -32
  377. package/dest/private/providers/factory.d.ts +0 -12
  378. package/dest/private/providers/factory.d.ts.map +0 -1
  379. package/dest/private/providers/simulation_provider.d.ts +0 -19
  380. package/dest/private/providers/simulation_provider.d.ts.map +0 -1
  381. package/dest/private/providers/simulation_provider.js +0 -24
  382. package/dest/private/simulator.d.ts +0 -34
  383. package/dest/private/simulator.d.ts.map +0 -1
  384. package/dest/private/simulator.js +0 -76
  385. package/dest/private/unconstrained_execution.d.ts +0 -10
  386. package/dest/private/unconstrained_execution.d.ts.map +0 -1
  387. package/dest/private/unconstrained_execution.js +0 -27
  388. package/dest/private/unconstrained_execution_oracle.d.ts +0 -161
  389. package/dest/private/unconstrained_execution_oracle.d.ts.map +0 -1
  390. package/dest/private/unconstrained_execution_oracle.js +0 -258
  391. package/dest/public/avm/bytecode_utils.d.ts +0 -5
  392. package/dest/public/avm/bytecode_utils.d.ts.map +0 -1
  393. package/dest/public/avm/bytecode_utils.js +0 -17
  394. package/dest/public/avm/fixtures/index.d.ts +0 -84
  395. package/dest/public/avm/fixtures/index.d.ts.map +0 -1
  396. package/dest/public/avm/fixtures/index.js +0 -175
  397. package/dest/public/avm/fixtures/simple_contract_data_source.d.ts.map +0 -1
  398. package/dest/public/avm/journal/index.d.ts +0 -2
  399. package/dest/public/avm/journal/index.d.ts.map +0 -1
  400. package/dest/public/avm/journal/index.js +0 -1
  401. package/dest/public/avm/journal/journal.d.ts.map +0 -1
  402. package/dest/public/avm/journal/journal.js +0 -486
  403. package/dest/public/avm/journal/nullifiers.d.ts.map +0 -1
  404. package/dest/public/avm/journal/public_storage.d.ts.map +0 -1
  405. package/dest/public/execution.d.ts +0 -108
  406. package/dest/public/execution.d.ts.map +0 -1
  407. package/dest/public/execution.js +0 -9
  408. package/dest/test/utils.d.ts +0 -13
  409. package/dest/test/utils.d.ts.map +0 -1
  410. package/dest/test/utils.js +0 -22
  411. package/src/common/db_interfaces.ts +0 -94
  412. package/src/common/message_load_oracle_inputs.ts +0 -15
  413. package/src/private/acvm/oracle/index.ts +0 -16
  414. package/src/private/acvm/oracle/oracle.ts +0 -455
  415. package/src/private/acvm/oracle/typed_oracle.ts +0 -259
  416. package/src/private/execution_data_provider.ts +0 -323
  417. package/src/private/execution_note_cache.ts +0 -217
  418. package/src/private/hashed_values_cache.ts +0 -55
  419. package/src/private/index.ts +0 -16
  420. package/src/private/pick_notes.ts +0 -141
  421. package/src/private/private_execution.ts +0 -151
  422. package/src/private/private_execution_oracle.ts +0 -614
  423. package/src/private/providers/acvm_wasm.ts +0 -63
  424. package/src/private/providers/acvm_wasm_with_blobs.ts +0 -50
  425. package/src/private/providers/simulation_provider.ts +0 -45
  426. package/src/private/simulator.ts +0 -147
  427. package/src/private/unconstrained_execution.ts +0 -50
  428. package/src/private/unconstrained_execution_oracle.ts +0 -373
  429. package/src/public/avm/bytecode_utils.ts +0 -17
  430. package/src/public/avm/fixtures/index.ts +0 -296
  431. package/src/public/avm/journal/index.ts +0 -1
  432. package/src/public/avm/journal/journal.ts +0 -742
  433. package/src/public/avm/opcodes/.eslintrc.cjs +0 -8
  434. package/src/public/execution.ts +0 -140
  435. package/src/test/utils.ts +0 -36
  436. /package/dest/public/{avm/journal → state_manager}/public_storage.js +0 -0
@@ -3,12 +3,13 @@ import { Opcode, OperandType } from '../serialization/instruction_serialization.
3
3
  import { Instruction } from './instruction.js';
4
4
  declare abstract class ExternalCall extends Instruction {
5
5
  private indirect;
6
- private gasOffset;
6
+ private l2GasOffset;
7
+ private daGasOffset;
7
8
  private addrOffset;
8
- private argsOffset;
9
9
  private argsSizeOffset;
10
+ private argsOffset;
10
11
  static readonly wireFormat: OperandType[];
11
- constructor(indirect: number, gasOffset: number, addrOffset: number, argsOffset: number, argsSizeOffset: number);
12
+ constructor(indirect: number, l2GasOffset: number, daGasOffset: number, addrOffset: number, argsSizeOffset: number, argsOffset: number);
12
13
  execute(context: AvmContext): Promise<void>;
13
14
  abstract get type(): 'CALL' | 'STATICCALL';
14
15
  }
@@ -33,24 +34,24 @@ export declare class SuccessCopy extends Instruction {
33
34
  }
34
35
  export declare class Return extends Instruction {
35
36
  private indirect;
36
- private returnOffset;
37
37
  private returnSizeOffset;
38
+ private returnOffset;
38
39
  static type: string;
39
40
  static readonly opcode: Opcode;
40
41
  static readonly wireFormat: OperandType[];
41
- constructor(indirect: number, returnOffset: number, returnSizeOffset: number);
42
+ constructor(indirect: number, returnSizeOffset: number, returnOffset: number);
42
43
  execute(context: AvmContext): Promise<void>;
43
44
  handlesPC(): boolean;
44
45
  }
45
46
  export declare class Revert extends Instruction {
46
47
  private indirect;
47
- private returnOffset;
48
48
  private retSizeOffset;
49
+ private returnOffset;
49
50
  static type: string;
50
51
  static readonly opcode: Opcode;
51
52
  static readonly wireFormat8: OperandType[];
52
53
  static readonly wireFormat16: OperandType[];
53
- constructor(indirect: number, returnOffset: number, retSizeOffset: number);
54
+ constructor(indirect: number, retSizeOffset: number, returnOffset: number);
54
55
  execute(context: AvmContext): Promise<void>;
55
56
  handlesPC(): boolean;
56
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"external_calls.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/external_calls.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,uBAAe,YAAa,SAAQ,WAAW;IAY3C,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,cAAc;IAdxB,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAOvC;gBAGQ,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM;IAKnB,OAAO,CAAC,OAAO,EAAE,UAAU;IAmExC,aAA6B,IAAI,IAAI,MAAM,GAAG,YAAY,CAAC;CAC5D;AAED,qBAAa,IAAK,SAAQ,YAAY;IACpC,MAAM,CAAC,IAAI,SAAmB;IAC9B,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAe;IAE7C,IAAW,IAAI,WAEd;CACF;AAED,qBAAa,UAAW,SAAQ,YAAY;IAC1C,MAAM,CAAC,IAAI,eAAyB;IACpC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAqB;IAEnD,IAAW,IAAI,iBAEd;CACF;AAED,qBAAa,WAAY,SAAQ,WAAW;IAU9B,OAAO,CAAC,QAAQ;IAAU,OAAO,CAAC,SAAS;IATvD,MAAM,CAAC,IAAI,EAAE,MAAM,CAAiB;IACpC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAsB;IAEpD,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAIvC;gBAEkB,QAAQ,EAAE,MAAM,EAAU,SAAS,EAAE,MAAM;IAIlD,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAazD;AAED,qBAAa,MAAO,SAAQ,WAAW;IAWzB,OAAO,CAAC,QAAQ;IAAU,OAAO,CAAC,YAAY;IAAU,OAAO,CAAC,gBAAgB;IAV5F,MAAM,CAAC,IAAI,EAAE,MAAM,CAAY;IAC/B,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAiB;IAE/C,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAKvC;gBAEkB,QAAQ,EAAE,MAAM,EAAU,YAAY,EAAE,MAAM,EAAU,gBAAgB,EAAE,MAAM;IAIvF,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBxC,SAAS,IAAI,OAAO;CAGrC;AAED,qBAAa,MAAO,SAAQ,WAAW;IAiBzB,OAAO,CAAC,QAAQ;IAAU,OAAO,CAAC,YAAY;IAAU,OAAO,CAAC,aAAa;IAhBzF,MAAM,CAAC,IAAI,EAAE,MAAM,CAAY;IAC/B,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAmB;IAEjD,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,CAKxC;IACF,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,WAAW,EAAE,CAKzC;gBAEkB,QAAQ,EAAE,MAAM,EAAU,YAAY,EAAE,MAAM,EAAU,aAAa,EAAE,MAAM;IAIpF,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBxC,SAAS,IAAI,OAAO;CAGrC"}
1
+ {"version":3,"file":"external_calls.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/external_calls.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,uBAAe,YAAa,SAAQ,WAAW;IAa3C,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,UAAU;IAhBpB,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAQvC;gBAGQ,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM;IAKf,OAAO,CAAC,OAAO,EAAE,UAAU;IA6ExC,aAA6B,IAAI,IAAI,MAAM,GAAG,YAAY,CAAC;CAC5D;AAED,qBAAa,IAAK,SAAQ,YAAY;IACpC,MAAM,CAAC,IAAI,EAAG,MAAM,CAAU;IAC9B,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAe;IAE7C,IAAW,IAAI,WAEd;CACF;AAED,qBAAa,UAAW,SAAQ,YAAY;IAC1C,MAAM,CAAC,IAAI,EAAG,YAAY,CAAU;IACpC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAqB;IAEnD,IAAW,IAAI,iBAEd;CACF;AAED,qBAAa,WAAY,SAAQ,WAAW;IAWxC,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,SAAS;IAXnB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAiB;IACpC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAsB;IAEpD,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAIvC;gBAGQ,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM;IAKd,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAiBzD;AAED,qBAAa,MAAO,SAAQ,WAAW;IAYnC,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,YAAY;IAbtB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAY;IAC/B,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAiB;IAE/C,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAKvC;gBAGQ,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,MAAM;IAKjB,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBxC,SAAS,IAAI,OAAO;CAGrC;AAED,qBAAa,MAAO,SAAQ,WAAW;IAkBnC,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,YAAY;IAnBtB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAY;IAC/B,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAmB;IAEjD,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,CAKxC;IACF,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,WAAW,EAAE,CAKzC;gBAGQ,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM;IAKjB,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBxC,SAAS,IAAI,OAAO;CAGrC"}
@@ -4,33 +4,38 @@ 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();
@@ -39,14 +44,12 @@ class ExternalCall extends Instruction {
39
44
  const callAddress = memory.getAs(addrOffset);
40
45
  // If we are already in a static call, we propagate the environment.
41
46
  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.
47
+ // We consume the gas allocated for the nested call. The excess will be refunded later.
45
48
  // Gas allocation is capped by the amount of gas left in the current context.
46
49
  // We have to do some dancing here because the gas allocation is a field,
47
50
  // 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)));
51
+ const allocatedL2Gas = Number(BigIntMin(memory.get(l2GasOffset).toBigInt(), BigInt(context.machineState.l2GasLeft)));
52
+ const allocatedDaGas = Number(BigIntMin(memory.get(daGasOffset).toBigInt(), BigInt(context.machineState.daGasLeft)));
50
53
  const allocatedGas = {
51
54
  l2Gas: allocatedL2Gas,
52
55
  daGas: allocatedDaGas
@@ -62,6 +65,8 @@ class ExternalCall extends Instruction {
62
65
  context.machineState.nestedReturndata = fullReturnData;
63
66
  // Track the success status directly
64
67
  context.machineState.nestedCallSuccess = success;
68
+ // Account for all instructions executed in the nested call
69
+ context.machineState.instrCounter += nestedCallResults.totalInstructions;
65
70
  // If the nested call reverted, we try to save the reason and the revert data.
66
71
  // This will be used by the caller to try to reconstruct the call stack.
67
72
  // This is only a heuristic and may not always work. It is intended to work
@@ -113,10 +118,11 @@ export class SuccessCopy extends Instruction {
113
118
  }
114
119
  async execute(context) {
115
120
  const memory = context.machineState.memory;
121
+ const addressing = Addressing.fromWire(this.indirect);
122
+ context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
116
123
  const operands = [
117
124
  this.dstOffset
118
125
  ];
119
- const addressing = Addressing.fromWire(this.indirect, operands.length);
120
126
  const [dstOffset] = addressing.resolve(operands, memory);
121
127
  // Use the direct success tracking property
122
128
  const success = context.machineState.nestedCallSuccess;
@@ -126,8 +132,8 @@ export class SuccessCopy extends Instruction {
126
132
  }
127
133
  export class Return extends Instruction {
128
134
  indirect;
129
- returnOffset;
130
135
  returnSizeOffset;
136
+ returnOffset;
131
137
  static type = 'RETURN';
132
138
  static opcode = Opcode.RETURN;
133
139
  // Informs (de)serialization. See Instruction.deserialize.
@@ -137,20 +143,20 @@ export class Return extends Instruction {
137
143
  OperandType.UINT16,
138
144
  OperandType.UINT16
139
145
  ];
140
- constructor(indirect, returnOffset, returnSizeOffset){
141
- super(), this.indirect = indirect, this.returnOffset = returnOffset, this.returnSizeOffset = returnSizeOffset;
146
+ constructor(indirect, returnSizeOffset, returnOffset){
147
+ super(), this.indirect = indirect, this.returnSizeOffset = returnSizeOffset, this.returnOffset = returnOffset;
142
148
  }
143
149
  async execute(context) {
144
150
  const memory = context.machineState.memory;
151
+ const addressing = Addressing.fromWire(this.indirect);
152
+ context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
145
153
  const operands = [
146
- this.returnOffset,
147
- this.returnSizeOffset
154
+ this.returnSizeOffset,
155
+ this.returnOffset
148
156
  ];
149
- const addressing = Addressing.fromWire(this.indirect, operands.length);
150
- const [returnOffset, returnSizeOffset] = addressing.resolve(operands, memory);
157
+ const [returnSizeOffset, returnOffset] = addressing.resolve(operands, memory);
151
158
  memory.checkTag(TypeTag.UINT32, returnSizeOffset);
152
159
  const returnSize = memory.get(returnSizeOffset).toNumber();
153
- context.machineState.consumeGas(this.gasCost(returnSize));
154
160
  const output = memory.getSlice(returnOffset, returnSize).map((word)=>word.toFr());
155
161
  context.machineState.return(output);
156
162
  }
@@ -160,8 +166,8 @@ export class Return extends Instruction {
160
166
  }
161
167
  export class Revert extends Instruction {
162
168
  indirect;
163
- returnOffset;
164
169
  retSizeOffset;
170
+ returnOffset;
165
171
  static type = 'REVERT';
166
172
  static opcode = Opcode.REVERT_8;
167
173
  static wireFormat8 = [
@@ -176,20 +182,20 @@ export class Revert extends Instruction {
176
182
  OperandType.UINT16,
177
183
  OperandType.UINT16
178
184
  ];
179
- constructor(indirect, returnOffset, retSizeOffset){
180
- super(), this.indirect = indirect, this.returnOffset = returnOffset, this.retSizeOffset = retSizeOffset;
185
+ constructor(indirect, retSizeOffset, returnOffset){
186
+ super(), this.indirect = indirect, this.retSizeOffset = retSizeOffset, this.returnOffset = returnOffset;
181
187
  }
182
188
  async execute(context) {
183
189
  const memory = context.machineState.memory;
190
+ const addressing = Addressing.fromWire(this.indirect);
191
+ context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
184
192
  const operands = [
185
- this.returnOffset,
186
- this.retSizeOffset
193
+ this.retSizeOffset,
194
+ this.returnOffset
187
195
  ];
188
- const addressing = Addressing.fromWire(this.indirect, operands.length);
189
- const [returnOffset, retSizeOffset] = addressing.resolve(operands, memory);
196
+ const [retSizeOffset, returnOffset] = addressing.resolve(operands, memory);
190
197
  memory.checkTag(TypeTag.UINT32, retSizeOffset);
191
198
  const retSize = memory.get(retSizeOffset).toNumber();
192
- context.machineState.consumeGas(this.gasCost(retSize));
193
199
  const output = memory.getSlice(returnOffset, retSize).map((word)=>word.toFr());
194
200
  context.machineState.revert(output);
195
201
  }
@@ -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":"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;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,KAAK;IAG9B,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAKvC;gBAGQ,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,iBAAiB,EAAE,MAAM;IAKtB,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAqBzD;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;gBAGQ,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM;IAMhB,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAoBzD;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;CA2BzD"}
@@ -22,12 +22,12 @@ export class Poseidon2 extends Instruction {
22
22
  }
23
23
  async execute(context) {
24
24
  const memory = context.machineState.memory;
25
- context.machineState.consumeGas(this.gasCost());
25
+ const addressing = Addressing.fromWire(this.indirect);
26
+ context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
26
27
  const operands = [
27
28
  this.inputStateOffset,
28
29
  this.outputStateOffset
29
30
  ];
30
- const addressing = Addressing.fromWire(this.indirect, operands.length);
31
31
  const [inputOffset, outputOffset] = addressing.resolve(operands, memory);
32
32
  const inputState = memory.getSlice(inputOffset, Poseidon2.stateSize);
33
33
  memory.checkTagsRange(TypeTag.FIELD, inputOffset, Poseidon2.stateSize);
@@ -55,13 +55,13 @@ export class KeccakF1600 extends Instruction {
55
55
  async execute(context) {
56
56
  const inputSize = 25;
57
57
  const memory = context.machineState.memory;
58
+ const addressing = Addressing.fromWire(this.indirect);
59
+ context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
58
60
  const operands = [
59
61
  this.dstOffset,
60
62
  this.inputOffset
61
63
  ];
62
- const addressing = Addressing.fromWire(this.indirect, operands.length);
63
64
  const [dstOffset, inputOffset] = addressing.resolve(operands, memory);
64
- context.machineState.consumeGas(this.gasCost());
65
65
  const stateData = memory.getSlice(inputOffset, inputSize).map((word)=>word.toBigInt());
66
66
  memory.checkTagsRange(TypeTag.UINT64, inputOffset, inputSize);
67
67
  const updatedState = keccakf1600(stateData);
@@ -91,15 +91,15 @@ export class Sha256Compression extends Instruction {
91
91
  const STATE_SIZE = 8;
92
92
  const INPUTS_SIZE = 16;
93
93
  const memory = context.machineState.memory;
94
+ const addressing = Addressing.fromWire(this.indirect);
95
+ context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
94
96
  const operands = [
95
97
  this.outputOffset,
96
98
  this.stateOffset,
97
99
  this.inputsOffset
98
100
  ];
99
- const addressing = Addressing.fromWire(this.indirect, operands.length);
100
101
  const [outputOffset, stateOffset, inputsOffset] = addressing.resolve(operands, memory);
101
102
  // Note: size of output is same as size of state
102
- context.machineState.consumeGas(this.gasCost());
103
103
  const inputs = Uint32Array.from(memory.getSlice(inputsOffset, INPUTS_SIZE).map((word)=>word.toNumber()));
104
104
  const state = Uint32Array.from(memory.getSlice(stateOffset, STATE_SIZE).map((word)=>word.toNumber()));
105
105
  memory.checkTagsRange(TypeTag.UINT32, inputsOffset, INPUTS_SIZE);
@@ -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: BufferCursor | Buffer) => 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.
@@ -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;aACa,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAE3D;;OAEG;IACI,SAAS,IAAI,OAAO;IAI3B;;;;OAIG;IACI,QAAQ,IAAI,MAAM;WAUX,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;IAKP,QAAQ,IAAI,MAAM;IAOzB;;;;;OAKG;IACI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,WAAW,GAAG,UAAU;IAS9E;;;;;OAKG;WACW,EAAE,CAAC,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,WAAW,EAAE;0BAElD,YAAY,GAAG,MAAM,KAAG,WAAW;;IAQzD;;;OAGG;IACH,SAAS,CAAC,WAAW,CAAC,qBAAqB,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,GAAG,GAAG;IAIxF;;;;OAIG;IACH,SAAS,CAAC,cAAc,CAAC,aAAa,GAAE,MAAU,GAAG,GAAG;IAIxD;;;OAGG;IACH,IAAW,IAAI,IAAI,MAAM,CAMxB;IAED;;;OAGG;IACH,IAAW,MAAM,IAAI,MAAM,CAM1B;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.
@@ -23,15 +23,15 @@ import { Opcode, deserialize, serializeAs } from '../serialization/instruction_s
23
23
  return instructionStr;
24
24
  }
25
25
  // Default deserialization which uses Class.opcode and Class.wireFormat.
26
- static deserialize(buf) {
27
- return this.as(this.wireFormat).deserialize(buf);
26
+ static fromBuffer(buf) {
27
+ return this.as(this.wireFormat).fromBuffer(buf);
28
28
  }
29
29
  // Default serialization which uses Class.opcode and Class.wireFormat.
30
- serialize() {
30
+ toBuffer() {
31
31
  const klass = this.constructor;
32
32
  assert(klass.opcode !== undefined && klass.opcode !== null);
33
33
  assert(klass.wireFormat !== undefined && klass.wireFormat !== null);
34
- return this.as(klass.opcode, klass.wireFormat).serialize();
34
+ return this.as(klass.opcode, klass.wireFormat).toBuffer();
35
35
  }
36
36
  /**
37
37
  * Returns a new instruction instance that can be serialized with the given opcode and wire format.
@@ -39,7 +39,7 @@ import { Opcode, deserialize, serializeAs } from '../serialization/instruction_s
39
39
  * @param wireFormat The wire format of the instruction.
40
40
  * @returns The new instruction instance.
41
41
  */ as(opcode, wireFormat) {
42
- return Object.defineProperty(this, 'serialize', {
42
+ return Object.defineProperty(this, 'toBuffer', {
43
43
  value: ()=>{
44
44
  return serializeAs(wireFormat, opcode, this);
45
45
  },
@@ -53,7 +53,7 @@ import { Opcode, deserialize, serializeAs } from '../serialization/instruction_s
53
53
  * @returns The new instruction class.
54
54
  */ static as(wireFormat) {
55
55
  return Object.assign(this, {
56
- deserialize: (buf)=>{
56
+ fromBuffer: (buf)=>{
57
57
  const res = deserialize(buf, wireFormat);
58
58
  const args = res.slice(1); // Remove opcode.
59
59
  return new this(...args);
@@ -61,12 +61,17 @@ import { Opcode, deserialize, serializeAs } from '../serialization/instruction_s
61
61
  });
62
62
  }
63
63
  /**
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);
64
+ * Returns the base gas cost for the instruction.
65
+ * @returns The base gas cost.
66
+ */ baseGasCost(indirectOperandsCount, relativeOperandsCount) {
67
+ return sumGas(getBaseGasCost(this.opcode), computeAddressingCost(indirectOperandsCount, relativeOperandsCount));
68
+ }
69
+ /**
70
+ * Computes the dynamic gas cost for the instruction
71
+ * @param dynMultiplier - The multiplier for the dynamic gas cost.
72
+ * @returns The dynamic gas cost.
73
+ */ dynamicGasCost(dynMultiplier = 0) {
74
+ return mulGas(getDynamicGasCost(this.opcode), dynMultiplier);
70
75
  }
71
76
  /**
72
77
  * Returns the stringified type of the instruction.
@@ -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
74
  //# sourceMappingURL=memory.d.ts.map
@@ -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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"}