@aztec/simulator 0.0.1-commit.b655e406 → 0.0.1-commit.b9865e97

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 (380) hide show
  1. package/README.md +6 -4
  2. package/dest/client.d.ts +1 -1
  3. package/dest/common/errors.d.ts +2 -2
  4. package/dest/common/errors.d.ts.map +1 -1
  5. package/dest/common/index.d.ts +1 -1
  6. package/dest/common/stats/index.d.ts +1 -1
  7. package/dest/common/stats/stats.d.ts +1 -1
  8. package/dest/private/acvm/acvm.d.ts +4 -2
  9. package/dest/private/acvm/acvm.d.ts.map +1 -1
  10. package/dest/private/acvm/acvm.js +4 -3
  11. package/dest/private/acvm/acvm_types.d.ts +1 -1
  12. package/dest/private/acvm/deserialize.d.ts +2 -2
  13. package/dest/private/acvm/deserialize.d.ts.map +1 -1
  14. package/dest/private/acvm/deserialize.js +1 -1
  15. package/dest/private/acvm/index.d.ts +1 -1
  16. package/dest/private/acvm/serialize.d.ts +2 -2
  17. package/dest/private/acvm/serialize.d.ts.map +1 -1
  18. package/dest/private/acvm/serialize.js +1 -1
  19. package/dest/private/acvm_native.d.ts +5 -3
  20. package/dest/private/acvm_native.d.ts.map +1 -1
  21. package/dest/private/acvm_native.js +8 -6
  22. package/dest/private/acvm_wasm.d.ts +4 -3
  23. package/dest/private/acvm_wasm.d.ts.map +1 -1
  24. package/dest/private/acvm_wasm.js +7 -5
  25. package/dest/private/acvm_wasm_with_blobs.d.ts +1 -1
  26. package/dest/private/acvm_wasm_with_blobs.d.ts.map +1 -1
  27. package/dest/private/circuit_recording/circuit_recorder.d.ts +4 -3
  28. package/dest/private/circuit_recording/circuit_recorder.d.ts.map +1 -1
  29. package/dest/private/circuit_recording/circuit_recorder.js +23 -20
  30. package/dest/private/circuit_recording/file_circuit_recorder.d.ts +3 -2
  31. package/dest/private/circuit_recording/file_circuit_recorder.d.ts.map +1 -1
  32. package/dest/private/circuit_recording/file_circuit_recorder.js +2 -2
  33. package/dest/private/circuit_recording/memory_circuit_recorder.d.ts +7 -2
  34. package/dest/private/circuit_recording/memory_circuit_recorder.d.ts.map +1 -1
  35. package/dest/private/circuit_recording/memory_circuit_recorder.js +4 -4
  36. package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts +1 -1
  37. package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts.map +1 -1
  38. package/dest/private/circuit_simulator.d.ts +1 -1
  39. package/dest/private/factory.d.ts +3 -3
  40. package/dest/private/factory.d.ts.map +1 -1
  41. package/dest/private/factory.js +7 -4
  42. package/dest/public/avm/testing/account_proof_fetcher.d.ts +2 -0
  43. package/dest/public/avm/testing/account_proof_fetcher.d.ts.map +1 -0
  44. package/dest/public/avm/testing/account_proof_fetcher.js +152 -0
  45. package/dest/public/avm/{fixtures → testing}/base_avm_simulation_tester.d.ts +3 -2
  46. package/dest/public/avm/testing/base_avm_simulation_tester.d.ts.map +1 -0
  47. package/dest/public/avm/{fixtures → testing}/base_avm_simulation_tester.js +18 -3
  48. package/dest/public/avm/{fixtures → testing}/utils.d.ts +4 -10
  49. package/dest/public/avm/testing/utils.d.ts.map +1 -0
  50. package/dest/public/avm/{fixtures → testing}/utils.js +6 -35
  51. package/dest/public/contracts_db_checkpoint.d.ts +16 -0
  52. package/dest/public/contracts_db_checkpoint.d.ts.map +1 -0
  53. package/dest/public/contracts_db_checkpoint.js +30 -0
  54. package/dest/public/db_interfaces.d.ts +14 -2
  55. package/dest/public/db_interfaces.d.ts.map +1 -1
  56. package/dest/public/executor_metrics.d.ts +3 -2
  57. package/dest/public/executor_metrics.d.ts.map +1 -1
  58. package/dest/public/executor_metrics.js +13 -34
  59. package/dest/public/executor_metrics_interface.d.ts +3 -2
  60. package/dest/public/executor_metrics_interface.d.ts.map +1 -1
  61. package/dest/public/fixtures/amm_test.d.ts +1 -1
  62. package/dest/public/fixtures/amm_test.js +4 -4
  63. package/dest/public/fixtures/bulk_test.d.ts +3 -3
  64. package/dest/public/fixtures/bulk_test.d.ts.map +1 -1
  65. package/dest/public/fixtures/bulk_test.js +36 -73
  66. package/dest/public/fixtures/custom_bytecode_tester.d.ts +29 -7
  67. package/dest/public/fixtures/custom_bytecode_tester.d.ts.map +1 -1
  68. package/dest/public/fixtures/custom_bytecode_tester.js +36 -12
  69. package/dest/public/fixtures/index.d.ts +2 -3
  70. package/dest/public/fixtures/index.d.ts.map +1 -1
  71. package/dest/public/fixtures/index.js +1 -2
  72. package/dest/public/fixtures/public_tx_simulation_tester.d.ts +30 -11
  73. package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
  74. package/dest/public/fixtures/public_tx_simulation_tester.js +98 -31
  75. package/dest/public/fixtures/simple_contract_data_source.d.ts +5 -4
  76. package/dest/public/fixtures/simple_contract_data_source.d.ts.map +1 -1
  77. package/dest/public/fixtures/simple_contract_data_source.js +5 -5
  78. package/dest/public/fixtures/token_test.d.ts +6 -2
  79. package/dest/public/fixtures/token_test.d.ts.map +1 -1
  80. package/dest/public/fixtures/token_test.js +13 -12
  81. package/dest/public/fixtures/utils.d.ts +3 -3
  82. package/dest/public/fixtures/utils.d.ts.map +1 -1
  83. package/dest/public/fixtures/utils.js +23 -23
  84. package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts +62 -0
  85. package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts.map +1 -0
  86. package/dest/public/fuzzing/avm_fuzzer_simulator.js +176 -0
  87. package/dest/public/fuzzing/avm_simulator_bin.d.ts +2 -0
  88. package/dest/public/fuzzing/avm_simulator_bin.d.ts.map +1 -0
  89. package/dest/public/fuzzing/avm_simulator_bin.js +118 -0
  90. package/dest/public/index.d.ts +3 -2
  91. package/dest/public/index.d.ts.map +1 -1
  92. package/dest/public/index.js +1 -1
  93. package/dest/public/public_db_sources.d.ts +29 -66
  94. package/dest/public/public_db_sources.d.ts.map +1 -1
  95. package/dest/public/public_db_sources.js +83 -134
  96. package/dest/public/public_errors.d.ts +1 -1
  97. package/dest/public/public_errors.d.ts.map +1 -1
  98. package/dest/public/public_processor/guarded_merkle_tree.d.ts +8 -5
  99. package/dest/public/public_processor/guarded_merkle_tree.d.ts.map +1 -1
  100. package/dest/public/public_processor/guarded_merkle_tree.js +12 -4
  101. package/dest/public/public_processor/public_processor.d.ts +19 -21
  102. package/dest/public/public_processor/public_processor.d.ts.map +1 -1
  103. package/dest/public/public_processor/public_processor.js +553 -123
  104. package/dest/public/public_processor/public_processor_metrics.d.ts +5 -2
  105. package/dest/public/public_processor/public_processor_metrics.d.ts.map +1 -1
  106. package/dest/public/public_processor/public_processor_metrics.js +36 -45
  107. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts +19 -0
  108. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts.map +1 -0
  109. package/dest/public/public_tx_simulator/contract_provider_for_cpp.js +99 -0
  110. package/dest/public/public_tx_simulator/dumping_public_tx_simulator.d.ts +23 -0
  111. package/dest/public/public_tx_simulator/dumping_public_tx_simulator.d.ts.map +1 -0
  112. package/dest/public/public_tx_simulator/dumping_public_tx_simulator.js +52 -0
  113. package/dest/public/public_tx_simulator/factories.d.ts +14 -0
  114. package/dest/public/public_tx_simulator/factories.d.ts.map +1 -0
  115. package/dest/public/public_tx_simulator/factories.js +28 -0
  116. package/dest/public/public_tx_simulator/index.d.ts +5 -3
  117. package/dest/public/public_tx_simulator/index.d.ts.map +1 -1
  118. package/dest/public/public_tx_simulator/index.js +3 -2
  119. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +42 -89
  120. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
  121. package/dest/public/public_tx_simulator/public_tx_simulator.js +101 -334
  122. package/dest/public/public_tx_simulator/public_tx_simulator_base.d.ts +22 -0
  123. package/dest/public/public_tx_simulator/public_tx_simulator_base.d.ts.map +1 -0
  124. package/dest/public/public_tx_simulator/public_tx_simulator_base.js +28 -0
  125. package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts +25 -2
  126. package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts.map +1 -1
  127. package/dest/public/side_effect_errors.d.ts +1 -1
  128. package/dest/public/side_effect_errors.d.ts.map +1 -1
  129. package/dest/public/test_executor_metrics.d.ts +11 -4
  130. package/dest/public/test_executor_metrics.d.ts.map +1 -1
  131. package/dest/public/test_executor_metrics.js +29 -6
  132. package/dest/public/unique_class_ids.d.ts +1 -1
  133. package/dest/public/unique_class_ids.d.ts.map +1 -1
  134. package/dest/public/utils.d.ts +1 -1
  135. package/dest/server.d.ts +1 -1
  136. package/dest/testing.d.ts +1 -1
  137. package/package.json +22 -22
  138. package/src/common/errors.ts +1 -1
  139. package/src/private/acvm/acvm.ts +4 -3
  140. package/src/private/acvm/deserialize.ts +1 -1
  141. package/src/private/acvm/serialize.ts +1 -1
  142. package/src/private/acvm_native.ts +11 -5
  143. package/src/private/acvm_wasm.ts +11 -4
  144. package/src/private/circuit_recording/circuit_recorder.ts +24 -21
  145. package/src/private/circuit_recording/file_circuit_recorder.ts +7 -2
  146. package/src/private/circuit_recording/memory_circuit_recorder.ts +6 -4
  147. package/src/private/factory.ts +7 -4
  148. package/src/public/avm/testing/account_proof.json +553 -0
  149. package/src/public/avm/testing/account_proof_fetcher.ts +166 -0
  150. package/src/public/avm/{fixtures → testing}/base_avm_simulation_tester.ts +23 -3
  151. package/src/public/avm/{fixtures → testing}/utils.ts +6 -41
  152. package/src/public/contracts_db_checkpoint.ts +41 -0
  153. package/src/public/db_interfaces.ts +16 -1
  154. package/src/public/executor_metrics.ts +11 -34
  155. package/src/public/executor_metrics_interface.ts +2 -1
  156. package/src/public/fixtures/amm_test.ts +4 -4
  157. package/src/public/fixtures/bulk_test.ts +38 -13
  158. package/src/public/fixtures/custom_bytecode_tester.ts +54 -20
  159. package/src/public/fixtures/index.ts +5 -2
  160. package/src/public/fixtures/public_tx_simulation_tester.ts +129 -27
  161. package/src/public/fixtures/simple_contract_data_source.ts +9 -10
  162. package/src/public/fixtures/token_test.ts +18 -10
  163. package/src/public/fixtures/utils.ts +28 -25
  164. package/src/public/fuzzing/avm_fuzzer_simulator.ts +285 -0
  165. package/src/public/fuzzing/avm_simulator_bin.ts +173 -0
  166. package/src/public/index.ts +4 -2
  167. package/src/public/public_db_sources.ts +112 -174
  168. package/src/public/public_processor/guarded_merkle_tree.ts +14 -6
  169. package/src/public/public_processor/public_processor.ts +225 -136
  170. package/src/public/public_processor/public_processor_metrics.ts +28 -44
  171. package/src/public/public_tx_simulator/contract_provider_for_cpp.ts +125 -0
  172. package/src/public/public_tx_simulator/dumping_public_tx_simulator.ts +83 -0
  173. package/src/public/public_tx_simulator/factories.ts +44 -0
  174. package/src/public/public_tx_simulator/index.ts +4 -2
  175. package/src/public/public_tx_simulator/public_tx_simulator.ts +153 -500
  176. package/src/public/public_tx_simulator/public_tx_simulator_base.ts +35 -0
  177. package/src/public/public_tx_simulator/public_tx_simulator_interface.ts +24 -2
  178. package/src/public/test_executor_metrics.ts +34 -8
  179. package/dest/public/avm/avm_context.d.ts +0 -41
  180. package/dest/public/avm/avm_context.d.ts.map +0 -1
  181. package/dest/public/avm/avm_context.js +0 -44
  182. package/dest/public/avm/avm_contract_call_result.d.ts +0 -32
  183. package/dest/public/avm/avm_contract_call_result.d.ts.map +0 -1
  184. package/dest/public/avm/avm_contract_call_result.js +0 -54
  185. package/dest/public/avm/avm_execution_environment.d.ts +0 -23
  186. package/dest/public/avm/avm_execution_environment.d.ts.map +0 -1
  187. package/dest/public/avm/avm_execution_environment.js +0 -36
  188. package/dest/public/avm/avm_gas.d.ts +0 -44
  189. package/dest/public/avm/avm_gas.d.ts.map +0 -1
  190. package/dest/public/avm/avm_gas.js +0 -195
  191. package/dest/public/avm/avm_machine_state.d.ts +0 -97
  192. package/dest/public/avm/avm_machine_state.d.ts.map +0 -1
  193. package/dest/public/avm/avm_machine_state.js +0 -109
  194. package/dest/public/avm/avm_memory_types.d.ts +0 -275
  195. package/dest/public/avm/avm_memory_types.d.ts.map +0 -1
  196. package/dest/public/avm/avm_memory_types.js +0 -351
  197. package/dest/public/avm/avm_simulator.d.ts +0 -39
  198. package/dest/public/avm/avm_simulator.d.ts.map +0 -1
  199. package/dest/public/avm/avm_simulator.js +0 -190
  200. package/dest/public/avm/avm_simulator_interface.d.ts +0 -9
  201. package/dest/public/avm/avm_simulator_interface.d.ts.map +0 -1
  202. package/dest/public/avm/avm_simulator_interface.js +0 -3
  203. package/dest/public/avm/errors.d.ts +0 -98
  204. package/dest/public/avm/errors.d.ts.map +0 -1
  205. package/dest/public/avm/errors.js +0 -129
  206. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts +0 -22
  207. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts.map +0 -1
  208. package/dest/public/avm/fixtures/avm_simulation_tester.js +0 -74
  209. package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts.map +0 -1
  210. package/dest/public/avm/fixtures/initializers.d.ts +0 -43
  211. package/dest/public/avm/fixtures/initializers.d.ts.map +0 -1
  212. package/dest/public/avm/fixtures/initializers.js +0 -42
  213. package/dest/public/avm/fixtures/utils.d.ts.map +0 -1
  214. package/dest/public/avm/index.d.ts +0 -2
  215. package/dest/public/avm/index.d.ts.map +0 -1
  216. package/dest/public/avm/index.js +0 -1
  217. package/dest/public/avm/opcodes/accrued_substate.d.ts +0 -75
  218. package/dest/public/avm/opcodes/accrued_substate.d.ts.map +0 -1
  219. package/dest/public/avm/opcodes/accrued_substate.js +0 -255
  220. package/dest/public/avm/opcodes/addressing_mode.d.ts +0 -31
  221. package/dest/public/avm/opcodes/addressing_mode.d.ts.map +0 -1
  222. package/dest/public/avm/opcodes/addressing_mode.js +0 -94
  223. package/dest/public/avm/opcodes/arithmetic.d.ts +0 -47
  224. package/dest/public/avm/opcodes/arithmetic.d.ts.map +0 -1
  225. package/dest/public/avm/opcodes/arithmetic.js +0 -87
  226. package/dest/public/avm/opcodes/bitwise.d.ts +0 -42
  227. package/dest/public/avm/opcodes/bitwise.d.ts.map +0 -1
  228. package/dest/public/avm/opcodes/bitwise.js +0 -99
  229. package/dest/public/avm/opcodes/comparators.d.ts +0 -25
  230. package/dest/public/avm/opcodes/comparators.d.ts.map +0 -1
  231. package/dest/public/avm/opcodes/comparators.js +0 -43
  232. package/dest/public/avm/opcodes/contract.d.ts +0 -20
  233. package/dest/public/avm/opcodes/contract.d.ts.map +0 -1
  234. package/dest/public/avm/opcodes/contract.js +0 -65
  235. package/dest/public/avm/opcodes/control_flow.d.ts +0 -41
  236. package/dest/public/avm/opcodes/control_flow.d.ts.map +0 -1
  237. package/dest/public/avm/opcodes/control_flow.js +0 -107
  238. package/dest/public/avm/opcodes/conversion.d.ts +0 -18
  239. package/dest/public/avm/opcodes/conversion.d.ts.map +0 -1
  240. package/dest/public/avm/opcodes/conversion.js +0 -333
  241. package/dest/public/avm/opcodes/ec_add.d.ts +0 -19
  242. package/dest/public/avm/opcodes/ec_add.d.ts.map +0 -1
  243. package/dest/public/avm/opcodes/ec_add.js +0 -84
  244. package/dest/public/avm/opcodes/environment_getters.d.ts +0 -28
  245. package/dest/public/avm/opcodes/environment_getters.d.ts.map +0 -1
  246. package/dest/public/avm/opcodes/environment_getters.js +0 -77
  247. package/dest/public/avm/opcodes/external_calls.d.ts +0 -59
  248. package/dest/public/avm/opcodes/external_calls.d.ts.map +0 -1
  249. package/dest/public/avm/opcodes/external_calls.js +0 -209
  250. package/dest/public/avm/opcodes/hashing.d.ts +0 -36
  251. package/dest/public/avm/opcodes/hashing.d.ts.map +0 -1
  252. package/dest/public/avm/opcodes/hashing.js +0 -114
  253. package/dest/public/avm/opcodes/index.d.ts +0 -16
  254. package/dest/public/avm/opcodes/index.d.ts.map +0 -1
  255. package/dest/public/avm/opcodes/index.js +0 -15
  256. package/dest/public/avm/opcodes/instruction.d.ts +0 -74
  257. package/dest/public/avm/opcodes/instruction.d.ts.map +0 -1
  258. package/dest/public/avm/opcodes/instruction.js +0 -95
  259. package/dest/public/avm/opcodes/instruction_impl.d.ts +0 -19
  260. package/dest/public/avm/opcodes/instruction_impl.d.ts.map +0 -1
  261. package/dest/public/avm/opcodes/instruction_impl.js +0 -30
  262. package/dest/public/avm/opcodes/memory.d.ts +0 -74
  263. package/dest/public/avm/opcodes/memory.d.ts.map +0 -1
  264. package/dest/public/avm/opcodes/memory.js +0 -257
  265. package/dest/public/avm/opcodes/misc.d.ts +0 -18
  266. package/dest/public/avm/opcodes/misc.d.ts.map +0 -1
  267. package/dest/public/avm/opcodes/misc.js +0 -73
  268. package/dest/public/avm/opcodes/storage.d.ts +0 -24
  269. package/dest/public/avm/opcodes/storage.d.ts.map +0 -1
  270. package/dest/public/avm/opcodes/storage.js +0 -68
  271. package/dest/public/avm/revert_reason.d.ts +0 -18
  272. package/dest/public/avm/revert_reason.d.ts.map +0 -1
  273. package/dest/public/avm/revert_reason.js +0 -38
  274. package/dest/public/avm/serialization/buffer_cursor.d.ts +0 -26
  275. package/dest/public/avm/serialization/buffer_cursor.d.ts.map +0 -1
  276. package/dest/public/avm/serialization/buffer_cursor.js +0 -99
  277. package/dest/public/avm/serialization/bytecode_serialization.d.ts +0 -17
  278. package/dest/public/avm/serialization/bytecode_serialization.d.ts.map +0 -1
  279. package/dest/public/avm/serialization/bytecode_serialization.js +0 -333
  280. package/dest/public/avm/serialization/instruction_serialization.d.ts +0 -114
  281. package/dest/public/avm/serialization/instruction_serialization.d.ts.map +0 -1
  282. package/dest/public/avm/serialization/instruction_serialization.js +0 -261
  283. package/dest/public/avm/test_utils.d.ts +0 -15
  284. package/dest/public/avm/test_utils.d.ts.map +0 -1
  285. package/dest/public/avm/test_utils.js +0 -44
  286. package/dest/public/debug_fn_name.d.ts +0 -5
  287. package/dest/public/debug_fn_name.d.ts.map +0 -1
  288. package/dest/public/debug_fn_name.js +0 -9
  289. package/dest/public/fixtures/custom_bytecode_tests.d.ts +0 -9
  290. package/dest/public/fixtures/custom_bytecode_tests.d.ts.map +0 -1
  291. package/dest/public/fixtures/custom_bytecode_tests.js +0 -109
  292. package/dest/public/fixtures/minimal_public_tx.d.ts +0 -10
  293. package/dest/public/fixtures/minimal_public_tx.d.ts.map +0 -1
  294. package/dest/public/fixtures/minimal_public_tx.js +0 -29
  295. package/dest/public/hinting_db_sources.d.ts +0 -70
  296. package/dest/public/hinting_db_sources.d.ts.map +0 -1
  297. package/dest/public/hinting_db_sources.js +0 -297
  298. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts +0 -41
  299. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts.map +0 -1
  300. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.js +0 -89
  301. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts +0 -24
  302. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts.map +0 -1
  303. package/dest/public/public_tx_simulator/measured_public_tx_simulator.js +0 -51
  304. package/dest/public/public_tx_simulator/public_tx_context.d.ts +0 -127
  305. package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +0 -1
  306. package/dest/public/public_tx_simulator/public_tx_context.js +0 -292
  307. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts +0 -21
  308. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts.map +0 -1
  309. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.js +0 -39
  310. package/dest/public/side_effect_trace.d.ts +0 -87
  311. package/dest/public/side_effect_trace.d.ts.map +0 -1
  312. package/dest/public/side_effect_trace.js +0 -199
  313. package/dest/public/side_effect_trace_interface.d.ts +0 -23
  314. package/dest/public/side_effect_trace_interface.d.ts.map +0 -1
  315. package/dest/public/side_effect_trace_interface.js +0 -1
  316. package/dest/public/state_manager/index.d.ts +0 -2
  317. package/dest/public/state_manager/index.d.ts.map +0 -1
  318. package/dest/public/state_manager/index.js +0 -1
  319. package/dest/public/state_manager/nullifiers.d.ts +0 -61
  320. package/dest/public/state_manager/nullifiers.d.ts.map +0 -1
  321. package/dest/public/state_manager/nullifiers.js +0 -92
  322. package/dest/public/state_manager/public_storage.d.ts +0 -66
  323. package/dest/public/state_manager/public_storage.d.ts.map +0 -1
  324. package/dest/public/state_manager/public_storage.js +0 -145
  325. package/dest/public/state_manager/state_manager.d.ts +0 -166
  326. package/dest/public/state_manager/state_manager.d.ts.map +0 -1
  327. package/dest/public/state_manager/state_manager.js +0 -391
  328. package/dest/public/tx_contract_cache.d.ts +0 -41
  329. package/dest/public/tx_contract_cache.d.ts.map +0 -1
  330. package/dest/public/tx_contract_cache.js +0 -49
  331. package/src/public/avm/avm_context.ts +0 -61
  332. package/src/public/avm/avm_contract_call_result.ts +0 -67
  333. package/src/public/avm/avm_execution_environment.ts +0 -48
  334. package/src/public/avm/avm_gas.ts +0 -183
  335. package/src/public/avm/avm_machine_state.ts +0 -169
  336. package/src/public/avm/avm_memory_types.ts +0 -436
  337. package/src/public/avm/avm_simulator.ts +0 -274
  338. package/src/public/avm/avm_simulator_interface.ts +0 -8
  339. package/src/public/avm/errors.ts +0 -163
  340. package/src/public/avm/fixtures/avm_simulation_tester.ts +0 -108
  341. package/src/public/avm/fixtures/initializers.ts +0 -104
  342. package/src/public/avm/index.ts +0 -1
  343. package/src/public/avm/opcodes/accrued_substate.ts +0 -288
  344. package/src/public/avm/opcodes/addressing_mode.ts +0 -111
  345. package/src/public/avm/opcodes/arithmetic.ts +0 -117
  346. package/src/public/avm/opcodes/bitwise.ts +0 -113
  347. package/src/public/avm/opcodes/comparators.ts +0 -55
  348. package/src/public/avm/opcodes/contract.ts +0 -75
  349. package/src/public/avm/opcodes/control_flow.ts +0 -123
  350. package/src/public/avm/opcodes/conversion.ts +0 -104
  351. package/src/public/avm/opcodes/ec_add.ts +0 -96
  352. package/src/public/avm/opcodes/environment_getters.ts +0 -87
  353. package/src/public/avm/opcodes/external_calls.ts +0 -260
  354. package/src/public/avm/opcodes/hashing.ts +0 -145
  355. package/src/public/avm/opcodes/index.ts +0 -15
  356. package/src/public/avm/opcodes/instruction.ts +0 -136
  357. package/src/public/avm/opcodes/instruction_impl.ts +0 -36
  358. package/src/public/avm/opcodes/memory.ts +0 -293
  359. package/src/public/avm/opcodes/misc.ts +0 -102
  360. package/src/public/avm/opcodes/storage.ts +0 -87
  361. package/src/public/avm/revert_reason.ts +0 -55
  362. package/src/public/avm/serialization/buffer_cursor.ts +0 -118
  363. package/src/public/avm/serialization/bytecode_serialization.ts +0 -204
  364. package/src/public/avm/serialization/instruction_serialization.ts +0 -249
  365. package/src/public/avm/test_utils.ts +0 -64
  366. package/src/public/debug_fn_name.ts +0 -18
  367. package/src/public/fixtures/custom_bytecode_tests.ts +0 -135
  368. package/src/public/fixtures/minimal_public_tx.ts +0 -36
  369. package/src/public/hinting_db_sources.ts +0 -505
  370. package/src/public/public_tx_simulator/cpp_public_tx_simulator.ts +0 -128
  371. package/src/public/public_tx_simulator/measured_public_tx_simulator.ts +0 -109
  372. package/src/public/public_tx_simulator/public_tx_context.ts +0 -471
  373. package/src/public/public_tx_simulator/telemetry_public_tx_simulator.ts +0 -63
  374. package/src/public/side_effect_trace.ts +0 -290
  375. package/src/public/side_effect_trace_interface.ts +0 -28
  376. package/src/public/state_manager/index.ts +0 -1
  377. package/src/public/state_manager/nullifiers.ts +0 -103
  378. package/src/public/state_manager/public_storage.ts +0 -174
  379. package/src/public/state_manager/state_manager.ts +0 -560
  380. package/src/public/tx_contract_cache.ts +0 -69
