@aztec/simulator 0.0.1-commit.3469e52 → 0.0.1-commit.350e0a4d

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 (352) hide show
  1. package/README.md +4 -4
  2. package/dest/client.d.ts +1 -3
  3. package/dest/client.d.ts.map +1 -1
  4. package/dest/client.js +0 -2
  5. package/dest/private/acvm/acvm.d.ts +4 -2
  6. package/dest/private/acvm/acvm.d.ts.map +1 -1
  7. package/dest/private/acvm/acvm.js +4 -3
  8. package/dest/private/acvm_native.d.ts +5 -3
  9. package/dest/private/acvm_native.d.ts.map +1 -1
  10. package/dest/private/acvm_native.js +8 -6
  11. package/dest/private/acvm_wasm.d.ts +4 -3
  12. package/dest/private/acvm_wasm.d.ts.map +1 -1
  13. package/dest/private/acvm_wasm.js +7 -5
  14. package/dest/private/circuit_recording/circuit_recorder.d.ts +39 -25
  15. package/dest/private/circuit_recording/circuit_recorder.d.ts.map +1 -1
  16. package/dest/private/circuit_recording/circuit_recorder.js +70 -72
  17. package/dest/private/circuit_recording/file_circuit_recorder.d.ts +9 -20
  18. package/dest/private/circuit_recording/file_circuit_recorder.d.ts.map +1 -1
  19. package/dest/private/circuit_recording/file_circuit_recorder.js +39 -43
  20. package/dest/private/circuit_recording/memory_circuit_recorder.d.ts +7 -2
  21. package/dest/private/circuit_recording/memory_circuit_recorder.d.ts.map +1 -1
  22. package/dest/private/circuit_recording/memory_circuit_recorder.js +4 -4
  23. package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts +1 -1
  24. package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts.map +1 -1
  25. package/dest/private/circuit_recording/simulator_recorder_wrapper.js +11 -14
  26. package/dest/private/factory.d.ts +3 -3
  27. package/dest/private/factory.d.ts.map +1 -1
  28. package/dest/private/factory.js +7 -4
  29. package/dest/public/avm/testing/account_proof_fetcher.d.ts +2 -0
  30. package/dest/public/avm/testing/account_proof_fetcher.d.ts.map +1 -0
  31. package/dest/public/avm/testing/account_proof_fetcher.js +152 -0
  32. package/dest/public/avm/{fixtures → testing}/base_avm_simulation_tester.d.ts +2 -1
  33. package/dest/public/avm/testing/base_avm_simulation_tester.d.ts.map +1 -0
  34. package/dest/public/avm/{fixtures → testing}/base_avm_simulation_tester.js +18 -3
  35. package/dest/public/avm/testing/utils.d.ts +32 -0
  36. package/dest/public/avm/testing/utils.d.ts.map +1 -0
  37. package/dest/public/avm/{fixtures → testing}/utils.js +4 -34
  38. package/dest/public/contracts_db_checkpoint.d.ts +2 -2
  39. package/dest/public/contracts_db_checkpoint.d.ts.map +1 -1
  40. package/dest/public/contracts_db_checkpoint.js +1 -1
  41. package/dest/public/executor_metrics.d.ts +1 -1
  42. package/dest/public/executor_metrics.d.ts.map +1 -1
  43. package/dest/public/executor_metrics.js +7 -2
  44. package/dest/public/fixtures/amm_test.js +4 -4
  45. package/dest/public/fixtures/bulk_test.d.ts +1 -1
  46. package/dest/public/fixtures/bulk_test.d.ts.map +1 -1
  47. package/dest/public/fixtures/bulk_test.js +33 -6
  48. package/dest/public/fixtures/custom_bytecode_tester.d.ts +1 -1
  49. package/dest/public/fixtures/custom_bytecode_tester.d.ts.map +1 -1
  50. package/dest/public/fixtures/custom_bytecode_tester.js +2 -2
  51. package/dest/public/fixtures/index.d.ts +1 -4
  52. package/dest/public/fixtures/index.d.ts.map +1 -1
  53. package/dest/public/fixtures/index.js +0 -3
  54. package/dest/public/fixtures/public_tx_simulation_tester.d.ts +8 -7
  55. package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
  56. package/dest/public/fixtures/public_tx_simulation_tester.js +17 -16
  57. package/dest/public/fixtures/simple_contract_data_source.js +1 -1
  58. package/dest/public/fixtures/token_test.js +3 -3
  59. package/dest/public/fixtures/utils.d.ts +2 -2
  60. package/dest/public/fixtures/utils.d.ts.map +1 -1
  61. package/dest/public/fixtures/utils.js +21 -20
  62. package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts +6 -4
  63. package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts.map +1 -1
  64. package/dest/public/fuzzing/avm_fuzzer_simulator.js +12 -7
  65. package/dest/public/fuzzing/avm_simulator_bin.js +11 -8
  66. package/dest/public/index.d.ts +2 -2
  67. package/dest/public/index.d.ts.map +1 -1
  68. package/dest/public/index.js +1 -1
  69. package/dest/public/public_db_sources.d.ts +9 -5
  70. package/dest/public/public_db_sources.d.ts.map +1 -1
  71. package/dest/public/public_db_sources.js +20 -14
  72. package/dest/public/public_processor/guarded_merkle_tree.d.ts +8 -7
  73. package/dest/public/public_processor/guarded_merkle_tree.d.ts.map +1 -1
  74. package/dest/public/public_processor/guarded_merkle_tree.js +8 -5
  75. package/dest/public/public_processor/public_processor.d.ts +11 -6
  76. package/dest/public/public_processor/public_processor.d.ts.map +1 -1
  77. package/dest/public/public_processor/public_processor.js +112 -74
  78. package/dest/public/public_processor/public_processor_metrics.d.ts +5 -2
  79. package/dest/public/public_processor/public_processor_metrics.d.ts.map +1 -1
  80. package/dest/public/public_processor/public_processor_metrics.js +28 -4
  81. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts +3 -2
  82. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts.map +1 -1
  83. package/dest/public/public_tx_simulator/contract_provider_for_cpp.js +7 -6
  84. package/dest/public/public_tx_simulator/dumping_public_tx_simulator.d.ts +23 -0
  85. package/dest/public/public_tx_simulator/dumping_public_tx_simulator.d.ts.map +1 -0
  86. package/dest/public/public_tx_simulator/{dumping_cpp_public_tx_simulator.js → dumping_public_tx_simulator.js} +4 -4
  87. package/dest/public/public_tx_simulator/factories.d.ts +7 -6
  88. package/dest/public/public_tx_simulator/factories.d.ts.map +1 -1
  89. package/dest/public/public_tx_simulator/factories.js +8 -8
  90. package/dest/public/public_tx_simulator/index.d.ts +3 -5
  91. package/dest/public/public_tx_simulator/index.d.ts.map +1 -1
  92. package/dest/public/public_tx_simulator/index.js +2 -4
  93. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +42 -70
  94. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
  95. package/dest/public/public_tx_simulator/public_tx_simulator.js +99 -317
  96. package/dest/public/public_tx_simulator/public_tx_simulator_base.d.ts +22 -0
  97. package/dest/public/public_tx_simulator/public_tx_simulator_base.d.ts.map +1 -0
  98. package/dest/public/public_tx_simulator/public_tx_simulator_base.js +28 -0
  99. package/dest/public/test_executor_metrics.d.ts +3 -2
  100. package/dest/public/test_executor_metrics.d.ts.map +1 -1
  101. package/dest/public/test_executor_metrics.js +2 -2
  102. package/package.json +17 -18
  103. package/src/client.ts +0 -2
  104. package/src/private/acvm/acvm.ts +4 -3
  105. package/src/private/acvm_native.ts +11 -5
  106. package/src/private/acvm_wasm.ts +11 -4
  107. package/src/private/circuit_recording/circuit_recorder.ts +89 -81
  108. package/src/private/circuit_recording/file_circuit_recorder.ts +45 -50
  109. package/src/private/circuit_recording/memory_circuit_recorder.ts +6 -4
  110. package/src/private/circuit_recording/simulator_recorder_wrapper.ts +9 -15
  111. package/src/private/factory.ts +7 -4
  112. package/src/public/avm/testing/account_proof.json +553 -0
  113. package/src/public/avm/testing/account_proof_fetcher.ts +166 -0
  114. package/src/public/avm/{fixtures → testing}/base_avm_simulation_tester.ts +23 -3
  115. package/src/public/avm/{fixtures → testing}/utils.ts +4 -40
  116. package/src/public/contracts_db_checkpoint.ts +1 -1
  117. package/src/public/executor_metrics.ts +4 -1
  118. package/src/public/fixtures/amm_test.ts +4 -4
  119. package/src/public/fixtures/bulk_test.ts +31 -6
  120. package/src/public/fixtures/custom_bytecode_tester.ts +2 -2
  121. package/src/public/fixtures/index.ts +0 -3
  122. package/src/public/fixtures/public_tx_simulation_tester.ts +28 -14
  123. package/src/public/fixtures/simple_contract_data_source.ts +1 -1
  124. package/src/public/fixtures/token_test.ts +3 -3
  125. package/src/public/fixtures/utils.ts +23 -24
  126. package/src/public/fuzzing/avm_fuzzer_simulator.ts +16 -19
  127. package/src/public/fuzzing/avm_simulator_bin.ts +14 -6
  128. package/src/public/index.ts +3 -3
  129. package/src/public/public_db_sources.ts +36 -19
  130. package/src/public/public_processor/guarded_merkle_tree.ts +11 -8
  131. package/src/public/public_processor/public_processor.ts +156 -94
  132. package/src/public/public_processor/public_processor_metrics.ts +22 -4
  133. package/src/public/public_tx_simulator/contract_provider_for_cpp.ts +11 -7
  134. package/src/public/public_tx_simulator/{dumping_cpp_public_tx_simulator.ts → dumping_public_tx_simulator.ts} +5 -3
  135. package/src/public/public_tx_simulator/factories.ts +10 -7
  136. package/src/public/public_tx_simulator/index.ts +2 -4
  137. package/src/public/public_tx_simulator/public_tx_simulator.ts +153 -470
  138. package/src/public/public_tx_simulator/public_tx_simulator_base.ts +35 -0
  139. package/src/public/test_executor_metrics.ts +3 -3
  140. package/dest/public/avm/avm_context.d.ts +0 -41
  141. package/dest/public/avm/avm_context.d.ts.map +0 -1
  142. package/dest/public/avm/avm_context.js +0 -44
  143. package/dest/public/avm/avm_contract_call_result.d.ts +0 -32
  144. package/dest/public/avm/avm_contract_call_result.d.ts.map +0 -1
  145. package/dest/public/avm/avm_contract_call_result.js +0 -54
  146. package/dest/public/avm/avm_execution_environment.d.ts +0 -23
  147. package/dest/public/avm/avm_execution_environment.d.ts.map +0 -1
  148. package/dest/public/avm/avm_execution_environment.js +0 -33
  149. package/dest/public/avm/avm_gas.d.ts +0 -44
  150. package/dest/public/avm/avm_gas.d.ts.map +0 -1
  151. package/dest/public/avm/avm_gas.js +0 -195
  152. package/dest/public/avm/avm_machine_state.d.ts +0 -97
  153. package/dest/public/avm/avm_machine_state.d.ts.map +0 -1
  154. package/dest/public/avm/avm_machine_state.js +0 -109
  155. package/dest/public/avm/avm_memory_types.d.ts +0 -275
  156. package/dest/public/avm/avm_memory_types.d.ts.map +0 -1
  157. package/dest/public/avm/avm_memory_types.js +0 -351
  158. package/dest/public/avm/avm_simulator.d.ts +0 -40
  159. package/dest/public/avm/avm_simulator.d.ts.map +0 -1
  160. package/dest/public/avm/avm_simulator.js +0 -191
  161. package/dest/public/avm/avm_simulator_interface.d.ts +0 -9
  162. package/dest/public/avm/avm_simulator_interface.d.ts.map +0 -1
  163. package/dest/public/avm/avm_simulator_interface.js +0 -3
  164. package/dest/public/avm/errors.d.ts +0 -104
  165. package/dest/public/avm/errors.d.ts.map +0 -1
  166. package/dest/public/avm/errors.js +0 -141
  167. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts +0 -22
  168. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts.map +0 -1
  169. package/dest/public/avm/fixtures/avm_simulation_tester.js +0 -83
  170. package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts.map +0 -1
  171. package/dest/public/avm/fixtures/initializers.d.ts +0 -42
  172. package/dest/public/avm/fixtures/initializers.d.ts.map +0 -1
  173. package/dest/public/avm/fixtures/initializers.js +0 -44
  174. package/dest/public/avm/fixtures/utils.d.ts +0 -39
  175. package/dest/public/avm/fixtures/utils.d.ts.map +0 -1
  176. package/dest/public/avm/index.d.ts +0 -2
  177. package/dest/public/avm/index.d.ts.map +0 -1
  178. package/dest/public/avm/index.js +0 -1
  179. package/dest/public/avm/opcodes/accrued_substate.d.ts +0 -75
  180. package/dest/public/avm/opcodes/accrued_substate.d.ts.map +0 -1
  181. package/dest/public/avm/opcodes/accrued_substate.js +0 -255
  182. package/dest/public/avm/opcodes/addressing_mode.d.ts +0 -31
  183. package/dest/public/avm/opcodes/addressing_mode.d.ts.map +0 -1
  184. package/dest/public/avm/opcodes/addressing_mode.js +0 -94
  185. package/dest/public/avm/opcodes/arithmetic.d.ts +0 -49
  186. package/dest/public/avm/opcodes/arithmetic.d.ts.map +0 -1
  187. package/dest/public/avm/opcodes/arithmetic.js +0 -97
  188. package/dest/public/avm/opcodes/bitwise.d.ts +0 -42
  189. package/dest/public/avm/opcodes/bitwise.d.ts.map +0 -1
  190. package/dest/public/avm/opcodes/bitwise.js +0 -99
  191. package/dest/public/avm/opcodes/comparators.d.ts +0 -25
  192. package/dest/public/avm/opcodes/comparators.d.ts.map +0 -1
  193. package/dest/public/avm/opcodes/comparators.js +0 -43
  194. package/dest/public/avm/opcodes/contract.d.ts +0 -20
  195. package/dest/public/avm/opcodes/contract.d.ts.map +0 -1
  196. package/dest/public/avm/opcodes/contract.js +0 -65
  197. package/dest/public/avm/opcodes/control_flow.d.ts +0 -41
  198. package/dest/public/avm/opcodes/control_flow.d.ts.map +0 -1
  199. package/dest/public/avm/opcodes/control_flow.js +0 -107
  200. package/dest/public/avm/opcodes/conversion.d.ts +0 -18
  201. package/dest/public/avm/opcodes/conversion.d.ts.map +0 -1
  202. package/dest/public/avm/opcodes/conversion.js +0 -333
  203. package/dest/public/avm/opcodes/ec_add.d.ts +0 -19
  204. package/dest/public/avm/opcodes/ec_add.d.ts.map +0 -1
  205. package/dest/public/avm/opcodes/ec_add.js +0 -93
  206. package/dest/public/avm/opcodes/environment_getters.d.ts +0 -28
  207. package/dest/public/avm/opcodes/environment_getters.d.ts.map +0 -1
  208. package/dest/public/avm/opcodes/environment_getters.js +0 -77
  209. package/dest/public/avm/opcodes/external_calls.d.ts +0 -59
  210. package/dest/public/avm/opcodes/external_calls.d.ts.map +0 -1
  211. package/dest/public/avm/opcodes/external_calls.js +0 -210
  212. package/dest/public/avm/opcodes/hashing.d.ts +0 -36
  213. package/dest/public/avm/opcodes/hashing.d.ts.map +0 -1
  214. package/dest/public/avm/opcodes/hashing.js +0 -119
  215. package/dest/public/avm/opcodes/index.d.ts +0 -16
  216. package/dest/public/avm/opcodes/index.d.ts.map +0 -1
  217. package/dest/public/avm/opcodes/index.js +0 -15
  218. package/dest/public/avm/opcodes/instruction.d.ts +0 -74
  219. package/dest/public/avm/opcodes/instruction.d.ts.map +0 -1
  220. package/dest/public/avm/opcodes/instruction.js +0 -95
  221. package/dest/public/avm/opcodes/instruction_impl.d.ts +0 -19
  222. package/dest/public/avm/opcodes/instruction_impl.d.ts.map +0 -1
  223. package/dest/public/avm/opcodes/instruction_impl.js +0 -30
  224. package/dest/public/avm/opcodes/memory.d.ts +0 -74
  225. package/dest/public/avm/opcodes/memory.d.ts.map +0 -1
  226. package/dest/public/avm/opcodes/memory.js +0 -257
  227. package/dest/public/avm/opcodes/misc.d.ts +0 -18
  228. package/dest/public/avm/opcodes/misc.d.ts.map +0 -1
  229. package/dest/public/avm/opcodes/misc.js +0 -73
  230. package/dest/public/avm/opcodes/storage.d.ts +0 -24
  231. package/dest/public/avm/opcodes/storage.d.ts.map +0 -1
  232. package/dest/public/avm/opcodes/storage.js +0 -68
  233. package/dest/public/avm/revert_reason.d.ts +0 -18
  234. package/dest/public/avm/revert_reason.d.ts.map +0 -1
  235. package/dest/public/avm/revert_reason.js +0 -39
  236. package/dest/public/avm/serialization/buffer_cursor.d.ts +0 -26
  237. package/dest/public/avm/serialization/buffer_cursor.d.ts.map +0 -1
  238. package/dest/public/avm/serialization/buffer_cursor.js +0 -99
  239. package/dest/public/avm/serialization/bytecode_serialization.d.ts +0 -17
  240. package/dest/public/avm/serialization/bytecode_serialization.d.ts.map +0 -1
  241. package/dest/public/avm/serialization/bytecode_serialization.js +0 -336
  242. package/dest/public/avm/serialization/instruction_serialization.d.ts +0 -114
  243. package/dest/public/avm/serialization/instruction_serialization.d.ts.map +0 -1
  244. package/dest/public/avm/serialization/instruction_serialization.js +0 -261
  245. package/dest/public/avm/test_utils.d.ts +0 -15
  246. package/dest/public/avm/test_utils.d.ts.map +0 -1
  247. package/dest/public/avm/test_utils.js +0 -44
  248. package/dest/public/debug_fn_name.d.ts +0 -18
  249. package/dest/public/debug_fn_name.d.ts.map +0 -1
  250. package/dest/public/debug_fn_name.js +0 -35
  251. package/dest/public/fixtures/custom_bytecode_tests.d.ts +0 -12
  252. package/dest/public/fixtures/custom_bytecode_tests.d.ts.map +0 -1
  253. package/dest/public/fixtures/custom_bytecode_tests.js +0 -174
  254. package/dest/public/fixtures/minimal_public_tx.d.ts +0 -4
  255. package/dest/public/fixtures/minimal_public_tx.d.ts.map +0 -1
  256. package/dest/public/fixtures/minimal_public_tx.js +0 -19
  257. package/dest/public/fixtures/opcode_spammer.d.ts +0 -123
  258. package/dest/public/fixtures/opcode_spammer.d.ts.map +0 -1
  259. package/dest/public/fixtures/opcode_spammer.js +0 -1681
  260. package/dest/public/hinting_db_sources.d.ts +0 -80
  261. package/dest/public/hinting_db_sources.d.ts.map +0 -1
  262. package/dest/public/hinting_db_sources.js +0 -355
  263. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts +0 -53
  264. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts.map +0 -1
  265. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.js +0 -132
  266. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts +0 -42
  267. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts.map +0 -1
  268. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.js +0 -86
  269. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts +0 -30
  270. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts.map +0 -1
  271. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.js +0 -171
  272. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts +0 -22
  273. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts.map +0 -1
  274. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts +0 -31
  275. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts.map +0 -1
  276. package/dest/public/public_tx_simulator/measured_public_tx_simulator.js +0 -51
  277. package/dest/public/public_tx_simulator/public_tx_context.d.ts +0 -130
  278. package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +0 -1
  279. package/dest/public/public_tx_simulator/public_tx_context.js +0 -300
  280. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts +0 -21
  281. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts.map +0 -1
  282. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.js +0 -415
  283. package/dest/public/side_effect_trace.d.ts +0 -87
  284. package/dest/public/side_effect_trace.d.ts.map +0 -1
  285. package/dest/public/side_effect_trace.js +0 -199
  286. package/dest/public/side_effect_trace_interface.d.ts +0 -22
  287. package/dest/public/side_effect_trace_interface.d.ts.map +0 -1
  288. package/dest/public/side_effect_trace_interface.js +0 -1
  289. package/dest/public/state_manager/index.d.ts +0 -2
  290. package/dest/public/state_manager/index.d.ts.map +0 -1
  291. package/dest/public/state_manager/index.js +0 -1
  292. package/dest/public/state_manager/nullifiers.d.ts +0 -61
  293. package/dest/public/state_manager/nullifiers.d.ts.map +0 -1
  294. package/dest/public/state_manager/nullifiers.js +0 -92
  295. package/dest/public/state_manager/public_storage.d.ts +0 -66
  296. package/dest/public/state_manager/public_storage.d.ts.map +0 -1
  297. package/dest/public/state_manager/public_storage.js +0 -145
  298. package/dest/public/state_manager/state_manager.d.ts +0 -164
  299. package/dest/public/state_manager/state_manager.d.ts.map +0 -1
  300. package/dest/public/state_manager/state_manager.js +0 -395
  301. package/src/public/avm/avm_context.ts +0 -61
  302. package/src/public/avm/avm_contract_call_result.ts +0 -67
  303. package/src/public/avm/avm_execution_environment.ts +0 -46
  304. package/src/public/avm/avm_gas.ts +0 -183
  305. package/src/public/avm/avm_machine_state.ts +0 -169
  306. package/src/public/avm/avm_memory_types.ts +0 -436
  307. package/src/public/avm/avm_simulator.ts +0 -276
  308. package/src/public/avm/avm_simulator_interface.ts +0 -8
  309. package/src/public/avm/errors.ts +0 -177
  310. package/src/public/avm/fixtures/avm_simulation_tester.ts +0 -116
  311. package/src/public/avm/fixtures/initializers.ts +0 -102
  312. package/src/public/avm/index.ts +0 -1
  313. package/src/public/avm/opcodes/accrued_substate.ts +0 -288
  314. package/src/public/avm/opcodes/addressing_mode.ts +0 -111
  315. package/src/public/avm/opcodes/arithmetic.ts +0 -129
  316. package/src/public/avm/opcodes/bitwise.ts +0 -113
  317. package/src/public/avm/opcodes/comparators.ts +0 -55
  318. package/src/public/avm/opcodes/contract.ts +0 -75
  319. package/src/public/avm/opcodes/control_flow.ts +0 -123
  320. package/src/public/avm/opcodes/conversion.ts +0 -104
  321. package/src/public/avm/opcodes/ec_add.ts +0 -105
  322. package/src/public/avm/opcodes/environment_getters.ts +0 -87
  323. package/src/public/avm/opcodes/external_calls.ts +0 -261
  324. package/src/public/avm/opcodes/hashing.ts +0 -151
  325. package/src/public/avm/opcodes/index.ts +0 -15
  326. package/src/public/avm/opcodes/instruction.ts +0 -136
  327. package/src/public/avm/opcodes/instruction_impl.ts +0 -36
  328. package/src/public/avm/opcodes/memory.ts +0 -293
  329. package/src/public/avm/opcodes/misc.ts +0 -102
  330. package/src/public/avm/opcodes/storage.ts +0 -87
  331. package/src/public/avm/revert_reason.ts +0 -58
  332. package/src/public/avm/serialization/buffer_cursor.ts +0 -118
  333. package/src/public/avm/serialization/bytecode_serialization.ts +0 -215
  334. package/src/public/avm/serialization/instruction_serialization.ts +0 -249
  335. package/src/public/avm/test_utils.ts +0 -64
  336. package/src/public/debug_fn_name.ts +0 -50
  337. package/src/public/fixtures/custom_bytecode_tests.ts +0 -228
  338. package/src/public/fixtures/minimal_public_tx.ts +0 -26
  339. package/src/public/fixtures/opcode_spammer.ts +0 -1725
  340. package/src/public/hinting_db_sources.ts +0 -607
  341. package/src/public/public_tx_simulator/cpp_public_tx_simulator.ts +0 -208
  342. package/src/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.ts +0 -132
  343. package/src/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.ts +0 -237
  344. package/src/public/public_tx_simulator/measured_public_tx_simulator.ts +0 -105
  345. package/src/public/public_tx_simulator/public_tx_context.ts +0 -477
  346. package/src/public/public_tx_simulator/telemetry_public_tx_simulator.ts +0 -63
  347. package/src/public/side_effect_trace.ts +0 -290
  348. package/src/public/side_effect_trace_interface.ts +0 -28
  349. package/src/public/state_manager/index.ts +0 -1
  350. package/src/public/state_manager/nullifiers.ts +0 -103
  351. package/src/public/state_manager/public_storage.ts +0 -174
  352. package/src/public/state_manager/state_manager.ts +0 -546
