@aztec/simulator 0.86.0-starknet.1 → 0.87.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 (153) hide show
  1. package/dest/common/errors.d.ts.map +1 -1
  2. package/dest/private/acvm/acvm.d.ts +0 -2
  3. package/dest/private/acvm/acvm.d.ts.map +1 -1
  4. package/dest/private/acvm/acvm.js +1 -1
  5. package/dest/private/acvm/deserialize.d.ts +0 -2
  6. package/dest/private/acvm/deserialize.d.ts.map +1 -1
  7. package/dest/private/acvm/oracle/oracle.d.ts +2 -2
  8. package/dest/private/acvm/oracle/oracle.d.ts.map +1 -1
  9. package/dest/private/acvm/oracle/oracle.js +30 -33
  10. package/dest/private/acvm/oracle/typed_oracle.d.ts +1 -3
  11. package/dest/private/acvm/oracle/typed_oracle.d.ts.map +1 -1
  12. package/dest/private/acvm/serialize.d.ts +8 -2
  13. package/dest/private/acvm/serialize.d.ts.map +1 -1
  14. package/dest/private/acvm/serialize.js +26 -0
  15. package/dest/private/index.d.ts +3 -0
  16. package/dest/private/index.d.ts.map +1 -1
  17. package/dest/private/index.js +3 -0
  18. package/dest/private/providers/acvm_native.d.ts +0 -2
  19. package/dest/private/providers/acvm_native.d.ts.map +1 -1
  20. package/dest/private/providers/acvm_native.js +1 -1
  21. package/dest/private/providers/circuit_recording/circuit_recorder.d.ts +0 -2
  22. package/dest/private/providers/circuit_recording/circuit_recorder.d.ts.map +1 -1
  23. package/dest/private/providers/simulation_provider.js +2 -2
  24. package/dest/private/simulator.d.ts.map +1 -1
  25. package/dest/private/utility_execution_oracle.d.ts +0 -2
  26. package/dest/private/utility_execution_oracle.d.ts.map +1 -1
  27. package/dest/public/avm/avm_contract_call_result.d.ts.map +1 -1
  28. package/dest/public/avm/avm_contract_call_result.js +2 -2
  29. package/dest/public/avm/avm_execution_environment.d.ts +2 -1
  30. package/dest/public/avm/avm_execution_environment.d.ts.map +1 -1
  31. package/dest/public/avm/avm_execution_environment.js +4 -2
  32. package/dest/public/avm/avm_gas.d.ts +0 -15
  33. package/dest/public/avm/avm_gas.d.ts.map +1 -1
  34. package/dest/public/avm/avm_gas.js +0 -18
  35. package/dest/public/avm/avm_memory_types.d.ts +84 -86
  36. package/dest/public/avm/avm_memory_types.d.ts.map +1 -1
  37. package/dest/public/avm/avm_simulator.d.ts +1 -3
  38. package/dest/public/avm/avm_simulator.d.ts.map +1 -1
  39. package/dest/public/avm/avm_simulator.js +3 -3
  40. package/dest/public/avm/avm_simulator_interface.d.ts +0 -2
  41. package/dest/public/avm/avm_simulator_interface.d.ts.map +1 -1
  42. package/dest/public/avm/fixtures/initializers.d.ts.map +1 -1
  43. package/dest/public/avm/fixtures/initializers.js +1 -1
  44. package/dest/public/avm/opcodes/accrued_substate.d.ts.map +1 -1
  45. package/dest/public/avm/opcodes/accrued_substate.js +7 -7
  46. package/dest/public/avm/opcodes/addressing_mode.d.ts +7 -6
  47. package/dest/public/avm/opcodes/addressing_mode.d.ts.map +1 -1
  48. package/dest/public/avm/opcodes/addressing_mode.js +18 -15
  49. package/dest/public/avm/opcodes/arithmetic.d.ts.map +1 -1
  50. package/dest/public/avm/opcodes/arithmetic.js +1 -1
  51. package/dest/public/avm/opcodes/bitwise.d.ts.map +1 -1
  52. package/dest/public/avm/opcodes/bitwise.js +2 -2
  53. package/dest/public/avm/opcodes/comparators.d.ts.map +1 -1
  54. package/dest/public/avm/opcodes/comparators.js +1 -1
  55. package/dest/public/avm/opcodes/contract.d.ts.map +1 -1
  56. package/dest/public/avm/opcodes/contract.js +1 -1
  57. package/dest/public/avm/opcodes/control_flow.d.ts.map +1 -1
  58. package/dest/public/avm/opcodes/control_flow.js +1 -1
  59. package/dest/public/avm/opcodes/conversion.d.ts.map +1 -1
  60. package/dest/public/avm/opcodes/conversion.js +1 -1
  61. package/dest/public/avm/opcodes/ec_add.d.ts.map +1 -1
  62. package/dest/public/avm/opcodes/ec_add.js +1 -1
  63. package/dest/public/avm/opcodes/environment_getters.d.ts.map +1 -1
  64. package/dest/public/avm/opcodes/environment_getters.js +1 -1
  65. package/dest/public/avm/opcodes/external_calls.d.ts.map +1 -1
  66. package/dest/public/avm/opcodes/external_calls.js +4 -4
  67. package/dest/public/avm/opcodes/hashing.d.ts.map +1 -1
  68. package/dest/public/avm/opcodes/hashing.js +3 -3
  69. package/dest/public/avm/opcodes/instruction.d.ts +0 -2
  70. package/dest/public/avm/opcodes/instruction.d.ts.map +1 -1
  71. package/dest/public/avm/opcodes/memory.d.ts.map +1 -1
  72. package/dest/public/avm/opcodes/memory.js +6 -6
  73. package/dest/public/avm/opcodes/misc.d.ts.map +1 -1
  74. package/dest/public/avm/opcodes/misc.js +18 -11
  75. package/dest/public/avm/opcodes/storage.d.ts.map +1 -1
  76. package/dest/public/avm/opcodes/storage.js +2 -2
  77. package/dest/public/avm/serialization/buffer_cursor.d.ts +0 -2
  78. package/dest/public/avm/serialization/buffer_cursor.d.ts.map +1 -1
  79. package/dest/public/avm/serialization/bytecode_serialization.d.ts +0 -2
  80. package/dest/public/avm/serialization/bytecode_serialization.d.ts.map +1 -1
  81. package/dest/public/avm/serialization/instruction_serialization.d.ts +0 -2
  82. package/dest/public/avm/serialization/instruction_serialization.d.ts.map +1 -1
  83. package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
  84. package/dest/public/fixtures/public_tx_simulation_tester.js +1 -1
  85. package/dest/public/fixtures/utils.d.ts.map +1 -1
  86. package/dest/public/fixtures/utils.js +19 -26
  87. package/dest/public/hinting_db_sources.d.ts +0 -2
  88. package/dest/public/hinting_db_sources.d.ts.map +1 -1
  89. package/dest/public/public_processor/public_processor.d.ts +3 -5
  90. package/dest/public/public_processor/public_processor.d.ts.map +1 -1
  91. package/dest/public/public_processor/public_processor.js +8 -5
  92. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts +1 -1
  93. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts.map +1 -1
  94. package/dest/public/public_tx_simulator/measured_public_tx_simulator.js +3 -3
  95. package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +1 -1
  96. package/dest/public/public_tx_simulator/public_tx_context.js +5 -9
  97. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +2 -1
  98. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
  99. package/dest/public/public_tx_simulator/public_tx_simulator.js +15 -3
  100. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts +1 -1
  101. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts.map +1 -1
  102. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.js +2 -2
  103. package/dest/public/side_effect_trace.d.ts.map +1 -1
  104. package/dest/public/side_effect_trace.js +5 -5
  105. package/dest/public/state_manager/nullifiers.d.ts.map +1 -1
  106. package/dest/public/state_manager/public_storage.d.ts.map +1 -1
  107. package/dest/public/state_manager/state_manager.d.ts +6 -2
  108. package/dest/public/state_manager/state_manager.d.ts.map +1 -1
  109. package/dest/public/state_manager/state_manager.js +6 -0
  110. package/dest/public/unique_class_ids.d.ts.map +1 -1
  111. package/dest/test/utils.d.ts.map +1 -1
  112. package/package.json +18 -18
  113. package/src/private/acvm/acvm.ts +1 -1
  114. package/src/private/acvm/oracle/oracle.ts +38 -31
  115. package/src/private/acvm/oracle/typed_oracle.ts +1 -1
  116. package/src/private/acvm/serialize.ts +35 -0
  117. package/src/private/index.ts +3 -0
  118. package/src/private/pick_notes.ts +4 -4
  119. package/src/private/providers/acvm_native.ts +6 -2
  120. package/src/private/providers/simulation_provider.ts +2 -2
  121. package/src/private/simulator.ts +4 -1
  122. package/src/public/avm/avm_contract_call_result.ts +2 -2
  123. package/src/public/avm/avm_execution_environment.ts +7 -1
  124. package/src/public/avm/avm_gas.ts +0 -20
  125. package/src/public/avm/avm_simulator.ts +3 -1
  126. package/src/public/avm/fixtures/initializers.ts +1 -0
  127. package/src/public/avm/opcodes/accrued_substate.ts +31 -11
  128. package/src/public/avm/opcodes/addressing_mode.ts +23 -20
  129. package/src/public/avm/opcodes/arithmetic.ts +2 -1
  130. package/src/public/avm/opcodes/bitwise.ts +9 -3
  131. package/src/public/avm/opcodes/comparators.ts +2 -1
  132. package/src/public/avm/opcodes/contract.ts +2 -1
  133. package/src/public/avm/opcodes/control_flow.ts +7 -2
  134. package/src/public/avm/opcodes/conversion.ts +2 -1
  135. package/src/public/avm/opcodes/ec_add.ts +2 -1
  136. package/src/public/avm/opcodes/environment_getters.ts +7 -2
  137. package/src/public/avm/opcodes/external_calls.ts +19 -7
  138. package/src/public/avm/opcodes/hashing.ts +17 -5
  139. package/src/public/avm/opcodes/memory.ts +27 -9
  140. package/src/public/avm/opcodes/misc.ts +23 -15
  141. package/src/public/avm/opcodes/storage.ts +9 -3
  142. package/src/public/avm/serialization/buffer_cursor.ts +4 -1
  143. package/src/public/fixtures/public_tx_simulation_tester.ts +1 -0
  144. package/src/public/fixtures/utils.ts +21 -28
  145. package/src/public/hinting_db_sources.ts +8 -2
  146. package/src/public/public_processor/public_processor.ts +9 -3
  147. package/src/public/public_tx_simulator/measured_public_tx_simulator.ts +3 -2
  148. package/src/public/public_tx_simulator/public_tx_context.ts +4 -23
  149. package/src/public/public_tx_simulator/public_tx_simulator.ts +14 -1
  150. package/src/public/public_tx_simulator/telemetry_public_tx_simulator.ts +10 -1
  151. package/src/public/side_effect_trace.ts +5 -7
  152. package/src/public/state_manager/state_manager.ts +13 -0
  153. package/src/public/avm/opcodes/.eslintrc.cjs +0 -8
