@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,24 +0,0 @@
1
- import type { AvmContext } from '../avm_context.js';
2
- import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
3
- import { Instruction } from './instruction.js';
4
- declare abstract class BaseStorageInstruction extends Instruction {
5
- protected indirect: number;
6
- protected aOffset: number;
7
- protected bOffset: number;
8
- static readonly wireFormat: OperandType[];
9
- constructor(indirect: number, aOffset: number, bOffset: number);
10
- }
11
- export declare class SStore extends BaseStorageInstruction {
12
- static readonly type: string;
13
- static readonly opcode = Opcode.SSTORE;
14
- constructor(indirect: number, srcOffset: number, slotOffset: number);
15
- execute(context: AvmContext): Promise<void>;
16
- }
17
- export declare class SLoad extends BaseStorageInstruction {
18
- static readonly type: string;
19
- static readonly opcode = Opcode.SLOAD;
20
- constructor(indirect: number, slotOffset: number, dstOffset: number);
21
- execute(context: AvmContext): Promise<void>;
22
- }
23
- export {};
24
- //# sourceMappingURL=storage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/storage.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,sBAAuB,SAAQ,WAAW;IAUrD,SAAS,CAAC,QAAQ,EAAE,MAAM;IAC1B,SAAS,CAAC,OAAO,EAAE,MAAM;IACzB,SAAS,CAAC,OAAO,EAAE,MAAM;IAV3B,gBAAuB,UAAU,EAAE,WAAW,EAAE,CAK9C;gBAGU,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,MAAO,SAAQ,sBAAsB;IAChD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAY;IACxC,MAAM,CAAC,QAAQ,CAAC,MAAM,iBAAiB;gBAE3B,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAItD,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CA2BzD;AAED,qBAAa,KAAM,SAAQ,sBAAsB;IAC/C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAW;IACvC,MAAM,CAAC,QAAQ,CAAC,MAAM,gBAAgB;gBAE1B,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAItD,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAgBzD"}
@@ -1,68 +0,0 @@
1
- import { Field, TypeTag } from '../avm_memory_types.js';
2
- import { StaticCallAlterationError } from '../errors.js';
3
- import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
4
- import { Addressing } from './addressing_mode.js';
5
- import { Instruction } from './instruction.js';
6
- class BaseStorageInstruction extends Instruction {
7
- indirect;
8
- aOffset;
9
- bOffset;
10
- // Informs (de)serialization. See Instruction.deserialize.
11
- static wireFormat = [
12
- OperandType.UINT8,
13
- OperandType.UINT8,
14
- OperandType.UINT16,
15
- OperandType.UINT16
16
- ];
17
- constructor(indirect, aOffset, bOffset){
18
- super(), this.indirect = indirect, this.aOffset = aOffset, this.bOffset = bOffset;
19
- }
20
- }
21
- export class SStore extends BaseStorageInstruction {
22
- static type = 'SSTORE';
23
- static opcode = Opcode.SSTORE;
24
- constructor(indirect, srcOffset, slotOffset){
25
- super(indirect, srcOffset, slotOffset);
26
- }
27
- async execute(context) {
28
- if (context.environment.isStaticCall) {
29
- throw new StaticCallAlterationError();
30
- }
31
- const memory = context.machineState.memory;
32
- const addressing = Addressing.fromWire(this.indirect);
33
- context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
34
- const operands = [
35
- this.aOffset,
36
- this.bOffset
37
- ];
38
- const [srcOffset, slotOffset] = addressing.resolve(operands, memory);
39
- // We read before tag checking since it's needed for gas cost calculation
40
- const slot = memory.get(slotOffset).toFr();
41
- context.machineState.consumeGas(this.dynamicGasCost(Number(context.persistableState.isStorageCold(context.environment.address, slot))));
42
- memory.checkTag(TypeTag.FIELD, slotOffset);
43
- memory.checkTag(TypeTag.FIELD, srcOffset);
44
- const value = memory.get(srcOffset).toFr();
45
- await context.persistableState.writeStorage(context.environment.address, slot, value);
46
- }
47
- }
48
- export class SLoad extends BaseStorageInstruction {
49
- static type = 'SLOAD';
50
- static opcode = Opcode.SLOAD;
51
- constructor(indirect, slotOffset, dstOffset){
52
- super(indirect, slotOffset, dstOffset);
53
- }
54
- async execute(context) {
55
- const memory = context.machineState.memory;
56
- const addressing = Addressing.fromWire(this.indirect);
57
- context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
58
- const operands = [
59
- this.aOffset,
60
- this.bOffset
61
- ];
62
- const [slotOffset, dstOffset] = addressing.resolve(operands, memory);
63
- memory.checkTag(TypeTag.FIELD, slotOffset);
64
- const slot = memory.get(slotOffset).toFr();
65
- const value = await context.persistableState.readStorage(context.environment.address, slot);
66
- memory.set(dstOffset, new Field(value));
67
- }
68
- }
@@ -1,18 +0,0 @@
1
- import type { Fr } from '@aztec/foundation/fields';
2
- import type { AvmContext } from './avm_context.js';
3
- import { type AvmExecutionError, AvmRevertReason } from './errors.js';
4
- /**
5
- * Create a "revert reason" error for an exceptional halt.
6
- *
7
- * @param haltingError - the lower-level error causing the exceptional halt
8
- * @param context - the context of the AVM execution used to extract the failingFunction and noirCallStack
9
- */
10
- export declare function revertReasonFromExceptionalHalt(haltingError: AvmExecutionError, context: AvmContext): Promise<AvmRevertReason>;
11
- /**
12
- * Create a "revert reason" error for an explicit revert (a root cause).
13
- *
14
- * @param revertData - output data of the explicit REVERT instruction
15
- * @param context - the context of the AVM execution used to extract the failingFunction and noirCallStack
16
- */
17
- export declare function revertReasonFromExplicitRevert(revertData: Fr[], context: AvmContext): Promise<AvmRevertReason>;
18
- //# sourceMappingURL=revert_reason.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"revert_reason.d.ts","sourceRoot":"","sources":["../../../src/public/avm/revert_reason.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,KAAK,iBAAiB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AA8BtE;;;;;GAKG;AACH,wBAAsB,+BAA+B,CACnD,YAAY,EAAE,iBAAiB,EAC/B,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,eAAe,CAAC,CAE1B;AAED;;;;;GAKG;AACH,wBAAsB,8BAA8B,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,CAEpH"}
@@ -1,38 +0,0 @@
1
- import { AvmRevertReason } from './errors.js';
2
- async function createRevertReason(message, revertData, context) {
3
- // We drop the returnPc information.
4
- const internalCallStack = context.machineState.internalCallStack.map((entry)=>entry.callPc);
5
- // If we are reverting due to the same error that we have been tracking, we use the nested error as the cause.
6
- let nestedError = undefined;
7
- const revertDataEquals = (a, b)=>a.length === b.length && a.every((v, i)=>v.equals(b[i]));
8
- if (context.machineState.collectedRevertInfo && revertDataEquals(context.machineState.collectedRevertInfo.revertDataRepresentative, revertData)) {
9
- nestedError = context.machineState.collectedRevertInfo.recursiveRevertReason;
10
- message = context.machineState.collectedRevertInfo.recursiveRevertReason.message;
11
- }
12
- const fnName = await context.persistableState.getPublicFunctionDebugName(context.environment);
13
- return new AvmRevertReason(message, /*failingFunction=*/ {
14
- contractAddress: context.environment.address,
15
- functionName: fnName
16
- }, /*noirCallStack=*/ [
17
- ...internalCallStack,
18
- context.machineState.pc
19
- ].map((pc)=>`0.${pc}`), /*options=*/ {
20
- cause: nestedError
21
- });
22
- }
23
- /**
24
- * Create a "revert reason" error for an exceptional halt.
25
- *
26
- * @param haltingError - the lower-level error causing the exceptional halt
27
- * @param context - the context of the AVM execution used to extract the failingFunction and noirCallStack
28
- */ export async function revertReasonFromExceptionalHalt(haltingError, context) {
29
- return await createRevertReason(haltingError.message, [], context);
30
- }
31
- /**
32
- * Create a "revert reason" error for an explicit revert (a root cause).
33
- *
34
- * @param revertData - output data of the explicit REVERT instruction
35
- * @param context - the context of the AVM execution used to extract the failingFunction and noirCallStack
36
- */ export async function revertReasonFromExplicitRevert(revertData, context) {
37
- return await createRevertReason('Assertion failed: ', revertData, context);
38
- }
@@ -1,26 +0,0 @@
1
- export declare class BufferCursor {
2
- private _buffer;
3
- private _position;
4
- constructor(_buffer: Buffer, _position?: number);
5
- position(): number;
6
- buffer(): Buffer;
7
- eof(): boolean;
8
- bufferAtPosition(): Buffer;
9
- advance(n: number): void;
10
- peekUint8(): number;
11
- readUint8(): number;
12
- readUint16LE(): number;
13
- readUint16BE(): number;
14
- readUint32LE(): number;
15
- readUint32BE(): number;
16
- readBigInt64LE(): bigint;
17
- readBigInt64BE(): bigint;
18
- writeUint8(v: number): number;
19
- writeUint16LE(v: number): number;
20
- writeUint16BE(v: number): number;
21
- writeUint32LE(v: number): number;
22
- writeUint32BE(v: number): number;
23
- writeBigInt64LE(v: bigint): number;
24
- writeBigInt64BE(v: bigint): number;
25
- }
26
- //# sourceMappingURL=buffer_cursor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"buffer_cursor.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/serialization/buffer_cursor.ts"],"names":[],"mappings":"AAGA,qBAAa,YAAY;IAErB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,SAAS;gBADT,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,MAAU;IAGxB,QAAQ,IAAI,MAAM;IAIlB,MAAM,IAAI,MAAM;IAIhB,GAAG,IAAI,OAAO;IAId,gBAAgB,IAAI,MAAM;IAI1B,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAIxB,SAAS,IAAI,MAAM;IAKnB,SAAS,IAAI,MAAM;IAMnB,YAAY,IAAI,MAAM;IAMtB,YAAY,IAAI,MAAM;IAMtB,YAAY,IAAI,MAAM;IAMtB,YAAY,IAAI,MAAM;IAMtB,cAAc,IAAI,MAAM;IAMxB,cAAc,IAAI,MAAM;IAMxB,UAAU,CAAC,CAAC,EAAE,MAAM;IAMpB,aAAa,CAAC,CAAC,EAAE,MAAM;IAMvB,aAAa,CAAC,CAAC,EAAE,MAAM;IAMvB,aAAa,CAAC,CAAC,EAAE,MAAM;IAMvB,aAAa,CAAC,CAAC,EAAE,MAAM;IAMvB,eAAe,CAAC,CAAC,EAAE,MAAM;IAMzB,eAAe,CAAC,CAAC,EAAE,MAAM;CAKjC"}
@@ -1,99 +0,0 @@
1
- /*
2
- * A Buffer-like class that automatically advances the position.
3
- */ export class BufferCursor {
4
- _buffer;
5
- _position;
6
- constructor(_buffer, _position = 0){
7
- this._buffer = _buffer;
8
- this._position = _position;
9
- }
10
- position() {
11
- return this._position;
12
- }
13
- buffer() {
14
- return this._buffer;
15
- }
16
- eof() {
17
- return this._position === this._buffer.length;
18
- }
19
- bufferAtPosition() {
20
- return this._buffer.subarray(this._position);
21
- }
22
- advance(n) {
23
- this._position += n;
24
- }
25
- peekUint8() {
26
- const ret = this._buffer.readUint8(this._position);
27
- return ret;
28
- }
29
- readUint8() {
30
- const ret = this._buffer.readUint8(this._position);
31
- this._position += 1;
32
- return ret;
33
- }
34
- readUint16LE() {
35
- const ret = this._buffer.readUint16LE(this._position);
36
- this._position += 2;
37
- return ret;
38
- }
39
- readUint16BE() {
40
- const ret = this._buffer.readUint16BE(this._position);
41
- this._position += 2;
42
- return ret;
43
- }
44
- readUint32LE() {
45
- const ret = this._buffer.readUint32LE(this._position);
46
- this._position += 4;
47
- return ret;
48
- }
49
- readUint32BE() {
50
- const ret = this._buffer.readUint32BE(this._position);
51
- this._position += 4;
52
- return ret;
53
- }
54
- readBigInt64LE() {
55
- const ret = this._buffer.readBigInt64LE(this._position);
56
- this._position += 8;
57
- return ret;
58
- }
59
- readBigInt64BE() {
60
- const ret = this._buffer.readBigInt64BE(this._position);
61
- this._position += 8;
62
- return ret;
63
- }
64
- writeUint8(v) {
65
- const ret = this._buffer.writeUint8(v, this._position);
66
- this._position += 1;
67
- return ret;
68
- }
69
- writeUint16LE(v) {
70
- const ret = this._buffer.writeUint16LE(v, this._position);
71
- this._position += 2;
72
- return ret;
73
- }
74
- writeUint16BE(v) {
75
- const ret = this._buffer.writeUint16BE(v, this._position);
76
- this._position += 2;
77
- return ret;
78
- }
79
- writeUint32LE(v) {
80
- const ret = this._buffer.writeUint32LE(v, this._position);
81
- this._position += 4;
82
- return ret;
83
- }
84
- writeUint32BE(v) {
85
- const ret = this._buffer.writeUint32BE(v, this._position);
86
- this._position += 4;
87
- return ret;
88
- }
89
- writeBigInt64LE(v) {
90
- const ret = this._buffer.writeBigInt64LE(v, this._position);
91
- this._position += 8;
92
- return ret;
93
- }
94
- writeBigInt64BE(v) {
95
- const ret = this._buffer.writeBigInt64BE(v, this._position);
96
- this._position += 8;
97
- return ret;
98
- }
99
- }
@@ -1,17 +0,0 @@
1
- import { type Bufferable } from '@aztec/foundation/serialize';
2
- import { Instruction } from '../opcodes/index.js';
3
- import { BufferCursor } from './buffer_cursor.js';
4
- import { Opcode } from './instruction_serialization.js';
5
- export type InstructionDeserializer = (buf: BufferCursor | Buffer) => Instruction;
6
- export interface Deserializable {
7
- deserialize: InstructionDeserializer;
8
- }
9
- export type InstructionSet = Map<Opcode, InstructionDeserializer>;
10
- export declare const INSTRUCTION_SET: Map<Opcode, InstructionDeserializer>;
11
- /**
12
- * Serializes an array of instructions to bytecode.
13
- */
14
- export declare function encodeToBytecode(instructions: Bufferable[]): Buffer;
15
- export declare function decodeFromBytecode(bytecode: Buffer, instructionSet?: InstructionSet): Instruction[];
16
- export declare function decodeInstructionFromBytecode(bytecode: Buffer, pc: number, instructionSet?: InstructionSet): [Instruction, number];
17
- //# sourceMappingURL=bytecode_serialization.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bytecode_serialization.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/serialization/bytecode_serialization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAqB,MAAM,6BAA6B,CAAC;AAGjF,OAAO,EAgBL,WAAW,EAgCZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAoB,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAE1E,MAAM,MAAM,uBAAuB,GAAG,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,KAAK,WAAW,CAAC;AAElF,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,uBAAuB,CAAC;CACtC;AAED,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;AAClE,eAAO,MAAM,eAAe,sCAoF1B,CAAC;AAEH;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,UAAU,EAAE,GAAG,MAAM,CAEnE;AAGD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,GAAE,cAAgC,GAAG,WAAW,EAAE,CASpH;AAGD,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,EACV,cAAc,GAAE,cAAgC,GAC/C,CAAC,WAAW,EAAE,MAAM,CAAC,CA+BvB"}
@@ -1,333 +0,0 @@
1
- import { serializeToBuffer } from '@aztec/foundation/serialize';
2
- import { AvmExecutionError, AvmParsingError, InvalidOpcodeError, InvalidProgramCounterError } from '../errors.js';
3
- import { Add, And, Call, CalldataCopy, Cast, DebugLog, Div, EcAdd, EmitNoteHash, EmitNullifier, EmitUnencryptedLog, Eq, FieldDiv, GetContractInstance, GetEnvVar, Instruction, InternalCall, InternalReturn, Jump, JumpI, KeccakF1600, L1ToL2MessageExists, Lt, Lte, Mov, Mul, Not, NoteHashExists, NullifierExists, Or, Poseidon2, Return, ReturndataCopy, ReturndataSize, Revert, SLoad, SStore, SendL2ToL1Message, Set, Sha256Compression, Shl, Shr, StaticCall, Sub, SuccessCopy, ToRadixBE, Xor } from '../opcodes/index.js';
4
- import { BufferCursor } from './buffer_cursor.js';
5
- import { MAX_OPCODE_VALUE, Opcode } from './instruction_serialization.js';
6
- export const INSTRUCTION_SET = new Map([
7
- [
8
- Opcode.ADD_8,
9
- Add.as(Add.wireFormat8).fromBuffer
10
- ],
11
- [
12
- Opcode.ADD_16,
13
- Add.as(Add.wireFormat16).fromBuffer
14
- ],
15
- [
16
- Opcode.SUB_8,
17
- Sub.as(Sub.wireFormat8).fromBuffer
18
- ],
19
- [
20
- Opcode.SUB_16,
21
- Sub.as(Sub.wireFormat16).fromBuffer
22
- ],
23
- [
24
- Opcode.MUL_8,
25
- Mul.as(Mul.wireFormat8).fromBuffer
26
- ],
27
- [
28
- Opcode.MUL_16,
29
- Mul.as(Mul.wireFormat16).fromBuffer
30
- ],
31
- [
32
- Opcode.DIV_8,
33
- Div.as(Div.wireFormat8).fromBuffer
34
- ],
35
- [
36
- Opcode.DIV_16,
37
- Div.as(Div.wireFormat16).fromBuffer
38
- ],
39
- [
40
- Opcode.FDIV_8,
41
- FieldDiv.as(FieldDiv.wireFormat8).fromBuffer
42
- ],
43
- [
44
- Opcode.FDIV_16,
45
- FieldDiv.as(FieldDiv.wireFormat16).fromBuffer
46
- ],
47
- [
48
- Opcode.EQ_8,
49
- Eq.as(Eq.wireFormat8).fromBuffer
50
- ],
51
- [
52
- Opcode.EQ_16,
53
- Eq.as(Eq.wireFormat16).fromBuffer
54
- ],
55
- [
56
- Opcode.LT_8,
57
- Lt.as(Lt.wireFormat8).fromBuffer
58
- ],
59
- [
60
- Opcode.LT_16,
61
- Lt.as(Lt.wireFormat16).fromBuffer
62
- ],
63
- [
64
- Opcode.LTE_8,
65
- Lte.as(Lte.wireFormat8).fromBuffer
66
- ],
67
- [
68
- Opcode.LTE_16,
69
- Lte.as(Lte.wireFormat16).fromBuffer
70
- ],
71
- [
72
- Opcode.AND_8,
73
- And.as(And.wireFormat8).fromBuffer
74
- ],
75
- [
76
- Opcode.AND_16,
77
- And.as(And.wireFormat16).fromBuffer
78
- ],
79
- [
80
- Opcode.OR_8,
81
- Or.as(Or.wireFormat8).fromBuffer
82
- ],
83
- [
84
- Opcode.OR_16,
85
- Or.as(Or.wireFormat16).fromBuffer
86
- ],
87
- [
88
- Opcode.XOR_8,
89
- Xor.as(Xor.wireFormat8).fromBuffer
90
- ],
91
- [
92
- Opcode.XOR_16,
93
- Xor.as(Xor.wireFormat16).fromBuffer
94
- ],
95
- [
96
- Opcode.NOT_8,
97
- Not.as(Not.wireFormat8).fromBuffer
98
- ],
99
- [
100
- Opcode.NOT_16,
101
- Not.as(Not.wireFormat16).fromBuffer
102
- ],
103
- [
104
- Opcode.SHL_8,
105
- Shl.as(Shl.wireFormat8).fromBuffer
106
- ],
107
- [
108
- Opcode.SHL_16,
109
- Shl.as(Shl.wireFormat16).fromBuffer
110
- ],
111
- [
112
- Opcode.SHR_8,
113
- Shr.as(Shr.wireFormat8).fromBuffer
114
- ],
115
- [
116
- Opcode.SHR_16,
117
- Shr.as(Shr.wireFormat16).fromBuffer
118
- ],
119
- [
120
- Opcode.CAST_8,
121
- Cast.as(Cast.wireFormat8).fromBuffer
122
- ],
123
- [
124
- Opcode.CAST_16,
125
- Cast.as(Cast.wireFormat16).fromBuffer
126
- ],
127
- // Execution Environment
128
- [
129
- Opcode.GETENVVAR_16,
130
- GetEnvVar.as(GetEnvVar.wireFormat16).fromBuffer
131
- ],
132
- [
133
- CalldataCopy.opcode,
134
- Instruction.fromBuffer.bind(CalldataCopy)
135
- ],
136
- [
137
- SuccessCopy.opcode,
138
- Instruction.fromBuffer.bind(SuccessCopy)
139
- ],
140
- [
141
- Opcode.RETURNDATASIZE,
142
- Instruction.fromBuffer.bind(ReturndataSize)
143
- ],
144
- [
145
- Opcode.RETURNDATACOPY,
146
- Instruction.fromBuffer.bind(ReturndataCopy)
147
- ],
148
- // Machine State - Internal Control Flow
149
- [
150
- Jump.opcode,
151
- Instruction.fromBuffer.bind(Jump)
152
- ],
153
- [
154
- JumpI.opcode,
155
- Instruction.fromBuffer.bind(JumpI)
156
- ],
157
- [
158
- InternalCall.opcode,
159
- Instruction.fromBuffer.bind(InternalCall)
160
- ],
161
- [
162
- InternalReturn.opcode,
163
- Instruction.fromBuffer.bind(InternalReturn)
164
- ],
165
- [
166
- Opcode.SET_8,
167
- Set.as(Set.wireFormat8).fromBuffer
168
- ],
169
- [
170
- Opcode.SET_16,
171
- Set.as(Set.wireFormat16).fromBuffer
172
- ],
173
- [
174
- Opcode.SET_32,
175
- Set.as(Set.wireFormat32).fromBuffer
176
- ],
177
- [
178
- Opcode.SET_64,
179
- Set.as(Set.wireFormat64).fromBuffer
180
- ],
181
- [
182
- Opcode.SET_128,
183
- Set.as(Set.wireFormat128).fromBuffer
184
- ],
185
- [
186
- Opcode.SET_FF,
187
- Set.as(Set.wireFormatFF).fromBuffer
188
- ],
189
- [
190
- Opcode.MOV_8,
191
- Mov.as(Mov.wireFormat8).fromBuffer
192
- ],
193
- [
194
- Opcode.MOV_16,
195
- Mov.as(Mov.wireFormat16).fromBuffer
196
- ],
197
- // World State
198
- [
199
- SLoad.opcode,
200
- Instruction.fromBuffer.bind(SLoad)
201
- ],
202
- [
203
- SStore.opcode,
204
- Instruction.fromBuffer.bind(SStore)
205
- ],
206
- [
207
- NoteHashExists.opcode,
208
- Instruction.fromBuffer.bind(NoteHashExists)
209
- ],
210
- [
211
- EmitNoteHash.opcode,
212
- Instruction.fromBuffer.bind(EmitNoteHash)
213
- ],
214
- [
215
- NullifierExists.opcode,
216
- Instruction.fromBuffer.bind(NullifierExists)
217
- ],
218
- [
219
- EmitNullifier.opcode,
220
- Instruction.fromBuffer.bind(EmitNullifier)
221
- ],
222
- [
223
- L1ToL2MessageExists.opcode,
224
- Instruction.fromBuffer.bind(L1ToL2MessageExists)
225
- ],
226
- // Accrued Substate
227
- [
228
- EmitUnencryptedLog.opcode,
229
- Instruction.fromBuffer.bind(EmitUnencryptedLog)
230
- ],
231
- [
232
- SendL2ToL1Message.opcode,
233
- Instruction.fromBuffer.bind(SendL2ToL1Message)
234
- ],
235
- [
236
- GetContractInstance.opcode,
237
- Instruction.fromBuffer.bind(GetContractInstance)
238
- ],
239
- // Control Flow - Contract Calls
240
- [
241
- Call.opcode,
242
- Instruction.fromBuffer.bind(Call)
243
- ],
244
- [
245
- StaticCall.opcode,
246
- Instruction.fromBuffer.bind(StaticCall)
247
- ],
248
- [
249
- Return.opcode,
250
- Instruction.fromBuffer.bind(Return)
251
- ],
252
- [
253
- Opcode.REVERT_8,
254
- Revert.as(Revert.wireFormat8).fromBuffer
255
- ],
256
- [
257
- Opcode.REVERT_16,
258
- Revert.as(Revert.wireFormat16).fromBuffer
259
- ],
260
- // Misc
261
- [
262
- DebugLog.opcode,
263
- Instruction.fromBuffer.bind(DebugLog)
264
- ],
265
- // Gadgets
266
- [
267
- EcAdd.opcode,
268
- Instruction.fromBuffer.bind(EcAdd)
269
- ],
270
- [
271
- Poseidon2.opcode,
272
- Instruction.fromBuffer.bind(Poseidon2)
273
- ],
274
- [
275
- Sha256Compression.opcode,
276
- Instruction.fromBuffer.bind(Sha256Compression)
277
- ],
278
- [
279
- KeccakF1600.opcode,
280
- Instruction.fromBuffer.bind(KeccakF1600)
281
- ],
282
- // Conversions
283
- [
284
- ToRadixBE.opcode,
285
- Instruction.fromBuffer.bind(ToRadixBE)
286
- ]
287
- ]);
288
- /**
289
- * Serializes an array of instructions to bytecode.
290
- */ export function encodeToBytecode(instructions) {
291
- return serializeToBuffer(instructions);
292
- }
293
- // For testing only
294
- export function decodeFromBytecode(bytecode, instructionSet = INSTRUCTION_SET) {
295
- const instructions = [];
296
- let pc = 0;
297
- while(pc < bytecode.length){
298
- const [instruction, bytesConsumed] = decodeInstructionFromBytecode(bytecode, pc, instructionSet);
299
- instructions.push(instruction);
300
- pc += bytesConsumed;
301
- }
302
- return instructions;
303
- }
304
- // Returns the instruction and the number of bytes consumed.
305
- export function decodeInstructionFromBytecode(bytecode, pc, instructionSet = INSTRUCTION_SET) {
306
- if (pc >= bytecode.length) {
307
- throw new InvalidProgramCounterError(pc, bytecode.length);
308
- }
309
- try {
310
- const cursor = new BufferCursor(bytecode, pc);
311
- const startingPosition = cursor.position();
312
- const opcode = cursor.bufferAtPosition().readUint8(); // peek.
313
- if (opcode > MAX_OPCODE_VALUE) {
314
- throw new InvalidOpcodeError(`Opcode ${opcode} (0x${opcode.toString(16)}) value is not in the range of valid opcodes.`);
315
- }
316
- const instructionDeserializerOrUndef = instructionSet.get(opcode);
317
- if (instructionDeserializerOrUndef === undefined) {
318
- throw new InvalidOpcodeError(`Opcode ${Opcode[opcode]} (0x${opcode.toString(16)}) is not implemented`);
319
- }
320
- const instructionDeserializer = instructionDeserializerOrUndef;
321
- const instruction = instructionDeserializer(cursor);
322
- return [
323
- instruction,
324
- cursor.position() - startingPosition
325
- ];
326
- } catch (error) {
327
- if (error instanceof InvalidOpcodeError || error instanceof AvmExecutionError) {
328
- throw error;
329
- } else {
330
- throw new AvmParsingError(`${error}`);
331
- }
332
- }
333
- }