@aztec/simulator 0.23.0 → 0.26.1
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 +7 -6
- package/dest/acvm/oracle/oracle.d.ts.map +1 -1
- package/dest/acvm/oracle/oracle.js +28 -15
- package/dest/acvm/oracle/typed_oracle.d.ts +9 -11
- package/dest/acvm/oracle/typed_oracle.d.ts.map +1 -1
- package/dest/acvm/oracle/typed_oracle.js +11 -11
- 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_execution_environment.d.ts +3 -2
- package/dest/avm/avm_execution_environment.d.ts.map +1 -1
- package/dest/avm/avm_execution_environment.js +6 -5
- package/dest/avm/avm_memory_types.d.ts +127 -37
- package/dest/avm/avm_memory_types.d.ts.map +1 -1
- package/dest/avm/avm_memory_types.js +98 -106
- 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 -19
- package/dest/avm/errors.d.ts +3 -1
- package/dest/avm/errors.d.ts.map +1 -1
- package/dest/avm/errors.js +9 -3
- package/dest/avm/fixtures/index.d.ts +21 -5
- package/dest/avm/fixtures/index.d.ts.map +1 -1
- package/dest/avm/fixtures/index.js +28 -9
- package/dest/avm/journal/host_storage.d.ts +1 -1
- 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/addressing_mode.d.ts +24 -0
- package/dest/avm/opcodes/addressing_mode.d.ts.map +1 -0
- package/dest/avm/opcodes/addressing_mode.js +62 -0
- 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/instruction.d.ts +4 -4
- package/dest/avm/opcodes/instruction.d.ts.map +1 -1
- package/dest/avm/opcodes/instruction.js +1 -1
- package/dest/avm/opcodes/memory.d.ts.map +1 -1
- package/dest/avm/opcodes/memory.js +5 -3
- 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 +28 -22
- package/dest/avm/serialization/instruction_serialization.d.ts +21 -16
- package/dest/avm/serialization/instruction_serialization.d.ts.map +1 -1
- package/dest/avm/serialization/instruction_serialization.js +23 -18
- package/dest/avm/temporary_executor_migration.d.ts +25 -0
- package/dest/avm/temporary_executor_migration.d.ts.map +1 -0
- package/dest/avm/temporary_executor_migration.js +71 -0
- package/dest/client/client_execution_context.d.ts +13 -7
- package/dest/client/client_execution_context.d.ts.map +1 -1
- package/dest/client/client_execution_context.js +52 -27
- 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 +4 -2
- package/dest/client/execution_result.d.ts.map +1 -1
- package/dest/client/execution_result.js +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 +11 -6
- package/dest/client/simulator.d.ts.map +1 -1
- package/dest/client/simulator.js +21 -12
- package/dest/client/unconstrained_execution.js +2 -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 +18 -5
- package/dest/public/executor.d.ts +7 -0
- package/dest/public/executor.d.ts.map +1 -1
- package/dest/public/executor.js +40 -6
- 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 +24 -13
- package/dest/public/state_actions.d.ts +1 -1
- package/dest/public/state_actions.d.ts.map +1 -1
- package/dest/public/state_actions.js +6 -7
- package/dest/test/utils.js +4 -4
- package/dest/utils.d.ts +5 -20
- package/dest/utils.d.ts.map +1 -1
- package/dest/utils.js +4 -21
- package/package.json +9 -6
- package/src/acvm/acvm.ts +156 -0
- package/src/acvm/acvm_types.ts +11 -0
- package/src/acvm/deserialize.ts +44 -0
- package/src/acvm/index.ts +5 -0
- package/src/acvm/oracle/debug.ts +109 -0
- package/src/acvm/oracle/index.ts +17 -0
- package/src/acvm/oracle/oracle.ts +356 -0
- package/src/acvm/oracle/typed_oracle.ts +225 -0
- package/src/acvm/serialize.ts +75 -0
- package/src/avm/avm_context.ts +63 -0
- package/src/avm/avm_execution_environment.ts +98 -0
- package/src/avm/avm_machine_state.ts +93 -0
- package/src/avm/avm_memory_types.ts +324 -0
- package/src/avm/avm_message_call_result.ts +29 -0
- package/src/avm/avm_simulator.ts +87 -0
- package/src/avm/errors.ts +57 -0
- package/src/avm/fixtures/index.ts +115 -0
- package/src/avm/journal/host_storage.ts +14 -0
- package/src/avm/journal/index.ts +2 -0
- package/src/avm/journal/journal.ts +231 -0
- 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/.eslintrc.cjs +8 -0
- package/src/avm/opcodes/accrued_substate.ts +214 -0
- package/src/avm/opcodes/addressing_mode.ts +66 -0
- package/src/avm/opcodes/arithmetic.ts +79 -0
- package/src/avm/opcodes/bitwise.ts +129 -0
- package/src/avm/opcodes/comparators.ts +69 -0
- package/src/avm/opcodes/control_flow.ts +129 -0
- package/src/avm/opcodes/environment_getters.ts +201 -0
- package/src/avm/opcodes/external_calls.ts +122 -0
- package/src/avm/opcodes/hashing.ts +170 -0
- package/src/avm/opcodes/index.ts +10 -0
- package/src/avm/opcodes/instruction.ts +64 -0
- package/src/avm/opcodes/instruction_impl.ts +52 -0
- package/src/avm/opcodes/memory.ts +194 -0
- package/src/avm/opcodes/storage.ts +79 -0
- package/src/avm/serialization/buffer_cursor.ts +109 -0
- package/src/avm/serialization/bytecode_serialization.ts +179 -0
- package/src/avm/serialization/instruction_serialization.ts +170 -0
- package/src/avm/temporary_executor_migration.ts +109 -0
- package/src/client/client_execution_context.ts +502 -0
- package/src/client/db_oracle.ts +192 -0
- package/src/client/execution_note_cache.ts +90 -0
- package/src/client/execution_result.ts +89 -0
- package/src/client/index.ts +3 -0
- package/src/client/pick_notes.ts +125 -0
- package/src/client/private_execution.ts +79 -0
- package/src/client/simulator.ts +317 -0
- package/src/client/unconstrained_execution.ts +49 -0
- package/src/client/view_data_oracle.ts +253 -0
- package/src/common/errors.ts +61 -0
- package/src/common/index.ts +3 -0
- package/src/common/packed_args_cache.ts +55 -0
- package/src/common/side_effect_counter.ts +12 -0
- package/src/index.ts +3 -0
- package/src/public/db.ts +100 -0
- package/src/public/execution.ts +161 -0
- package/src/public/executor.ts +178 -0
- package/src/public/index.ts +9 -0
- package/src/public/public_execution_context.ts +241 -0
- package/src/public/state_actions.ts +100 -0
- package/src/test/utils.ts +38 -0
- package/src/utils.ts +18 -0
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjcnVlZF9zdWJzdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdm0vb3Bjb2Rlcy9hY2NydWVkX3N1YnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNwRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQy9DLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUzRCxNQUFNLE9BQU8sY0FBZSxTQUFRLFdBQVc7SUFZN0MsWUFDVSxRQUFnQixFQUNoQixjQUFzQixFQUN0QixlQUF1QixFQUN2QixZQUFvQjtRQUU1QixLQUFLLEVBQUUsQ0FBQztRQUxBLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDaEIsbUJBQWMsR0FBZCxjQUFjLENBQVE7UUFDdEIsb0JBQWUsR0FBZixlQUFlLENBQVE7UUFDdkIsaUJBQVksR0FBWixZQUFZLENBQVE7SUFHOUIsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBbUI7UUFDL0IsZ0ZBQWdGO1FBQ2hGLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDN0UsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMs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
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { TaggedMemory } from '../avm_memory_types.js';
|
|
2
|
+
export declare enum AddressingMode {
|
|
3
|
+
DIRECT = 0,
|
|
4
|
+
INDIRECT = 1,
|
|
5
|
+
INDIRECT_PLUS_CONSTANT = 2
|
|
6
|
+
}
|
|
7
|
+
/** A class to represent the addressing mode of an instruction. */
|
|
8
|
+
export declare class Addressing {
|
|
9
|
+
/** The addressing mode for each operand. The length of this array is the number of operands of the instruction. */
|
|
10
|
+
private readonly modePerOperand;
|
|
11
|
+
constructor(
|
|
12
|
+
/** The addressing mode for each operand. The length of this array is the number of operands of the instruction. */
|
|
13
|
+
modePerOperand: AddressingMode[]);
|
|
14
|
+
static fromWire(wireModes: number): Addressing;
|
|
15
|
+
toWire(): number;
|
|
16
|
+
/**
|
|
17
|
+
* Resolves the offsets using the addressing mode.
|
|
18
|
+
* @param offsets The offsets to resolve.
|
|
19
|
+
* @param mem The memory to use for resolution.
|
|
20
|
+
* @returns The resolved offsets. The length of the returned array is the same as the length of the input array.
|
|
21
|
+
*/
|
|
22
|
+
resolve(offsets: number[], mem: TaggedMemory): number[];
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=addressing_mode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addressing_mode.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/addressing_mode.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAW,MAAM,wBAAwB,CAAC;AAE/D,oBAAY,cAAc;IACxB,MAAM,IAAA;IACN,QAAQ,IAAA;IACR,sBAAsB,IAAA;CACvB;AAED,kEAAkE;AAClE,qBAAa,UAAU;IAEnB,mHAAmH;IACnH,OAAO,CAAC,QAAQ,CAAC,cAAc;;IAD/B,mHAAmH;IAClG,cAAc,EAAE,cAAc,EAAE;WAKrC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU;IAU9C,MAAM,IAAI,MAAM;IAYvB;;;;;OAKG;IACI,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,YAAY,GAAG,MAAM,EAAE;CAkB/D"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { strict as assert } from 'assert';
|
|
2
|
+
import { TypeTag } from '../avm_memory_types.js';
|
|
3
|
+
export var AddressingMode;
|
|
4
|
+
(function (AddressingMode) {
|
|
5
|
+
AddressingMode[AddressingMode["DIRECT"] = 0] = "DIRECT";
|
|
6
|
+
AddressingMode[AddressingMode["INDIRECT"] = 1] = "INDIRECT";
|
|
7
|
+
AddressingMode[AddressingMode["INDIRECT_PLUS_CONSTANT"] = 2] = "INDIRECT_PLUS_CONSTANT";
|
|
8
|
+
})(AddressingMode || (AddressingMode = {}));
|
|
9
|
+
/** A class to represent the addressing mode of an instruction. */
|
|
10
|
+
export class Addressing {
|
|
11
|
+
constructor(
|
|
12
|
+
/** The addressing mode for each operand. The length of this array is the number of operands of the instruction. */
|
|
13
|
+
modePerOperand) {
|
|
14
|
+
this.modePerOperand = modePerOperand;
|
|
15
|
+
assert(modePerOperand.length <= 8, 'At most 8 operands are supported');
|
|
16
|
+
}
|
|
17
|
+
static fromWire(wireModes) {
|
|
18
|
+
// The modes are stored in the wire format as a byte, with each bit representing the mode for an operand.
|
|
19
|
+
// The least significant bit represents the zeroth operand, and the most significant bit represents the last operand.
|
|
20
|
+
const modes = new Array(8);
|
|
21
|
+
for (let i = 0; i < 8; i++) {
|
|
22
|
+
modes[i] = (wireModes & (1 << i)) === 0 ? AddressingMode.DIRECT : AddressingMode.INDIRECT;
|
|
23
|
+
}
|
|
24
|
+
return new Addressing(modes);
|
|
25
|
+
}
|
|
26
|
+
toWire() {
|
|
27
|
+
// The modes are stored in the wire format as a byte, with each bit representing the mode for an operand.
|
|
28
|
+
// The least significant bit represents the zeroth operand, and the least significant bit represents the last operand.
|
|
29
|
+
let wire = 0;
|
|
30
|
+
for (let i = 0; i < 8; i++) {
|
|
31
|
+
if (this.modePerOperand[i] === AddressingMode.INDIRECT) {
|
|
32
|
+
wire |= 1 << i;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return wire;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Resolves the offsets using the addressing mode.
|
|
39
|
+
* @param offsets The offsets to resolve.
|
|
40
|
+
* @param mem The memory to use for resolution.
|
|
41
|
+
* @returns The resolved offsets. The length of the returned array is the same as the length of the input array.
|
|
42
|
+
*/
|
|
43
|
+
resolve(offsets, mem) {
|
|
44
|
+
assert(offsets.length <= this.modePerOperand.length);
|
|
45
|
+
const resolved = new Array(offsets.length);
|
|
46
|
+
for (const [i, offset] of offsets.entries()) {
|
|
47
|
+
switch (this.modePerOperand[i]) {
|
|
48
|
+
case AddressingMode.INDIRECT:
|
|
49
|
+
mem.checkTag(TypeTag.UINT32, offset);
|
|
50
|
+
resolved[i] = Number(mem.get(offset).toBigInt());
|
|
51
|
+
break;
|
|
52
|
+
case AddressingMode.DIRECT:
|
|
53
|
+
resolved[i] = offset;
|
|
54
|
+
break;
|
|
55
|
+
default:
|
|
56
|
+
throw new Error(`Unimplemented addressing mode: ${AddressingMode[this.modePerOperand[i]]}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return resolved;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzc2luZ19tb2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F2bS9vcGNvZGVzL2FkZHJlc3NpbmdfbW9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxJQUFJLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUUxQyxPQUFPLEVBQWdCLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRS9ELE1BQU0sQ0FBTixJQUFZLGNBSVg7QUFKRCxXQUFZLGNBQWM7SUFDeEIsdURBQU0sQ0FBQTtJQUNOLDJEQUFRLENBQUE7SUFDUix1RkFBc0IsQ0FBQTtBQUN4QixDQUFDLEVBSlcsY0FBYyxLQUFkLGNBQWMsUUFJekI7QUFFRCxrRUFBa0U7QUFDbEUsTUFBTSxPQUFPLFVBQVU7SUFDckI7SUFDRSxtSEFBbUg7SUFDbEcsY0FBZ0M7UUFBaEMsbUJBQWMsR0FBZCxjQUFjLENBQWtCO1FBRWpELE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxrQ0FBa0MsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFTSxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQWlCO1FBQ3RDLHlHQUF5RztRQUN6RyxxSEFBcUg7UUFDckgsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQWlCLENBQUMsQ0FBQyxDQUFDO1FBQzNDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUMzQixLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7UUFDNUYsQ0FBQztRQUNELE9BQU8sSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVNLE1BQU07UUFDWCx5R0FBeUc7UUFDekcsc0hBQXNIO1FBQ3RILElBQUksSUFBSSxHQUFXLENBQUMsQ0FBQztRQUNyQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDM0IsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxLQUFLLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDdkQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakIsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE9BQU8sQ0FBQyxPQUFpQixFQUFFLEdBQWlCO1FBQ2pELE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckQsTUFBTSxRQUFRLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNDLEtBQUssTUFBTSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUM1QyxRQUFRLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDL0IsS0FBSyxjQUFjLENBQUMsUUFBUTtvQkFDMUIsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO29CQUNyQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztvQkFDakQsTUFBTTtnQkFDUixLQUFLLGNBQWMsQ0FBQyxNQUFNO29CQUN4QixRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDO29CQUNyQixNQUFNO2dCQUNSO29CQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2hHLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztDQUNGIn0=
|
|
@@ -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"}
|