@aztec/simulator 0.0.1-fake-ceab37513c → 0.0.2-commit.217f559981

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 (384) 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 +6 -5
  20. package/dest/private/acvm_native.d.ts.map +1 -1
  21. package/dest/private/acvm_native.js +23 -19
  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 +4 -4
  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 +21 -18
  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 +2 -2
  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/avm_context.d.ts +3 -3
  43. package/dest/public/avm/avm_context.d.ts.map +1 -1
  44. package/dest/public/avm/avm_contract_call_result.d.ts +6 -6
  45. package/dest/public/avm/avm_contract_call_result.d.ts.map +1 -1
  46. package/dest/public/avm/avm_contract_call_result.js +3 -3
  47. package/dest/public/avm/avm_execution_environment.d.ts +9 -7
  48. package/dest/public/avm/avm_execution_environment.d.ts.map +1 -1
  49. package/dest/public/avm/avm_execution_environment.js +5 -5
  50. package/dest/public/avm/avm_gas.d.ts +2 -2
  51. package/dest/public/avm/avm_gas.d.ts.map +1 -1
  52. package/dest/public/avm/avm_gas.js +3 -3
  53. package/dest/public/avm/avm_machine_state.d.ts +7 -6
  54. package/dest/public/avm/avm_machine_state.d.ts.map +1 -1
  55. package/dest/public/avm/avm_machine_state.js +3 -2
  56. package/dest/public/avm/avm_memory_types.d.ts +14 -14
  57. package/dest/public/avm/avm_memory_types.d.ts.map +1 -1
  58. package/dest/public/avm/avm_memory_types.js +4 -1
  59. package/dest/public/avm/avm_simulator.d.ts +5 -3
  60. package/dest/public/avm/avm_simulator.d.ts.map +1 -1
  61. package/dest/public/avm/avm_simulator.js +24 -29
  62. package/dest/public/avm/avm_simulator_interface.d.ts +1 -1
  63. package/dest/public/avm/calldata.d.ts +51 -0
  64. package/dest/public/avm/calldata.d.ts.map +1 -0
  65. package/dest/public/avm/calldata.js +63 -0
  66. package/dest/public/avm/errors.d.ts +13 -16
  67. package/dest/public/avm/errors.d.ts.map +1 -1
  68. package/dest/public/avm/errors.js +21 -22
  69. package/dest/public/avm/fixtures/account_proof_fetcher.d.ts +2 -0
  70. package/dest/public/avm/fixtures/account_proof_fetcher.d.ts.map +1 -0
  71. package/dest/public/avm/fixtures/account_proof_fetcher.js +152 -0
  72. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts +3 -2
  73. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts.map +1 -1
  74. package/dest/public/avm/fixtures/avm_simulation_tester.js +17 -8
  75. package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts +4 -2
  76. package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts.map +1 -1
  77. package/dest/public/avm/fixtures/base_avm_simulation_tester.js +23 -1
  78. package/dest/public/avm/fixtures/initializers.d.ts +2 -3
  79. package/dest/public/avm/fixtures/initializers.d.ts.map +1 -1
  80. package/dest/public/avm/fixtures/initializers.js +7 -4
  81. package/dest/public/avm/fixtures/utils.d.ts +4 -3
  82. package/dest/public/avm/fixtures/utils.d.ts.map +1 -1
  83. package/dest/public/avm/fixtures/utils.js +3 -2
  84. package/dest/public/avm/index.d.ts +1 -1
  85. package/dest/public/avm/opcodes/accrued_substate.d.ts +18 -19
  86. package/dest/public/avm/opcodes/accrued_substate.d.ts.map +1 -1
  87. package/dest/public/avm/opcodes/accrued_substate.js +47 -48
  88. package/dest/public/avm/opcodes/addressing_mode.d.ts +1 -1
  89. package/dest/public/avm/opcodes/addressing_mode.d.ts.map +1 -1
  90. package/dest/public/avm/opcodes/addressing_mode.js +4 -5
  91. package/dest/public/avm/opcodes/arithmetic.d.ts +3 -1
  92. package/dest/public/avm/opcodes/arithmetic.d.ts.map +1 -1
  93. package/dest/public/avm/opcodes/arithmetic.js +12 -2
  94. package/dest/public/avm/opcodes/bitwise.d.ts +3 -3
  95. package/dest/public/avm/opcodes/bitwise.d.ts.map +1 -1
  96. package/dest/public/avm/opcodes/bitwise.js +5 -5
  97. package/dest/public/avm/opcodes/comparators.d.ts +1 -1
  98. package/dest/public/avm/opcodes/comparators.d.ts.map +1 -1
  99. package/dest/public/avm/opcodes/comparators.js +1 -1
  100. package/dest/public/avm/opcodes/contract.d.ts +3 -3
  101. package/dest/public/avm/opcodes/contract.d.ts.map +1 -1
  102. package/dest/public/avm/opcodes/contract.js +8 -8
  103. package/dest/public/avm/opcodes/control_flow.d.ts +3 -3
  104. package/dest/public/avm/opcodes/control_flow.d.ts.map +1 -1
  105. package/dest/public/avm/opcodes/control_flow.js +4 -4
  106. package/dest/public/avm/opcodes/conversion.d.ts +3 -3
  107. package/dest/public/avm/opcodes/conversion.d.ts.map +1 -1
  108. package/dest/public/avm/opcodes/conversion.js +7 -4
  109. package/dest/public/avm/opcodes/ec_add.d.ts +3 -3
  110. package/dest/public/avm/opcodes/ec_add.d.ts.map +1 -1
  111. package/dest/public/avm/opcodes/ec_add.js +20 -11
  112. package/dest/public/avm/opcodes/environment_getters.d.ts +5 -5
  113. package/dest/public/avm/opcodes/environment_getters.d.ts.map +1 -1
  114. package/dest/public/avm/opcodes/environment_getters.js +11 -13
  115. package/dest/public/avm/opcodes/external_calls.d.ts +9 -9
  116. package/dest/public/avm/opcodes/external_calls.d.ts.map +1 -1
  117. package/dest/public/avm/opcodes/external_calls.js +23 -23
  118. package/dest/public/avm/opcodes/hashing.d.ts +7 -7
  119. package/dest/public/avm/opcodes/hashing.d.ts.map +1 -1
  120. package/dest/public/avm/opcodes/hashing.js +21 -16
  121. package/dest/public/avm/opcodes/index.d.ts +1 -1
  122. package/dest/public/avm/opcodes/instruction.d.ts +2 -2
  123. package/dest/public/avm/opcodes/instruction.d.ts.map +1 -1
  124. package/dest/public/avm/opcodes/instruction.js +5 -6
  125. package/dest/public/avm/opcodes/instruction_impl.d.ts +4 -4
  126. package/dest/public/avm/opcodes/instruction_impl.d.ts.map +1 -1
  127. package/dest/public/avm/opcodes/instruction_impl.js +4 -4
  128. package/dest/public/avm/opcodes/memory.d.ts +13 -13
  129. package/dest/public/avm/opcodes/memory.d.ts.map +1 -1
  130. package/dest/public/avm/opcodes/memory.js +26 -26
  131. package/dest/public/avm/opcodes/misc.d.ts +4 -3
  132. package/dest/public/avm/opcodes/misc.d.ts.map +1 -1
  133. package/dest/public/avm/opcodes/misc.js +30 -10
  134. package/dest/public/avm/opcodes/storage.d.ts +14 -13
  135. package/dest/public/avm/opcodes/storage.d.ts.map +1 -1
  136. package/dest/public/avm/opcodes/storage.js +34 -24
  137. package/dest/public/avm/revert_reason.d.ts +2 -2
  138. package/dest/public/avm/revert_reason.d.ts.map +1 -1
  139. package/dest/public/avm/revert_reason.js +3 -2
  140. package/dest/public/avm/serialization/buffer_cursor.d.ts +1 -1
  141. package/dest/public/avm/serialization/buffer_cursor.d.ts.map +1 -1
  142. package/dest/public/avm/serialization/bytecode_serialization.d.ts +1 -1
  143. package/dest/public/avm/serialization/bytecode_serialization.d.ts.map +1 -1
  144. package/dest/public/avm/serialization/bytecode_serialization.js +12 -9
  145. package/dest/public/avm/serialization/instruction_serialization.d.ts +10 -2
  146. package/dest/public/avm/serialization/instruction_serialization.d.ts.map +1 -1
  147. package/dest/public/avm/serialization/instruction_serialization.js +12 -2
  148. package/dest/public/avm/test_utils.d.ts +4 -4
  149. package/dest/public/avm/test_utils.d.ts.map +1 -1
  150. package/dest/public/avm/test_utils.js +7 -10
  151. package/dest/public/contracts_db_checkpoint.d.ts +16 -0
  152. package/dest/public/contracts_db_checkpoint.d.ts.map +1 -0
  153. package/dest/public/contracts_db_checkpoint.js +30 -0
  154. package/dest/public/db_interfaces.d.ts +14 -2
  155. package/dest/public/db_interfaces.d.ts.map +1 -1
  156. package/dest/public/debug_fn_name.d.ts +16 -3
  157. package/dest/public/debug_fn_name.d.ts.map +1 -1
  158. package/dest/public/debug_fn_name.js +31 -3
  159. package/dest/public/executor_metrics.d.ts +3 -2
  160. package/dest/public/executor_metrics.d.ts.map +1 -1
  161. package/dest/public/executor_metrics.js +13 -34
  162. package/dest/public/executor_metrics_interface.d.ts +3 -2
  163. package/dest/public/executor_metrics_interface.d.ts.map +1 -1
  164. package/dest/public/fixtures/amm_test.d.ts +1 -1
  165. package/dest/public/fixtures/amm_test.js +4 -4
  166. package/dest/public/fixtures/bulk_test.d.ts +3 -3
  167. package/dest/public/fixtures/bulk_test.d.ts.map +1 -1
  168. package/dest/public/fixtures/bulk_test.js +63 -194
  169. package/dest/public/fixtures/custom_bytecode_tester.d.ts +34 -0
  170. package/dest/public/fixtures/custom_bytecode_tester.d.ts.map +1 -0
  171. package/dest/public/fixtures/custom_bytecode_tester.js +53 -0
  172. package/dest/public/fixtures/custom_bytecode_tests.d.ts +12 -0
  173. package/dest/public/fixtures/custom_bytecode_tests.d.ts.map +1 -0
  174. package/dest/public/fixtures/custom_bytecode_tests.js +174 -0
  175. package/dest/public/fixtures/index.d.ts +5 -2
  176. package/dest/public/fixtures/index.d.ts.map +1 -1
  177. package/dest/public/fixtures/index.js +4 -1
  178. package/dest/public/fixtures/minimal_public_tx.d.ts +4 -9
  179. package/dest/public/fixtures/minimal_public_tx.d.ts.map +1 -1
  180. package/dest/public/fixtures/minimal_public_tx.js +10 -34
  181. package/dest/public/fixtures/opcode_spammer.d.ts +122 -0
  182. package/dest/public/fixtures/opcode_spammer.d.ts.map +1 -0
  183. package/dest/public/fixtures/opcode_spammer.js +1653 -0
  184. package/dest/public/fixtures/public_tx_simulation_tester.d.ts +25 -5
  185. package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
  186. package/dest/public/fixtures/public_tx_simulation_tester.js +63 -17
  187. package/dest/public/fixtures/simple_contract_data_source.d.ts +5 -4
  188. package/dest/public/fixtures/simple_contract_data_source.d.ts.map +1 -1
  189. package/dest/public/fixtures/simple_contract_data_source.js +4 -4
  190. package/dest/public/fixtures/token_test.d.ts +6 -2
  191. package/dest/public/fixtures/token_test.d.ts.map +1 -1
  192. package/dest/public/fixtures/token_test.js +13 -12
  193. package/dest/public/fixtures/utils.d.ts +2 -2
  194. package/dest/public/fixtures/utils.d.ts.map +1 -1
  195. package/dest/public/fixtures/utils.js +11 -10
  196. package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts +60 -0
  197. package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts.map +1 -0
  198. package/dest/public/fuzzing/avm_fuzzer_simulator.js +171 -0
  199. package/dest/public/fuzzing/avm_simulator_bin.d.ts +2 -0
  200. package/dest/public/fuzzing/avm_simulator_bin.d.ts.map +1 -0
  201. package/dest/public/fuzzing/avm_simulator_bin.js +118 -0
  202. package/dest/public/hinting_db_sources.d.ts +16 -4
  203. package/dest/public/hinting_db_sources.d.ts.map +1 -1
  204. package/dest/public/hinting_db_sources.js +74 -13
  205. package/dest/public/index.d.ts +3 -2
  206. package/dest/public/index.d.ts.map +1 -1
  207. package/dest/public/index.js +1 -1
  208. package/dest/public/public_db_sources.d.ts +27 -67
  209. package/dest/public/public_db_sources.d.ts.map +1 -1
  210. package/dest/public/public_db_sources.js +89 -136
  211. package/dest/public/public_errors.d.ts +12 -0
  212. package/dest/public/public_errors.d.ts.map +1 -0
  213. package/dest/public/public_errors.js +13 -0
  214. package/dest/public/public_processor/guarded_merkle_tree.d.ts +6 -2
  215. package/dest/public/public_processor/guarded_merkle_tree.d.ts.map +1 -1
  216. package/dest/public/public_processor/guarded_merkle_tree.js +8 -0
  217. package/dest/public/public_processor/public_processor.d.ts +16 -15
  218. package/dest/public/public_processor/public_processor.d.ts.map +1 -1
  219. package/dest/public/public_processor/public_processor.js +477 -70
  220. package/dest/public/public_processor/public_processor_metrics.d.ts +2 -2
  221. package/dest/public/public_processor/public_processor_metrics.d.ts.map +1 -1
  222. package/dest/public/public_processor/public_processor_metrics.js +28 -45
  223. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts +19 -0
  224. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts.map +1 -0
  225. package/dest/public/public_tx_simulator/contract_provider_for_cpp.js +98 -0
  226. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts +53 -0
  227. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts.map +1 -0
  228. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.js +132 -0
  229. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts +42 -0
  230. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts.map +1 -0
  231. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.js +86 -0
  232. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts +30 -0
  233. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts.map +1 -0
  234. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.js +171 -0
  235. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts +23 -0
  236. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts.map +1 -0
  237. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.js +52 -0
  238. package/dest/public/public_tx_simulator/factories.d.ts +14 -0
  239. package/dest/public/public_tx_simulator/factories.d.ts.map +1 -0
  240. package/dest/public/public_tx_simulator/factories.js +28 -0
  241. package/dest/public/public_tx_simulator/index.d.ts +6 -1
  242. package/dest/public/public_tx_simulator/index.d.ts.map +1 -1
  243. package/dest/public/public_tx_simulator/index.js +3 -0
  244. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts +16 -8
  245. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts.map +1 -1
  246. package/dest/public/public_tx_simulator/measured_public_tx_simulator.js +7 -8
  247. package/dest/public/public_tx_simulator/public_tx_context.d.ts +11 -5
  248. package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +1 -1
  249. package/dest/public/public_tx_simulator/public_tx_context.js +26 -14
  250. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +26 -31
  251. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
  252. package/dest/public/public_tx_simulator/public_tx_simulator.js +186 -130
  253. package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts +32 -0
  254. package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts.map +1 -0
  255. package/dest/public/public_tx_simulator/public_tx_simulator_interface.js +1 -0
  256. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts +4 -3
  257. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts.map +1 -1
  258. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.js +396 -20
  259. package/dest/public/side_effect_errors.d.ts +42 -2
  260. package/dest/public/side_effect_errors.d.ts.map +1 -1
  261. package/dest/public/side_effect_errors.js +70 -1
  262. package/dest/public/side_effect_trace.d.ts +15 -8
  263. package/dest/public/side_effect_trace.d.ts.map +1 -1
  264. package/dest/public/side_effect_trace.js +38 -23
  265. package/dest/public/side_effect_trace_interface.d.ts +9 -4
  266. package/dest/public/side_effect_trace_interface.d.ts.map +1 -1
  267. package/dest/public/state_manager/index.d.ts +1 -1
  268. package/dest/public/state_manager/nullifiers.d.ts +2 -5
  269. package/dest/public/state_manager/nullifiers.d.ts.map +1 -1
  270. package/dest/public/state_manager/nullifiers.js +1 -6
  271. package/dest/public/state_manager/public_storage.d.ts +2 -2
  272. package/dest/public/state_manager/public_storage.d.ts.map +1 -1
  273. package/dest/public/state_manager/public_storage.js +1 -1
  274. package/dest/public/state_manager/state_manager.d.ts +22 -13
  275. package/dest/public/state_manager/state_manager.d.ts.map +1 -1
  276. package/dest/public/state_manager/state_manager.js +75 -25
  277. package/dest/public/test_executor_metrics.d.ts +6 -4
  278. package/dest/public/test_executor_metrics.d.ts.map +1 -1
  279. package/dest/public/test_executor_metrics.js +7 -6
  280. package/dest/public/unique_class_ids.d.ts +1 -1
  281. package/dest/public/unique_class_ids.d.ts.map +1 -1
  282. package/dest/public/utils.d.ts +1 -1
  283. package/dest/server.d.ts +1 -1
  284. package/dest/testing.d.ts +1 -1
  285. package/package.json +24 -19
  286. package/src/common/errors.ts +1 -1
  287. package/src/private/acvm/acvm.ts +4 -3
  288. package/src/private/acvm/deserialize.ts +1 -1
  289. package/src/private/acvm/serialize.ts +1 -1
  290. package/src/private/acvm_native.ts +29 -16
  291. package/src/private/acvm_wasm.ts +7 -3
  292. package/src/private/circuit_recording/circuit_recorder.ts +22 -19
  293. package/src/private/circuit_recording/file_circuit_recorder.ts +7 -2
  294. package/src/private/circuit_recording/memory_circuit_recorder.ts +6 -4
  295. package/src/private/circuit_recording/simulator_recorder_wrapper.ts +1 -1
  296. package/src/private/factory.ts +7 -4
  297. package/src/public/avm/avm_context.ts +2 -2
  298. package/src/public/avm/avm_contract_call_result.ts +8 -6
  299. package/src/public/avm/avm_execution_environment.ts +13 -7
  300. package/src/public/avm/avm_gas.ts +5 -5
  301. package/src/public/avm/avm_machine_state.ts +7 -6
  302. package/src/public/avm/avm_memory_types.ts +5 -1
  303. package/src/public/avm/avm_simulator.ts +32 -38
  304. package/src/public/avm/calldata.ts +100 -0
  305. package/src/public/avm/errors.ts +24 -27
  306. package/src/public/avm/fixtures/account_proof.json +553 -0
  307. package/src/public/avm/fixtures/account_proof_fetcher.ts +166 -0
  308. package/src/public/avm/fixtures/avm_simulation_tester.ts +22 -6
  309. package/src/public/avm/fixtures/base_avm_simulation_tester.ts +33 -1
  310. package/src/public/avm/fixtures/initializers.ts +9 -9
  311. package/src/public/avm/fixtures/utils.ts +3 -2
  312. package/src/public/avm/opcodes/accrued_substate.ts +35 -38
  313. package/src/public/avm/opcodes/addressing_mode.ts +5 -5
  314. package/src/public/avm/opcodes/arithmetic.ts +14 -2
  315. package/src/public/avm/opcodes/bitwise.ts +3 -3
  316. package/src/public/avm/opcodes/comparators.ts +1 -1
  317. package/src/public/avm/opcodes/contract.ts +4 -7
  318. package/src/public/avm/opcodes/control_flow.ts +2 -2
  319. package/src/public/avm/opcodes/conversion.ts +7 -3
  320. package/src/public/avm/opcodes/ec_add.ts +18 -9
  321. package/src/public/avm/opcodes/environment_getters.ts +13 -15
  322. package/src/public/avm/opcodes/external_calls.ts +17 -16
  323. package/src/public/avm/opcodes/hashing.ts +16 -10
  324. package/src/public/avm/opcodes/instruction.ts +8 -6
  325. package/src/public/avm/opcodes/instruction_impl.ts +2 -2
  326. package/src/public/avm/opcodes/memory.ts +20 -20
  327. package/src/public/avm/opcodes/misc.ts +43 -9
  328. package/src/public/avm/opcodes/storage.ts +30 -22
  329. package/src/public/avm/revert_reason.ts +6 -3
  330. package/src/public/avm/serialization/bytecode_serialization.ts +19 -8
  331. package/src/public/avm/serialization/instruction_serialization.ts +14 -2
  332. package/src/public/avm/test_utils.ts +7 -15
  333. package/src/public/contracts_db_checkpoint.ts +41 -0
  334. package/src/public/db_interfaces.ts +16 -1
  335. package/src/public/debug_fn_name.ts +39 -5
  336. package/src/public/executor_metrics.ts +11 -34
  337. package/src/public/executor_metrics_interface.ts +2 -1
  338. package/src/public/fixtures/amm_test.ts +4 -4
  339. package/src/public/fixtures/bulk_test.ts +46 -28
  340. package/src/public/fixtures/custom_bytecode_tester.ts +83 -0
  341. package/src/public/fixtures/custom_bytecode_tests.ts +228 -0
  342. package/src/public/fixtures/index.ts +8 -1
  343. package/src/public/fixtures/minimal_public_tx.ts +11 -44
  344. package/src/public/fixtures/opcode_spammer.ts +1717 -0
  345. package/src/public/fixtures/public_tx_simulation_tester.ts +90 -22
  346. package/src/public/fixtures/simple_contract_data_source.ts +8 -9
  347. package/src/public/fixtures/token_test.ts +18 -10
  348. package/src/public/fixtures/utils.ts +9 -10
  349. package/src/public/fuzzing/avm_fuzzer_simulator.ts +288 -0
  350. package/src/public/fuzzing/avm_simulator_bin.ts +175 -0
  351. package/src/public/hinting_db_sources.ts +117 -10
  352. package/src/public/index.ts +8 -1
  353. package/src/public/public_db_sources.ts +126 -179
  354. package/src/public/public_errors.ts +14 -0
  355. package/src/public/public_processor/guarded_merkle_tree.ts +10 -1
  356. package/src/public/public_processor/public_processor.ts +123 -79
  357. package/src/public/public_processor/public_processor_metrics.ts +16 -44
  358. package/src/public/public_tx_simulator/contract_provider_for_cpp.ts +124 -0
  359. package/src/public/public_tx_simulator/cpp_public_tx_simulator.ts +211 -0
  360. package/src/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.ts +134 -0
  361. package/src/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.ts +239 -0
  362. package/src/public/public_tx_simulator/dumping_cpp_public_tx_simulator.ts +83 -0
  363. package/src/public/public_tx_simulator/factories.ts +43 -0
  364. package/src/public/public_tx_simulator/index.ts +5 -0
  365. package/src/public/public_tx_simulator/measured_public_tx_simulator.ts +13 -14
  366. package/src/public/public_tx_simulator/public_tx_context.ts +33 -13
  367. package/src/public/public_tx_simulator/public_tx_simulator.ts +281 -184
  368. package/src/public/public_tx_simulator/public_tx_simulator_interface.ts +33 -0
  369. package/src/public/public_tx_simulator/telemetry_public_tx_simulator.ts +4 -13
  370. package/src/public/side_effect_errors.ts +91 -1
  371. package/src/public/side_effect_trace.ts +53 -25
  372. package/src/public/side_effect_trace_interface.ts +7 -1
  373. package/src/public/state_manager/nullifiers.ts +2 -8
  374. package/src/public/state_manager/public_storage.ts +1 -1
  375. package/src/public/state_manager/state_manager.ts +107 -50
  376. package/src/public/test_executor_metrics.ts +10 -8
  377. package/dest/public/bytecode_errors.d.ts +0 -4
  378. package/dest/public/bytecode_errors.d.ts.map +0 -1
  379. package/dest/public/bytecode_errors.js +0 -6
  380. package/dest/public/tx_contract_cache.d.ts +0 -41
  381. package/dest/public/tx_contract_cache.d.ts.map +0 -1
  382. package/dest/public/tx_contract_cache.js +0 -49
  383. package/src/public/bytecode_errors.ts +0 -6
  384. package/src/public/tx_contract_cache.ts +0 -69
