@aztec/simulator 0.24.0 → 0.26.2
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/deserialize.d.ts +5 -0
- package/dest/acvm/deserialize.d.ts.map +1 -1
- package/dest/acvm/deserialize.js +8 -1
- package/dest/acvm/oracle/oracle.d.ts +5 -4
- package/dest/acvm/oracle/oracle.d.ts.map +1 -1
- package/dest/acvm/oracle/oracle.js +24 -11
- package/dest/acvm/oracle/typed_oracle.d.ts +7 -9
- package/dest/acvm/oracle/typed_oracle.d.ts.map +1 -1
- package/dest/acvm/oracle/typed_oracle.js +9 -9
- package/dest/avm/avm_context.d.ts +4 -4
- package/dest/avm/avm_context.d.ts.map +1 -1
- package/dest/avm/avm_context.js +6 -6
- package/dest/avm/avm_memory_types.d.ts +11 -2
- package/dest/avm/avm_memory_types.d.ts.map +1 -1
- package/dest/avm/avm_memory_types.js +11 -1
- package/dest/avm/avm_simulator.d.ts +6 -4
- package/dest/avm/avm_simulator.d.ts.map +1 -1
- package/dest/avm/avm_simulator.js +17 -18
- package/dest/avm/fixtures/index.d.ts +17 -5
- package/dest/avm/fixtures/index.d.ts.map +1 -1
- package/dest/avm/fixtures/index.js +19 -8
- package/dest/avm/journal/host_storage.d.ts.map +1 -1
- package/dest/avm/journal/host_storage.js +1 -1
- package/dest/avm/journal/journal.d.ts +78 -50
- package/dest/avm/journal/journal.d.ts.map +1 -1
- package/dest/avm/journal/journal.js +125 -169
- package/dest/avm/journal/nullifiers.d.ts +85 -0
- package/dest/avm/journal/nullifiers.d.ts.map +1 -0
- package/dest/avm/journal/nullifiers.js +147 -0
- package/dest/avm/journal/public_storage.d.ts +88 -0
- package/dest/avm/journal/public_storage.d.ts.map +1 -0
- package/dest/avm/journal/public_storage.js +135 -0
- package/dest/avm/journal/trace.d.ts +43 -0
- package/dest/avm/journal/trace.d.ts.map +1 -0
- package/dest/avm/journal/trace.js +204 -0
- package/dest/avm/journal/trace_types.d.ts +26 -0
- package/dest/avm/journal/trace_types.d.ts.map +1 -0
- package/dest/avm/journal/trace_types.js +6 -0
- package/dest/avm/opcodes/accrued_substate.d.ts +37 -4
- package/dest/avm/opcodes/accrued_substate.d.ts.map +1 -1
- package/dest/avm/opcodes/accrued_substate.js +109 -12
- package/dest/avm/opcodes/comparators.d.ts.map +1 -1
- package/dest/avm/opcodes/comparators.js +5 -8
- package/dest/avm/opcodes/environment_getters.d.ts +14 -13
- package/dest/avm/opcodes/environment_getters.d.ts.map +1 -1
- package/dest/avm/opcodes/environment_getters.js +1 -1
- package/dest/avm/opcodes/external_calls.js +5 -5
- package/dest/avm/opcodes/hashing.d.ts +48 -0
- package/dest/avm/opcodes/hashing.d.ts.map +1 -0
- package/dest/avm/opcodes/hashing.js +127 -0
- package/dest/avm/opcodes/memory.d.ts.map +1 -1
- package/dest/avm/opcodes/memory.js +1 -1
- package/dest/avm/opcodes/storage.d.ts.map +1 -1
- package/dest/avm/opcodes/storage.js +3 -3
- package/dest/avm/serialization/bytecode_serialization.d.ts.map +1 -1
- package/dest/avm/serialization/bytecode_serialization.js +12 -8
- package/dest/avm/serialization/instruction_serialization.d.ts +10 -7
- package/dest/avm/serialization/instruction_serialization.d.ts.map +1 -1
- package/dest/avm/serialization/instruction_serialization.js +12 -9
- package/dest/avm/temporary_executor_migration.d.ts.map +1 -1
- package/dest/avm/temporary_executor_migration.js +5 -5
- package/dest/client/client_execution_context.d.ts +9 -5
- package/dest/client/client_execution_context.d.ts.map +1 -1
- package/dest/client/client_execution_context.js +46 -24
- package/dest/client/db_oracle.d.ts +7 -0
- package/dest/client/db_oracle.d.ts.map +1 -1
- package/dest/client/db_oracle.js +1 -1
- package/dest/client/execution_note_cache.js +1 -1
- package/dest/client/execution_result.d.ts +2 -2
- package/dest/client/execution_result.d.ts.map +1 -1
- package/dest/client/private_execution.d.ts.map +1 -1
- package/dest/client/private_execution.js +4 -4
- package/dest/client/simulator.d.ts +1 -1
- package/dest/client/simulator.d.ts.map +1 -1
- package/dest/client/simulator.js +3 -2
- package/dest/client/view_data_oracle.d.ts +9 -2
- package/dest/client/view_data_oracle.d.ts.map +1 -1
- package/dest/client/view_data_oracle.js +13 -5
- package/dest/public/db.d.ts +17 -4
- package/dest/public/db.d.ts.map +1 -1
- package/dest/public/execution.d.ts +9 -4
- package/dest/public/execution.d.ts.map +1 -1
- package/dest/public/execution.js +17 -4
- package/dest/public/executor.d.ts.map +1 -1
- package/dest/public/executor.js +18 -9
- package/dest/public/public_execution_context.d.ts +5 -4
- package/dest/public/public_execution_context.d.ts.map +1 -1
- package/dest/public/public_execution_context.js +23 -12
- package/dest/public/state_actions.js +2 -2
- package/dest/test/utils.js +4 -4
- package/dest/utils.js +2 -3
- package/package.json +6 -5
- package/src/acvm/deserialize.ts +8 -0
- package/src/acvm/oracle/oracle.ts +30 -6
- package/src/acvm/oracle/typed_oracle.ts +13 -5
- package/src/avm/avm_context.ts +5 -5
- package/src/avm/avm_memory_types.ts +18 -3
- package/src/avm/avm_simulator.ts +22 -24
- package/src/avm/fixtures/index.ts +34 -9
- package/src/avm/journal/host_storage.ts +5 -11
- package/src/avm/journal/journal.ts +147 -182
- package/src/avm/journal/nullifiers.ts +170 -0
- package/src/avm/journal/public_storage.ts +149 -0
- package/src/avm/journal/trace.ts +223 -0
- package/src/avm/journal/trace_types.ts +79 -0
- package/src/avm/opcodes/accrued_substate.ts +132 -10
- package/src/avm/opcodes/comparators.ts +4 -7
- package/src/avm/opcodes/environment_getters.ts +15 -13
- package/src/avm/opcodes/external_calls.ts +4 -4
- package/src/avm/opcodes/hashing.ts +170 -0
- package/src/avm/opcodes/memory.ts +1 -0
- package/src/avm/opcodes/storage.ts +5 -2
- package/src/avm/serialization/bytecode_serialization.ts +13 -6
- package/src/avm/serialization/instruction_serialization.ts +6 -3
- package/src/avm/temporary_executor_migration.ts +4 -3
- package/src/client/client_execution_context.ts +53 -23
- package/src/client/db_oracle.ts +8 -0
- package/src/client/execution_note_cache.ts +1 -1
- package/src/client/execution_result.ts +2 -2
- package/src/client/private_execution.ts +5 -4
- package/src/client/simulator.ts +2 -1
- package/src/client/view_data_oracle.ts +14 -4
- package/src/public/db.ts +19 -4
- package/src/public/execution.ts +30 -6
- package/src/public/executor.ts +29 -9
- package/src/public/public_execution_context.ts +36 -12
- package/src/public/state_actions.ts +1 -1
- package/src/test/utils.ts +3 -3
- package/src/utils.ts +1 -1
|
@@ -1,6 +1,37 @@
|
|
|
1
|
+
import { Uint8 } from '../avm_memory_types.js';
|
|
2
|
+
import { InstructionExecutionError } from '../errors.js';
|
|
3
|
+
import { NullifierCollisionError } from '../journal/nullifiers.js';
|
|
1
4
|
import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
|
|
5
|
+
import { Addressing } from './addressing_mode.js';
|
|
2
6
|
import { Instruction } from './instruction.js';
|
|
3
7
|
import { StaticCallStorageAlterError } from './storage.js';
|
|
8
|
+
export class NoteHashExists extends Instruction {
|
|
9
|
+
constructor(indirect, noteHashOffset, leafIndexOffset, existsOffset) {
|
|
10
|
+
super();
|
|
11
|
+
this.indirect = indirect;
|
|
12
|
+
this.noteHashOffset = noteHashOffset;
|
|
13
|
+
this.leafIndexOffset = leafIndexOffset;
|
|
14
|
+
this.existsOffset = existsOffset;
|
|
15
|
+
}
|
|
16
|
+
async execute(context) {
|
|
17
|
+
// Note that this instruction accepts any type in memory, and converts to Field.
|
|
18
|
+
const noteHash = context.machineState.memory.get(this.noteHashOffset).toFr();
|
|
19
|
+
const leafIndex = context.machineState.memory.get(this.leafIndexOffset).toFr();
|
|
20
|
+
const exists = await context.persistableState.checkNoteHashExists(context.environment.storageAddress, noteHash, leafIndex);
|
|
21
|
+
context.machineState.memory.set(this.existsOffset, exists ? new Uint8(1) : new Uint8(0));
|
|
22
|
+
context.machineState.incrementPc();
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
NoteHashExists.type = 'NOTEHASHEXISTS';
|
|
26
|
+
NoteHashExists.opcode = Opcode.NOTEHASHEXISTS;
|
|
27
|
+
// Informs (de)serialization. See Instruction.deserialize.
|
|
28
|
+
NoteHashExists.wireFormat = [
|
|
29
|
+
OperandType.UINT8,
|
|
30
|
+
OperandType.UINT8,
|
|
31
|
+
OperandType.UINT32,
|
|
32
|
+
OperandType.UINT32,
|
|
33
|
+
OperandType.UINT32,
|
|
34
|
+
];
|
|
4
35
|
export class EmitNoteHash extends Instruction {
|
|
5
36
|
constructor(indirect, noteHashOffset) {
|
|
6
37
|
super();
|
|
@@ -12,7 +43,7 @@ export class EmitNoteHash extends Instruction {
|
|
|
12
43
|
throw new StaticCallStorageAlterError();
|
|
13
44
|
}
|
|
14
45
|
const noteHash = context.machineState.memory.get(this.noteHashOffset).toFr();
|
|
15
|
-
context.
|
|
46
|
+
context.persistableState.writeNoteHash(noteHash);
|
|
16
47
|
context.machineState.incrementPc();
|
|
17
48
|
}
|
|
18
49
|
}
|
|
@@ -20,6 +51,24 @@ EmitNoteHash.type = 'EMITNOTEHASH';
|
|
|
20
51
|
EmitNoteHash.opcode = Opcode.EMITNOTEHASH;
|
|
21
52
|
// Informs (de)serialization. See Instruction.deserialize.
|
|
22
53
|
EmitNoteHash.wireFormat = [OperandType.UINT8, OperandType.UINT8, OperandType.UINT32];
|
|
54
|
+
export class NullifierExists extends Instruction {
|
|
55
|
+
constructor(indirect, nullifierOffset, existsOffset) {
|
|
56
|
+
super();
|
|
57
|
+
this.indirect = indirect;
|
|
58
|
+
this.nullifierOffset = nullifierOffset;
|
|
59
|
+
this.existsOffset = existsOffset;
|
|
60
|
+
}
|
|
61
|
+
async execute(context) {
|
|
62
|
+
const nullifier = context.machineState.memory.get(this.nullifierOffset).toFr();
|
|
63
|
+
const exists = await context.persistableState.checkNullifierExists(context.environment.storageAddress, nullifier);
|
|
64
|
+
context.machineState.memory.set(this.existsOffset, exists ? new Uint8(1) : new Uint8(0));
|
|
65
|
+
context.machineState.incrementPc();
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
NullifierExists.type = 'NULLIFIEREXISTS';
|
|
69
|
+
NullifierExists.opcode = Opcode.NULLIFIEREXISTS;
|
|
70
|
+
// Informs (de)serialization. See Instruction.deserialize.
|
|
71
|
+
NullifierExists.wireFormat = [OperandType.UINT8, OperandType.UINT8, OperandType.UINT32, OperandType.UINT32];
|
|
23
72
|
export class EmitNullifier extends Instruction {
|
|
24
73
|
constructor(indirect, nullifierOffset) {
|
|
25
74
|
super();
|
|
@@ -31,7 +80,18 @@ export class EmitNullifier extends Instruction {
|
|
|
31
80
|
throw new StaticCallStorageAlterError();
|
|
32
81
|
}
|
|
33
82
|
const nullifier = context.machineState.memory.get(this.nullifierOffset).toFr();
|
|
34
|
-
|
|
83
|
+
try {
|
|
84
|
+
await context.persistableState.writeNullifier(context.environment.storageAddress, nullifier);
|
|
85
|
+
}
|
|
86
|
+
catch (e) {
|
|
87
|
+
if (e instanceof NullifierCollisionError) {
|
|
88
|
+
// Error is known/expected, raise as InstructionExecutionError that the will lead the simulator to revert this call
|
|
89
|
+
throw new InstructionExecutionError(`Attempted to emit duplicate nullifier ${nullifier} (storage address: ${context.environment.storageAddress}).`);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
throw e;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
35
95
|
context.machineState.incrementPc();
|
|
36
96
|
}
|
|
37
97
|
}
|
|
@@ -39,10 +99,37 @@ EmitNullifier.type = 'EMITNULLIFIER';
|
|
|
39
99
|
EmitNullifier.opcode = Opcode.EMITNULLIFIER;
|
|
40
100
|
// Informs (de)serialization. See Instruction.deserialize.
|
|
41
101
|
EmitNullifier.wireFormat = [OperandType.UINT8, OperandType.UINT8, OperandType.UINT32];
|
|
102
|
+
export class L1ToL2MessageExists extends Instruction {
|
|
103
|
+
constructor(indirect, msgHashOffset, msgLeafIndexOffset, existsOffset) {
|
|
104
|
+
super();
|
|
105
|
+
this.indirect = indirect;
|
|
106
|
+
this.msgHashOffset = msgHashOffset;
|
|
107
|
+
this.msgLeafIndexOffset = msgLeafIndexOffset;
|
|
108
|
+
this.existsOffset = existsOffset;
|
|
109
|
+
}
|
|
110
|
+
async execute(context) {
|
|
111
|
+
const msgHash = context.machineState.memory.get(this.msgHashOffset).toFr();
|
|
112
|
+
const msgLeafIndex = context.machineState.memory.get(this.msgLeafIndexOffset).toFr();
|
|
113
|
+
const exists = await context.persistableState.checkL1ToL2MessageExists(msgHash, msgLeafIndex);
|
|
114
|
+
context.machineState.memory.set(this.existsOffset, exists ? new Uint8(1) : new Uint8(0));
|
|
115
|
+
context.machineState.incrementPc();
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
L1ToL2MessageExists.type = 'L1TOL2MSGEXISTS';
|
|
119
|
+
L1ToL2MessageExists.opcode = Opcode.L1TOL2MSGEXISTS;
|
|
120
|
+
// Informs (de)serialization. See Instruction.deserialize.
|
|
121
|
+
L1ToL2MessageExists.wireFormat = [
|
|
122
|
+
OperandType.UINT8,
|
|
123
|
+
OperandType.UINT8,
|
|
124
|
+
OperandType.UINT32,
|
|
125
|
+
OperandType.UINT32,
|
|
126
|
+
OperandType.UINT32,
|
|
127
|
+
];
|
|
42
128
|
export class EmitUnencryptedLog extends Instruction {
|
|
43
|
-
constructor(indirect, logOffset, logSize) {
|
|
129
|
+
constructor(indirect, eventSelectorOffset, logOffset, logSize) {
|
|
44
130
|
super();
|
|
45
131
|
this.indirect = indirect;
|
|
132
|
+
this.eventSelectorOffset = eventSelectorOffset;
|
|
46
133
|
this.logOffset = logOffset;
|
|
47
134
|
this.logSize = logSize;
|
|
48
135
|
}
|
|
@@ -50,28 +137,38 @@ export class EmitUnencryptedLog extends Instruction {
|
|
|
50
137
|
if (context.environment.isStaticCall) {
|
|
51
138
|
throw new StaticCallStorageAlterError();
|
|
52
139
|
}
|
|
53
|
-
const
|
|
54
|
-
context.
|
|
140
|
+
const [eventSelectorOffset, logOffset] = Addressing.fromWire(this.indirect).resolve([this.eventSelectorOffset, this.logOffset], context.machineState.memory);
|
|
141
|
+
const contractAddress = context.environment.address;
|
|
142
|
+
const event = context.machineState.memory.get(eventSelectorOffset).toFr();
|
|
143
|
+
const log = context.machineState.memory.getSlice(logOffset, this.logSize).map(f => f.toFr());
|
|
144
|
+
context.persistableState.writeLog(contractAddress, event, log);
|
|
55
145
|
context.machineState.incrementPc();
|
|
56
146
|
}
|
|
57
147
|
}
|
|
58
148
|
EmitUnencryptedLog.type = 'EMITUNENCRYPTEDLOG';
|
|
59
149
|
EmitUnencryptedLog.opcode = Opcode.EMITUNENCRYPTEDLOG;
|
|
60
150
|
// Informs (de)serialization. See Instruction.deserialize.
|
|
61
|
-
EmitUnencryptedLog.wireFormat = [
|
|
151
|
+
EmitUnencryptedLog.wireFormat = [
|
|
152
|
+
OperandType.UINT8,
|
|
153
|
+
OperandType.UINT8,
|
|
154
|
+
OperandType.UINT32,
|
|
155
|
+
OperandType.UINT32,
|
|
156
|
+
OperandType.UINT32,
|
|
157
|
+
];
|
|
62
158
|
export class SendL2ToL1Message extends Instruction {
|
|
63
|
-
constructor(indirect,
|
|
159
|
+
constructor(indirect, recipientOffset, contentOffset) {
|
|
64
160
|
super();
|
|
65
161
|
this.indirect = indirect;
|
|
66
|
-
this.
|
|
67
|
-
this.
|
|
162
|
+
this.recipientOffset = recipientOffset;
|
|
163
|
+
this.contentOffset = contentOffset;
|
|
68
164
|
}
|
|
69
165
|
async execute(context) {
|
|
70
166
|
if (context.environment.isStaticCall) {
|
|
71
167
|
throw new StaticCallStorageAlterError();
|
|
72
168
|
}
|
|
73
|
-
const
|
|
74
|
-
context.
|
|
169
|
+
const recipient = context.machineState.memory.get(this.recipientOffset).toFr();
|
|
170
|
+
const content = context.machineState.memory.get(this.contentOffset).toFr();
|
|
171
|
+
context.persistableState.writeL1Message(recipient, content);
|
|
75
172
|
context.machineState.incrementPc();
|
|
76
173
|
}
|
|
77
174
|
}
|
|
@@ -79,4 +176,4 @@ SendL2ToL1Message.type = 'SENDL2TOL1MSG';
|
|
|
79
176
|
SendL2ToL1Message.opcode = Opcode.SENDL2TOL1MSG;
|
|
80
177
|
// Informs (de)serialization. See Instruction.deserialize.
|
|
81
178
|
SendL2ToL1Message.wireFormat = [OperandType.UINT8, OperandType.UINT8, OperandType.UINT32, OperandType.UINT32];
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjcnVlZF9zdWJzdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdm0vb3Bjb2Rlcy9hY2NydWVkX3N1YnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNwRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQy9DLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUzRCxNQUFNLE9BQU8sY0FBZSxTQUFRLFdBQVc7SUFZN0MsWUFDVSxRQUFnQixFQUNoQixjQUFzQixFQUN0QixlQUF1QixFQUN2QixZQUFvQjtRQUU1QixLQUFLLEVBQUUsQ0FBQztRQUxBLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDaEIsbUJBQWMsR0FBZCxjQUFjLENBQVE7UUFDdEIsb0JBQWUsR0FBZixlQUFlLENBQVE7UUFDdkIsaUJBQVksR0FBWixZQUFZLENBQVE7SUFHOUIsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBbUI7UUFDL0IsZ0ZBQWdGO1FBQ2hGLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDN0UsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUUvRSxNQUFNLE1BQU0sR0FBRyxNQUFNLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FDL0QsT0FBTyxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQ2xDLFFBQVEsRUFDUixTQUFTLENBQ1YsQ0FBQztRQUNGLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFekYsT0FBTyxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQyxDQUFDOztBQWpDTSxtQkFBSSxHQUFXLGdCQUFnQixDQUFDO0FBQ3ZCLHFCQUFNLEdBQVcsTUFBTSxDQUFDLGNBQWMsQ0FBQztBQUN2RCwwREFBMEQ7QUFDMUMseUJBQVUsR0FBRztJQUMzQixXQUFXLENBQUMsS0FBSztJQUNqQixXQUFXLENBQUMsS0FBSztJQUNqQixXQUFXLENBQUMsTUFBTTtJQUNsQixXQUFXLENBQUMsTUFBTTtJQUNsQixXQUFXLENBQUMsTUFBTTtDQUNuQixDQUFDO0FBMkJKLE1BQU0sT0FBTyxZQUFhLFNBQVEsV0FBVztJQU0zQyxZQUFvQixRQUFnQixFQUFVLGNBQXNCO1FBQ2xFLEtBQUssRUFBRSxDQUFDO1FBRFUsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUFVLG1CQUFjLEdBQWQsY0FBYyxDQUFRO0lBRXBFLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQW1CO1FBQy9CLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNyQyxNQUFNLElBQUksMkJBQTJCLEVBQUUsQ0FBQztRQUMxQyxDQUFDO1FBRUQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM3RSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRWpELE9BQU8sQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckMsQ0FBQzs7QUFsQk0saUJBQUksR0FBVyxjQUFjLENBQUM7QUFDckIsbUJBQU0sR0FBVyxNQUFNLENBQUMsWUFBWSxDQUFDO0FBQ3JELDBEQUEwRDtBQUMxQyx1QkFBVSxHQUFHLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQWtCMUYsTUFBTSxPQUFPLGVBQWdCLFNBQVEsV0FBVztJQU05QyxZQUFvQixRQUFnQixFQUFVLGVBQXVCLEVBQVUsWUFBb0I7UUFDakcsS0FBSyxFQUFFLENBQUM7UUFEVSxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQVUsb0JBQWUsR0FBZixlQUFlLENBQVE7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBUTtJQUVuRyxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFtQjtRQUMvQixNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQy9FLE1BQU0sTUFBTSxHQUFHLE1BQU0sT0FBTyxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRWxILE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFekYsT0FBTyxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQyxDQUFDOztBQWhCTSxvQkFBSSxHQUFXLGlCQUFpQixDQUFDO0FBQ3hCLHNCQUFNLEdBQVcsTUFBTSxDQUFDLGVBQWUsQ0FBQztBQUN4RCwwREFBMEQ7QUFDMUMsMEJBQVUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQWdCOUcsTUFBTSxPQUFPLGFBQWMsU0FBUSxXQUFXO0lBTTVDLFlBQW9CLFFBQWdCLEVBQVUsZUFBdUI7UUFDbkUsS0FBSyxFQUFFLENBQUM7UUFEVSxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQVUsb0JBQWUsR0FBZixlQUFlLENBQVE7SUFFckUsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBbUI7UUFDL0IsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3JDLE1BQU0sSUFBSSwyQkFBMkIsRUFBRSxDQUFDO1FBQzFDLENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQy9FLElBQUksQ0FBQztZQUNILE1BQU0sT0FBTyxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUMvRixDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxZQUFZLHVCQUF1QixFQUFFLENBQUM7Z0JBQ3pDLG1IQUFtSDtnQkFDbkgsTUFBTSxJQUFJLHlCQUF5QixDQUNqQyx5Q0FBeUMsU0FBUyxzQkFBc0IsT0FBTyxDQUFDLFdBQVcsQ0FBQyxjQUFjLElBQUksQ0FDL0csQ0FBQztZQUNKLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLENBQUMsQ0FBQztZQUNWLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQyxDQUFDOztBQTdCTSxrQkFBSSxHQUFXLGVBQWUsQ0FBQztBQUN0QixvQkFBTSxHQUFXLE1BQU0sQ0FBQyxhQUFhLENBQUM7QUFDdEQsMERBQTBEO0FBQzFDLHdCQUFVLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBNkIxRixNQUFNLE9BQU8sbUJBQW9CLFNBQVEsV0FBVztJQVlsRCxZQUNVLFFBQWdCLEVBQ2hCLGFBQXFCLEVBQ3JCLGtCQUEwQixFQUMxQixZQUFvQjtRQUU1QixLQUFLLEVBQUUsQ0FBQztRQUxBLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDaEIsa0JBQWEsR0FBYixhQUFhLENBQVE7UUFDckIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFRO1FBQzFCLGlCQUFZLEdBQVosWUFBWSxDQUFRO0lBRzlCLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQW1CO1FBQy9CLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0UsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JGLE1BQU0sTUFBTSxHQUFHLE1BQU0sT0FBTyxDQUFDLGdCQUFnQixDQUFDLHdCQUF3QixDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQztRQUM5RixPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXpGLE9BQU8sQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckMsQ0FBQzs7QUEzQk0sd0JBQUksR0FBVyxpQkFBaUIsQ0FBQztBQUN4QiwwQkFBTSxHQUFXLE1BQU0sQ0FBQyxlQUFlLENBQUM7QUFDeEQsMERBQTBEO0FBQzFDLDhCQUFVLEdBQUc7SUFDM0IsV0FBVyxDQUFDLEtBQUs7SUFDakIsV0FBVyxDQUFDLEtBQUs7SUFDakIsV0FBVyxDQUFDLE1BQU07SUFDbEIsV0FBVyxDQUFDLE1BQU07SUFDbEIsV0FBVyxDQUFDLE1BQU07Q0FDbkIsQ0FBQztBQXFCSixNQUFNLE9BQU8sa0JBQW1CLFNBQVEsV0FBVztJQVlqRCxZQUNVLFFBQWdCLEVBQ2hCLG1CQUEyQixFQUMzQixTQUFpQixFQUNqQixPQUFlO1FBRXZCLEtBQUssRUFBRSxDQUFDO1FBTEEsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQVE7UUFDM0IsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUNqQixZQUFPLEdBQVAsT0FBTyxDQUFRO0lBR3pCLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQW1CO1FBQy9CLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNyQyxNQUFNLElBQUksMkJBQTJCLEVBQUUsQ0FBQztRQUMxQyxDQUFDO1FBRUQsTUFBTSxDQUFDLG1CQUFtQixFQUFFLFNBQVMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FDakYsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUMxQyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FDNUIsQ0FBQztRQUVGLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDO1FBQ3BELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFFLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzdGLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztRQUUvRCxPQUFPLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JDLENBQUM7O0FBcENNLHVCQUFJLEdBQVcsb0JBQW9CLENBQUM7QUFDM0IseUJBQU0sR0FBVyxNQUFNLENBQUMsa0JBQWtCLENBQUM7QUFDM0QsMERBQTBEO0FBQzFDLDZCQUFVLEdBQUc7SUFDM0IsV0FBVyxDQUFDLEtBQUs7SUFDakIsV0FBVyxDQUFDLEtBQUs7SUFDakIsV0FBVyxDQUFDLE1BQU07SUFDbEIsV0FBVyxDQUFDLE1BQU07SUFDbEIsV0FBVyxDQUFDLE1BQU07Q0FDbkIsQ0FBQztBQThCSixNQUFNLE9BQU8saUJBQWtCLFNBQVEsV0FBVztJQU1oRCxZQUFvQixRQUFnQixFQUFVLGVBQXVCLEVBQVUsYUFBcUI7UUFDbEcsS0FBSyxFQUFFLENBQUM7UUFEVSxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQVUsb0JBQWUsR0FBZixlQUFlLENBQVE7UUFBVSxrQkFBYSxHQUFiLGFBQWEsQ0FBUTtJQUVwRyxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFtQjtRQUMvQixJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDckMsTUFBTSxJQUFJLDJCQUEyQixFQUFFLENBQUM7UUFDMUMsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDL0UsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzRSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUU1RCxPQUFPLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JDLENBQUM7O0FBbkJNLHNCQUFJLEdBQVcsZUFBZSxDQUFDO0FBQ3RCLHdCQUFNLEdBQVcsTUFBTSxDQUFDLGFBQWEsQ0FBQztBQUN0RCwwREFBMEQ7QUFDMUMsNEJBQVUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comparators.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/comparators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"comparators.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/comparators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,+CAA+C,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,qBAAa,EAAG,SAAQ,uBAAuB;IAC7C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAQ;IACpC,MAAM,CAAC,QAAQ,CAAC,MAAM,aAAa;gBAEvB,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAI1F,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAYlD;AAED,qBAAa,EAAG,SAAQ,uBAAuB;IAC7C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAQ;IACpC,MAAM,CAAC,QAAQ,CAAC,MAAM,aAAa;gBAEvB,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAI1F,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAYlD;AAED,qBAAa,GAAI,SAAQ,uBAAuB;IAC9C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAS;IACrC,MAAM,CAAC,QAAQ,CAAC,MAAM,cAAc;gBAExB,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAI1F,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAYlD"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { TaggedMemory } from '../avm_memory_types.js';
|
|
2
1
|
import { Opcode } from '../serialization/instruction_serialization.js';
|
|
3
2
|
import { ThreeOperandInstruction } from './instruction_impl.js';
|
|
4
3
|
export class Eq extends ThreeOperandInstruction {
|
|
@@ -23,9 +22,8 @@ export class Lt extends ThreeOperandInstruction {
|
|
|
23
22
|
}
|
|
24
23
|
async execute(context) {
|
|
25
24
|
context.machineState.memory.checkTags(this.inTag, this.aOffset, this.bOffset);
|
|
26
|
-
|
|
27
|
-
const
|
|
28
|
-
const b = context.machineState.memory.getAs(this.bOffset);
|
|
25
|
+
const a = context.machineState.memory.get(this.aOffset);
|
|
26
|
+
const b = context.machineState.memory.get(this.bOffset);
|
|
29
27
|
// Result will be of the same type as 'a'.
|
|
30
28
|
const dest = a.build(a.lt(b) ? 1n : 0n);
|
|
31
29
|
context.machineState.memory.set(this.dstOffset, dest);
|
|
@@ -40,9 +38,8 @@ export class Lte extends ThreeOperandInstruction {
|
|
|
40
38
|
}
|
|
41
39
|
async execute(context) {
|
|
42
40
|
context.machineState.memory.checkTags(this.inTag, this.aOffset, this.bOffset);
|
|
43
|
-
|
|
44
|
-
const
|
|
45
|
-
const b = context.machineState.memory.getAs(this.bOffset);
|
|
41
|
+
const a = context.machineState.memory.get(this.aOffset);
|
|
42
|
+
const b = context.machineState.memory.get(this.bOffset);
|
|
46
43
|
// Result will be of the same type as 'a'.
|
|
47
44
|
const dest = a.build(a.equals(b) || a.lt(b) ? 1n : 0n);
|
|
48
45
|
context.machineState.memory.set(this.dstOffset, dest);
|
|
@@ -51,4 +48,4 @@ export class Lte extends ThreeOperandInstruction {
|
|
|
51
48
|
}
|
|
52
49
|
Lte.type = 'LTE';
|
|
53
50
|
Lte.opcode = Opcode.LTE;
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXZtL29wY29kZXMvY29tcGFyYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWhFLE1BQU0sT0FBTyxFQUFHLFNBQVEsdUJBQXVCO0lBSTdDLFlBQVksUUFBZ0IsRUFBRSxLQUFhLEVBQUUsT0FBZSxFQUFFLE9BQWUsRUFBRSxTQUFpQjtRQUM5RixLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQW1CO1FBQy9CLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTlFLE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEQsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV4RCwwQ0FBMEM7UUFDMUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxF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
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Fr } from '@aztec/circuits.js';
|
|
1
2
|
import type { AvmContext } from '../avm_context.js';
|
|
2
3
|
import type { AvmExecutionEnvironment } from '../avm_execution_environment.js';
|
|
3
4
|
import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
|
|
@@ -8,67 +9,67 @@ declare abstract class GetterInstruction extends Instruction {
|
|
|
8
9
|
static readonly wireFormat: OperandType[];
|
|
9
10
|
constructor(indirect: number, dstOffset: number);
|
|
10
11
|
execute(context: AvmContext): Promise<void>;
|
|
11
|
-
protected abstract getIt(env: AvmExecutionEnvironment):
|
|
12
|
+
protected abstract getIt(env: AvmExecutionEnvironment): Fr | number | bigint;
|
|
12
13
|
}
|
|
13
14
|
export declare class Address extends GetterInstruction {
|
|
14
15
|
static type: string;
|
|
15
16
|
static readonly opcode: Opcode;
|
|
16
|
-
protected getIt(env: AvmExecutionEnvironment):
|
|
17
|
+
protected getIt(env: AvmExecutionEnvironment): import("@aztec/circuits.js").AztecAddress;
|
|
17
18
|
}
|
|
18
19
|
export declare class StorageAddress extends GetterInstruction {
|
|
19
20
|
static type: string;
|
|
20
21
|
static readonly opcode: Opcode;
|
|
21
|
-
protected getIt(env: AvmExecutionEnvironment):
|
|
22
|
+
protected getIt(env: AvmExecutionEnvironment): import("@aztec/circuits.js").AztecAddress;
|
|
22
23
|
}
|
|
23
24
|
export declare class Sender extends GetterInstruction {
|
|
24
25
|
static type: string;
|
|
25
26
|
static readonly opcode: Opcode;
|
|
26
|
-
protected getIt(env: AvmExecutionEnvironment):
|
|
27
|
+
protected getIt(env: AvmExecutionEnvironment): import("@aztec/circuits.js").AztecAddress;
|
|
27
28
|
}
|
|
28
29
|
export declare class Origin extends GetterInstruction {
|
|
29
30
|
static type: string;
|
|
30
31
|
static readonly opcode: Opcode;
|
|
31
|
-
protected getIt(env: AvmExecutionEnvironment):
|
|
32
|
+
protected getIt(env: AvmExecutionEnvironment): import("@aztec/circuits.js").AztecAddress;
|
|
32
33
|
}
|
|
33
34
|
export declare class FeePerL1Gas extends GetterInstruction {
|
|
34
35
|
static type: string;
|
|
35
36
|
static readonly opcode: Opcode;
|
|
36
|
-
protected getIt(env: AvmExecutionEnvironment):
|
|
37
|
+
protected getIt(env: AvmExecutionEnvironment): Fr;
|
|
37
38
|
}
|
|
38
39
|
export declare class FeePerL2Gas extends GetterInstruction {
|
|
39
40
|
static type: string;
|
|
40
41
|
static readonly opcode: Opcode;
|
|
41
|
-
protected getIt(env: AvmExecutionEnvironment):
|
|
42
|
+
protected getIt(env: AvmExecutionEnvironment): Fr;
|
|
42
43
|
}
|
|
43
44
|
export declare class FeePerDAGas extends GetterInstruction {
|
|
44
45
|
static type: string;
|
|
45
46
|
static readonly opcode: Opcode;
|
|
46
|
-
protected getIt(env: AvmExecutionEnvironment):
|
|
47
|
+
protected getIt(env: AvmExecutionEnvironment): Fr;
|
|
47
48
|
}
|
|
48
49
|
export declare class Portal extends GetterInstruction {
|
|
49
50
|
static type: string;
|
|
50
51
|
static readonly opcode: Opcode;
|
|
51
|
-
protected getIt(env: AvmExecutionEnvironment):
|
|
52
|
+
protected getIt(env: AvmExecutionEnvironment): Fr;
|
|
52
53
|
}
|
|
53
54
|
export declare class ChainId extends GetterInstruction {
|
|
54
55
|
static type: string;
|
|
55
56
|
static readonly opcode: Opcode;
|
|
56
|
-
protected getIt(env: AvmExecutionEnvironment):
|
|
57
|
+
protected getIt(env: AvmExecutionEnvironment): Fr;
|
|
57
58
|
}
|
|
58
59
|
export declare class Version extends GetterInstruction {
|
|
59
60
|
static type: string;
|
|
60
61
|
static readonly opcode: Opcode;
|
|
61
|
-
protected getIt(env: AvmExecutionEnvironment):
|
|
62
|
+
protected getIt(env: AvmExecutionEnvironment): Fr;
|
|
62
63
|
}
|
|
63
64
|
export declare class BlockNumber extends GetterInstruction {
|
|
64
65
|
static type: string;
|
|
65
66
|
static readonly opcode: Opcode;
|
|
66
|
-
protected getIt(env: AvmExecutionEnvironment):
|
|
67
|
+
protected getIt(env: AvmExecutionEnvironment): Fr;
|
|
67
68
|
}
|
|
68
69
|
export declare class Timestamp extends GetterInstruction {
|
|
69
70
|
static type: string;
|
|
70
71
|
static readonly opcode: Opcode;
|
|
71
|
-
protected getIt(env: AvmExecutionEnvironment):
|
|
72
|
+
protected getIt(env: AvmExecutionEnvironment): Fr;
|
|
72
73
|
}
|
|
73
74
|
export {};
|
|
74
75
|
//# sourceMappingURL=environment_getters.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment_getters.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/environment_getters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAE/E,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,uBAAe,iBAAkB,SAAQ,WAAW;IAItC,SAAS,CAAC,QAAQ,EAAE,MAAM;IAAE,SAAS,CAAC,SAAS,EAAE,MAAM;IAFnE,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAA8D;gBAEjF,QAAQ,EAAE,MAAM,EAAY,SAAS,EAAE,MAAM;IAI7D,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAMjD,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,uBAAuB,GAAG,GAAG;
|
|
1
|
+
{"version":3,"file":"environment_getters.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/environment_getters.ts"],"names":[],"mappings":"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"}
|
|
@@ -148,4 +148,4 @@ Timestamp.opcode = Opcode.TIMESTAMP;
|
|
|
148
148
|
// this.incrementPc(machineState);
|
|
149
149
|
// }
|
|
150
150
|
// }
|
|
151
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnRfZ2V0dGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdm0vb3Bjb2Rlcy9lbnZpcm9ubWVudF9nZXR0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUvQyxNQUFlLGlCQUFrQixTQUFRLFdBQVc7SUFJbEQsWUFBc0IsUUFBZ0IsRUFBWSxTQUFpQjtRQUNqRSxLQUFLLEVBQUUsQ0FBQztRQURZLGFBQVEsR0FBUixRQUFRLENBQVE7UUFBWSxjQUFTLEdBQVQsU0FBUyxDQUFRO0lBRW5FLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQW1CO1FBQy9CLE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDdkQsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDckQsT0FBTyxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQyxDQUFDOztBQVhELDBEQUEwRDtBQUMxQyw0QkFBVSxHQUFrQixDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7QUFlekcsTUFBTSxPQUFPLE9BQVEsU0FBUSxpQkFBaUI7SUFJbEMsS0FBSyxDQUFDLEdBQTRCO1FBQzFDLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQztJQUNyQixDQUFDOztBQUxNLFlBQUksR0FBVyxTQUFTLENBQUM7QUFD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
|
|
@@ -29,10 +29,10 @@ export class Call extends Instruction {
|
|
|
29
29
|
context.machineState.memory.set(this.successOffset, new Field(success ? 1 : 0));
|
|
30
30
|
context.machineState.memory.setSlice(this.retOffset, convertedReturnData);
|
|
31
31
|
if (success) {
|
|
32
|
-
context.
|
|
32
|
+
context.persistableState.acceptNestedCallState(nestedContext.persistableState);
|
|
33
33
|
}
|
|
34
34
|
else {
|
|
35
|
-
context.
|
|
35
|
+
context.persistableState.rejectNestedCallState(nestedContext.persistableState);
|
|
36
36
|
}
|
|
37
37
|
context.machineState.incrementPc();
|
|
38
38
|
}
|
|
@@ -78,10 +78,10 @@ export class StaticCall extends Instruction {
|
|
|
78
78
|
context.machineState.memory.set(this.successOffset, new Field(success ? 1 : 0));
|
|
79
79
|
context.machineState.memory.setSlice(this.retOffset, convertedReturnData);
|
|
80
80
|
if (success) {
|
|
81
|
-
context.
|
|
81
|
+
context.persistableState.acceptNestedCallState(nestedContext.persistableState);
|
|
82
82
|
}
|
|
83
83
|
else {
|
|
84
|
-
context.
|
|
84
|
+
context.persistableState.rejectNestedCallState(nestedContext.persistableState);
|
|
85
85
|
}
|
|
86
86
|
context.machineState.incrementPc();
|
|
87
87
|
}
|
|
@@ -100,4 +100,4 @@ StaticCall.wireFormat = [
|
|
|
100
100
|
OperandType.UINT32,
|
|
101
101
|
OperandType.UINT32,
|
|
102
102
|
];
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWxfY2FsbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXZtL29wY29kZXMvZXh0ZXJuYWxfY2FsbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRzlDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNwRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFL0MsTUFBTSxPQUFPLElBQUssU0FBUSxXQUFXO0lBZ0JuQyxZQUNVLFFBQWdCLEVBQ2hCLFVBQWtCLENBQUMsK0RBQStELEVBQ2xGLFVBQWtCLEVBQ2xCLFVBQWtCLEVBQ2xCLFFBQWdCLEVBQ2hCLFNBQWlCLEVBQ2pCLE9BQWUsRUFDZixhQUFxQjtRQUU3QixLQUFLLEVBQUUsQ0FBQztRQVRBLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDaEIsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUNsQixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQ2xCLGVBQVUsR0FBVixVQUFVLENBQVE7UUFDbEIsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBQ2pCLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixrQkFBYSxHQUFiLGFBQWEsQ0FBUTtJQUcvQixDQUFDO0lBRUQscUlBQXFJO0lBQ3JJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBbUI7UUFDL0IsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFRLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5RSxNQUFNLFFBQVEsR0FBRyxPQUFPLENB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
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { AvmContext } from '../avm_context.js';
|
|
2
|
+
import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
|
|
3
|
+
import { Instruction } from './instruction.js';
|
|
4
|
+
export declare class Poseidon2 extends Instruction {
|
|
5
|
+
private indirect;
|
|
6
|
+
private dstOffset;
|
|
7
|
+
private hashOffset;
|
|
8
|
+
private hashSize;
|
|
9
|
+
static type: string;
|
|
10
|
+
static readonly opcode: Opcode;
|
|
11
|
+
static readonly wireFormat: OperandType[];
|
|
12
|
+
constructor(indirect: number, dstOffset: number, hashOffset: number, hashSize: number);
|
|
13
|
+
execute(context: AvmContext): Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
export declare class Keccak extends Instruction {
|
|
16
|
+
private indirect;
|
|
17
|
+
private dstOffset;
|
|
18
|
+
private hashOffset;
|
|
19
|
+
private hashSize;
|
|
20
|
+
static type: string;
|
|
21
|
+
static readonly opcode: Opcode;
|
|
22
|
+
static readonly wireFormat: OperandType[];
|
|
23
|
+
constructor(indirect: number, dstOffset: number, hashOffset: number, hashSize: number);
|
|
24
|
+
execute(context: AvmContext): Promise<void>;
|
|
25
|
+
}
|
|
26
|
+
export declare class Sha256 extends Instruction {
|
|
27
|
+
private indirect;
|
|
28
|
+
private dstOffset;
|
|
29
|
+
private hashOffset;
|
|
30
|
+
private hashSize;
|
|
31
|
+
static type: string;
|
|
32
|
+
static readonly opcode: Opcode;
|
|
33
|
+
static readonly wireFormat: OperandType[];
|
|
34
|
+
constructor(indirect: number, dstOffset: number, hashOffset: number, hashSize: number);
|
|
35
|
+
execute(context: AvmContext): Promise<void>;
|
|
36
|
+
}
|
|
37
|
+
export declare class Pedersen extends Instruction {
|
|
38
|
+
private indirect;
|
|
39
|
+
private dstOffset;
|
|
40
|
+
private hashOffset;
|
|
41
|
+
private hashSize;
|
|
42
|
+
static type: string;
|
|
43
|
+
static readonly opcode: Opcode;
|
|
44
|
+
static readonly wireFormat: OperandType[];
|
|
45
|
+
constructor(indirect: number, dstOffset: number, hashOffset: number, hashSize: number);
|
|
46
|
+
execute(context: AvmContext): Promise<void>;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=hashing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hashing.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/hashing.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,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,QAAQ;IAChB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,QAAQ;IAhBlB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAe;IAClC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAmB;IAGjD,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAMvC;gBAGQ,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM;IAKpB,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAYlD;AAED,qBAAa,MAAO,SAAQ,WAAW;IAcnC,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,QAAQ;IAhBlB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAY;IAC/B,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAiB;IAG/C,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAMvC;gBAGQ,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM;IAMpB,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAoBlD;AAED,qBAAa,MAAO,SAAQ,WAAW;IAcnC,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,QAAQ;IAhBlB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAY;IAC/B,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAiB;IAG/C,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAMvC;gBAGQ,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM;IAMpB,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAoBlD;AAED,qBAAa,QAAS,SAAQ,WAAW;IAcrC,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,QAAQ;IAhBlB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAc;IACjC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAmB;IAGjD,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAMvC;gBAGQ,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM;IAKpB,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAYlD"}
|