@aztec/simulator 0.55.1 → 0.57.0

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 (255) hide show
  1. package/dest/acvm/oracle/oracle.d.ts +2 -5
  2. package/dest/acvm/oracle/oracle.d.ts.map +1 -1
  3. package/dest/acvm/oracle/oracle.js +6 -37
  4. package/dest/acvm/oracle/typed_oracle.d.ts +3 -6
  5. package/dest/acvm/oracle/typed_oracle.d.ts.map +1 -1
  6. package/dest/acvm/oracle/typed_oracle.js +1 -10
  7. package/dest/avm/avm_execution_environment.d.ts +2 -11
  8. package/dest/avm/avm_execution_environment.d.ts.map +1 -1
  9. package/dest/avm/avm_execution_environment.js +3 -22
  10. package/dest/avm/avm_gas.d.ts +2 -2
  11. package/dest/avm/avm_gas.d.ts.map +1 -1
  12. package/dest/avm/avm_gas.js +31 -116
  13. package/dest/avm/avm_machine_state.d.ts.map +1 -1
  14. package/dest/avm/avm_machine_state.js +6 -6
  15. package/dest/avm/avm_memory_types.d.ts +38 -9
  16. package/dest/avm/avm_memory_types.d.ts.map +1 -1
  17. package/dest/avm/avm_memory_types.js +27 -13
  18. package/dest/avm/avm_simulator.d.ts.map +1 -1
  19. package/dest/avm/avm_simulator.js +5 -6
  20. package/dest/avm/bytecode_utils.d.ts +1 -2
  21. package/dest/avm/bytecode_utils.d.ts.map +1 -1
  22. package/dest/avm/bytecode_utils.js +3 -17
  23. package/dest/avm/errors.d.ts +1 -1
  24. package/dest/avm/errors.d.ts.map +1 -1
  25. package/dest/avm/errors.js +12 -3
  26. package/dest/avm/fixtures/index.d.ts +4 -16
  27. package/dest/avm/fixtures/index.d.ts.map +1 -1
  28. package/dest/avm/fixtures/index.js +11 -27
  29. package/dest/avm/journal/index.d.ts +0 -1
  30. package/dest/avm/journal/index.d.ts.map +1 -1
  31. package/dest/avm/journal/index.js +1 -2
  32. package/dest/avm/journal/journal.d.ts +6 -5
  33. package/dest/avm/journal/journal.d.ts.map +1 -1
  34. package/dest/avm/journal/journal.js +18 -16
  35. package/dest/avm/opcodes/accrued_substate.d.ts.map +1 -1
  36. package/dest/avm/opcodes/accrued_substate.js +37 -30
  37. package/dest/avm/opcodes/addressing_mode.d.ts +3 -2
  38. package/dest/avm/opcodes/addressing_mode.d.ts.map +1 -1
  39. package/dest/avm/opcodes/addressing_mode.js +25 -21
  40. package/dest/avm/opcodes/arithmetic.d.ts.map +1 -1
  41. package/dest/avm/opcodes/arithmetic.js +6 -5
  42. package/dest/avm/opcodes/bitwise.d.ts +10 -4
  43. package/dest/avm/opcodes/bitwise.d.ts.map +1 -1
  44. package/dest/avm/opcodes/bitwise.js +26 -18
  45. package/dest/avm/opcodes/commitment.d.ts.map +1 -1
  46. package/dest/avm/opcodes/commitment.js +6 -5
  47. package/dest/avm/opcodes/comparators.d.ts.map +1 -1
  48. package/dest/avm/opcodes/comparators.js +8 -7
  49. package/dest/avm/opcodes/contract.d.ts.map +1 -1
  50. package/dest/avm/opcodes/contract.js +6 -5
  51. package/dest/avm/opcodes/control_flow.js +6 -6
  52. package/dest/avm/opcodes/conversion.d.ts +3 -2
  53. package/dest/avm/opcodes/conversion.d.ts.map +1 -1
  54. package/dest/avm/opcodes/conversion.js +21 -13
  55. package/dest/avm/opcodes/ec_add.d.ts.map +1 -1
  56. package/dest/avm/opcodes/ec_add.js +8 -7
  57. package/dest/avm/opcodes/environment_getters.d.ts +27 -63
  58. package/dest/avm/opcodes/environment_getters.d.ts.map +1 -1
  59. package/dest/avm/opcodes/environment_getters.js +76 -80
  60. package/dest/avm/opcodes/external_calls.d.ts.map +1 -1
  61. package/dest/avm/opcodes/external_calls.js +27 -16
  62. package/dest/avm/opcodes/hashing.d.ts +5 -5
  63. package/dest/avm/opcodes/hashing.d.ts.map +1 -1
  64. package/dest/avm/opcodes/hashing.js +47 -40
  65. package/dest/avm/opcodes/index.d.ts +3 -0
  66. package/dest/avm/opcodes/index.d.ts.map +1 -1
  67. package/dest/avm/opcodes/index.js +4 -1
  68. package/dest/avm/opcodes/instruction.d.ts +2 -6
  69. package/dest/avm/opcodes/instruction.d.ts.map +1 -1
  70. package/dest/avm/opcodes/instruction.js +3 -9
  71. package/dest/avm/opcodes/instruction_impl.d.ts +0 -26
  72. package/dest/avm/opcodes/instruction_impl.d.ts.map +1 -1
  73. package/dest/avm/opcodes/instruction_impl.js +1 -51
  74. package/dest/avm/opcodes/memory.d.ts +5 -12
  75. package/dest/avm/opcodes/memory.d.ts.map +1 -1
  76. package/dest/avm/opcodes/memory.js +40 -53
  77. package/dest/avm/opcodes/misc.d.ts.map +1 -1
  78. package/dest/avm/opcodes/misc.js +6 -5
  79. package/dest/avm/opcodes/multi_scalar_mul.d.ts.map +1 -1
  80. package/dest/avm/opcodes/multi_scalar_mul.js +17 -16
  81. package/dest/avm/opcodes/storage.d.ts.map +1 -1
  82. package/dest/avm/opcodes/storage.js +11 -9
  83. package/dest/avm/serialization/bytecode_serialization.d.ts.map +1 -1
  84. package/dest/avm/serialization/bytecode_serialization.js +5 -25
  85. package/dest/avm/serialization/instruction_serialization.d.ts +40 -54
  86. package/dest/avm/serialization/instruction_serialization.d.ts.map +1 -1
  87. package/dest/avm/serialization/instruction_serialization.js +41 -57
  88. package/dest/avm/test_utils.d.ts +8 -8
  89. package/dest/avm/test_utils.d.ts.map +1 -1
  90. package/dest/avm/test_utils.js +15 -15
  91. package/dest/client/client_execution_context.d.ts +6 -30
  92. package/dest/client/client_execution_context.d.ts.map +1 -1
  93. package/dest/client/client_execution_context.js +31 -53
  94. package/dest/client/index.d.ts +0 -1
  95. package/dest/client/index.d.ts.map +1 -1
  96. package/dest/client/index.js +1 -2
  97. package/dest/client/private_execution.d.ts +2 -2
  98. package/dest/client/private_execution.d.ts.map +1 -1
  99. package/dest/client/private_execution.js +5 -19
  100. package/dest/client/simulator.d.ts +3 -4
  101. package/dest/client/simulator.d.ts.map +1 -1
  102. package/dest/client/simulator.js +1 -1
  103. package/dest/client/test_utils.d.ts.map +1 -1
  104. package/dest/client/test_utils.js +12 -6
  105. package/dest/client/unconstrained_execution.d.ts +2 -2
  106. package/dest/client/unconstrained_execution.d.ts.map +1 -1
  107. package/dest/client/unconstrained_execution.js +3 -3
  108. package/dest/common/debug_fn_name.d.ts +4 -0
  109. package/dest/common/debug_fn_name.d.ts.map +1 -0
  110. package/dest/common/debug_fn_name.js +15 -0
  111. package/dest/common/index.d.ts +0 -1
  112. package/dest/common/index.d.ts.map +1 -1
  113. package/dest/common/index.js +1 -2
  114. package/dest/public/enqueued_call_simulator.d.ts +43 -0
  115. package/dest/public/enqueued_call_simulator.d.ts.map +1 -0
  116. package/dest/public/enqueued_call_simulator.js +154 -0
  117. package/dest/public/enqueued_calls_processor.d.ts +44 -0
  118. package/dest/public/enqueued_calls_processor.d.ts.map +1 -0
  119. package/dest/public/enqueued_calls_processor.js +218 -0
  120. package/dest/public/execution.d.ts +10 -8
  121. package/dest/public/execution.d.ts.map +1 -1
  122. package/dest/public/execution.js +15 -8
  123. package/dest/public/executor.d.ts +4 -7
  124. package/dest/public/executor.d.ts.map +1 -1
  125. package/dest/public/executor.js +10 -14
  126. package/dest/public/hints_builder.d.ts +4 -3
  127. package/dest/public/hints_builder.d.ts.map +1 -1
  128. package/dest/public/hints_builder.js +5 -5
  129. package/dest/public/index.d.ts +3 -2
  130. package/dest/public/index.d.ts.map +1 -1
  131. package/dest/public/index.js +3 -3
  132. package/dest/public/public_db_sources.d.ts +17 -24
  133. package/dest/public/public_db_sources.d.ts.map +1 -1
  134. package/dest/public/public_db_sources.js +58 -65
  135. package/dest/public/public_kernel.d.ts +3 -9
  136. package/dest/public/public_kernel.d.ts.map +1 -1
  137. package/dest/public/public_kernel.js +13 -40
  138. package/dest/public/public_kernel_circuit_simulator.d.ts +5 -11
  139. package/dest/public/public_kernel_circuit_simulator.d.ts.map +1 -1
  140. package/dest/public/public_kernel_tail_simulator.d.ts +19 -0
  141. package/dest/public/public_kernel_tail_simulator.d.ts.map +1 -0
  142. package/dest/public/public_kernel_tail_simulator.js +45 -0
  143. package/dest/public/public_processor.d.ts +9 -5
  144. package/dest/public/public_processor.d.ts.map +1 -1
  145. package/dest/public/public_processor.js +34 -48
  146. package/dest/public/public_processor_metrics.d.ts +3 -3
  147. package/dest/public/public_processor_metrics.d.ts.map +1 -1
  148. package/dest/public/public_processor_metrics.js +1 -1
  149. package/dest/public/side_effect_errors.d.ts +4 -0
  150. package/dest/public/side_effect_errors.d.ts.map +1 -0
  151. package/dest/public/side_effect_errors.js +7 -0
  152. package/dest/public/side_effect_trace.d.ts +2 -2
  153. package/dest/public/side_effect_trace.d.ts.map +1 -1
  154. package/dest/public/side_effect_trace.js +56 -35
  155. package/dest/public/side_effect_trace_interface.d.ts +1 -1
  156. package/dest/public/side_effect_trace_interface.d.ts.map +1 -1
  157. package/package.json +12 -9
  158. package/src/acvm/oracle/oracle.ts +7 -85
  159. package/src/acvm/oracle/typed_oracle.ts +2 -31
  160. package/src/avm/avm_execution_environment.ts +2 -24
  161. package/src/avm/avm_gas.ts +30 -115
  162. package/src/avm/avm_machine_state.ts +5 -5
  163. package/src/avm/avm_memory_types.ts +41 -14
  164. package/src/avm/avm_simulator.ts +4 -5
  165. package/src/avm/bytecode_utils.ts +2 -17
  166. package/src/avm/errors.ts +11 -3
  167. package/src/avm/fixtures/index.ts +13 -46
  168. package/src/avm/journal/index.ts +0 -1
  169. package/src/avm/journal/journal.ts +22 -22
  170. package/src/avm/opcodes/accrued_substate.ts +36 -44
  171. package/src/avm/opcodes/addressing_mode.ts +27 -24
  172. package/src/avm/opcodes/arithmetic.ts +5 -7
  173. package/src/avm/opcodes/bitwise.ts +23 -20
  174. package/src/avm/opcodes/commitment.ts +6 -7
  175. package/src/avm/opcodes/comparators.ts +7 -9
  176. package/src/avm/opcodes/contract.ts +5 -7
  177. package/src/avm/opcodes/control_flow.ts +5 -5
  178. package/src/avm/opcodes/conversion.ts +19 -12
  179. package/src/avm/opcodes/ec_add.ts +14 -16
  180. package/src/avm/opcodes/environment_getters.ts +73 -99
  181. package/src/avm/opcodes/external_calls.ts +27 -20
  182. package/src/avm/opcodes/hashing.ts +52 -52
  183. package/src/avm/opcodes/index.ts +3 -0
  184. package/src/avm/opcodes/instruction.ts +3 -10
  185. package/src/avm/opcodes/instruction_impl.ts +0 -62
  186. package/src/avm/opcodes/memory.ts +37 -67
  187. package/src/avm/opcodes/misc.ts +5 -7
  188. package/src/avm/opcodes/multi_scalar_mul.ts +16 -19
  189. package/src/avm/opcodes/storage.ts +10 -8
  190. package/src/avm/serialization/bytecode_serialization.ts +11 -35
  191. package/src/avm/serialization/instruction_serialization.ts +3 -19
  192. package/src/avm/test_utils.ts +20 -16
  193. package/src/client/client_execution_context.ts +40 -96
  194. package/src/client/index.ts +0 -1
  195. package/src/client/private_execution.ts +9 -9
  196. package/src/client/simulator.ts +2 -3
  197. package/src/client/test_utils.ts +36 -9
  198. package/src/client/unconstrained_execution.ts +3 -8
  199. package/src/common/debug_fn_name.ts +22 -0
  200. package/src/common/index.ts +0 -1
  201. package/src/public/enqueued_call_simulator.ts +335 -0
  202. package/src/public/enqueued_calls_processor.ts +388 -0
  203. package/src/public/execution.ts +16 -12
  204. package/src/public/executor.ts +8 -22
  205. package/src/public/hints_builder.ts +21 -21
  206. package/src/public/index.ts +3 -2
  207. package/src/public/public_db_sources.ts +62 -67
  208. package/src/public/public_kernel.ts +15 -49
  209. package/src/public/public_kernel_circuit_simulator.ts +6 -10
  210. package/src/public/public_kernel_tail_simulator.ts +106 -0
  211. package/src/public/public_processor.ts +65 -86
  212. package/src/public/public_processor_metrics.ts +3 -3
  213. package/src/public/side_effect_errors.ts +6 -0
  214. package/src/public/side_effect_trace.ts +77 -39
  215. package/src/public/side_effect_trace_interface.ts +2 -2
  216. package/dest/avm/journal/host_storage.d.ts +0 -13
  217. package/dest/avm/journal/host_storage.d.ts.map +0 -1
  218. package/dest/avm/journal/host_storage.js +0 -13
  219. package/dest/avm/opcodes/context_getters.d.ts +0 -15
  220. package/dest/avm/opcodes/context_getters.d.ts.map +0 -1
  221. package/dest/avm/opcodes/context_getters.js +0 -19
  222. package/dest/client/execution_result.d.ts +0 -104
  223. package/dest/client/execution_result.d.ts.map +0 -1
  224. package/dest/client/execution_result.js +0 -136
  225. package/dest/common/return_values.d.ts +0 -11
  226. package/dest/common/return_values.d.ts.map +0 -1
  227. package/dest/common/return_values.js +0 -13
  228. package/dest/public/abstract_phase_manager.d.ts +0 -93
  229. package/dest/public/abstract_phase_manager.d.ts.map +0 -1
  230. package/dest/public/abstract_phase_manager.js +0 -285
  231. package/dest/public/app_logic_phase_manager.d.ts +0 -25
  232. package/dest/public/app_logic_phase_manager.d.ts.map +0 -1
  233. package/dest/public/app_logic_phase_manager.js +0 -52
  234. package/dest/public/phase_manager_factory.d.ts +0 -18
  235. package/dest/public/phase_manager_factory.d.ts.map +0 -1
  236. package/dest/public/phase_manager_factory.js +0 -56
  237. package/dest/public/setup_phase_manager.d.ts +0 -25
  238. package/dest/public/setup_phase_manager.d.ts.map +0 -1
  239. package/dest/public/setup_phase_manager.js +0 -39
  240. package/dest/public/tail_phase_manager.d.ts +0 -23
  241. package/dest/public/tail_phase_manager.d.ts.map +0 -1
  242. package/dest/public/tail_phase_manager.js +0 -50
  243. package/dest/public/teardown_phase_manager.d.ts +0 -27
  244. package/dest/public/teardown_phase_manager.d.ts.map +0 -1
  245. package/dest/public/teardown_phase_manager.js +0 -56
  246. package/src/avm/journal/host_storage.ts +0 -14
  247. package/src/avm/opcodes/context_getters.ts +0 -23
  248. package/src/client/execution_result.ts +0 -228
  249. package/src/common/return_values.ts +0 -18
  250. package/src/public/abstract_phase_manager.ts +0 -522
  251. package/src/public/app_logic_phase_manager.ts +0 -81
  252. package/src/public/phase_manager_factory.ts +0 -126
  253. package/src/public/setup_phase_manager.ts +0 -61
  254. package/src/public/tail_phase_manager.ts +0 -127
  255. package/src/public/teardown_phase_manager.ts +0 -86
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
2
  import type { AvmContext } from '../avm_context.js';
