@aztec/simulator 0.59.0 → 0.61.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/acvm.d.ts +1 -0
- package/dest/acvm/acvm.d.ts.map +1 -1
- package/dest/acvm/oracle/oracle.d.ts +5 -3
- package/dest/acvm/oracle/oracle.d.ts.map +1 -1
- package/dest/acvm/oracle/oracle.js +15 -7
- package/dest/acvm/oracle/typed_oracle.d.ts +7 -4
- package/dest/acvm/oracle/typed_oracle.d.ts.map +1 -1
- package/dest/acvm/oracle/typed_oracle.js +10 -4
- package/dest/acvm/serialize.d.ts +1 -0
- package/dest/acvm/serialize.d.ts.map +1 -1
- package/dest/avm/avm_context.d.ts +1 -1
- package/dest/avm/avm_context.js +1 -1
- package/dest/avm/avm_execution_environment.d.ts +2 -5
- package/dest/avm/avm_execution_environment.d.ts.map +1 -1
- package/dest/avm/avm_execution_environment.js +7 -15
- package/dest/avm/avm_gas.d.ts.map +1 -1
- package/dest/avm/avm_gas.js +6 -10
- package/dest/avm/avm_machine_state.d.ts +2 -0
- package/dest/avm/avm_machine_state.d.ts.map +1 -1
- package/dest/avm/avm_machine_state.js +3 -1
- package/dest/avm/avm_memory_types.d.ts +1 -0
- package/dest/avm/avm_memory_types.d.ts.map +1 -1
- package/dest/avm/avm_simulator.d.ts +16 -0
- package/dest/avm/avm_simulator.d.ts.map +1 -1
- package/dest/avm/avm_simulator.js +45 -4
- package/dest/avm/bytecode_utils.d.ts +1 -0
- package/dest/avm/bytecode_utils.d.ts.map +1 -1
- package/dest/avm/fixtures/index.d.ts +3 -0
- package/dest/avm/fixtures/index.d.ts.map +1 -1
- package/dest/avm/fixtures/index.js +8 -2
- package/dest/avm/journal/journal.d.ts +19 -19
- package/dest/avm/journal/journal.d.ts.map +1 -1
- package/dest/avm/journal/journal.js +73 -48
- package/dest/avm/journal/nullifiers.d.ts +9 -9
- package/dest/avm/journal/nullifiers.d.ts.map +1 -1
- package/dest/avm/journal/nullifiers.js +24 -24
- package/dest/avm/journal/public_storage.d.ts +10 -10
- package/dest/avm/journal/public_storage.d.ts.map +1 -1
- package/dest/avm/journal/public_storage.js +21 -21
- package/dest/avm/opcodes/accrued_substate.d.ts.map +1 -1
- package/dest/avm/opcodes/accrued_substate.js +5 -5
- package/dest/avm/opcodes/contract.d.ts +8 -1
- package/dest/avm/opcodes/contract.d.ts.map +1 -1
- package/dest/avm/opcodes/contract.js +41 -21
- package/dest/avm/opcodes/conversion.d.ts +1 -1
- package/dest/avm/opcodes/conversion.d.ts.map +1 -1
- package/dest/avm/opcodes/conversion.js +12 -9
- package/dest/avm/opcodes/environment_getters.d.ts +13 -14
- package/dest/avm/opcodes/environment_getters.d.ts.map +1 -1
- package/dest/avm/opcodes/environment_getters.js +17 -16
- package/dest/avm/opcodes/external_calls.d.ts +3 -6
- package/dest/avm/opcodes/external_calls.d.ts.map +1 -1
- package/dest/avm/opcodes/external_calls.js +23 -43
- package/dest/avm/opcodes/hashing.d.ts +2 -26
- package/dest/avm/opcodes/hashing.d.ts.map +1 -1
- package/dest/avm/opcodes/hashing.js +11 -95
- package/dest/avm/opcodes/index.d.ts +0 -1
- package/dest/avm/opcodes/index.d.ts.map +1 -1
- package/dest/avm/opcodes/index.js +1 -2
- package/dest/avm/opcodes/instruction.d.ts +1 -0
- package/dest/avm/opcodes/instruction.d.ts.map +1 -1
- package/dest/avm/opcodes/memory.d.ts +20 -0
- package/dest/avm/opcodes/memory.d.ts.map +1 -1
- package/dest/avm/opcodes/memory.js +59 -3
- package/dest/avm/opcodes/storage.js +3 -3
- package/dest/avm/serialization/buffer_cursor.d.ts +1 -0
- package/dest/avm/serialization/buffer_cursor.d.ts.map +1 -1
- package/dest/avm/serialization/bytecode_serialization.d.ts +1 -0
- package/dest/avm/serialization/bytecode_serialization.d.ts.map +1 -1
- package/dest/avm/serialization/bytecode_serialization.js +5 -7
- package/dest/avm/serialization/instruction_serialization.d.ts +34 -35
- package/dest/avm/serialization/instruction_serialization.d.ts.map +1 -1
- package/dest/avm/serialization/instruction_serialization.js +34 -36
- package/dest/avm/test_utils.d.ts +3 -1
- package/dest/avm/test_utils.d.ts.map +1 -1
- package/dest/avm/test_utils.js +4 -1
- package/dest/client/client_execution_context.d.ts +9 -18
- package/dest/client/client_execution_context.d.ts.map +1 -1
- package/dest/client/client_execution_context.js +30 -50
- package/dest/client/db_oracle.d.ts +17 -1
- package/dest/client/db_oracle.d.ts.map +1 -1
- package/dest/client/db_oracle.js +1 -1
- package/dest/client/private_execution.d.ts.map +1 -1
- package/dest/client/private_execution.js +3 -4
- package/dest/client/simulator.d.ts.map +1 -1
- package/dest/client/simulator.js +3 -3
- package/dest/client/view_data_oracle.d.ts +17 -1
- package/dest/client/view_data_oracle.d.ts.map +1 -1
- package/dest/client/view_data_oracle.js +21 -1
- 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/mocks/fixtures.js +2 -2
- package/dest/providers/acvm_native.d.ts +1 -0
- package/dest/providers/acvm_native.d.ts.map +1 -1
- package/dest/public/db_interfaces.d.ts +1 -0
- package/dest/public/db_interfaces.d.ts.map +1 -1
- package/dest/public/dual_side_effect_trace.d.ts +10 -11
- package/dest/public/dual_side_effect_trace.d.ts.map +1 -1
- package/dest/public/dual_side_effect_trace.js +26 -22
- package/dest/public/enqueued_call_side_effect_trace.d.ts +11 -12
- package/dest/public/enqueued_call_side_effect_trace.d.ts.map +1 -1
- package/dest/public/enqueued_call_side_effect_trace.js +33 -23
- package/dest/public/enqueued_call_simulator.d.ts +3 -3
- package/dest/public/enqueued_call_simulator.d.ts.map +1 -1
- package/dest/public/enqueued_call_simulator.js +30 -39
- package/dest/public/enqueued_calls_processor.d.ts +2 -3
- package/dest/public/enqueued_calls_processor.d.ts.map +1 -1
- package/dest/public/enqueued_calls_processor.js +19 -26
- package/dest/public/execution.d.ts +1 -0
- package/dest/public/execution.d.ts.map +1 -1
- package/dest/public/execution.js +2 -2
- package/dest/public/executor.d.ts.map +1 -1
- package/dest/public/executor.js +6 -5
- package/dest/public/public_db_sources.d.ts +1 -0
- package/dest/public/public_db_sources.d.ts.map +1 -1
- package/dest/public/public_kernel.d.ts +0 -1
- package/dest/public/public_kernel.d.ts.map +1 -1
- package/dest/public/public_kernel.js +5 -8
- package/dest/public/public_kernel_tail_simulator.d.ts +1 -5
- package/dest/public/public_kernel_tail_simulator.d.ts.map +1 -1
- package/dest/public/public_kernel_tail_simulator.js +6 -12
- package/dest/public/public_processor.js +4 -4
- package/dest/public/side_effect_trace.d.ts +11 -9
- package/dest/public/side_effect_trace.d.ts.map +1 -1
- package/dest/public/side_effect_trace.js +40 -30
- package/dest/public/side_effect_trace_interface.d.ts +10 -9
- package/dest/public/side_effect_trace_interface.d.ts.map +1 -1
- package/package.json +9 -9
- package/src/acvm/oracle/oracle.ts +13 -6
- package/src/acvm/oracle/typed_oracle.ts +9 -3
- package/src/avm/avm_context.ts +1 -1
- package/src/avm/avm_execution_environment.ts +0 -15
- package/src/avm/avm_gas.ts +5 -9
- package/src/avm/avm_machine_state.ts +2 -0
- package/src/avm/avm_simulator.ts +69 -6
- package/src/avm/fixtures/index.ts +7 -2
- package/src/avm/journal/journal.ts +93 -50
- package/src/avm/journal/nullifiers.ts +23 -23
- package/src/avm/journal/public_storage.ts +20 -20
- package/src/avm/opcodes/accrued_substate.ts +4 -8
- package/src/avm/opcodes/contract.ts +45 -21
- package/src/avm/opcodes/conversion.ts +9 -6
- package/src/avm/opcodes/environment_getters.ts +7 -5
- package/src/avm/opcodes/external_calls.ts +21 -45
- package/src/avm/opcodes/hashing.ts +9 -122
- package/src/avm/opcodes/index.ts +0 -1
- package/src/avm/opcodes/memory.ts +69 -2
- package/src/avm/opcodes/storage.ts +2 -2
- package/src/avm/serialization/bytecode_serialization.ts +6 -9
- package/src/avm/serialization/instruction_serialization.ts +3 -5
- package/src/avm/test_utils.ts +5 -1
- package/src/client/client_execution_context.ts +21 -71
- package/src/client/db_oracle.ts +26 -0
- package/src/client/private_execution.ts +1 -9
- package/src/client/simulator.ts +0 -2
- package/src/client/view_data_oracle.ts +31 -1
- package/src/common/index.ts +0 -1
- package/src/mocks/fixtures.ts +1 -1
- package/src/public/dual_side_effect_trace.ts +38 -24
- package/src/public/enqueued_call_side_effect_trace.ts +60 -28
- package/src/public/enqueued_call_simulator.ts +52 -49
- package/src/public/enqueued_calls_processor.ts +27 -41
- package/src/public/execution.ts +1 -1
- package/src/public/executor.ts +11 -5
- package/src/public/public_kernel.ts +9 -12
- package/src/public/public_kernel_tail_simulator.ts +6 -15
- package/src/public/public_processor.ts +3 -3
- package/src/public/side_effect_trace.ts +73 -29
- package/src/public/side_effect_trace_interface.ts +15 -10
- package/dest/avm/opcodes/commitment.d.ts +0 -16
- package/dest/avm/opcodes/commitment.d.ts.map +0 -1
- package/dest/avm/opcodes/commitment.js +0 -51
- package/dest/client/test_utils.d.ts +0 -9
- package/dest/client/test_utils.d.ts.map +0 -1
- package/dest/client/test_utils.js +0 -27
- package/dest/common/side_effect_counter.d.ts +0 -10
- package/dest/common/side_effect_counter.d.ts.map +0 -1
- package/dest/common/side_effect_counter.js +0 -18
- package/dest/rollup/index.d.ts +0 -2
- package/dest/rollup/index.d.ts.map +0 -1
- package/dest/rollup/index.js +0 -2
- package/dest/rollup/rollup.d.ts +0 -101
- package/dest/rollup/rollup.d.ts.map +0 -1
- package/dest/rollup/rollup.js +0 -100
- package/src/avm/opcodes/commitment.ts +0 -65
- package/src/client/test_utils.ts +0 -57
- package/src/common/side_effect_counter.ts +0 -17
- package/src/rollup/index.ts +0 -1
- package/src/rollup/rollup.ts +0 -228
|
@@ -31,17 +31,17 @@ export class PublicStorage {
|
|
|
31
31
|
* Read a storage value from this' cache or parent's (recursively).
|
|
32
32
|
* DOES NOT CHECK HOST STORAGE!
|
|
33
33
|
*
|
|
34
|
-
* @param
|
|
34
|
+
* @param contractAddress - the address of the contract whose storage is being read from
|
|
35
35
|
* @param slot - the slot in the contract's storage being read from
|
|
36
36
|
* @returns value: the latest value written according to this cache or the parent's. undefined on cache miss.
|
|
37
37
|
*/
|
|
38
|
-
readHereOrParent(
|
|
38
|
+
readHereOrParent(contractAddress, slot) {
|
|
39
39
|
// First try check this storage cache
|
|
40
|
-
let value = this.cache.read(
|
|
40
|
+
let value = this.cache.read(contractAddress, slot);
|
|
41
41
|
// Then try parent's storage cache
|
|
42
42
|
if (!value && this.parent) {
|
|
43
43
|
// Note: this will recurse to grandparent/etc until a cache-hit is encountered.
|
|
44
|
-
value = this.parent.readHereOrParent(
|
|
44
|
+
value = this.parent.readHereOrParent(contractAddress, slot);
|
|
45
45
|
}
|
|
46
46
|
return value;
|
|
47
47
|
}
|
|
@@ -52,17 +52,17 @@ export class PublicStorage {
|
|
|
52
52
|
* 3. Fall back to the host state.
|
|
53
53
|
* 4. Not found! Value has never been written to before. Flag it as non-existent and return value zero.
|
|
54
54
|
*
|
|
55
|
-
* @param
|
|
55
|
+
* @param contractAddress - the address of the contract whose storage is being read from
|
|
56
56
|
* @param slot - the slot in the contract's storage being read from
|
|
57
57
|
* @returns exists: whether the slot has EVER been written to before, value: the latest value written to slot, or 0 if never written to before
|
|
58
58
|
*/
|
|
59
|
-
async read(
|
|
59
|
+
async read(contractAddress, slot) {
|
|
60
60
|
let cached = false;
|
|
61
61
|
// Check this cache and parent's (recursively)
|
|
62
|
-
let value = this.readHereOrParent(
|
|
62
|
+
let value = this.readHereOrParent(contractAddress, slot);
|
|
63
63
|
// Finally try the host's Aztec state (a trip to the database)
|
|
64
64
|
if (!value) {
|
|
65
|
-
value = await this.hostPublicStorage.storageRead(
|
|
65
|
+
value = await this.hostPublicStorage.storageRead(contractAddress, slot);
|
|
66
66
|
// TODO(dbanks12): if value retrieved from host storage, we can cache it here
|
|
67
67
|
// any future reads to the same slot can read from cache instead of more expensive
|
|
68
68
|
// DB access
|
|
@@ -78,12 +78,12 @@ export class PublicStorage {
|
|
|
78
78
|
/**
|
|
79
79
|
* Stage a storage write.
|
|
80
80
|
*
|
|
81
|
-
* @param
|
|
81
|
+
* @param contractAddress - the address of the contract whose storage is being written to
|
|
82
82
|
* @param slot - the slot in the contract's storage being written to
|
|
83
83
|
* @param value - the value being written to the slot
|
|
84
84
|
*/
|
|
85
|
-
write(
|
|
86
|
-
this.cache.write(
|
|
85
|
+
write(contractAddress, slot, value) {
|
|
86
|
+
this.cache.write(contractAddress, slot, value);
|
|
87
87
|
}
|
|
88
88
|
/**
|
|
89
89
|
* Merges another PublicStorage's cache (pending writes) into this one.
|
|
@@ -97,9 +97,9 @@ export class PublicStorage {
|
|
|
97
97
|
* Commits ALL staged writes to the host's state.
|
|
98
98
|
*/
|
|
99
99
|
async commitToDB() {
|
|
100
|
-
for (const [
|
|
100
|
+
for (const [contractAddress, cacheAtContract] of this.cache.cachePerContract) {
|
|
101
101
|
for (const [slot, value] of cacheAtContract) {
|
|
102
|
-
await this.hostPublicStorage.storageWrite(AztecAddress.fromBigInt(
|
|
102
|
+
await this.hostPublicStorage.storageWrite(AztecAddress.fromBigInt(contractAddress), new Fr(slot), value);
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
105
|
}
|
|
@@ -122,26 +122,26 @@ class PublicStorageCache {
|
|
|
122
122
|
/**
|
|
123
123
|
* Read a staged value from storage, if it has been previously written to.
|
|
124
124
|
*
|
|
125
|
-
* @param
|
|
125
|
+
* @param contractAddress - the address of the contract whose storage is being read from
|
|
126
126
|
* @param slot - the slot in the contract's storage being read from
|
|
127
127
|
* @returns the latest value written to slot, or undefined if no value has been written
|
|
128
128
|
*/
|
|
129
|
-
read(
|
|
130
|
-
return this.cachePerContract.get(
|
|
129
|
+
read(contractAddress, slot) {
|
|
130
|
+
return this.cachePerContract.get(contractAddress.toBigInt())?.get(slot.toBigInt());
|
|
131
131
|
}
|
|
132
132
|
/**
|
|
133
133
|
* Stage a storage write.
|
|
134
134
|
*
|
|
135
|
-
* @param
|
|
135
|
+
* @param contractAddress - the address of the contract whose storage is being written to
|
|
136
136
|
* @param slot - the slot in the contract's storage being written to
|
|
137
137
|
* @param value - the value being written to the slot
|
|
138
138
|
*/
|
|
139
|
-
write(
|
|
140
|
-
let cacheAtContract = this.cachePerContract.get(
|
|
139
|
+
write(contractAddress, slot, value) {
|
|
140
|
+
let cacheAtContract = this.cachePerContract.get(contractAddress.toBigInt());
|
|
141
141
|
if (!cacheAtContract) {
|
|
142
142
|
// If this contract's storage has no staged modifications, create a new inner map to store them
|
|
143
143
|
cacheAtContract = new Map();
|
|
144
|
-
this.cachePerContract.set(
|
|
144
|
+
this.cachePerContract.set(contractAddress.toBigInt(), cacheAtContract);
|
|
145
145
|
}
|
|
146
146
|
cacheAtContract.set(slot.toBigInt(), value);
|
|
147
147
|
}
|
|
@@ -174,4 +174,4 @@ class PublicStorageCache {
|
|
|
174
174
|
}
|
|
175
175
|
}
|
|
176
176
|
}
|
|
177
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
177
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3N0b3JhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXZtL2pvdXJuYWwvcHVibGljX3N0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQVU5Qzs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLGFBQWE7SUFJeEI7SUFDRSwrREFBK0Q7SUFDOUMsaUJBQWdDO0lBQ2pELHFEQUFxRDtJQUNwQyxNQUFzQjtRQUZ0QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQWU7UUFFaEMsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFFdkMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksSUFBSTtRQUNULE9BQU8sSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRDs7T0FFRztJQUNJLFFBQVE7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxnQkFBZ0IsQ0FBQyxlQUFtQixFQUFFLElBQVE7UUFDbkQscUNBQXFDO1FBQ3JDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNuRCxrQ0FBa0M7UUFDbEMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDMUIsK0VBQStFO1lBQy9FLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accrued_substate.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/accrued_substate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAIpD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBAAa,cAAe,SAAQ,WAAW;IAa3C,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,YAAY;IAftB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAoB;IACvC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAyB;IAEvD,MAAM,CAAC,QAAQ,CAAC,UAAU,gBAMxB;gBAGQ,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,MAAM;IAKjB,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"accrued_substate.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/accrued_substate.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,7 +22,7 @@ export class NoteHashExists extends Instruction {
|
|
|
22
22
|
// Note that this instruction accepts any type in memory, and converts to Field.
|
|
23
23
|
const noteHash = memory.get(noteHashOffset).toFr();
|
|
24
24
|
const leafIndex = memory.get(leafIndexOffset).toFr();
|
|
25
|
-
const exists = await context.persistableState.checkNoteHashExists(context.environment.
|
|
25
|
+
const exists = await context.persistableState.checkNoteHashExists(context.environment.address, noteHash, leafIndex);
|
|
26
26
|
memory.set(existsOffset, exists ? new Uint1(1) : new Uint1(0));
|
|
27
27
|
memory.assert({ reads: 2, writes: 1, addressing });
|
|
28
28
|
context.machineState.incrementPc();
|
|
@@ -55,7 +55,7 @@ export class EmitNoteHash extends Instruction {
|
|
|
55
55
|
throw new StaticCallAlterationError();
|
|
56
56
|
}
|
|
57
57
|
const noteHash = memory.get(noteHashOffset).toFr();
|
|
58
|
-
context.persistableState.writeNoteHash(context.environment.
|
|
58
|
+
context.persistableState.writeNoteHash(context.environment.address, noteHash);
|
|
59
59
|
memory.assert({ reads: 1, addressing });
|
|
60
60
|
context.machineState.incrementPc();
|
|
61
61
|
}
|
|
@@ -115,12 +115,12 @@ export class EmitNullifier extends Instruction {
|
|
|
115
115
|
memory.checkTag(TypeTag.FIELD, nullifierOffset);
|
|
116
116
|
const nullifier = memory.get(nullifierOffset).toFr();
|
|
117
117
|
try {
|
|
118
|
-
await context.persistableState.writeNullifier(context.environment.
|
|
118
|
+
await context.persistableState.writeNullifier(context.environment.address, nullifier);
|
|
119
119
|
}
|
|
120
120
|
catch (e) {
|
|
121
121
|
if (e instanceof NullifierCollisionError) {
|
|
122
122
|
// Error is known/expected, raise as InstructionExecutionError that the will lead the simulator to revert this call
|
|
123
|
-
throw new InstructionExecutionError(`Attempted to emit duplicate nullifier ${nullifier} (
|
|
123
|
+
throw new InstructionExecutionError(`Attempted to emit duplicate nullifier ${nullifier} (contract address: ${context.environment.address}).`);
|
|
124
124
|
}
|
|
125
125
|
else {
|
|
126
126
|
throw e;
|
|
@@ -224,4 +224,4 @@ SendL2ToL1Message.type = 'SENDL2TOL1MSG';
|
|
|
224
224
|
SendL2ToL1Message.opcode = Opcode.SENDL2TOL1MSG;
|
|
225
225
|
// Informs (de)serialization. See Instruction.deserialize.
|
|
226
226
|
SendL2ToL1Message.wireFormat = [OperandType.UINT8, OperandType.UINT8, OperandType.UINT16, OperandType.UINT16];
|
|
227
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjcnVlZF9zdWJzdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdm0vb3Bjb2Rlcy9hY2NydWVkX3N1YnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLHlCQUF5QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDcEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUvQyxNQUFNLE9BQU8sY0FBZSxTQUFRLFdBQVc7SUFZN0MsWUFDVSxRQUFnQixFQUNoQixjQUFzQixFQUN0QixlQUF1QixFQUN2QixZQUFvQjtRQUU1QixLQUFLLEVBQUUsQ0FBQztRQUxBLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDaEIsbUJBQWMsR0FBZCxjQUFjLENBQVE7UUFDdEIsb0JBQWUsR0FBZixlQUFlLENBQVE7UUFDdkIsaUJBQVksR0FBWixZQUFZLENBQVE7SUFHOUIsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBbUI7UUFDdEMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1RCxPQUFPLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNoRCxNQUFNLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFB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
|
|
227
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjcnVlZF9zdWJzdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdm0vb3Bjb2Rlcy9hY2NydWVkX3N1YnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLHlCQUF5QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDcEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUvQyxNQUFNLE9BQU8sY0FBZSxTQUFRLFdBQVc7SUFZN0MsWUFDVSxRQUFnQixFQUNoQixjQUFzQixFQUN0QixlQUF1QixFQUN2QixZQUFvQjtRQUU1QixLQUFLLEVBQUUsQ0FBQztRQUxBLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDaEIsbUJBQWMsR0FBZCxjQUFjLENBQVE7UUFDdEIsb0JBQWUsR0FBZixlQUFlLENBQVE7UUFDdkIsaUJBQVksR0FBWixZQUFZLENBQVE7SUFHOUIsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBbUI7UUFDdEMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1RCxPQUFPLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNoRCxNQUFNLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFB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
|
|
@@ -1,14 +1,21 @@
|
|
|
1
1
|
import type { AvmContext } from '../avm_context.js';
|
|
2
2
|
import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
|
|
3
3
|
import { Instruction } from './instruction.js';
|
|
4
|
+
export declare enum ContractInstanceMember {
|
|
5
|
+
DEPLOYER = 0,
|
|
6
|
+
CLASS_ID = 1,
|
|
7
|
+
INIT_HASH = 2
|
|
8
|
+
}
|
|
4
9
|
export declare class GetContractInstance extends Instruction {
|
|
5
10
|
private indirect;
|
|
11
|
+
private memberEnum;
|
|
6
12
|
private addressOffset;
|
|
7
13
|
private dstOffset;
|
|
14
|
+
private existsOffset;
|
|
8
15
|
static readonly type: string;
|
|
9
16
|
static readonly opcode: Opcode;
|
|
10
17
|
static readonly wireFormat: OperandType[];
|
|
11
|
-
constructor(indirect: number, addressOffset: number, dstOffset: number);
|
|
18
|
+
constructor(indirect: number, memberEnum: number, addressOffset: number, dstOffset: number, existsOffset: number);
|
|
12
19
|
execute(context: AvmContext): Promise<void>;
|
|
13
20
|
}
|
|
14
21
|
//# sourceMappingURL=contract.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/contract.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,oBAAY,sBAAsB;IAChC,QAAQ,IAAA;IACR,QAAQ,IAAA;IACR,SAAS,IAAA;CACV;AAED,qBAAa,mBAAoB,SAAQ,WAAW;IAchD,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,YAAY;IAjBtB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAyB;IACrD,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAA8B;IAE5D,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAOvC;gBAGQ,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM;IAKxB,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAsClD"}
|
|
@@ -1,35 +1,53 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { Field, TypeTag, Uint1 } from '../avm_memory_types.js';
|
|
2
|
+
import { InstructionExecutionError } from '../errors.js';
|
|
3
3
|
import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
|
|
4
4
|
import { Addressing } from './addressing_mode.js';
|
|
5
5
|
import { Instruction } from './instruction.js';
|
|
6
|
+
export var ContractInstanceMember;
|
|
7
|
+
(function (ContractInstanceMember) {
|
|
8
|
+
ContractInstanceMember[ContractInstanceMember["DEPLOYER"] = 0] = "DEPLOYER";
|
|
9
|
+
ContractInstanceMember[ContractInstanceMember["CLASS_ID"] = 1] = "CLASS_ID";
|
|
10
|
+
ContractInstanceMember[ContractInstanceMember["INIT_HASH"] = 2] = "INIT_HASH";
|
|
11
|
+
})(ContractInstanceMember || (ContractInstanceMember = {}));
|
|
6
12
|
export class GetContractInstance extends Instruction {
|
|
7
|
-
constructor(indirect, addressOffset, dstOffset) {
|
|
13
|
+
constructor(indirect, memberEnum, addressOffset, dstOffset, existsOffset) {
|
|
8
14
|
super();
|
|
9
15
|
this.indirect = indirect;
|
|
16
|
+
this.memberEnum = memberEnum;
|
|
10
17
|
this.addressOffset = addressOffset;
|
|
11
18
|
this.dstOffset = dstOffset;
|
|
19
|
+
this.existsOffset = existsOffset;
|
|
12
20
|
}
|
|
13
21
|
async execute(context) {
|
|
14
22
|
const memory = context.machineState.memory.track(this.type);
|
|
15
23
|
context.machineState.consumeGas(this.gasCost());
|
|
16
|
-
|
|
24
|
+
if (!(this.memberEnum in ContractInstanceMember)) {
|
|
25
|
+
throw new InstructionExecutionError(`Invalid GETCONSTRACTINSTANCE member enum ${this.memberEnum}`);
|
|
26
|
+
}
|
|
27
|
+
const operands = [this.addressOffset, this.dstOffset, this.existsOffset];
|
|
17
28
|
const addressing = Addressing.fromWire(this.indirect, operands.length);
|
|
18
|
-
const [addressOffset, dstOffset] = addressing.resolve(operands, memory);
|
|
29
|
+
const [addressOffset, dstOffset, existsOffset] = addressing.resolve(operands, memory);
|
|
19
30
|
memory.checkTag(TypeTag.FIELD, addressOffset);
|
|
20
31
|
const address = memory.get(addressOffset).toFr();
|
|
21
32
|
const instance = await context.persistableState.getContractInstance(address);
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
+
const exists = instance !== undefined;
|
|
34
|
+
let memberValue = new Field(0);
|
|
35
|
+
if (exists) {
|
|
36
|
+
switch (this.memberEnum) {
|
|
37
|
+
case ContractInstanceMember.DEPLOYER:
|
|
38
|
+
memberValue = new Field(instance.deployer.toField());
|
|
39
|
+
break;
|
|
40
|
+
case ContractInstanceMember.CLASS_ID:
|
|
41
|
+
memberValue = new Field(instance.contractClassId.toField());
|
|
42
|
+
break;
|
|
43
|
+
case ContractInstanceMember.INIT_HASH:
|
|
44
|
+
memberValue = new Field(instance.initializationHash);
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
memory.set(existsOffset, new Uint1(exists ? 1 : 0));
|
|
49
|
+
memory.set(dstOffset, memberValue);
|
|
50
|
+
memory.assert({ reads: 1, writes: 2, addressing });
|
|
33
51
|
context.machineState.incrementPc();
|
|
34
52
|
}
|
|
35
53
|
}
|
|
@@ -37,9 +55,11 @@ GetContractInstance.type = 'GETCONTRACTINSTANCE';
|
|
|
37
55
|
GetContractInstance.opcode = Opcode.GETCONTRACTINSTANCE;
|
|
38
56
|
// Informs (de)serialization. See Instruction.deserialize.
|
|
39
57
|
GetContractInstance.wireFormat = [
|
|
40
|
-
OperandType.UINT8,
|
|
41
|
-
OperandType.UINT8,
|
|
42
|
-
OperandType.
|
|
43
|
-
OperandType.
|
|
58
|
+
OperandType.UINT8, // opcode
|
|
59
|
+
OperandType.UINT8, // indirect bits
|
|
60
|
+
OperandType.UINT8, // member enum (immediate)
|
|
61
|
+
OperandType.UINT16, // addressOffset
|
|
62
|
+
OperandType.UINT16, // dstOffset
|
|
63
|
+
OperandType.UINT16, // existsOfsset
|
|
44
64
|
];
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXZtL29wY29kZXMvY29udHJhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3pELE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDcEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUvQyxNQUFNLENBQU4sSUFBWSxzQkFJWDtBQUpELFdBQVksc0JBQXNCO0lBQ2hDLDJFQUFRLENBQUE7SUFDUiwyRUFBUSxDQUFBO0lBQ1IsNkVBQVMsQ0FBQTtBQUNYLENBQUMsRUFKVyxzQkFBc0IsS0FBdEIsc0JBQXNCLFFBSWpDO0FBRUQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLFdBQVc7SUFhbEQsWUFDVSxRQUFnQixFQUNoQixVQUFrQixFQUNsQixhQUFxQixFQUNyQixTQUFpQixFQUNqQixZQUFvQjtRQUU1QixLQUFLLEVBQUUsQ0FBQztRQU5BLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDaEIsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUNsQixrQkFBYSxHQUFiLGFBQWEsQ0FBUTtRQUNyQixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBQ2pCLGlCQUFZLEdBQVosWUFBWSxDQUFRO0lBRzlCLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQW1CO1FBQy9CLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUQsT0FBTyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFFaEQsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxzQkFBc0IsQ0FBQyxFQUFFLENBQUM7WUFDakQsTUFBTSxJQUFJLHlCQUF5QixDQUFDLDRDQUE0QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUNyRyxDQUFDO1FBRUQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkUsTUFBTSxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsWUFBWSxDQUFDLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDdEYsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBRTlDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakQsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0UsTUFBTSxNQUFNLEdBQUcsUUFBUSxLQUFLLFNBQVMsQ0FBQztRQUV0QyxJQUFJLFdBQVcsR0FBRyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvQixJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsUUFBUSxJQUFJLENBQUMsVUFBb0MsRUFBRSxDQUFDO2dCQUNsRCxLQUFLLHNCQUFzQixDQUFDLFFBQVE7b0JBQ2xDLFdBQVcsR0FBRyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7b0JBQ3JELE1BQU07Z0JBQ1IsS0FBSyxzQkFBc0IsQ0FBQyxRQUFRO29CQUNsQyxXQUFXLEdBQUcsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO29CQUM1RCxNQUFNO2dCQUNSLEtBQUssc0JBQXNCLENBQUMsU0FBUztvQkFDbkMsV0FBVyxHQUFHLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO29CQUNyRCxNQUFNO1lBQ1YsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwRCxNQUFNLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUVuQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDbkQsT0FBTyxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQyxDQUFDOztBQTNEZSx3QkFBSSxHQUFXLHFCQUFxQixDQUFDO0FBQ3JDLDBCQUFNLEdBQVcsTUFBTSxDQUFDLG1CQUFtQixDQUFDO0FBQzVELDBEQUEwRDtBQUMxQyw4QkFBVSxHQUFrQjtJQUMxQyxXQUFXLENBQUMsS0FBSyxFQUFFLFNBQVM7SUFDNUIsV0FBVyxDQUFDLEtBQUssRUFBRSxnQkFBZ0I7SUFDbkMsV0FBVyxDQUFDLEtBQUssRUFBRSwwQkFBMEI7SUFDN0MsV0FBVyxDQUFDLE1BQU0sRUFBRSxnQkFBZ0I7SUFDcEMsV0FBVyxDQUFDLE1BQU0sRUFBRSxZQUFZO0lBQ2hDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsZUFBZTtDQUNwQyxDQUFDIn0=
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type AvmContext } from '../avm_context.js';
|
|
2
2
|
import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
|
|
3
3
|
import { Instruction } from './instruction.js';
|
|
4
|
-
export declare class
|
|
4
|
+
export declare class ToRadixBE extends Instruction {
|
|
5
5
|
private indirect;
|
|
6
6
|
private srcOffset;
|
|
7
7
|
private dstOffset;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversion.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/conversion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBAAa,SAAU,SAAQ,WAAW;IAgBtC,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,UAAU;IApBpB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAe;IAClC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAoB;IAGlD,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAQvC;gBAGQ,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM;IAKf,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"conversion.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/conversion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBAAa,SAAU,SAAQ,WAAW;IAgBtC,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,UAAU;IApBpB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAe;IAClC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAoB;IAGlD,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAQvC;gBAGQ,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM;IAKf,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAmCzD"}
|
|
@@ -3,7 +3,7 @@ import { InstructionExecutionError } from '../errors.js';
|
|
|
3
3
|
import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
|
|
4
4
|
import { Addressing } from './addressing_mode.js';
|
|
5
5
|
import { Instruction } from './instruction.js';
|
|
6
|
-
export class
|
|
6
|
+
export class ToRadixBE extends Instruction {
|
|
7
7
|
constructor(indirect, srcOffset, dstOffset, radixOffset, numLimbs, outputBits) {
|
|
8
8
|
super();
|
|
9
9
|
this.indirect = indirect;
|
|
@@ -24,14 +24,17 @@ export class ToRadixLE extends Instruction {
|
|
|
24
24
|
memory.checkTag(TypeTag.UINT32, radixOffset);
|
|
25
25
|
let value = memory.get(srcOffset).toBigInt();
|
|
26
26
|
const radix = memory.get(radixOffset).toBigInt();
|
|
27
|
+
if (this.numLimbs < 1) {
|
|
28
|
+
throw new InstructionExecutionError(`ToRadixBE instruction's numLimbs should be > 0 (was ${this.numLimbs})`);
|
|
29
|
+
}
|
|
27
30
|
if (radix > 256) {
|
|
28
|
-
throw new InstructionExecutionError(`
|
|
31
|
+
throw new InstructionExecutionError(`ToRadixBE instruction's radix should be <= 256 (was ${radix})`);
|
|
29
32
|
}
|
|
30
33
|
const radixBN = BigInt(radix);
|
|
31
|
-
const limbArray =
|
|
32
|
-
for (let i =
|
|
34
|
+
const limbArray = new Array(this.numLimbs);
|
|
35
|
+
for (let i = this.numLimbs - 1; i >= 0; i--) {
|
|
33
36
|
const limb = value % radixBN;
|
|
34
|
-
limbArray
|
|
37
|
+
limbArray[i] = limb;
|
|
35
38
|
value /= radixBN;
|
|
36
39
|
}
|
|
37
40
|
const outputType = this.outputBits != 0 ? Uint1 : Uint8;
|
|
@@ -41,10 +44,10 @@ export class ToRadixLE extends Instruction {
|
|
|
41
44
|
context.machineState.incrementPc();
|
|
42
45
|
}
|
|
43
46
|
}
|
|
44
|
-
|
|
45
|
-
|
|
47
|
+
ToRadixBE.type = 'TORADIXLE';
|
|
48
|
+
ToRadixBE.opcode = Opcode.TORADIXBE;
|
|
46
49
|
// Informs (de)serialization. See Instruction.deserialize.
|
|
47
|
-
|
|
50
|
+
ToRadixBE.wireFormat = [
|
|
48
51
|
OperandType.UINT8, // Opcode
|
|
49
52
|
OperandType.UINT8, // Indirect
|
|
50
53
|
OperandType.UINT16, // src memory address
|
|
@@ -53,4 +56,4 @@ ToRadixLE.wireFormat = [
|
|
|
53
56
|
OperandType.UINT16, // number of limbs (Immediate)
|
|
54
57
|
OperandType.UINT8, // output is in "bits" mode (Immediate - Uint1 still takes up a whole byte)
|
|
55
58
|
];
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdm0vb3Bjb2Rlcy9jb252ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9ELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFL0MsTUFBTSxPQUFPLFNBQVUsU0FBUSxXQUFXO0lBZXhDLFlBQ1UsUUFBZ0IsRUFDaEIsU0FBaUIsRUFDakIsU0FBaUIsRUFDakIsV0FBbUIsRUFDbkIsUUFBZ0IsRUFDaEIsVUFBa0I7UUFFMUIsS0FBSyxFQUFFLENBQUM7UUFQQSxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2hCLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFDakIsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUNqQixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUNuQixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2hCLGVBQVUsR0FBVixVQUFVLENBQVE7SUFHNUIsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBbUI7UUFDdEMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1RCxNQUFNLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDcEUsTUFBTSxVQUFVLEdBQUcsVUFB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
|
|
@@ -3,19 +3,18 @@ import { Opcode, OperandType } from '../serialization/instruction_serialization.
|
|
|
3
3
|
import { Instruction } from './instruction.js';
|
|
4
4
|
export declare enum EnvironmentVariable {
|
|
5
5
|
ADDRESS = 0,
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
DAGASLEFT = 13
|
|
6
|
+
SENDER = 1,
|
|
7
|
+
FUNCTIONSELECTOR = 2,
|
|
8
|
+
TRANSACTIONFEE = 3,
|
|
9
|
+
CHAINID = 4,
|
|
10
|
+
VERSION = 5,
|
|
11
|
+
BLOCKNUMBER = 6,
|
|
12
|
+
TIMESTAMP = 7,
|
|
13
|
+
FEEPERL2GAS = 8,
|
|
14
|
+
FEEPERDAGAS = 9,
|
|
15
|
+
ISSTATICCALL = 10,
|
|
16
|
+
L2GASLEFT = 11,
|
|
17
|
+
DAGASLEFT = 12
|
|
19
18
|
}
|
|
20
19
|
export declare class GetEnvVar extends Instruction {
|
|
21
20
|
private indirect;
|
|
@@ -24,7 +23,7 @@ export declare class GetEnvVar extends Instruction {
|
|
|
24
23
|
static readonly type: string;
|
|
25
24
|
static readonly opcode: Opcode;
|
|
26
25
|
static readonly wireFormat16: OperandType[];
|
|
27
|
-
constructor(indirect: number, varEnum:
|
|
26
|
+
constructor(indirect: number, varEnum: number, dstOffset: number);
|
|
28
27
|
execute(context: AvmContext): Promise<void>;
|
|
29
28
|
}
|
|
30
29
|
//# 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;
|
|
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;AAGpD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,oBAAY,mBAAmB;IAC7B,OAAO,IAAA;IACP,MAAM,IAAA;IACN,gBAAgB,IAAA;IAChB,cAAc,IAAA;IACd,OAAO,IAAA;IACP,OAAO,IAAA;IACP,WAAW,IAAA;IACX,SAAS,IAAA;IACT,WAAW,IAAA;IACX,WAAW,IAAA;IACX,YAAY,KAAA;IACZ,SAAS,KAAA;IACT,SAAS,KAAA;CACV;AAmCD,qBAAa,SAAU,SAAQ,WAAW;IAU5B,OAAO,CAAC,QAAQ;IAAU,OAAO,CAAC,OAAO;IAAU,OAAO,CAAC,SAAS;IAThF,gBAAuB,IAAI,EAAE,MAAM,CAAe;IAClD,gBAAuB,MAAM,EAAE,MAAM,CAAuB;IAC5D,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,WAAW,EAAE,CAKzC;gBAEkB,QAAQ,EAAE,MAAM,EAAU,OAAO,EAAE,MAAM,EAAU,SAAS,EAAE,MAAM;IAI3E,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAiBzD"}
|
|
@@ -1,30 +1,28 @@
|
|
|
1
1
|
import { Field, Uint32, Uint64 } from '../avm_memory_types.js';
|
|
2
|
+
import { InstructionExecutionError } from '../errors.js';
|
|
2
3
|
import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
|
|
3
4
|
import { Addressing } from './addressing_mode.js';
|
|
4
5
|
import { Instruction } from './instruction.js';
|
|
5
6
|
export var EnvironmentVariable;
|
|
6
7
|
(function (EnvironmentVariable) {
|
|
7
8
|
EnvironmentVariable[EnvironmentVariable["ADDRESS"] = 0] = "ADDRESS";
|
|
8
|
-
EnvironmentVariable[EnvironmentVariable["
|
|
9
|
-
EnvironmentVariable[EnvironmentVariable["
|
|
10
|
-
EnvironmentVariable[EnvironmentVariable["
|
|
11
|
-
EnvironmentVariable[EnvironmentVariable["
|
|
12
|
-
EnvironmentVariable[EnvironmentVariable["
|
|
13
|
-
EnvironmentVariable[EnvironmentVariable["
|
|
14
|
-
EnvironmentVariable[EnvironmentVariable["
|
|
15
|
-
EnvironmentVariable[EnvironmentVariable["
|
|
16
|
-
EnvironmentVariable[EnvironmentVariable["
|
|
17
|
-
EnvironmentVariable[EnvironmentVariable["
|
|
18
|
-
EnvironmentVariable[EnvironmentVariable["
|
|
19
|
-
EnvironmentVariable[EnvironmentVariable["
|
|
20
|
-
EnvironmentVariable[EnvironmentVariable["DAGASLEFT"] = 13] = "DAGASLEFT";
|
|
9
|
+
EnvironmentVariable[EnvironmentVariable["SENDER"] = 1] = "SENDER";
|
|
10
|
+
EnvironmentVariable[EnvironmentVariable["FUNCTIONSELECTOR"] = 2] = "FUNCTIONSELECTOR";
|
|
11
|
+
EnvironmentVariable[EnvironmentVariable["TRANSACTIONFEE"] = 3] = "TRANSACTIONFEE";
|
|
12
|
+
EnvironmentVariable[EnvironmentVariable["CHAINID"] = 4] = "CHAINID";
|
|
13
|
+
EnvironmentVariable[EnvironmentVariable["VERSION"] = 5] = "VERSION";
|
|
14
|
+
EnvironmentVariable[EnvironmentVariable["BLOCKNUMBER"] = 6] = "BLOCKNUMBER";
|
|
15
|
+
EnvironmentVariable[EnvironmentVariable["TIMESTAMP"] = 7] = "TIMESTAMP";
|
|
16
|
+
EnvironmentVariable[EnvironmentVariable["FEEPERL2GAS"] = 8] = "FEEPERL2GAS";
|
|
17
|
+
EnvironmentVariable[EnvironmentVariable["FEEPERDAGAS"] = 9] = "FEEPERDAGAS";
|
|
18
|
+
EnvironmentVariable[EnvironmentVariable["ISSTATICCALL"] = 10] = "ISSTATICCALL";
|
|
19
|
+
EnvironmentVariable[EnvironmentVariable["L2GASLEFT"] = 11] = "L2GASLEFT";
|
|
20
|
+
EnvironmentVariable[EnvironmentVariable["DAGASLEFT"] = 12] = "DAGASLEFT";
|
|
21
21
|
})(EnvironmentVariable || (EnvironmentVariable = {}));
|
|
22
22
|
function getValue(e, ctx) {
|
|
23
23
|
switch (e) {
|
|
24
24
|
case EnvironmentVariable.ADDRESS:
|
|
25
25
|
return new Field(ctx.environment.address.toField());
|
|
26
|
-
case EnvironmentVariable.STORAGEADDRESS:
|
|
27
|
-
return new Field(ctx.environment.storageAddress.toField());
|
|
28
26
|
case EnvironmentVariable.SENDER:
|
|
29
27
|
return new Field(ctx.environment.sender.toField());
|
|
30
28
|
case EnvironmentVariable.FUNCTIONSELECTOR:
|
|
@@ -63,6 +61,9 @@ export class GetEnvVar extends Instruction {
|
|
|
63
61
|
async execute(context) {
|
|
64
62
|
const memory = context.machineState.memory.track(this.type);
|
|
65
63
|
context.machineState.consumeGas(this.gasCost());
|
|
64
|
+
if (!(this.varEnum in EnvironmentVariable)) {
|
|
65
|
+
throw new InstructionExecutionError(`Invalid GETENVVAR var enum ${this.varEnum}`);
|
|
66
|
+
}
|
|
66
67
|
const operands = [this.dstOffset];
|
|
67
68
|
const addressing = Addressing.fromWire(this.indirect, operands.length);
|
|
68
69
|
const [dstOffset] = addressing.resolve(operands, memory);
|
|
@@ -79,4 +80,4 @@ GetEnvVar.wireFormat16 = [
|
|
|
79
80
|
OperandType.UINT8, // variable enum (immediate)
|
|
80
81
|
OperandType.UINT16, // dstOffset
|
|
81
82
|
];
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnRfZ2V0dGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdm0vb3Bjb2Rlcy9lbnZpcm9ubWVudF9nZXR0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9ELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFL0MsTUFBTSxDQUFOLElBQVksbUJBY1g7QUFkRCxXQUFZLG1CQUFtQjtJQUM3QixtRUFBTyxDQUFBO0lBQ1AsaUVBQU0sQ0FBQTtJQUNOLHFGQUFnQixDQUFBO0lBQ2hCLGlGQUFjLENBQUE7SUFDZCxtRUFBTyxDQUFBO0lBQ1AsbUVBQU8sQ0FBQTtJQUNQLDJFQUFXLENBQUE7SUFDWCx1RUFBUyxDQUFBO0lBQ1QsMkVBQVcsQ0FBQTtJQUNYLDJFQUFXLENBQUE7SUFDWCw4RUFBWSxDQUFBO0lBQ1osd0VBQVMsQ0FBQTtJQUNULHdFQUFTLENBQUE7QUFDWCxDQUFDLEVBZFcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQWM5QjtBQUVELFNBQVMsUUFBUSxDQUFDLENBQXNCLEVBQUUsR0FBZTtJQUN2RCxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ1YsS0FBSyxtQkFBbUIsQ0FBQyxPQUFPO1lBQzlCLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN0RCxLQUFLLG1CQUFtQixDQUFDLE1BQU07WUFDN0IsT0FBTyxJQUFJLEtBQUss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
|
|
@@ -7,12 +7,9 @@ declare abstract class ExternalCall extends Instruction {
|
|
|
7
7
|
private addrOffset;
|
|
8
8
|
private argsOffset;
|
|
9
9
|
private argsSizeOffset;
|
|
10
|
-
private retOffset;
|
|
11
|
-
private retSize;
|
|
12
10
|
private successOffset;
|
|
13
|
-
private functionSelectorOffset;
|
|
14
11
|
static readonly wireFormat: OperandType[];
|
|
15
|
-
constructor(indirect: number, gasOffset: number, addrOffset: number, argsOffset: number, argsSizeOffset: number,
|
|
12
|
+
constructor(indirect: number, gasOffset: number, addrOffset: number, argsOffset: number, argsSizeOffset: number, successOffset: number);
|
|
16
13
|
execute(context: AvmContext): Promise<void>;
|
|
17
14
|
abstract get type(): 'CALL' | 'STATICCALL';
|
|
18
15
|
}
|
|
@@ -39,12 +36,12 @@ export declare class Return extends Instruction {
|
|
|
39
36
|
export declare class Revert extends Instruction {
|
|
40
37
|
private indirect;
|
|
41
38
|
private returnOffset;
|
|
42
|
-
private
|
|
39
|
+
private retSizeOffset;
|
|
43
40
|
static type: string;
|
|
44
41
|
static readonly opcode: Opcode;
|
|
45
42
|
static readonly wireFormat8: OperandType[];
|
|
46
43
|
static readonly wireFormat16: OperandType[];
|
|
47
|
-
constructor(indirect: number, returnOffset: number,
|
|
44
|
+
constructor(indirect: number, returnOffset: number, retSizeOffset: number);
|
|
48
45
|
execute(context: AvmContext): Promise<void>;
|
|
49
46
|
}
|
|
50
47
|
export {};
|