@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,3 +1,4 @@
|
|
|
1
|
+
import { toBufferBE } from '@aztec/foundation/bigint-buffer';
|
|
1
2
|
import { Fr } from '@aztec/foundation/fields';
|
|
2
3
|
import { strict as assert } from 'assert';
|
|
3
4
|
import { TagCheckError } from './errors.js';
|
|
@@ -68,6 +69,9 @@ function UnsignedIntegerClassFactory(bits) {
|
|
|
68
69
|
toBigInt() {
|
|
69
70
|
return this.n;
|
|
70
71
|
}
|
|
72
|
+
toBuffer() {
|
|
73
|
+
return toBufferBE(this.n, bits / 8);
|
|
74
|
+
}
|
|
71
75
|
},
|
|
72
76
|
_a.mod = 1n << BigInt(bits),
|
|
73
77
|
_a.bitmask = _a.mod - 1n,
|
|
@@ -109,9 +113,15 @@ export class Field extends MemoryValue {
|
|
|
109
113
|
equals(rhs) {
|
|
110
114
|
return this.rep.equals(rhs.rep);
|
|
111
115
|
}
|
|
116
|
+
lt(rhs) {
|
|
117
|
+
return this.rep.lt(rhs.rep);
|
|
118
|
+
}
|
|
112
119
|
toBigInt() {
|
|
113
120
|
return this.rep.toBigInt();
|
|
114
121
|
}
|
|
122
|
+
toBuffer() {
|
|
123
|
+
return this.rep.toBuffer();
|
|
124
|
+
}
|
|
115
125
|
}
|
|
116
126
|
Field.MODULUS = Fr.MODULUS;
|
|
117
127
|
export var TypeTag;
|
|
@@ -248,4 +258,4 @@ export class TaggedMemory {
|
|
|
248
258
|
}
|
|
249
259
|
// FIXME: memory should be 2^32, but TS doesn't allow for arrays that big.
|
|
250
260
|
TaggedMemory.MAX_MEMORY_SIZE = Number((1n << 32n) - 2n);
|
|
251
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZtX21lbW9yeV90eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdm0vYXZtX21lbW9yeV90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFOUMsT0FBTyxFQUFFLE1BQU0sSUFBSSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU1QyxzRUFBc0U7QUFDdEUsTUFBTSxPQUFnQixXQUFXO0lBYy9CLFdBQVc7SUFDSixJQUFJO1FBQ1QsT0FBTyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNqQyxDQUFDO0NBQ0Y7QUFFRCxpRkFBaUY7QUFDakYsTUFBTSxPQUFnQixhQUFjLFNBQVEsV0FBVztDQVN0RDtBQUVEOzs7SUFHSTtBQUNKLFNBQVMsMkJBQTJCLENBQUMsSUFBWTs7SUFDL0MsWUFBTyxNQUFNLFlBQWEsU0FBUSxhQUFhO1lBSzdDLFlBQW1CLENBQWtCO2dCQUNuQyxLQUFLLEVBQUUsQ0FBQztnQkFDUixJQUFJLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbkIsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFZLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxxQkFBcUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1lBQ3hGLENBQUM7WUFFTSxLQUFLLENBQUMsQ0FBUztnQkFDcEIsT0FBTyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2RCxDQUFDO1lBRU0sR0FBRyxDQUFDLEdBQWlCO2dCQUMxQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDN0QsQ0FBQztZQUVNLEdBQUcsQ0FBQyxHQUFpQjtnQkFDMUIsTUFBTSxHQUFHLEdBQVcsSUFBSSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUNuQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzdELENBQUM7WUFFTSxHQUFHLENBQUMsR0FBaUI7Z0JBQzFCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM3RCxDQUFDO1lBRU0sR0FBRyxDQUFDLEdBQWlCO2dCQUMxQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEMsQ0FBQztZQUVELHFCQUFxQjtZQUNkLEdBQUcsQ0FBQyxHQUFpQjtnQkFDMUIsOENBQThDO2dCQUM5QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckMsQ0FBQztZQUVNLEdBQUcsQ0FBQyxHQUFpQjtnQkFDMUIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzlELENBQUM7WUFFTSxHQUFHLENBQUMsR0FBaUI7Z0JBQzFCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwQyxDQUFDO1lBRU0sRUFBRSxDQUFDLEdBQWlCO2dCQUN6QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEMsQ0FBQztZQUVNLEdBQUcsQ0FBQyxHQUFpQjtnQkFDMUIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLENBQUM7WUFFTSxHQUFHO2dCQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3BELENBQUM7WUFFTSxNQUFNLENBQUMsR0FBaUI7Z0JBQzdCLE9BQU8sSUFBSSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzFCLENBQUM7WUFFTSxFQUFFLENBQUMsR0FBaUI7Z0JBQ3pCLE9BQU8sSUFBSSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3hCLENBQUM7WUFFTSxRQUFRO2dCQUNiLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNoQixDQUFDO1NBQ0Y7UUFwRWlCLE1BQUcsR0FBVyxFQUFFLElBQUksTUFBTSxDQUFDLElBQUksQ0FBRTtRQUNqQyxVQUFPLEdBQVcsRUFBSSxDQUFDLEdBQUcsR0FBRyxFQUFHO1dBbUVoRDtBQUNKLENBQUM7QUFFRCxnRUFBZ0U7QUFDaEUsNEVBQTRFO0FBQzVFLGdEQUFnRDtBQUNoRCxNQUFNLE9BQU8sS0FBTSxTQUFRLDJCQUEyQixDQUFDLENBQUMsQ0FBQztDQUFHO0FBQzVELE1BQU0sT0FBTyxNQUFPLFNBQVEsMkJBQTJCLENBQUMsRUFBRSxDQUFDO0NBQUc7QUFDOUQsTUFBTSxPQUFPLE1BQU8sU0FBUSwyQkFBMkIsQ0FBQyxFQUFFLENBQUM7Q0FBRztBQUM5RCxNQUFNLE9BQU8sTUFBTyxTQUFRLDJCQUEyQixDQUFDLEVBQUUsQ0FBQztDQUFHO0FBQzlELE1BQU0sT0FBTyxPQUFRLFNBQVEsMkJBQTJCLENBQUMsR0FBRyxDQUFDO0NBQUc7QUFFaEUsTUFBTSxPQUFPLEtBQU0sU0FBUSxXQUFXO0lBSXBDLFlBQVksQ0FBdUI7UUFDakMsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxLQUFLLENBQUMsQ0FBUztRQUNwQixPQUFPLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFTSxHQUFHLENBQUMsR0FBVTtRQUNuQixPQUFPLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSxHQUFHLENBQUMsR0FBVTtRQUNuQixPQUFPLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSxHQUFHLENBQUMsR0FBVTtRQUNuQixPQUFPLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSxHQUFHLENBQUMsR0FBVTtRQUNuQixPQUFPLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSxNQUFNLENBQUMsR0FBVTtRQUN0QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRU0sUUFBUTtRQUNiLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDOztBQWxDc0IsYUFBTyxHQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUM7QUFxQ3RELE1BQU0sQ0FBTixJQUFZLE9BU1g7QUFURCxXQUFZLE9BQU87SUFDakIsdURBQWEsQ0FBQTtJQUNiLHVDQUFLLENBQUE7SUFDTCx5Q0FBTSxDQUFBO0lBQ04seUNBQU0sQ0FBQTtJQUNOLHlDQUFNLENBQUE7SUFDTiwyQ0FBTyxDQUFBO0lBQ1AsdUNBQUssQ0FBQTtJQUNMLDJDQUFPLENBQUE7QUFDVCxDQUFDLEVBVFcsT0FBTyxLQUFQLE9BQU8sUUFTbEI7QUFFRCxxRUFBcUU7QUFDckUsTUFBTSxPQUFPLFlBQVk7SUFLdkI7UUFDRSxzRkFBc0Y7UUFDdEYsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVNLEdBQUcsQ0FBQyxNQUFjO1FBQ3ZCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzlDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBYyxNQUFNLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRU0sS0FBSyxDQUFJLE1BQWM7UUFDNUIsTUFBTSxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDOUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQixPQUFPLElBQVMsQ0FBQztJQUNuQixDQUFDO0lBRU0sUUFBUSxDQUFDLE1BQWMsRUFBRSxJQUFZO1FBQzFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxHQUFHLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNyRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVNLFVBQVUsQ0FBSSxNQUFjLEVBQUUsSUFBWTtRQUMvQyxNQUFNLENBQUMsTUFBTSxHQUFHLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUM5QyxNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksR0FBRyxZQUFZLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDckQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FBUSxDQUFDO0lBQ3ZELENBQUM7SUFFTSxZQUFZLENBQUMsTUFBYyxFQUFFLElBQVk7UUFDOUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDOUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLEdBQUcsWUFBWSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3JELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFTSxHQUFHLENBQUMsTUFBYyxFQUFFLENBQWM7UUFDdkMsTUFBTSxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVNLFFBQVEsQ0FBQyxNQUFjLEVBQUUsRUFBaUI7UUFDL0MsTUFBTSxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDOUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsTUFBTSxHQUFHLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMxRCwwRUFBMEU7UUFDMUUsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ3hDLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTSxNQUFNLENBQUMsTUFBYztRQUMxQixPQUFPLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7T0FFRztJQUNJLFFBQVEsQ0FBQyxHQUFZLEVBQUUsTUFBYztRQUMxQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDaEMsTUFBTSxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3BGLENBQUM7SUFDSCxDQUFDO0lBRU0sTUFBTSxDQUFDLGtCQUFrQixDQUFDLEdBQVk7UUFDM0MsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDcEcsTUFBTSxhQUFhLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN2RCxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ksU0FBUyxDQUFDLEdBQVksRUFBRSxHQUFHLE9BQWlCO1FBQ2pELEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNJLGNBQWMsQ0FBQyxHQUFZLEVBQUUsV0FBbUIsRUFBRSxJQUFZO1FBQ25FLEtBQUssSUFBSSxNQUFNLEdBQUcsV0FBVyxFQUFFLE1BQU0sR0FBRyxXQUFXLEdBQUcsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDckUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFFRCxtRkFBbUY7SUFDbkYsMERBQTBEO0lBQ25ELE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBMEI7UUFDN0MsSUFBSSxHQUFHLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUUxQixJQUFJLENBQUMsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNwQixHQUFHLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUM5QixDQUFDO2FBQU0sSUFBSSxDQUFDLFlBQVksS0FBSyxFQUFFLENBQUM7WUFDOUIsR0FBRyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDdEIsQ0FBQzthQUFNLElBQUksQ0FBQyxZQUFZLEtBQUssRUFBRSxDQUFDO1lBQzlCLEdBQUcsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQ3RCLENBQUM7YUFBTSxJQUFJLENBQUMsWUFBWSxNQUFNLEVBQUUsQ0FBQztZQUMvQixHQUFHLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUN2QixDQUFDO2FBQU0sSUFBSSxDQUFDLFlBQVksTUFBTSxFQUFFLENBQUM7WUFDL0IsR0FBRyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDdkIsQ0FBQzthQUFNLElBQUksQ0FBQyxZQUFZLE1BQU0sRUFBRSxDQUFDO1lBQy9CLEdBQUcsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQ3ZCLENBQUM7YUFBTSxJQUFJLENBQUMsWUFBWSxPQUFPLEVBQUUsQ0FBQztZQUNoQyxHQUFHLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUN4QixDQUFDO1FBRUQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsdUNBQXVDO0lBQ2hDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBa0IsRUFBRSxHQUFZO1FBQzVELENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDZCxRQUFRLEdBQUcsRUFBRSxDQUFDO1lBQ1osS0FBSyxPQUFPLENBQUMsS0FBSztnQkFDaEIsT0FBTyxJQUFJLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzFDLEtBQUssT0FBTyxDQUFDLE1BQU07Z0JBQ2pCLE9BQU8sSUFBSSxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM1QyxLQUFLLE9BQU8sQ0FBQyxNQUFNO2dCQUNqQixPQUFPLElBQUksTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDNUMsS0FBSyxPQUFPLENBQUMsTUFBTTtnQkFDakIsT0FBTyxJQUFJLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzVDLEtBQUssT0FBTyxDQUFDLE9BQU87Z0JBQ2xCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM5QztnQkFDRSxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQ3JFLENBQUM7SUFDSCxDQUFDOztBQW5JRCwwRUFBMEU7QUFDMUQsNEJBQWUsR0FBRyxNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMifQ==
|
|
261
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZtX21lbW9yeV90eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdm0vYXZtX21lbW9yeV90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0QsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTlDLE9BQU8sRUFBRSxNQUFNLElBQUksTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUMsc0VBQXNFO0FBQ3RFLE1BQU0sT0FBZ0IsV0FBVztJQWtCL0IsV0FBVztJQUNKLElBQUk7UUFDVCxPQUFPLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7Q0FDRjtBQUVELGlGQUFpRjtBQUNqRixNQUFNLE9BQWdCLGFBQWMsU0FBUSxXQUFXO0NBT3REO0FBRUQ7OztJQUdJO0FBQ0osU0FBUywyQkFBMkIsQ0FBQyxJQUFZOztJQUMvQyxZQUFPLE1BQU0sWUFBYSxTQUFRLGFBQWE7WUFLN0MsWUFBbUIsQ0FBa0I7Z0JBQ25DLEtBQUssRUFBRSxDQUFDO2dCQUNSLElBQUksQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNuQixNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQVksQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLHFCQUFxQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7WUFDeEYsQ0FBQztZQUVNLEtBQUssQ0FBQyxDQUFTO2dCQUNwQixPQUFPLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3ZELENBQUM7WUFFTSxHQUFHLENBQUMsR0FBaUI7Z0JBQzFCLE9BQU8sSUFB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
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
1
2
|
import type { AvmContext } from './avm_context.js';
|
|
2
3
|
import { AvmContractCallResults } from './avm_message_call_result.js';
|
|
3
4
|
import type { Instruction } from './opcodes/index.js';
|
|
@@ -10,13 +11,14 @@ export declare class AvmSimulator {
|
|
|
10
11
|
*/
|
|
11
12
|
execute(): Promise<AvmContractCallResults>;
|
|
12
13
|
/**
|
|
13
|
-
* Executes the provided
|
|
14
|
+
* Executes the provided bytecode in the current context.
|
|
14
15
|
* This method is useful for testing and debugging.
|
|
15
16
|
*/
|
|
16
|
-
|
|
17
|
+
executeBytecode(bytecode: Buffer): Promise<AvmContractCallResults>;
|
|
17
18
|
/**
|
|
18
|
-
*
|
|
19
|
+
* Executes the provided instructions in the current context.
|
|
20
|
+
* This method is useful for testing and debugging.
|
|
19
21
|
*/
|
|
20
|
-
|
|
22
|
+
executeInstructions(instructions: Instruction[]): Promise<AvmContractCallResults>;
|
|
21
23
|
}
|
|
22
24
|
//# sourceMappingURL=avm_simulator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avm_simulator.d.ts","sourceRoot":"","sources":["../../src/avm/avm_simulator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGtD,qBAAa,YAAY;IAGX,OAAO,CAAC,OAAO;IAF3B,OAAO,CAAC,GAAG,CAAyD;gBAEhD,OAAO,EAAE,UAAU;IAEvC;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"avm_simulator.d.ts","sourceRoot":"","sources":["../../src/avm/avm_simulator.ts"],"names":[],"mappings":";AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGtD,qBAAa,YAAY;IAGX,OAAO,CAAC,OAAO;IAF3B,OAAO,CAAC,GAAG,CAAyD;gBAEhD,OAAO,EAAE,UAAU;IAEvC;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,sBAAsB,CAAC;IAgBvD;;;OAGG;IACU,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAI/E;;;OAGG;IACU,mBAAmB,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAwC/F"}
|
|
@@ -12,8 +12,21 @@ export class AvmSimulator {
|
|
|
12
12
|
* Fetch the bytecode and execute it in the current context.
|
|
13
13
|
*/
|
|
14
14
|
async execute() {
|
|
15
|
-
const
|
|
16
|
-
|
|
15
|
+
const selector = this.context.environment.temporaryFunctionSelector;
|
|
16
|
+
const bytecode = await this.context.persistableState.hostStorage.contractsDb.getBytecode(this.context.environment.address, selector);
|
|
17
|
+
// This assumes that we will not be able to send messages to accounts without code
|
|
18
|
+
// Pending classes and instances impl details
|
|
19
|
+
if (!bytecode) {
|
|
20
|
+
throw new NoBytecodeForContractError(this.context.environment.address);
|
|
21
|
+
}
|
|
22
|
+
return await this.executeBytecode(bytecode);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Executes the provided bytecode in the current context.
|
|
26
|
+
* This method is useful for testing and debugging.
|
|
27
|
+
*/
|
|
28
|
+
async executeBytecode(bytecode) {
|
|
29
|
+
return await this.executeInstructions(decodeFromBytecode(bytecode));
|
|
17
30
|
}
|
|
18
31
|
/**
|
|
19
32
|
* Executes the provided instructions in the current context.
|
|
@@ -27,7 +40,7 @@ export class AvmSimulator {
|
|
|
27
40
|
while (!this.context.machineState.halted) {
|
|
28
41
|
const instruction = instructions[this.context.machineState.pc];
|
|
29
42
|
assert(!!instruction); // This should never happen
|
|
30
|
-
this.log(
|
|
43
|
+
this.log.debug(`@${this.context.machineState.pc} ${instruction.toString()}`);
|
|
31
44
|
// Execute the instruction.
|
|
32
45
|
// Normal returns and reverts will return normally here.
|
|
33
46
|
// "Exceptional halts" will throw.
|
|
@@ -55,19 +68,5 @@ export class AvmSimulator {
|
|
|
55
68
|
return results;
|
|
56
69
|
}
|
|
57
70
|
}
|
|
58
|
-
/**
|
|
59
|
-
* Fetch contract bytecode from world state and decode into executable instructions.
|
|
60
|
-
*/
|
|
61
|
-
async fetchAndDecodeBytecode() {
|
|
62
|
-
// NOTE: the following is mocked as getPublicBytecode does not exist yet
|
|
63
|
-
const selector = this.context.environment.temporaryFunctionSelector;
|
|
64
|
-
const bytecode = await this.context.worldState.hostStorage.contractsDb.getBytecode(this.context.environment.address, selector);
|
|
65
|
-
// This assumes that we will not be able to send messages to accounts without code
|
|
66
|
-
// Pending classes and instances impl details
|
|
67
|
-
if (!bytecode) {
|
|
68
|
-
throw new NoBytecodeForContractError(this.context.environment.address);
|
|
69
|
-
}
|
|
70
|
-
return decodeFromBytecode(bytecode);
|
|
71
|
-
}
|
|
72
71
|
}
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZtX3NpbXVsYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdm0vYXZtX3NpbXVsYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV2RSxPQUFPLEVBQUUsTUFBTSxJQUFJLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUcxQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsMEJBQTBCLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFeEcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFL0UsTUFBTSxPQUFPLFlBQVk7SUFHdkIsWUFBb0IsT0FBbUI7UUFBbkIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUYvQixRQUFHLEdBQWdCLGlCQUFpQixDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFFMUIsQ0FBQztJQUUzQzs7T0FFRztJQUNJLEtBQUssQ0FBQyxPQUFPO1FBQ2xCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLHlCQUF5QixDQUFDO1FBQ3BFLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FDdEYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUNoQyxRQUFRLENBQ1QsQ0FBQztRQUVGLGtGQUFrRjtRQUNsRiw2Q0FBNkM7UUFDN0MsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2QsTUFBTSxJQUFJLDBCQUEwQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3pFLENBQUM7UUFFRCxPQUFPLE1BQU0sSUFBSSxDQUFD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
|
|
@@ -1,18 +1,26 @@
|
|
|
1
|
-
import { GlobalVariables } from '@aztec/circuits.js';
|
|
1
|
+
import { GlobalVariables, L1_TO_L2_MSG_TREE_HEIGHT } from '@aztec/circuits.js';
|
|
2
|
+
import { CommitmentsDB, MessageLoadOracleInputs, PublicContractsDB, PublicStateDB } from '../../index.js';
|
|
2
3
|
import { AvmContext } from '../avm_context.js';
|
|
3
4
|
import { AvmExecutionEnvironment } from '../avm_execution_environment.js';
|
|
4
5
|
import { AvmMachineState } from '../avm_machine_state.js';
|
|
5
|
-
import {
|
|
6
|
+
import { HostStorage } from '../journal/host_storage.js';
|
|
7
|
+
import { AvmPersistableStateManager } from '../journal/journal.js';
|
|
6
8
|
/**
|
|
7
9
|
* Create a new AVM context with default values.
|
|
8
10
|
*/
|
|
9
11
|
export declare function initContext(overrides?: {
|
|
10
|
-
|
|
12
|
+
persistableState?: AvmPersistableStateManager;
|
|
11
13
|
env?: AvmExecutionEnvironment;
|
|
12
14
|
machineState?: AvmMachineState;
|
|
13
15
|
}): AvmContext;
|
|
14
|
-
/** Creates an empty
|
|
15
|
-
export declare function
|
|
16
|
+
/** Creates an empty host storage with mocked dbs. */
|
|
17
|
+
export declare function initHostStorage(overrides?: {
|
|
18
|
+
publicDb?: PublicStateDB;
|
|
19
|
+
contractsDb?: PublicContractsDB;
|
|
20
|
+
commitmentsDb?: CommitmentsDB;
|
|
21
|
+
}): HostStorage;
|
|
22
|
+
/** Creates an empty state manager with mocked storage. */
|
|
23
|
+
export declare function initMockPersistableStateManager(): AvmPersistableStateManager;
|
|
16
24
|
/**
|
|
17
25
|
* Create an empty instance of the Execution Environment where all values are zero, unless overridden in the overrides object
|
|
18
26
|
*/
|
|
@@ -29,4 +37,8 @@ export declare function initMachineState(overrides?: Partial<AvmMachineState>):
|
|
|
29
37
|
* Create a new object with all the same properties as the original, except for the ones in the overrides object.
|
|
30
38
|
*/
|
|
31
39
|
export declare function allSameExcept(original: any, overrides: any): any;
|
|
40
|
+
/**
|
|
41
|
+
* Create an empty L1ToL2Message oracle input
|
|
42
|
+
*/
|
|
43
|
+
export declare function initL1ToL2MessageOracleInput(leafIndex?: bigint): MessageLoadOracleInputs<typeof L1_TO_L2_MSG_TREE_HEIGHT>;
|
|
32
44
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/avm/fixtures/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/avm/fixtures/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAS/E,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC1G,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAEnE;;GAEG;AACH,wBAAgB,WAAW,CAAC,SAAS,CAAC,EAAE;IACtC,gBAAgB,CAAC,EAAE,0BAA0B,CAAC;IAC9C,GAAG,CAAC,EAAE,uBAAuB,CAAC;IAC9B,YAAY,CAAC,EAAE,eAAe,CAAC;CAChC,GAAG,UAAU,CAMb;AAED,qDAAqD;AACrD,wBAAgB,eAAe,CAAC,SAAS,CAAC,EAAE;IAC1C,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,GAAG,WAAW,CAMd;AAED,0DAA0D;AAC1D,wBAAgB,+BAA+B,IAAI,0BAA0B,CAE5E;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAAG,uBAAuB,CAiB9G;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CASzF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAMtF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,GAAG,GAAG,CAEhE;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,SAAS,CAAC,EAAE,MAAM,GACjB,uBAAuB,CAAC,OAAO,wBAAwB,CAAC,CAK1D"}
|
|
@@ -1,25 +1,30 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SiblingPath } from '@aztec/circuit-types';
|
|
2
|
+
import { GlobalVariables, L1_TO_L2_MSG_TREE_HEIGHT } from '@aztec/circuits.js';
|
|
2
3
|
import { FunctionSelector } from '@aztec/foundation/abi';
|
|
3
4
|
import { AztecAddress } from '@aztec/foundation/aztec-address';
|
|
4
5
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
5
6
|
import { Fr } from '@aztec/foundation/fields';
|
|
6
7
|
import { mock } from 'jest-mock-extended';
|
|
7
8
|
import merge from 'lodash.merge';
|
|
9
|
+
import { MessageLoadOracleInputs } from '../../index.js';
|
|
8
10
|
import { AvmContext } from '../avm_context.js';
|
|
9
11
|
import { AvmExecutionEnvironment } from '../avm_execution_environment.js';
|
|
10
12
|
import { AvmMachineState } from '../avm_machine_state.js';
|
|
11
13
|
import { HostStorage } from '../journal/host_storage.js';
|
|
12
|
-
import {
|
|
14
|
+
import { AvmPersistableStateManager } from '../journal/journal.js';
|
|
13
15
|
/**
|
|
14
16
|
* Create a new AVM context with default values.
|
|
15
17
|
*/
|
|
16
18
|
export function initContext(overrides) {
|
|
17
|
-
return new AvmContext(overrides?.
|
|
19
|
+
return new AvmContext(overrides?.persistableState || initMockPersistableStateManager(), overrides?.env || initExecutionEnvironment(), overrides?.machineState || initMachineState());
|
|
18
20
|
}
|
|
19
|
-
/** Creates an empty
|
|
20
|
-
export function
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
/** Creates an empty host storage with mocked dbs. */
|
|
22
|
+
export function initHostStorage(overrides) {
|
|
23
|
+
return new HostStorage(overrides?.publicDb || mock(), overrides?.contractsDb || mock(), overrides?.commitmentsDb || mock());
|
|
24
|
+
}
|
|
25
|
+
/** Creates an empty state manager with mocked storage. */
|
|
26
|
+
export function initMockPersistableStateManager() {
|
|
27
|
+
return new AvmPersistableStateManager(initHostStorage());
|
|
23
28
|
}
|
|
24
29
|
/**
|
|
25
30
|
* Create an empty instance of the Execution Environment where all values are zero, unless overridden in the overrides object
|
|
@@ -49,4 +54,10 @@ export function initMachineState(overrides) {
|
|
|
49
54
|
export function allSameExcept(original, overrides) {
|
|
50
55
|
return merge({}, original, overrides);
|
|
51
56
|
}
|
|
52
|
-
|
|
57
|
+
/**
|
|
58
|
+
* Create an empty L1ToL2Message oracle input
|
|
59
|
+
*/
|
|
60
|
+
export function initL1ToL2MessageOracleInput(leafIndex) {
|
|
61
|
+
return new MessageLoadOracleInputs(leafIndex ?? 0n, new SiblingPath(L1_TO_L2_MSG_TREE_HEIGHT, Array(L1_TO_L2_MSG_TREE_HEIGHT)));
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXZtL2ZpeHR1cmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFOUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxNQUFNLGNBQWMsQ0FBQztBQUVqQyxPQUFPLEVBQWlCLHVCQUF1QixFQUFvQyxNQUFNLGdCQUFnQixDQUFDO0FBQzFHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3pELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRW5FOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBQyxTQUkzQjtJQUNDLE9BQU8sSUFBSSxVQUFVLENBQ25CLFNBQVMsRUFBRSxnQkFBZ0IsSUFBSSwrQkFBK0IsRUFBRSxFQUNoRSxTQUFTLEVBQUUsR0FBRyxJQUFJLHdCQUF3QixFQUFFLEVBQzVDLFNBQVMsRUFBRSxZQUFZLElBQUksZ0JB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host_storage.d.ts","sourceRoot":"","sources":["../../../src/avm/journal/host_storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAErF;;;;GAIG;AACH,qBAAa,WAAW;
|
|
1
|
+
{"version":3,"file":"host_storage.d.ts","sourceRoot":"","sources":["../../../src/avm/journal/host_storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAErF;;;;GAIG;AACH,qBAAa,WAAW;aAEJ,aAAa,EAAE,aAAa;aAC5B,WAAW,EAAE,iBAAiB;aAC9B,aAAa,EAAE,aAAa;gBAF5B,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,iBAAiB,EAC9B,aAAa,EAAE,aAAa;CAE/C"}
|
|
@@ -10,4 +10,4 @@ export class HostStorage {
|
|
|
10
10
|
this.commitmentsDb = commitmentsDb;
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9zdF9zdG9yYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F2bS9qb3VybmFsL2hvc3Rfc3RvcmFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLFdBQVc7SUFDdEIsWUFDa0IsYUFBNEIsRUFDNUIsV0FBOEIsRUFDOUIsYUFBNEI7UUFGNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsZ0JBQVcsR0FBWCxXQUFXLENBQW1CO1FBQzlCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO0lBQzNDLENBQUM7Q0FDTCJ9
|
|
@@ -1,13 +1,19 @@
|
|
|
1
|
+
import { UnencryptedL2Log } from '@aztec/circuit-types';
|
|
2
|
+
import { EthAddress, L2ToL1Message } from '@aztec/circuits.js';
|
|
1
3
|
import { Fr } from '@aztec/foundation/fields';
|
|
2
4
|
import { HostStorage } from './host_storage.js';
|
|
5
|
+
import { TracedL1toL2MessageCheck, TracedNoteHashCheck, TracedNullifierCheck } from './trace_types.js';
|
|
3
6
|
/**
|
|
4
7
|
* Data held within the journal
|
|
5
8
|
*/
|
|
6
9
|
export type JournalData = {
|
|
10
|
+
noteHashChecks: TracedNoteHashCheck[];
|
|
7
11
|
newNoteHashes: Fr[];
|
|
12
|
+
nullifierChecks: TracedNullifierCheck[];
|
|
8
13
|
newNullifiers: Fr[];
|
|
9
|
-
|
|
10
|
-
|
|
14
|
+
l1ToL2MessageChecks: TracedL1toL2MessageCheck[];
|
|
15
|
+
newL1Messages: L2ToL1Message[];
|
|
16
|
+
newLogs: UnencryptedL2Log[];
|
|
11
17
|
/** contract address -\> key -\> value */
|
|
12
18
|
currentStorageValue: Map<bigint, Map<bigint, Fr>>;
|
|
13
19
|
/** contract address -\> key -\> value[] (stored in order of access) */
|
|
@@ -16,75 +22,97 @@ export type JournalData = {
|
|
|
16
22
|
storageReads: Map<bigint, Map<bigint, Fr[]>>;
|
|
17
23
|
};
|
|
18
24
|
/**
|
|
19
|
-
* A
|
|
20
|
-
*
|
|
25
|
+
* A class to manage persistable AVM state for contract calls.
|
|
26
|
+
* Maintains a cache of the current world state,
|
|
27
|
+
* a trace of all world state accesses, and a list of accrued substate items.
|
|
21
28
|
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
29
|
+
* The simulator should make any world state and accrued substate queries through this object.
|
|
30
|
+
*
|
|
31
|
+
* Manages merging of successful/reverted child state into current state.
|
|
25
32
|
*/
|
|
26
|
-
export declare class
|
|
33
|
+
export declare class AvmPersistableStateManager {
|
|
27
34
|
/** Reference to node storage */
|
|
28
35
|
readonly hostStorage: HostStorage;
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
private
|
|
32
|
-
|
|
36
|
+
/** World State */
|
|
37
|
+
/** Public storage, including cached writes */
|
|
38
|
+
private publicStorage;
|
|
39
|
+
/** Nullifier set, including cached/recently-emitted nullifiers */
|
|
40
|
+
private nullifiers;
|
|
41
|
+
/** World State Access Trace */
|
|
42
|
+
private trace;
|
|
43
|
+
/** Accrued Substate **/
|
|
33
44
|
private newL1Messages;
|
|
34
45
|
private newLogs;
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
46
|
+
constructor(hostStorage: HostStorage, parent?: AvmPersistableStateManager);
|
|
47
|
+
/**
|
|
48
|
+
* Create a new state manager forked from this one
|
|
49
|
+
*/
|
|
50
|
+
fork(): AvmPersistableStateManager;
|
|
38
51
|
/**
|
|
39
|
-
*
|
|
52
|
+
* Write to public storage, journal/trace the write.
|
|
53
|
+
*
|
|
54
|
+
* @param storageAddress - the address of the contract whose storage is being written to
|
|
55
|
+
* @param slot - the slot in the contract's storage being written to
|
|
56
|
+
* @param value - the value being written to the slot
|
|
40
57
|
*/
|
|
41
|
-
|
|
58
|
+
writeStorage(storageAddress: Fr, slot: Fr, value: Fr): void;
|
|
42
59
|
/**
|
|
43
|
-
*
|
|
60
|
+
* Read from public storage, trace the read.
|
|
44
61
|
*
|
|
45
|
-
* @param
|
|
46
|
-
* @param
|
|
47
|
-
* @
|
|
62
|
+
* @param storageAddress - the address of the contract whose storage is being read from
|
|
63
|
+
* @param slot - the slot in the contract's storage being read from
|
|
64
|
+
* @returns the latest value written to slot, or 0 if never written to before
|
|
48
65
|
*/
|
|
49
|
-
|
|
66
|
+
readStorage(storageAddress: Fr, slot: Fr): Promise<Fr>;
|
|
50
67
|
/**
|
|
51
|
-
*
|
|
52
|
-
* Read from host storage on cache miss
|
|
68
|
+
* Check if a note hash exists at the given leaf index, trace the check.
|
|
53
69
|
*
|
|
54
|
-
* @param
|
|
55
|
-
* @param
|
|
56
|
-
* @
|
|
70
|
+
* @param storageAddress - the address of the contract whose storage is being read from
|
|
71
|
+
* @param noteHash - the unsiloed note hash being checked
|
|
72
|
+
* @param leafIndex - the leaf index being checked
|
|
73
|
+
* @returns true if the note hash exists at the given leaf index, false otherwise
|
|
57
74
|
*/
|
|
58
|
-
|
|
75
|
+
checkNoteHashExists(storageAddress: Fr, noteHash: Fr, leafIndex: Fr): Promise<boolean>;
|
|
59
76
|
/**
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
|
|
63
|
-
* @param contractAddress -
|
|
64
|
-
* @param key -
|
|
65
|
-
* @param value -
|
|
77
|
+
* Write a note hash, trace the write.
|
|
78
|
+
* @param noteHash - the unsiloed note hash to write
|
|
66
79
|
*/
|
|
67
|
-
journalUpdate(map: Map<bigint, Map<bigint, Fr[]>>, contractAddress: Fr, key: Fr, value: Fr): void;
|
|
68
|
-
private journalRead;
|
|
69
|
-
private journalWrite;
|
|
70
80
|
writeNoteHash(noteHash: Fr): void;
|
|
71
|
-
writeL1Message(message: Fr[]): void;
|
|
72
|
-
writeNullifier(nullifier: Fr): void;
|
|
73
|
-
writeLog(log: Fr[]): void;
|
|
74
81
|
/**
|
|
75
|
-
*
|
|
76
|
-
* -
|
|
77
|
-
*
|
|
78
|
-
*
|
|
82
|
+
* Check if a nullifier exists, trace the check.
|
|
83
|
+
* @param storageAddress - address of the contract that the nullifier is associated with
|
|
84
|
+
* @param nullifier - the unsiloed nullifier to check
|
|
85
|
+
* @returns exists - whether the nullifier exists in the nullifier set
|
|
86
|
+
*/
|
|
87
|
+
checkNullifierExists(storageAddress: Fr, nullifier: Fr): Promise<boolean>;
|
|
88
|
+
/**
|
|
89
|
+
* Write a nullifier to the nullifier set, trace the write.
|
|
90
|
+
* @param storageAddress - address of the contract that the nullifier is associated with
|
|
91
|
+
* @param nullifier - the unsiloed nullifier to write
|
|
92
|
+
*/
|
|
93
|
+
writeNullifier(storageAddress: Fr, nullifier: Fr): Promise<void>;
|
|
94
|
+
/**
|
|
95
|
+
* Check if an L1 to L2 message exists, trace the check.
|
|
96
|
+
* @param msgHash - the message hash to check existence of
|
|
97
|
+
* @param msgLeafIndex - the message leaf index to use in the check
|
|
98
|
+
* @returns exists - whether the message exists in the L1 to L2 Messages tree
|
|
99
|
+
*/
|
|
100
|
+
checkL1ToL2MessageExists(msgHash: Fr, msgLeafIndex: Fr): Promise<boolean>;
|
|
101
|
+
/**
|
|
102
|
+
* Write an L2 to L1 message.
|
|
103
|
+
* @param recipient - L1 contract address to send the message to.
|
|
104
|
+
* @param content - Message content.
|
|
105
|
+
*/
|
|
106
|
+
writeL1Message(recipient: EthAddress | Fr, content: Fr): void;
|
|
107
|
+
writeLog(contractAddress: Fr, event: Fr, log: Fr[]): void;
|
|
108
|
+
/**
|
|
109
|
+
* Accept nested world state modifications, merging in its trace and accrued substate
|
|
79
110
|
*/
|
|
80
|
-
|
|
111
|
+
acceptNestedCallState(nestedJournal: AvmPersistableStateManager): void;
|
|
81
112
|
/**
|
|
82
|
-
* Reject nested world state, merging in its
|
|
83
|
-
* - Utxo objects are concatenated
|
|
84
|
-
* - Public state changes are dropped
|
|
85
|
-
* - Public state journals (r/w logs) are maintained, with the accessing being appended in chronological order
|
|
113
|
+
* Reject nested world state, merging in its trace, but not accepting any state modifications
|
|
86
114
|
*/
|
|
87
|
-
|
|
115
|
+
rejectNestedCallState(nestedJournal: AvmPersistableStateManager): void;
|
|
88
116
|
/**
|
|
89
117
|
* Access the current state of the journal
|
|
90
118
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"journal.d.ts","sourceRoot":"","sources":["../../../src/avm/journal/journal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"journal.d.ts","sourceRoot":"","sources":["../../../src/avm/journal/journal.ts"],"names":[],"mappings":"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"}
|