@aztec/simulator 0.0.1-commit.c7c42ec → 0.0.1-commit.d1f2d6c
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.
- package/README.md +2 -0
- package/dest/common/errors.d.ts +7 -1
- package/dest/common/errors.d.ts.map +1 -1
- package/dest/private/circuit_recording/circuit_recorder.d.ts +1 -1
- package/dest/private/circuit_recording/circuit_recorder.d.ts.map +1 -1
- package/dest/private/circuit_recording/circuit_recorder.js +15 -14
- package/dest/public/avm/avm_memory_types.d.ts +1 -1
- package/dest/public/avm/avm_memory_types.d.ts.map +1 -1
- package/dest/public/avm/avm_memory_types.js +3 -0
- package/dest/public/avm/opcodes/accrued_substate.d.ts +15 -15
- package/dest/public/avm/opcodes/accrued_substate.d.ts.map +1 -1
- package/dest/public/avm/opcodes/accrued_substate.js +29 -29
- package/dest/public/avm/opcodes/arithmetic.d.ts +8 -8
- package/dest/public/avm/opcodes/arithmetic.d.ts.map +1 -1
- package/dest/public/avm/opcodes/arithmetic.js +1 -1
- package/dest/public/avm/opcodes/bitwise.d.ts +7 -7
- package/dest/public/avm/opcodes/bitwise.d.ts.map +1 -1
- package/dest/public/avm/opcodes/bitwise.js +5 -5
- package/dest/public/avm/opcodes/comparators.d.ts +4 -4
- package/dest/public/avm/opcodes/comparators.d.ts.map +1 -1
- package/dest/public/avm/opcodes/comparators.js +1 -1
- package/dest/public/avm/opcodes/contract.d.ts +3 -3
- package/dest/public/avm/opcodes/contract.d.ts.map +1 -1
- package/dest/public/avm/opcodes/contract.js +8 -8
- package/dest/public/avm/opcodes/control_flow.d.ts +3 -3
- package/dest/public/avm/opcodes/control_flow.d.ts.map +1 -1
- package/dest/public/avm/opcodes/control_flow.js +4 -4
- package/dest/public/avm/opcodes/conversion.d.ts +3 -3
- package/dest/public/avm/opcodes/conversion.d.ts.map +1 -1
- package/dest/public/avm/opcodes/conversion.js +4 -4
- package/dest/public/avm/opcodes/ec_add.d.ts +4 -4
- package/dest/public/avm/opcodes/ec_add.d.ts.map +1 -1
- package/dest/public/avm/opcodes/ec_add.js +15 -6
- package/dest/public/avm/opcodes/environment_getters.d.ts +5 -5
- package/dest/public/avm/opcodes/environment_getters.d.ts.map +1 -1
- package/dest/public/avm/opcodes/environment_getters.js +6 -6
- package/dest/public/avm/opcodes/external_calls.d.ts +9 -9
- package/dest/public/avm/opcodes/external_calls.d.ts.map +1 -1
- package/dest/public/avm/opcodes/external_calls.js +17 -16
- package/dest/public/avm/opcodes/hashing.d.ts +8 -8
- package/dest/public/avm/opcodes/hashing.d.ts.map +1 -1
- package/dest/public/avm/opcodes/hashing.js +12 -12
- package/dest/public/avm/opcodes/instruction_impl.d.ts +4 -4
- package/dest/public/avm/opcodes/instruction_impl.d.ts.map +1 -1
- package/dest/public/avm/opcodes/instruction_impl.js +4 -4
- package/dest/public/avm/opcodes/memory.d.ts +14 -14
- package/dest/public/avm/opcodes/memory.d.ts.map +1 -1
- package/dest/public/avm/opcodes/memory.js +24 -24
- package/dest/public/avm/opcodes/misc.d.ts +3 -3
- package/dest/public/avm/opcodes/misc.d.ts.map +1 -1
- package/dest/public/avm/opcodes/misc.js +4 -4
- package/dest/public/avm/opcodes/storage.d.ts +16 -15
- package/dest/public/avm/opcodes/storage.d.ts.map +1 -1
- package/dest/public/avm/opcodes/storage.js +34 -24
- package/dest/public/executor_metrics.d.ts +1 -1
- package/dest/public/executor_metrics.d.ts.map +1 -1
- package/dest/public/executor_metrics.js +8 -34
- package/dest/public/fixtures/bulk_test.d.ts +3 -3
- package/dest/public/fixtures/bulk_test.d.ts.map +1 -1
- package/dest/public/fixtures/bulk_test.js +1 -17
- package/dest/public/fixtures/custom_bytecode_tests.d.ts +11 -11
- package/dest/public/fixtures/custom_bytecode_tests.d.ts.map +1 -1
- package/dest/public/fixtures/custom_bytecode_tests.js +18 -18
- package/dest/public/fixtures/minimal_public_tx.js +2 -2
- package/dest/public/fixtures/opcode_spammer.d.ts +1 -1
- package/dest/public/fixtures/opcode_spammer.d.ts.map +1 -1
- package/dest/public/fixtures/opcode_spammer.js +92 -80
- package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts +21 -7
- package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts.map +1 -1
- package/dest/public/fuzzing/avm_fuzzer_simulator.js +42 -10
- package/dest/public/fuzzing/avm_simulator_bin.js +29 -11
- package/dest/public/hinting_db_sources.js +3 -1
- package/dest/public/public_processor/guarded_merkle_tree.js +3 -1
- package/dest/public/public_processor/public_processor.d.ts +2 -2
- package/dest/public/public_processor/public_processor.d.ts.map +1 -1
- package/dest/public/public_processor/public_processor.js +402 -21
- package/dest/public/public_processor/public_processor_metrics.d.ts +1 -1
- package/dest/public/public_processor/public_processor_metrics.d.ts.map +1 -1
- package/dest/public/public_processor/public_processor_metrics.js +12 -45
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts +1 -1
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator.js +2 -1
- package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts +1 -1
- package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +4 -3
- package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/public_tx_simulator.js +5 -3
- package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.js +395 -19
- package/dest/public/side_effect_trace.d.ts +2 -1
- package/dest/public/side_effect_trace.d.ts.map +1 -1
- package/dest/public/state_manager/state_manager.d.ts +1 -1
- package/dest/public/state_manager/state_manager.d.ts.map +1 -1
- package/dest/public/state_manager/state_manager.js +2 -2
- package/package.json +17 -17
- package/src/private/circuit_recording/circuit_recorder.ts +16 -15
- package/src/public/avm/avm_memory_types.ts +4 -0
- package/src/public/avm/opcodes/accrued_substate.ts +15 -15
- package/src/public/avm/opcodes/arithmetic.ts +1 -1
- package/src/public/avm/opcodes/bitwise.ts +3 -3
- package/src/public/avm/opcodes/comparators.ts +1 -1
- package/src/public/avm/opcodes/contract.ts +4 -7
- package/src/public/avm/opcodes/control_flow.ts +2 -2
- package/src/public/avm/opcodes/conversion.ts +3 -3
- package/src/public/avm/opcodes/ec_add.ts +13 -4
- package/src/public/avm/opcodes/environment_getters.ts +7 -7
- package/src/public/avm/opcodes/external_calls.ts +10 -9
- package/src/public/avm/opcodes/hashing.ts +6 -6
- package/src/public/avm/opcodes/instruction_impl.ts +2 -2
- package/src/public/avm/opcodes/memory.ts +18 -18
- package/src/public/avm/opcodes/misc.ts +2 -2
- package/src/public/avm/opcodes/storage.ts +30 -22
- package/src/public/executor_metrics.ts +7 -34
- package/src/public/fixtures/bulk_test.ts +2 -2
- package/src/public/fixtures/custom_bytecode_tests.ts +27 -18
- package/src/public/fixtures/minimal_public_tx.ts +2 -2
- package/src/public/fixtures/opcode_spammer.ts +197 -81
- package/src/public/fuzzing/avm_fuzzer_simulator.ts +60 -12
- package/src/public/fuzzing/avm_simulator_bin.ts +43 -8
- package/src/public/public_processor/public_processor.ts +3 -2
- package/src/public/public_processor/public_processor_metrics.ts +11 -45
- package/src/public/public_tx_simulator/cpp_public_tx_simulator.ts +9 -1
- package/src/public/public_tx_simulator/public_tx_simulator.ts +4 -2
- package/src/public/state_manager/state_manager.ts +2 -16
|
@@ -3,7 +3,7 @@ import { Opcode, OperandType } from '../serialization/instruction_serialization.
|
|
|
3
3
|
import { Addressing } from './addressing_mode.js';
|
|
4
4
|
import { Instruction } from './instruction.js';
|
|
5
5
|
class ExternalCall extends Instruction {
|
|
6
|
-
|
|
6
|
+
addressingMode;
|
|
7
7
|
l2GasOffset;
|
|
8
8
|
daGasOffset;
|
|
9
9
|
addrOffset;
|
|
@@ -19,12 +19,12 @@ class ExternalCall extends Instruction {
|
|
|
19
19
|
OperandType.UINT16,
|
|
20
20
|
OperandType.UINT16
|
|
21
21
|
];
|
|
22
|
-
constructor(
|
|
23
|
-
super(), this.
|
|
22
|
+
constructor(addressingMode, l2GasOffset, daGasOffset, addrOffset, argsSizeOffset, argsOffset){
|
|
23
|
+
super(), this.addressingMode = addressingMode, this.l2GasOffset = l2GasOffset, this.daGasOffset = daGasOffset, this.addrOffset = addrOffset, this.argsSizeOffset = argsSizeOffset, this.argsOffset = argsOffset;
|
|
24
24
|
}
|
|
25
25
|
async execute(context) {
|
|
26
26
|
const memory = context.machineState.memory;
|
|
27
|
-
const addressing = Addressing.fromWire(this.
|
|
27
|
+
const addressing = Addressing.fromWire(this.addressingMode);
|
|
28
28
|
context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
|
|
29
29
|
const operands = [
|
|
30
30
|
this.l2GasOffset,
|
|
@@ -39,6 +39,7 @@ class ExternalCall extends Instruction {
|
|
|
39
39
|
memory.checkTag(TypeTag.FIELD, addrOffset);
|
|
40
40
|
memory.checkTag(TypeTag.UINT32, argsSizeOffset);
|
|
41
41
|
const calldataSize = memory.get(argsSizeOffset).toNumber();
|
|
42
|
+
// This is a DOS vector. CalldataSize is chosen by the bytecode, and can be arbitrarily large leading to a OOM here.
|
|
42
43
|
const calldata = memory.getSlice(argsOffset, calldataSize).map((f)=>f.toFr());
|
|
43
44
|
const callAddress = memory.getAs(addrOffset);
|
|
44
45
|
// If we are already in a static call, we propagate the environment.
|
|
@@ -102,7 +103,7 @@ export class StaticCall extends ExternalCall {
|
|
|
102
103
|
}
|
|
103
104
|
}
|
|
104
105
|
export class SuccessCopy extends Instruction {
|
|
105
|
-
|
|
106
|
+
addressingMode;
|
|
106
107
|
dstOffset;
|
|
107
108
|
static type = 'SUCCESSCOPY';
|
|
108
109
|
static opcode = Opcode.SUCCESSCOPY;
|
|
@@ -112,12 +113,12 @@ export class SuccessCopy extends Instruction {
|
|
|
112
113
|
OperandType.UINT8,
|
|
113
114
|
OperandType.UINT16
|
|
114
115
|
];
|
|
115
|
-
constructor(
|
|
116
|
-
super(), this.
|
|
116
|
+
constructor(addressingMode, dstOffset){
|
|
117
|
+
super(), this.addressingMode = addressingMode, this.dstOffset = dstOffset;
|
|
117
118
|
}
|
|
118
119
|
async execute(context) {
|
|
119
120
|
const memory = context.machineState.memory;
|
|
120
|
-
const addressing = Addressing.fromWire(this.
|
|
121
|
+
const addressing = Addressing.fromWire(this.addressingMode);
|
|
121
122
|
context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
|
|
122
123
|
const operands = [
|
|
123
124
|
this.dstOffset
|
|
@@ -130,7 +131,7 @@ export class SuccessCopy extends Instruction {
|
|
|
130
131
|
}
|
|
131
132
|
}
|
|
132
133
|
export class Return extends Instruction {
|
|
133
|
-
|
|
134
|
+
addressingMode;
|
|
134
135
|
returnSizeOffset;
|
|
135
136
|
returnOffset;
|
|
136
137
|
static type = 'RETURN';
|
|
@@ -142,12 +143,12 @@ export class Return extends Instruction {
|
|
|
142
143
|
OperandType.UINT16,
|
|
143
144
|
OperandType.UINT16
|
|
144
145
|
];
|
|
145
|
-
constructor(
|
|
146
|
-
super(), this.
|
|
146
|
+
constructor(addressingMode, returnSizeOffset, returnOffset){
|
|
147
|
+
super(), this.addressingMode = addressingMode, this.returnSizeOffset = returnSizeOffset, this.returnOffset = returnOffset;
|
|
147
148
|
}
|
|
148
149
|
async execute(context) {
|
|
149
150
|
const memory = context.machineState.memory;
|
|
150
|
-
const addressing = Addressing.fromWire(this.
|
|
151
|
+
const addressing = Addressing.fromWire(this.addressingMode);
|
|
151
152
|
context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
|
|
152
153
|
const operands = [
|
|
153
154
|
this.returnSizeOffset,
|
|
@@ -164,7 +165,7 @@ export class Return extends Instruction {
|
|
|
164
165
|
}
|
|
165
166
|
}
|
|
166
167
|
export class Revert extends Instruction {
|
|
167
|
-
|
|
168
|
+
addressingMode;
|
|
168
169
|
retSizeOffset;
|
|
169
170
|
returnOffset;
|
|
170
171
|
static type = 'REVERT';
|
|
@@ -181,12 +182,12 @@ export class Revert extends Instruction {
|
|
|
181
182
|
OperandType.UINT16,
|
|
182
183
|
OperandType.UINT16
|
|
183
184
|
];
|
|
184
|
-
constructor(
|
|
185
|
-
super(), this.
|
|
185
|
+
constructor(addressingMode, retSizeOffset, returnOffset){
|
|
186
|
+
super(), this.addressingMode = addressingMode, this.retSizeOffset = retSizeOffset, this.returnOffset = returnOffset;
|
|
186
187
|
}
|
|
187
188
|
async execute(context) {
|
|
188
189
|
const memory = context.machineState.memory;
|
|
189
|
-
const addressing = Addressing.fromWire(this.
|
|
190
|
+
const addressing = Addressing.fromWire(this.addressingMode);
|
|
190
191
|
context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
|
|
191
192
|
const operands = [
|
|
192
193
|
this.retSizeOffset,
|
|
@@ -2,35 +2,35 @@ import type { AvmContext } from '../avm_context.js';
|
|
|
2
2
|
import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
|
|
3
3
|
import { Instruction } from './instruction.js';
|
|
4
4
|
export declare class Poseidon2 extends Instruction {
|
|
5
|
-
private
|
|
5
|
+
private addressingMode;
|
|
6
6
|
private inputStateOffset;
|
|
7
7
|
private outputStateOffset;
|
|
8
8
|
static type: string;
|
|
9
9
|
static readonly opcode: Opcode;
|
|
10
|
-
static readonly stateSize
|
|
10
|
+
static readonly stateSize = 4;
|
|
11
11
|
static readonly wireFormat: OperandType[];
|
|
12
|
-
constructor(
|
|
12
|
+
constructor(addressingMode: number, inputStateOffset: number, outputStateOffset: number);
|
|
13
13
|
execute(context: AvmContext): Promise<void>;
|
|
14
14
|
}
|
|
15
15
|
export declare class KeccakF1600 extends Instruction {
|
|
16
|
-
private
|
|
16
|
+
private addressingMode;
|
|
17
17
|
private dstOffset;
|
|
18
18
|
private inputOffset;
|
|
19
19
|
static type: string;
|
|
20
20
|
static readonly opcode: Opcode;
|
|
21
21
|
static readonly wireFormat: OperandType[];
|
|
22
|
-
constructor(
|
|
22
|
+
constructor(addressingMode: number, dstOffset: number, inputOffset: number);
|
|
23
23
|
execute(context: AvmContext): Promise<void>;
|
|
24
24
|
}
|
|
25
25
|
export declare class Sha256Compression extends Instruction {
|
|
26
|
-
private
|
|
26
|
+
private addressingMode;
|
|
27
27
|
private outputOffset;
|
|
28
28
|
private stateOffset;
|
|
29
29
|
private inputsOffset;
|
|
30
30
|
static type: string;
|
|
31
31
|
static readonly opcode: Opcode;
|
|
32
32
|
static readonly wireFormat: OperandType[];
|
|
33
|
-
constructor(
|
|
33
|
+
constructor(addressingMode: number, outputOffset: number, stateOffset: number, inputsOffset: number);
|
|
34
34
|
execute(context: AvmContext): Promise<void>;
|
|
35
35
|
}
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzaGluZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3B1YmxpYy9hdm0vb3Bjb2Rlcy9oYXNoaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXBELE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFFcEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRS9DLHFCQUFhLFNBQVUsU0FBUSxXQUFXO0lBY3RDLE9BQU8sQ0FBQyxjQUFjO0lBQ3RCLE9BQU8sQ0FBQyxnQkFBZ0I7SUFDeEIsT0FBTyxDQUFDLGlCQUFpQjtJQWYzQixNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBZTtJQUNsQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQW9CO0lBQ2xELE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxLQUFLO0lBRzlCLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSxDQUt2QztJQUVGLFlBQ1UsY0FBYyxFQUFFLE1BQU0sRUFDdEIsZ0JBQWdCLEVBQUUsTUFBTSxFQUN4QixpQkFBaUIsRUFBRSxNQUFNLEVBR2xDO0lBRVksT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQW9CdkQ7Q0FDRjtBQUVELHFCQUFhLFdBQVksU0FBUSxXQUFXO0lBYXhDLE9BQU8sQ0FBQyxjQUFjO0lBQ3RCLE9BQU8sQ0FBQyxTQUFTO0lBQ2pCLE9BQU8sQ0FBQyxXQUFXO0lBZHJCLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFpQjtJQUNwQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQXNCO0lBR3BELE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSxDQUt2QztJQUVGLFlBQ1UsY0FBYyxFQUFFLE1BQU0sRUFDdEIsU0FBUyxFQUFFLE1BQU0sRUFDakIsV0FBVyxFQUFFLE1BQU0sRUFHNUI7SUFHWSxPQUFPLENBQUMsT0FBTyxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBbUJ2RDtDQUNGO0FBRUQscUJBQWEsaUJBQWtCLFNBQVEsV0FBVztJQWM5QyxPQUFPLENBQUMsY0FBYztJQUN0QixPQUFPLENBQUMsWUFBWTtJQUNwQixPQUFPLENBQUMsV0FBVztJQUNuQixPQUFPLENBQUMsWUFBWTtJQWhCdEIsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQXVCO0lBQzFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBNEI7SUFHMUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLENBTXZDO0lBRUYsWUFDVSxjQUFjLEVBQUUsTUFBTSxFQUN0QixZQUFZLEVBQUUsTUFBTSxFQUNwQixXQUFXLEVBQUUsTUFBTSxFQUNuQixZQUFZLEVBQUUsTUFBTSxFQUc3QjtJQUVZLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0E4QnZEO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hashing.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/hashing.ts"],"names":[],"mappings":"AAIA,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,SAAU,SAAQ,WAAW;IActC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"hashing.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/hashing.ts"],"names":[],"mappings":"AAIA,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,SAAU,SAAQ,WAAW;IActC,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,iBAAiB;IAf3B,MAAM,CAAC,IAAI,EAAE,MAAM,CAAe;IAClC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAoB;IAClD,MAAM,CAAC,QAAQ,CAAC,SAAS,KAAK;IAG9B,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAKvC;IAEF,YACU,cAAc,EAAE,MAAM,EACtB,gBAAgB,EAAE,MAAM,EACxB,iBAAiB,EAAE,MAAM,EAGlC;IAEY,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBvD;CACF;AAED,qBAAa,WAAY,SAAQ,WAAW;IAaxC,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,WAAW;IAdrB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAiB;IACpC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAsB;IAGpD,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAKvC;IAEF,YACU,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EAG5B;IAGY,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBvD;CACF;AAED,qBAAa,iBAAkB,SAAQ,WAAW;IAc9C,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,YAAY;IAhBtB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAuB;IAC1C,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAA4B;IAG1D,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAMvC;IAEF,YACU,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EAG7B;IAEY,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA8BvD;CACF"}
|
|
@@ -6,7 +6,7 @@ import { Opcode, OperandType } from '../serialization/instruction_serialization.
|
|
|
6
6
|
import { Addressing } from './addressing_mode.js';
|
|
7
7
|
import { Instruction } from './instruction.js';
|
|
8
8
|
export class Poseidon2 extends Instruction {
|
|
9
|
-
|
|
9
|
+
addressingMode;
|
|
10
10
|
inputStateOffset;
|
|
11
11
|
outputStateOffset;
|
|
12
12
|
static type = 'POSEIDON2';
|
|
@@ -19,12 +19,12 @@ export class Poseidon2 extends Instruction {
|
|
|
19
19
|
OperandType.UINT16,
|
|
20
20
|
OperandType.UINT16
|
|
21
21
|
];
|
|
22
|
-
constructor(
|
|
23
|
-
super(), this.
|
|
22
|
+
constructor(addressingMode, inputStateOffset, outputStateOffset){
|
|
23
|
+
super(), this.addressingMode = addressingMode, this.inputStateOffset = inputStateOffset, this.outputStateOffset = outputStateOffset;
|
|
24
24
|
}
|
|
25
25
|
async execute(context) {
|
|
26
26
|
const memory = context.machineState.memory;
|
|
27
|
-
const addressing = Addressing.fromWire(this.
|
|
27
|
+
const addressing = Addressing.fromWire(this.addressingMode);
|
|
28
28
|
context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
|
|
29
29
|
const operands = [
|
|
30
30
|
this.inputStateOffset,
|
|
@@ -38,7 +38,7 @@ export class Poseidon2 extends Instruction {
|
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
export class KeccakF1600 extends Instruction {
|
|
41
|
-
|
|
41
|
+
addressingMode;
|
|
42
42
|
dstOffset;
|
|
43
43
|
inputOffset;
|
|
44
44
|
static type = 'KECCAKF1600';
|
|
@@ -50,14 +50,14 @@ export class KeccakF1600 extends Instruction {
|
|
|
50
50
|
OperandType.UINT16,
|
|
51
51
|
OperandType.UINT16
|
|
52
52
|
];
|
|
53
|
-
constructor(
|
|
54
|
-
super(), this.
|
|
53
|
+
constructor(addressingMode, dstOffset, inputOffset){
|
|
54
|
+
super(), this.addressingMode = addressingMode, this.dstOffset = dstOffset, this.inputOffset = inputOffset;
|
|
55
55
|
}
|
|
56
56
|
// pub fn keccakf1600(input: [u64; 25]) -> [u64; 25]
|
|
57
57
|
async execute(context) {
|
|
58
58
|
const inputSize = 25;
|
|
59
59
|
const memory = context.machineState.memory;
|
|
60
|
-
const addressing = Addressing.fromWire(this.
|
|
60
|
+
const addressing = Addressing.fromWire(this.addressingMode);
|
|
61
61
|
context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
|
|
62
62
|
const operands = [
|
|
63
63
|
this.dstOffset,
|
|
@@ -72,7 +72,7 @@ export class KeccakF1600 extends Instruction {
|
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
74
|
export class Sha256Compression extends Instruction {
|
|
75
|
-
|
|
75
|
+
addressingMode;
|
|
76
76
|
outputOffset;
|
|
77
77
|
stateOffset;
|
|
78
78
|
inputsOffset;
|
|
@@ -86,14 +86,14 @@ export class Sha256Compression extends Instruction {
|
|
|
86
86
|
OperandType.UINT16,
|
|
87
87
|
OperandType.UINT16
|
|
88
88
|
];
|
|
89
|
-
constructor(
|
|
90
|
-
super(), this.
|
|
89
|
+
constructor(addressingMode, outputOffset, stateOffset, inputsOffset){
|
|
90
|
+
super(), this.addressingMode = addressingMode, this.outputOffset = outputOffset, this.stateOffset = stateOffset, this.inputsOffset = inputsOffset;
|
|
91
91
|
}
|
|
92
92
|
async execute(context) {
|
|
93
93
|
const STATE_SIZE = 8;
|
|
94
94
|
const INPUTS_SIZE = 16;
|
|
95
95
|
const memory = context.machineState.memory;
|
|
96
|
-
const addressing = Addressing.fromWire(this.
|
|
96
|
+
const addressing = Addressing.fromWire(this.addressingMode);
|
|
97
97
|
context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
|
|
98
98
|
const operands = [
|
|
99
99
|
this.outputOffset,
|
|
@@ -5,15 +5,15 @@ export declare const ThreeOperandWireFormat8: OperandType[];
|
|
|
5
5
|
export declare const ThreeOperandWireFormat16: OperandType[];
|
|
6
6
|
/**
|
|
7
7
|
* Covers (de)serialization for an instruction with:
|
|
8
|
-
*
|
|
8
|
+
* addressing mode, inTag, and three operands.
|
|
9
9
|
*/
|
|
10
10
|
export declare abstract class ThreeOperandInstruction extends Instruction {
|
|
11
|
-
protected
|
|
11
|
+
protected addressingMode: number;
|
|
12
12
|
protected aOffset: number;
|
|
13
13
|
protected bOffset: number;
|
|
14
14
|
protected dstOffset: number;
|
|
15
15
|
static readonly wireFormat8: OperandType[];
|
|
16
16
|
static readonly wireFormat16: OperandType[];
|
|
17
|
-
constructor(
|
|
17
|
+
constructor(addressingMode: number, aOffset: number, bOffset: number, dstOffset: number);
|
|
18
18
|
}
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1Y3Rpb25faW1wbC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3B1YmxpYy9hdm0vb3Bjb2Rlcy9pbnN0cnVjdGlvbl9pbXBsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFL0MscUZBQXFGO0FBQ3JGLGVBQU8sTUFBTSx1QkFBdUIsZUFNbkMsQ0FBQztBQUNGLGVBQU8sTUFBTSx3QkFBd0IsZUFNcEMsQ0FBQztBQUVGOzs7R0FHRztBQUNILDhCQUFzQix1QkFBd0IsU0FBUSxXQUFXO0lBSzdELFNBQVMsQ0FBQyxjQUFjLEVBQUUsTUFBTTtJQUNoQyxTQUFTLENBQUMsT0FBTyxFQUFFLE1BQU07SUFDekIsU0FBUyxDQUFDLE9BQU8sRUFBRSxNQUFNO0lBQ3pCLFNBQVMsQ0FBQyxTQUFTLEVBQUUsTUFBTTtJQVA3QixNQUFNLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsQ0FBMkI7SUFDckUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLENBQTRCO0lBRXZFLFlBQ1ksY0FBYyxFQUFFLE1BQU0sRUFDdEIsT0FBTyxFQUFFLE1BQU0sRUFDZixPQUFPLEVBQUUsTUFBTSxFQUNmLFNBQVMsRUFBRSxNQUFNLEVBRzVCO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instruction_impl.d.ts","sourceRoot":"","sources":["../../../../src/public/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,eAMnC,CAAC;AACF,eAAO,MAAM,wBAAwB,eAMpC,CAAC;AAEF;;;GAGG;AACH,8BAAsB,uBAAwB,SAAQ,WAAW;IAK7D,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"instruction_impl.d.ts","sourceRoot":"","sources":["../../../../src/public/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,eAMnC,CAAC;AACF,eAAO,MAAM,wBAAwB,eAMpC,CAAC;AAEF;;;GAGG;AACH,8BAAsB,uBAAwB,SAAQ,WAAW;IAK7D,SAAS,CAAC,cAAc,EAAE,MAAM;IAChC,SAAS,CAAC,OAAO,EAAE,MAAM;IACzB,SAAS,CAAC,OAAO,EAAE,MAAM;IACzB,SAAS,CAAC,SAAS,EAAE,MAAM;IAP7B,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,CAA2B;IACrE,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,WAAW,EAAE,CAA4B;IAEvE,YACY,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EAG5B;CACF"}
|
|
@@ -16,15 +16,15 @@ export const ThreeOperandWireFormat16 = [
|
|
|
16
16
|
];
|
|
17
17
|
/**
|
|
18
18
|
* Covers (de)serialization for an instruction with:
|
|
19
|
-
*
|
|
19
|
+
* addressing mode, inTag, and three operands.
|
|
20
20
|
*/ export class ThreeOperandInstruction extends Instruction {
|
|
21
|
-
|
|
21
|
+
addressingMode;
|
|
22
22
|
aOffset;
|
|
23
23
|
bOffset;
|
|
24
24
|
dstOffset;
|
|
25
25
|
static wireFormat8 = ThreeOperandWireFormat8;
|
|
26
26
|
static wireFormat16 = ThreeOperandWireFormat16;
|
|
27
|
-
constructor(
|
|
28
|
-
super(), this.
|
|
27
|
+
constructor(addressingMode, aOffset, bOffset, dstOffset){
|
|
28
|
+
super(), this.addressingMode = addressingMode, this.aOffset = aOffset, this.bOffset = bOffset, this.dstOffset = dstOffset;
|
|
29
29
|
}
|
|
30
30
|
}
|
|
@@ -2,7 +2,7 @@ import type { AvmContext } from '../avm_context.js';
|
|
|
2
2
|
import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
|
|
3
3
|
import { Instruction } from './instruction.js';
|
|
4
4
|
export declare class Set extends Instruction {
|
|
5
|
-
private
|
|
5
|
+
private addressingMode;
|
|
6
6
|
private dstOffset;
|
|
7
7
|
private inTag;
|
|
8
8
|
private value;
|
|
@@ -14,61 +14,61 @@ export declare class Set extends Instruction {
|
|
|
14
14
|
static readonly wireFormat64: OperandType[];
|
|
15
15
|
static readonly wireFormat128: OperandType[];
|
|
16
16
|
static readonly wireFormatFF: OperandType[];
|
|
17
|
-
constructor(
|
|
17
|
+
constructor(addressingMode: number, dstOffset: number, inTag: number, value: bigint | number);
|
|
18
18
|
execute(context: AvmContext): Promise<void>;
|
|
19
19
|
}
|
|
20
20
|
export declare class Cast extends Instruction {
|
|
21
|
-
private
|
|
21
|
+
private addressingMode;
|
|
22
22
|
private srcOffset;
|
|
23
23
|
private dstOffset;
|
|
24
24
|
private dstTag;
|
|
25
25
|
static readonly type: string;
|
|
26
|
-
static readonly opcode
|
|
26
|
+
static readonly opcode = Opcode.CAST_8;
|
|
27
27
|
static readonly wireFormat8: OperandType[];
|
|
28
28
|
static readonly wireFormat16: OperandType[];
|
|
29
|
-
constructor(
|
|
29
|
+
constructor(addressingMode: number, srcOffset: number, dstOffset: number, dstTag: number);
|
|
30
30
|
execute(context: AvmContext): Promise<void>;
|
|
31
31
|
}
|
|
32
32
|
export declare class Mov extends Instruction {
|
|
33
|
-
private
|
|
33
|
+
private addressingMode;
|
|
34
34
|
private srcOffset;
|
|
35
35
|
private dstOffset;
|
|
36
36
|
static readonly type: string;
|
|
37
37
|
static readonly opcode: Opcode;
|
|
38
38
|
static readonly wireFormat8: OperandType[];
|
|
39
39
|
static readonly wireFormat16: OperandType[];
|
|
40
|
-
constructor(
|
|
40
|
+
constructor(addressingMode: number, srcOffset: number, dstOffset: number);
|
|
41
41
|
execute(context: AvmContext): Promise<void>;
|
|
42
42
|
}
|
|
43
43
|
export declare class CalldataCopy extends Instruction {
|
|
44
|
-
private
|
|
44
|
+
private addressingMode;
|
|
45
45
|
private copySizeOffset;
|
|
46
46
|
private cdStartOffset;
|
|
47
47
|
private dstOffset;
|
|
48
48
|
static readonly type: string;
|
|
49
49
|
static readonly opcode: Opcode;
|
|
50
50
|
static readonly wireFormat: OperandType[];
|
|
51
|
-
constructor(
|
|
51
|
+
constructor(addressingMode: number, copySizeOffset: number, cdStartOffset: number, dstOffset: number);
|
|
52
52
|
execute(context: AvmContext): Promise<void>;
|
|
53
53
|
}
|
|
54
54
|
export declare class ReturndataSize extends Instruction {
|
|
55
|
-
private
|
|
55
|
+
private addressingMode;
|
|
56
56
|
private dstOffset;
|
|
57
57
|
static readonly type: string;
|
|
58
58
|
static readonly opcode: Opcode;
|
|
59
59
|
static readonly wireFormat: OperandType[];
|
|
60
|
-
constructor(
|
|
60
|
+
constructor(addressingMode: number, dstOffset: number);
|
|
61
61
|
execute(context: AvmContext): Promise<void>;
|
|
62
62
|
}
|
|
63
63
|
export declare class ReturndataCopy extends Instruction {
|
|
64
|
-
private
|
|
64
|
+
private addressingMode;
|
|
65
65
|
private copySizeOffset;
|
|
66
66
|
private rdStartOffset;
|
|
67
67
|
private dstOffset;
|
|
68
68
|
static readonly type: string;
|
|
69
69
|
static readonly opcode: Opcode;
|
|
70
70
|
static readonly wireFormat: OperandType[];
|
|
71
|
-
constructor(
|
|
71
|
+
constructor(addressingMode: number, copySizeOffset: number, rdStartOffset: number, dstOffset: number);
|
|
72
72
|
execute(context: AvmContext): Promise<void>;
|
|
73
73
|
}
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHVibGljL2F2bS9vcGNvZGVzL21lbW9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBRXBGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUvQyxxQkFBYSxHQUFJLFNBQVEsV0FBVztJQWlEaEMsT0FBTyxDQUFDLGNBQWM7SUFDdEIsT0FBTyxDQUFDLFNBQVM7SUFDakIsT0FBTyxDQUFDLEtBQUs7SUFDYixPQUFPLENBQUMsS0FBSztJQW5EZixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLENBQVM7SUFFckMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFnQjtJQUU5QyxnQkFBdUIsV0FBVyxFQUFFLFdBQVcsRUFBRSxDQU0vQztJQUNGLGdCQUF1QixZQUFZLEVBQUUsV0FBVyxFQUFFLENBTWhEO0lBQ0YsZ0JBQXVCLFlBQVksRUFBRSxXQUFXLEVBQUUsQ0FNaEQ7SUFDRixnQkFBdUIsWUFBWSxFQUFFLFdBQVcsRUFBRSxDQU1oRDtJQUNGLGdCQUF1QixhQUFhLEVBQUUsV0FBVyxFQUFFLENBTWpEO0lBQ0YsZ0JBQXVCLFlBQVksRUFBRSxXQUFXLEVBQUUsQ0FNaEQ7SUFFRixZQUNVLGNBQWMsRUFBRSxNQUFNLEVBQ3RCLFNBQVMsRUFBRSxNQUFNLEVBQ2pCLEtBQUssRUFBRSxNQUFNLEVBQ2IsS0FBSyxFQUFFLE1BQU0sR0FBRyxNQUFNLEVBSy9CO0lBRVksT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWN2RDtDQUNGO0FBRUQscUJBQWEsSUFBSyxTQUFRLFdB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/memory.ts"],"names":[],"mappings":"AAIA,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,
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/memory.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import { Opcode, OperandType } from '../serialization/instruction_serialization.
|
|
|
5
5
|
import { Addressing } from './addressing_mode.js';
|
|
6
6
|
import { Instruction } from './instruction.js';
|
|
7
7
|
export class Set extends Instruction {
|
|
8
|
-
|
|
8
|
+
addressingMode;
|
|
9
9
|
dstOffset;
|
|
10
10
|
inTag;
|
|
11
11
|
value;
|
|
@@ -54,8 +54,8 @@ export class Set extends Instruction {
|
|
|
54
54
|
OperandType.TAG,
|
|
55
55
|
OperandType.FF
|
|
56
56
|
];
|
|
57
|
-
constructor(
|
|
58
|
-
super(), this.
|
|
57
|
+
constructor(addressingMode, dstOffset, inTag, value){
|
|
58
|
+
super(), this.addressingMode = addressingMode, this.dstOffset = dstOffset, this.inTag = inTag, this.value = value;
|
|
59
59
|
assert(this.value >= 0, `Value ${this.value} is negative`);
|
|
60
60
|
assert(this.value < Fr.MODULUS, `Value ${this.value} is larger than Fr.MODULUS`);
|
|
61
61
|
}
|
|
@@ -63,7 +63,7 @@ export class Set extends Instruction {
|
|
|
63
63
|
// Constructor ensured that this.inTag is a valid tag
|
|
64
64
|
const res = TaggedMemory.buildFromTagTruncating(this.value, this.inTag);
|
|
65
65
|
const memory = context.machineState.memory;
|
|
66
|
-
const addressing = Addressing.fromWire(this.
|
|
66
|
+
const addressing = Addressing.fromWire(this.addressingMode);
|
|
67
67
|
context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
|
|
68
68
|
const operands = [
|
|
69
69
|
this.dstOffset
|
|
@@ -73,7 +73,7 @@ export class Set extends Instruction {
|
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
75
|
export class Cast extends Instruction {
|
|
76
|
-
|
|
76
|
+
addressingMode;
|
|
77
77
|
srcOffset;
|
|
78
78
|
dstOffset;
|
|
79
79
|
dstTag;
|
|
@@ -93,12 +93,12 @@ export class Cast extends Instruction {
|
|
|
93
93
|
OperandType.UINT16,
|
|
94
94
|
OperandType.TAG
|
|
95
95
|
];
|
|
96
|
-
constructor(
|
|
97
|
-
super(), this.
|
|
96
|
+
constructor(addressingMode, srcOffset, dstOffset, dstTag){
|
|
97
|
+
super(), this.addressingMode = addressingMode, this.srcOffset = srcOffset, this.dstOffset = dstOffset, this.dstTag = dstTag;
|
|
98
98
|
}
|
|
99
99
|
async execute(context) {
|
|
100
100
|
const memory = context.machineState.memory;
|
|
101
|
-
const addressing = Addressing.fromWire(this.
|
|
101
|
+
const addressing = Addressing.fromWire(this.addressingMode);
|
|
102
102
|
context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
|
|
103
103
|
const operands = [
|
|
104
104
|
this.srcOffset,
|
|
@@ -112,7 +112,7 @@ export class Cast extends Instruction {
|
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
114
|
export class Mov extends Instruction {
|
|
115
|
-
|
|
115
|
+
addressingMode;
|
|
116
116
|
srcOffset;
|
|
117
117
|
dstOffset;
|
|
118
118
|
static type = 'MOV';
|
|
@@ -130,12 +130,12 @@ export class Mov extends Instruction {
|
|
|
130
130
|
OperandType.UINT16,
|
|
131
131
|
OperandType.UINT16
|
|
132
132
|
];
|
|
133
|
-
constructor(
|
|
134
|
-
super(), this.
|
|
133
|
+
constructor(addressingMode, srcOffset, dstOffset){
|
|
134
|
+
super(), this.addressingMode = addressingMode, this.srcOffset = srcOffset, this.dstOffset = dstOffset;
|
|
135
135
|
}
|
|
136
136
|
async execute(context) {
|
|
137
137
|
const memory = context.machineState.memory;
|
|
138
|
-
const addressing = Addressing.fromWire(this.
|
|
138
|
+
const addressing = Addressing.fromWire(this.addressingMode);
|
|
139
139
|
context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
|
|
140
140
|
const operands = [
|
|
141
141
|
this.srcOffset,
|
|
@@ -147,7 +147,7 @@ export class Mov extends Instruction {
|
|
|
147
147
|
}
|
|
148
148
|
}
|
|
149
149
|
export class CalldataCopy extends Instruction {
|
|
150
|
-
|
|
150
|
+
addressingMode;
|
|
151
151
|
copySizeOffset;
|
|
152
152
|
cdStartOffset;
|
|
153
153
|
dstOffset;
|
|
@@ -161,12 +161,12 @@ export class CalldataCopy extends Instruction {
|
|
|
161
161
|
OperandType.UINT16,
|
|
162
162
|
OperandType.UINT16
|
|
163
163
|
];
|
|
164
|
-
constructor(
|
|
165
|
-
super(), this.
|
|
164
|
+
constructor(addressingMode, copySizeOffset, cdStartOffset, dstOffset){
|
|
165
|
+
super(), this.addressingMode = addressingMode, this.copySizeOffset = copySizeOffset, this.cdStartOffset = cdStartOffset, this.dstOffset = dstOffset;
|
|
166
166
|
}
|
|
167
167
|
async execute(context) {
|
|
168
168
|
const memory = context.machineState.memory;
|
|
169
|
-
const addressing = Addressing.fromWire(this.
|
|
169
|
+
const addressing = Addressing.fromWire(this.addressingMode);
|
|
170
170
|
context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
|
|
171
171
|
const operands = [
|
|
172
172
|
this.copySizeOffset,
|
|
@@ -189,7 +189,7 @@ export class CalldataCopy extends Instruction {
|
|
|
189
189
|
}
|
|
190
190
|
}
|
|
191
191
|
export class ReturndataSize extends Instruction {
|
|
192
|
-
|
|
192
|
+
addressingMode;
|
|
193
193
|
dstOffset;
|
|
194
194
|
static type = 'RETURNDATASIZE';
|
|
195
195
|
static opcode = Opcode.RETURNDATASIZE;
|
|
@@ -199,12 +199,12 @@ export class ReturndataSize extends Instruction {
|
|
|
199
199
|
OperandType.UINT8,
|
|
200
200
|
OperandType.UINT16
|
|
201
201
|
];
|
|
202
|
-
constructor(
|
|
203
|
-
super(), this.
|
|
202
|
+
constructor(addressingMode, dstOffset){
|
|
203
|
+
super(), this.addressingMode = addressingMode, this.dstOffset = dstOffset;
|
|
204
204
|
}
|
|
205
205
|
async execute(context) {
|
|
206
206
|
const memory = context.machineState.memory;
|
|
207
|
-
const addressing = Addressing.fromWire(this.
|
|
207
|
+
const addressing = Addressing.fromWire(this.addressingMode);
|
|
208
208
|
context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
|
|
209
209
|
const operands = [
|
|
210
210
|
this.dstOffset
|
|
@@ -214,7 +214,7 @@ export class ReturndataSize extends Instruction {
|
|
|
214
214
|
}
|
|
215
215
|
}
|
|
216
216
|
export class ReturndataCopy extends Instruction {
|
|
217
|
-
|
|
217
|
+
addressingMode;
|
|
218
218
|
copySizeOffset;
|
|
219
219
|
rdStartOffset;
|
|
220
220
|
dstOffset;
|
|
@@ -228,12 +228,12 @@ export class ReturndataCopy extends Instruction {
|
|
|
228
228
|
OperandType.UINT16,
|
|
229
229
|
OperandType.UINT16
|
|
230
230
|
];
|
|
231
|
-
constructor(
|
|
232
|
-
super(), this.
|
|
231
|
+
constructor(addressingMode, copySizeOffset, rdStartOffset, dstOffset){
|
|
232
|
+
super(), this.addressingMode = addressingMode, this.copySizeOffset = copySizeOffset, this.rdStartOffset = rdStartOffset, this.dstOffset = dstOffset;
|
|
233
233
|
}
|
|
234
234
|
async execute(context) {
|
|
235
235
|
const memory = context.machineState.memory;
|
|
236
|
-
const addressing = Addressing.fromWire(this.
|
|
236
|
+
const addressing = Addressing.fromWire(this.addressingMode);
|
|
237
237
|
context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
|
|
238
238
|
const operands = [
|
|
239
239
|
this.copySizeOffset,
|
|
@@ -2,7 +2,7 @@ import type { AvmContext } from '../avm_context.js';
|
|
|
2
2
|
import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
|
|
3
3
|
import { Instruction } from './instruction.js';
|
|
4
4
|
export declare class DebugLog extends Instruction {
|
|
5
|
-
private
|
|
5
|
+
private addressingMode;
|
|
6
6
|
private levelOffset;
|
|
7
7
|
private messageOffset;
|
|
8
8
|
private fieldsOffset;
|
|
@@ -12,7 +12,7 @@ export declare class DebugLog extends Instruction {
|
|
|
12
12
|
static readonly opcode: Opcode;
|
|
13
13
|
static readonly logger: import("@aztec/foundation/log").Logger;
|
|
14
14
|
static readonly wireFormat: OperandType[];
|
|
15
|
-
constructor(
|
|
15
|
+
constructor(addressingMode: number, levelOffset: number, messageOffset: number, fieldsOffset: number, fieldsSizeOffset: number, messageSize: number);
|
|
16
16
|
execute(context: AvmContext): Promise<void>;
|
|
17
17
|
}
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlzYy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3B1YmxpYy9hdm0vb3Bjb2Rlcy9taXNjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXBELE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFFcEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRS9DLHFCQUFhLFFBQVMsU0FBUSxXQUFXO0lBaUJyQyxPQUFPLENBQUMsY0FBYztJQUN0QixPQUFPLENBQUMsV0FBVztJQUNuQixPQUFPLENBQUMsYUFBYTtJQUNyQixPQUFPLENBQUMsWUFBWTtJQUNwQixPQUFPLENBQUMsZ0JBQWdCO0lBQ3hCLE9BQU8sQ0FBQyxXQUFXO0lBckJyQixNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBYztJQUNqQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQW1CO0lBQ2pELE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSx5Q0FBMkM7SUFHakUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLENBUXZDO0lBRUYsWUFDVSxjQUFjLEVBQUUsTUFBTSxFQUN0QixXQUFXLEVBQUUsTUFBTSxFQUNuQixhQUFhLEVBQUUsTUFBTSxFQUNyQixZQUFZLEVBQUUsTUFBTSxFQUNwQixnQkFBZ0IsRUFBRSxNQUFNLEVBQ3hCLFdBQVcsRUFBRSxNQUFNLEVBRzVCO0lBRVksT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWlFdkQ7Q0FDRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/misc.ts"],"names":[],"mappings":"AAEA,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,QAAS,SAAQ,WAAW;IAiBrC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/misc.ts"],"names":[],"mappings":"AAEA,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,QAAS,SAAQ,WAAW;IAiBrC,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,WAAW;IArBrB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAc;IACjC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAmB;IACjD,MAAM,CAAC,QAAQ,CAAC,MAAM,yCAA2C;IAGjE,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAQvC;IAEF,YACU,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,MAAM,EACxB,WAAW,EAAE,MAAM,EAG5B;IAEY,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAiEvD;CACF"}
|
|
@@ -4,7 +4,7 @@ import { Opcode, OperandType } from '../serialization/instruction_serialization.
|
|
|
4
4
|
import { Addressing } from './addressing_mode.js';
|
|
5
5
|
import { Instruction } from './instruction.js';
|
|
6
6
|
export class DebugLog extends Instruction {
|
|
7
|
-
|
|
7
|
+
addressingMode;
|
|
8
8
|
levelOffset;
|
|
9
9
|
messageOffset;
|
|
10
10
|
fieldsOffset;
|
|
@@ -23,12 +23,12 @@ export class DebugLog extends Instruction {
|
|
|
23
23
|
OperandType.UINT16,
|
|
24
24
|
OperandType.UINT16
|
|
25
25
|
];
|
|
26
|
-
constructor(
|
|
27
|
-
super(), this.
|
|
26
|
+
constructor(addressingMode, levelOffset, messageOffset, fieldsOffset, fieldsSizeOffset, messageSize){
|
|
27
|
+
super(), this.addressingMode = addressingMode, this.levelOffset = levelOffset, this.messageOffset = messageOffset, this.fieldsOffset = fieldsOffset, this.fieldsSizeOffset = fieldsSizeOffset, this.messageSize = messageSize;
|
|
28
28
|
}
|
|
29
29
|
async execute(context) {
|
|
30
30
|
const memory = context.machineState.memory;
|
|
31
|
-
const addressing = Addressing.fromWire(this.
|
|
31
|
+
const addressing = Addressing.fromWire(this.addressingMode);
|
|
32
32
|
context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
|
|
33
33
|
const operands = [
|
|
34
34
|
this.levelOffset,
|