@@ -1,5 +1,3 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
1
  import { Fr } from '@aztec/foundation/fields';
4
2
  import { type Logger } from '@aztec/foundation/log';
5
3
  import type { FunctionsOf } from '@aztec/foundation/types';
@@ -30,21 +28,21 @@ export declare abstract class IntegralValue extends MemoryValue {
30
28
  abstract not(): IntegralValue;
31
29
  }
32
30
  declare const Uint1_base: {
33
- new (n: number | bigint): {
31
+ new (n: bigint | number): {
34
32
  readonly n: bigint;
35
- build(n: bigint): any;
36
- add(rhs: any): any;
37
- sub(rhs: any): any;
38
- mul(rhs: any): any;
39
- div(rhs: any): any;
40
- shr(rhs: any): any;
41
- shl(rhs: any): any;
42
- and(rhs: any): any;
43
- or(rhs: any): any;
44
- xor(rhs: any): any;
45
- not(): any;
46
- equals(rhs: any): boolean;
47
- lt(rhs: any): boolean;
33
+ build(n: bigint): /*elided*/ any;
34
+ add(rhs: /*elided*/ any): /*elided*/ any;
35
+ sub(rhs: /*elided*/ any): /*elided*/ any;
36
+ mul(rhs: /*elided*/ any): /*elided*/ any;
37
+ div(rhs: /*elided*/ any): /*elided*/ any;
38
+ shr(rhs: /*elided*/ any): /*elided*/ any;
39
+ shl(rhs: /*elided*/ any): /*elided*/ any;
40
+ and(rhs: /*elided*/ any): /*elided*/ any;
41
+ or(rhs: /*elided*/ any): /*elided*/ any;
42
+ xor(rhs: /*elided*/ any): /*elided*/ any;
43
+ not(): /*elided*/ any;
44
+ equals(rhs: /*elided*/ any): boolean;
45
+ lt(rhs: /*elided*/ any): boolean;
48
46
  toBigInt(): bigint;
49
47
  toBuffer(): Buffer;
50
48
  toFr(): Fr;
@@ -58,21 +56,21 @@ declare const Uint1_base: {
58
56
  export declare class Uint1 extends Uint1_base {
59
57
  }
60
58
  declare const Uint8_base: {
61
- new (n: number | bigint): {
59
+ new (n: bigint | number): {
62
60
  readonly n: bigint;
63
- build(n: bigint): any;
64
- add(rhs: any): any;
65
- sub(rhs: any): any;
66
- mul(rhs: any): any;
67
- div(rhs: any): any;
68
- shr(rhs: any): any;
69
- shl(rhs: any): any;
70
- and(rhs: any): any;
71
- or(rhs: any): any;
72
- xor(rhs: any): any;
73
- not(): any;
74
- equals(rhs: any): boolean;
75
- lt(rhs: any): boolean;
61
+ build(n: bigint): /*elided*/ any;
62
+ add(rhs: /*elided*/ any): /*elided*/ any;
63
+ sub(rhs: /*elided*/ any): /*elided*/ any;
64
+ mul(rhs: /*elided*/ any): /*elided*/ any;
65
+ div(rhs: /*elided*/ any): /*elided*/ any;
66
+ shr(rhs: /*elided*/ any): /*elided*/ any;
67
+ shl(rhs: /*elided*/ any): /*elided*/ any;
68
+ and(rhs: /*elided*/ any): /*elided*/ any;
69
+ or(rhs: /*elided*/ any): /*elided*/ any;
70
+ xor(rhs: /*elided*/ any): /*elided*/ any;
71
+ not(): /*elided*/ any;
72
+ equals(rhs: /*elided*/ any): boolean;
73
+ lt(rhs: /*elided*/ any): boolean;
76
74
  toBigInt(): bigint;
77
75
  toBuffer(): Buffer;
78
76
  toFr(): Fr;
@@ -86,21 +84,21 @@ declare const Uint8_base: {
86
84
  export declare class Uint8 extends Uint8_base {
87
85
  }
88
86
  declare const Uint16_base: {
89
- new (n: number | bigint): {
87
+ new (n: bigint | number): {
90
88
  readonly n: bigint;
91
- build(n: bigint): any;
92
- add(rhs: any): any;
93
- sub(rhs: any): any;
94
- mul(rhs: any): any;
95
- div(rhs: any): any;
96
- shr(rhs: any): any;
97
- shl(rhs: any): any;
98
- and(rhs: any): any;
99
- or(rhs: any): any;
100
- xor(rhs: any): any;
101
- not(): any;
102
- equals(rhs: any): boolean;
103
- lt(rhs: any): boolean;
89
+ build(n: bigint): /*elided*/ any;
90
+ add(rhs: /*elided*/ any): /*elided*/ any;
91
+ sub(rhs: /*elided*/ any): /*elided*/ any;
92
+ mul(rhs: /*elided*/ any): /*elided*/ any;
93
+ div(rhs: /*elided*/ any): /*elided*/ any;
94
+ shr(rhs: /*elided*/ any): /*elided*/ any;
95
+ shl(rhs: /*elided*/ any): /*elided*/ any;
96
+ and(rhs: /*elided*/ any): /*elided*/ any;
97
+ or(rhs: /*elided*/ any): /*elided*/ any;
98
+ xor(rhs: /*elided*/ any): /*elided*/ any;
99
+ not(): /*elided*/ any;
100
+ equals(rhs: /*elided*/ any): boolean;
101
+ lt(rhs: /*elided*/ any): boolean;
104
102
  toBigInt(): bigint;
105
103
  toBuffer(): Buffer;
106
104
  toFr(): Fr;
@@ -114,21 +112,21 @@ declare const Uint16_base: {
114
112
  export declare class Uint16 extends Uint16_base {
115
113
  }
116
114
  declare const Uint32_base: {
117
- new (n: number | bigint): {
115
+ new (n: bigint | number): {
118
116
  readonly n: bigint;
119
- build(n: bigint): any;
120
- add(rhs: any): any;
121
- sub(rhs: any): any;
122
- mul(rhs: any): any;
123
- div(rhs: any): any;
124
- shr(rhs: any): any;
125
- shl(rhs: any): any;
126
- and(rhs: any): any;
127
- or(rhs: any): any;
128
- xor(rhs: any): any;
129
- not(): any;
130
- equals(rhs: any): boolean;
131
- lt(rhs: any): boolean;
117
+ build(n: bigint): /*elided*/ any;
118
+ add(rhs: /*elided*/ any): /*elided*/ any;
119
+ sub(rhs: /*elided*/ any): /*elided*/ any;
120
+ mul(rhs: /*elided*/ any): /*elided*/ any;
121
+ div(rhs: /*elided*/ any): /*elided*/ any;
122
+ shr(rhs: /*elided*/ any): /*elided*/ any;
123
+ shl(rhs: /*elided*/ any): /*elided*/ any;
124
+ and(rhs: /*elided*/ any): /*elided*/ any;
125
+ or(rhs: /*elided*/ any): /*elided*/ any;
126
+ xor(rhs: /*elided*/ any): /*elided*/ any;
127
+ not(): /*elided*/ any;
128
+ equals(rhs: /*elided*/ any): boolean;
129
+ lt(rhs: /*elided*/ any): boolean;
132
130
  toBigInt(): bigint;
133
131
  toBuffer(): Buffer;
134
132
  toFr(): Fr;
@@ -142,21 +140,21 @@ declare const Uint32_base: {
142
140
  export declare class Uint32 extends Uint32_base {
143
141
  }
144
142
  declare const Uint64_base: {
145
- new (n: number | bigint): {
143
+ new (n: bigint | number): {
146
144
  readonly n: bigint;
147
- build(n: bigint): any;
148
- add(rhs: any): any;
149
- sub(rhs: any): any;
150
- mul(rhs: any): any;
151
- div(rhs: any): any;
152
- shr(rhs: any): any;
153
- shl(rhs: any): any;
154
- and(rhs: any): any;
155
- or(rhs: any): any;
156
- xor(rhs: any): any;
157
- not(): any;
158
- equals(rhs: any): boolean;
159
- lt(rhs: any): boolean;
145
+ build(n: bigint): /*elided*/ any;
146
+ add(rhs: /*elided*/ any): /*elided*/ any;
147
+ sub(rhs: /*elided*/ any): /*elided*/ any;
148
+ mul(rhs: /*elided*/ any): /*elided*/ any;
149
+ div(rhs: /*elided*/ any): /*elided*/ any;
150
+ shr(rhs: /*elided*/ any): /*elided*/ any;
151
+ shl(rhs: /*elided*/ any): /*elided*/ any;
152
+ and(rhs: /*elided*/ any): /*elided*/ any;
153
+ or(rhs: /*elided*/ any): /*elided*/ any;
154
+ xor(rhs: /*elided*/ any): /*elided*/ any;
155
+ not(): /*elided*/ any;
156
+ equals(rhs: /*elided*/ any): boolean;
157
+ lt(rhs: /*elided*/ any): boolean;
160
158
  toBigInt(): bigint;
161
159
  toBuffer(): Buffer;
162
160
  toFr(): Fr;
@@ -170,21 +168,21 @@ declare const Uint64_base: {
170
168
  export declare class Uint64 extends Uint64_base {
171
169
  }
172
170
  declare const Uint128_base: {
173
- new (n: number | bigint): {
171
+ new (n: bigint | number): {
174
172
  readonly n: bigint;
175
- build(n: bigint): any;
176
- add(rhs: any): any;
177
- sub(rhs: any): any;
178
- mul(rhs: any): any;
179
- div(rhs: any): any;
180
- shr(rhs: any): any;
181
- shl(rhs: any): any;
182
- and(rhs: any): any;
183
- or(rhs: any): any;
184
- xor(rhs: any): any;
185
- not(): any;
186
- equals(rhs: any): boolean;
187
- lt(rhs: any): boolean;
173
+ build(n: bigint): /*elided*/ any;
174
+ add(rhs: /*elided*/ any): /*elided*/ any;
175
+ sub(rhs: /*elided*/ any): /*elided*/ any;
176
+ mul(rhs: /*elided*/ any): /*elided*/ any;
177
+ div(rhs: /*elided*/ any): /*elided*/ any;
178
+ shr(rhs: /*elided*/ any): /*elided*/ any;
179
+ shl(rhs: /*elided*/ any): /*elided*/ any;
180
+ and(rhs: /*elided*/ any): /*elided*/ any;
181
+ or(rhs: /*elided*/ any): /*elided*/ any;
182
+ xor(rhs: /*elided*/ any): /*elided*/ any;
183
+ not(): /*elided*/ any;
184
+ equals(rhs: /*elided*/ any): boolean;
185
+ lt(rhs: /*elided*/ any): boolean;
188
186
  toBigInt(): bigint;
189
187
  toBuffer(): Buffer;
190
188
  toFr(): Fr;
@@ -1 +1 @@
1
- {"version":3,"file":"avm_memory_types.d.ts","sourceRoot":"","sources":["../../../src/public/avm/avm_memory_types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"avm_memory_types.d.ts","sourceRoot":"","sources":["../../../src/public/avm/avm_memory_types.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,3 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
1
  import { Fr } from '@aztec/foundation/fields';
4
2
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
5
3
  import type { GlobalVariables } from '@aztec/stdlib/tx';
@@ -20,7 +18,7 @@ export declare class AvmSimulator implements AvmSimulatorInterface {
20
18
  private tallyInstructionFunction;
21
19
  constructor(context: AvmContext, instructionSet?: InstructionSet, enableTallying?: boolean);
22
20
  static build(context: AvmContext): Promise<AvmSimulator>;
23
- static create(stateManager: PublicPersistableStateManager, address: AztecAddress, sender: AztecAddress, transactionFee: Fr, globals: GlobalVariables, isStaticCall: boolean, calldata: Fr[], allocatedGas: Gas): Promise<AvmSimulator>;
21
+ static create(stateManager: PublicPersistableStateManager, address: AztecAddress, sender: AztecAddress, transactionFee: Fr, globals: GlobalVariables, isStaticCall: boolean, calldata: Fr[], allocatedGas: Gas, clientInitiatedSimulation?: boolean): Promise<AvmSimulator>;
24
22
  /**
25
23
  * Fetch the bytecode and execute it in the current context.
26
24
  */
@@ -1 +1 @@
1
- {"version":3,"file":"avm_simulator.d.ts","sourceRoot":"","sources":["../../../src/public/avm/avm_simulator.ts"],"names":[],"mappings":";;AACA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAKxD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AACvF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAI1E,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,2CAA2C,CAAC;AAOnD,qBAAa,YAAa,YAAW,qBAAqB;IAatD,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,cAAc;IAbxB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,aAAa,CAAuC;IAE5D,OAAO,CAAC,6BAA6B,CAAiD;IAEtF,OAAO,CAAC,kBAAkB,CAAY;IACtC,OAAO,CAAC,wBAAwB,CAA+B;gBAKrD,OAAO,EAAE,UAAU,EACnB,cAAc,GAAE,cAAgC,EACxD,cAAc,UAAQ;WAmBJ,KAAK,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC;WAQjD,MAAM,CACxB,YAAY,EAAE,6BAA6B,EAC3C,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,YAAY,EACpB,cAAc,EAAE,EAAE,EAClB,OAAO,EAAE,eAAe,EACxB,YAAY,EAAE,OAAO,EACrB,QAAQ,EAAE,EAAE,EAAE,EACd,YAAY,EAAE,GAAG;IAiBnB;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAuBtD;;OAEG;IACI,WAAW,IAAI,MAAM,GAAG,SAAS;IAIxC;;;OAGG;IACU,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;YAqHhE,+BAA+B;IAoB7C,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,kBAAkB;CAS3B"}
1
+ {"version":3,"file":"avm_simulator.d.ts","sourceRoot":"","sources":["../../../src/public/avm/avm_simulator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAKxD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AACvF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAI1E,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,2CAA2C,CAAC;AAOnD,qBAAa,YAAa,YAAW,qBAAqB;IAatD,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,cAAc;IAbxB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,aAAa,CAAuC;IAE5D,OAAO,CAAC,6BAA6B,CAAiD;IAEtF,OAAO,CAAC,kBAAkB,CAAY;IACtC,OAAO,CAAC,wBAAwB,CAA+B;gBAKrD,OAAO,EAAE,UAAU,EACnB,cAAc,GAAE,cAAgC,EACxD,cAAc,UAAQ;WAmBJ,KAAK,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC;WAQjD,MAAM,CACxB,YAAY,EAAE,6BAA6B,EAC3C,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,YAAY,EACpB,cAAc,EAAE,EAAE,EAClB,OAAO,EAAE,eAAe,EACxB,YAAY,EAAE,OAAO,EACrB,QAAQ,EAAE,EAAE,EAAE,EACd,YAAY,EAAE,GAAG,EACjB,yBAAyB,GAAE,OAAe;IAkB5C;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAuBtD;;OAEG;IACI,WAAW,IAAI,MAAM,GAAG,SAAS;IAIxC;;;OAGG;IACU,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;YAqHhE,+BAA+B;IAoB7C,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,kBAAkB;CAS3B"}
@@ -48,8 +48,8 @@ export class AvmSimulator {
48
48
  simulator.log = createLogger(`simulator:avm(f:${fnName})`);
49
49
  return simulator;
50
50
  }
51
- static async create(stateManager, address, sender, transactionFee, globals, isStaticCall, calldata, allocatedGas) {
52
- const avmExecutionEnv = new AvmExecutionEnvironment(address, sender, /*contractCallDepth=*/ Fr.zero(), transactionFee, globals, isStaticCall, calldata);
51
+ static async create(stateManager, address, sender, transactionFee, globals, isStaticCall, calldata, allocatedGas, clientInitiatedSimulation = false) {
52
+ const avmExecutionEnv = new AvmExecutionEnvironment(address, sender, /*contractCallDepth=*/ Fr.zero(), transactionFee, globals, isStaticCall, calldata, clientInitiatedSimulation);
53
53
  const avmMachineState = new AvmMachineState(allocatedGas);
54
54
  const avmContext = new AvmContext(stateManager, avmExecutionEnv, avmMachineState);
55
55
  return await AvmSimulator.build(avmContext);
@@ -65,7 +65,7 @@ export class AvmSimulator {
65
65
  this.log.error(`Unknown error thrown by AVM during bytecode retrieval: ${err}`);
66
66
  throw err;
67
67
  }
68
- return await this.handleFailureToRetrieveBytecode(`Bytecode retrieval for contract '${this.context.environment.address}' failed with ${err}. Reverting...`);
68
+ return await this.handleFailureToRetrieveBytecode(`Bytecode retrieval for contract '${this.context.environment.address}' failed with ${err.message}. Reverting...`);
69
69
  }
70
70
  if (!bytecode) {
71
71
  return await this.handleFailureToRetrieveBytecode(`No bytecode found at: ${this.context.environment.address}. Reverting...`);
@@ -1,5 +1,3 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
1
  /**
4
2
  * Interface for AvmSimulator to break the circular dependency between avm_context.ts and avm_simulator.ts
5
3
  */
@@ -1 +1 @@
1
- {"version":3,"file":"avm_simulator_interface.d.ts","sourceRoot":"","sources":["../../../src/public/avm/avm_simulator_interface.ts"],"names":[],"mappings":";;AAAA;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IACxB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAChD,WAAW,IAAI,MAAM,GAAG,SAAS,CAAC;CACnC"}
1
+ {"version":3,"file":"avm_simulator_interface.d.ts","sourceRoot":"","sources":["../../../src/public/avm/avm_simulator_interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IACxB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAChD,WAAW,IAAI,MAAM,GAAG,SAAS,CAAC;CACnC"}
@@ -1 +1 @@
1
- {"version":3,"file":"initializers.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/fixtures/initializers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAG9C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAInD,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACnF,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,6BAA6B,EAAE,MAAM,sCAAsC,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAI1D;;GAEG;AACH,wBAAgB,WAAW,CAAC,SAAS,CAAC,EAAE;IACtC,gBAAgB,CAAC,EAAE,6BAA6B,CAAC;IACjD,GAAG,CAAC,EAAE,uBAAuB,CAAC;IAC9B,YAAY,CAAC,EAAE,eAAe,CAAC;CAChC,GAAG,UAAU,CAQb;AAED,+DAA+D;AAC/D,wBAAgB,2BAA2B,CAAC,SAAS,CAAC,EAAE;IACtD,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,KAAK,CAAC,EAAE,8BAA8B,CAAC;IACvC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,EAAE,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,6BAA6B,CAYhC;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAAG,uBAAuB,CAU9G;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAWzF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAKtF"}
1
+ {"version":3,"file":"initializers.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/fixtures/initializers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAG9C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAInD,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACnF,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,6BAA6B,EAAE,MAAM,sCAAsC,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAI1D;;GAEG;AACH,wBAAgB,WAAW,CAAC,SAAS,CAAC,EAAE;IACtC,gBAAgB,CAAC,EAAE,6BAA6B,CAAC;IACjD,GAAG,CAAC,EAAE,uBAAuB,CAAC;IAC9B,YAAY,CAAC,EAAE,eAAe,CAAC;CAChC,GAAG,UAAU,CAQb;AAED,+DAA+D;AAC/D,wBAAgB,2BAA2B,CAAC,SAAS,CAAC,EAAE;IACtD,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,KAAK,CAAC,EAAE,8BAA8B,CAAC;IACvC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,EAAE,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,6BAA6B,CAYhC;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAAG,uBAAuB,CAW9G;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAWzF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAKtF"}
@@ -25,7 +25,7 @@ import { DEFAULT_BLOCK_NUMBER } from './utils.js';
25
25
  /**
26
26
  * Create an empty instance of the Execution Environment where all values are zero, unless overridden in the overrides object
27
27
  */ export function initExecutionEnvironment(overrides) {
28
- return new AvmExecutionEnvironment(overrides?.address ?? AztecAddress.zero(), overrides?.sender ?? AztecAddress.zero(), overrides?.contractCallDepth ?? Fr.zero(), overrides?.transactionFee ?? Fr.zero(), overrides?.globals ?? GlobalVariables.empty(), overrides?.isStaticCall ?? false, overrides?.calldata ?? []);
28
+ return new AvmExecutionEnvironment(overrides?.address ?? AztecAddress.zero(), overrides?.sender ?? AztecAddress.zero(), overrides?.contractCallDepth ?? Fr.zero(), overrides?.transactionFee ?? Fr.zero(), overrides?.globals ?? GlobalVariables.empty(), overrides?.isStaticCall ?? false, overrides?.calldata ?? [], overrides?.clientInitiatedSimulation ?? true);
29
29
  }
30
30
  /**
31
31
  * Create an empty instance of the Execution Environment where all values are zero, unless overridden in the overrides object
@@ -1 +1 @@
1
- {"version":3,"file":"accrued_substate.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/accrued_substate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"accrued_substate.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/accrued_substate.ts"],"names":[],"mappings":"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"}
@@ -24,13 +24,13 @@ export class NoteHashExists extends Instruction {
24
24
  }
25
25
  async execute(context) {
26
26
  const memory = context.machineState.memory;
27
+ const addressing = Addressing.fromWire(this.indirect);
27
28
  context.machineState.consumeGas(this.gasCost());
28
29
  const operands = [
29
30
  this.noteHashOffset,
30
31
  this.leafIndexOffset,
31
32
  this.existsOffset
32
33
  ];
33
- const addressing = Addressing.fromWire(this.indirect, operands.length);
34
34
  const [noteHashOffset, leafIndexOffset, existsOffset] = addressing.resolve(operands, memory);
35
35
  memory.checkTags(TypeTag.FIELD, noteHashOffset, leafIndexOffset);
36
36
  // Note that this instruction accepts any type in memory, and converts to Field.
@@ -56,11 +56,11 @@ export class EmitNoteHash extends Instruction {
56
56
  }
57
57
  async execute(context) {
58
58
  const memory = context.machineState.memory;
59
+ const addressing = Addressing.fromWire(this.indirect);
59
60
  context.machineState.consumeGas(this.gasCost());
60
61
  const operands = [
61
62
  this.noteHashOffset
62
63
  ];
63
- const addressing = Addressing.fromWire(this.indirect, operands.length);
64
64
  const [noteHashOffset] = addressing.resolve(operands, memory);
65
65
  memory.checkTag(TypeTag.FIELD, noteHashOffset);
66
66
  if (context.environment.isStaticCall) {
@@ -90,13 +90,13 @@ export class NullifierExists extends Instruction {
90
90
  }
91
91
  async execute(context) {
92
92
  const memory = context.machineState.memory;
93
+ const addressing = Addressing.fromWire(this.indirect);
93
94
  context.machineState.consumeGas(this.gasCost());
94
95
  const operands = [
95
96
  this.nullifierOffset,
96
97
  this.addressOffset,
97
98
  this.existsOffset
98
99
  ];
99
- const addressing = Addressing.fromWire(this.indirect, operands.length);
100
100
  const [nullifierOffset, addressOffset, existsOffset] = addressing.resolve(operands, memory);
101
101
  memory.checkTags(TypeTag.FIELD, nullifierOffset, addressOffset);
102
102
  const nullifier = memory.get(nullifierOffset).toFr();
@@ -124,11 +124,11 @@ export class EmitNullifier extends Instruction {
124
124
  throw new StaticCallAlterationError();
125
125
  }
126
126
  const memory = context.machineState.memory;
127
+ const addressing = Addressing.fromWire(this.indirect);
127
128
  context.machineState.consumeGas(this.gasCost());
128
129
  const operands = [
129
130
  this.nullifierOffset
130
131
  ];
131
- const addressing = Addressing.fromWire(this.indirect, operands.length);
132
132
  const [nullifierOffset] = addressing.resolve(operands, memory);
133
133
  memory.checkTag(TypeTag.FIELD, nullifierOffset);
134
134
  const nullifier = memory.get(nullifierOffset).toFr();
@@ -164,13 +164,13 @@ export class L1ToL2MessageExists extends Instruction {
164
164
  }
165
165
  async execute(context) {
166
166
  const memory = context.machineState.memory;
167
+ const addressing = Addressing.fromWire(this.indirect);
167
168
  context.machineState.consumeGas(this.gasCost());
168
169
  const operands = [
169
170
  this.msgHashOffset,
170
171
  this.msgLeafIndexOffset,
171
172
  this.existsOffset
172
173
  ];
173
- const addressing = Addressing.fromWire(this.indirect, operands.length);
174
174
  const [msgHashOffset, msgLeafIndexOffset, existsOffset] = addressing.resolve(operands, memory);
175
175
  memory.checkTags(TypeTag.FIELD, msgHashOffset, msgLeafIndexOffset);
176
176
  const msgHash = memory.get(msgHashOffset).toFr();
@@ -201,11 +201,11 @@ export class EmitUnencryptedLog extends Instruction {
201
201
  throw new StaticCallAlterationError();
202
202
  }
203
203
  const memory = context.machineState.memory;
204
+ const addressing = Addressing.fromWire(this.indirect);
204
205
  const operands = [
205
206
  this.logOffset,
206
207
  this.logSizeOffset
207
208
  ];
208
- const addressing = Addressing.fromWire(this.indirect, operands.length);
209
209
  const [logOffset, logSizeOffset] = addressing.resolve(operands, memory);
210
210
  memory.checkTag(TypeTag.UINT32, logSizeOffset);
211
211
  const logSize = memory.get(logSizeOffset).toNumber();
@@ -237,12 +237,12 @@ export class SendL2ToL1Message extends Instruction {
237
237
  throw new StaticCallAlterationError();
238
238
  }
239
239
  const memory = context.machineState.memory;
240
+ const addressing = Addressing.fromWire(this.indirect);
240
241
  context.machineState.consumeGas(this.gasCost());
241
242
  const operands = [
242
243
  this.recipientOffset,
243
244
  this.contentOffset
244
245
  ];
245
- const addressing = Addressing.fromWire(this.indirect, operands.length);
246
246
  const [recipientOffset, contentOffset] = addressing.resolve(operands, memory);
247
247
  memory.checkTags(TypeTag.FIELD, recipientOffset, contentOffset);
248
248
  const recipient = memory.get(recipientOffset).toFr();
@@ -1,3 +1,5 @@
1
+ import { AVM_MAX_OPERANDS } from '@aztec/constants';
2
+ import type { Tuple } from '@aztec/foundation/serialize';
1
3
  import { type TaggedMemoryInterface } from '../avm_memory_types.js';
2
4
  export declare enum AddressingMode {
3
5
  DIRECT = 0,
@@ -7,15 +9,14 @@ export declare enum AddressingMode {
7
9
  }
8
10
  /** A class to represent the addressing mode of an instruction. */
9
11
  export declare class Addressing {
10
- /** The addressing mode for each operand. The length of this array is the number of operands of the instruction. */
12
+ /** The addressing mode for each possible operand. */
11
13
  private readonly modePerOperand;
12
14
  constructor(
13
- /** The addressing mode for each operand. The length of this array is the number of operands of the instruction. */
14
- modePerOperand: AddressingMode[]);
15
- static fromWire(wireModes: number, numOperands?: number): Addressing;
15
+ /** The addressing mode for each possible operand. */
16
+ modePerOperand: Tuple<AddressingMode, typeof AVM_MAX_OPERANDS>);
17
+ static fromModes(modes: AddressingMode[]): Addressing;
18
+ static fromWire(wireModes: number): Addressing;
16
19
  toWire(): number;
17
- /** Returns how many operands use the given addressing mode. */
18
- count(mode: AddressingMode): number;
19
20
  /**
20
21
  * Resolves the offsets using the addressing mode.
21
22
  * @param offsets The offsets to resolve.
@@ -1 +1 @@
1
- {"version":3,"file":"addressing_mode.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/addressing_mode.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,KAAK,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAGlF,oBAAY,cAAc;IACxB,MAAM,IAAI;IACV,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,iBAAiB,IAAI;CACtB;AAED,kEAAkE;AAClE,qBAAa,UAAU;IAEnB,mHAAmH;IACnH,OAAO,CAAC,QAAQ,CAAC,cAAc;;IAD/B,mHAAmH;IAClG,cAAc,EAAE,cAAc,EAAE;WAIrC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,GAAE,MAAU,GAAG,UAAU;IAYvE,MAAM,IAAI,MAAM;IAevB,+DAA+D;IACxD,KAAK,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM;IAI1C;;;;;OAKG;IACI,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,qBAAqB,GAAG,MAAM,EAAE;CA4BxE"}
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,EAAgB,KAAK,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAGlF,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;IAevB;;;;;OAKG;IACI,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,qBAAqB,GAAG,MAAM,EAAE;CA2BxE"}
@@ -1,4 +1,5 @@
1
- import { strict as assert } from 'assert';
1
+ import { AVM_MAX_OPERANDS } from '@aztec/constants';
2
+ import { padArrayEnd } from '@aztec/foundation/collection';
2
3
  import { TaggedMemory } from '../avm_memory_types.js';
3
4
  import { RelativeAddressOutOfRangeError } from '../errors.js';
4
5
  export var AddressingMode = /*#__PURE__*/ function(AddressingMode) {
@@ -10,17 +11,23 @@ export var AddressingMode = /*#__PURE__*/ function(AddressingMode) {
10
11
  }({});
11
12
  /** A class to represent the addressing mode of an instruction. */ export class Addressing {
12
13
  modePerOperand;
13
- constructor(/** The addressing mode for each operand. The length of this array is the number of operands of the instruction. */ modePerOperand){
14
+ constructor(/** The addressing mode for each possible operand. */ modePerOperand){
14
15
  this.modePerOperand = modePerOperand;
15
16
  }
16
- // TODO(facundo): 8 for backwards compatibility.
17
- static fromWire(wireModes, numOperands = 8) {
18
- // The modes are stored in the wire format as a byte, with each bit representing the mode for an operand.
19
- // The least significant bit represents the zeroth operand, and the most significant bit represents the last operand.
20
- const modes = new Array(numOperands);
21
- for(let i = 0; i < numOperands; i++){
22
- modes[i] = (wireModes >> i & 1) * 1 | (wireModes >> i + numOperands & 1) * 2;
17
+ static fromModes(modes) {
18
+ if (modes.length > AVM_MAX_OPERANDS) {
19
+ throw new Error('Too many operands for addressing mode');
20
+ }
21
+ return new Addressing(padArrayEnd(modes, 0, AVM_MAX_OPERANDS));
22
+ }
23
+ static fromWire(wireModes) {
24
+ // The modes are stored in the wire format as one or two bytes, with each two bits representing the modes for an operand.
25
+ // Even bits are indirect, odd bits are relative.
26
+ const modes = new Array(AVM_MAX_OPERANDS);
27
+ for(let i = 0; i < AVM_MAX_OPERANDS; i++){
28
+ modes[i] = (wireModes >> i * 2 & 1) * 1 | (wireModes >> i * 2 + 1 & 1) * 2;
23
29
  }
30
+ // Casting the array to tuple since it should be more performant than using makeTuple
24
31
  return new Addressing(modes);
25
32
  }
26
33
  toWire() {
@@ -29,24 +36,20 @@ export var AddressingMode = /*#__PURE__*/ function(AddressingMode) {
29
36
  let wire = 0;
30
37
  for(let i = 0; i < this.modePerOperand.length; i++){
31
38
  if (this.modePerOperand[i] & 1) {
32
- wire |= 1 << i;
39
+ wire |= 1 << i * 2;
33
40
  }
34
41
  if (this.modePerOperand[i] & 2) {
35
- wire |= 1 << this.modePerOperand.length + i;
42
+ wire |= 1 << i * 2 + 1;
36
43
  }
37
44
  }
38
45
  return wire;
39
46
  }
40
- /** Returns how many operands use the given addressing mode. */ count(mode) {
41
- return this.modePerOperand.filter((m)=>(m & mode) !== 0).length;
42
- }
43
47
  /**
44
48
  * Resolves the offsets using the addressing mode.
45
49
  * @param offsets The offsets to resolve.
46
50
  * @param mem The memory to use for resolution.
47
51
  * @returns The resolved offsets. The length of the returned array is the same as the length of the input array.
48
52
  */ resolve(offsets, mem) {
49
- assert(offsets.length <= this.modePerOperand.length);
50
53
  const resolved = new Array(offsets.length);
51
54
  let didRelativeOnce = false;
52
55
  let baseAddr = 0;
@@ -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,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;IAgBxD,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"}
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,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;IAiBxD,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"}
@@ -6,13 +6,13 @@ 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
10
  context.machineState.consumeGas(this.gasCost());
10
11
  const operands = [
11
12
  this.aOffset,
12
13
  this.bOffset,
13
14
  this.dstOffset
14
15
  ];
15
- const addressing = Addressing.fromWire(this.indirect, operands.length);
16
16
  const [aOffset, bOffset, dstOffset] = addressing.resolve(operands, memory);
17
17
  this.checkTags(memory, aOffset, bOffset);
18
18
  const a = memory.get(aOffset);
@@ -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;AACpD,OAAO,EAAE,KAAK,aAAa,EAAgB,KAAK,qBAAqB,EAAW,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;IAgBxD,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;CAIpF;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;CAG9E;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;CAG9E;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;CAG9E;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;cAG1D,SAAS,CAAC,MAAM,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAI7F;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;cAG1D,SAAS,CAAC,MAAM,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAI7F;AAED,qBAAa,GAAI,SAAQ,WAAW;IAOtB,OAAO,CAAC,QAAQ;IAAU,OAAO,CAAC,SAAS;IAAU,OAAO,CAAC,SAAS;IANlF,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;gBAE1F,QAAQ,EAAE,MAAM,EAAU,SAAS,EAAE,MAAM,EAAU,SAAS,EAAE,MAAM;IAI7E,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAazD"}
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;AACpD,OAAO,EAAE,KAAK,aAAa,EAAgB,KAAK,qBAAqB,EAAW,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;IAiBxD,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;CAIpF;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;CAG9E;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;CAG9E;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;CAG9E;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;cAG1D,SAAS,CAAC,MAAM,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAI7F;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;cAG1D,SAAS,CAAC,MAAM,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAI7F;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;CAczD"}
@@ -6,13 +6,13 @@ import { ThreeOperandInstruction } from './instruction_impl.js';
6
6
  class ThreeOperandBitwiseInstruction extends ThreeOperandInstruction {
7
7
  async execute(context) {
8
8
  const memory = context.machineState.memory;
9
+ const addressing = Addressing.fromWire(this.indirect);
9
10
  context.machineState.consumeGas(this.gasCost());
10
11
  const operands = [
11
12
  this.aOffset,
12
13
  this.bOffset,
13
14
  this.dstOffset
14
15
  ];
15
- const addressing = Addressing.fromWire(this.indirect, operands.length);
16
16
  const [aOffset, bOffset, dstOffset] = addressing.resolve(operands, memory);
17
17
  this.checkTags(memory, aOffset, bOffset);
18
18
  const a = memory.getAs(aOffset);
@@ -91,12 +91,12 @@ export class Not extends Instruction {
91
91
  }
92
92
  async execute(context) {
93
93
  const memory = context.machineState.memory;
94
+ const addressing = Addressing.fromWire(this.indirect);
94
95
  context.machineState.consumeGas(this.gasCost());
95
96
  const operands = [
96
97
  this.srcOffset,
97
98
  this.dstOffset
98
99
  ];
99
- const addressing = Addressing.fromWire(this.indirect, operands.length);
100
100
  const [srcOffset, dstOffset] = addressing.resolve(operands, memory);
101
101
  TaggedMemory.checkIsIntegralTag(memory.getTag(srcOffset));
102
102
  const value = memory.getAs(srcOffset);
@@ -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;IAgBxD,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;IAiBxD,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"}