@@ -1,195 +0,0 @@
1
- import * as c from '@aztec/constants';
2
- import { TypeTag } from './avm_memory_types.js';
3
- import { InstructionExecutionError } from './errors.js';
4
- import { Opcode } from './serialization/instruction_serialization.js';
5
- /** Maps a Gas struct to gasLeft properties. */ export function gasToGasLeft(gas) {
6
- return {
7
- l2GasLeft: gas.l2Gas,
8
- daGasLeft: gas.daGas
9
- };
10
- }
11
- /** Maps gasLeft properties to a gas struct. */ export function gasLeftToGas(gasLeft) {
12
- return {
13
- l2Gas: gasLeft.l2GasLeft,
14
- daGas: gasLeft.daGasLeft
15
- };
16
- }
17
- /** Creates a new instance with all values set to zero except the ones set. */ export function makeGas(gasCost) {
18
- return {
19
- ...EmptyGas,
20
- ...gasCost
21
- };
22
- }
23
- /** Sums together multiple instances of Gas. */ export function sumGas(...gases) {
24
- return gases.reduce((acc, gas)=>({
25
- l2Gas: acc.l2Gas + (gas.l2Gas ?? 0),
26
- daGas: acc.daGas + (gas.daGas ?? 0)
27
- }), EmptyGas);
28
- }
29
- /** Multiplies a gas instance by a scalar. */ export function mulGas(gas, scalar) {
30
- return {
31
- l2Gas: (gas.l2Gas ?? 0) * scalar,
32
- daGas: (gas.daGas ?? 0) * scalar
33
- };
34
- }
35
- /** Zero gas across all gas dimensions. */ export const EmptyGas = {
36
- l2Gas: 0,
37
- daGas: 0
38
- };
39
- function makeCost(l2Gas, daGas) {
40
- return {
41
- l2Gas,
42
- daGas
43
- };
44
- }
45
- /** Dimensions of gas usage: L1, L2, and DA. */ export const GAS_DIMENSIONS = [
46
- 'l2Gas',
47
- 'daGas'
48
- ];
49
- /** Base gas costs for each instruction. Additional gas cost may be added on top due to memory or storage accesses, etc. */ const BASE_GAS_COSTS = {
50
- [Opcode.ADD_8]: makeCost(c.AVM_ADD_BASE_L2_GAS, 0),
51
- [Opcode.ADD_16]: makeCost(c.AVM_ADD_BASE_L2_GAS, 0),
52
- [Opcode.SUB_8]: makeCost(c.AVM_SUB_BASE_L2_GAS, 0),
53
- [Opcode.SUB_16]: makeCost(c.AVM_SUB_BASE_L2_GAS, 0),
54
- [Opcode.MUL_8]: makeCost(c.AVM_MUL_BASE_L2_GAS, 0),
55
- [Opcode.MUL_16]: makeCost(c.AVM_MUL_BASE_L2_GAS, 0),
56
- [Opcode.DIV_8]: makeCost(c.AVM_DIV_BASE_L2_GAS, 0),
57
- [Opcode.DIV_16]: makeCost(c.AVM_DIV_BASE_L2_GAS, 0),
58
- [Opcode.FDIV_8]: makeCost(c.AVM_FDIV_BASE_L2_GAS, 0),
59
- [Opcode.FDIV_16]: makeCost(c.AVM_FDIV_BASE_L2_GAS, 0),
60
- [Opcode.EQ_8]: makeCost(c.AVM_EQ_BASE_L2_GAS, 0),
61
- [Opcode.EQ_16]: makeCost(c.AVM_EQ_BASE_L2_GAS, 0),
62
- [Opcode.LT_8]: makeCost(c.AVM_LT_BASE_L2_GAS, 0),
63
- [Opcode.LT_16]: makeCost(c.AVM_LT_BASE_L2_GAS, 0),
64
- [Opcode.LTE_8]: makeCost(c.AVM_LTE_BASE_L2_GAS, 0),
65
- [Opcode.LTE_16]: makeCost(c.AVM_LTE_BASE_L2_GAS, 0),
66
- [Opcode.AND_8]: makeCost(c.AVM_AND_BASE_L2_GAS, 0),
67
- [Opcode.AND_16]: makeCost(c.AVM_AND_BASE_L2_GAS, 0),
68
- [Opcode.OR_8]: makeCost(c.AVM_OR_BASE_L2_GAS, 0),
69
- [Opcode.OR_16]: makeCost(c.AVM_OR_BASE_L2_GAS, 0),
70
- [Opcode.XOR_8]: makeCost(c.AVM_XOR_BASE_L2_GAS, 0),
71
- [Opcode.XOR_16]: makeCost(c.AVM_XOR_BASE_L2_GAS, 0),
72
- [Opcode.NOT_8]: makeCost(c.AVM_NOT_BASE_L2_GAS, 0),
73
- [Opcode.NOT_16]: makeCost(c.AVM_NOT_BASE_L2_GAS, 0),
74
- [Opcode.SHL_8]: makeCost(c.AVM_SHL_BASE_L2_GAS, 0),
75
- [Opcode.SHL_16]: makeCost(c.AVM_SHL_BASE_L2_GAS, 0),
76
- [Opcode.SHR_8]: makeCost(c.AVM_SHR_BASE_L2_GAS, 0),
77
- [Opcode.SHR_16]: makeCost(c.AVM_SHR_BASE_L2_GAS, 0),
78
- [Opcode.CAST_8]: makeCost(c.AVM_CAST_BASE_L2_GAS, 0),
79
- [Opcode.CAST_16]: makeCost(c.AVM_CAST_BASE_L2_GAS, 0),
80
- [Opcode.GETENVVAR_16]: makeCost(c.AVM_GETENVVAR_BASE_L2_GAS, 0),
81
- [Opcode.CALLDATACOPY]: makeCost(c.AVM_CALLDATACOPY_BASE_L2_GAS, 0),
82
- [Opcode.SUCCESSCOPY]: makeCost(c.AVM_SUCCESSCOPY_BASE_L2_GAS, 0),
83
- [Opcode.RETURNDATASIZE]: makeCost(c.AVM_RETURNDATASIZE_BASE_L2_GAS, 0),
84
- [Opcode.RETURNDATACOPY]: makeCost(c.AVM_RETURNDATACOPY_BASE_L2_GAS, 0),
85
- [Opcode.JUMP_32]: makeCost(c.AVM_JUMP_BASE_L2_GAS, 0),
86
- [Opcode.JUMPI_32]: makeCost(c.AVM_JUMPI_BASE_L2_GAS, 0),
87
- [Opcode.INTERNALCALL]: makeCost(c.AVM_INTERNALCALL_BASE_L2_GAS, 0),
88
- [Opcode.INTERNALRETURN]: makeCost(c.AVM_INTERNALRETURN_BASE_L2_GAS, 0),
89
- [Opcode.SET_8]: makeCost(c.AVM_SET_BASE_L2_GAS, 0),
90
- [Opcode.SET_16]: makeCost(c.AVM_SET_BASE_L2_GAS, 0),
91
- [Opcode.SET_32]: makeCost(c.AVM_SET_BASE_L2_GAS, 0),
92
- [Opcode.SET_64]: makeCost(c.AVM_SET_BASE_L2_GAS, 0),
93
- [Opcode.SET_128]: makeCost(c.AVM_SET_BASE_L2_GAS, 0),
94
- [Opcode.SET_FF]: makeCost(c.AVM_SET_BASE_L2_GAS, 0),
95
- [Opcode.MOV_8]: makeCost(c.AVM_MOV_BASE_L2_GAS, 0),
96
- [Opcode.MOV_16]: makeCost(c.AVM_MOV_BASE_L2_GAS, 0),
97
- [Opcode.SLOAD]: makeCost(c.AVM_SLOAD_BASE_L2_GAS, 0),
98
- [Opcode.SSTORE]: makeCost(c.AVM_SSTORE_BASE_L2_GAS, 0),
99
- [Opcode.NOTEHASHEXISTS]: makeCost(c.AVM_NOTEHASHEXISTS_BASE_L2_GAS, 0),
100
- [Opcode.EMITNOTEHASH]: makeCost(c.AVM_EMITNOTEHASH_BASE_L2_GAS, c.AVM_EMITNOTEHASH_BASE_DA_GAS),
101
- [Opcode.NULLIFIEREXISTS]: makeCost(c.AVM_NULLIFIEREXISTS_BASE_L2_GAS, 0),
102
- [Opcode.EMITNULLIFIER]: makeCost(c.AVM_EMITNULLIFIER_BASE_L2_GAS, c.AVM_EMITNULLIFIER_BASE_DA_GAS),
103
- [Opcode.L1TOL2MSGEXISTS]: makeCost(c.AVM_L1TOL2MSGEXISTS_BASE_L2_GAS, 0),
104
- [Opcode.EMITUNENCRYPTEDLOG]: makeCost(c.AVM_EMITUNENCRYPTEDLOG_BASE_L2_GAS, c.AVM_EMITUNENCRYPTEDLOG_BASE_DA_GAS),
105
- [Opcode.SENDL2TOL1MSG]: makeCost(c.AVM_SENDL2TOL1MSG_BASE_L2_GAS, c.AVM_SENDL2TOL1MSG_BASE_DA_GAS),
106
- [Opcode.GETCONTRACTINSTANCE]: makeCost(c.AVM_GETCONTRACTINSTANCE_BASE_L2_GAS, 0),
107
- [Opcode.CALL]: makeCost(c.AVM_CALL_BASE_L2_GAS, 0),
108
- [Opcode.STATICCALL]: makeCost(c.AVM_STATICCALL_BASE_L2_GAS, 0),
109
- [Opcode.RETURN]: makeCost(c.AVM_RETURN_BASE_L2_GAS, 0),
110
- [Opcode.REVERT_8]: makeCost(c.AVM_REVERT_BASE_L2_GAS, 0),
111
- [Opcode.REVERT_16]: makeCost(c.AVM_REVERT_BASE_L2_GAS, 0),
112
- [Opcode.DEBUGLOG]: makeCost(c.AVM_DEBUGLOG_BASE_L2_GAS, 0),
113
- [Opcode.POSEIDON2]: makeCost(c.AVM_POSEIDON2_BASE_L2_GAS, 0),
114
- [Opcode.SHA256COMPRESSION]: makeCost(c.AVM_SHA256COMPRESSION_BASE_L2_GAS, 0),
115
- [Opcode.KECCAKF1600]: makeCost(c.AVM_KECCAKF1600_BASE_L2_GAS, 0),
116
- [Opcode.ECADD]: makeCost(c.AVM_ECADD_BASE_L2_GAS, 0),
117
- [Opcode.TORADIXBE]: makeCost(c.AVM_TORADIXBE_BASE_L2_GAS, 0)
118
- };
119
- const DYNAMIC_GAS_COSTS = new Map([
120
- [
121
- Opcode.CALLDATACOPY,
122
- makeCost(c.AVM_CALLDATACOPY_DYN_L2_GAS, 0)
123
- ],
124
- [
125
- Opcode.RETURNDATACOPY,
126
- makeCost(c.AVM_RETURNDATACOPY_DYN_L2_GAS, 0)
127
- ],
128
- // TODO: Call and static call based on bytecode length
129
- [
130
- Opcode.EMITUNENCRYPTEDLOG,
131
- makeCost(c.AVM_EMITUNENCRYPTEDLOG_DYN_L2_GAS, c.AVM_EMITUNENCRYPTEDLOG_DYN_DA_GAS)
132
- ],
133
- [
134
- Opcode.TORADIXBE,
135
- makeCost(c.AVM_TORADIXBE_DYN_L2_GAS, 0)
136
- ],
137
- [
138
- Opcode.AND_8,
139
- makeCost(c.AVM_BITWISE_DYN_L2_GAS, 0)
140
- ],
141
- [
142
- Opcode.AND_16,
143
- makeCost(c.AVM_BITWISE_DYN_L2_GAS, 0)
144
- ],
145
- [
146
- Opcode.OR_8,
147
- makeCost(c.AVM_BITWISE_DYN_L2_GAS, 0)
148
- ],
149
- [
150
- Opcode.OR_16,
151
- makeCost(c.AVM_BITWISE_DYN_L2_GAS, 0)
152
- ],
153
- [
154
- Opcode.XOR_8,
155
- makeCost(c.AVM_BITWISE_DYN_L2_GAS, 0)
156
- ],
157
- [
158
- Opcode.XOR_16,
159
- makeCost(c.AVM_BITWISE_DYN_L2_GAS, 0)
160
- ],
161
- [
162
- Opcode.SSTORE,
163
- makeCost(0, c.AVM_SSTORE_DYN_DA_GAS)
164
- ]
165
- ]);
166
- /** Returns the fixed base gas cost for a given opcode. */ export function getBaseGasCost(opcode) {
167
- return BASE_GAS_COSTS[opcode];
168
- }
169
- export function computeAddressingCost(indirectOperandsCount, relativeOperandsCount) {
170
- return makeCost((relativeOperandsCount !== 0 ? c.AVM_ADDRESSING_BASE_RESOLUTION_L2_GAS : 0) + indirectOperandsCount * c.AVM_ADDRESSING_INDIRECT_L2_GAS + relativeOperandsCount * c.AVM_ADDRESSING_RELATIVE_L2_GAS, 0);
171
- }
172
- export function getDynamicGasCost(opcode) {
173
- return DYNAMIC_GAS_COSTS.has(opcode) ? DYNAMIC_GAS_COSTS.get(opcode) : makeCost(0, 0);
174
- }
175
- /** Returns a multiplier based on the byte size of the type represented by the integer tag.
176
- * Used to account for necessary rows in the bitwise trace. Throws on invalid. */ export function getBitwiseDynamicGasMultiplier(tag) {
177
- switch(tag){
178
- case TypeTag.UINT1:
179
- return 1;
180
- case TypeTag.UINT8:
181
- return 1;
182
- case TypeTag.UINT16:
183
- return 2;
184
- case TypeTag.UINT32:
185
- return 4;
186
- case TypeTag.UINT64:
187
- return 8;
188
- case TypeTag.UINT128:
189
- return 16;
190
- case TypeTag.FIELD:
191
- return 0; // Field is not allowed for bitwise operations. However we don't fail in gas, since we'll fail in bitwise.
192
- case TypeTag.INVALID:
193
- throw new InstructionExecutionError(`Invalid tag type for gas cost multiplier: ${TypeTag[tag]}`);
194
- }
195
- }
@@ -1,97 +0,0 @@
1
- import type { Fr } from '@aztec/foundation/fields';
2
- import type { Gas } from './avm_gas.js';
3
- import { TaggedMemory } from './avm_memory_types.js';
4
- import { type AvmRevertReason } from './errors.js';
5
- /**
6
- * A few fields of machine state are initialized from AVM session inputs or call instruction arguments
7
- */
8
- export type InitialAvmMachineState = {
9
- l2GasLeft: number;
10
- daGasLeft: number;
11
- };
12
- /**
13
- * Used to track the call stack and revert data of nested calls.
14
- * This is used to provide a more detailed revert reason when a contract call reverts.
15
- * It is only a heuristic and may not always provide the correct revert reason.
16
- */
17
- type TrackedRevertInfo = {
18
- revertDataRepresentative: Fr[];
19
- recursiveRevertReason: AvmRevertReason;
20
- };
21
- type CallStackEntry = {
22
- callPc: number;
23
- returnPc: number;
24
- };
25
- /**
26
- * Avm state modified on an instruction-per-instruction basis.
27
- */
28
- export declare class AvmMachineState {
29
- /** gas remaining of the gas allocated for a contract call */
30
- l2GasLeft: number;
31
- daGasLeft: number;
32
- /** program counter, byte based */
33
- pc: number;
34
- /** program counter of the next instruction, byte based */
35
- nextPc: number;
36
- /** return/revertdata of the last nested call. */
37
- nestedReturndata: Fr[];
38
- /** Tracks whether the last external call was successful */
39
- nestedCallSuccess: boolean;
40
- /**
41
- * Used to track the call stack and revert data of nested calls.
42
- * This is used to provide a more detailed revert reason when a contract call reverts.
43
- * It is only a heuristic and may not always provide the correct revert reason.
44
- */
45
- collectedRevertInfo: TrackedRevertInfo | undefined;
46
- /**
47
- * On INTERNALCALL, internal call stack is pushed to with the current pc and the return pc.
48
- * On INTERNALRETURN, value is popped from the internal call stack and assigned to the return pc.
49
- */
50
- internalCallStack: CallStackEntry[];
51
- /** Memory accessible to user code */
52
- readonly memory: TaggedMemory;
53
- /**
54
- * Signals that execution should end.
55
- * AvmContext execution continues executing instructions until the machine state signals "halted"
56
- */
57
- private halted;
58
- /** Signals that execution has reverted normally (this does not cover exceptional halts) */
59
- private reverted;
60
- /** Output data must NOT be modified once it is set */
61
- private output;
62
- /** instruction counter, including nested calls */
63
- instrCounter: number;
64
- constructor(gasLeft: Gas);
65
- constructor(l2GasLeft: number, daGasLeft: number);
66
- get gasLeft(): Gas;
67
- static fromState(state: InitialAvmMachineState): AvmMachineState;
68
- /**
69
- * Consumes the given gas.
70
- * Should any of the gas dimensions get depleted, it sets all gas left to zero and triggers
71
- * an exceptional halt by throwing an OutOfGasError.
72
- */
73
- consumeGas(gasCost: Partial<Gas>): void;
74
- /** Increases the gas left by the amounts specified. */
75
- refundGas(gasRefund: Partial<Gas>): void;
76
- /**
77
- * Halt as successful
78
- * Output data must NOT be modified once it is set
79
- * @param output
80
- */
81
- return(output: Fr[]): void;
82
- /**
83
- * Halt as reverted
84
- * Output data must NOT be modified once it is set
85
- * @param output
86
- */
87
- revert(output: Fr[]): void;
88
- getHalted(): boolean;
89
- getReverted(): boolean;
90
- getOutput(): Fr[];
91
- /**
92
- * Flag an exceptional halt. Clears gas left and sets the reverted flag. No output data.
93
- */
94
- private exceptionalHalt;
95
- }
96
- export {};
97
- //# sourceMappingURL=avm_machine_state.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"avm_machine_state.d.ts","sourceRoot":"","sources":["../../../src/public/avm/avm_machine_state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,KAAK,eAAe,EAAiB,MAAM,aAAa,CAAC;AAElE;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;GAIG;AACH,KAAK,iBAAiB,GAAG;IACvB,wBAAwB,EAAE,EAAE,EAAE,CAAC;IAC/B,qBAAqB,EAAE,eAAe,CAAC;CACxC,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;GAEG;AACH,qBAAa,eAAe;IAC1B,6DAA6D;IACtD,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IACzB,kCAAkC;IAC3B,EAAE,EAAE,MAAM,CAAK;IACtB,0DAA0D;IACnD,MAAM,EAAE,MAAM,CAAK;IAC1B,iDAAiD;IAC1C,gBAAgB,EAAE,EAAE,EAAE,CAAM;IACnC,2DAA2D;IACpD,iBAAiB,EAAE,OAAO,CAAS;IAC1C;;;;OAIG;IACI,mBAAmB,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAE1D;;;OAGG;IACI,iBAAiB,EAAE,cAAc,EAAE,CAAM;IAEhD,qCAAqC;IACrC,SAAgB,MAAM,EAAE,YAAY,CAAsB;IAE1D;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAkB;IAChC,2FAA2F;IAC3F,OAAO,CAAC,QAAQ,CAAkB;IAClC,sDAAsD;IACtD,OAAO,CAAC,MAAM,CAAY;IAG1B,kDAAkD;IAC3C,YAAY,EAAE,MAAM,CAAK;gBAGpB,OAAO,EAAE,GAAG;gBACZ,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAUhD,IAAW,OAAO,IAAI,GAAG,CAExB;WAEa,SAAS,CAAC,KAAK,EAAE,sBAAsB,GAAG,eAAe;IAIvE;;;;OAIG;IACI,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC;IAqBvC,uDAAuD;IAChD,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC;IAKxC;;;;OAIG;IACI,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE;IAK1B;;;;OAIG;IACI,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE;IAMnB,SAAS,IAAI,OAAO;IAIpB,WAAW,IAAI,OAAO;IAItB,SAAS,IAAI,EAAE,EAAE;IAIxB;;OAEG;IACH,OAAO,CAAC,eAAe;CAMxB"}
@@ -1,109 +0,0 @@
1
- import { TaggedMemory } from './avm_memory_types.js';
2
- import { OutOfGasError } from './errors.js';
3
- /**
4
- * Avm state modified on an instruction-per-instruction basis.
5
- */ export class AvmMachineState {
6
- /** gas remaining of the gas allocated for a contract call */ l2GasLeft;
7
- daGasLeft;
8
- /** program counter, byte based */ pc = 0;
9
- /** program counter of the next instruction, byte based */ nextPc = 0;
10
- /** return/revertdata of the last nested call. */ nestedReturndata = [];
11
- /** Tracks whether the last external call was successful */ nestedCallSuccess = false;
12
- /**
13
- * Used to track the call stack and revert data of nested calls.
14
- * This is used to provide a more detailed revert reason when a contract call reverts.
15
- * It is only a heuristic and may not always provide the correct revert reason.
16
- */ collectedRevertInfo;
17
- /**
18
- * On INTERNALCALL, internal call stack is pushed to with the current pc and the return pc.
19
- * On INTERNALRETURN, value is popped from the internal call stack and assigned to the return pc.
20
- */ internalCallStack = [];
21
- /** Memory accessible to user code */ memory = new TaggedMemory();
22
- /**
23
- * Signals that execution should end.
24
- * AvmContext execution continues executing instructions until the machine state signals "halted"
25
- */ halted = false;
26
- /** Signals that execution has reverted normally (this does not cover exceptional halts) */ reverted = false;
27
- /** Output data must NOT be modified once it is set */ output = [];
28
- // Metrics only - not needed for execution
29
- /** instruction counter, including nested calls */ instrCounter = 0;
30
- constructor(gasLeftOrL2GasLeft, daGasLeft){
31
- if (typeof gasLeftOrL2GasLeft === 'object') {
32
- ({ l2Gas: this.l2GasLeft, daGas: this.daGasLeft } = gasLeftOrL2GasLeft);
33
- } else {
34
- this.l2GasLeft = gasLeftOrL2GasLeft;
35
- this.daGasLeft = daGasLeft;
36
- }
37
- }
38
- get gasLeft() {
39
- return {
40
- l2Gas: this.l2GasLeft,
41
- daGas: this.daGasLeft
42
- };
43
- }
44
- static fromState(state) {
45
- return new AvmMachineState(state.l2GasLeft, state.daGasLeft);
46
- }
47
- /**
48
- * Consumes the given gas.
49
- * Should any of the gas dimensions get depleted, it sets all gas left to zero and triggers
50
- * an exceptional halt by throwing an OutOfGasError.
51
- */ consumeGas(gasCost) {
52
- // Assert there is enough gas on every dimension.
53
- const outOfL2Gas = this.l2GasLeft - (gasCost.l2Gas ?? 0) < 0;
54
- const outOfDaGas = this.daGasLeft - (gasCost.daGas ?? 0) < 0;
55
- // If not, trigger an exceptional halt.
56
- if (outOfL2Gas || outOfDaGas) {
57
- this.exceptionalHalt();
58
- const dimensions = [];
59
- if (outOfL2Gas) {
60
- dimensions.push('l2Gas');
61
- }
62
- if (outOfDaGas) {
63
- dimensions.push('daGas');
64
- }
65
- throw new OutOfGasError(dimensions);
66
- }
67
- // Otherwise, charge the corresponding gas
68
- this.l2GasLeft -= gasCost.l2Gas ?? 0;
69
- this.daGasLeft -= gasCost.daGas ?? 0;
70
- }
71
- /** Increases the gas left by the amounts specified. */ refundGas(gasRefund) {
72
- this.l2GasLeft += gasRefund.l2Gas ?? 0;
73
- this.daGasLeft += gasRefund.daGas ?? 0;
74
- }
75
- /**
76
- * Halt as successful
77
- * Output data must NOT be modified once it is set
78
- * @param output
79
- */ return(output) {
80
- this.halted = true;
81
- this.output = output;
82
- }
83
- /**
84
- * Halt as reverted
85
- * Output data must NOT be modified once it is set
86
- * @param output
87
- */ revert(output) {
88
- this.halted = true;
89
- this.reverted = true;
90
- this.output = output;
91
- }
92
- getHalted() {
93
- return this.halted;
94
- }
95
- getReverted() {
96
- return this.reverted;
97
- }
98
- getOutput() {
99
- return this.output;
100
- }
101
- /**
102
- * Flag an exceptional halt. Clears gas left and sets the reverted flag. No output data.
103
- */ exceptionalHalt() {
104
- this.l2GasLeft = 0;
105
- this.daGasLeft = 0;
106
- this.reverted = true;
107
- this.halted = true;
108
- }
109
- }
@@ -1,275 +0,0 @@
1
- import { Fr } from '@aztec/foundation/fields';
2
- import { type Logger } from '@aztec/foundation/log';
3
- import type { FunctionsOf } from '@aztec/foundation/types';
4
- import { AztecAddress } from '@aztec/stdlib/aztec-address';
5
- /** MemoryValue gathers the common operations for all memory types. */
6
- export declare abstract class MemoryValue {
7
- abstract add(rhs: MemoryValue): MemoryValue;
8
- abstract sub(rhs: MemoryValue): MemoryValue;
9
- abstract mul(rhs: MemoryValue): MemoryValue;
10
- abstract div(rhs: MemoryValue): MemoryValue;
11
- abstract equals(rhs: MemoryValue): boolean;
12
- abstract lt(rhs: MemoryValue): boolean;
13
- abstract build(n: bigint): MemoryValue;
14
- abstract toBigInt(): bigint;
15
- getTag(): TypeTag;
16
- abstract toBuffer(): Buffer;
17
- toFr(): Fr;
18
- toAztecAddress(): AztecAddress;
19
- toNumber(): number;
20
- toString(): string;
21
- }
22
- /** IntegralValue gathers the common operations for all integral memory types. */
23
- export declare abstract class IntegralValue extends MemoryValue {
24
- abstract shl(rhs: IntegralValue): IntegralValue;
25
- abstract shr(rhs: IntegralValue): IntegralValue;
26
- abstract and(rhs: IntegralValue): IntegralValue;
27
- abstract or(rhs: IntegralValue): IntegralValue;
28
- abstract xor(rhs: IntegralValue): IntegralValue;
29
- abstract not(): IntegralValue;
30
- }
31
- declare const Uint1_base: {
32
- new (n: bigint | number): {
33
- readonly n: bigint;
34
- build(n: bigint): /*elided*/ any;
35
- add(rhs: /*elided*/ any): /*elided*/ any;
36
- sub(rhs: /*elided*/ any): /*elided*/ any;
37
- mul(rhs: /*elided*/ any): /*elided*/ any;
38
- div(rhs: /*elided*/ any): /*elided*/ any;
39
- shr(rhs: /*elided*/ any): /*elided*/ any;
40
- shl(rhs: /*elided*/ any): /*elided*/ any;
41
- and(rhs: /*elided*/ any): /*elided*/ any;
42
- or(rhs: /*elided*/ any): /*elided*/ any;
43
- xor(rhs: /*elided*/ any): /*elided*/ any;
44
- not(): /*elided*/ any;
45
- equals(rhs: /*elided*/ any): boolean;
46
- lt(rhs: /*elided*/ any): boolean;
47
- toBigInt(): bigint;
48
- toBuffer(): Buffer;
49
- getTag(): TypeTag;
50
- toFr(): Fr;
51
- toAztecAddress(): AztecAddress;
52
- toNumber(): number;
53
- toString(): string;
54
- };
55
- readonly bits: number;
56
- readonly mod: bigint;
57
- readonly bitmask: bigint;
58
- };
59
- export declare class Uint1 extends Uint1_base {
60
- }
61
- declare const Uint8_base: {
62
- new (n: bigint | number): {
63
- readonly n: bigint;
64
- build(n: bigint): /*elided*/ any;
65
- add(rhs: /*elided*/ any): /*elided*/ any;
66
- sub(rhs: /*elided*/ any): /*elided*/ any;
67
- mul(rhs: /*elided*/ any): /*elided*/ any;
68
- div(rhs: /*elided*/ any): /*elided*/ any;
69
- shr(rhs: /*elided*/ any): /*elided*/ any;
70
- shl(rhs: /*elided*/ any): /*elided*/ any;
71
- and(rhs: /*elided*/ any): /*elided*/ any;
72
- or(rhs: /*elided*/ any): /*elided*/ any;
73
- xor(rhs: /*elided*/ any): /*elided*/ any;
74
- not(): /*elided*/ any;
75
- equals(rhs: /*elided*/ any): boolean;
76
- lt(rhs: /*elided*/ any): boolean;
77
- toBigInt(): bigint;
78
- toBuffer(): Buffer;
79
- getTag(): TypeTag;
80
- toFr(): Fr;
81
- toAztecAddress(): AztecAddress;
82
- toNumber(): number;
83
- toString(): string;
84
- };
85
- readonly bits: number;
86
- readonly mod: bigint;
87
- readonly bitmask: bigint;
88
- };
89
- export declare class Uint8 extends Uint8_base {
90
- }
91
- declare const Uint16_base: {
92
- new (n: bigint | number): {
93
- readonly n: bigint;
94
- build(n: bigint): /*elided*/ any;
95
- add(rhs: /*elided*/ any): /*elided*/ any;
96
- sub(rhs: /*elided*/ any): /*elided*/ any;
97
- mul(rhs: /*elided*/ any): /*elided*/ any;
98
- div(rhs: /*elided*/ any): /*elided*/ any;
99
- shr(rhs: /*elided*/ any): /*elided*/ any;
100
- shl(rhs: /*elided*/ any): /*elided*/ any;
101
- and(rhs: /*elided*/ any): /*elided*/ any;
102
- or(rhs: /*elided*/ any): /*elided*/ any;
103
- xor(rhs: /*elided*/ any): /*elided*/ any;
104
- not(): /*elided*/ any;
105
- equals(rhs: /*elided*/ any): boolean;
106
- lt(rhs: /*elided*/ any): boolean;
107
- toBigInt(): bigint;
108
- toBuffer(): Buffer;
109
- getTag(): TypeTag;
110
- toFr(): Fr;
111
- toAztecAddress(): AztecAddress;
112
- toNumber(): number;
113
- toString(): string;
114
- };
115
- readonly bits: number;
116
- readonly mod: bigint;
117
- readonly bitmask: bigint;
118
- };
119
- export declare class Uint16 extends Uint16_base {
120
- }
121
- declare const Uint32_base: {
122
- new (n: bigint | number): {
123
- readonly n: bigint;
124
- build(n: bigint): /*elided*/ any;
125
- add(rhs: /*elided*/ any): /*elided*/ any;
126
- sub(rhs: /*elided*/ any): /*elided*/ any;
127
- mul(rhs: /*elided*/ any): /*elided*/ any;
128
- div(rhs: /*elided*/ any): /*elided*/ any;
129
- shr(rhs: /*elided*/ any): /*elided*/ any;
130
- shl(rhs: /*elided*/ any): /*elided*/ any;
131
- and(rhs: /*elided*/ any): /*elided*/ any;
132
- or(rhs: /*elided*/ any): /*elided*/ any;
133
- xor(rhs: /*elided*/ any): /*elided*/ any;
134
- not(): /*elided*/ any;
135
- equals(rhs: /*elided*/ any): boolean;
136
- lt(rhs: /*elided*/ any): boolean;
137
- toBigInt(): bigint;
138
- toBuffer(): Buffer;
139
- getTag(): TypeTag;
140
- toFr(): Fr;
141
- toAztecAddress(): AztecAddress;
142
- toNumber(): number;
143
- toString(): string;
144
- };
145
- readonly bits: number;
146
- readonly mod: bigint;
147
- readonly bitmask: bigint;
148
- };
149
- export declare class Uint32 extends Uint32_base {
150
- }
151
- declare const Uint64_base: {
152
- new (n: bigint | number): {
153
- readonly n: bigint;
154
- build(n: bigint): /*elided*/ any;
155
- add(rhs: /*elided*/ any): /*elided*/ any;
156
- sub(rhs: /*elided*/ any): /*elided*/ any;
157
- mul(rhs: /*elided*/ any): /*elided*/ any;
158
- div(rhs: /*elided*/ any): /*elided*/ any;
159
- shr(rhs: /*elided*/ any): /*elided*/ any;
160
- shl(rhs: /*elided*/ any): /*elided*/ any;
161
- and(rhs: /*elided*/ any): /*elided*/ any;
162
- or(rhs: /*elided*/ any): /*elided*/ any;
163
- xor(rhs: /*elided*/ any): /*elided*/ any;
164
- not(): /*elided*/ any;
165
- equals(rhs: /*elided*/ any): boolean;
166
- lt(rhs: /*elided*/ any): boolean;
167
- toBigInt(): bigint;
168
- toBuffer(): Buffer;
169
- getTag(): TypeTag;
170
- toFr(): Fr;
171
- toAztecAddress(): AztecAddress;
172
- toNumber(): number;
173
- toString(): string;
174
- };
175
- readonly bits: number;
176
- readonly mod: bigint;
177
- readonly bitmask: bigint;
178
- };
179
- export declare class Uint64 extends Uint64_base {
180
- }
181
- declare const Uint128_base: {
182
- new (n: bigint | number): {
183
- readonly n: bigint;
184
- build(n: bigint): /*elided*/ any;
185
- add(rhs: /*elided*/ any): /*elided*/ any;
186
- sub(rhs: /*elided*/ any): /*elided*/ any;
187
- mul(rhs: /*elided*/ any): /*elided*/ any;
188
- div(rhs: /*elided*/ any): /*elided*/ any;
189
- shr(rhs: /*elided*/ any): /*elided*/ any;
190
- shl(rhs: /*elided*/ any): /*elided*/ any;
191
- and(rhs: /*elided*/ any): /*elided*/ any;
192
- or(rhs: /*elided*/ any): /*elided*/ any;
193
- xor(rhs: /*elided*/ any): /*elided*/ any;
194
- not(): /*elided*/ any;
195
- equals(rhs: /*elided*/ any): boolean;
196
- lt(rhs: /*elided*/ any): boolean;
197
- toBigInt(): bigint;
198
- toBuffer(): Buffer;
199
- getTag(): TypeTag;
200
- toFr(): Fr;
201
- toAztecAddress(): AztecAddress;
202
- toNumber(): number;
203
- toString(): string;
204
- };
205
- readonly bits: number;
206
- readonly mod: bigint;
207
- readonly bitmask: bigint;
208
- };
209
- export declare class Uint128 extends Uint128_base {
210
- }
211
- export declare class Field extends MemoryValue {
212
- static readonly MODULUS: bigint;
213
- private readonly rep;
214
- constructor(v: number | bigint | Fr | Buffer);
215
- build(n: bigint): Field;
216
- add(rhs: Field): Field;
217
- sub(rhs: Field): Field;
218
- mul(rhs: Field): Field;
219
- div(rhs: Field): Field;
220
- fdiv(rhs: Field): Field;
221
- equals(rhs: Field): boolean;
222
- lt(rhs: Field): boolean;
223
- toBigInt(): bigint;
224
- toBuffer(): Buffer;
225
- }
226
- export declare enum TypeTag {
227
- FIELD = 0,
228
- UINT1 = 1,
229
- UINT8 = 2,
230
- UINT16 = 3,
231
- UINT32 = 4,
232
- UINT64 = 5,
233
- UINT128 = 6,
234
- INVALID = 7
235
- }
236
- export type TaggedMemoryInterface = FunctionsOf<TaggedMemory>;
237
- export declare class TaggedMemory implements TaggedMemoryInterface {
238
- static readonly log: Logger;
239
- static readonly TRACK_MEMORY_ACCESSES: boolean;
240
- static readonly MAX_MEMORY_SIZE: number;
241
- private _mem;
242
- constructor();
243
- getMaxMemorySize(): number;
244
- get(offset: number): MemoryValue;
245
- getAs<T>(offset: number): T;
246
- getSlice(offset: number, size: number): MemoryValue[];
247
- getSliceAs<T>(offset: number, size: number): T[];
248
- getSliceTags(offset: number, size: number): TypeTag[];
249
- set(offset: number, v: MemoryValue): void;
250
- setSlice(offset: number, slice: MemoryValue[]): void;
251
- getTag(offset: number): TypeTag;
252
- /**
253
- * Check that the memory at the given offset matches the specified tag.
254
- */
255
- checkTag(tag: TypeTag, offset: number): void;
256
- static isValidMemoryAddressTag(tag: TypeTag): tag is TypeTag.UINT32;
257
- static checkIsIntegralTag(tag: TypeTag): void;
258
- static checkIsValidTag(tagNumber: number): void;
259
- /**
260
- * Check tags for memory at all of the specified offsets.
261
- */
262
- checkTags(tag: TypeTag, ...offsets: number[]): void;
263
- /**
264
- * Check that all tags at the given offsets are the same.
265
- */
266
- checkTagsAreSame(offset0: number, offset1: number): void;
267
- /**
268
- * Check tags for all memory in the specified range.
269
- */
270
- checkTagsRange(tag: TypeTag, startOffset: number, size: number): void;
271
- static getTag(v: MemoryValue | undefined): TypeTag;
272
- static buildFromTagTruncating(v: bigint | number, tag: TypeTag): MemoryValue;
273
- }
274
- export {};
275
- //# sourceMappingURL=avm_memory_types.d.ts.map