@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
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PublicExecutionRequest, UnencryptedFunctionL2Logs, UnencryptedL2Log } from '@aztec/circuit-types';
|
|
2
|
-
import { AvmContractInstanceHint, AvmExecutionHints, AvmExternalCallHint, AvmKeyValueHint, AztecAddress, CallContext, ContractStorageRead, ContractStorageUpdateRequest, EthAddress, Gas, L2ToL1Message, LogHash, MAX_L1_TO_L2_MSG_READ_REQUESTS_PER_TX, MAX_L2_TO_L1_MSGS_PER_TX, MAX_NOTE_HASHES_PER_TX, MAX_NOTE_HASH_READ_REQUESTS_PER_TX, MAX_NULLIFIERS_PER_TX, MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_TX, MAX_NULLIFIER_READ_REQUESTS_PER_TX, MAX_PUBLIC_DATA_READS_PER_TX, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, MAX_UNENCRYPTED_LOGS_PER_TX, NoteHash, Nullifier, ReadRequest, TreeLeafReadRequest, } from '@aztec/circuits.js';
|
|
2
|
+
import { AvmContractBytecodeHints, AvmContractInstanceHint, AvmExecutionHints, AvmExternalCallHint, AvmKeyValueHint, AztecAddress, CallContext, ContractStorageRead, ContractStorageUpdateRequest, EthAddress, Gas, L2ToL1Message, LogHash, MAX_L1_TO_L2_MSG_READ_REQUESTS_PER_TX, MAX_L2_TO_L1_MSGS_PER_TX, MAX_NOTE_HASHES_PER_TX, MAX_NOTE_HASH_READ_REQUESTS_PER_TX, MAX_NULLIFIERS_PER_TX, MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_TX, MAX_NULLIFIER_READ_REQUESTS_PER_TX, MAX_PUBLIC_DATA_READS_PER_TX, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, MAX_UNENCRYPTED_LOGS_PER_TX, NoteHash, Nullifier, ReadRequest, SerializableContractInstance, TreeLeafReadRequest, } from '@aztec/circuits.js';
|
|
3
3
|
import { Fr } from '@aztec/foundation/fields';
|
|
4
4
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
5
5
|
import { createSimulationError } from '../common/errors.js';
|
|
@@ -10,7 +10,7 @@ export class PublicSideEffectTrace {
|
|
|
10
10
|
/** The counter of this trace's first side effect. */
|
|
11
11
|
startSideEffectCounter = 0) {
|
|
12
12
|
this.startSideEffectCounter = startSideEffectCounter;
|
|
13
|
-
this.
|
|
13
|
+
this.log = createDebugLogger('aztec:public_side_effect_trace');
|
|
14
14
|
this.contractStorageReads = [];
|
|
15
15
|
this.contractStorageUpdateRequests = [];
|
|
16
16
|
this.noteHashReadRequests = [];
|
|
@@ -37,28 +37,27 @@ export class PublicSideEffectTrace {
|
|
|
37
37
|
incrementSideEffectCounter() {
|
|
38
38
|
this.sideEffectCounter++;
|
|
39
39
|
}
|
|
40
|
-
|
|
41
|
-
tracePublicStorageRead(storageAddress, slot, value, _exists, _cached) {
|
|
40
|
+
tracePublicStorageRead(contractAddress, slot, value, _exists, _cached) {
|
|
42
41
|
// NOTE: exists and cached are unused for now but may be used for optimizations or kernel hints later
|
|
43
42
|
if (this.contractStorageReads.length >= MAX_PUBLIC_DATA_READS_PER_TX) {
|
|
44
43
|
throw new SideEffectLimitReachedError('contract storage read', MAX_PUBLIC_DATA_READS_PER_TX);
|
|
45
44
|
}
|
|
46
|
-
this.contractStorageReads.push(new ContractStorageRead(slot, value, this.sideEffectCounter, AztecAddress.fromField(
|
|
45
|
+
this.contractStorageReads.push(new ContractStorageRead(slot, value, this.sideEffectCounter, AztecAddress.fromField(contractAddress)));
|
|
47
46
|
this.avmCircuitHints.storageValues.items.push(new AvmKeyValueHint(/*key=*/ new Fr(this.sideEffectCounter), /*value=*/ value));
|
|
48
|
-
this.
|
|
47
|
+
this.log.debug(`SLOAD cnt: ${this.sideEffectCounter} val: ${value} slot: ${slot}`);
|
|
49
48
|
this.incrementSideEffectCounter();
|
|
50
49
|
}
|
|
51
|
-
tracePublicStorageWrite(
|
|
50
|
+
tracePublicStorageWrite(contractAddress, slot, value) {
|
|
52
51
|
if (this.contractStorageUpdateRequests.length >= MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX) {
|
|
53
52
|
throw new SideEffectLimitReachedError('contract storage write', MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX);
|
|
54
53
|
}
|
|
55
|
-
this.contractStorageUpdateRequests.push(new ContractStorageUpdateRequest(slot, value, this.sideEffectCounter,
|
|
56
|
-
this.
|
|
54
|
+
this.contractStorageUpdateRequests.push(new ContractStorageUpdateRequest(slot, value, this.sideEffectCounter, contractAddress));
|
|
55
|
+
this.log.debug(`SSTORE cnt: ${this.sideEffectCounter} val: ${value} slot: ${slot}`);
|
|
57
56
|
this.incrementSideEffectCounter();
|
|
58
57
|
}
|
|
59
58
|
// TODO(8287): _exists can be removed once we have the vm properly handling the equality check
|
|
60
|
-
traceNoteHashCheck(
|
|
61
|
-
// NOTE:
|
|
59
|
+
traceNoteHashCheck(_contractAddress, noteHash, leafIndex, exists) {
|
|
60
|
+
// NOTE: contractAddress is unused but will be important when an AVM circuit processes an entire enqueued call
|
|
62
61
|
if (this.noteHashReadRequests.length >= MAX_NOTE_HASH_READ_REQUESTS_PER_TX) {
|
|
63
62
|
throw new SideEffectLimitReachedError('note hash read request', MAX_NOTE_HASH_READ_REQUESTS_PER_TX);
|
|
64
63
|
}
|
|
@@ -66,16 +65,16 @@ export class PublicSideEffectTrace {
|
|
|
66
65
|
this.avmCircuitHints.noteHashExists.items.push(new AvmKeyValueHint(/*key=*/ new Fr(leafIndex), /*value=*/ exists ? Fr.ONE : Fr.ZERO));
|
|
67
66
|
// NOTE: counter does not increment for note hash checks (because it doesn't rely on pending note hashes)
|
|
68
67
|
}
|
|
69
|
-
traceNewNoteHash(
|
|
68
|
+
traceNewNoteHash(_contractAddress, noteHash) {
|
|
70
69
|
if (this.noteHashes.length >= MAX_NOTE_HASHES_PER_TX) {
|
|
71
70
|
throw new SideEffectLimitReachedError('note hash', MAX_NOTE_HASHES_PER_TX);
|
|
72
71
|
}
|
|
73
72
|
this.noteHashes.push(new NoteHash(noteHash, this.sideEffectCounter));
|
|
74
|
-
this.
|
|
73
|
+
this.log.debug(`NEW_NOTE_HASH cnt: ${this.sideEffectCounter}`);
|
|
75
74
|
this.incrementSideEffectCounter();
|
|
76
75
|
}
|
|
77
|
-
traceNullifierCheck(
|
|
78
|
-
// NOTE:
|
|
76
|
+
traceNullifierCheck(_contractAddress, nullifier, _leafIndex, exists, _isPending) {
|
|
77
|
+
// NOTE: contractAddress is unused but will be important when an AVM circuit processes an entire enqueued call
|
|
79
78
|
// NOTE: isPending and leafIndex are unused for now but may be used for optimizations or kernel hints later
|
|
80
79
|
this.enforceLimitOnNullifierChecks();
|
|
81
80
|
const readRequest = new ReadRequest(nullifier, this.sideEffectCounter);
|
|
@@ -86,16 +85,16 @@ export class PublicSideEffectTrace {
|
|
|
86
85
|
this.nullifierNonExistentReadRequests.push(readRequest);
|
|
87
86
|
}
|
|
88
87
|
this.avmCircuitHints.nullifierExists.items.push(new AvmKeyValueHint(/*key=*/ new Fr(this.sideEffectCounter), /*value=*/ new Fr(exists ? 1 : 0)));
|
|
89
|
-
this.
|
|
88
|
+
this.log.debug(`NULLIFIER_EXISTS cnt: ${this.sideEffectCounter}`);
|
|
90
89
|
this.incrementSideEffectCounter();
|
|
91
90
|
}
|
|
92
|
-
traceNewNullifier(
|
|
93
|
-
// NOTE:
|
|
91
|
+
traceNewNullifier(_contractAddress, nullifier) {
|
|
92
|
+
// NOTE: contractAddress is unused but will be important when an AVM circuit processes an entire enqueued call
|
|
94
93
|
if (this.nullifiers.length >= MAX_NULLIFIERS_PER_TX) {
|
|
95
94
|
throw new SideEffectLimitReachedError('nullifier', MAX_NULLIFIERS_PER_TX);
|
|
96
95
|
}
|
|
97
96
|
this.nullifiers.push(new Nullifier(nullifier, this.sideEffectCounter, /*noteHash=*/ Fr.ZERO));
|
|
98
|
-
this.
|
|
97
|
+
this.log.debug(`NEW_NULLIFIER cnt: ${this.sideEffectCounter}`);
|
|
99
98
|
this.incrementSideEffectCounter();
|
|
100
99
|
}
|
|
101
100
|
// TODO(8287): _exists can be removed once we have the vm properly handling the equality check
|
|
@@ -114,7 +113,7 @@ export class PublicSideEffectTrace {
|
|
|
114
113
|
}
|
|
115
114
|
const recipientAddress = EthAddress.fromField(recipient);
|
|
116
115
|
this.newL2ToL1Messages.push(new L2ToL1Message(recipientAddress, content, this.sideEffectCounter));
|
|
117
|
-
this.
|
|
116
|
+
this.log.debug(`NEW_L2_TO_L1_MSG cnt: ${this.sideEffectCounter}`);
|
|
118
117
|
this.incrementSideEffectCounter();
|
|
119
118
|
}
|
|
120
119
|
traceUnencryptedLog(contractAddress, log) {
|
|
@@ -128,16 +127,28 @@ export class PublicSideEffectTrace {
|
|
|
128
127
|
// This length is for charging DA and is checked on-chain - has to be length of log preimage + 4 bytes.
|
|
129
128
|
// The .length call also has a +4 but that is unrelated
|
|
130
129
|
this.unencryptedLogsHashes.push(new LogHash(basicLogHash, this.sideEffectCounter, new Fr(ulog.length + 4)));
|
|
131
|
-
this.
|
|
130
|
+
this.log.debug(`NEW_UNENCRYPTED_LOG cnt: ${this.sideEffectCounter}`);
|
|
132
131
|
this.incrementSideEffectCounter();
|
|
133
132
|
}
|
|
134
|
-
traceGetContractInstance(instance) {
|
|
133
|
+
traceGetContractInstance(contractAddress, exists, instance = SerializableContractInstance.default()) {
|
|
135
134
|
this.enforceLimitOnNullifierChecks('(contract address nullifier from GETCONTRACTINSTANCE)');
|
|
136
|
-
|
|
137
|
-
this.
|
|
138
|
-
this.logger.debug(`CONTRACT_INSTANCE cnt: ${this.sideEffectCounter}`);
|
|
135
|
+
this.avmCircuitHints.contractInstances.items.push(new AvmContractInstanceHint(contractAddress, exists, instance.salt, instance.deployer, instance.contractClassId, instance.initializationHash, instance.publicKeys));
|
|
136
|
+
this.log.debug(`CONTRACT_INSTANCE cnt: ${this.sideEffectCounter}`);
|
|
139
137
|
this.incrementSideEffectCounter();
|
|
140
138
|
}
|
|
139
|
+
// This tracing function gets called everytime we start simulation/execution.
|
|
140
|
+
// This happens both when starting a new top-level trace and the start of every nested trace
|
|
141
|
+
// We use this to collect the AvmContractBytecodeHints
|
|
142
|
+
traceGetBytecode(contractAddress, exists, bytecode = Buffer.alloc(0), contractInstance = SerializableContractInstance.default(), contractClass = {
|
|
143
|
+
artifactHash: Fr.zero(),
|
|
144
|
+
privateFunctionsRoot: Fr.zero(),
|
|
145
|
+
publicBytecodeCommitment: Fr.zero(),
|
|
146
|
+
}) {
|
|
147
|
+
const instance = new AvmContractInstanceHint(contractAddress, exists, contractInstance.salt, contractInstance.deployer, contractInstance.contractClassId, contractInstance.initializationHash, contractInstance.publicKeys);
|
|
148
|
+
// We need to deduplicate the contract instances based on addresses
|
|
149
|
+
this.avmCircuitHints.contractBytecodeHints.items.push(new AvmContractBytecodeHints(bytecode, instance, contractClass));
|
|
150
|
+
this.log.debug(`Bytecode retrieval for contract execution traced: exists=${exists}, instance=${JSON.stringify(contractInstance)}`);
|
|
151
|
+
}
|
|
141
152
|
/**
|
|
142
153
|
* Trace a nested call.
|
|
143
154
|
* Accept some results from a finished nested call's trace into this one.
|
|
@@ -172,7 +183,7 @@ export class PublicSideEffectTrace {
|
|
|
172
183
|
const gasUsed = new Gas(result.startGasLeft.daGas - result.endGasLeft.daGas, result.startGasLeft.l2Gas - result.endGasLeft.l2Gas);
|
|
173
184
|
this.publicCallRequests.push(resultToPublicCallRequest(result));
|
|
174
185
|
this.avmCircuitHints.externalCalls.items.push(new AvmExternalCallHint(
|
|
175
|
-
/*success=*/ new Fr(result.reverted ? 0 : 1), result.returnValues, gasUsed, result.endSideEffectCounter));
|
|
186
|
+
/*success=*/ new Fr(result.reverted ? 0 : 1), result.returnValues, gasUsed, result.endSideEffectCounter, nestedEnvironment.address));
|
|
176
187
|
}
|
|
177
188
|
/**
|
|
178
189
|
* Convert this trace to a PublicExecutionResult for use externally to the simulator.
|
|
@@ -242,11 +253,10 @@ export class PublicSideEffectTrace {
|
|
|
242
253
|
function createPublicExecutionRequest(avmEnvironment) {
|
|
243
254
|
const callContext = CallContext.from({
|
|
244
255
|
msgSender: avmEnvironment.sender,
|
|
245
|
-
|
|
256
|
+
contractAddress: avmEnvironment.address,
|
|
246
257
|
functionSelector: avmEnvironment.functionSelector,
|
|
247
|
-
isDelegateCall: avmEnvironment.isDelegateCall,
|
|
248
258
|
isStaticCall: avmEnvironment.isStaticCall,
|
|
249
259
|
});
|
|
250
|
-
return new PublicExecutionRequest(
|
|
260
|
+
return new PublicExecutionRequest(callContext, avmEnvironment.calldata);
|
|
251
261
|
}
|
|
252
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZV9lZmZlY3RfdHJhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL3NpZGVfZWZmZWN0X3RyYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSx5QkFBeUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNHLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixlQUFlLEVBQ2YsWUFBWSxFQUNaLFdBQVcsRUFFWCxtQkFBbUIsRUFDbkIsNEJBQTRCLEVBQzVCLFVBQVUsRUFDVixHQUFHLEVBQ0gsYUFBYSxFQUNiLE9BQU8sRUFDUCxxQ0FBcUMsRUFDckMsd0JBQXdCLEVBQ3hCLHNCQUFzQixFQUN0QixrQ0FBa0MsRUFDbEMscUJBQXFCLEVBQ3JCLCtDQUErQyxFQUMvQyxrQ0FBa0MsRUFDbEMsNEJBQTRCLEVBQzVCLHNDQUFzQyxFQUN0QywyQkFBMkIsRUFDM0IsUUFBUSxFQUNSLFNBQVMsRUFFVCxXQUFXLEVBQ1gsbUJBQW1CLEdBQ3BCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSTFELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sRUFBOEIseUJBQXlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUt0RSxNQUFNLE9BQU8scUJBQXFCO0lBNkJoQztJQUNFLHFEQUFxRDtJQUNyQyx5QkFBaUMsQ0FBQztRQUFsQywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQVk7UUE5QjdDLFdBQU0sR0FBRyxpQkFBaUIsQ0FBQyxnQ0FBZ0MsQ0FBQyxD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
|
|
262
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZV9lZmZlY3RfdHJhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL3NpZGVfZWZmZWN0X3RyYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSx5QkFBeUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNHLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLFlBQVksRUFDWixXQUFXLEVBR1gsbUJBQW1CLEVBQ25CLDRCQUE0QixFQUM1QixVQUFVLEVBQ1YsR0FBRyxFQUNILGFBQWEsRUFDYixPQUFPLEVBQ1AscUNBQXFDLEVBQ3JDLHdCQUF3QixFQUN4QixzQkFBc0IsRUFDdEIsa0NBQWtDLEVBQ2xDLHFCQUFxQixFQUNyQiwrQ0FBK0MsRUFDL0Msa0NBQWtDLEVBQ2xDLDRCQUE0QixFQUM1QixzQ0FBc0MsRUFDdEMsMkJBQTJCLEVBQzNCLFFBQVEsRUFDUixTQUFTLEVBRVQsV0FBVyxFQUNYLDRCQUE0QixFQUM1QixtQkFBbUIsR0FDcEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFJMUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUQsT0FBTyxFQUE4Qix5QkFBeUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBS3RFLE1BQU0sT0FBTyxxQkFBcUI7SUE2QmhDO0lBQ0UscURBQXFEO0lBQ3JDLHlCQUFpQyxDQUFDO1FBQWxDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBWTtRQTlCN0MsUUFBRyxHQUFH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
|
|
@@ -1,22 +1,23 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
|
|
2
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
3
|
+
import { type ContractClassIdPreimage, type Gas, type SerializableContractInstance } from '@aztec/circuits.js';
|
|
3
4
|
import { type Fr } from '@aztec/foundation/fields';
|
|
4
5
|
import { type AvmContractCallResult } from '../avm/avm_contract_call_result.js';
|
|
5
6
|
import { type AvmExecutionEnvironment } from '../avm/avm_execution_environment.js';
|
|
6
|
-
import { type TracedContractInstance } from './side_effect_trace.js';
|
|
7
7
|
export interface PublicSideEffectTraceInterface {
|
|
8
8
|
fork(): PublicSideEffectTraceInterface;
|
|
9
9
|
getCounter(): number;
|
|
10
|
-
tracePublicStorageRead(
|
|
11
|
-
tracePublicStorageWrite(
|
|
12
|
-
traceNoteHashCheck(
|
|
13
|
-
traceNewNoteHash(
|
|
14
|
-
traceNullifierCheck(
|
|
15
|
-
traceNewNullifier(
|
|
10
|
+
tracePublicStorageRead(contractAddress: Fr, slot: Fr, value: Fr, exists: boolean, cached: boolean): void;
|
|
11
|
+
tracePublicStorageWrite(contractAddress: Fr, slot: Fr, value: Fr): void;
|
|
12
|
+
traceNoteHashCheck(contractAddress: Fr, noteHash: Fr, leafIndex: Fr, exists: boolean): void;
|
|
13
|
+
traceNewNoteHash(contractAddress: Fr, noteHash: Fr): void;
|
|
14
|
+
traceNullifierCheck(contractAddress: Fr, nullifier: Fr, leafIndex: Fr, exists: boolean, isPending: boolean): void;
|
|
15
|
+
traceNewNullifier(contractAddress: Fr, nullifier: Fr): void;
|
|
16
16
|
traceL1ToL2MessageCheck(contractAddress: Fr, msgHash: Fr, msgLeafIndex: Fr, exists: boolean): void;
|
|
17
17
|
traceNewL2ToL1Message(contractAddress: Fr, recipient: Fr, content: Fr): void;
|
|
18
18
|
traceUnencryptedLog(contractAddress: Fr, log: Fr[]): void;
|
|
19
|
-
traceGetContractInstance(
|
|
19
|
+
traceGetContractInstance(contractAddress: Fr, exists: boolean, instance?: SerializableContractInstance): void;
|
|
20
|
+
traceGetBytecode(contractAddress: Fr, exists: boolean, bytecode?: Buffer, contractInstance?: SerializableContractInstance, contractClass?: ContractClassIdPreimage): void;
|
|
20
21
|
traceNestedCall(
|
|
21
22
|
/** The trace of the nested call. */
|
|
22
23
|
nestedCallTrace: PublicSideEffectTraceInterface,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"side_effect_trace_interface.d.ts","sourceRoot":"","sources":["../../src/public/side_effect_trace_interface.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"side_effect_trace_interface.d.ts","sourceRoot":"","sources":["../../src/public/side_effect_trace_interface.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,KAAK,uBAAuB,EAAE,KAAK,GAAG,EAAE,KAAK,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAC/G,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAEnF,MAAM,WAAW,8BAA8B;IAC7C,IAAI,IAAI,8BAA8B,CAAC;IACvC,UAAU,IAAI,MAAM,CAAC;IAErB,sBAAsB,CAAC,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACzG,uBAAuB,CAAC,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC;IACxE,kBAAkB,CAAC,eAAe,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IAC5F,gBAAgB,CAAC,eAAe,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,IAAI,CAAC;IAC1D,mBAAmB,CAAC,eAAe,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IAClH,iBAAiB,CAAC,eAAe,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,CAAC;IAC5D,uBAAuB,CAAC,eAAe,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACnG,qBAAqB,CAAC,eAAe,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC;IAC7E,mBAAmB,CAAC,eAAe,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;IAC1D,wBAAwB,CAAC,eAAe,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,4BAA4B,GAAG,IAAI,CAAC;IAC9G,gBAAgB,CACd,eAAe,EAAE,EAAE,EACnB,MAAM,EAAE,OAAO,EACf,QAAQ,CAAC,EAAE,MAAM,EACjB,gBAAgB,CAAC,EAAE,4BAA4B,EAC/C,aAAa,CAAC,EAAE,uBAAuB,GACtC,IAAI,CAAC;IACR,eAAe;IACb,oCAAoC;IACpC,eAAe,EAAE,8BAA8B;IAC/C,oDAAoD;IACpD,iBAAiB,EAAE,uBAAuB;IAC1C,4DAA4D;IAE5D,YAAY,EAAE,GAAG;IACjB,yDAAyD;IAEzD,UAAU,EAAE,GAAG;IACf,wCAAwC;IACxC,QAAQ,EAAE,MAAM;IAChB,yBAAyB;IACzB,cAAc,EAAE,qBAAqB;IACrC,oBAAoB;IACpB,YAAY,EAAE,MAAM,GACnB,IAAI,CAAC;CACT"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/simulator",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.61.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -59,14 +59,14 @@
|
|
|
59
59
|
]
|
|
60
60
|
},
|
|
61
61
|
"dependencies": {
|
|
62
|
-
"@aztec/circuit-types": "0.
|
|
63
|
-
"@aztec/circuits.js": "0.
|
|
64
|
-
"@aztec/foundation": "0.
|
|
65
|
-
"@aztec/noir-protocol-circuits-types": "0.
|
|
66
|
-
"@aztec/protocol-contracts": "0.
|
|
67
|
-
"@aztec/telemetry-client": "0.
|
|
68
|
-
"@aztec/types": "0.
|
|
69
|
-
"@aztec/world-state": "0.
|
|
62
|
+
"@aztec/circuit-types": "0.61.0",
|
|
63
|
+
"@aztec/circuits.js": "0.61.0",
|
|
64
|
+
"@aztec/foundation": "0.61.0",
|
|
65
|
+
"@aztec/noir-protocol-circuits-types": "0.61.0",
|
|
66
|
+
"@aztec/protocol-contracts": "0.61.0",
|
|
67
|
+
"@aztec/telemetry-client": "0.61.0",
|
|
68
|
+
"@aztec/types": "0.61.0",
|
|
69
|
+
"@aztec/world-state": "0.61.0",
|
|
70
70
|
"@noir-lang/acvm_js": "portal:../../noir/packages/acvm_js",
|
|
71
71
|
"@noir-lang/types": "portal:../../noir/packages/types",
|
|
72
72
|
"levelup": "^5.1.1",
|
|
@@ -360,7 +360,6 @@ export class Oracle {
|
|
|
360
360
|
[argsHash]: ACVMField[],
|
|
361
361
|
[sideEffectCounter]: ACVMField[],
|
|
362
362
|
[isStaticCall]: ACVMField[],
|
|
363
|
-
[isDelegateCall]: ACVMField[],
|
|
364
363
|
): Promise<ACVMField[]> {
|
|
365
364
|
const { endSideEffectCounter, returnsHash } = await this.typedOracle.callPrivateFunction(
|
|
366
365
|
AztecAddress.fromField(fromACVMField(contractAddress)),
|
|
@@ -368,7 +367,6 @@ export class Oracle {
|
|
|
368
367
|
fromACVMField(argsHash),
|
|
369
368
|
frToNumber(fromACVMField(sideEffectCounter)),
|
|
370
369
|
frToBoolean(fromACVMField(isStaticCall)),
|
|
371
|
-
frToBoolean(fromACVMField(isDelegateCall)),
|
|
372
370
|
);
|
|
373
371
|
return [endSideEffectCounter, returnsHash].map(toACVMField);
|
|
374
372
|
}
|
|
@@ -379,7 +377,6 @@ export class Oracle {
|
|
|
379
377
|
[argsHash]: ACVMField[],
|
|
380
378
|
[sideEffectCounter]: ACVMField[],
|
|
381
379
|
[isStaticCall]: ACVMField[],
|
|
382
|
-
[isDelegateCall]: ACVMField[],
|
|
383
380
|
): Promise<ACVMField> {
|
|
384
381
|
const newArgsHash = await this.typedOracle.enqueuePublicFunctionCall(
|
|
385
382
|
AztecAddress.fromString(contractAddress),
|
|
@@ -387,7 +384,6 @@ export class Oracle {
|
|
|
387
384
|
fromACVMField(argsHash),
|
|
388
385
|
frToNumber(fromACVMField(sideEffectCounter)),
|
|
389
386
|
frToBoolean(fromACVMField(isStaticCall)),
|
|
390
|
-
frToBoolean(fromACVMField(isDelegateCall)),
|
|
391
387
|
);
|
|
392
388
|
return toACVMField(newArgsHash);
|
|
393
389
|
}
|
|
@@ -398,7 +394,6 @@ export class Oracle {
|
|
|
398
394
|
[argsHash]: ACVMField[],
|
|
399
395
|
[sideEffectCounter]: ACVMField[],
|
|
400
396
|
[isStaticCall]: ACVMField[],
|
|
401
|
-
[isDelegateCall]: ACVMField[],
|
|
402
397
|
): Promise<ACVMField> {
|
|
403
398
|
const newArgsHash = await this.typedOracle.setPublicTeardownFunctionCall(
|
|
404
399
|
AztecAddress.fromString(contractAddress),
|
|
@@ -406,7 +401,6 @@ export class Oracle {
|
|
|
406
401
|
fromACVMField(argsHash),
|
|
407
402
|
frToNumber(fromACVMField(sideEffectCounter)),
|
|
408
403
|
frToBoolean(fromACVMField(isStaticCall)),
|
|
409
|
-
frToBoolean(fromACVMField(isDelegateCall)),
|
|
410
404
|
);
|
|
411
405
|
return toACVMField(newArgsHash);
|
|
412
406
|
}
|
|
@@ -414,4 +408,17 @@ export class Oracle {
|
|
|
414
408
|
notifySetMinRevertibleSideEffectCounter([minRevertibleSideEffectCounter]: ACVMField[]) {
|
|
415
409
|
this.typedOracle.notifySetMinRevertibleSideEffectCounter(frToNumber(fromACVMField(minRevertibleSideEffectCounter)));
|
|
416
410
|
}
|
|
411
|
+
|
|
412
|
+
async getAppTaggingSecret([sender]: ACVMField[], [recipient]: ACVMField[]): Promise<ACVMField[]> {
|
|
413
|
+
const taggingSecret = await this.typedOracle.getAppTaggingSecret(
|
|
414
|
+
AztecAddress.fromString(sender),
|
|
415
|
+
AztecAddress.fromString(recipient),
|
|
416
|
+
);
|
|
417
|
+
return taggingSecret.toFields().map(toACVMField);
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
async getAppTaggingSecretsForSenders([recipient]: ACVMField[]): Promise<ACVMField[]> {
|
|
421
|
+
const taggingSecrets = await this.typedOracle.getAppTaggingSecretsForSenders(AztecAddress.fromString(recipient));
|
|
422
|
+
return taggingSecrets.flatMap(taggingSecret => taggingSecret.toFields().map(toACVMField));
|
|
423
|
+
}
|
|
417
424
|
}
|
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
import {
|
|
12
12
|
type ContractInstance,
|
|
13
13
|
type Header,
|
|
14
|
+
type IndexedTaggingSecret,
|
|
14
15
|
type KeyValidationRequest,
|
|
15
16
|
type L1_TO_L2_MSG_TREE_HEIGHT,
|
|
16
17
|
} from '@aztec/circuits.js';
|
|
@@ -221,7 +222,6 @@ export abstract class TypedOracle {
|
|
|
221
222
|
_argsHash: Fr,
|
|
222
223
|
_sideEffectCounter: number,
|
|
223
224
|
_isStaticCall: boolean,
|
|
224
|
-
_isDelegateCall: boolean,
|
|
225
225
|
): Promise<{ endSideEffectCounter: Fr; returnsHash: Fr }> {
|
|
226
226
|
throw new OracleMethodNotAvailableError('callPrivateFunction');
|
|
227
227
|
}
|
|
@@ -232,7 +232,6 @@ export abstract class TypedOracle {
|
|
|
232
232
|
_argsHash: Fr,
|
|
233
233
|
_sideEffectCounter: number,
|
|
234
234
|
_isStaticCall: boolean,
|
|
235
|
-
_isDelegateCall: boolean,
|
|
236
235
|
): Promise<Fr> {
|
|
237
236
|
throw new OracleMethodNotAvailableError('enqueuePublicFunctionCall');
|
|
238
237
|
}
|
|
@@ -243,7 +242,6 @@ export abstract class TypedOracle {
|
|
|
243
242
|
_argsHash: Fr,
|
|
244
243
|
_sideEffectCounter: number,
|
|
245
244
|
_isStaticCall: boolean,
|
|
246
|
-
_isDelegateCall: boolean,
|
|
247
245
|
): Promise<Fr> {
|
|
248
246
|
throw new OracleMethodNotAvailableError('setPublicTeardownFunctionCall');
|
|
249
247
|
}
|
|
@@ -255,4 +253,12 @@ export abstract class TypedOracle {
|
|
|
255
253
|
debugLog(_message: string, _fields: Fr[]): void {
|
|
256
254
|
throw new OracleMethodNotAvailableError('debugLog');
|
|
257
255
|
}
|
|
256
|
+
|
|
257
|
+
getAppTaggingSecret(_sender: AztecAddress, _recipient: AztecAddress): Promise<IndexedTaggingSecret> {
|
|
258
|
+
throw new OracleMethodNotAvailableError('getAppTaggingSecret');
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
getAppTaggingSecretsForSenders(_recipient: AztecAddress): Promise<IndexedTaggingSecret[]> {
|
|
262
|
+
throw new OracleMethodNotAvailableError('getAppTaggingSecretsForSenders');
|
|
263
|
+
}
|
|
258
264
|
}
|
package/src/avm/avm_context.ts
CHANGED
|
@@ -30,7 +30,7 @@ export class AvmContext {
|
|
|
30
30
|
* - Derive a machine state from the current state
|
|
31
31
|
* - E.g., gas metering is preserved but pc is reset
|
|
32
32
|
* - Derive an execution environment from the caller/parent
|
|
33
|
-
* - Alter
|
|
33
|
+
* - Alter address
|
|
34
34
|
*
|
|
35
35
|
* @param address - The contract instance to initialize a context for
|
|
36
36
|
* @param calldata - Data/arguments for nested call
|
|
@@ -9,14 +9,12 @@ import { Fr } from '@aztec/foundation/fields';
|
|
|
9
9
|
export class AvmExecutionEnvironment {
|
|
10
10
|
constructor(
|
|
11
11
|
public readonly address: AztecAddress,
|
|
12
|
-
public readonly storageAddress: AztecAddress,
|
|
13
12
|
public readonly sender: AztecAddress,
|
|
14
13
|
public readonly functionSelector: FunctionSelector, // may be temporary (#7224)
|
|
15
14
|
public readonly contractCallDepth: Fr,
|
|
16
15
|
public readonly transactionFee: Fr,
|
|
17
16
|
public readonly globals: GlobalVariables,
|
|
18
17
|
public readonly isStaticCall: boolean,
|
|
19
|
-
public readonly isDelegateCall: boolean,
|
|
20
18
|
public readonly calldata: Fr[],
|
|
21
19
|
) {}
|
|
22
20
|
|
|
@@ -25,18 +23,15 @@ export class AvmExecutionEnvironment {
|
|
|
25
23
|
calldata: Fr[],
|
|
26
24
|
functionSelector: FunctionSelector,
|
|
27
25
|
isStaticCall: boolean,
|
|
28
|
-
isDelegateCall: boolean,
|
|
29
26
|
) {
|
|
30
27
|
return new AvmExecutionEnvironment(
|
|
31
28
|
/*address=*/ targetAddress,
|
|
32
|
-
/*storageAddress=*/ targetAddress,
|
|
33
29
|
/*sender=*/ this.address,
|
|
34
30
|
functionSelector,
|
|
35
31
|
this.contractCallDepth.add(Fr.ONE),
|
|
36
32
|
this.transactionFee,
|
|
37
33
|
this.globals,
|
|
38
34
|
isStaticCall,
|
|
39
|
-
isDelegateCall,
|
|
40
35
|
calldata,
|
|
41
36
|
);
|
|
42
37
|
}
|
|
@@ -51,7 +46,6 @@ export class AvmExecutionEnvironment {
|
|
|
51
46
|
calldata,
|
|
52
47
|
functionSelector,
|
|
53
48
|
/*isStaticCall=*/ false,
|
|
54
|
-
/*isDelegateCall=*/ false,
|
|
55
49
|
);
|
|
56
50
|
}
|
|
57
51
|
|
|
@@ -65,15 +59,6 @@ export class AvmExecutionEnvironment {
|
|
|
65
59
|
calldata,
|
|
66
60
|
functionSelector,
|
|
67
61
|
/*isStaticCall=*/ true,
|
|
68
|
-
/*isDelegateCall=*/ false,
|
|
69
62
|
);
|
|
70
63
|
}
|
|
71
|
-
|
|
72
|
-
public newDelegateCall(
|
|
73
|
-
_targetAddress: AztecAddress,
|
|
74
|
-
_calldata: Fr[],
|
|
75
|
-
_functionSelector: FunctionSelector,
|
|
76
|
-
): AvmExecutionEnvironment {
|
|
77
|
-
throw new Error('Delegate calls not supported!');
|
|
78
|
-
}
|
|
79
64
|
}
|
package/src/avm/avm_gas.ts
CHANGED
|
@@ -89,6 +89,8 @@ const BASE_GAS_COSTS: Record<Opcode, Gas> = {
|
|
|
89
89
|
[Opcode.CAST_16]: makeCost(c.AVM_CAST_BASE_L2_GAS, 0),
|
|
90
90
|
[Opcode.GETENVVAR_16]: makeCost(c.AVM_GETENVVAR_BASE_L2_GAS, 0),
|
|
91
91
|
[Opcode.CALLDATACOPY]: makeCost(c.AVM_CALLDATACOPY_BASE_L2_GAS, 0),
|
|
92
|
+
[Opcode.RETURNDATASIZE]: makeCost(c.AVM_RETURNDATASIZE_BASE_L2_GAS, 0),
|
|
93
|
+
[Opcode.RETURNDATACOPY]: makeCost(c.AVM_RETURNDATACOPY_BASE_L2_GAS, 0),
|
|
92
94
|
[Opcode.JUMP_16]: makeCost(c.AVM_JUMP_BASE_L2_GAS, 0),
|
|
93
95
|
[Opcode.JUMPI_16]: makeCost(c.AVM_JUMPI_BASE_L2_GAS, 0),
|
|
94
96
|
[Opcode.INTERNALCALL]: makeCost(c.AVM_INTERNALCALL_BASE_L2_GAS, 0),
|
|
@@ -113,35 +115,29 @@ const BASE_GAS_COSTS: Record<Opcode, Gas> = {
|
|
|
113
115
|
[Opcode.GETCONTRACTINSTANCE]: makeCost(c.AVM_GETCONTRACTINSTANCE_BASE_L2_GAS, 0),
|
|
114
116
|
[Opcode.CALL]: makeCost(c.AVM_CALL_BASE_L2_GAS, 0),
|
|
115
117
|
[Opcode.STATICCALL]: makeCost(c.AVM_STATICCALL_BASE_L2_GAS, 0),
|
|
116
|
-
[Opcode.DELEGATECALL]: makeCost(c.AVM_DELEGATECALL_BASE_L2_GAS, 0),
|
|
117
118
|
[Opcode.RETURN]: makeCost(c.AVM_RETURN_BASE_L2_GAS, 0),
|
|
118
119
|
[Opcode.REVERT_8]: makeCost(c.AVM_REVERT_BASE_L2_GAS, 0),
|
|
119
120
|
[Opcode.REVERT_16]: makeCost(c.AVM_REVERT_BASE_L2_GAS, 0),
|
|
120
121
|
[Opcode.DEBUGLOG]: makeCost(c.AVM_DEBUGLOG_BASE_L2_GAS, 0),
|
|
121
|
-
[Opcode.KECCAK]: makeCost(c.AVM_KECCAK_BASE_L2_GAS, 0),
|
|
122
122
|
[Opcode.POSEIDON2]: makeCost(c.AVM_POSEIDON2_BASE_L2_GAS, 0),
|
|
123
123
|
[Opcode.SHA256COMPRESSION]: makeCost(c.AVM_SHA256COMPRESSION_BASE_L2_GAS, 0),
|
|
124
124
|
[Opcode.KECCAKF1600]: makeCost(c.AVM_KECCAKF1600_BASE_L2_GAS, 0),
|
|
125
|
-
[Opcode.PEDERSEN]: makeCost(c.AVM_PEDERSEN_BASE_L2_GAS, 0),
|
|
126
125
|
[Opcode.ECADD]: makeCost(c.AVM_ECADD_BASE_L2_GAS, 0),
|
|
127
126
|
[Opcode.MSM]: makeCost(c.AVM_MSM_BASE_L2_GAS, 0),
|
|
128
|
-
[Opcode.
|
|
129
|
-
[Opcode.TORADIXLE]: makeCost(c.AVM_TORADIXLE_BASE_L2_GAS, 0),
|
|
127
|
+
[Opcode.TORADIXBE]: makeCost(c.AVM_TORADIXBE_BASE_L2_GAS, 0),
|
|
130
128
|
};
|
|
131
129
|
|
|
132
130
|
const DYNAMIC_GAS_COSTS = new Map<Opcode, Gas>([
|
|
133
131
|
[Opcode.CALLDATACOPY, makeCost(c.AVM_CALLDATACOPY_DYN_L2_GAS, 0)],
|
|
132
|
+
[Opcode.RETURNDATACOPY, makeCost(c.AVM_RETURNDATACOPY_DYN_L2_GAS, 0)],
|
|
134
133
|
[Opcode.EMITUNENCRYPTEDLOG, makeCost(c.AVM_EMITUNENCRYPTEDLOG_DYN_L2_GAS, c.AVM_EMITUNENCRYPTEDLOG_DYN_DA_GAS)],
|
|
135
134
|
[Opcode.CALL, makeCost(c.AVM_CALL_DYN_L2_GAS, 0)],
|
|
136
135
|
[Opcode.STATICCALL, makeCost(c.AVM_STATICCALL_DYN_L2_GAS, 0)],
|
|
137
|
-
[Opcode.DELEGATECALL, makeCost(c.AVM_DELEGATECALL_DYN_L2_GAS, 0)],
|
|
138
136
|
[Opcode.RETURN, makeCost(c.AVM_RETURN_DYN_L2_GAS, 0)],
|
|
139
137
|
[Opcode.REVERT_8, makeCost(c.AVM_REVERT_DYN_L2_GAS, 0)],
|
|
140
138
|
[Opcode.REVERT_16, makeCost(c.AVM_REVERT_DYN_L2_GAS, 0)],
|
|
141
|
-
[Opcode.PEDERSEN, makeCost(c.AVM_PEDERSEN_DYN_L2_GAS, 0)],
|
|
142
139
|
[Opcode.MSM, makeCost(c.AVM_MSM_DYN_L2_GAS, 0)],
|
|
143
|
-
[Opcode.
|
|
144
|
-
[Opcode.TORADIXLE, makeCost(c.AVM_TORADIXLE_DYN_L2_GAS, 0)],
|
|
140
|
+
[Opcode.TORADIXBE, makeCost(c.AVM_TORADIXBE_DYN_L2_GAS, 0)],
|
|
145
141
|
]);
|
|
146
142
|
|
|
147
143
|
/** Returns the fixed base gas cost for a given opcode. */
|
|
@@ -21,6 +21,8 @@ export class AvmMachineState {
|
|
|
21
21
|
public daGasLeft: number;
|
|
22
22
|
/** program counter */
|
|
23
23
|
public pc: number = 0;
|
|
24
|
+
/** return/revertdata of the last nested call. */
|
|
25
|
+
public nestedReturndata: Fr[] = [];
|
|
24
26
|
|
|
25
27
|
/**
|
|
26
28
|
* On INTERNALCALL, internal call stack is pushed to with the current pc + 1
|