@@ -1,255 +0,0 @@
1
- import { NullifierCollisionError } from '../../side_effect_errors.js';
2
- import { TypeTag, Uint1 } from '../avm_memory_types.js';
3
- import { InstructionExecutionError, StaticCallAlterationError } from '../errors.js';
4
- import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
5
- import { Addressing } from './addressing_mode.js';
6
- import { Instruction } from './instruction.js';
7
- export class NoteHashExists extends Instruction {
8
- addressingMode;
9
- noteHashOffset;
10
- leafIndexOffset;
11
- existsOffset;
12
- static type = 'NOTEHASHEXISTS';
13
- static opcode = Opcode.NOTEHASHEXISTS;
14
- // Informs (de)serialization. See Instruction.deserialize.
15
- static wireFormat = [
16
- OperandType.UINT8,
17
- OperandType.UINT8,
18
- OperandType.UINT16,
19
- OperandType.UINT16,
20
- OperandType.UINT16
21
- ];
22
- constructor(addressingMode, noteHashOffset, leafIndexOffset, existsOffset){
23
- super(), this.addressingMode = addressingMode, this.noteHashOffset = noteHashOffset, this.leafIndexOffset = leafIndexOffset, this.existsOffset = existsOffset;
24
- }
25
- async execute(context) {
26
- const memory = context.machineState.memory;
27
- const addressing = Addressing.fromWire(this.addressingMode);
28
- context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
29
- const operands = [
30
- this.noteHashOffset,
31
- this.leafIndexOffset,
32
- this.existsOffset
33
- ];
34
- const [noteHashOffset, leafIndexOffset, existsOffset] = addressing.resolve(operands, memory);
35
- memory.checkTag(TypeTag.FIELD, noteHashOffset);
36
- memory.checkTag(TypeTag.UINT64, leafIndexOffset);
37
- // Note that this instruction accepts any type in memory, and converts to Field.
38
- const noteHash = memory.get(noteHashOffset).toFr();
39
- const leafIndex = memory.get(leafIndexOffset).toBigInt();
40
- const exists = await context.persistableState.checkNoteHashExists(context.environment.address, noteHash, leafIndex);
41
- memory.set(existsOffset, exists ? new Uint1(1) : new Uint1(0));
42
- }
43
- }
44
- export class EmitNoteHash extends Instruction {
45
- addressingMode;
46
- noteHashOffset;
47
- static type = 'EMITNOTEHASH';
48
- static opcode = Opcode.EMITNOTEHASH;
49
- // Informs (de)serialization. See Instruction.deserialize.
50
- static wireFormat = [
51
- OperandType.UINT8,
52
- OperandType.UINT8,
53
- OperandType.UINT16
54
- ];
55
- constructor(addressingMode, noteHashOffset){
56
- super(), this.addressingMode = addressingMode, this.noteHashOffset = noteHashOffset;
57
- }
58
- async execute(context) {
59
- const memory = context.machineState.memory;
60
- const addressing = Addressing.fromWire(this.addressingMode);
61
- context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
62
- const operands = [
63
- this.noteHashOffset
64
- ];
65
- const [noteHashOffset] = addressing.resolve(operands, memory);
66
- memory.checkTag(TypeTag.FIELD, noteHashOffset);
67
- if (context.environment.isStaticCall) {
68
- throw new StaticCallAlterationError();
69
- }
70
- const noteHash = memory.get(noteHashOffset).toFr();
71
- await context.persistableState.writeNoteHash(context.environment.address, noteHash);
72
- }
73
- }
74
- export class NullifierExists extends Instruction {
75
- addressingMode;
76
- nullifierOffset;
77
- addressOffset;
78
- existsOffset;
79
- static type = 'NULLIFIEREXISTS';
80
- static opcode = Opcode.NULLIFIEREXISTS;
81
- // Informs (de)serialization. See Instruction.deserialize.
82
- static wireFormat = [
83
- OperandType.UINT8,
84
- OperandType.UINT8,
85
- OperandType.UINT16,
86
- OperandType.UINT16,
87
- OperandType.UINT16
88
- ];
89
- constructor(addressingMode, nullifierOffset, addressOffset, existsOffset){
90
- super(), this.addressingMode = addressingMode, this.nullifierOffset = nullifierOffset, this.addressOffset = addressOffset, this.existsOffset = existsOffset;
91
- }
92
- async execute(context) {
93
- const memory = context.machineState.memory;
94
- const addressing = Addressing.fromWire(this.addressingMode);
95
- context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
96
- const operands = [
97
- this.nullifierOffset,
98
- this.addressOffset,
99
- this.existsOffset
100
- ];
101
- const [nullifierOffset, addressOffset, existsOffset] = addressing.resolve(operands, memory);
102
- memory.checkTags(TypeTag.FIELD, nullifierOffset, addressOffset);
103
- const nullifier = memory.get(nullifierOffset).toFr();
104
- const address = memory.get(addressOffset).toAztecAddress();
105
- const exists = await context.persistableState.checkNullifierExists(address, nullifier);
106
- memory.set(existsOffset, exists ? new Uint1(1) : new Uint1(0));
107
- }
108
- }
109
- export class EmitNullifier extends Instruction {
110
- addressingMode;
111
- nullifierOffset;
112
- static type = 'EMITNULLIFIER';
113
- static opcode = Opcode.EMITNULLIFIER;
114
- // Informs (de)serialization. See Instruction.deserialize.
115
- static wireFormat = [
116
- OperandType.UINT8,
117
- OperandType.UINT8,
118
- OperandType.UINT16
119
- ];
120
- constructor(addressingMode, nullifierOffset){
121
- super(), this.addressingMode = addressingMode, this.nullifierOffset = nullifierOffset;
122
- }
123
- async execute(context) {
124
- if (context.environment.isStaticCall) {
125
- throw new StaticCallAlterationError();
126
- }
127
- const memory = context.machineState.memory;
128
- const addressing = Addressing.fromWire(this.addressingMode);
129
- context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
130
- const operands = [
131
- this.nullifierOffset
132
- ];
133
- const [nullifierOffset] = addressing.resolve(operands, memory);
134
- memory.checkTag(TypeTag.FIELD, nullifierOffset);
135
- const nullifier = memory.get(nullifierOffset).toFr();
136
- try {
137
- await context.persistableState.writeNullifier(context.environment.address, nullifier);
138
- } catch (e) {
139
- if (e instanceof NullifierCollisionError) {
140
- // Error is known/expected, raise as InstructionExecutionError that the will lead the simulator to revert this call
141
- throw new InstructionExecutionError(`Attempted to emit duplicate nullifier ${nullifier} (contract address: ${context.environment.address}).`);
142
- } else {
143
- throw e;
144
- }
145
- }
146
- }
147
- }
148
- export class L1ToL2MessageExists extends Instruction {
149
- addressingMode;
150
- msgHashOffset;
151
- msgLeafIndexOffset;
152
- existsOffset;
153
- static type = 'L1TOL2MSGEXISTS';
154
- static opcode = Opcode.L1TOL2MSGEXISTS;
155
- // Informs (de)serialization. See Instruction.deserialize.
156
- static wireFormat = [
157
- OperandType.UINT8,
158
- OperandType.UINT8,
159
- OperandType.UINT16,
160
- OperandType.UINT16,
161
- OperandType.UINT16
162
- ];
163
- constructor(addressingMode, msgHashOffset, msgLeafIndexOffset, existsOffset){
164
- super(), this.addressingMode = addressingMode, this.msgHashOffset = msgHashOffset, this.msgLeafIndexOffset = msgLeafIndexOffset, this.existsOffset = existsOffset;
165
- }
166
- async execute(context) {
167
- const memory = context.machineState.memory;
168
- const addressing = Addressing.fromWire(this.addressingMode);
169
- context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
170
- const operands = [
171
- this.msgHashOffset,
172
- this.msgLeafIndexOffset,
173
- this.existsOffset
174
- ];
175
- const [msgHashOffset, msgLeafIndexOffset, existsOffset] = addressing.resolve(operands, memory);
176
- memory.checkTag(TypeTag.FIELD, msgHashOffset);
177
- memory.checkTag(TypeTag.UINT64, msgLeafIndexOffset);
178
- const msgHash = memory.get(msgHashOffset).toFr();
179
- const msgLeafIndex = memory.get(msgLeafIndexOffset).toFr();
180
- const exists = await context.persistableState.checkL1ToL2MessageExists(msgHash, msgLeafIndex);
181
- memory.set(existsOffset, exists ? new Uint1(1) : new Uint1(0));
182
- }
183
- }
184
- export class EmitUnencryptedLog extends Instruction {
185
- addressingMode;
186
- logSizeOffset;
187
- logOffset;
188
- // TODO(#11124): rename unencrypted -> public
189
- static type = 'EMITUNENCRYPTEDLOG';
190
- static opcode = Opcode.EMITUNENCRYPTEDLOG;
191
- // Informs (de)serialization. See Instruction.deserialize.
192
- static wireFormat = [
193
- OperandType.UINT8,
194
- OperandType.UINT8,
195
- OperandType.UINT16,
196
- OperandType.UINT16
197
- ];
198
- constructor(addressingMode, logSizeOffset, logOffset){
199
- super(), this.addressingMode = addressingMode, this.logSizeOffset = logSizeOffset, this.logOffset = logOffset;
200
- }
201
- async execute(context) {
202
- if (context.environment.isStaticCall) {
203
- throw new StaticCallAlterationError();
204
- }
205
- const memory = context.machineState.memory;
206
- const addressing = Addressing.fromWire(this.addressingMode);
207
- context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
208
- const operands = [
209
- this.logSizeOffset,
210
- this.logOffset
211
- ];
212
- const [logSizeOffset, logOffset] = addressing.resolve(operands, memory);
213
- memory.checkTag(TypeTag.UINT32, logSizeOffset);
214
- const logSize = memory.get(logSizeOffset).toNumber();
215
- const contractAddress = context.environment.address;
216
- context.machineState.consumeGas(this.dynamicGasCost(logSize));
217
- memory.checkTagsRange(TypeTag.FIELD, logOffset, logSize);
218
- const log = memory.getSlice(logOffset, logSize).map((f)=>f.toFr());
219
- context.persistableState.writePublicLog(contractAddress, log);
220
- }
221
- }
222
- export class SendL2ToL1Message extends Instruction {
223
- addressingMode;
224
- recipientOffset;
225
- contentOffset;
226
- static type = 'SENDL2TOL1MSG';
227
- static opcode = Opcode.SENDL2TOL1MSG;
228
- // Informs (de)serialization. See Instruction.deserialize.
229
- static wireFormat = [
230
- OperandType.UINT8,
231
- OperandType.UINT8,
232
- OperandType.UINT16,
233
- OperandType.UINT16
234
- ];
235
- constructor(addressingMode, recipientOffset, contentOffset){
236
- super(), this.addressingMode = addressingMode, this.recipientOffset = recipientOffset, this.contentOffset = contentOffset;
237
- }
238
- async execute(context) {
239
- if (context.environment.isStaticCall) {
240
- throw new StaticCallAlterationError();
241
- }
242
- const memory = context.machineState.memory;
243
- const addressing = Addressing.fromWire(this.addressingMode);
244
- context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
245
- const operands = [
246
- this.recipientOffset,
247
- this.contentOffset
248
- ];
249
- const [recipientOffset, contentOffset] = addressing.resolve(operands, memory);
250
- memory.checkTags(TypeTag.FIELD, recipientOffset, contentOffset);
251
- const recipient = memory.get(recipientOffset).toFr();
252
- const content = memory.get(contentOffset).toFr();
253
- context.persistableState.writeL2ToL1Message(context.environment.address, recipient, content);
254
- }
255
- }
@@ -1,31 +0,0 @@
1
- import { AVM_MAX_OPERANDS } from '@aztec/constants';
2
- import type { Tuple } from '@aztec/foundation/serialize';
3
- import { type TaggedMemoryInterface } from '../avm_memory_types.js';
4
- export declare enum AddressingMode {
5
- DIRECT = 0,
6
- INDIRECT = 1,
7
- RELATIVE = 2,
8
- INDIRECT_RELATIVE = 3
9
- }
10
- /** A class to represent the addressing mode of an instruction. */
11
- export declare class Addressing {
12
- /** The addressing mode for each possible operand. */
13
- private readonly modePerOperand;
14
- constructor(
15
- /** The addressing mode for each possible operand. */
16
- modePerOperand: Tuple<AddressingMode, typeof AVM_MAX_OPERANDS>);
17
- static fromModes(modes: AddressingMode[]): Addressing;
18
- static fromWire(wireModes: number): Addressing;
19
- toWire(): number;
20
- indirectOperandsCount(): number;
21
- relativeOperandsCount(): number;
22
- /**
23
- * Resolves the offsets using the addressing mode.
24
- * @param offsets The offsets to resolve.
25
- * @param mem The memory to use for resolution.
26
- * @returns The resolved offsets. The length of the returned array is the same as the length of the input array and the resolved offsets are guaranteed to be valid addresses.
27
- * @throws An error if any step failed. Should be treated as a black box.
28
- */
29
- resolve(offsets: number[], mem: TaggedMemoryInterface): number[];
30
- }
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzc2luZ19tb2RlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHVibGljL2F2bS9vcGNvZGVzL2FkZHJlc3NpbmdfbW9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVwRCxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUl6RCxPQUFPLEVBQTZCLEtBQUsscUJBQXFCLEVBQVcsTUFBTSx3QkFBd0IsQ0FBQztBQUd4RyxvQkFBWSxjQUFjO0lBQ3hCLE1BQU0sSUFBSTtJQUNWLFFBQVEsSUFBSTtJQUNaLFFBQVEsSUFBSTtJQUNaLGlCQUFpQixJQUFJO0NBQ3RCO0FBRUQsa0VBQWtFO0FBQ2xFLHFCQUFhLFVBQVU7SUFFbkIscURBQXFEO0lBQ3JELE9BQU8sQ0FBQyxRQUFRLENBQUMsY0FBYztJQUZqQztJQUNFLHFEQUFxRDtJQUNwQyxjQUFjLEVBQUUsS0FBSyxDQUFDLGNBQWMsRUFBRSxPQUFPLGdCQUFnQixDQUFDLEVBQzdFO0lBRUosT0FBYyxTQUFTLENBQUMsS0FBSyxFQUFFLGNBQWMsRUFBRSxHQUFHLFVBQVUsQ0FHM0Q7SUFFRCxPQUFjLFFBQVEsQ0FBQyxTQUFTLEVBQUUsTUFBTSxHQUFHLFVBQVUsQ0FXcEQ7SUFFTSxNQUFNLElBQUksTUFBTSxDQWF0QjtJQUVNLHFCQUFxQixJQUFJLE1BQU0sQ0FFckM7SUFFTSxxQkFBcUIsSUFBSSxNQUFNLENBRXJDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksT0FBTyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUscUJBQXFCLEdBQUcsTUFBTSxFQUFFLENBc0N0RTtDQUNGIn0=
@@ -1 +0,0 @@
1
- {"version":3,"file":"addressing_mode.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/addressing_mode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAIzD,OAAO,EAA6B,KAAK,qBAAqB,EAAW,MAAM,wBAAwB,CAAC;AAGxG,oBAAY,cAAc;IACxB,MAAM,IAAI;IACV,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,iBAAiB,IAAI;CACtB;AAED,kEAAkE;AAClE,qBAAa,UAAU;IAEnB,qDAAqD;IACrD,OAAO,CAAC,QAAQ,CAAC,cAAc;IAFjC;IACE,qDAAqD;IACpC,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,OAAO,gBAAgB,CAAC,EAC7E;IAEJ,OAAc,SAAS,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,UAAU,CAG3D;IAED,OAAc,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CAWpD;IAEM,MAAM,IAAI,MAAM,CAatB;IAEM,qBAAqB,IAAI,MAAM,CAErC;IAEM,qBAAqB,IAAI,MAAM,CAErC;IAED;;;;;;OAMG;IACI,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,qBAAqB,GAAG,MAAM,EAAE,CAsCtE;CACF"}
@@ -1,94 +0,0 @@
1
- import { AVM_MAX_OPERANDS } from '@aztec/constants';
2
- import { padArrayEnd } from '@aztec/foundation/collection';
3
- import { strict as assert } from 'assert';
4
- import { TaggedMemory, TypeTag } from '../avm_memory_types.js';
5
- import { RelativeAddressOutOfRangeError, TagCheckError } from '../errors.js';
6
- export var AddressingMode = /*#__PURE__*/ function(AddressingMode) {
7
- AddressingMode[AddressingMode["DIRECT"] = 0] = "DIRECT";
8
- AddressingMode[AddressingMode["INDIRECT"] = 1] = "INDIRECT";
9
- AddressingMode[AddressingMode["RELATIVE"] = 2] = "RELATIVE";
10
- AddressingMode[AddressingMode["INDIRECT_RELATIVE"] = 3] = "INDIRECT_RELATIVE";
11
- return AddressingMode;
12
- }({});
13
- /** A class to represent the addressing mode of an instruction. */ export class Addressing {
14
- modePerOperand;
15
- constructor(/** The addressing mode for each possible operand. */ modePerOperand){
16
- this.modePerOperand = modePerOperand;
17
- }
18
- static fromModes(modes) {
19
- assert(modes.length <= AVM_MAX_OPERANDS, 'Too many operands for addressing mode');
20
- return new Addressing(padArrayEnd(modes, 0, AVM_MAX_OPERANDS));
21
- }
22
- static fromWire(wireModes) {
23
- // The modes are stored in the wire format as one or two bytes, with each two bits representing the modes for an operand.
24
- // Even bits are indirect, odd bits are relative.
25
- const modes = new Array(AVM_MAX_OPERANDS);
26
- for(let i = 0; i < AVM_MAX_OPERANDS; i++){
27
- modes[i] = (wireModes >> i * 2 & 1) * 1 | (wireModes >> i * 2 + 1 & 1) * 2;
28
- }
29
- // Casting the array to tuple since it should be more performant than using makeTuple
30
- return new Addressing(modes);
31
- }
32
- toWire() {
33
- // The modes are stored in the wire format as a byte, with each bit representing the mode for an operand.
34
- // The least significant bit represents the zeroth operand, and the least significant bit represents the last operand.
35
- let wire = 0;
36
- for(let i = 0; i < this.modePerOperand.length; i++){
37
- if (this.modePerOperand[i] & 1) {
38
- wire |= 1 << i * 2;
39
- }
40
- if (this.modePerOperand[i] & 2) {
41
- wire |= 1 << i * 2 + 1;
42
- }
43
- }
44
- return wire;
45
- }
46
- indirectOperandsCount() {
47
- return this.modePerOperand.filter((mode)=>mode & 1).length;
48
- }
49
- relativeOperandsCount() {
50
- return this.modePerOperand.filter((mode)=>mode & 2).length;
51
- }
52
- /**
53
- * Resolves the offsets using the addressing mode.
54
- * @param offsets The offsets to resolve.
55
- * @param mem The memory to use for resolution.
56
- * @returns The resolved offsets. The length of the returned array is the same as the length of the input array and the resolved offsets are guaranteed to be valid addresses.
57
- * @throws An error if any step failed. Should be treated as a black box.
58
- */ resolve(offsets, mem) {
59
- const resolved = new Array(offsets.length);
60
- // These will be read (once) if we have any relative operands.
61
- let baseAddr;
62
- for (const [i, offset] of offsets.entries()){
63
- const mode = this.modePerOperand[i];
64
- // The given offsets are assumed to be valid addresses.
65
- resolved[i] = offset;
66
- if (mode & 2) {
67
- if (!baseAddr) {
68
- baseAddr = mem.get(0);
69
- const baseAddrTag = baseAddr.getTag();
70
- if (!TaggedMemory.isValidMemoryAddressTag(baseAddrTag)) {
71
- throw TagCheckError.forBaseAddress(TypeTag[baseAddrTag]);
72
- }
73
- }
74
- // Here we know that resolved[i] is at most 32 bits and baseAddr is at most 32 bits.
75
- // Therefore, the addition is safe since the `number` type fits more than 33 bits.
76
- resolved[i] += Number(baseAddr.toBigInt());
77
- if (resolved[i] >= TaggedMemory.MAX_MEMORY_SIZE) {
78
- throw new RelativeAddressOutOfRangeError(Number(baseAddr.toBigInt()), offset);
79
- }
80
- }
81
- if (mode & 1) {
82
- // At this point we know that resolved[i] is a valid memory address.
83
- const resolvedValue = mem.get(resolved[i]);
84
- const resolvedTag = resolvedValue.getTag();
85
- // Final check.
86
- if (!TaggedMemory.isValidMemoryAddressTag(resolvedTag)) {
87
- throw TagCheckError.forIndirectAddress(resolved[i], TypeTag[resolvedTag]);
88
- }
89
- resolved[i] = Number(resolvedValue.toBigInt());
90
- }
91
- }
92
- return resolved;
93
- }
94
- }
@@ -1,49 +0,0 @@
1
- import type { AvmContext } from '../avm_context.js';
2
- import { type Field, type IntegralValue, type MemoryValue, type TaggedMemoryInterface } from '../avm_memory_types.js';
3
- import { Opcode } from '../serialization/instruction_serialization.js';
4
- import { ThreeOperandInstruction } from './instruction_impl.js';
5
- export declare abstract class ThreeOperandArithmeticInstruction extends ThreeOperandInstruction {
6
- execute(context: AvmContext): Promise<void>;
7
- protected abstract compute(a: MemoryValue, b: MemoryValue): MemoryValue;
8
- protected checkTags(memory: TaggedMemoryInterface, aOffset: number, bOffset: number): void;
9
- }
10
- export declare class Add extends ThreeOperandArithmeticInstruction {
11
- static readonly type: string;
12
- static readonly opcode = Opcode.ADD_8;
13
- protected compute(a: MemoryValue, b: MemoryValue): MemoryValue;
14
- }
15
- export declare class Sub extends ThreeOperandArithmeticInstruction {
16
- static readonly type: string;
17
- static readonly opcode = Opcode.SUB_8;
18
- protected compute(a: MemoryValue, b: MemoryValue): MemoryValue;
19
- }
20
- export declare class Mul extends ThreeOperandArithmeticInstruction {
21
- static type: string;
22
- static readonly opcode = Opcode.MUL_8;
23
- protected compute(a: MemoryValue, b: MemoryValue): MemoryValue;
24
- }
25
- export declare class Div extends ThreeOperandArithmeticInstruction {
26
- static type: string;
27
- static readonly opcode = Opcode.DIV_8;
28
- protected compute(a: MemoryValue, b: MemoryValue): MemoryValue;
29
- protected checkTags(memory: TaggedMemoryInterface, aOffset: number, bOffset: number): void;
30
- }
31
- export declare class FieldDiv extends ThreeOperandArithmeticInstruction {
32
- static type: string;
33
- static readonly opcode = Opcode.FDIV_8;
34
- protected compute(a: Field, b: Field): Field;
35
- protected checkTags(memory: TaggedMemoryInterface, aOffset: number, bOffset: number): void;
36
- }
37
- export declare class Shl extends ThreeOperandArithmeticInstruction {
38
- static readonly type: string;
39
- static readonly opcode = Opcode.SHL_8;
40
- protected compute(a: IntegralValue, b: IntegralValue): IntegralValue;
41
- protected checkTags(memory: TaggedMemoryInterface, aOffset: number, bOffset: number): void;
42
- }
43
- export declare class Shr extends ThreeOperandArithmeticInstruction {
44
- static readonly type: string;
45
- static readonly opcode = Opcode.SHR_8;
46
- protected compute(a: IntegralValue, b: IntegralValue): IntegralValue;
47
- protected checkTags(memory: TaggedMemoryInterface, aOffset: number, bOffset: number): void;
48
- }
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJpdGhtZXRpYy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3B1YmxpYy9hdm0vb3Bjb2Rlcy9hcml0aG1ldGljLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFDTCxLQUFLLEtBQUssRUFDVixLQUFLLGFBQWEsRUFDbEIsS0FBSyxXQUFXLEVBRWhCLEtBQUsscUJBQXFCLEVBRTNCLE1BQU0sd0JBQXdCLENBQUM7QUFFaEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBRXZFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWhFLDhCQUFzQixpQ0FBa0MsU0FBUSx1QkFBdUI7SUFDeEUsT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWlCdkQ7SUFFRCxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ3hFLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLHFCQUFxQixFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sUUFFbEY7Q0FDRjtBQUVELHFCQUFhLEdBQUksU0FBUSxpQ0FBaUM7SUFDeEQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFTO0lBQ3JDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxnQkFBZ0I7SUFFdEMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxXQUFXLEdBQUcsV0FBVyxDQUU3RDtDQUNGO0FBRUQscUJBQWEsR0FBSSxTQUFRLGlDQUFpQztJQUN4RCxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLENBQVM7SUFDckMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLGdCQUFnQjtJQUV0QyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLFdBQVcsR0FBRyxXQUFXLENBRTdEO0NBQ0Y7QUFFRCxxQkFBYSxHQUFJLFNBQVEsaUNBQWlDO0lBQ3hELE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFTO0lBQzVCLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxnQkFBZ0I7SUFFdEMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxXQUFXLEdBQUcsV0FBVyxDQUU3RDtDQUNGO0FBRUQscUJBQWEsR0FBSSxTQUFRLGlDQUFpQztJQUN4RCxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBUztJQUM1QixNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sZ0JBQWdCO0lBRXRDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsV0FBVyxHQUFHLFdBQVcsQ0FNN0Q7SUFFRCxVQUFtQixTQUFTLENBQUMsTUFBTSxFQUFFLHFCQUFxQixFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sUUFHM0Y7Q0FDRjtBQUVELHFCQUFhLFFBQVMsU0FBUSxpQ0FBaUM7SUFDN0QsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQVU7SUFDN0IsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLGlCQUFpQjtJQUV2QyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssR0FBRyxLQUFLLENBSzNDO0lBRUQsVUFBbUIsU0FBUyxDQUFDLE1BQU0sRUFBRSxxQkFBcUIsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBRzNGO0NBQ0Y7QUFFRCxxQkFBYSxHQUFJLFNBQVEsaUNBQWlDO0lBQ3hELE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBUztJQUNyQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sZ0JBQWdCO0lBRXRDLFVBQW1CLE9BQU8sQ0FBQyxDQUFDLEVBQUUsYUFBYSxFQUFFLENBQUMsRUFBRSxhQUFhLEdBQUcsYUFBYSxDQUU1RTtJQUVELFVBQW1CLFNBQVMsQ0FBQyxNQUFNLEVBQUUscUJBQXFCLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxRQUczRjtDQUNGO0FBRUQscUJBQWEsR0FBSSxTQUFRLGlDQUFpQztJQUN4RCxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLENBQVM7SUFDckMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLGdCQUFnQjtJQUV0QyxVQUFtQixPQUFPLENBQUMsQ0FBQyxFQUFFLGFBQWEsRUFBRSxDQUFDLEVBQUUsYUFBYSxHQUFHLGFBQWEsQ0FFNUU7SUFFRCxVQUFtQixTQUFTLENBQUMsTUFBTSxFQUFFLHFCQUFxQixFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sUUFHM0Y7Q0FDRiJ9
@@ -1 +0,0 @@
1
- {"version":3,"file":"arithmetic.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/arithmetic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EACL,KAAK,KAAK,EACV,KAAK,aAAa,EAClB,KAAK,WAAW,EAEhB,KAAK,qBAAqB,EAE3B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,MAAM,EAAE,MAAM,+CAA+C,CAAC;AAEvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,8BAAsB,iCAAkC,SAAQ,uBAAuB;IACxE,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBvD;IAED,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,WAAW,CAAC;IACxE,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,QAElF;CACF;AAED,qBAAa,GAAI,SAAQ,iCAAiC;IACxD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAS;IACrC,MAAM,CAAC,QAAQ,CAAC,MAAM,gBAAgB;IAEtC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,WAAW,CAE7D;CACF;AAED,qBAAa,GAAI,SAAQ,iCAAiC;IACxD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAS;IACrC,MAAM,CAAC,QAAQ,CAAC,MAAM,gBAAgB;IAEtC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,WAAW,CAE7D;CACF;AAED,qBAAa,GAAI,SAAQ,iCAAiC;IACxD,MAAM,CAAC,IAAI,EAAE,MAAM,CAAS;IAC5B,MAAM,CAAC,QAAQ,CAAC,MAAM,gBAAgB;IAEtC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,WAAW,CAE7D;CACF;AAED,qBAAa,GAAI,SAAQ,iCAAiC;IACxD,MAAM,CAAC,IAAI,EAAE,MAAM,CAAS;IAC5B,MAAM,CAAC,QAAQ,CAAC,MAAM,gBAAgB;IAEtC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,WAAW,CAM7D;IAED,UAAmB,SAAS,CAAC,MAAM,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,QAG3F;CACF;AAED,qBAAa,QAAS,SAAQ,iCAAiC;IAC7D,MAAM,CAAC,IAAI,EAAE,MAAM,CAAU;IAC7B,MAAM,CAAC,QAAQ,CAAC,MAAM,iBAAiB;IAEvC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,KAAK,CAK3C;IAED,UAAmB,SAAS,CAAC,MAAM,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,QAG3F;CACF;AAED,qBAAa,GAAI,SAAQ,iCAAiC;IACxD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAS;IACrC,MAAM,CAAC,QAAQ,CAAC,MAAM,gBAAgB;IAEtC,UAAmB,OAAO,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,GAAG,aAAa,CAE5E;IAED,UAAmB,SAAS,CAAC,MAAM,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,QAG3F;CACF;AAED,qBAAa,GAAI,SAAQ,iCAAiC;IACxD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAS;IACrC,MAAM,CAAC,QAAQ,CAAC,MAAM,gBAAgB;IAEtC,UAAmB,OAAO,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,GAAG,aAAa,CAE5E;IAED,UAAmB,SAAS,CAAC,MAAM,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,QAG3F;CACF"}
@@ -1,97 +0,0 @@
1
- import { TaggedMemory, TypeTag } from '../avm_memory_types.js';
2
- import { ArithmeticError } from '../errors.js';
3
- import { Opcode } from '../serialization/instruction_serialization.js';
4
- import { Addressing } from './addressing_mode.js';
5
- import { ThreeOperandInstruction } from './instruction_impl.js';
6
- export class ThreeOperandArithmeticInstruction extends ThreeOperandInstruction {
7
- async execute(context) {
8
- const memory = context.machineState.memory;
9
- const addressing = Addressing.fromWire(this.addressingMode);
10
- context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
11
- const operands = [
12
- this.aOffset,
13
- this.bOffset,
14
- this.dstOffset
15
- ];
16
- const [aOffset, bOffset, dstOffset] = addressing.resolve(operands, memory);
17
- this.checkTags(memory, aOffset, bOffset);
18
- const a = memory.get(aOffset);
19
- const b = memory.get(bOffset);
20
- const dest = this.compute(a, b);
21
- memory.set(dstOffset, dest);
22
- }
23
- checkTags(memory, aOffset, bOffset) {
24
- memory.checkTagsAreSame(aOffset, bOffset);
25
- }
26
- }
27
- export class Add extends ThreeOperandArithmeticInstruction {
28
- static type = 'ADD';
29
- static opcode = Opcode.ADD_8;
30
- compute(a, b) {
31
- return a.add(b);
32
- }
33
- }
34
- export class Sub extends ThreeOperandArithmeticInstruction {
35
- static type = 'SUB';
36
- static opcode = Opcode.SUB_8;
37
- compute(a, b) {
38
- return a.sub(b);
39
- }
40
- }
41
- export class Mul extends ThreeOperandArithmeticInstruction {
42
- static type = 'MUL';
43
- static opcode = Opcode.MUL_8;
44
- compute(a, b) {
45
- return a.mul(b);
46
- }
47
- }
48
- export class Div extends ThreeOperandArithmeticInstruction {
49
- static type = 'DIV';
50
- static opcode = Opcode.DIV_8;
51
- compute(a, b) {
52
- if (b.toBigInt() === 0n) {
53
- throw new ArithmeticError('Division by zero');
54
- }
55
- return a.div(b);
56
- }
57
- checkTags(memory, aOffset, bOffset) {
58
- memory.checkTagsAreSame(aOffset, bOffset);
59
- TaggedMemory.checkIsIntegralTag(memory.getTag(aOffset)); // Follows that bOffset tag is also of integral type
60
- }
61
- }
62
- export class FieldDiv extends ThreeOperandArithmeticInstruction {
63
- static type = 'FDIV';
64
- static opcode = Opcode.FDIV_8;
65
- compute(a, b) {
66
- if (b.toBigInt() === 0n) {
67
- throw new ArithmeticError('Division by zero');
68
- }
69
- return a.fdiv(b);
70
- }
71
- checkTags(memory, aOffset, bOffset) {
72
- memory.checkTagsAreSame(aOffset, bOffset);
73
- memory.checkTag(TypeTag.FIELD, aOffset); // Follows that bOffset has also tag of type Field
74
- }
75
- }
76
- export class Shl extends ThreeOperandArithmeticInstruction {
77
- static type = 'SHL';
78
- static opcode = Opcode.SHL_8;
79
- compute(a, b) {
80
- return a.shl(b);
81
- }
82
- checkTags(memory, aOffset, bOffset) {
83
- memory.checkTagsAreSame(aOffset, bOffset);
84
- TaggedMemory.checkIsIntegralTag(memory.getTag(aOffset)); // Follows that bOffset tag is also of integral type
85
- }
86
- }
87
- export class Shr extends ThreeOperandArithmeticInstruction {
88
- static type = 'SHR';
89
- static opcode = Opcode.SHR_8;
90
- compute(a, b) {
91
- return a.shr(b);
92
- }
93
- checkTags(memory, aOffset, bOffset) {
94
- memory.checkTagsAreSame(aOffset, bOffset);
95
- TaggedMemory.checkIsIntegralTag(memory.getTag(aOffset)); // Follows that bOffset tag is also of integral type
96
- }
97
- }
@@ -1,42 +0,0 @@
1
- import type { AvmContext } from '../avm_context.js';
2
- import { type IntegralValue, type TaggedMemoryInterface, TypeTag } from '../avm_memory_types.js';
3
- import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
4
- import { Instruction } from './instruction.js';
5
- import { ThreeOperandInstruction } from './instruction_impl.js';
6
- declare abstract class ThreeOperandBitwiseInstruction extends ThreeOperandInstruction {
7
- execute(context: AvmContext): Promise<void>;
8
- protected abstract compute(a: IntegralValue, b: IntegralValue): IntegralValue;
9
- protected checkTags(memory: TaggedMemoryInterface, aOffset: number, bOffset: number): void;
10
- protected getDynamicMultiplier(_lhsTag: TypeTag): number;
11
- }
12
- export declare class And extends ThreeOperandBitwiseInstruction {
13
- static readonly type: string;
14
- static readonly opcode = Opcode.AND_8;
15
- protected compute(a: IntegralValue, b: IntegralValue): IntegralValue;
16
- protected getDynamicMultiplier(lhsTag: TypeTag): number;
17
- }
18
- export declare class Or extends ThreeOperandBitwiseInstruction {
19
- static readonly type: string;
20
- static readonly opcode = Opcode.OR_8;
21
- protected compute(a: IntegralValue, b: IntegralValue): IntegralValue;
22
- protected getDynamicMultiplier(lhsTag: TypeTag): number;
23
- }
24
- export declare class Xor extends ThreeOperandBitwiseInstruction {
25
- static readonly type: string;
26
- static readonly opcode = Opcode.XOR_8;
27
- protected compute(a: IntegralValue, b: IntegralValue): IntegralValue;
28
- protected getDynamicMultiplier(lhsTag: TypeTag): number;
29
- }
30
- export declare class Not extends Instruction {
31
- private addressingMode;
32
- private srcOffset;
33
- private dstOffset;
34
- static readonly type: string;
35
- static readonly opcode = Opcode.NOT_8;
36
- static readonly wireFormat8: OperandType[];
37
- static readonly wireFormat16: OperandType[];
38
- constructor(addressingMode: number, srcOffset: number, dstOffset: number);
39
- execute(context: AvmContext): Promise<void>;
40
- }
41
- export {};
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYml0d2lzZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3B1YmxpYy9hdm0vb3Bjb2Rlcy9iaXR3aXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXBELE9BQU8sRUFBRSxLQUFLLGFBQWEsRUFBZ0IsS0FBSyxxQkFBcUIsRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRyxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBRXBGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVoRSx1QkFBZSw4QkFBK0IsU0FBUSx1QkFBdUI7SUFDOUQsT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQW9CdkQ7SUFFRCxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsYUFBYSxFQUFFLENBQUMsRUFBRSxhQUFhLEdBQUcsYUFBYSxDQUFDO0lBQzlFLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLHFCQUFxQixFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sUUFHbEY7SUFFRCxTQUFTLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLE9BQU8sR0FBRyxNQUFNLENBRXZEO0NBQ0Y7QUFFRCxxQkFBYSxHQUFJLFNBQVEsOEJBQThCO0lBQ3JELE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBUztJQUNyQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sZ0JBQWdCO0lBRXRDLFVBQW1CLE9BQU8sQ0FBQyxDQUFDLEVBQUUsYUFBYSxFQUFFLENBQUMsRUFBRSxhQUFhLEdBQUcsYUFBYSxDQUU1RTtJQUVELFVBQW1CLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxPQUFPLEdBQUcsTUFBTSxDQUUvRDtDQUNGO0FBRUQscUJBQWEsRUFBRyxTQUFRLDhCQUE4QjtJQUNwRCxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLENBQVE7SUFDcEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLGVBQWU7SUFFckMsVUFBbUIsT0FBTyxDQUFDLENBQUMsRUFBRSxhQUFhLEVBQUUsQ0FBQyxFQUFFLGFBQWEsR0FBRyxhQUFhLENBRTVFO0lBRUQsVUFBbUIsb0JBQW9CLENBQUMsTUFBTSxFQUFFLE9BQU8sR0FBRyxNQUFNLENBRS9EO0NBQ0Y7QUFFRCxxQkFBYSxHQUFJLFNBQVEsOEJBQThCO0lBQ3JELE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBUztJQUNyQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sZ0JBQWdCO0lBRXRDLFVBQW1CLE9BQU8sQ0FBQyxDQUFDLEVBQUUsYUFBYSxFQUFFLENBQUMsRUFBRSxhQUFhLEdBQUcsYUFBYSxDQUU1RTtJQUVELFVBQW1CLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxPQUFPLEdBQUcsTUFBTSxDQUUvRDtDQUNGO0FBRUQscUJBQWEsR0FBSSxTQUFRLFdBQVc7SUFRaEMsT0FBTyxDQUFDLGNBQWM7SUFDdEIsT0FBTyxDQUFDLFNBQVM7SUFDakIsT0FBTyxDQUFDLFNBQVM7SUFUbkIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFTO0lBQ3JDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxnQkFBZ0I7SUFFdEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxXQUFXLGdCQUFnRjtJQUMzRyxNQUFNLENBQUMsUUFBUSxDQUFDLFlBQVksZ0JBQWtGO0lBRTlHLFlBQ1UsY0FBYyxFQUFFLE1BQU0sRUFDdEIsU0FBUyxFQUFFLE1BQU0sRUFDakIsU0FBUyxFQUFFLE1BQU0sRUFHMUI7SUFFWSxPQUFPLENBQUMsT0FBTyxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBZXZEO0NBQ0YifQ==
@@ -1 +0,0 @@
1
- {"version":3,"file":"bitwise.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/bitwise.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,KAAK,aAAa,EAAgB,KAAK,qBAAqB,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAC/G,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,uBAAe,8BAA+B,SAAQ,uBAAuB;IAC9D,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBvD;IAED,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,GAAG,aAAa,CAAC;IAC9E,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,QAGlF;IAED,SAAS,CAAC,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAEvD;CACF;AAED,qBAAa,GAAI,SAAQ,8BAA8B;IACrD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAS;IACrC,MAAM,CAAC,QAAQ,CAAC,MAAM,gBAAgB;IAEtC,UAAmB,OAAO,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,GAAG,aAAa,CAE5E;IAED,UAAmB,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAE/D;CACF;AAED,qBAAa,EAAG,SAAQ,8BAA8B;IACpD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAQ;IACpC,MAAM,CAAC,QAAQ,CAAC,MAAM,eAAe;IAErC,UAAmB,OAAO,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,GAAG,aAAa,CAE5E;IAED,UAAmB,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAE/D;CACF;AAED,qBAAa,GAAI,SAAQ,8BAA8B;IACrD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAS;IACrC,MAAM,CAAC,QAAQ,CAAC,MAAM,gBAAgB;IAEtC,UAAmB,OAAO,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,GAAG,aAAa,CAE5E;IAED,UAAmB,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAE/D;CACF;AAED,qBAAa,GAAI,SAAQ,WAAW;IAQhC,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,SAAS;IATnB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAS;IACrC,MAAM,CAAC,QAAQ,CAAC,MAAM,gBAAgB;IAEtC,MAAM,CAAC,QAAQ,CAAC,WAAW,gBAAgF;IAC3G,MAAM,CAAC,QAAQ,CAAC,YAAY,gBAAkF;IAE9G,YACU,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EAG1B;IAEY,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAevD;CACF"}