@aztec/simulator 0.56.0 → 0.58.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.
- package/dest/acvm/oracle/oracle.d.ts +2 -5
- package/dest/acvm/oracle/oracle.d.ts.map +1 -1
- package/dest/acvm/oracle/oracle.js +7 -38
- package/dest/acvm/oracle/typed_oracle.d.ts +4 -8
- package/dest/acvm/oracle/typed_oracle.d.ts.map +1 -1
- package/dest/acvm/oracle/typed_oracle.js +1 -10
- package/dest/avm/avm_execution_environment.d.ts +2 -3
- package/dest/avm/avm_execution_environment.d.ts.map +1 -1
- package/dest/avm/avm_execution_environment.js +3 -4
- package/dest/avm/avm_gas.d.ts.map +1 -1
- package/dest/avm/avm_gas.js +2 -3
- package/dest/avm/avm_memory_types.d.ts +10 -5
- package/dest/avm/avm_memory_types.d.ts.map +1 -1
- package/dest/avm/avm_memory_types.js +31 -16
- package/dest/avm/avm_simulator.d.ts.map +1 -1
- package/dest/avm/avm_simulator.js +5 -2
- package/dest/avm/errors.d.ts +1 -1
- package/dest/avm/errors.d.ts.map +1 -1
- package/dest/avm/errors.js +12 -3
- package/dest/avm/fixtures/index.d.ts.map +1 -1
- package/dest/avm/fixtures/index.js +4 -4
- package/dest/avm/journal/journal.d.ts +2 -1
- package/dest/avm/journal/journal.d.ts.map +1 -1
- package/dest/avm/journal/journal.js +8 -8
- package/dest/avm/opcodes/accrued_substate.d.ts.map +1 -1
- package/dest/avm/opcodes/accrued_substate.js +54 -47
- package/dest/avm/opcodes/addressing_mode.d.ts +3 -2
- package/dest/avm/opcodes/addressing_mode.d.ts.map +1 -1
- package/dest/avm/opcodes/addressing_mode.js +25 -21
- package/dest/avm/opcodes/arithmetic.d.ts.map +1 -1
- package/dest/avm/opcodes/arithmetic.js +7 -6
- package/dest/avm/opcodes/bitwise.d.ts +3 -3
- package/dest/avm/opcodes/bitwise.d.ts.map +1 -1
- package/dest/avm/opcodes/bitwise.js +19 -16
- package/dest/avm/opcodes/commitment.d.ts.map +1 -1
- package/dest/avm/opcodes/commitment.js +6 -5
- package/dest/avm/opcodes/comparators.d.ts.map +1 -1
- package/dest/avm/opcodes/comparators.js +7 -6
- package/dest/avm/opcodes/contract.d.ts.map +1 -1
- package/dest/avm/opcodes/contract.js +8 -6
- package/dest/avm/opcodes/control_flow.js +7 -7
- package/dest/avm/opcodes/conversion.d.ts.map +1 -1
- package/dest/avm/opcodes/conversion.js +11 -10
- package/dest/avm/opcodes/ec_add.d.ts.map +1 -1
- package/dest/avm/opcodes/ec_add.js +25 -15
- package/dest/avm/opcodes/environment_getters.d.ts.map +1 -1
- package/dest/avm/opcodes/environment_getters.js +6 -5
- package/dest/avm/opcodes/external_calls.d.ts.map +1 -1
- package/dest/avm/opcodes/external_calls.js +37 -26
- package/dest/avm/opcodes/hashing.d.ts +1 -3
- package/dest/avm/opcodes/hashing.d.ts.map +1 -1
- package/dest/avm/opcodes/hashing.js +39 -48
- package/dest/avm/opcodes/instruction.d.ts +2 -6
- package/dest/avm/opcodes/instruction.d.ts.map +1 -1
- package/dest/avm/opcodes/instruction.js +3 -9
- package/dest/avm/opcodes/instruction_impl.d.ts +1 -2
- package/dest/avm/opcodes/instruction_impl.d.ts.map +1 -1
- package/dest/avm/opcodes/instruction_impl.js +2 -5
- package/dest/avm/opcodes/memory.d.ts +0 -12
- package/dest/avm/opcodes/memory.d.ts.map +1 -1
- package/dest/avm/opcodes/memory.js +24 -54
- package/dest/avm/opcodes/misc.d.ts.map +1 -1
- package/dest/avm/opcodes/misc.js +10 -9
- package/dest/avm/opcodes/multi_scalar_mul.d.ts.map +1 -1
- package/dest/avm/opcodes/multi_scalar_mul.js +35 -20
- package/dest/avm/opcodes/storage.d.ts.map +1 -1
- package/dest/avm/opcodes/storage.js +13 -11
- package/dest/avm/serialization/bytecode_serialization.d.ts.map +1 -1
- package/dest/avm/serialization/bytecode_serialization.js +2 -3
- package/dest/avm/serialization/instruction_serialization.d.ts +32 -34
- package/dest/avm/serialization/instruction_serialization.d.ts.map +1 -1
- package/dest/avm/serialization/instruction_serialization.js +34 -37
- package/dest/avm/test_utils.d.ts +1 -2
- package/dest/avm/test_utils.d.ts.map +1 -1
- package/dest/avm/test_utils.js +1 -1
- package/dest/client/client_execution_context.d.ts +6 -30
- package/dest/client/client_execution_context.d.ts.map +1 -1
- package/dest/client/client_execution_context.js +36 -54
- package/dest/client/db_oracle.d.ts +1 -2
- package/dest/client/db_oracle.d.ts.map +1 -1
- package/dest/client/db_oracle.js +1 -1
- package/dest/client/index.d.ts +1 -1
- package/dest/client/index.d.ts.map +1 -1
- package/dest/client/index.js +2 -2
- package/dest/client/private_execution.d.ts +12 -3
- package/dest/client/private_execution.d.ts.map +1 -1
- package/dest/client/private_execution.js +29 -23
- package/dest/client/simulator.d.ts +2 -3
- package/dest/client/simulator.d.ts.map +1 -1
- package/dest/client/simulator.js +1 -1
- package/dest/client/view_data_oracle.d.ts +1 -2
- package/dest/client/view_data_oracle.d.ts.map +1 -1
- package/dest/client/view_data_oracle.js +1 -1
- package/dest/common/debug_fn_name.d.ts +4 -0
- package/dest/common/debug_fn_name.d.ts.map +1 -0
- package/dest/common/debug_fn_name.js +15 -0
- package/dest/common/index.d.ts +0 -1
- package/dest/common/index.d.ts.map +1 -1
- package/dest/common/index.js +1 -2
- package/dest/public/db_interfaces.d.ts +1 -2
- package/dest/public/db_interfaces.d.ts.map +1 -1
- package/dest/public/dual_side_effect_trace.d.ts +76 -0
- package/dest/public/dual_side_effect_trace.d.ts.map +1 -0
- package/dest/public/dual_side_effect_trace.js +109 -0
- package/dest/public/enqueued_call_side_effect_trace.d.ts +114 -0
- package/dest/public/enqueued_call_side_effect_trace.d.ts.map +1 -0
- package/dest/public/enqueued_call_side_effect_trace.js +314 -0
- package/dest/public/enqueued_call_simulator.d.ts +2 -2
- package/dest/public/enqueued_call_simulator.d.ts.map +1 -1
- package/dest/public/enqueued_call_simulator.js +20 -10
- package/dest/public/enqueued_calls_processor.d.ts +2 -2
- package/dest/public/enqueued_calls_processor.d.ts.map +1 -1
- package/dest/public/enqueued_calls_processor.js +3 -5
- package/dest/public/execution.d.ts +11 -5
- package/dest/public/execution.d.ts.map +1 -1
- package/dest/public/execution.js +13 -1
- package/dest/public/executor.d.ts +7 -6
- package/dest/public/executor.d.ts.map +1 -1
- package/dest/public/executor.js +24 -15
- package/dest/public/fee_payment.d.ts +1 -1
- package/dest/public/fee_payment.d.ts.map +1 -1
- package/dest/public/fee_payment.js +4 -7
- package/dest/public/hints_builder.d.ts +2 -2
- package/dest/public/hints_builder.d.ts.map +1 -1
- package/dest/public/hints_builder.js +2 -2
- package/dest/public/public_db_sources.d.ts +4 -5
- package/dest/public/public_db_sources.d.ts.map +1 -1
- package/dest/public/public_db_sources.js +15 -11
- package/dest/public/public_kernel_tail_simulator.d.ts +3 -3
- package/dest/public/public_kernel_tail_simulator.d.ts.map +1 -1
- package/dest/public/public_kernel_tail_simulator.js +1 -1
- package/dest/public/public_processor.d.ts +7 -10
- package/dest/public/public_processor.d.ts.map +1 -1
- package/dest/public/public_processor.js +9 -10
- package/dest/public/side_effect_errors.d.ts +4 -0
- package/dest/public/side_effect_errors.d.ts.map +1 -0
- package/dest/public/side_effect_errors.js +7 -0
- package/dest/public/side_effect_trace.d.ts +3 -4
- package/dest/public/side_effect_trace.d.ts.map +1 -1
- package/dest/public/side_effect_trace.js +54 -29
- package/dest/public/side_effect_trace_interface.d.ts +1 -1
- package/dest/public/side_effect_trace_interface.d.ts.map +1 -1
- package/package.json +12 -9
- package/src/acvm/oracle/oracle.ts +8 -86
- package/src/acvm/oracle/typed_oracle.ts +8 -33
- package/src/avm/avm_execution_environment.ts +1 -3
- package/src/avm/avm_gas.ts +1 -2
- package/src/avm/avm_memory_types.ts +38 -16
- package/src/avm/avm_simulator.ts +7 -1
- package/src/avm/errors.ts +11 -3
- package/src/avm/fixtures/index.ts +2 -3
- package/src/avm/journal/journal.ts +14 -10
- package/src/avm/opcodes/accrued_substate.ts +53 -61
- package/src/avm/opcodes/addressing_mode.ts +27 -24
- package/src/avm/opcodes/arithmetic.ts +6 -8
- package/src/avm/opcodes/bitwise.ts +18 -18
- package/src/avm/opcodes/commitment.ts +6 -7
- package/src/avm/opcodes/comparators.ts +6 -8
- package/src/avm/opcodes/contract.ts +7 -8
- package/src/avm/opcodes/control_flow.ts +6 -6
- package/src/avm/opcodes/conversion.ts +10 -12
- package/src/avm/opcodes/ec_add.ts +29 -24
- package/src/avm/opcodes/environment_getters.ts +5 -4
- package/src/avm/opcodes/external_calls.ts +37 -30
- package/src/avm/opcodes/hashing.ts +38 -63
- package/src/avm/opcodes/instruction.ts +3 -10
- package/src/avm/opcodes/instruction_impl.ts +0 -3
- package/src/avm/opcodes/memory.ts +23 -67
- package/src/avm/opcodes/misc.ts +9 -11
- package/src/avm/opcodes/multi_scalar_mul.ts +31 -26
- package/src/avm/opcodes/storage.ts +12 -10
- package/src/avm/serialization/bytecode_serialization.ts +0 -2
- package/src/avm/serialization/instruction_serialization.ts +1 -4
- package/src/avm/test_utils.ts +1 -2
- package/src/client/client_execution_context.ts +46 -97
- package/src/client/db_oracle.ts +6 -2
- package/src/client/index.ts +1 -1
- package/src/client/private_execution.ts +45 -15
- package/src/client/simulator.ts +2 -3
- package/src/client/view_data_oracle.ts +1 -2
- package/src/common/debug_fn_name.ts +22 -0
- package/src/common/index.ts +0 -1
- package/src/public/db_interfaces.ts +5 -2
- package/src/public/dual_side_effect_trace.ts +173 -0
- package/src/public/enqueued_call_side_effect_trace.ts +552 -0
- package/src/public/enqueued_call_simulator.ts +35 -14
- package/src/public/enqueued_calls_processor.ts +4 -6
- package/src/public/execution.ts +15 -6
- package/src/public/executor.ts +42 -19
- package/src/public/fee_payment.ts +4 -6
- package/src/public/hints_builder.ts +9 -11
- package/src/public/public_db_sources.ts +31 -22
- package/src/public/public_kernel_tail_simulator.ts +3 -3
- package/src/public/public_processor.ts +17 -13
- package/src/public/side_effect_errors.ts +6 -0
- package/src/public/side_effect_trace.ts +74 -29
- package/src/public/side_effect_trace_interface.ts +2 -2
- package/dest/client/execution_result.d.ts +0 -104
- package/dest/client/execution_result.d.ts.map +0 -1
- package/dest/client/execution_result.js +0 -136
- package/dest/common/return_values.d.ts +0 -11
- package/dest/common/return_values.d.ts.map +0 -1
- package/dest/common/return_values.js +0 -13
- package/src/client/execution_result.ts +0 -228
- package/src/common/return_values.ts +0 -18
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hashing.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/hashing.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"hashing.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/hashing.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { keccak256, keccakf1600, pedersenHash, poseidon2Permutation, sha256Compression, } from '@aztec/foundation/crypto';
|
|
2
2
|
import { strict as assert } from 'assert';
|
|
3
3
|
import { Field, TypeTag, Uint8, Uint32, Uint64 } from '../avm_memory_types.js';
|
|
4
|
-
import { InstructionExecutionError } from '../errors.js';
|
|
5
4
|
import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
|
|
6
5
|
import { Addressing } from './addressing_mode.js';
|
|
7
6
|
import { Instruction } from './instruction.js';
|
|
@@ -13,15 +12,16 @@ export class Poseidon2 extends Instruction {
|
|
|
13
12
|
this.outputStateOffset = outputStateOffset;
|
|
14
13
|
}
|
|
15
14
|
async execute(context) {
|
|
16
|
-
const memoryOperations = { reads: Poseidon2.stateSize, writes: Poseidon2.stateSize, indirect: this.indirect };
|
|
17
15
|
const memory = context.machineState.memory.track(this.type);
|
|
18
|
-
context.machineState.consumeGas(this.gasCost(
|
|
19
|
-
const
|
|
16
|
+
context.machineState.consumeGas(this.gasCost());
|
|
17
|
+
const operands = [this.inputStateOffset, this.outputStateOffset];
|
|
18
|
+
const addressing = Addressing.fromWire(this.indirect, operands.length);
|
|
19
|
+
const [inputOffset, outputOffset] = addressing.resolve(operands, memory);
|
|
20
20
|
memory.checkTagsRange(TypeTag.FIELD, inputOffset, Poseidon2.stateSize);
|
|
21
21
|
const inputState = memory.getSlice(inputOffset, Poseidon2.stateSize);
|
|
22
22
|
const outputState = poseidon2Permutation(inputState);
|
|
23
23
|
memory.setSlice(outputOffset, outputState.map(word => new Field(word)));
|
|
24
|
-
memory.assert(
|
|
24
|
+
memory.assert({ reads: Poseidon2.stateSize, writes: Poseidon2.stateSize, addressing });
|
|
25
25
|
context.machineState.incrementPc();
|
|
26
26
|
}
|
|
27
27
|
}
|
|
@@ -32,8 +32,8 @@ Poseidon2.stateSize = 4;
|
|
|
32
32
|
Poseidon2.wireFormat = [
|
|
33
33
|
OperandType.UINT8,
|
|
34
34
|
OperandType.UINT8,
|
|
35
|
-
OperandType.
|
|
36
|
-
OperandType.
|
|
35
|
+
OperandType.UINT16,
|
|
36
|
+
OperandType.UINT16,
|
|
37
37
|
];
|
|
38
38
|
export class Keccak extends Instruction {
|
|
39
39
|
constructor(indirect, dstOffset, messageOffset, messageSizeOffset) {
|
|
@@ -46,18 +46,19 @@ export class Keccak extends Instruction {
|
|
|
46
46
|
// pub fn keccak256(input: [u8], message_size: u32) -> [u8; 32]
|
|
47
47
|
async execute(context) {
|
|
48
48
|
const memory = context.machineState.memory.track(this.type);
|
|
49
|
-
const
|
|
49
|
+
const operands = [this.dstOffset, this.messageOffset, this.messageSizeOffset];
|
|
50
|
+
const addressing = Addressing.fromWire(this.indirect, operands.length);
|
|
51
|
+
const [dstOffset, messageOffset, messageSizeOffset] = addressing.resolve(operands, memory);
|
|
50
52
|
memory.checkTag(TypeTag.UINT32, messageSizeOffset);
|
|
51
53
|
const messageSize = memory.get(messageSizeOffset).toNumber();
|
|
52
|
-
|
|
53
|
-
context.machineState.consumeGas(this.gasCost({ ...memoryOperations, dynMultiplier: messageSize }));
|
|
54
|
+
context.machineState.consumeGas(this.gasCost(messageSize));
|
|
54
55
|
memory.checkTagsRange(TypeTag.UINT8, messageOffset, messageSize);
|
|
55
56
|
const messageData = Buffer.concat(memory.getSlice(messageOffset, messageSize).map(word => word.toBuffer()));
|
|
56
57
|
const hashBuffer = keccak256(messageData);
|
|
57
58
|
// We need to convert the hashBuffer because map doesn't work as expected on an Uint8Array (Buffer).
|
|
58
59
|
const res = [...hashBuffer].map(byte => new Uint8(byte));
|
|
59
60
|
memory.setSlice(dstOffset, res);
|
|
60
|
-
memory.assert(
|
|
61
|
+
memory.assert({ reads: messageSize + 1, writes: 32, addressing });
|
|
61
62
|
context.machineState.incrementPc();
|
|
62
63
|
}
|
|
63
64
|
}
|
|
@@ -84,18 +85,19 @@ export class KeccakF1600 extends Instruction {
|
|
|
84
85
|
// pub fn keccakf1600(input: [u64; 25]) -> [u64; 25]
|
|
85
86
|
async execute(context) {
|
|
86
87
|
const memory = context.machineState.memory.track(this.type);
|
|
87
|
-
const
|
|
88
|
+
const operands = [this.dstOffset, this.stateOffset, this.stateSizeOffset];
|
|
89
|
+
const addressing = Addressing.fromWire(this.indirect, operands.length);
|
|
90
|
+
const [dstOffset, stateOffset, stateSizeOffset] = addressing.resolve(operands, memory);
|
|
88
91
|
memory.checkTag(TypeTag.UINT32, stateSizeOffset);
|
|
89
92
|
const stateSize = memory.get(stateSizeOffset).toNumber();
|
|
90
93
|
assert(stateSize === 25, 'Invalid state size for keccakf1600');
|
|
91
|
-
|
|
92
|
-
context.machineState.consumeGas(this.gasCost(memoryOperations));
|
|
94
|
+
context.machineState.consumeGas(this.gasCost());
|
|
93
95
|
memory.checkTagsRange(TypeTag.UINT64, stateOffset, stateSize);
|
|
94
96
|
const stateData = memory.getSlice(stateOffset, stateSize).map(word => word.toBigInt());
|
|
95
97
|
const updatedState = keccakf1600(stateData);
|
|
96
98
|
const res = updatedState.map(word => new Uint64(word));
|
|
97
99
|
memory.setSlice(dstOffset, res);
|
|
98
|
-
memory.assert(
|
|
100
|
+
memory.assert({ reads: stateSize + 1, writes: 25, addressing });
|
|
99
101
|
context.machineState.incrementPc();
|
|
100
102
|
}
|
|
101
103
|
}
|
|
@@ -105,46 +107,36 @@ KeccakF1600.opcode = Opcode.KECCAKF1600;
|
|
|
105
107
|
KeccakF1600.wireFormat = [
|
|
106
108
|
OperandType.UINT8,
|
|
107
109
|
OperandType.UINT8,
|
|
108
|
-
OperandType.
|
|
109
|
-
OperandType.
|
|
110
|
-
OperandType.
|
|
110
|
+
OperandType.UINT16,
|
|
111
|
+
OperandType.UINT16,
|
|
112
|
+
OperandType.UINT16,
|
|
111
113
|
];
|
|
112
114
|
export class Sha256Compression extends Instruction {
|
|
113
|
-
constructor(indirect, outputOffset, stateOffset,
|
|
115
|
+
constructor(indirect, outputOffset, stateOffset, inputsOffset) {
|
|
114
116
|
super();
|
|
115
117
|
this.indirect = indirect;
|
|
116
118
|
this.outputOffset = outputOffset;
|
|
117
119
|
this.stateOffset = stateOffset;
|
|
118
|
-
this.stateSizeOffset = stateSizeOffset;
|
|
119
120
|
this.inputsOffset = inputsOffset;
|
|
120
|
-
this.inputsSizeOffset = inputsSizeOffset;
|
|
121
121
|
}
|
|
122
122
|
async execute(context) {
|
|
123
123
|
const STATE_SIZE = 8;
|
|
124
124
|
const INPUTS_SIZE = 16;
|
|
125
125
|
const memory = context.machineState.memory.track(this.type);
|
|
126
|
-
const
|
|
127
|
-
const
|
|
128
|
-
const
|
|
129
|
-
if (stateSize !== STATE_SIZE) {
|
|
130
|
-
throw new InstructionExecutionError('`state` argument to SHA256 compression must be of length 8');
|
|
131
|
-
}
|
|
132
|
-
if (inputsSize !== INPUTS_SIZE) {
|
|
133
|
-
throw new InstructionExecutionError('`inputs` argument to SHA256 compression must be of length 16');
|
|
134
|
-
}
|
|
135
|
-
// +2 to account for both size offsets (stateSizeOffset and inputsSizeOffset)
|
|
126
|
+
const operands = [this.outputOffset, this.stateOffset, this.inputsOffset];
|
|
127
|
+
const addressing = Addressing.fromWire(this.indirect, operands.length);
|
|
128
|
+
const [outputOffset, stateOffset, inputsOffset] = addressing.resolve(operands, memory);
|
|
136
129
|
// Note: size of output is same as size of state
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
memory.checkTagsRange(TypeTag.UINT32,
|
|
140
|
-
memory.
|
|
141
|
-
const
|
|
142
|
-
const inputs = Uint32Array.from(memory.getSlice(inputsOffset, inputsSize).map(word => word.toNumber()));
|
|
130
|
+
context.machineState.consumeGas(this.gasCost());
|
|
131
|
+
memory.checkTagsRange(TypeTag.UINT32, inputsOffset, INPUTS_SIZE);
|
|
132
|
+
memory.checkTagsRange(TypeTag.UINT32, stateOffset, STATE_SIZE);
|
|
133
|
+
const state = Uint32Array.from(memory.getSlice(stateOffset, STATE_SIZE).map(word => word.toNumber()));
|
|
134
|
+
const inputs = Uint32Array.from(memory.getSlice(inputsOffset, INPUTS_SIZE).map(word => word.toNumber()));
|
|
143
135
|
const output = sha256Compression(state, inputs);
|
|
144
136
|
// Conversion required from Uint32Array to Uint32[] (can't map directly, need `...`)
|
|
145
137
|
const res = [...output].map(word => new Uint32(word));
|
|
146
138
|
memory.setSlice(outputOffset, res);
|
|
147
|
-
memory.assert(
|
|
139
|
+
memory.assert({ reads: STATE_SIZE + INPUTS_SIZE, writes: STATE_SIZE, addressing });
|
|
148
140
|
context.machineState.incrementPc();
|
|
149
141
|
}
|
|
150
142
|
}
|
|
@@ -154,11 +146,9 @@ Sha256Compression.opcode = Opcode.SHA256COMPRESSION;
|
|
|
154
146
|
Sha256Compression.wireFormat = [
|
|
155
147
|
OperandType.UINT8,
|
|
156
148
|
OperandType.UINT8,
|
|
157
|
-
OperandType.
|
|
158
|
-
OperandType.
|
|
159
|
-
OperandType.
|
|
160
|
-
OperandType.UINT32,
|
|
161
|
-
OperandType.UINT32,
|
|
149
|
+
OperandType.UINT16,
|
|
150
|
+
OperandType.UINT16,
|
|
151
|
+
OperandType.UINT16,
|
|
162
152
|
];
|
|
163
153
|
export class Pedersen extends Instruction {
|
|
164
154
|
constructor(indirect, genIndexOffset, dstOffset, messageOffset, messageSizeOffset) {
|
|
@@ -171,20 +161,21 @@ export class Pedersen extends Instruction {
|
|
|
171
161
|
}
|
|
172
162
|
async execute(context) {
|
|
173
163
|
const memory = context.machineState.memory.track(this.type);
|
|
174
|
-
const
|
|
164
|
+
const operands = [this.genIndexOffset, this.dstOffset, this.messageOffset, this.messageSizeOffset];
|
|
165
|
+
const addressing = Addressing.fromWire(this.indirect, operands.length);
|
|
166
|
+
const [genIndexOffset, dstOffset, messageOffset, messageSizeOffset] = addressing.resolve(operands, memory);
|
|
175
167
|
// We hash a set of field elements
|
|
176
168
|
const genIndex = Number(memory.get(genIndexOffset).toBigInt());
|
|
177
169
|
memory.checkTag(TypeTag.UINT32, genIndexOffset);
|
|
178
170
|
const messageSize = Number(memory.get(messageSizeOffset).toBigInt());
|
|
179
171
|
memory.checkTag(TypeTag.UINT32, messageSizeOffset);
|
|
180
172
|
const hashData = memory.getSlice(messageOffset, messageSize);
|
|
181
|
-
|
|
182
|
-
context.machineState.consumeGas(this.gasCost({ ...memoryOperations, dynMultiplier: messageSize }));
|
|
173
|
+
context.machineState.consumeGas(this.gasCost(messageSize));
|
|
183
174
|
memory.checkTagsRange(TypeTag.FIELD, messageOffset, messageSize);
|
|
184
175
|
// No domain sep for now
|
|
185
176
|
const hash = pedersenHash(hashData, genIndex);
|
|
186
177
|
memory.set(dstOffset, new Field(hash));
|
|
187
|
-
memory.assert(
|
|
178
|
+
memory.assert({ reads: messageSize + 2, writes: 1, addressing });
|
|
188
179
|
context.machineState.incrementPc();
|
|
189
180
|
}
|
|
190
181
|
}
|
|
@@ -199,4 +190,4 @@ Pedersen.wireFormat = [
|
|
|
199
190
|
OperandType.UINT32,
|
|
200
191
|
OperandType.UINT32,
|
|
201
192
|
];
|
|
202
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzaGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdm0vb3Bjb2Rlcy9oYXNoaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsV0FBVyxFQUNYLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsaUJBQWlCLEdBQ2xCLE1BQU0sMEJBQTBCLENBQUM7QUFFbEMsT0FBTyxFQUFFLE1BQU0sSUFBSSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFHMUMsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekQsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNwRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRS9DLE1BQU0sT0FBTyxTQUFVLFNBQVEsV0FBVztJQWF4QyxZQUFvQixRQUFnQixFQUFVLGdCQUF3QixFQUFVLGlCQUF5QjtRQUN2RyxLQUFLLEVBQUUsQ0FBQztRQURVLGFBQVEsR0FBUixRQUFRLENBQVE7UUFBVSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQVE7UUFBVSxzQkFBaUIsR0FBakIsaUJBQWlCLENBQVE7SUFFekcsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBbUI7UUFDdEMsTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDOUcsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1RCxPQUFPLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztRQUVoRSxNQUFNLENBQUMsV0FBVyxFQUFFLFlBQVksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FDNUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQy9DLE1BQU0sQ0FDUCxDQUFDO1FBQ0YsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFdkUsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sV0FBVyxHQUFHLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sQ0FBQyxRQUFRLENBQ2IsWUFBWSxFQUNaLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUN6QyxDQUFDO1FBRUYsTUFBTSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckMsQ0FBQzs7QUFwQ00sY0FBSSxHQUFXLFdBQVcsQ0FBQztBQUNsQixnQkFBTSxHQUFXLE1BQU0sQ0FBQyxTQUFTLENBQUM7QUFDbEMsbUJBQVMsR0FBRyxDQUFDLENBQUM7QUFFOUIsMERBQTBEO0FBQzFDLG9CQUFVLEdBQWtCO0lBQzFDLFdBQVcsQ0FBQyxLQUFLO0lBQ2pCLFdBQVcsQ0FBQyxLQUFLO0lBQ2pCLFdBQVcsQ0FBQyxNQUFNO0lBQ2xCLFdBQVcsQ0FBQyxNQUFNO0NBQ25CLENBQUM7QUE2QkosTUFBTSxPQUFPLE1BQU8sU0FBUSxXQUFXO0lBYXJDLFlBQ1UsUUFBZ0IsRUFDaEIsU0FBaUIsRUFDakIsYUFBcUIsRUFDckIsaUJBQXlCO1FBRWpDLEtBQUssRUFBRSxDQUFDO1FBTEEsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBQ2pCLGtCQUFhLEdBQWIsYUFBYSxDQUFRO1FBQ3JCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBUTtJQUduQyxDQUFDO0lBRUQsK0RBQStEO0lBQ3hELEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBbUI7UUFDdEMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1RCxNQUFNLENBQUMsU0FBUyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FDOUYsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQzVELE1BQU0sQ0FDUCxDQUFDO1FBQ0YsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDbkQsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzdELE1BQU0sZ0JBQWdCLEdBQUcsRUFBRSxLQUFLLEVBQUUsV0FBVyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekYsT0FBTyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVuRyxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRWpFLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1RyxNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFMUMsb0dBQW9HO1FBQ3BHLE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRWhDLE1BQU0sQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNoQyxPQUFPLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JDLENBQUM7O0FBNUNNLFdBQUksR0FBVyxRQUFRLENBQUM7QUFDZixhQUFNLEdBQVcsTUFBTSxDQUFDLE1BQU0sQ0FBQztBQUUvQywwREFBMEQ7QUFDMUMsaUJBQVUsR0FBa0I7SUFDMUMsV0FBVyxDQUFDLEtBQUs7SUFDakIsV0FBVyxDQUFDLEtBQUs7SUFDakIsV0FBVyxDQUFDLE1BQU07SUFDbEIsV0FBVyxDQUFDLE1BQU07SUFDbEIsV0FBVyxDQUFDLE1BQU07Q0FDbkIsQ0FBQztBQXFDSixNQUFNLE9BQU8sV0FBWSxTQUFRLFdBQVc7SUFhMUMsWUFDVSxRQUFnQixFQUNoQixTQUFpQixFQUNqQixXQUFtQjtJQUMzQiwrRUFBK0U7SUFDdkUsZUFBdUI7UUFFL0IsS0FBSyxFQUFFLENBQUM7UUFOQSxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2hCLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFDakIsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFFbkIsb0JBQWUsR0FBZixlQUFlLENBQVE7SUFHakMsQ0FBQztJQUVELG9EQUFvRDtJQUM3QyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQW1CO1FBQ3RDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUQsTUFBTSxDQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsZUFBZSxDQUFDLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUMxRixDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQ3hELE1BQU0sQ0FDUCxDQUFDO1FBQ0YsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQ2pELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekQsTUFBTSxDQUFDLFNBQVMsS0FBSyxFQUFFLEVBQUUsb0NBQW9DLENBQUMsQ0FBQztRQUMvRCxNQUFNLGdCQUFnQixHQUFHLEVBQUUsS0FBSyxFQUFFLFNBQVMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3ZGLE9BQU8sQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1FBRWhFLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFOUQsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkYsTUFBTSxZQUFZLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTVDLE1BQU0sR0FBRyxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRWhDLE1BQU0sQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNoQyxPQUFPLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JDLENBQUM7O0FBN0NNLGdCQUFJLEdBQVcsYUFBYSxDQUFDO0FBQ3BCLGtCQUFNLEdBQVcsTUFBTSxDQUFDLFdBQVcsQ0FBQztBQUVwRCwwREFBMEQ7QUFDMUMsc0JBQVUsR0FBa0I7SUFDMUMsV0FBVyxDQUFDLEtBQUs7SUFDakIsV0FBVyxDQUFDLEtBQUs7SUFDakIsV0FBVyxDQUFDLE1BQU07SUFDbEIsV0FBVyxDQUFDLE1BQU07SUFDbEIsV0FBVyxDQUFDLE1BQU07Q0FDbkIsQ0FBQztBQXNDSixNQUFNLE9BQU8saUJBQWtCLFNBQVEsV0FBVztJQWVoRCxZQUNVLFFBQWdCLEVBQ2hCLFlBQW9CLEVBQ3BCLFdBQW1CLEVBQ25CLGVBQXVCLEVBQ3ZCLFlBQW9CLEVBQ3BCLGdCQUF3QjtRQUVoQyxLQUFLLEVBQUUsQ0FBQztRQVBBLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDaEIsaUJBQVksR0FBWixZQUFZLENBQVE7UUFDcEIsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFDbkIsb0JBQWUsR0FBZixlQUFlLENBQVE7UUFDdkIsaUJBQVksR0FBWixZQUFZLENBQVE7UUFDcEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFRO0lBR2xDLENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQW1CO1FBQ3RDLE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQztRQUNyQixNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFFdkIsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1RCxNQUFNLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixDQUFDLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FDdEcsSUFBSSxDQUFDLFFBQVEsQ0FDZCxDQUFDLE9BQU8sQ0FDUCxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEVBQ3JHLE1BQU0sQ0FDUCxDQUFDO1FBQ0YsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN6RCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDM0QsSUFBSSxTQUFTLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDN0IsTUFBTSxJQUFJLHlCQUF5QixDQUFDLDREQUE0RCxDQUFDLENBQUM7UUFDcEcsQ0FBQztRQUNELElBQUksVUFBVSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQy9CLE1BQU0sSUFBSSx5QkFBeUIsQ0FBQyw4REFBOEQsQ0FBQyxDQUFDO1FBQ3RHLENBQUM7UUFDRCw2RUFBNkU7UUFDN0UsZ0RBQWdEO1FBQ2hELE1BQU0sZ0JBQWdCLEdBQUcsRUFBRSxLQUFLLEVBQUUsU0FBUyxHQUFHLFVBQVUsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzNHLE9BQU8sQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDaEUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUU5RCxNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDckcsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3hHLE1BQU0sTUFBTSxHQUFHLGlCQUFpQixDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztRQUVoRCxvRkFBb0Y7UUFDcEYsTUFBTSxHQUFHLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDdEQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFbkMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckMsQ0FBQzs7QUE3RE0sc0JBQUksR0FBVyxtQkFBbUIsQ0FBQztBQUMxQix3QkFBTSxHQUFXLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztBQUUxRCwwREFBMEQ7QUFDMUMsNEJBQVUsR0FBa0I7SUFDMUMsV0FBVyxDQUFDLEtBQUs7SUFDakIsV0FBVyxDQUFDLEtBQUs7SUFDakIsV0FBVyxDQUFDLE1BQU07SUFDbEIsV0FBVyxDQUFDLE1BQU07SUFDbEIsV0FBVyxDQUFDLE1BQU07SUFDbEIsV0FBVyxDQUFDLE1BQU07SUFDbEIsV0FBVyxDQUFDLE1BQU07Q0FDbkIsQ0FBQztBQW9ESixNQUFNLE9BQU8sUUFBUyxTQUFRLFdBQVc7SUFjdkMsWUFDVSxRQUFnQixFQUNoQixjQUFzQixFQUN0QixTQUFpQixFQUNqQixhQUFxQixFQUNyQixpQkFBeUI7UUFFakMsS0FBSyxFQUFFLENBQUM7UUFOQSxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2hCLG1CQUFjLEdBQWQsY0FBYyxDQUFRO1FBQ3RCLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFDakIsa0JBQWEsR0FBYixhQUFhLENBQVE7UUFDckIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFRO0lBR25DLENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQW1CO1FBQ3RDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUQsTUFBTSxDQUFDLGNBQWMsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixDQUFDLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUM5RyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUNqRixNQUFNLENBQ1AsQ0FBQztRQUVGLGtDQUFrQztRQUNsQyxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsQ0FBQztRQUNoRCxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDckUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDbkQsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFFN0QsTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLEtBQUssRUFBRSxXQUFXLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN4RixPQUFPLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRyxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRW5HLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFFakUsd0JBQXdCO1FBQ3hCLE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDOUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUV2QyxNQUFNLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDaEMsT0FBTyxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQyxDQUFDOztBQWhETSxhQUFJLEdBQVcsVUFBVSxDQUFDO0FBQ2pCLGVBQU0sR0FBVyxNQUFNLENBQUMsUUFBUSxDQUFDO0FBRWpELDBEQUEwRDtBQUMxQyxtQkFBVSxHQUFrQjtJQUMxQyxXQUFXLENBQUMsS0FBSztJQUNqQixXQUFXLENBQUMsS0FBSztJQUNqQixXQUFXLENBQUMsTUFBTTtJQUNsQixXQUFXLENBQUMsTUFBTTtJQUNsQixXQUFXLENBQUMsTUFBTTtJQUNsQixXQUFXLENBQUMsTUFBTTtDQUNuQixDQUFDIn0=
|
|
193
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzaGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdm0vb3Bjb2Rlcy9oYXNoaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsV0FBVyxFQUNYLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsaUJBQWlCLEdBQ2xCLE1BQU0sMEJBQTBCLENBQUM7QUFFbEMsT0FBTyxFQUFFLE1BQU0sSUFBSSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFHMUMsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFL0MsTUFBTSxPQUFPLFNBQVUsU0FBUSxXQUFXO0lBYXhDLFlBQW9CLFFBQWdCLEVBQVUsZ0JBQXdCLEVBQVUsaUJBQXlCO1FBQ3ZHLEtBQUssRUFBRSxDQUFDO1FBRFUsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBUTtRQUFVLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBUTtJQUV6RyxDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFtQjtRQUN0QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVELE9BQU8sQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBRWhELE1BQU0sUUFBUSxHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixF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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
2
|
import type { AvmContext } from '../avm_context.js';
|
|
3
|
-
import { type
|
|
3
|
+
import { type Gas } from '../avm_gas.js';
|
|
4
4
|
import { type BufferCursor } from '../serialization/buffer_cursor.js';
|
|
5
5
|
import { type Serializable } from '../serialization/bytecode_serialization.js';
|
|
6
6
|
import { Opcode, type OperandType } from '../serialization/instruction_serialization.js';
|
|
@@ -47,13 +47,9 @@ export declare abstract class Instruction {
|
|
|
47
47
|
};
|
|
48
48
|
/**
|
|
49
49
|
* Computes gas cost for the instruction based on its base cost and memory operations.
|
|
50
|
-
* @param memoryOps Memory operations performed by the instruction.
|
|
51
50
|
* @returns Gas cost.
|
|
52
51
|
*/
|
|
53
|
-
protected gasCost(
|
|
54
|
-
indirect: number;
|
|
55
|
-
dynMultiplier: number;
|
|
56
|
-
}>): import("../avm_gas.js").Gas;
|
|
52
|
+
protected gasCost(dynMultiplier?: number): Gas;
|
|
57
53
|
/**
|
|
58
54
|
* Returns the stringified type of the instruction.
|
|
59
55
|
* Instruction sub-classes should have a static `type` property.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instruction.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/instruction.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"instruction.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/instruction.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,KAAK,GAAG,EAAqD,MAAM,eAAe,CAAC;AAC5F,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC/E,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAA4B,MAAM,+CAA+C,CAAC;AAEnH,KAAK,sBAAsB,GAAG;IAC5B,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,WAAW,CAAC;CACnC,CAAC;AAEF;;;GAGG;AACH,8BAAsB,WAAW;IAC/B;;;;OAIG;aACa,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAE3D;;;;OAIG;IACI,QAAQ,IAAI,MAAM;WAUX,WAAW,CACvB,IAAI,EAAE,sBAAsB,GAAG;QAAE,UAAU,EAAE,WAAW,EAAE,CAAC;QAAC,EAAE,EAAE,GAAG,CAAA;KAAE,EACrE,GAAG,EAAE,YAAY,GAAG,MAAM,GACzB,WAAW;IAKP,SAAS,IAAI,MAAM;IAO1B;;;;;OAKG;IACI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,WAAW,GAAG,YAAY;IAShF;;;;;OAKG;WACW,EAAE,CAAC,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,WAAW,EAAE;2BAEjD,YAAY,GAAG,MAAM,KAAG,WAAW;;IAQ1D;;;OAGG;IACH,SAAS,CAAC,OAAO,CAAC,aAAa,GAAE,MAAU,GAAG,GAAG;IAMjD;;;OAGG;IACH,IAAW,IAAI,IAAI,MAAM,CAMxB;IAED;;;OAGG;IACH,IAAW,MAAM,IAAI,MAAM,CAM1B;CACF"}
|
|
@@ -61,17 +61,11 @@ export class Instruction {
|
|
|
61
61
|
}
|
|
62
62
|
/**
|
|
63
63
|
* Computes gas cost for the instruction based on its base cost and memory operations.
|
|
64
|
-
* @param memoryOps Memory operations performed by the instruction.
|
|
65
64
|
* @returns Gas cost.
|
|
66
65
|
*/
|
|
67
|
-
gasCost(
|
|
66
|
+
gasCost(dynMultiplier = 0) {
|
|
68
67
|
const baseGasCost = getBaseGasCost(this.opcode);
|
|
69
|
-
|
|
70
|
-
// Memory accounting will probably be removed.
|
|
71
|
-
// TODO(https://github.com/AztecProtocol/aztec-packages/issues/6861): reconsider.
|
|
72
|
-
// const memoryGasCost = getMemoryGasCost(memoryOps);
|
|
73
|
-
// const memoryGasCost = { l2Gas: 0, daGas: 0 };
|
|
74
|
-
const dynGasCost = mulGas(getDynamicGasCost(this.opcode), ops.dynMultiplier ?? 0);
|
|
68
|
+
const dynGasCost = mulGas(getDynamicGasCost(this.opcode), dynMultiplier);
|
|
75
69
|
return sumGas(baseGasCost, dynGasCost);
|
|
76
70
|
}
|
|
77
71
|
/**
|
|
@@ -97,4 +91,4 @@ export class Instruction {
|
|
|
97
91
|
return opcode;
|
|
98
92
|
}
|
|
99
93
|
}
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1Y3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXZtL29wY29kZXMvaW5zdHJ1Y3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sSUFBSSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFHMUMsT0FBTyxFQUFZLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzVGLE9BQU8sRUFBRSxNQUFNLEVBQW9CLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQU1uSDs7O0dBR0c7QUFDSCxNQUFNLE9BQWdCLFdBQVc7SUFRL0I7Ozs7T0FJRztJQUNJLFFBQVE7UUFDYixJQUFJLGNBQWMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDbEQsb0RBQW9EO1FBQ3BELEtBQUssTUFBTSxJQUFJLElBQUksTUFBTSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBMEIsRUFBRSxDQUFDO1lBQzdFLGNBQWMsSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQztRQUN6RCxDQUFDO1FBQ0QsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztJQUVELHdFQUF3RTtJQUNqRSxNQUFNLENBQUMsV0FBVyxDQUV2QixHQUEwQjtRQUUxQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsc0VBQXNFO0lBQy9ELFNBQVM7UUFDZCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBa0IsQ0FBQztRQUN0QyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxTQUFTLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsQ0FBQztRQUM1RCxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsS0FBSyxTQUFTLElBQUksS0FBSyxDQUFDLFVBQVUsS0FBSyxJQUFJLENBQUMsQ0FBQztRQUNwRSxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDN0QsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksRUFBRSxDQUFDLE1BQWMsRUFBRSxVQUF5QjtRQUNqRCxPQUFPLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRTtZQUM5QyxLQUFLLEVBQUUsR0FBVyxFQUFFO2dCQUNsQixPQUFPLFdBQVcsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQy9DLENBQUM7WUFDRCxVQUFVLEVBQUUsS0FBSztTQUNsQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsRUFBRSxDQUErQixVQUF5QjtRQUN0RSxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFO1lBQ3pCLFdBQVcsRUFBRSxDQUFDLEdBQTBCLEVBQWUsRUFBRTtnQkFDdkQsTUFBTSxHQUFHLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQztnQkFDekMsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQjtnQkFDNUMsT0FBTyxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQzNCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ08sT0FBTyxDQUFDLGdCQUF3QixDQUFDO1FBQ3pDLE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUN6RSxPQUFPLE1BQU0sQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQVcsSUFBSTtRQUNiLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFLLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBZSxDQUFDO1FBQzdFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxrREFBa0QsQ0FBQyxDQUFDO1FBQ2hILENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFXLE1BQU07UUFDZixNQUFNLE1BQU0sR0FBRyxRQUFRLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFpQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDOUYsSUFBSSxNQUFNLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN6RCxNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksb0RBQW9ELENBQUMsQ0FBQztRQUNsSCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztDQUNGIn0=
|
|
@@ -9,12 +9,11 @@ export declare const ThreeOperandWireFormat16: OperandType[];
|
|
|
9
9
|
*/
|
|
10
10
|
export declare abstract class ThreeOperandInstruction extends Instruction {
|
|
11
11
|
protected indirect: number;
|
|
12
|
-
protected inTag: number;
|
|
13
12
|
protected aOffset: number;
|
|
14
13
|
protected bOffset: number;
|
|
15
14
|
protected dstOffset: number;
|
|
16
15
|
static readonly wireFormat8: OperandType[];
|
|
17
16
|
static readonly wireFormat16: OperandType[];
|
|
18
|
-
constructor(indirect: number,
|
|
17
|
+
constructor(indirect: number, aOffset: number, bOffset: number, dstOffset: number);
|
|
19
18
|
}
|
|
20
19
|
//# sourceMappingURL=instruction_impl.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instruction_impl.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/instruction_impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qFAAqF;AACrF,eAAO,MAAM,uBAAuB,
|
|
1
|
+
{"version":3,"file":"instruction_impl.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/instruction_impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qFAAqF;AACrF,eAAO,MAAM,uBAAuB,eAMnC,CAAC;AACF,eAAO,MAAM,wBAAwB,eAMpC,CAAC;AAEF;;;GAGG;AACH,8BAAsB,uBAAwB,SAAQ,WAAW;IAK7D,SAAS,CAAC,QAAQ,EAAE,MAAM;IAC1B,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;gBAG3D,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM;CAI9B"}
|
|
@@ -7,10 +7,8 @@ export const ThreeOperandWireFormat8 = [
|
|
|
7
7
|
OperandType.UINT8,
|
|
8
8
|
OperandType.UINT8,
|
|
9
9
|
OperandType.UINT8,
|
|
10
|
-
OperandType.UINT8,
|
|
11
10
|
];
|
|
12
11
|
export const ThreeOperandWireFormat16 = [
|
|
13
|
-
OperandType.UINT8,
|
|
14
12
|
OperandType.UINT8,
|
|
15
13
|
OperandType.UINT8,
|
|
16
14
|
OperandType.UINT16,
|
|
@@ -22,10 +20,9 @@ export const ThreeOperandWireFormat16 = [
|
|
|
22
20
|
* indirect, inTag, and three operands.
|
|
23
21
|
*/
|
|
24
22
|
export class ThreeOperandInstruction extends Instruction {
|
|
25
|
-
constructor(indirect,
|
|
23
|
+
constructor(indirect, aOffset, bOffset, dstOffset) {
|
|
26
24
|
super();
|
|
27
25
|
this.indirect = indirect;
|
|
28
|
-
this.inTag = inTag;
|
|
29
26
|
this.aOffset = aOffset;
|
|
30
27
|
this.bOffset = bOffset;
|
|
31
28
|
this.dstOffset = dstOffset;
|
|
@@ -33,4 +30,4 @@ export class ThreeOperandInstruction extends Instruction {
|
|
|
33
30
|
}
|
|
34
31
|
ThreeOperandInstruction.wireFormat8 = ThreeOperandWireFormat8;
|
|
35
32
|
ThreeOperandInstruction.wireFormat16 = ThreeOperandWireFormat16;
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1Y3Rpb25faW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdm0vb3Bjb2Rlcy9pbnN0cnVjdGlvbl9pbXBsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFL0MscUZBQXFGO0FBQ3JGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHO0lBQ3JDLFdBQVcsQ0FBQyxLQUFLO0lBQ2pCLFdBQVcsQ0FBQyxLQUFLO0lBQ2pCLFdBQVcsQ0FBQyxLQUFLO0lBQ2pCLFdBQVcsQ0FBQyxLQUFLO0lBQ2pCLFdBQVcsQ0FBQyxLQUFLO0NBQ2xCLENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRztJQUN0QyxXQUFXLENBQUMsS0FBSztJQUNqQixXQUFXLENBQUMsS0FBSztJQUNqQixXQUFXLENBQUMsTUFBTTtJQUNsQixXQUFXLENBQUMsTUFBTTtJQUNsQixXQUFXLENBQUMsTUFBTTtDQUNuQixDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxPQUFnQix1QkFBd0IsU0FBUSxXQUFXO0lBSS9ELFlBQ1ksUUFBZ0IsRUFDaEIsT0FBZSxFQUNmLE9BQWUsRUFDZixTQUFpQjtRQUUzQixLQUFLLEVBQUUsQ0FBQztRQUxFLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDaEIsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixjQUFTLEdBQVQsU0FBUyxDQUFRO0lBRzdCLENBQUM7O0FBVmUsbUNBQVcsR0FBa0IsdUJBQXVCLENBQUM7QUFDckQsb0NBQVksR0FBa0Isd0JBQXdCLENBQUMifQ==
|
|
@@ -17,18 +17,6 @@ export declare class Set extends Instruction {
|
|
|
17
17
|
constructor(indirect: number, inTag: number, value: bigint | number, dstOffset: number);
|
|
18
18
|
execute(context: AvmContext): Promise<void>;
|
|
19
19
|
}
|
|
20
|
-
export declare class CMov extends Instruction {
|
|
21
|
-
private indirect;
|
|
22
|
-
private aOffset;
|
|
23
|
-
private bOffset;
|
|
24
|
-
private condOffset;
|
|
25
|
-
private dstOffset;
|
|
26
|
-
static readonly type: string;
|
|
27
|
-
static readonly opcode: Opcode;
|
|
28
|
-
static readonly wireFormat: OperandType[];
|
|
29
|
-
constructor(indirect: number, aOffset: number, bOffset: number, condOffset: number, dstOffset: number);
|
|
30
|
-
execute(context: AvmContext): Promise<void>;
|
|
31
|
-
}
|
|
32
20
|
export declare class Cast extends Instruction {
|
|
33
21
|
private indirect;
|
|
34
22
|
private dstTag;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBAAa,GAAI,SAAQ,WAAW;IAiDhC,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,SAAS;IAnDnB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAS;IAErC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAgB;IAE9C,gBAAuB,WAAW,EAAE,WAAW,EAAE,CAM/C;IACF,gBAAuB,YAAY,EAAE,WAAW,EAAE,CAMhD;IACF,gBAAuB,YAAY,EAAE,WAAW,EAAE,CAMhD;IACF,gBAAuB,YAAY,EAAE,WAAW,EAAE,CAMhD;IACF,gBAAuB,aAAa,EAAE,WAAW,EAAE,CAMjD;IACF,gBAAuB,YAAY,EAAE,WAAW,EAAE,CAMhD;gBAGQ,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,SAAS,EAAE,MAAM;IAKd,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBAAa,GAAI,SAAQ,WAAW;IAiDhC,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,SAAS;IAnDnB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAS;IAErC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAgB;IAE9C,gBAAuB,WAAW,EAAE,WAAW,EAAE,CAM/C;IACF,gBAAuB,YAAY,EAAE,WAAW,EAAE,CAMhD;IACF,gBAAuB,YAAY,EAAE,WAAW,EAAE,CAMhD;IACF,gBAAuB,YAAY,EAAE,WAAW,EAAE,CAMhD;IACF,gBAAuB,aAAa,EAAE,WAAW,EAAE,CAMjD;IACF,gBAAuB,YAAY,EAAE,WAAW,EAAE,CAMhD;gBAGQ,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,SAAS,EAAE,MAAM;IAKd,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAazD;AAED,qBAAa,IAAK,SAAQ,WAAW;IAmBvB,OAAO,CAAC,QAAQ;IAAU,OAAO,CAAC,MAAM;IAAU,OAAO,CAAC,SAAS;IAAU,OAAO,CAAC,SAAS;IAlB1G,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAU;IACtC,MAAM,CAAC,QAAQ,CAAC,MAAM,iBAAiB;IAEvC,MAAM,CAAC,QAAQ,CAAC,WAAW,gBAMzB;IACF,MAAM,CAAC,QAAQ,CAAC,YAAY,gBAM1B;gBAEkB,QAAQ,EAAE,MAAM,EAAU,MAAM,EAAE,MAAM,EAAU,SAAS,EAAE,MAAM,EAAU,SAAS,EAAE,MAAM;IAIrG,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAgBzD;AAED,qBAAa,GAAI,SAAQ,WAAW;IAkBtB,OAAO,CAAC,QAAQ;IAAU,OAAO,CAAC,SAAS;IAAU,OAAO,CAAC,SAAS;IAjBlF,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAS;IAErC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAgB;IAE9C,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,CAKxC;IACF,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,WAAW,EAAE,CAKzC;gBAEkB,QAAQ,EAAE,MAAM,EAAU,SAAS,EAAE,MAAM,EAAU,SAAS,EAAE,MAAM;IAI7E,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAezD;AAED,qBAAa,YAAa,SAAQ,WAAW;IAazC,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,SAAS;IAfnB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAkB;IAC9C,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAuB;IAErD,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAMvC;gBAGQ,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM;IAKd,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAkBzD"}
|
|
@@ -11,13 +11,14 @@ export class Set extends Instruction {
|
|
|
11
11
|
this.dstOffset = dstOffset;
|
|
12
12
|
}
|
|
13
13
|
async execute(context) {
|
|
14
|
-
const memoryOperations = { writes: 1, indirect: this.indirect };
|
|
15
14
|
const memory = context.machineState.memory.track(this.type);
|
|
16
|
-
context.machineState.consumeGas(this.gasCost(
|
|
17
|
-
const
|
|
15
|
+
context.machineState.consumeGas(this.gasCost());
|
|
16
|
+
const operands = [this.dstOffset];
|
|
17
|
+
const addressing = Addressing.fromWire(this.indirect, operands.length);
|
|
18
|
+
const [dstOffset] = addressing.resolve(operands, memory);
|
|
18
19
|
const res = TaggedMemory.buildFromTagTruncating(this.value, this.inTag);
|
|
19
20
|
memory.set(dstOffset, res);
|
|
20
|
-
memory.assert(
|
|
21
|
+
memory.assert({ writes: 1, addressing });
|
|
21
22
|
context.machineState.incrementPc();
|
|
22
23
|
}
|
|
23
24
|
}
|
|
@@ -66,40 +67,6 @@ Set.wireFormatFF = [
|
|
|
66
67
|
OperandType.FF, // const (value)
|
|
67
68
|
OperandType.UINT16, // dstOffset
|
|
68
69
|
];
|
|
69
|
-
export class CMov extends Instruction {
|
|
70
|
-
constructor(indirect, aOffset, bOffset, condOffset, dstOffset) {
|
|
71
|
-
super();
|
|
72
|
-
this.indirect = indirect;
|
|
73
|
-
this.aOffset = aOffset;
|
|
74
|
-
this.bOffset = bOffset;
|
|
75
|
-
this.condOffset = condOffset;
|
|
76
|
-
this.dstOffset = dstOffset;
|
|
77
|
-
}
|
|
78
|
-
async execute(context) {
|
|
79
|
-
const memoryOperations = { reads: 3, writes: 1, indirect: this.indirect };
|
|
80
|
-
const memory = context.machineState.memory.track(this.type);
|
|
81
|
-
context.machineState.consumeGas(this.gasCost(memoryOperations));
|
|
82
|
-
const [aOffset, bOffset, condOffset, dstOffset] = Addressing.fromWire(this.indirect).resolve([this.aOffset, this.bOffset, this.condOffset, this.dstOffset], memory);
|
|
83
|
-
const a = memory.get(aOffset);
|
|
84
|
-
const b = memory.get(bOffset);
|
|
85
|
-
const cond = memory.get(condOffset);
|
|
86
|
-
// TODO: reconsider toBigInt() here
|
|
87
|
-
memory.set(dstOffset, cond.toBigInt() > 0 ? a : b);
|
|
88
|
-
memory.assert(memoryOperations);
|
|
89
|
-
context.machineState.incrementPc();
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
CMov.type = 'CMOV';
|
|
93
|
-
CMov.opcode = Opcode.CMOV;
|
|
94
|
-
// Informs (de)serialization. See Instruction.deserialize.
|
|
95
|
-
CMov.wireFormat = [
|
|
96
|
-
OperandType.UINT8,
|
|
97
|
-
OperandType.UINT8,
|
|
98
|
-
OperandType.UINT32,
|
|
99
|
-
OperandType.UINT32,
|
|
100
|
-
OperandType.UINT32,
|
|
101
|
-
OperandType.UINT32,
|
|
102
|
-
];
|
|
103
70
|
export class Cast extends Instruction {
|
|
104
71
|
constructor(indirect, dstTag, srcOffset, dstOffset) {
|
|
105
72
|
super();
|
|
@@ -109,14 +76,15 @@ export class Cast extends Instruction {
|
|
|
109
76
|
this.dstOffset = dstOffset;
|
|
110
77
|
}
|
|
111
78
|
async execute(context) {
|
|
112
|
-
const memoryOperations = { reads: 1, writes: 1, indirect: this.indirect };
|
|
113
79
|
const memory = context.machineState.memory.track(this.type);
|
|
114
|
-
context.machineState.consumeGas(this.gasCost(
|
|
115
|
-
const
|
|
80
|
+
context.machineState.consumeGas(this.gasCost());
|
|
81
|
+
const operands = [this.srcOffset, this.dstOffset];
|
|
82
|
+
const addressing = Addressing.fromWire(this.indirect, operands.length);
|
|
83
|
+
const [srcOffset, dstOffset] = addressing.resolve(operands, memory);
|
|
116
84
|
const a = memory.get(srcOffset);
|
|
117
85
|
const casted = TaggedMemory.buildFromTagTruncating(a.toBigInt(), this.dstTag);
|
|
118
86
|
memory.set(dstOffset, casted);
|
|
119
|
-
memory.assert(
|
|
87
|
+
memory.assert({ reads: 1, writes: 1, addressing });
|
|
120
88
|
context.machineState.incrementPc();
|
|
121
89
|
}
|
|
122
90
|
}
|
|
@@ -144,13 +112,14 @@ export class Mov extends Instruction {
|
|
|
144
112
|
this.dstOffset = dstOffset;
|
|
145
113
|
}
|
|
146
114
|
async execute(context) {
|
|
147
|
-
const memoryOperations = { reads: 1, writes: 1, indirect: this.indirect };
|
|
148
115
|
const memory = context.machineState.memory.track(this.type);
|
|
149
|
-
context.machineState.consumeGas(this.gasCost(
|
|
150
|
-
const
|
|
116
|
+
context.machineState.consumeGas(this.gasCost());
|
|
117
|
+
const operands = [this.srcOffset, this.dstOffset];
|
|
118
|
+
const addressing = Addressing.fromWire(this.indirect, operands.length);
|
|
119
|
+
const [srcOffset, dstOffset] = addressing.resolve(operands, memory);
|
|
151
120
|
const a = memory.get(srcOffset);
|
|
152
121
|
memory.set(dstOffset, a);
|
|
153
|
-
memory.assert(
|
|
122
|
+
memory.assert({ reads: 1, writes: 1, addressing });
|
|
154
123
|
context.machineState.incrementPc();
|
|
155
124
|
}
|
|
156
125
|
}
|
|
@@ -180,14 +149,15 @@ export class CalldataCopy extends Instruction {
|
|
|
180
149
|
async execute(context) {
|
|
181
150
|
const memory = context.machineState.memory.track(this.type);
|
|
182
151
|
// We don't need to check tags here because: (1) the calldata is NOT in memory, and (2) we are the ones writing to destination.
|
|
183
|
-
const
|
|
152
|
+
const operands = [this.cdStartOffset, this.copySizeOffset, this.dstOffset];
|
|
153
|
+
const addressing = Addressing.fromWire(this.indirect, operands.length);
|
|
154
|
+
const [cdStartOffset, copySizeOffset, dstOffset] = addressing.resolve(operands, memory);
|
|
184
155
|
const cdStart = memory.get(cdStartOffset).toNumber();
|
|
185
156
|
const copySize = memory.get(copySizeOffset).toNumber();
|
|
186
|
-
|
|
187
|
-
context.machineState.consumeGas(this.gasCost({ ...memoryOperations, dynMultiplier: copySize }));
|
|
157
|
+
context.machineState.consumeGas(this.gasCost(copySize));
|
|
188
158
|
const transformedData = context.environment.calldata.slice(cdStart, cdStart + copySize).map(f => new Field(f));
|
|
189
159
|
memory.setSlice(dstOffset, transformedData);
|
|
190
|
-
memory.assert(
|
|
160
|
+
memory.assert({ reads: 2, writes: copySize, addressing });
|
|
191
161
|
context.machineState.incrementPc();
|
|
192
162
|
}
|
|
193
163
|
}
|
|
@@ -197,8 +167,8 @@ CalldataCopy.opcode = Opcode.CALLDATACOPY;
|
|
|
197
167
|
CalldataCopy.wireFormat = [
|
|
198
168
|
OperandType.UINT8,
|
|
199
169
|
OperandType.UINT8,
|
|
200
|
-
OperandType.
|
|
201
|
-
OperandType.
|
|
202
|
-
OperandType.
|
|
170
|
+
OperandType.UINT16,
|
|
171
|
+
OperandType.UINT16,
|
|
172
|
+
OperandType.UINT16,
|
|
203
173
|
];
|
|
204
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F2bS9vcGNvZGVzL21lbW9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDcEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUvQyxNQUFNLE9BQU8sR0FBSSxTQUFRLFdBQVc7SUFnRGxDLFlBQ1UsUUFBZ0IsRUFDaEIsS0FBYSxFQUNiLEtBQXNCLEVBQ3RCLFNBQWlCO1FBRXpCLEtBQUssRUFBRSxDQUFDO1FBTEEsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsVUFBSyxHQUFMLEtBQUssQ0FBaUI7UUFDdEIsY0FBUyxHQUFULFNBQVMsQ0FBUTtJQUczQixDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFtQjtRQUN0QyxNQUFNLGdCQUFnQixHQUFHLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hFLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUQsT0FBTyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFFaEUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElB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
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F2bS9vcGNvZGVzL21lbW9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDcEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUvQyxNQUFNLE9BQU8sR0FBSSxTQUFRLFdBQVc7SUFnRGxDLFlBQ1UsUUFBZ0IsRUFDaEIsS0FBYSxFQUNiLEtBQXNCLEVBQ3RCLFNBQWlCO1FBRXpCLEtBQUssRUFBRSxDQUFDO1FBTEEsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsVUFBSyxHQUFMLEtBQUssQ0FBaUI7UUFDdEIsY0FBUyxHQUFULFNBQVMsQ0FBUTtJQUczQixDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFtQjtRQUN0QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVELE9BQU8sQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBRWhELE1BQU0sUUFBUSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMs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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/misc.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBAAa,QAAS,SAAQ,WAAW;IAgBrC,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,gBAAgB;IAnB1B,MAAM,CAAC,IAAI,EAAE,MAAM,CAAc;IACjC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAmB;IACjD,MAAM,CAAC,QAAQ,CAAC,MAAM,yCAAsD;IAG5E,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAOvC;gBAGQ,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,MAAM;IAKrB,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/misc.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBAAa,QAAS,SAAQ,WAAW;IAgBrC,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,gBAAgB;IAnB1B,MAAM,CAAC,IAAI,EAAE,MAAM,CAAc;IACjC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAmB;IACjD,MAAM,CAAC,QAAQ,CAAC,MAAM,yCAAsD;IAG5E,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAOvC;gBAGQ,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,MAAM;IAKrB,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CA2BzD"}
|