3
- import { type MemoryOperations } from '../avm_memory_types.js';
3
+ import { type Gas } from '../avm_gas.js';
4
4
  import { type BufferCursor } from '../serialization/buffer_cursor.js';
5
5
  import { type Serializable } from '../serialization/bytecode_serialization.js';
6
6
  import { Opcode, type OperandType } from '../serialization/instruction_serialization.js';
@@ -47,13 +47,9 @@ export declare abstract class Instruction {
47
47
  };
48
48
  /**
49
49
  * Computes gas cost for the instruction based on its base cost and memory operations.
50
- * @param memoryOps Memory operations performed by the instruction.
51
50
  * @returns Gas cost.
52
51
  */
53
- protected gasCost(ops?: Partial<MemoryOperations & {
54
- indirect: number;
55
- dynMultiplier: number;
56
- }>): import("../avm_gas.js").Gas;
52
+ protected gasCost(dynMultiplier?: number): Gas;
57
53
  /**
58
54
  * Returns the stringified type of the instruction.
59
55
  * Instruction sub-classes should have a static `type` property.
@@ -1 +1 @@
1
- {"version":3,"file":"instruction.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/instruction.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC/E,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAA4B,MAAM,+CAA+C,CAAC;AAEnH,KAAK,sBAAsB,GAAG;IAC5B,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,WAAW,CAAC;CACnC,CAAC;AAEF;;;GAGG;AACH,8BAAsB,WAAW;IAC/B;;;;OAIG;aACa,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAE3D;;;;OAIG;IACI,QAAQ,IAAI,MAAM;WAUX,WAAW,CACvB,IAAI,EAAE,sBAAsB,GAAG;QAAE,UAAU,EAAE,WAAW,EAAE,CAAC;QAAC,EAAE,EAAE,GAAG,CAAA;KAAE,EACrE,GAAG,EAAE,YAAY,GAAG,MAAM,GACzB,WAAW;IAKP,SAAS,IAAI,MAAM;IAO1B;;;;;OAKG;IACI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,WAAW,GAAG,YAAY;IAShF;;;;;OAKG;WACW,EAAE,CAAC,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,WAAW,EAAE;2BAEjD,YAAY,GAAG,MAAM,KAAG,WAAW;;IAQ1D;;;;OAIG;IACH,SAAS,CAAC,OAAO,CAAC,GAAG,GAAE,OAAO,CAAC,gBAAgB,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAM;IAWnG;;;OAGG;IACH,IAAW,IAAI,IAAI,MAAM,CAMxB;IAED;;;OAGG;IACH,IAAW,MAAM,IAAI,MAAM,CAM1B;CACF"}
1
+ {"version":3,"file":"instruction.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/instruction.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,KAAK,GAAG,EAAqD,MAAM,eAAe,CAAC;AAC5F,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC/E,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAA4B,MAAM,+CAA+C,CAAC;AAEnH,KAAK,sBAAsB,GAAG;IAC5B,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,WAAW,CAAC;CACnC,CAAC;AAEF;;;GAGG;AACH,8BAAsB,WAAW;IAC/B;;;;OAIG;aACa,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAE3D;;;;OAIG;IACI,QAAQ,IAAI,MAAM;WAUX,WAAW,CACvB,IAAI,EAAE,sBAAsB,GAAG;QAAE,UAAU,EAAE,WAAW,EAAE,CAAC;QAAC,EAAE,EAAE,GAAG,CAAA;KAAE,EACrE,GAAG,EAAE,YAAY,GAAG,MAAM,GACzB,WAAW;IAKP,SAAS,IAAI,MAAM;IAO1B;;;;;OAKG;IACI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,WAAW,GAAG,YAAY;IAShF;;;;;OAKG;WACW,EAAE,CAAC,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,WAAW,EAAE;2BAEjD,YAAY,GAAG,MAAM,KAAG,WAAW;;IAQ1D;;;OAGG;IACH,SAAS,CAAC,OAAO,CAAC,aAAa,GAAE,MAAU,GAAG,GAAG;IAMjD;;;OAGG;IACH,IAAW,IAAI,IAAI,MAAM,CAMxB;IAED;;;OAGG;IACH,IAAW,MAAM,IAAI,MAAM,CAM1B;CACF"}
@@ -61,17 +61,11 @@ export class Instruction {
61
61
  }
62
62
  /**
63
63
  * Computes gas cost for the instruction based on its base cost and memory operations.
64
- * @param memoryOps Memory operations performed by the instruction.
65
64
  * @returns Gas cost.
66
65
  */