@@ -1,11 +1,12 @@
1
- import { NullifierCollisionError } from '../../state_manager/nullifiers.js';
1
+ import { MAX_ETH_ADDRESS_VALUE } from '@aztec/constants';
2
+ import { NullifierCollisionError } from '../../side_effect_errors.js';
2
3
  import { TypeTag, Uint1 } from '../avm_memory_types.js';
3
4
  import { InstructionExecutionError, StaticCallAlterationError } from '../errors.js';
4
5
  import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
5
6
  import { Addressing } from './addressing_mode.js';
6
7
  import { Instruction } from './instruction.js';
7
8
  export class NoteHashExists extends Instruction {
8
- indirect;
9
+ addressingMode;
9
10
  noteHashOffset;
10
11
  leafIndexOffset;
11
12
  existsOffset;
@@ -19,12 +20,12 @@ export class NoteHashExists extends Instruction {
19
20
  OperandType.UINT16,
20
21
  OperandType.UINT16
21
22
  ];
22
- constructor(indirect, noteHashOffset, leafIndexOffset, existsOffset){
23
- super(), this.indirect = indirect, this.noteHashOffset = noteHashOffset, this.leafIndexOffset = leafIndexOffset, this.existsOffset = existsOffset;
23
+ constructor(addressingMode, noteHashOffset, leafIndexOffset, existsOffset){
24
+ super(), this.addressingMode = addressingMode, this.noteHashOffset = noteHashOffset, this.leafIndexOffset = leafIndexOffset, this.existsOffset = existsOffset;
24
25
  }
25
26
  async execute(context) {
26
27
  const memory = context.machineState.memory;
27
- const addressing = Addressing.fromWire(this.indirect);
28
+ const addressing = Addressing.fromWire(this.addressingMode);
28
29
  context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
29
30
  const operands = [
30
31
  this.noteHashOffset,
@@ -42,7 +43,7 @@ export class NoteHashExists extends Instruction {
42
43
  }
43
44
  }
44
45
  export class EmitNoteHash extends Instruction {
45
- indirect;
46
+ addressingMode;
46
47
  noteHashOffset;
47
48
  static type = 'EMITNOTEHASH';
48
49
  static opcode = Opcode.EMITNOTEHASH;
@@ -52,12 +53,12 @@ export class EmitNoteHash extends Instruction {
52
53
  OperandType.UINT8,
53
54
  OperandType.UINT16
54
55
  ];
55
- constructor(indirect, noteHashOffset){
56
- super(), this.indirect = indirect, this.noteHashOffset = noteHashOffset;
56
+ constructor(addressingMode, noteHashOffset){
57
+ super(), this.addressingMode = addressingMode, this.noteHashOffset = noteHashOffset;
57
58
  }
58
59
  async execute(context) {
59
60
  const memory = context.machineState.memory;
60
- const addressing = Addressing.fromWire(this.indirect);
61
+ const addressing = Addressing.fromWire(this.addressingMode);
61
62
  context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
62
63
  const operands = [
63
64
  this.noteHashOffset
@@ -72,9 +73,8 @@ export class EmitNoteHash extends Instruction {
72
73
  }
73
74
  }
74
75
  export class NullifierExists extends Instruction {
75
- indirect;
76
- nullifierOffset;
77
- addressOffset;
76
+ addressingMode;
77
+ siloedNullifierOffset;
78
78
  existsOffset;
79
79
  static type = 'NULLIFIEREXISTS';
80
80
  static opcode = Opcode.NULLIFIEREXISTS;
@@ -83,31 +83,28 @@ export class NullifierExists extends Instruction {
83
83
  OperandType.UINT8,
84
84
  OperandType.UINT8,
85
85
  OperandType.UINT16,
86
- OperandType.UINT16,
87
86
  OperandType.UINT16
88
87
  ];
89
- constructor(indirect, nullifierOffset, addressOffset, existsOffset){
90
- super(), this.indirect = indirect, this.nullifierOffset = nullifierOffset, this.addressOffset = addressOffset, this.existsOffset = existsOffset;
88
+ constructor(addressingMode, siloedNullifierOffset, existsOffset){
89
+ super(), this.addressingMode = addressingMode, this.siloedNullifierOffset = siloedNullifierOffset, this.existsOffset = existsOffset;
91
90
  }
92
91
  async execute(context) {
93
92
  const memory = context.machineState.memory;
94
- const addressing = Addressing.fromWire(this.indirect);
93
+ const addressing = Addressing.fromWire(this.addressingMode);
95
94
  context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
96
95
  const operands = [
97
- this.nullifierOffset,
98
- this.addressOffset,
96
+ this.siloedNullifierOffset,
99
97
  this.existsOffset
100
98
  ];
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);
99
+ const [siloedNullifierOffset, existsOffset] = addressing.resolve(operands, memory);
100
+ memory.checkTag(TypeTag.FIELD, siloedNullifierOffset);
101
+ const siloedNullifier = memory.get(siloedNullifierOffset).toFr();
102
+ const exists = await context.persistableState.checkSiloedNullifierExists(siloedNullifier);
106
103
  memory.set(existsOffset, exists ? new Uint1(1) : new Uint1(0));
107
104
  }
108
105
  }
109
106
  export class EmitNullifier extends Instruction {
110
- indirect;
107
+ addressingMode;
111
108
  nullifierOffset;
112
109
  static type = 'EMITNULLIFIER';
113
110
  static opcode = Opcode.EMITNULLIFIER;
@@ -117,15 +114,15 @@ export class EmitNullifier extends Instruction {
117
114
  OperandType.UINT8,
118
115
  OperandType.UINT16
119
116
  ];
120
- constructor(indirect, nullifierOffset){
121
- super(), this.indirect = indirect, this.nullifierOffset = nullifierOffset;
117
+ constructor(addressingMode, nullifierOffset){
118
+ super(), this.addressingMode = addressingMode, this.nullifierOffset = nullifierOffset;
122
119
  }
123
120
  async execute(context) {
124
121
  if (context.environment.isStaticCall) {
125
122
  throw new StaticCallAlterationError();
126
123
  }
127
124
  const memory = context.machineState.memory;
128
- const addressing = Addressing.fromWire(this.indirect);
125
+ const addressing = Addressing.fromWire(this.addressingMode);
129
126
  context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
130
127
  const operands = [
131
128
  this.nullifierOffset
@@ -146,7 +143,7 @@ export class EmitNullifier extends Instruction {
146
143
  }
147
144
  }
148
145
  export class L1ToL2MessageExists extends Instruction {
149
- indirect;
146
+ addressingMode;
150
147
  msgHashOffset;
151
148
  msgLeafIndexOffset;
152
149
  existsOffset;
@@ -160,12 +157,12 @@ export class L1ToL2MessageExists extends Instruction {
160
157
  OperandType.UINT16,
161
158
  OperandType.UINT16
162
159
  ];
163
- constructor(indirect, msgHashOffset, msgLeafIndexOffset, existsOffset){
164
- super(), this.indirect = indirect, this.msgHashOffset = msgHashOffset, this.msgLeafIndexOffset = msgLeafIndexOffset, this.existsOffset = existsOffset;
160
+ constructor(addressingMode, msgHashOffset, msgLeafIndexOffset, existsOffset){
161
+ super(), this.addressingMode = addressingMode, this.msgHashOffset = msgHashOffset, this.msgLeafIndexOffset = msgLeafIndexOffset, this.existsOffset = existsOffset;
165
162
  }
166
163
  async execute(context) {
167
164
  const memory = context.machineState.memory;
168
- const addressing = Addressing.fromWire(this.indirect);
165
+ const addressing = Addressing.fromWire(this.addressingMode);
169
166
  context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
170
167
  const operands = [
171
168
  this.msgHashOffset,
@@ -181,13 +178,12 @@ export class L1ToL2MessageExists extends Instruction {
181
178
  memory.set(existsOffset, exists ? new Uint1(1) : new Uint1(0));
182
179
  }
183
180
  }
184
- export class EmitUnencryptedLog extends Instruction {
185
- indirect;
186
- logOffset;
181
+ export class EmitPublicLog extends Instruction {
182
+ addressingMode;
187
183
  logSizeOffset;
188
- // TODO(#11124): rename unencrypted -> public
189
- static type = 'EMITUNENCRYPTEDLOG';
190
- static opcode = Opcode.EMITUNENCRYPTEDLOG;
184
+ logOffset;
185
+ static type = 'EMITPUBLICLOG';
186
+ static opcode = Opcode.EMITPUBLICLOG;
191
187
  // Informs (de)serialization. See Instruction.deserialize.
192
188
  static wireFormat = [
193
189
  OperandType.UINT8,
@@ -195,32 +191,32 @@ export class EmitUnencryptedLog extends Instruction {
195
191
  OperandType.UINT16,
196
192
  OperandType.UINT16
197
193
  ];
198
- constructor(indirect, logOffset, logSizeOffset){
199
- super(), this.indirect = indirect, this.logOffset = logOffset, this.logSizeOffset = logSizeOffset;
194
+ constructor(addressingMode, logSizeOffset, logOffset){
195
+ super(), this.addressingMode = addressingMode, this.logSizeOffset = logSizeOffset, this.logOffset = logOffset;
200
196
  }
201
197
  async execute(context) {
202
198
  if (context.environment.isStaticCall) {
203
199
  throw new StaticCallAlterationError();
204
200
  }
205
201
  const memory = context.machineState.memory;
206
- const addressing = Addressing.fromWire(this.indirect);
202
+ const addressing = Addressing.fromWire(this.addressingMode);
207
203
  context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
208
204
  const operands = [
209
- this.logOffset,
210
- this.logSizeOffset
205
+ this.logSizeOffset,
206
+ this.logOffset
211
207
  ];
212
- const [logOffset, logSizeOffset] = addressing.resolve(operands, memory);
208
+ const [logSizeOffset, logOffset] = addressing.resolve(operands, memory);
213
209
  memory.checkTag(TypeTag.UINT32, logSizeOffset);
214
210
  const logSize = memory.get(logSizeOffset).toNumber();
215
- memory.checkTagsRange(TypeTag.FIELD, logOffset, logSize);
216
211
  const contractAddress = context.environment.address;
217
212
  context.machineState.consumeGas(this.dynamicGasCost(logSize));
213
+ memory.checkTagsRange(TypeTag.FIELD, logOffset, logSize);
218
214
  const log = memory.getSlice(logOffset, logSize).map((f)=>f.toFr());
219
215
  context.persistableState.writePublicLog(contractAddress, log);
220
216
  }
221
217
  }
222
218
  export class SendL2ToL1Message extends Instruction {
223
- indirect;
219
+ addressingMode;
224
220
  recipientOffset;
225
221
  contentOffset;
226
222
  static type = 'SENDL2TOL1MSG';
@@ -232,15 +228,15 @@ export class SendL2ToL1Message extends Instruction {
232
228
  OperandType.UINT16,
233
229
  OperandType.UINT16
234
230
  ];
235
- constructor(indirect, recipientOffset, contentOffset){
236
- super(), this.indirect = indirect, this.recipientOffset = recipientOffset, this.contentOffset = contentOffset;
231
+ constructor(addressingMode, recipientOffset, contentOffset){
232
+ super(), this.addressingMode = addressingMode, this.recipientOffset = recipientOffset, this.contentOffset = contentOffset;
237
233
  }
238
234
  async execute(context) {
239
235
  if (context.environment.isStaticCall) {
240
236
  throw new StaticCallAlterationError();
241
237
  }
242
238
  const memory = context.machineState.memory;
243
- const addressing = Addressing.fromWire(this.indirect);
239
+ const addressing = Addressing.fromWire(this.addressingMode);
244
240
  context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
245
241
  const operands = [
246
242
  this.recipientOffset,
@@ -249,6 +245,9 @@ export class SendL2ToL1Message extends Instruction {
249
245
  const [recipientOffset, contentOffset] = addressing.resolve(operands, memory);
250
246
  memory.checkTags(TypeTag.FIELD, recipientOffset, contentOffset);
251
247
  const recipient = memory.get(recipientOffset).toFr();
248
+ if (recipient.toBigInt() > MAX_ETH_ADDRESS_VALUE) {
249
+ throw new InstructionExecutionError(`SENDL2TOL1MSG: Recipient address is too large`);
250
+ }
252
251
  const content = memory.get(contentOffset).toFr();
253
252
  context.persistableState.writeL2ToL1Message(context.environment.address, recipient, content);
254
253
  }
@@ -28,4 +28,4 @@ export declare class Addressing {
28
28
  */
29
29
  resolve(offsets: number[], mem: TaggedMemoryInterface): number[];
30
30
  }
31
- //# sourceMappingURL=addressing_mode.d.ts.map
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzc2luZ19tb2RlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHVibGljL2F2bS9vcGNvZGVzL2FkZHJlc3NpbmdfbW9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVwRCxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUl6RCxPQUFPLEVBQTZCLEtBQUsscUJBQXFCLEVBQVcsTUFBTSx3QkFBd0IsQ0FBQztBQUd4RyxvQkFBWSxjQUFjO0lBQ3hCLE1BQU0sSUFBSTtJQUNWLFFBQVEsSUFBSTtJQUNaLFFBQVEsSUFBSTtJQUNaLGlCQUFpQixJQUFJO0NBQ3RCO0FBRUQsa0VBQWtFO0FBQ2xFLHFCQUFhLFVBQVU7SUFFbkIscURBQXFEO0lBQ3JELE9BQU8sQ0FBQyxRQUFRLENBQUMsY0FBYztJQUZqQztJQUNFLHFEQUFxRDtJQUNwQyxjQUFjLEVBQUUsS0FBSyxDQUFDLGNBQWMsRUFBRSxPQUFPLGdCQUFnQixDQUFDLEVBQzdFO0lBRUosT0FBYyxTQUFTLENBQUMsS0FBSyxFQUFFLGNBQWMsRUFBRSxHQUFHLFVBQVUsQ0FHM0Q7SUFFRCxPQUFjLFFBQVEsQ0FBQyxTQUFTLEVBQUUsTUFBTSxHQUFHLFVBQVUsQ0FXcEQ7SUFFTSxNQUFNLElBQUksTUFBTSxDQWF0QjtJQUVNLHFCQUFxQixJQUFJLE1BQU0sQ0FFckM7SUFFTSxxQkFBcUIsSUFBSSxNQUFNLENBRXJDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksT0FBTyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUscUJBQXFCLEdBQUcsTUFBTSxFQUFFLENBc0N0RTtDQUNGIn0=
@@ -1 +1 @@
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;AAEzD,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;;IAD/B,qDAAqD;IACpC,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,OAAO,gBAAgB,CAAC;WAGnE,SAAS,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,UAAU;WAO9C,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU;IAa9C,MAAM,IAAI,MAAM;IAehB,qBAAqB,IAAI,MAAM;IAI/B,qBAAqB,IAAI,MAAM;IAItC;;;;;;OAMG;IACI,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,qBAAqB,GAAG,MAAM,EAAE;CAuCxE"}
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,5 +1,6 @@
1
1
  import { AVM_MAX_OPERANDS } from '@aztec/constants';
2
2
  import { padArrayEnd } from '@aztec/foundation/collection';
3
+ import { strict as assert } from 'assert';
3
4
  import { TaggedMemory, TypeTag } from '../avm_memory_types.js';
4
5
  import { RelativeAddressOutOfRangeError, TagCheckError } from '../errors.js';
5
6
  export var AddressingMode = /*#__PURE__*/ function(AddressingMode) {
@@ -15,9 +16,7 @@ export var AddressingMode = /*#__PURE__*/ function(AddressingMode) {
15
16
  this.modePerOperand = modePerOperand;
16
17
  }
17
18
  static fromModes(modes) {
18
- if (modes.length > AVM_MAX_OPERANDS) {
19
- throw new Error('Too many operands for addressing mode');
20
- }
19
+ assert(modes.length <= AVM_MAX_OPERANDS, 'Too many operands for addressing mode');
21
20
  return new Addressing(padArrayEnd(modes, 0, AVM_MAX_OPERANDS));
22
21
  }
23
22
  static fromWire(wireModes) {
@@ -69,7 +68,7 @@ export var AddressingMode = /*#__PURE__*/ function(AddressingMode) {
69
68
  baseAddr = mem.get(0);
70
69
  const baseAddrTag = baseAddr.getTag();
71
70
  if (!TaggedMemory.isValidMemoryAddressTag(baseAddrTag)) {
72
- throw TagCheckError.forOffset(0, TypeTag[baseAddrTag], TypeTag[TypeTag.UINT32]);
71
+ throw TagCheckError.forBaseAddress(TypeTag[baseAddrTag]);
73
72
  }
74
73
  }
75
74
  // Here we know that resolved[i] is at most 32 bits and baseAddr is at most 32 bits.
@@ -85,7 +84,7 @@ export var AddressingMode = /*#__PURE__*/ function(AddressingMode) {
85
84
  const resolvedTag = resolvedValue.getTag();
86
85
  // Final check.
87
86
  if (!TaggedMemory.isValidMemoryAddressTag(resolvedTag)) {
88
- throw TagCheckError.forOffset(resolved[i], TypeTag[resolvedTag], TypeTag[TypeTag.UINT32]);
87
+ throw TagCheckError.forIndirectAddress(resolved[i], TypeTag[resolvedTag]);
89
88
  }
90
89
  resolved[i] = Number(resolvedValue.toBigInt());
91
90
  }
@@ -38,10 +38,12 @@ export declare class Shl extends ThreeOperandArithmeticInstruction {
38
38
  static readonly type: string;
39
39
  static readonly opcode = Opcode.SHL_8;
40
40
  protected compute(a: IntegralValue, b: IntegralValue): IntegralValue;
41
+ protected checkTags(memory: TaggedMemoryInterface, aOffset: number, bOffset: number): void;
41
42
  }
42
43
  export declare class Shr extends ThreeOperandArithmeticInstruction {
43
44
  static readonly type: string;
44
45
  static readonly opcode = Opcode.SHR_8;
45
46
  protected compute(a: IntegralValue, b: IntegralValue): IntegralValue;
47
+ protected checkTags(memory: TaggedMemoryInterface, aOffset: number, bOffset: number): void;
46
48
  }
47
- //# sourceMappingURL=arithmetic.d.ts.map
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJpdGhtZXRpYy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3B1YmxpYy9hdm0vb3Bjb2Rlcy9hcml0aG1ldGljLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFDTCxLQUFLLEtBQUssRUFDVixLQUFLLGFBQWEsRUFDbEIsS0FBSyxXQUFXLEVBRWhCLEtBQUsscUJBQXFCLEVBRTNCLE1BQU0sd0JBQXdCLENBQUM7QUFFaEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBRXZFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWhFLDhCQUFzQixpQ0FBa0MsU0FBUSx1QkFBdUI7SUFDeEUsT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWlCdkQ7SUFFRCxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ3hFLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLHFCQUFxQixFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sUUFFbEY7Q0FDRjtBQUVELHFCQUFhLEdBQUksU0FBUSxpQ0FBaUM7SUFDeEQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFTO0lBQ3JDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxnQkFBZ0I7SUFFdEMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxXQUFXLEdBQUcsV0FBVyxDQUU3RDtDQUNGO0FBRUQscUJBQWEsR0FBSSxTQUFRLGlDQUFpQztJQUN4RCxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLENBQVM7SUFDckMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLGdCQUFnQjtJQUV0QyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLFdBQVcsR0FBRyxXQUFXLENBRTdEO0NBQ0Y7QUFFRCxxQkFBYSxHQUFJLFNBQVEsaUNBQWlDO0lBQ3hELE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFTO0lBQzVCLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxnQkFBZ0I7SUFFdEMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxXQUFXLEdBQUcsV0FBVyxDQUU3RDtDQUNGO0FBRUQscUJBQWEsR0FBSSxTQUFRLGlDQUFpQztJQUN4RCxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBUztJQUM1QixNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sZ0JBQWdCO0lBRXRDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsV0FBVyxHQUFHLFdBQVcsQ0FNN0Q7SUFFRCxVQUFtQixTQUFTLENBQUMsTUFBTSxFQUFFLHFCQUFxQixFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sUUFHM0Y7Q0FDRjtBQUVELHFCQUFhLFFBQVMsU0FBUSxpQ0FBaUM7SUFDN0QsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQVU7SUFDN0IsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLGlCQUFpQjtJQUV2QyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssR0FBRyxLQUFLLENBSzNDO0lBRUQsVUFBbUIsU0FBUyxDQUFDLE1BQU0sRUFBRSxxQkFBcUIsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBRzNGO0NBQ0Y7QUFFRCxxQkFBYSxHQUFJLFNBQVEsaUNBQWlDO0lBQ3hELE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBUztJQUNyQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sZ0JBQWdCO0lBRXRDLFVBQW1CLE9BQU8sQ0FBQyxDQUFDLEVBQUUsYUFBYSxFQUFFLENBQUMsRUFBRSxhQUFhLEdBQUcsYUFBYSxDQUU1RTtJQUVELFVBQW1CLFNBQVMsQ0FBQyxNQUFNLEVBQUUscUJBQXFCLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxRQUczRjtDQUNGO0FBRUQscUJBQWEsR0FBSSxTQUFRLGlDQUFpQztJQUN4RCxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLENBQVM7SUFDckMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLGdCQUFnQjtJQUV0QyxVQUFtQixPQUFPLENBQUMsQ0FBQyxFQUFFLGFBQWEsRUFBRSxDQUFDLEVBQUUsYUFBYSxHQUFHLGFBQWEsQ0FFNUU7SUFFRCxVQUFtQixTQUFTLENBQUMsTUFBTSxFQUFFLHFCQUFxQixFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sUUFHM0Y7Q0FDRiJ9
@@ -1 +1 @@
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;IAmBxD,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,WAAW;IACvE,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAGpF;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;CAG/D;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;CAG/D;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;CAG/D;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;cAQ3C,SAAS,CAAC,MAAM,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAI7F;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;cAKzB,SAAS,CAAC,MAAM,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAI7F;AAED,qBAAa,GAAI,SAAQ,iCAAiC;IACxD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAS;IACrC,MAAM,CAAC,QAAQ,CAAC,MAAM,gBAAgB;cAEnB,OAAO,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,GAAG,aAAa;CAG9E;AAED,qBAAa,GAAI,SAAQ,iCAAiC;IACxD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAS;IACrC,MAAM,CAAC,QAAQ,CAAC,MAAM,gBAAgB;cAEnB,OAAO,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,GAAG,aAAa;CAG9E"}
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"}
@@ -6,7 +6,7 @@ import { ThreeOperandInstruction } from './instruction_impl.js';
6
6
  export class ThreeOperandArithmeticInstruction extends ThreeOperandInstruction {
7
7
  async execute(context) {
8
8
  const memory = context.machineState.memory;
9
- const addressing = Addressing.fromWire(this.indirect);
9
+ const addressing = Addressing.fromWire(this.addressingMode);
10
10
  context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
11
11
  const operands = [
12
12
  this.aOffset,
@@ -63,7 +63,9 @@ export class FieldDiv extends ThreeOperandArithmeticInstruction {
63
63
  static type = 'FDIV';
64
64
  static opcode = Opcode.FDIV_8;
65
65
  compute(a, b) {
66
- // return (a as Field).fdiv(b as Field);
66
+ if (b.toBigInt() === 0n) {
67
+ throw new ArithmeticError('Division by zero');
68
+ }
67
69
  return a.fdiv(b);
68
70
  }
69
71
  checkTags(memory, aOffset, bOffset) {
@@ -77,6 +79,10 @@ export class Shl extends ThreeOperandArithmeticInstruction {
77
79
  compute(a, b) {
78
80
  return a.shl(b);
79
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
+ }
80
86
  }
81
87
  export class Shr extends ThreeOperandArithmeticInstruction {
82
88
  static type = 'SHR';
@@ -84,4 +90,8 @@ export class Shr extends ThreeOperandArithmeticInstruction {
84
90
  compute(a, b) {
85
91
  return a.shr(b);
86
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
+ }
87
97
  }
@@ -28,15 +28,15 @@ export declare class Xor extends ThreeOperandBitwiseInstruction {
28
28
  protected getDynamicMultiplier(lhsTag: TypeTag): number;
29
29
  }
30
30
  export declare class Not extends Instruction {
31
- private indirect;
31
+ private addressingMode;
32
32
  private srcOffset;
33
33
  private dstOffset;
34
34
  static readonly type: string;
35
35
  static readonly opcode = Opcode.NOT_8;
36
36
  static readonly wireFormat8: OperandType[];
37
37
  static readonly wireFormat16: OperandType[];
38
- constructor(indirect: number, srcOffset: number, dstOffset: number);
38
+ constructor(addressingMode: number, srcOffset: number, dstOffset: number);
39
39
  execute(context: AvmContext): Promise<void>;
40
40
  }
41
41
  export {};
42
- //# sourceMappingURL=bitwise.d.ts.map
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYml0d2lzZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3B1YmxpYy9hdm0vb3Bjb2Rlcy9iaXR3aXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXBELE9BQU8sRUFBRSxLQUFLLGFBQWEsRUFBZ0IsS0FBSyxxQkFBcUIsRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRyxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBRXBGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVoRSx1QkFBZSw4QkFBK0IsU0FBUSx1QkFBdUI7SUFDOUQsT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQW9CdkQ7SUFFRCxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsYUFBYSxFQUFFLENBQUMsRUFBRSxhQUFhLEdBQUcsYUFBYSxDQUFDO0lBQzlFLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLHFCQUFxQixFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sUUFHbEY7SUFFRCxTQUFTLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLE9BQU8sR0FBRyxNQUFNLENBRXZEO0NBQ0Y7QUFFRCxxQkFBYSxHQUFJLFNBQVEsOEJBQThCO0lBQ3JELE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBUztJQUNyQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sZ0JBQWdCO0lBRXRDLFVBQW1CLE9BQU8sQ0FBQyxDQUFDLEVBQUUsYUFBYSxFQUFFLENBQUMsRUFBRSxhQUFhLEdBQUcsYUFBYSxDQUU1RTtJQUVELFVBQW1CLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxPQUFPLEdBQUcsTUFBTSxDQUUvRDtDQUNGO0FBRUQscUJBQWEsRUFBRyxTQUFRLDhCQUE4QjtJQUNwRCxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLENBQVE7SUFDcEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLGVBQWU7SUFFckMsVUFBbUIsT0FBTyxDQUFDLENBQUMsRUFBRSxhQUFhLEVBQUUsQ0FBQyxFQUFFLGFBQWEsR0FBRyxhQUFhLENBRTVFO0lBRUQsVUFBbUIsb0JBQW9CLENBQUMsTUFBTSxFQUFFLE9BQU8sR0FBRyxNQUFNLENBRS9EO0NBQ0Y7QUFFRCxxQkFBYSxHQUFJLFNBQVEsOEJBQThCO0lBQ3JELE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBUztJQUNyQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sZ0JBQWdCO0lBRXRDLFVBQW1CLE9BQU8sQ0FBQyxDQUFDLEVBQUUsYUFBYSxFQUFFLENBQUMsRUFBRSxhQUFhLEdBQUcsYUFBYSxDQUU1RTtJQUVELFVBQW1CLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxPQUFPLEdBQUcsTUFBTSxDQUUvRDtDQUNGO0FBRUQscUJBQWEsR0FBSSxTQUFRLFdBQVc7SUFRaEMsT0FBTyxDQUFDLGNBQWM7SUFDdEIsT0FBTyxDQUFDLFNBQVM7SUFDakIsT0FBTyxDQUFDLFNBQVM7SUFUbkIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFTO0lBQ3JDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxnQkFBZ0I7SUFFdEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxXQUFXLGdCQUFnRjtJQUMzRyxNQUFNLENBQUMsUUFBUSxDQUFDLFlBQVksZ0JBQWtGO0lBRTlHLFlBQ1UsY0FBYyxFQUFFLE1BQU0sRUFDdEIsU0FBUyxFQUFFLE1BQU0sRUFDakIsU0FBUyxFQUFFLE1BQU0sRUFHMUI7SUFFWSxPQUFPLENBQUMsT0FBTyxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBZXZEO0NBQ0YifQ==
@@ -1 +1 @@
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;IAsBxD,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,GAAG,aAAa;IAC7E,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAKnF,SAAS,CAAC,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM;CAGzD;AAED,qBAAa,GAAI,SAAQ,8BAA8B;IACrD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAS;IACrC,MAAM,CAAC,QAAQ,CAAC,MAAM,gBAAgB;cAEnB,OAAO,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,GAAG,aAAa;cAI1D,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM;CAGjE;AAED,qBAAa,EAAG,SAAQ,8BAA8B;IACpD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAQ;IACpC,MAAM,CAAC,QAAQ,CAAC,MAAM,eAAe;cAElB,OAAO,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,GAAG,aAAa;cAI1D,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM;CAGjE;AAED,qBAAa,GAAI,SAAQ,8BAA8B;IACrD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAS;IACrC,MAAM,CAAC,QAAQ,CAAC,MAAM,gBAAgB;cAEnB,OAAO,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,GAAG,aAAa;cAI1D,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM;CAGjE;AAED,qBAAa,GAAI,SAAQ,WAAW;IAQhC,OAAO,CAAC,QAAQ;IAChB,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;gBAGpG,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM;IAKd,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAgBzD"}
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"}
@@ -7,7 +7,7 @@ import { ThreeOperandInstruction } from './instruction_impl.js';
7
7
  class ThreeOperandBitwiseInstruction extends ThreeOperandInstruction {
8
8
  async execute(context) {
9
9
  const memory = context.machineState.memory;
10
- const addressing = Addressing.fromWire(this.indirect);
10
+ const addressing = Addressing.fromWire(this.addressingMode);
11
11
  context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
12
12
  const operands = [
13
13
  this.aOffset,
@@ -62,7 +62,7 @@ export class Xor extends ThreeOperandBitwiseInstruction {
62
62
  }
63
63
  }
64
64
  export class Not extends Instruction {
65
- indirect;
65
+ addressingMode;
66
66
  srcOffset;
67
67
  dstOffset;
68
68
  static type = 'NOT';
@@ -79,12 +79,12 @@ export class Not extends Instruction {
79
79
  OperandType.UINT16,
80
80
  OperandType.UINT16
81
81
  ];
82
- constructor(indirect, srcOffset, dstOffset){
83
- super(), this.indirect = indirect, this.srcOffset = srcOffset, this.dstOffset = dstOffset;
82
+ constructor(addressingMode, srcOffset, dstOffset){
83
+ super(), this.addressingMode = addressingMode, this.srcOffset = srcOffset, this.dstOffset = dstOffset;
84
84
  }
85
85
  async execute(context) {
86
86
  const memory = context.machineState.memory;
87
- const addressing = Addressing.fromWire(this.indirect);
87
+ const addressing = Addressing.fromWire(this.addressingMode);
88
88
  context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
89
89
  const operands = [
90
90
  this.srcOffset,
@@ -22,4 +22,4 @@ export declare class Lte extends ComparatorInstruction {
22
22
  protected compare(a: MemoryValue, b: MemoryValue): boolean;
23
23
  }
24
24
  export {};
25
- //# sourceMappingURL=comparators.d.ts.map
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyYXRvcnMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wdWJsaWMvYXZtL29wY29kZXMvY29tcGFyYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLEtBQUssV0FBVyxFQUFTLE1BQU0sd0JBQXdCLENBQUM7QUFDakUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBRXZFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWhFLHVCQUFlLHFCQUFzQixTQUFRLHVCQUF1QjtJQUNyRCxPQUFPLENBQUMsT0FBTyxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBaUJ2RDtJQUVELFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLFdBQVcsR0FBRyxPQUFPLENBQUM7Q0FDckU7QUFFRCxxQkFBYSxFQUFHLFNBQVEscUJBQXFCO0lBQzNDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBUTtJQUNwQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sZUFBZTtJQUVyQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLFdBQVcsR0FBRyxPQUFPLENBRXpEO0NBQ0Y7QUFFRCxxQkFBYSxFQUFHLFNBQVEscUJBQXFCO0lBQzNDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBUTtJQUNwQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sZUFBZTtJQUVyQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLFdBQVcsR0FBRyxPQUFPLENBRXpEO0NBQ0Y7QUFFRCxxQkFBYSxHQUFJLFNBQVEscUJBQXFCO0lBQzVDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBUztJQUNyQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sZ0JBQWdCO0lBRXRDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FFekQ7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"comparators.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/comparators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,KAAK,WAAW,EAAS,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,+CAA+C,CAAC;AAEvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,uBAAe,qBAAsB,SAAQ,uBAAuB;IACrD,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBxD,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,OAAO;CACpE;AAED,qBAAa,EAAG,SAAQ,qBAAqB;IAC3C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAQ;IACpC,MAAM,CAAC,QAAQ,CAAC,MAAM,eAAe;IAErC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,OAAO;CAG3D;AAED,qBAAa,EAAG,SAAQ,qBAAqB;IAC3C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAQ;IACpC,MAAM,CAAC,QAAQ,CAAC,MAAM,eAAe;IAErC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,OAAO;CAG3D;AAED,qBAAa,GAAI,SAAQ,qBAAqB;IAC5C,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,OAAO;CAG3D"}
1
+ {"version":3,"file":"comparators.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/comparators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,KAAK,WAAW,EAAS,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,+CAA+C,CAAC;AAEvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,uBAAe,qBAAsB,SAAQ,uBAAuB;IACrD,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,OAAO,CAAC;CACrE;AAED,qBAAa,EAAG,SAAQ,qBAAqB;IAC3C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAQ;IACpC,MAAM,CAAC,QAAQ,CAAC,MAAM,eAAe;IAErC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,OAAO,CAEzD;CACF;AAED,qBAAa,EAAG,SAAQ,qBAAqB;IAC3C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAQ;IACpC,MAAM,CAAC,QAAQ,CAAC,MAAM,eAAe;IAErC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,OAAO,CAEzD;CACF;AAED,qBAAa,GAAI,SAAQ,qBAAqB;IAC5C,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,OAAO,CAEzD;CACF"}
@@ -5,7 +5,7 @@ import { ThreeOperandInstruction } from './instruction_impl.js';
5
5
  class ComparatorInstruction extends ThreeOperandInstruction {
6
6
  async execute(context) {
7
7
  const memory = context.machineState.memory;
8
- const addressing = Addressing.fromWire(this.indirect);
8
+ const addressing = Addressing.fromWire(this.addressingMode);
9
9
  context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
10
10
  const operands = [
11
11
  this.aOffset,
@@ -7,14 +7,14 @@ export declare enum ContractInstanceMember {
7
7
  INIT_HASH = 2
8
8
  }
9
9
  export declare class GetContractInstance extends Instruction {
10
- private indirect;
10
+ private addressingMode;
11
11
  private addressOffset;
12
12
  private dstOffset;
13
13
  private memberEnum;
14
14
  static readonly type: string;
15
15
  static readonly opcode: Opcode;
16
16
  static readonly wireFormat: OperandType[];
17
- constructor(indirect: number, addressOffset: number, dstOffset: number, memberEnum: number);
17
+ constructor(addressingMode: number, addressOffset: number, dstOffset: number, memberEnum: number);
18
18
  execute(context: AvmContext): Promise<void>;
19
19
  }
20
- //# sourceMappingURL=contract.d.ts.map
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3QuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wdWJsaWMvYXZtL29wY29kZXMvY29udHJhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUVwRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFL0Msb0JBQVksc0JBQXNCO0lBQ2hDLFFBQVEsSUFBQTtJQUNSLFFBQVEsSUFBQTtJQUNSLFNBQVMsSUFBQTtDQUNWO0FBRUQscUJBQWEsbUJBQW9CLFNBQVEsV0FBVztJQWFoRCxPQUFPLENBQUMsY0FBYztJQUN0QixPQUFPLENBQUMsYUFBYTtJQUNyQixPQUFPLENBQUMsU0FBUztJQUNqQixPQUFPLENBQUMsVUFBVTtJQWZwQixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLENBQXlCO0lBQ3JELE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBOEI7SUFFNUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLENBTXZDO0lBRUYsWUFDVSxjQUFjLEVBQUUsTUFBTSxFQUN0QixhQUFhLEVBQUUsTUFBTSxFQUNyQixTQUFTLEVBQUUsTUFBTSxFQUNqQixVQUFVLEVBQUUsTUFBTSxFQUczQjtJQUVLLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FvQ2hEO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/contract.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,oBAAY,sBAAsB;IAChC,QAAQ,IAAA;IACR,QAAQ,IAAA;IACR,SAAS,IAAA;CACV;AAED,qBAAa,mBAAoB,SAAQ,WAAW;IAahD,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,UAAU;IAfpB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAyB;IACrD,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAA8B;IAE5D,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAMvC;gBAGQ,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM;IAKtB,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAwClD"}
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/contract.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,oBAAY,sBAAsB;IAChC,QAAQ,IAAA;IACR,QAAQ,IAAA;IACR,SAAS,IAAA;CACV;AAED,qBAAa,mBAAoB,SAAQ,WAAW;IAahD,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,UAAU;IAfpB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAyB;IACrD,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAA8B;IAE5D,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAMvC;IAEF,YACU,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAG3B;IAEK,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAoChD;CACF"}
@@ -10,7 +10,7 @@ export var ContractInstanceMember = /*#__PURE__*/ function(ContractInstanceMembe
10
10
  return ContractInstanceMember;
11
11
  }({});
12
12
  export class GetContractInstance extends Instruction {
13
- indirect;
13
+ addressingMode;
14
14
  addressOffset;
15
15
  dstOffset;
16
16
  memberEnum;
@@ -24,12 +24,12 @@ export class GetContractInstance extends Instruction {
24
24
  OperandType.UINT16,
25
25
  OperandType.UINT8
26
26
  ];
27
- constructor(indirect, addressOffset, dstOffset, memberEnum){
28
- super(), this.indirect = indirect, this.addressOffset = addressOffset, this.dstOffset = dstOffset, this.memberEnum = memberEnum;
27
+ constructor(addressingMode, addressOffset, dstOffset, memberEnum){
28
+ super(), this.addressingMode = addressingMode, this.addressOffset = addressOffset, this.dstOffset = dstOffset, this.memberEnum = memberEnum;
29
29
  }
30
30
  async execute(context) {
31
31
  const memory = context.machineState.memory;
32
- const addressing = Addressing.fromWire(this.indirect);
32
+ const addressing = Addressing.fromWire(this.addressingMode);
33
33
  context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
34
34
  if (!(this.memberEnum in ContractInstanceMember)) {
35
35
  throw new InstructionExecutionError(`Invalid GETCONSTRACTINSTANCE member enum ${this.memberEnum}`);
@@ -57,9 +57,9 @@ export class GetContractInstance extends Instruction {
57
57
  break;
58
58
  }
59
59
  }
60
- const existsOffset = dstOffset;
61
- const memberValueOffset = dstOffset + 1;
62
- memory.set(existsOffset, new Uint1(exists ? 1 : 0));
63
- memory.set(memberValueOffset, memberValue);
60
+ memory.setSlice(dstOffset, [
61
+ new Uint1(exists ? 1 : 0),
62
+ memberValue
63
+ ]);
64
64
  }
65
65
  }
@@ -11,13 +11,13 @@ export declare class Jump extends Instruction {
11
11
  handlesPC(): boolean;
12
12
  }
13
13
  export declare class JumpI extends Instruction {
14
- private indirect;
14
+ private addressingMode;
15
15
  private condOffset;
16
16
  private loc;
17
17
  static type: string;
18
18
  static readonly opcode: Opcode;
19
19
  static readonly wireFormat: OperandType[];
20
- constructor(indirect: number, condOffset: number, loc: number);
20
+ constructor(addressingMode: number, condOffset: number, loc: number);
21
21
  execute(context: AvmContext): Promise<void>;
22
22
  handlesPC(): boolean;
23
23
  }
@@ -38,4 +38,4 @@ export declare class InternalReturn extends Instruction {
38
38
  execute(context: AvmContext): Promise<void>;
39
39
  handlesPC(): boolean;
40
40
  }
41
- //# sourceMappingURL=control_flow.d.ts.map
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbF9mbG93LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHVibGljL2F2bS9vcGNvZGVzL2NvbnRyb2xfZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUdwRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBRXBGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUvQyxxQkFBYSxJQUFLLFNBQVEsV0FBVztJQU12QixPQUFPLENBQUMsVUFBVTtJQUw5QixNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBVTtJQUM3QixNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQWtCO0lBRWhELE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSxDQUEyQztJQUVwRixZQUFvQixVQUFVLEVBQUUsTUFBTSxFQUVyQztJQUVZLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FJdkQ7SUFFZSxTQUFTLElBQUksT0FBTyxDQUVuQztDQUNGO0FBRUQscUJBQWEsS0FBTSxTQUFRLFdBQVc7SUFhbEMsT0FBTyxDQUFDLGNBQWM7SUFDdEIsT0FBTyxDQUFDLFVBQVU7SUFDbEIsT0FBTyxDQUFDLEdBQUc7SUFkYixNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBVztJQUM5QixNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQW1CO0lBR2pELE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSxDQUt2QztJQUVGLFlBQ1UsY0FBYyxFQUFFLE1BQU0sRUFDdEIsVUFBVSxFQUFFLE1BQU0sRUFDbEIsR0FBRyxFQUFFLE1BQU0sRUFHcEI7SUFFWSxPQUFPLENBQUMsT0FBTyxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBbUJ2RDtJQUVlLFNBQVMsSUFBSSxPQUFPLENBRW5DO0NBQ0Y7QUFFRCxxQkFBYSxZQUFhLFNBQVEsV0FBVztJQU0vQixPQUFPLENBQUMsR0FBRztJQUx2QixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLENBQWtCO0lBQzlDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBdUI7SUFFckQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLENBQTJDO0lBRXBGLFlBQW9CLEdBQUcsRUFBRSxNQUFNLEVBRTlCO0lBRVksT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQVF2RDtJQUVlLFNBQVMsSUFBSSxPQUFPLENBRW5DO0NBQ0Y7QUFFRCxxQkFBYSxjQUFlLFNBQVEsV0FBVztJQUM3QyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLENBQW9CO0lBQ2hELE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBeUI7SUFFdkQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLENBQXVCO0lBRWhFLGNBRUM7SUFFWSxPQUFPLENBQUMsT0FBTyxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBUXZEO0lBRWUsU0FBUyxJQUFJLE9BQU8sQ0FFbkM7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"control_flow.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/control_flow.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,qBAAa,IAAK,SAAQ,WAAW;IAMvB,OAAO,CAAC,UAAU;IAL9B,MAAM,CAAC,IAAI,EAAE,MAAM,CAAU;IAC7B,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAkB;IAEhD,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAA2C;gBAEhE,UAAU,EAAE,MAAM;IAIzB,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxC,SAAS,IAAI,OAAO;CAGrC;AAED,qBAAa,KAAM,SAAQ,WAAW;IAalC,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,GAAG;IAdb,MAAM,CAAC,IAAI,EAAE,MAAM,CAAW;IAC9B,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAmB;IAGjD,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAKvC;gBAGQ,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM;IAKR,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBxC,SAAS,IAAI,OAAO;CAGrC;AAED,qBAAa,YAAa,SAAQ,WAAW;IAM/B,OAAO,CAAC,GAAG;IALvB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAkB;IAC9C,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAuB;IAErD,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAA2C;gBAEhE,GAAG,EAAE,MAAM;IAIlB,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAUxC,SAAS,IAAI,OAAO;CAGrC;AAED,qBAAa,cAAe,SAAQ,WAAW;IAC7C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAoB;IAChD,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAyB;IAEvD,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAAuB;;IAMnD,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAUxC,SAAS,IAAI,OAAO;CAGrC"}
1
+ {"version":3,"file":"control_flow.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/control_flow.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,qBAAa,IAAK,SAAQ,WAAW;IAMvB,OAAO,CAAC,UAAU;IAL9B,MAAM,CAAC,IAAI,EAAE,MAAM,CAAU;IAC7B,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAkB;IAEhD,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAA2C;IAEpF,YAAoB,UAAU,EAAE,MAAM,EAErC;IAEY,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAIvD;IAEe,SAAS,IAAI,OAAO,CAEnC;CACF;AAED,qBAAa,KAAM,SAAQ,WAAW;IAalC,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,GAAG;IAdb,MAAM,CAAC,IAAI,EAAE,MAAM,CAAW;IAC9B,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAmB;IAGjD,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAKvC;IAEF,YACU,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,EAGpB;IAEY,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBvD;IAEe,SAAS,IAAI,OAAO,CAEnC;CACF;AAED,qBAAa,YAAa,SAAQ,WAAW;IAM/B,OAAO,CAAC,GAAG;IALvB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAkB;IAC9C,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAuB;IAErD,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAA2C;IAEpF,YAAoB,GAAG,EAAE,MAAM,EAE9B;IAEY,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAQvD;IAEe,SAAS,IAAI,OAAO,CAEnC;CACF;AAED,qBAAa,cAAe,SAAQ,WAAW;IAC7C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAoB;IAChD,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAyB;IAEvD,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAAuB;IAEhE,cAEC;IAEY,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAQvD;IAEe,SAAS,IAAI,OAAO,CAEnC;CACF"}
@@ -24,7 +24,7 @@ export class Jump extends Instruction {
24
24
  }
25
25
  }
26
26
  export class JumpI extends Instruction {
27
- indirect;
27
+ addressingMode;
28
28
  condOffset;
29
29
  loc;
30
30
  static type = 'JUMPI';
@@ -36,12 +36,12 @@ export class JumpI extends Instruction {
36
36
  OperandType.UINT16,
37
37
  OperandType.UINT32
38
38
  ];
39
- constructor(indirect, condOffset, loc){
40
- super(), this.indirect = indirect, this.condOffset = condOffset, this.loc = loc;
39
+ constructor(addressingMode, condOffset, loc){
40
+ super(), this.addressingMode = addressingMode, this.condOffset = condOffset, this.loc = loc;
41
41
  }
42
42
  async execute(context) {
43
43
  const memory = context.machineState.memory;
44
- const addressing = Addressing.fromWire(this.indirect);
44
+ const addressing = Addressing.fromWire(this.addressingMode);
45
45
  context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
46
46
  const operands = [
47
47
  this.condOffset
@@ -2,7 +2,7 @@ import type { AvmContext } from '../avm_context.js';
2
2
  import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
3
3
  import { Instruction } from './instruction.js';
4
4
  export declare class ToRadixBE extends Instruction {
5
- private indirect;
5
+ private addressingMode;
6
6
  private srcOffset;
7
7
  private radixOffset;
8
8
  private numLimbsOffset;
@@ -11,8 +11,8 @@ export declare class ToRadixBE extends Instruction {
11
11
  static type: string;
12
12
  static readonly opcode: Opcode;
13
13
  static readonly wireFormat: OperandType[];
14
- constructor(indirect: number, srcOffset: number, radixOffset: number, numLimbsOffset: number, outputBitsOffset: number, dstOffset: number);
14
+ constructor(addressingMode: number, srcOffset: number, radixOffset: number, numLimbsOffset: number, outputBitsOffset: number, dstOffset: number);
15
15
  execute(context: AvmContext): Promise<void>;
16
16
  }
17
17
  export declare const MODULUS_LIMBS_PER_RADIX: number[];
18
- //# sourceMappingURL=conversion.d.ts.map
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2lvbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3B1YmxpYy9hdm0vb3Bjb2Rlcy9jb252ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR3BELE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFFcEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRS9DLHFCQUFhLFNBQVUsU0FBUSxXQUFXO0lBZ0J0QyxPQUFPLENBQUMsY0FBYztJQUN0QixPQUFPLENBQUMsU0FBUztJQUNqQixPQUFPLENBQUMsV0FBVztJQUNuQixPQUFPLENBQUMsY0FBYztJQUN0QixPQUFPLENBQUMsZ0JBQWdCO0lBQ3hCLE9BQU8sQ0FBQyxTQUFTO0lBcEJuQixNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBZTtJQUNsQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQW9CO0lBR2xELE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSxDQVF2QztJQUVGLFlBQ1UsY0FBYyxFQUFFLE1BQU0sRUFDdEIsU0FBUyxFQUFFLE1BQU0sRUFDakIsV0FBVyxFQUFFLE1BQU0sRUFDbkIsY0FBYyxFQUFFLE1BQU0sRUFDdEIsZ0JBQWdCLEVBQUUsTUFBTSxFQUN4QixTQUFTLEVBQUUsTUFBTSxFQUcxQjtJQUVZLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0F3RHZEO0NBQ0Y7QUFHRCxlQUFPLE1BQU0sdUJBQXVCLEVBQUUsTUFBTSxFQVUzQyxDQUFDIn0=