67
- gasCost(ops = {}) {
66
+ gasCost(dynMultiplier = 0) {
68
67
  const baseGasCost = getBaseGasCost(this.opcode);
69
- // TODO: We are using a simplified gas model to reduce complexity in the circuit.
70
- // Memory accounting will probably be removed.
71
- // TODO(https://github.com/AztecProtocol/aztec-packages/issues/6861): reconsider.
72
- // const memoryGasCost = getMemoryGasCost(memoryOps);
73
- // const memoryGasCost = { l2Gas: 0, daGas: 0 };
74
- const dynGasCost = mulGas(getDynamicGasCost(this.opcode), ops.dynMultiplier ?? 0);
68
+ const dynGasCost = mulGas(getDynamicGasCost(this.opcode), dynMultiplier);
75
69
  return sumGas(baseGasCost, dynGasCost);
76
70
  }
77
71
  /**
@@ -97,4 +91,4 @@ export class Instruction {
97
91
  return opcode;
98
92
  }
99
93
  }
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1Y3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXZtL29wY29kZXMvaW5zdHJ1Y3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sSUFBSSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFHMUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSWxGLE9BQU8sRUFBRSxNQUFNLEVBQW9CLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQU1uSDs7O0dBR0c7QUFDSCxNQUFNLE9BQWdCLFdBQVc7SUFRL0I7Ozs7T0FJRztJQUNJLFFBQVE7UUFDYixJQUFJLGNBQWMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDbEQsb0RBQW9EO1FBQ3BELEtBQUssTUFBTSxJQUFJLElBQUksTUFBTSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBMEIsRUFBRSxDQUFDO1lBQzdFLGNBQWMsSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQztRQUN6RCxDQUFDO1FBQ0QsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztJQUVELHdFQUF3RTtJQUNqRSxNQUFNLENBQUMsV0FBVyxDQUV2QixHQUEwQjtRQUUxQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsc0VBQXNFO0lBQy9ELFNBQVM7UUFDZCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBa0IsQ0FBQztRQUN0QyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxTQUFTLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsQ0FBQztRQUM1RCxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsS0FBSyxTQUFTLElBQUksS0FBSyxDQUFDLFVBQVUsS0FBSyxJQUFJLENBQUMsQ0FBQztRQUNwRSxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDN0QsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksRUFBRSxDQUFDLE1BQWMsRUFBRSxVQUF5QjtRQUNqRCxPQUFPLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRTtZQUM5QyxLQUFLLEVBQUUsR0FBVyxFQUFFO2dCQUNsQixPQUFPLFdBQVcsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQy9DLENBQUM7WUFDRCxVQUFVLEVBQUUsS0FBSztTQUNsQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsRUFBRSxDQUErQixVQUF5QjtRQUN0RSxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFO1lBQ3pCLFdBQVcsRUFBRSxDQUFDLEdBQTBCLEVBQWUsRUFBRTtnQkFDdkQsTUFBTSxHQUFHLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQztnQkFDekMsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQjtnQkFDNUMsT0FBTyxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQzNCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNPLE9BQU8sQ0FBQyxNQUErRSxFQUFFO1FBQ2pHLE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEQsaUZBQWlGO1FBQ2pGLDhDQUE4QztRQUM5QyxpRkFBaUY7UUFDakYscURBQXFEO1FBQ3JELGdEQUFnRDtRQUNoRCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsQ0FBQyxhQUFhLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbEYsT0FBTyxNQUFNLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFXLElBQUk7UUFDYixNQUFNLElBQUksR0FBRyxNQUFNLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQWUsQ0FBQztRQUM3RSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDVixNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksa0RBQWtELENBQUMsQ0FBQztRQUNoSCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBVyxNQUFNO1FBQ2YsTUFBTSxNQUFNLEdBQUcsUUFBUSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBaUIsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQzlGLElBQUksTUFBTSxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDekQsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLG9EQUFvRCxDQUFDLENBQUM7UUFDbEgsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRiJ9
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1Y3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXZtL29wY29kZXMvaW5zdHJ1Y3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sSUFBSSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFHMUMsT0FBTyxFQUFZLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzVGLE9BQU8sRUFBRSxNQUFNLEVBQW9CLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQU1uSDs7O0dBR0c7QUFDSCxNQUFNLE9BQWdCLFdBQVc7SUFRL0I7Ozs7T0FJRztJQUNJLFFBQVE7UUFDYixJQUFJLGNBQWMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDbEQsb0RBQW9EO1FBQ3BELEtBQUssTUFBTSxJQUFJLElBQUksTUFBTSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBMEIsRUFBRSxDQUFDO1lBQzdFLGNBQWMsSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQztRQUN6RCxDQUFDO1FBQ0QsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztJQUVELHdFQUF3RTtJQUNqRSxNQUFNLENBQUMsV0FBVyxDQUV2QixHQUEwQjtRQUUxQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsc0VBQXNFO0lBQy9ELFNBQVM7UUFDZCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBa0IsQ0FBQztRQUN0QyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxTQUFTLElBQUksS0FBSyxDQUFDLE1BQU0sS0FB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
@@ -1,26 +1,8 @@
1
- import { type AvmContext } from '../avm_context.js';
2
- import { type MemoryValue } from '../avm_memory_types.js';
3
1
  import { OperandType } from '../serialization/instruction_serialization.js';
4
2
  import { Instruction } from './instruction.js';
5
- /** Wire format that informs deserialization for instructions with two operands. */
6
- export declare const TwoOperandWireFormat8: OperandType[];
7
- export declare const TwoOperandWireFormat16: OperandType[];
8
3
  /** Wire format that informs deserialization for instructions with three operands. */
9
4
  export declare const ThreeOperandWireFormat8: OperandType[];
10
5
  export declare const ThreeOperandWireFormat16: OperandType[];
11
- /**
12
- * Covers (de)serialization for an instruction with:
13
- * indirect, inTag, and two operands.
14
- */
15
- export declare abstract class TwoOperandInstruction extends Instruction {
16
- protected indirect: number;
17
- protected inTag: number;
18
- protected aOffset: number;
19
- protected dstOffset: number;
20
- static readonly wireFormat8: OperandType[];
21
- static readonly wireFormat16: OperandType[];
22
- constructor(indirect: number, inTag: number, aOffset: number, dstOffset: number);
23
- }
24
6
  /**
25
7
  * Covers (de)serialization for an instruction with:
26
8
  * indirect, inTag, and three operands.
@@ -35,12 +17,4 @@ export declare abstract class ThreeOperandInstruction extends Instruction {
35
17
  static readonly wireFormat16: OperandType[];
36
18
  constructor(indirect: number, inTag: number, aOffset: number, bOffset: number, dstOffset: number);
37
19
  }
38
- export declare abstract class GetterInstruction extends Instruction {
39
- protected indirect: number;
40
- protected dstOffset: number;
41
- static readonly wireFormat: OperandType[];
42
- constructor(indirect: number, dstOffset: number);
43
- execute(context: AvmContext): Promise<void>;
44
- protected abstract getValue(env: AvmContext): MemoryValue;
45
- }
46
20
  //# sourceMappingURL=instruction_impl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"instruction_impl.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/instruction_impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAE5E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,mFAAmF;AACnF,eAAO,MAAM,qBAAqB,eAMjC,CAAC;AACF,eAAO,MAAM,sBAAsB,eAMlC,CAAC;AAEF,qFAAqF;AACrF,eAAO,MAAM,uBAAuB,eAOnC,CAAC;AACF,eAAO,MAAM,wBAAwB,eAOpC,CAAC;AAEF;;;GAGG;AACH,8BAAsB,qBAAsB,SAAQ,WAAW;IAM3D,SAAS,CAAC,QAAQ,EAAE,MAAM;IAC1B,SAAS,CAAC,KAAK,EAAE,MAAM;IACvB,SAAS,CAAC,OAAO,EAAE,MAAM;IACzB,SAAS,CAAC,SAAS,EAAE,MAAM;IAP7B,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,CAAyB;IACnE,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,WAAW,EAAE,CAA0B;gBAGzD,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM;CAI9B;AAED;;;GAGG;AACH,8BAAsB,uBAAwB,SAAQ,WAAW;IAK7D,SAAS,CAAC,QAAQ,EAAE,MAAM;IAC1B,SAAS,CAAC,KAAK,EAAE,MAAM;IACvB,SAAS,CAAC,OAAO,EAAE,MAAM;IACzB,SAAS,CAAC,OAAO,EAAE,MAAM;IACzB,SAAS,CAAC,SAAS,EAAE,MAAM;IAR7B,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,CAA2B;IACrE,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,WAAW,EAAE,CAA4B;gBAG3D,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM;CAI9B;AAED,8BAAsB,iBAAkB,SAAQ,WAAW;IAI7C,SAAS,CAAC,QAAQ,EAAE,MAAM;IAAE,SAAS,CAAC,SAAS,EAAE,MAAM;IAFnE,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAA8D;gBAEjF,QAAQ,EAAE,MAAM,EAAY,SAAS,EAAE,MAAM;IAItD,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAaxD,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,GAAG,WAAW;CAC1D"}
1
+ {"version":3,"file":"instruction_impl.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/instruction_impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qFAAqF;AACrF,eAAO,MAAM,uBAAuB,eAOnC,CAAC;AACF,eAAO,MAAM,wBAAwB,eAOpC,CAAC;AAEF;;;GAGG;AACH,8BAAsB,uBAAwB,SAAQ,WAAW;IAK7D,SAAS,CAAC,QAAQ,EAAE,MAAM;IAC1B,SAAS,CAAC,KAAK,EAAE,MAAM;IACvB,SAAS,CAAC,OAAO,EAAE,MAAM;IACzB,SAAS,CAAC,OAAO,EAAE,MAAM;IACzB,SAAS,CAAC,SAAS,EAAE,MAAM;IAR7B,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,CAA2B;IACrE,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,WAAW,EAAE,CAA4B;gBAG3D,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM;CAI9B"}
@@ -1,21 +1,5 @@
1
1
  import { OperandType } from '../serialization/instruction_serialization.js';
2
- import { Addressing } from './addressing_mode.js';
3
2
  import { Instruction } from './instruction.js';
4
- /** Wire format that informs deserialization for instructions with two operands. */
5
- export const TwoOperandWireFormat8 = [
6
- OperandType.UINT8,
7
- OperandType.UINT8,
8
- OperandType.UINT8,
9
- OperandType.UINT8,
10
- OperandType.UINT8,
11
- ];
12
- export const TwoOperandWireFormat16 = [
13
- OperandType.UINT8,
14
- OperandType.UINT8,
15
- OperandType.UINT8,
16
- OperandType.UINT16,
17
- OperandType.UINT16,
18
- ];
19
3
  /** Wire format that informs deserialization for instructions with three operands. */
20
4
  export const ThreeOperandWireFormat8 = [
21
5
  OperandType.UINT8,
@@ -33,22 +17,6 @@ export const ThreeOperandWireFormat16 = [
33
17
  OperandType.UINT16,
34
18
  OperandType.UINT16,
35
19
  ];
36
- /**
37
- * Covers (de)serialization for an instruction with:
38
- * indirect, inTag, and two operands.
39
- */
40
- export class TwoOperandInstruction extends Instruction {
41
- constructor(indirect, inTag, aOffset, dstOffset) {
42
- super();
43
- this.indirect = indirect;
44
- this.inTag = inTag;
45
- this.aOffset = aOffset;
46
- this.dstOffset = dstOffset;
47
- }
48
- }
49
- // Informs (de)serialization. See Instruction.deserialize.
50
- TwoOperandInstruction.wireFormat8 = TwoOperandWireFormat8;
51
- TwoOperandInstruction.wireFormat16 = TwoOperandWireFormat16;
52
20
  /**
53
21
  * Covers (de)serialization for an instruction with:
54
22
  * indirect, inTag, and three operands.
@@ -65,22 +33,4 @@ export class ThreeOperandInstruction extends Instruction {
65
33
  }
66
34
  ThreeOperandInstruction.wireFormat8 = ThreeOperandWireFormat8;
67
35
  ThreeOperandInstruction.wireFormat16 = ThreeOperandWireFormat16;
68
- export class GetterInstruction extends Instruction {
69
- constructor(indirect, dstOffset) {
70
- super();
71
- this.indirect = indirect;
72
- this.dstOffset = dstOffset;
73
- }
74
- async execute(context) {
75
- const memoryOperations = { writes: 1, indirect: this.indirect };
76
- const memory = context.machineState.memory.track(this.type);
77
- context.machineState.consumeGas(this.gasCost(memoryOperations));
78
- const [dstOffset] = Addressing.fromWire(this.indirect).resolve([this.dstOffset], memory);
79
- memory.set(dstOffset, this.getValue(context));
80
- memory.assert(memoryOperations);
81
- context.machineState.incrementPc();
82
- }
83
- }
84
- // Informs (de)serialization. See Instruction.deserialize.
85
- GetterInstruction.wireFormat = [OperandType.UINT8, OperandType.UINT8, OperandType.UINT32];
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1Y3Rpb25faW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdm0vb3Bjb2Rlcy9pbnN0cnVjdGlvbl9pbXBsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRS9DLG1GQUFtRjtBQUNuRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRztJQUNuQyxXQUFXLENBQUMsS0FBSztJQUNqQixXQUFXLENBQUMsS0FBSztJQUNqQixXQUFXLENBQUMsS0FBSztJQUNqQixXQUFXLENBQUMsS0FBSztJQUNqQixXQUFXLENBQUMsS0FBSztDQUNsQixDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUc7SUFDcEMsV0FBVyxDQUFDLEtBQUs7SUFDakIsV0FBVyxDQUFDLEtBQUs7SUFDakIsV0FBVyxDQUFDLEtBQUs7SUFDakIsV0FBVyxDQUFDLE1BQU07SUFDbEIsV0FBVyxDQUFDLE1BQU07Q0FDbkIsQ0FBQztBQUVGLHFGQUFxRjtBQUNyRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRztJQUNyQyxXQUFXLENBQUMsS0FBSztJQUNqQixXQUFXLENBQUMsS0FBSztJQUNqQixXQUFXLENBQUMsS0FBSztJQUNqQixXQUFXLENBQUMsS0FBSztJQUNqQixXQUFXLENBQUMsS0FBSztJQUNqQixXQUFXLENBQUMsS0FBSztDQUNsQixDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUc7SUFDdEMsV0FBVyxDQUFDLEtBQUs7SUFDakIsV0FBVyxDQUFDLEtBQUs7SUFDakIsV0FBVyxDQUFDLEtBQUs7SUFDakIsV0FBVyxDQUFDLE1BQU07SUFDbEIsV0FBVyxDQUFDLE1BQU07SUFDbEIsV0FBVyxDQUFDLE1BQU07Q0FDbkIsQ0FBQztBQUVGOzs7R0FHRztBQUNILE1BQU0sT0FBZ0IscUJBQXNCLFNBQVEsV0FBVztJQUs3RCxZQUNZLFFBQWdCLEVBQ2hCLEtBQWEsRUFDYixPQUFlLEVBQ2YsU0FBaUI7UUFFM0IsS0FBSyxFQUFFLENBQUM7UUFMRSxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2hCLFVBQUssR0FBTCxLQUFLLENBQVE7UUFDYixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsY0FBUyxHQUFULFNBQVMsQ0FBUTtJQUc3QixDQUFDOztBQVhELDBEQUEwRDtBQUMxQyxpQ0FBVyxHQUFrQixxQkFBcUIsQ0FBQztBQUNuRCxrQ0FBWSxHQUFrQixzQkFBc0IsQ0FBQztBQVl2RTs7O0dBR0c7QUFDSCxNQUFNLE9BQWdCLHVCQUF3QixTQUFRLFdBQVc7SUFJL0QsWUFDWSxRQUFnQixFQUNoQixLQUFhLEVBQ2IsT0FBZSxFQUNmLE9BQWUsRUFDZixTQUFpQjtRQUUzQixLQUFLLEVBQUUsQ0FBQztRQU5FLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDaEIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsY0FBUyxHQUFULFNBQVMsQ0FBUTtJQUc3QixDQUFDOztBQVhlLG1DQUFXLEdBQWtCLHVCQUF1QixDQUFDO0FBQ3JELG9DQUFZLEdBQWtCLHdCQUF3QixDQUFDO0FBYXpFLE1BQU0sT0FBZ0IsaUJBQWtCLFNBQVEsV0FBVztJQUl6RCxZQUFzQixRQUFnQixFQUFZLFNBQWlCO1FBQ2pFLEtBQUssRUFBRSxDQUFDO1FBRFksYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUFZLGNBQVMsR0FBVCxTQUFTLENBQVE7SUFFbkUsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBbUI7UUFDdEMsTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoRSxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVELE9BQU8sQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1FBRWhFLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFekYsTUFBTSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBRTlDLE1BQU0sQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNoQyxPQUFPLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JDLENBQUM7O0FBbEJELDBEQUEwRDtBQUMxQyw0QkFBVSxHQUFrQixDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMifQ==
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1Y3Rpb25faW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdm0vb3Bjb2Rlcy9pbnN0cnVjdGlvbl9pbXBsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFL0MscUZBQXFGO0FBQ3JGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHO0lBQ3JDLFdBQVcsQ0FBQyxLQUFLO0lBQ2pCLFdBQVcsQ0FBQyxLQUFLO0lBQ2pCLFdBQVcsQ0FBQyxLQUFLO0lBQ2pCLFdBQVcsQ0FBQyxLQUFLO0lBQ2pCLFdBQVcsQ0FBQyxLQUFLO0lBQ2pCLFdBQVcsQ0FBQyxLQUFLO0NBQ2xCLENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRztJQUN0QyxXQUFXLENBQUMsS0FBSztJQUNqQixXQUFXLENBQUMsS0FBSztJQUNqQixXQUFXLENBQUMsS0FBSztJQUNqQixXQUFXLENBQUMsTUFBTTtJQUNsQixXQUFXLENBQUMsTUFBTTtJQUNsQixXQUFXLENBQUMsTUFBTTtDQUNuQixDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxPQUFnQix1QkFBd0IsU0FBUSxXQUFXO0lBSS9ELFlBQ1ksUUFBZ0IsRUFDaEIsS0FBYSxFQUNiLE9BQWUsRUFDZixPQUFlLEVBQ2YsU0FBaUI7UUFFM0IsS0FBSyxFQUFFLENBQUM7UUFORSxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2hCLFVBQUssR0FBTCxLQUFLLENBQVE7UUFDYixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLGNBQVMsR0FBVCxTQUFTLENBQVE7SUFHN0IsQ0FBQzs7QUFYZSxtQ0FBVyxHQUFrQix1QkFBdUIsQ0FBQztBQUNyRCxvQ0FBWSxHQUFrQix3QkFBd0IsQ0FBQyJ9
@@ -1,7 +1,6 @@
1
1
  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
- import { TwoOperandInstruction } from './instruction_impl.js';
5
4
  export declare class Set extends Instruction {
6
5
  private indirect;
7
6
  private inTag;
@@ -18,21 +17,15 @@ export declare class Set extends Instruction {
18
17
  constructor(indirect: number, inTag: number, value: bigint | number, dstOffset: number);
19
18
  execute(context: AvmContext): Promise<void>;
20
19
  }
21
- export declare class CMov extends Instruction {
20
+ export declare class Cast extends Instruction {
22
21
  private indirect;
23
- private aOffset;
24
- private bOffset;
25
- private condOffset;
22
+ private dstTag;
23
+ private srcOffset;
26
24
  private dstOffset;
27
- static readonly type: string;
28
- static readonly opcode: Opcode;
29
- static readonly wireFormat: OperandType[];
30
- constructor(indirect: number, aOffset: number, bOffset: number, condOffset: number, dstOffset: number);
31
- execute(context: AvmContext): Promise<void>;
32
- }
33
- export declare class Cast extends TwoOperandInstruction {
34
25
  static readonly type: string;
35
26
  static readonly opcode = Opcode.CAST_8;
27
+ static readonly wireFormat8: OperandType[];
28
+ static readonly wireFormat16: OperandType[];
36
29
  constructor(indirect: number, dstTag: number, srcOffset: number, dstOffset: number);
37
30
  execute(context: AvmContext): Promise<void>;
38
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBAAa,GAAI,SAAQ,WAAW;IAiDhC,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,SAAS;IAnDnB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAS;IAErC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAgB;IAE9C,gBAAuB,WAAW,EAAE,WAAW,EAAE,CAM/C;IACF,gBAAuB,YAAY,EAAE,WAAW,EAAE,CAMhD;IACF,gBAAuB,YAAY,EAAE,WAAW,EAAE,CAMhD;IACF,gBAAuB,YAAY,EAAE,WAAW,EAAE,CAMhD;IACF,gBAAuB,aAAa,EAAE,WAAW,EAAE,CAMjD;IACF,gBAAuB,YAAY,EAAE,WAAW,EAAE,CAMhD;gBAGQ,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,SAAS,EAAE,MAAM;IAKd,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAazD;AAED,qBAAa,IAAK,SAAQ,WAAW;IAmBvB,OAAO,CAAC,QAAQ;IAAU,OAAO,CAAC,MAAM;IAAU,OAAO,CAAC,SAAS;IAAU,OAAO,CAAC,SAAS;IAlB1G,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAU;IACtC,MAAM,CAAC,QAAQ,CAAC,MAAM,iBAAiB;IAEvC,MAAM,CAAC,QAAQ,CAAC,WAAW,gBAMzB;IACF,MAAM,CAAC,QAAQ,CAAC,YAAY,gBAM1B;gBAEkB,QAAQ,EAAE,MAAM,EAAU,MAAM,EAAE,MAAM,EAAU,SAAS,EAAE,MAAM,EAAU,SAAS,EAAE,MAAM;IAIrG,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAgBzD;AAED,qBAAa,GAAI,SAAQ,WAAW;IAkBtB,OAAO,CAAC,QAAQ;IAAU,OAAO,CAAC,SAAS;IAAU,OAAO,CAAC,SAAS;IAjBlF,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAS;IAErC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAgB;IAE9C,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,CAKxC;IACF,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,WAAW,EAAE,CAKzC;gBAEkB,QAAQ,EAAE,MAAM,EAAU,SAAS,EAAE,MAAM,EAAU,SAAS,EAAE,MAAM;IAI7E,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAezD;AAED,qBAAa,YAAa,SAAQ,WAAW;IAazC,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,SAAS;IAfnB,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,CAMvC;gBAGQ,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM;IAKd,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAkBzD"}
@@ -2,7 +2,6 @@ import { Field, TaggedMemory } from '../avm_memory_types.js';
2
2
  import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
3
3
  import { Addressing } from './addressing_mode.js';
4
4
  import { Instruction } from './instruction.js';
5
- import { TwoOperandInstruction } from './instruction_impl.js';
6
5
  export class Set extends Instruction {
7
6
  constructor(indirect, inTag, value, dstOffset) {
8
7
  super();
@@ -12,13 +11,14 @@ export class Set extends Instruction {
12
11
  this.dstOffset = dstOffset;
13
12
  }
14
13
  async execute(context) {
15
- const memoryOperations = { writes: 1, indirect: this.indirect };
16
14
  const memory = context.machineState.memory.track(this.type);
17
- context.machineState.consumeGas(this.gasCost(memoryOperations));
18
- const [dstOffset] = Addressing.fromWire(this.indirect).resolve([this.dstOffset], memory);
15
+ context.machineState.consumeGas(this.gasCost());
16
+ const operands = [this.dstOffset];
17
+ const addressing = Addressing.fromWire(this.indirect, operands.length);
18
+ const [dstOffset] = addressing.resolve(operands, memory);
19
19
  const res = TaggedMemory.buildFromTagTruncating(this.value, this.inTag);
20
20
  memory.set(dstOffset, res);
21
- memory.assert(memoryOperations);
21
+ memory.assert({ writes: 1, addressing });
22
22
  context.machineState.incrementPc();
23
23
  }
24
24
  }
@@ -67,58 +67,43 @@ Set.wireFormatFF = [
67
67
  OperandType.FF, // const (value)
68
68
  OperandType.UINT16, // dstOffset
69
69
  ];
70
- export class CMov extends Instruction {
71
- constructor(indirect, aOffset, bOffset, condOffset, dstOffset) {
70
+ export class Cast extends Instruction {
71
+ constructor(indirect, dstTag, srcOffset, dstOffset) {
72
72
  super();
73
73
  this.indirect = indirect;
74
- this.aOffset = aOffset;
75
- this.bOffset = bOffset;
76
- this.condOffset = condOffset;
74
+ this.dstTag = dstTag;
75
+ this.srcOffset = srcOffset;
77
76
  this.dstOffset = dstOffset;
78
77
  }
79
78
  async execute(context) {
80
- const memoryOperations = { reads: 3, writes: 1, indirect: this.indirect };
81
79
  const memory = context.machineState.memory.track(this.type);
82
- context.machineState.consumeGas(this.gasCost(memoryOperations));
83
- const [aOffset, bOffset, condOffset, dstOffset] = Addressing.fromWire(this.indirect).resolve([this.aOffset, this.bOffset, this.condOffset, this.dstOffset], memory);
84
- const a = memory.get(aOffset);
85
- const b = memory.get(bOffset);
86
- const cond = memory.get(condOffset);
87
- // TODO: reconsider toBigInt() here
88
- memory.set(dstOffset, cond.toBigInt() > 0 ? a : b);
89
- memory.assert(memoryOperations);
90
- context.machineState.incrementPc();
91
- }
92
- }
93
- CMov.type = 'CMOV';
94
- CMov.opcode = Opcode.CMOV;
95
- // Informs (de)serialization. See Instruction.deserialize.
96
- CMov.wireFormat = [
97
- OperandType.UINT8,
98
- OperandType.UINT8,
99
- OperandType.UINT32,
100
- OperandType.UINT32,
101
- OperandType.UINT32,
102
- OperandType.UINT32,
103
- ];
104
- export class Cast extends TwoOperandInstruction {
105
- constructor(indirect, dstTag, srcOffset, dstOffset) {
106
- super(indirect, dstTag, srcOffset, dstOffset);
107
- }
108
- async execute(context) {
109
- const memoryOperations = { reads: 1, writes: 1, indirect: this.indirect };
110
- const memory = context.machineState.memory.track(this.type);
111
- context.machineState.consumeGas(this.gasCost(memoryOperations));
112
- const [srcOffset, dstOffset] = Addressing.fromWire(this.indirect).resolve([this.aOffset, this.dstOffset], memory);
80
+ context.machineState.consumeGas(this.gasCost());
81
+ const operands = [this.srcOffset, this.dstOffset];
82
+ const addressing = Addressing.fromWire(this.indirect, operands.length);
83
+ const [srcOffset, dstOffset] = addressing.resolve(operands, memory);
113
84
  const a = memory.get(srcOffset);
114
- const casted = TaggedMemory.buildFromTagTruncating(a.toBigInt(), this.inTag);
85
+ const casted = TaggedMemory.buildFromTagTruncating(a.toBigInt(), this.dstTag);
115
86
  memory.set(dstOffset, casted);
116
- memory.assert(memoryOperations);
87
+ memory.assert({ reads: 1, writes: 1, addressing });
117
88
  context.machineState.incrementPc();
118
89
  }
119
90
  }
120
91
  Cast.type = 'CAST';
121
92
  Cast.opcode = Opcode.CAST_8;
93
+ Cast.wireFormat8 = [
94
+ OperandType.UINT8,
95
+ OperandType.UINT8,
96
+ OperandType.UINT8,
97
+ OperandType.UINT8,
98
+ OperandType.UINT8,
99
+ ];
100
+ Cast.wireFormat16 = [
101
+ OperandType.UINT8,
102
+ OperandType.UINT8,
103
+ OperandType.UINT8,
104
+ OperandType.UINT16,
105
+ OperandType.UINT16,
106
+ ];
122
107
  export class Mov extends Instruction {
123
108
  constructor(indirect, srcOffset, dstOffset) {
124
109
  super();
@@ -127,13 +112,14 @@ export class Mov extends Instruction {
127
112
  this.dstOffset = dstOffset;
128
113
  }
129
114
  async execute(context) {
130
- const memoryOperations = { reads: 1, writes: 1, indirect: this.indirect };
131
115
  const memory = context.machineState.memory.track(this.type);
132
- context.machineState.consumeGas(this.gasCost(memoryOperations));
133
- const [srcOffset, dstOffset] = Addressing.fromWire(this.indirect).resolve([this.srcOffset, this.dstOffset], memory);
116
+ context.machineState.consumeGas(this.gasCost());
117
+ const operands = [this.srcOffset, this.dstOffset];
118
+ const addressing = Addressing.fromWire(this.indirect, operands.length);
119
+ const [srcOffset, dstOffset] = addressing.resolve(operands, memory);
134
120
  const a = memory.get(srcOffset);
135
121
  memory.set(dstOffset, a);
136
- memory.assert(memoryOperations);
122
+ memory.assert({ reads: 1, writes: 1, addressing });
137
123
  context.machineState.incrementPc();
138
124
  }
139
125
  }
@@ -163,14 +149,15 @@ export class CalldataCopy extends Instruction {
163
149
  async execute(context) {
164
150
  const memory = context.machineState.memory.track(this.type);
165
151
  // We don't need to check tags here because: (1) the calldata is NOT in memory, and (2) we are the ones writing to destination.
166
- const [cdStartOffset, copySizeOffset, dstOffset] = Addressing.fromWire(this.indirect).resolve([this.cdStartOffset, this.copySizeOffset, this.dstOffset], memory);
152
+ const operands = [this.cdStartOffset, this.copySizeOffset, this.dstOffset];
153
+ const addressing = Addressing.fromWire(this.indirect, operands.length);
154
+ const [cdStartOffset, copySizeOffset, dstOffset] = addressing.resolve(operands, memory);
167
155
  const cdStart = memory.get(cdStartOffset).toNumber();
168
156
  const copySize = memory.get(copySizeOffset).toNumber();
169
- const memoryOperations = { reads: 2, writes: copySize, indirect: this.indirect };
170
- context.machineState.consumeGas(this.gasCost({ ...memoryOperations, dynMultiplier: copySize }));
157
+ context.machineState.consumeGas(this.gasCost(copySize));
171
158
  const transformedData = context.environment.calldata.slice(cdStart, cdStart + copySize).map(f => new Field(f));
172
159
  memory.setSlice(dstOffset, transformedData);
173
- memory.assert(memoryOperations);
160
+ memory.assert({ reads: 2, writes: copySize, addressing });
174
161
  context.machineState.incrementPc();
175
162
  }
176
163
  }
@@ -184,4 +171,4 @@ CalldataCopy.wireFormat = [
184
171
  OperandType.UINT32,
185
172
  OperandType.UINT32,
186
173
  ];
187
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F2bS9vcGNvZGVzL21lbW9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDcEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU5RCxNQUFNLE9BQU8sR0FBSSxTQUFRLFdBQVc7SUFnRGxDLFlBQ1UsUUFBZ0IsRUFDaEIsS0FBYSxFQUNiLEtBQXNCLEVBQ3RCLFNBQWlCO1FBRXpCLEtBQUssRUFBRSxDQUFDO1FBTEEsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsVUFBSyxHQUFMLEtBQUssQ0FBaUI7UUFDdEIsY0FBUyxHQUFULFNBQVMsQ0FBUTtJQUczQixDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFtQjtRQUN0QyxNQUFNLGdCQUFnQixHQUFHLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hFLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUQsT0FBTyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFFaEUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN6RixNQUFNLEdBQUcsR0FBRyxZQUFZLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFM0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckMsQ0FBQzs7QUFuRWUsUUFBSSxHQUFXLEtBQUssQ0FBQztBQUNyQyxvQkFBb0I7QUFDSixVQUFNLEdBQVcsTUFBTSxDQUFDLEtBQUssQ0FBQztBQUV2QixlQUFXLEdBQWtCO0lBQ2xELFdBQVcsQ0FBQyxLQUFLLEVBQUUsU0FBUztJQUM1QixXQUFXLENBQUMsS0FBSyxFQUFFLFdBQVc7SUFDOUIsV0FBVyxDQUFDLEtBQUssRUFBRSxNQUFNO0lBQ3pCLFdBQVcsQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCO0lBQ25DLFdBQVcsQ0FBQyxLQUFLLEVBQUUsWUFBWTtDQUNoQyxDQUFDO0FBQ3FCLGdCQUFZLEdBQWtCO0lBQ25ELFdBQVcsQ0FBQyxLQUFLLEVBQUUsU0FBUztJQUM1QixXQUFXLENBQUMsS0FBSyxFQUFFLFdBQVc7SUFDOUIsV0FBVyxDQUFDLEtBQUssRUFBRSxNQUFNO0lBQ3pCLFdBQVcsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCO0lBQ3BDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsWUFBWTtDQUNqQyxDQUFDO0FBQ3FCLGdCQUFZLEdBQWtCO0lBQ25ELFdBQVcsQ0FBQyxLQUFLLEVBQUUsU0FBUztJQUM1QixXQUFXLENBQUMsS0FBSyxFQUFFLFdBQVc7SUFDOUIsV0FBVyxDQUFDLEtBQUssRUFBRSxNQUFNO0lBQ3pCLFdBQVcsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCO0lBQ3BDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsWUFBWTtDQUNqQyxDQUFDO0FBQ3FCLGdCQUFZLEdBQWtCO0lBQ25ELFdBQVcsQ0FBQyxLQUFLLEVBQUUsU0FBUztJQUM1QixXQUFXLENBQUMsS0FBSyxFQUFFLFdBQVc7SUFDOUIsV0FBVyxDQUFDLEtBQUssRUFBRSxNQUFNO0lBQ3pCLFdBQVcsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCO0lBQ3BDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsWUFBWTtDQUNqQyxDQUFDO0FBQ3FCLGlCQUFhLEdBQWtCO0lBQ3BELFdBQVcsQ0FBQyxLQUFLLEVBQUUsU0FBUztJQUM1QixXQUFXLENBQUMsS0FBSyxFQUFFLFdBQVc7SUFDOUIsV0FBVyxDQUFDLEtBQUssRUFBRSxNQUFNO0lBQ3pCLFdBQVcsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCO0lBQ3JDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsWUFBWTtDQUNqQyxDQUFDO0FBQ3FCLGdCQUFZLEdBQWtCO0lBQ25ELFdBQVcsQ0FBQyxLQUFLLEVBQUUsU0FBUztJQUM1QixXQUFXLENBQUMsS0FBSyxFQUFFLFdBQVc7SUFDOUIsV0FBVyxDQUFDLEtBQUssRUFBRSxNQUFNO0lBQ3pCLFdBQVcsQ0FBQyxFQUFFLEVBQUUsZ0JBQWdCO0lBQ2hDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsWUFBWTtDQUNqQyxDQUFDO0FBeUJKLE1BQU0sT0FBTyxJQUFLLFNBQVEsV0FBVztJQWFuQyxZQUNVLFFBQWdCLEVBQ2hCLE9BQWUsRUFDZixPQUFlLEVBQ2YsVUFBa0IsRUFDbEIsU0FBaUI7UUFFekIsS0FBSyxFQUFFLENBQUM7UUFOQSxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2hCLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUNsQixjQUFTLEdBQVQsU0FBUyxDQUFRO0lBRzNCLENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQW1CO1FBQ3RDLE1BQU0sZ0JBQWdCLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMxRSxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVELE9BQU8sQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1FBRWhFLE1BQU0sQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUMsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQzFGLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUM3RCxNQUFNLENBQ1AsQ0FBQztRQUVGLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUIsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5QixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXBDLG1DQUFtQztRQUNuQyxNQUFNLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRW5ELE1BQU0sQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNoQyxPQUFPLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JDLENBQUM7O0FBekNlLFNBQUksR0FBVyxNQUFNLENBQUM7QUFDdEIsV0FBTSxHQUFXLE1BQU0sQ0FBQyxJQUFJLENBQUM7QUFDN0MsMERBQTBEO0FBQzFDLGVBQVUsR0FBa0I7SUFDMUMsV0FBVyxDQUFDLEtBQUs7SUFDakIsV0FBVyxDQUFDLEtBQUs7SUFDakIsV0FBVyxDQUFDLE1BQU07SUFDbEIsV0FBVyxDQUFDLE1BQU07SUFDbEIsV0FBVyxDQUFDLE1BQU07SUFDbEIsV0FBVyxDQUFDLE1BQU07Q0FDbkIsQ0FBQztBQWtDSixNQUFNLE9BQU8sSUFBSyxTQUFRLHFCQUFxQjtJQUk3QyxZQUFZLFFBQWdCLEVBQUUsTUFBYyxFQUFFLFNBQWlCLEVBQUUsU0FBaUI7UUFDaEYsS0FBSyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQW1CO1FBQ3RDLE1BQU0sZ0JBQWdCLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMxRSxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVELE9BQU8sQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1FBRWhFLE1BQU0sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFbEgsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoQyxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU3RSxNQUFNLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUU5QixNQUFNLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDaEMsT0FBTyxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQyxDQUFDOztBQXJCZSxTQUFJLEdBQVcsTUFBTSxDQUFDO0FBQ3RCLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0FBdUJ6QyxNQUFNLE9BQU8sR0FBSSxTQUFRLFdBQVc7SUFrQmxDLFlBQW9CLFFBQWdCLEVBQVUsU0FBaUIsRUFBVSxTQUFpQjtRQUN4RixLQUFLLEVBQUUsQ0FBQztRQURVLGFBQVEsR0FBUixRQUFRLENBQVE7UUFBVSxjQUFTLEdBQVQsU0FBUyxDQUFRO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBUTtJQUUxRixDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFtQjtRQUN0QyxNQUFNLGdCQUFnQixHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUUsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1RCxPQUFPLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztRQUVoRSxNQUFNLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRXBILE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFaEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFekIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckMsQ0FBQzs7QUFsQ2UsUUFBSSxHQUFXLEtBQUssQ0FBQztBQUNyQyxpQ0FBaUM7QUFDakIsVUFBTSxHQUFXLE1BQU0sQ0FBQyxLQUFLLENBQUM7QUFFOUIsZUFBVyxHQUFrQjtJQUMzQyxXQUFXLENBQUMsS0FBSztJQUNqQixXQUFXLENBQUMsS0FBSztJQUNqQixXQUFXLENBQUMsS0FBSztJQUNqQixXQUFXLENBQUMsS0FBSztDQUNsQixDQUFDO0FBQ2MsZ0JBQVksR0FBa0I7SUFDNUMsV0FBVyxDQUFDLEtBQUs7SUFDakIsV0FBVyxDQUFDLEtBQUs7SUFDakIsV0FBVyxDQUFDLE1BQU07SUFDbEIsV0FBVyxDQUFDLE1BQU07Q0FDbkIsQ0FBQztBQXNCSixNQUFNLE9BQU8sWUFBYSxTQUFRLFdBQVc7SUFZM0MsWUFDVSxRQUFnQixFQUNoQixhQUFxQixFQUNyQixjQUFzQixFQUN0QixTQUFpQjtRQUV6QixLQUFLLEVBQUUsQ0FBQztRQUxBLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDaEIsa0JBQWEsR0FBYixhQUFhLENBQVE7UUFDckIsbUJBQWMsR0FBZCxjQUFjLENBQVE7UUFDdEIsY0FBUyxHQUFULFNBQVMsQ0FBUTtJQUczQixDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFtQjtRQUN0QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVELCtIQUErSDtRQUMvSCxNQUFNLENBQUMsYUFBYSxFQUFFLGNBQWMsRUFBRSxTQUFTLENBQUMsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQzNGLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsRUFDekQsTUFBTSxDQUNQLENBQUM7UUFFRixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3JELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdkQsTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pGLE9BQU8sQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxHQUFHLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFaEcsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxPQUFPLEdBQUcsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUUvRyxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUU1QyxNQUFNLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDaEMsT0FBTyxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQyxDQUFDOztBQXZDZSxpQkFBSSxHQUFXLGNBQWMsQ0FBQztBQUM5QixtQkFBTSxHQUFXLE1BQU0sQ0FBQyxZQUFZLENBQUM7QUFDckQsMERBQTBEO0FBQzFDLHVCQUFVLEdBQWtCO0lBQzFDLFdBQVcsQ0FBQyxLQUFLO0lBQ2pCLFdBQVcsQ0FBQyxLQUFLO0lBQ2pCLFdBQVcsQ0FBQyxNQUFNO0lBQ2xCLFdBQVcsQ0FBQyxNQUFNO0lBQ2xCLFdBQVcsQ0FBQyxNQUFNO0NBQ25CLENBQUMifQ==
174
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F2bS9vcGNvZGVzL21lbW9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDcEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUvQyxNQUFNLE9BQU8sR0FBSSxTQUFRLFdBQVc7SUFnRGxDLFlBQ1UsUUFBZ0IsRUFDaEIsS0FBYSxFQUNiLEtBQXNCLEVBQ3RCLFNBQWlCO1FBRXpCLEtBQUssRUFBRSxDQUFDO1FBTEEsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsVUFBSyxHQUFMLEtBQUssQ0FBaUI7UUFDdEIsY0FBUyxHQUFULFNBQVMsQ0FBUTtJQUczQixDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFtQjtRQUN0QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVELE9BQU8sQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBRWhELE1BQU0sUUFBUSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMs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
@@ -1 +1 @@
1
- {"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/misc.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBAAa,QAAS,SAAQ,WAAW;IAgBrC,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,gBAAgB;IAnB1B,MAAM,CAAC,IAAI,EAAE,MAAM,CAAc;IACjC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAmB;IACjD,MAAM,CAAC,QAAQ,CAAC,MAAM,yCAAsD;IAG5E,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAOvC;gBAGQ,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,MAAM;IAKrB,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CA6BzD"}
1
+ {"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/misc.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBAAa,QAAS,SAAQ,WAAW;IAgBrC,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,gBAAgB;IAnB1B,MAAM,CAAC,IAAI,EAAE,MAAM,CAAc;IACjC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAmB;IACjD,MAAM,CAAC,QAAQ,CAAC,MAAM,yCAAsD;IAG5E,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAOvC;gBAGQ,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,MAAM;IAKrB,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CA2BzD"}
@@ -14,19 +14,20 @@ export class DebugLog extends Instruction {
14
14
  }
15
15
  async execute(context) {
16
16
  const memory = context.machineState.memory.track(this.type);
17
- const [messageOffset, fieldsOffset, fieldsSizeOffset] = Addressing.fromWire(this.indirect).resolve([this.messageOffset, this.fieldsOffset, this.fieldsSizeOffset], memory);
17
+ const operands = [this.messageOffset, this.fieldsOffset, this.fieldsSizeOffset];
18
+ const addressing = Addressing.fromWire(this.indirect, operands.length);
19
+ const [messageOffset, fieldsOffset, fieldsSizeOffset] = addressing.resolve(operands, memory);
18
20
  const fieldsSize = memory.get(fieldsSizeOffset).toNumber();
19
21
  memory.checkTagsRange(TypeTag.UINT8, messageOffset, this.messageSize);
20
22
  memory.checkTagsRange(TypeTag.FIELD, fieldsOffset, fieldsSize);
21
- const memoryOperations = { reads: 1 + fieldsSize + this.messageSize, writes: 0, indirect: this.indirect };
22
- context.machineState.consumeGas(this.gasCost(memoryOperations));
23
+ context.machineState.consumeGas(this.gasCost());
23
24
  const rawMessage = memory.getSlice(messageOffset, this.messageSize);
24
25
  const fields = memory.getSlice(fieldsOffset, fieldsSize);
25
26
  // Interpret str<N> = [u8; N] to string.
26
27
  const messageAsStr = rawMessage.map(field => String.fromCharCode(field.toNumber())).join('');
27
28
  const formattedStr = applyStringFormatting(messageAsStr, fields.map(field => field.toFr()));
28
29
  DebugLog.logger.verbose(formattedStr);
29
- memory.assert(memoryOperations);
30
+ memory.assert({ reads: 1 + fieldsSize + this.messageSize, addressing });
30
31
  context.machineState.incrementPc();
31
32
  }
32
33
  }
@@ -42,4 +43,4 @@ DebugLog.wireFormat = [
42
43
  OperandType.UINT32, // fields memory address
43
44
  OperandType.UINT32, // fields size address
44
45
  ];
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlzYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdm0vb3Bjb2Rlcy9taXNjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR2pGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFL0MsTUFBTSxPQUFPLFFBQVMsU0FBUSxXQUFXO0lBZXZDLFlBQ1UsUUFBZ0IsRUFDaEIsYUFBcUIsRUFDckIsV0FBbUIsRUFDbkIsWUFBb0IsRUFDcEIsZ0JBQXdCO1FBRWhDLEtBQUssRUFBRSxDQUFDO1FBTkEsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixrQkFBYSxHQUFiLGFBQWEsQ0FBUTtRQUNyQixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUNuQixpQkFBWSxHQUFaLFlBQVksQ0FBUTtRQUNwQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQVE7SUFHbEMsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBbUI7UUFDdEMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1RCxNQUFNLENBQUMsYUFBYSxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FDaEcsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEVBQzlELE1BQU0sQ0FDUCxDQUFDO1FBRUYsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzNELE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFL0QsTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLEdBQUcsVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1FBRWhFLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNwRSxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsQ0FBQztRQUV6RCx3Q0FBd0M7UUFDeEMsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDN0YsTUFBTSxZQUFZLEdBQUcscUJBQXFCLENBQ3hDLFlBQVksRUFDWixNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQ2xDLENBQUM7UUFFRixRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUV0QyxNQUFNLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDaEMsT0FBTyxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQyxDQUFDOztBQXBETSxhQUFJLEdBQVcsVUFBVSxDQUFDO0FBQ2pCLGVBQU0sR0FBVyxNQUFNLENBQUMsUUFBUSxDQUFDO0FBQ2pDLGVBQU0sR0FBRyxpQkFBaUIsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0FBRTVFLDBEQUEwRDtBQUMxQyxtQkFBVSxHQUFrQjtJQUMxQyxXQUFXLENBQUMsS0FBSyxFQUFFLFNBQVM7SUFDNUIsV0FBVyxDQUFDLEtBQUssRUFBRSxXQUFXO0lBQzlCLFdBQVcsQ0FBQyxNQUFNLEVBQUUseUJBQXlCO0lBQzdDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsZUFBZTtJQUNuQyxXQUFXLENBQUMsTUFBTSxFQUFFLHdCQUF3QjtJQUM1QyxXQUFXLENBQUMsTUFBTSxFQUFFLHNCQUFzQjtDQUMzQyxDQUFDIn0=
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlzYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdm0vb3Bjb2Rlcy9taXNjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR2pGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFL0MsTUFBTSxPQUFPLFFBQVMsU0FBUSxXQUFXO0lBZXZDLFlBQ1UsUUFBZ0IsRUFDaEIsYUFBcUIsRUFDckIsV0FBbUIsRUFDbkIsWUFBb0IsRUFDcEIsZ0JBQXdCO1FBRWhDLEtBQUssRUFBRSxDQUFDO1FBTkEsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixrQkFBYSxHQUFiLGFBQWEsQ0FBUTtRQUNyQixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUNuQixpQkFBWSxHQUFaLFlBQVksQ0FBUTtRQUNwQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQVE7SUFHbEMsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBbUI7UUFDdEMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1RCxNQUFNLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNoRixNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZFLE1BQU0sQ0FBQyxhQUFhLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixDQUFDLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFN0YsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzNELE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFL0QsT0FBTyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFFaEQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRXpELHdDQUF3QztRQUN4QyxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3RixNQUFNLFlBQVksR0FBRyxxQkFBcUIsQ0FDeEMsWUFBWSxFQUNaLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FDbEMsQ0FBQztRQUVGLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRXRDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxHQUFHLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDeEUsT0FBTyxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQyxDQUFDOztBQWxETSxhQUFJLEdBQVcsVUFBVSxDQUFDO0FBQ2pCLGVBQU0sR0FBVyxNQUFNLENBQUMsUUFBUSxDQUFDO0FBQ2pDLGVBQU0sR0FBRyxpQkFBaUIsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0FBRTVFLDBEQUEwRDtBQUMxQyxtQkFBVSxHQUFrQjtJQUMxQyxXQUFXLENBQUMsS0FBSyxFQUFFLFNBQVM7SUFDNUIsV0FBVyxDQUFDLEtBQUssRUFBRSxXQUFXO0lBQzlCLFdBQVcsQ0FBQyxNQUFNLEVBQUUseUJBQXlCO0lBQzdDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsZUFBZTtJQUNuQyxXQUFXLENBQUMsTUFBTSxFQUFFLHdCQUF3QjtJQUM1QyxXQUFXLENBQUMsTUFBTSxFQUFFLHNCQUFzQjtDQUMzQyxDQUFDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"multi_scalar_mul.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/multi_scalar_mul.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,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,cAAe,SAAQ,WAAW;IAe3C,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,kBAAkB;IAlB5B,MAAM,CAAC,IAAI,EAAE,MAAM,CAAoB;IACvC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAc;IAG5C,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAOvC;gBAGQ,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,kBAAkB,EAAE,MAAM;IAKvB,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CA6EzD"}
1
+ {"version":3,"file":"multi_scalar_mul.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/multi_scalar_mul.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,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,cAAe,SAAQ,WAAW;IAe3C,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,kBAAkB;IAlB5B,MAAM,CAAC,IAAI,EAAE,MAAM,CAAoB;IACvC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAc;IAG5C,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAOvC;gBAGQ,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,kBAAkB,EAAE,MAAM;IAKvB,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CA4EzD"}
@@ -1,6 +1,5 @@
1
1
  import { Fq, Point } from '@aztec/circuits.js';
2
2
  import { Grumpkin } from '@aztec/circuits.js/barretenberg';
3
- import { strict as assert } from 'assert';
4
3
  import { Field, TypeTag } from '../avm_memory_types.js';
5
4
  import { InstructionExecutionError } from '../errors.js';
6
5
  import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
@@ -18,12 +17,16 @@ export class MultiScalarMul extends Instruction {
18
17
  async execute(context) {
19
18
  const memory = context.machineState.memory.track(this.type);
20
19
  // Resolve indirects
21
- const [pointsOffset, scalarsOffset, outputOffset] = Addressing.fromWire(this.indirect).resolve([this.pointsOffset, this.scalarsOffset, this.outputOffset], memory);
20
+ const operands = [this.pointsOffset, this.scalarsOffset, this.outputOffset, this.pointsLengthOffset];
21
+ const addressing = Addressing.fromWire(this.indirect, operands.length);
22
+ const [pointsOffset, scalarsOffset, outputOffset, pointsLengthOffset] = addressing.resolve(operands, memory);
22
23
  // Length of the points vector should be U32
23
- memory.checkTag(TypeTag.UINT32, this.pointsLengthOffset);
24
+ memory.checkTag(TypeTag.UINT32, pointsLengthOffset);
24
25
  // Get the size of the unrolled (x, y , inf) points vector
25
- const pointsReadLength = memory.get(this.pointsLengthOffset).toNumber();
26
- assert(pointsReadLength % 3 === 0, 'Points vector offset should be a multiple of 3');
26
+ const pointsReadLength = memory.get(pointsLengthOffset).toNumber();
27
+ if (pointsReadLength % 3 !== 0) {
28
+ throw new InstructionExecutionError(`Points vector offset should be a multiple of 3, was ${pointsReadLength}`);
29
+ }
27
30
  // Divide by 3 since each point is represented as a triplet to get the number of points
28
31
  const numPoints = pointsReadLength / 3;
29
32
  // The tag for each triplet will be (Field, Field, Uint8)
@@ -31,20 +34,14 @@ export class MultiScalarMul extends Instruction {
31
34
  const offset = pointsOffset + i * 3;
32
35
  // Check (Field, Field)
33
36
  memory.checkTagsRange(TypeTag.FIELD, offset, 2);
34
- // Check Uint8 (inf flag)
35
- memory.checkTag(TypeTag.UINT8, offset + 2);
37
+ // Check Uint1 (inf flag)
38
+ memory.checkTag(TypeTag.UINT1, offset + 2);
36
39
  }
37
40
  // Get the unrolled (x, y, inf) representing the points
38
41
  const pointsVector = memory.getSlice(pointsOffset, pointsReadLength);
39
42
  // The size of the scalars vector is twice the NUMBER of points because of the scalar limb decomposition
40
43
  const scalarReadLength = numPoints * 2;
41
- // Consume gas prior to performing work
42
- const memoryOperations = {
43
- reads: 1 + pointsReadLength + scalarReadLength /* points and scalars */,
44
- writes: 3 /* output triplet */,
45
- indirect: this.indirect,
46
- };
47
- context.machineState.consumeGas(this.gasCost(memoryOperations));
44
+ context.machineState.consumeGas(this.gasCost(pointsReadLength));
48
45
  // Get the unrolled scalar (lo & hi) representing the scalars
49
46
  const scalarsVector = memory.getSlice(scalarsOffset, scalarReadLength);
50
47
  memory.checkTagsRange(TypeTag.FIELD, scalarsOffset, scalarReadLength);
@@ -77,7 +74,11 @@ export class MultiScalarMul extends Instruction {
77
74
  const outputPoint = rest.reduce((acc, curr) => grumpkin.add(acc, grumpkin.mul(curr[0], curr[1])), grumpkin.mul(firstBaseScalarPair[0], firstBaseScalarPair[1]));
78
75
  const output = outputPoint.toFields().map(f => new Field(f));
79
76
  memory.setSlice(outputOffset, output);
80
- memory.assert(memoryOperations);
77
+ memory.assert({
78
+ reads: 1 + pointsReadLength + scalarReadLength /* points and scalars */,
79
+ writes: 3 /* output triplet */,
80
+ addressing,
81
+ });
81
82
  context.machineState.incrementPc();
82
83
  }
83
84
  }
@@ -92,4 +93,4 @@ MultiScalarMul.wireFormat = [
92
93
  OperandType.UINT32 /* output offset (fixed triplet) */,
93
94
  OperandType.UINT32 /* points length offset */,
94
95
  ];
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlfc2NhbGFyX211bC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdm0vb3Bjb2Rlcy9tdWx0aV9zY2FsYXJfbXVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTNELE9BQU8sRUFBRSxNQUFNLElBQUksTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRzFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3pELE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDcEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUvQyxNQUFNLE9BQU8sY0FBZSxTQUFRLFdBQVc7SUFjN0MsWUFDVSxRQUFnQixFQUNoQixZQUFvQixFQUNwQixhQUFxQixFQUNyQixZQUFvQixFQUNwQixrQkFBMEI7UUFFbEMsS0FBSyxFQUFFLENBQUM7UUFOQSxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2hCLGlCQUFZLEdBQVosWUFBWSxDQUFRO1FBQ3BCLGtCQUFhLEdBQWIsYUFBYSxDQUFRO1FBQ3JCLGlCQUFZLEdBQVosWUFBWSxDQUFRO1FBQ3BCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBUTtJQUdwQyxDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFtQjtRQUN0QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxD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
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlfc2NhbGFyX211bC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdm0vb3Bjb2Rlcy9tdWx0aV9zY2FsYXJfbXVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRzNELE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3pELE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDcEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUvQyxNQUFNLE9BQU8sY0FBZSxTQUFRLFdBQVc7SUFjN0MsWUFDVSxRQUFnQixFQUNoQixZQUFvQixFQUNwQixhQUFxQixFQUNyQixZQUFvQixFQUNwQixrQkFBMEI7UUFFbEMsS0FBSyxFQUFFLENBQUM7UUFOQSxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2hCLGlCQUFZLEdBQVosWUFBWSxDQUFRO1FBQ3BCLGtCQUFhLEdBQWIsYUFBYSxDQUFRO1FBQ3JCLGlCQUFZLEdBQVosWUFBWSxDQUFRO1FBQ3BCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBUTtJQUdwQyxDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFtQjtRQUN0QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVELG9CQUFvQjtRQUNwQixNQUFNLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FB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
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,uBAAe,sBAAuB,SAAQ,WAAW;IAS3C,SAAS,CAAC,QAAQ,EAAE,MAAM;IAAE,SAAS,CAAC,OAAO,EAAE,MAAM;IAAE,SAAS,CAAC,OAAO,EAAE,MAAM;IAP5F,gBAAuB,UAAU,EAAE,WAAW,EAAE,CAK9C;gBAEoB,QAAQ,EAAE,MAAM,EAAY,OAAO,EAAE,MAAM,EAAY,OAAO,EAAE,MAAM;CAG7F;AAED,qBAAa,MAAO,SAAQ,sBAAsB;IAChD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAY;IACxC,MAAM,CAAC,QAAQ,CAAC,MAAM,iBAAiB;gBAE3B,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAItD,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAoBzD;AAED,qBAAa,KAAM,SAAQ,sBAAsB;IAC/C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAW;IACvC,MAAM,CAAC,QAAQ,CAAC,MAAM,gBAAgB;gBAE1B,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAItD,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAezD"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,uBAAe,sBAAuB,SAAQ,WAAW;IAS3C,SAAS,CAAC,QAAQ,EAAE,MAAM;IAAE,SAAS,CAAC,OAAO,EAAE,MAAM;IAAE,SAAS,CAAC,OAAO,EAAE,MAAM;IAP5F,gBAAuB,UAAU,EAAE,WAAW,EAAE,CAK9C;gBAEoB,QAAQ,EAAE,MAAM,EAAY,OAAO,EAAE,MAAM,EAAY,OAAO,EAAE,MAAM;CAG7F;AAED,qBAAa,MAAO,SAAQ,sBAAsB;IAChD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAY;IACxC,MAAM,CAAC,QAAQ,CAAC,MAAM,iBAAiB;gBAE3B,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAItD,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAqBzD;AAED,qBAAa,KAAM,SAAQ,sBAAsB;IAC/C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAW;IACvC,MAAM,CAAC,QAAQ,CAAC,MAAM,gBAAgB;gBAE1B,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAItD,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAgBzD"}