@aztec/simulator 0.40.1 → 0.42.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 +2 -2
- package/dest/acvm/acvm.d.ts.map +1 -1
- package/dest/acvm/acvm.js +3 -3
- package/dest/acvm/oracle/oracle.d.ts +6 -2
- package/dest/acvm/oracle/oracle.d.ts.map +1 -1
- package/dest/acvm/oracle/oracle.js +31 -19
- package/dest/acvm/oracle/typed_oracle.d.ts +8 -11
- package/dest/acvm/oracle/typed_oracle.d.ts.map +1 -1
- package/dest/acvm/oracle/typed_oracle.js +17 -5
- package/dest/acvm/serialize.js +2 -2
- package/dest/avm/avm_execution_environment.d.ts +4 -3
- package/dest/avm/avm_execution_environment.d.ts.map +1 -1
- package/dest/avm/avm_execution_environment.js +7 -5
- package/dest/avm/avm_gas.d.ts +1 -5
- package/dest/avm/avm_gas.d.ts.map +1 -1
- package/dest/avm/avm_gas.js +67 -73
- package/dest/avm/avm_simulator.d.ts +5 -0
- package/dest/avm/avm_simulator.d.ts.map +1 -1
- package/dest/avm/avm_simulator.js +12 -4
- package/dest/avm/errors.d.ts +6 -0
- package/dest/avm/errors.d.ts.map +1 -1
- package/dest/avm/errors.js +10 -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 +15 -3
- package/dest/avm/index.d.ts +2 -0
- package/dest/avm/index.d.ts.map +1 -0
- package/dest/avm/index.js +2 -0
- package/dest/avm/journal/host_storage.d.ts +1 -1
- package/dest/avm/journal/host_storage.d.ts.map +1 -1
- package/dest/avm/journal/journal.d.ts +4 -3
- package/dest/avm/journal/journal.d.ts.map +1 -1
- package/dest/avm/journal/journal.js +10 -11
- package/dest/avm/journal/nullifiers.d.ts +17 -5
- package/dest/avm/journal/nullifiers.d.ts.map +1 -1
- package/dest/avm/journal/nullifiers.js +27 -10
- package/dest/avm/journal/public_storage.d.ts +19 -6
- package/dest/avm/journal/public_storage.d.ts.map +1 -1
- package/dest/avm/journal/public_storage.js +30 -12
- package/dest/avm/journal/trace.d.ts +2 -0
- package/dest/avm/journal/trace.d.ts.map +1 -1
- package/dest/avm/journal/trace.js +7 -1
- package/dest/avm/journal/trace_types.d.ts +1 -0
- package/dest/avm/journal/trace_types.d.ts.map +1 -1
- package/dest/avm/journal/trace_types.js +1 -1
- package/dest/avm/opcodes/accrued_substate.d.ts.map +1 -1
- package/dest/avm/opcodes/accrued_substate.js +6 -7
- package/dest/avm/opcodes/arithmetic.d.ts +1 -7
- package/dest/avm/opcodes/arithmetic.d.ts.map +1 -1
- package/dest/avm/opcodes/arithmetic.js +1 -12
- package/dest/avm/opcodes/conversion.js +2 -2
- package/dest/avm/opcodes/external_calls.d.ts +2 -2
- package/dest/avm/opcodes/external_calls.d.ts.map +1 -1
- package/dest/avm/opcodes/external_calls.js +25 -13
- package/dest/avm/opcodes/instruction.d.ts +1 -1
- package/dest/avm/opcodes/instruction.d.ts.map +1 -1
- package/dest/avm/opcodes/instruction.js +6 -4
- package/dest/avm/opcodes/memory.d.ts +0 -4
- package/dest/avm/opcodes/memory.d.ts.map +1 -1
- package/dest/avm/opcodes/memory.js +1 -7
- package/dest/avm/opcodes/storage.d.ts +0 -12
- package/dest/avm/opcodes/storage.d.ts.map +1 -1
- package/dest/avm/opcodes/storage.js +3 -18
- package/dest/avm/serialization/bytecode_serialization.js +2 -2
- package/dest/client/client_execution_context.d.ts +30 -20
- package/dest/client/client_execution_context.d.ts.map +1 -1
- package/dest/client/client_execution_context.js +59 -39
- package/dest/client/db_oracle.d.ts +17 -12
- package/dest/client/db_oracle.d.ts.map +1 -1
- package/dest/client/execution_note_cache.js +2 -2
- package/dest/client/execution_result.d.ts +17 -2
- package/dest/client/execution_result.d.ts.map +1 -1
- package/dest/client/execution_result.js +32 -4
- package/dest/client/private_execution.d.ts +2 -3
- package/dest/client/private_execution.d.ts.map +1 -1
- package/dest/client/private_execution.js +22 -8
- package/dest/client/simulator.d.ts +0 -16
- package/dest/client/simulator.d.ts.map +1 -1
- package/dest/client/simulator.js +13 -30
- package/dest/client/unconstrained_execution.d.ts +2 -3
- package/dest/client/unconstrained_execution.d.ts.map +1 -1
- package/dest/client/unconstrained_execution.js +5 -7
- package/dest/client/view_data_oracle.d.ts +12 -10
- package/dest/client/view_data_oracle.d.ts.map +1 -1
- package/dest/client/view_data_oracle.js +17 -11
- package/dest/common/index.d.ts +1 -0
- package/dest/common/index.d.ts.map +1 -1
- package/dest/common/index.js +2 -1
- package/dest/common/return_values.d.ts +11 -0
- package/dest/common/return_values.d.ts.map +1 -0
- package/dest/common/return_values.js +13 -0
- package/dest/index.d.ts +3 -1
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +4 -2
- package/dest/mocks/fixtures.d.ts +15 -10
- package/dest/mocks/fixtures.d.ts.map +1 -1
- package/dest/mocks/fixtures.js +22 -17
- package/dest/{simulator → providers}/acvm_native.d.ts.map +1 -1
- package/dest/{simulator → providers}/acvm_native.js +13 -14
- package/dest/providers/acvm_wasm.d.ts.map +1 -0
- package/dest/providers/acvm_wasm.js +15 -0
- package/dest/providers/index.d.ts.map +1 -0
- package/dest/{simulator → providers}/index.js +1 -1
- package/dest/{simulator → providers}/simulation_provider.d.ts.map +1 -1
- package/dest/{simulator → providers}/simulation_provider.js +1 -1
- package/dest/public/abstract_phase_manager.d.ts +43 -42
- package/dest/public/abstract_phase_manager.d.ts.map +1 -1
- package/dest/public/abstract_phase_manager.js +81 -103
- package/dest/public/app_logic_phase_manager.d.ts +7 -8
- package/dest/public/app_logic_phase_manager.d.ts.map +1 -1
- package/dest/public/app_logic_phase_manager.js +14 -14
- package/dest/public/{db.d.ts → db_interfaces.d.ts} +3 -3
- package/dest/public/db_interfaces.d.ts.map +1 -0
- package/dest/public/db_interfaces.js +2 -0
- package/dest/public/execution.d.ts +17 -14
- package/dest/public/execution.d.ts.map +1 -1
- package/dest/public/execution.js +1 -1
- package/dest/public/executor.d.ts +3 -30
- package/dest/public/executor.d.ts.map +1 -1
- package/dest/public/executor.js +32 -279
- package/dest/public/fee_payment.d.ts +11 -0
- package/dest/public/fee_payment.d.ts.map +1 -0
- package/dest/public/fee_payment.js +24 -0
- package/dest/public/hints_builder.d.ts +3 -2
- package/dest/public/hints_builder.d.ts.map +1 -1
- package/dest/public/hints_builder.js +8 -4
- package/dest/public/index.d.ts +4 -2
- package/dest/public/index.d.ts.map +1 -1
- package/dest/public/index.js +5 -3
- package/dest/public/phase_manager_factory.d.ts +1 -1
- package/dest/public/phase_manager_factory.d.ts.map +1 -1
- package/dest/public/{public_executor.d.ts → public_db_sources.d.ts} +3 -2
- package/dest/public/public_db_sources.d.ts.map +1 -0
- package/dest/public/public_db_sources.js +198 -0
- package/dest/public/public_kernel.js +14 -14
- package/dest/public/public_processor.d.ts +8 -6
- package/dest/public/public_processor.d.ts.map +1 -1
- package/dest/public/public_processor.js +48 -29
- package/dest/public/setup_phase_manager.d.ts +7 -9
- package/dest/public/setup_phase_manager.d.ts.map +1 -1
- package/dest/public/setup_phase_manager.js +11 -20
- package/dest/public/tail_phase_manager.d.ts +5 -11
- package/dest/public/tail_phase_manager.d.ts.map +1 -1
- package/dest/public/tail_phase_manager.js +16 -36
- package/dest/public/teardown_phase_manager.d.ts +7 -9
- package/dest/public/teardown_phase_manager.d.ts.map +1 -1
- package/dest/public/teardown_phase_manager.js +15 -21
- package/dest/public/transitional_adaptors.d.ts +3 -2
- package/dest/public/transitional_adaptors.d.ts.map +1 -1
- package/dest/public/transitional_adaptors.js +24 -8
- package/dest/public/utils.d.ts +2 -2
- package/dest/public/utils.d.ts.map +1 -1
- package/dest/public/utils.js +21 -14
- package/package.json +12 -9
- package/src/acvm/acvm.ts +0 -3
- package/src/acvm/oracle/oracle.ts +53 -27
- package/src/acvm/oracle/typed_oracle.ts +25 -16
- package/src/acvm/serialize.ts +1 -1
- package/src/avm/avm_execution_environment.ts +9 -5
- package/src/avm/avm_gas.ts +66 -73
- package/src/avm/avm_simulator.ts +14 -3
- package/src/avm/errors.ts +10 -0
- package/src/avm/fixtures/index.ts +22 -2
- package/src/avm/index.ts +1 -0
- package/src/avm/journal/host_storage.ts +1 -1
- package/src/avm/journal/journal.ts +15 -14
- package/src/avm/journal/nullifiers.ts +27 -14
- package/src/avm/journal/public_storage.ts +30 -16
- package/src/avm/journal/trace.ts +12 -0
- package/src/avm/journal/trace_types.ts +1 -0
- package/src/avm/opcodes/accrued_substate.ts +5 -6
- package/src/avm/opcodes/arithmetic.ts +1 -14
- package/src/avm/opcodes/conversion.ts +1 -1
- package/src/avm/opcodes/external_calls.ts +26 -10
- package/src/avm/opcodes/instruction.ts +5 -3
- package/src/avm/opcodes/memory.ts +1 -8
- package/src/avm/opcodes/storage.ts +3 -20
- package/src/avm/serialization/bytecode_serialization.ts +1 -1
- package/src/client/client_execution_context.ts +70 -44
- package/src/client/db_oracle.ts +18 -12
- package/src/client/execution_note_cache.ts +1 -1
- package/src/client/execution_result.ts +41 -3
- package/src/client/private_execution.ts +38 -20
- package/src/client/simulator.ts +11 -32
- package/src/client/unconstrained_execution.ts +9 -12
- package/src/client/view_data_oracle.ts +20 -12
- package/src/common/index.ts +1 -0
- package/src/common/return_values.ts +18 -0
- package/src/index.ts +3 -1
- package/src/mocks/fixtures.ts +31 -33
- package/src/{simulator → providers}/acvm_native.ts +21 -19
- package/src/{simulator → providers}/acvm_wasm.ts +2 -16
- package/src/public/abstract_phase_manager.ts +146 -207
- package/src/public/app_logic_phase_manager.ts +23 -39
- package/src/public/{db.ts → db_interfaces.ts} +2 -2
- package/src/public/execution.ts +17 -14
- package/src/public/executor.ts +51 -391
- package/src/public/fee_payment.ts +26 -0
- package/src/public/hints_builder.ts +17 -3
- package/src/public/index.ts +4 -2
- package/src/public/phase_manager_factory.ts +1 -1
- package/src/public/{public_executor.ts → public_db_sources.ts} +3 -2
- package/src/public/public_kernel.ts +24 -24
- package/src/public/public_processor.ts +82 -38
- package/src/public/setup_phase_manager.ts +20 -45
- package/src/public/tail_phase_manager.ts +18 -68
- package/src/public/teardown_phase_manager.ts +22 -41
- package/src/public/transitional_adaptors.ts +24 -13
- package/src/public/utils.ts +20 -14
- package/dest/client/logs_cache.d.ts +0 -33
- package/dest/client/logs_cache.d.ts.map +0 -1
- package/dest/client/logs_cache.js +0 -59
- package/dest/public/db.d.ts.map +0 -1
- package/dest/public/db.js +0 -2
- package/dest/public/public_execution_context.d.ts +0 -121
- package/dest/public/public_execution_context.d.ts.map +0 -1
- package/dest/public/public_execution_context.js +0 -214
- package/dest/public/public_executor.d.ts.map +0 -1
- package/dest/public/public_executor.js +0 -197
- package/dest/public/state_actions.d.ts +0 -39
- package/dest/public/state_actions.d.ts.map +0 -1
- package/dest/public/state_actions.js +0 -80
- package/dest/simulator/acvm_wasm.d.ts.map +0 -1
- package/dest/simulator/acvm_wasm.js +0 -22
- package/dest/simulator/index.d.ts.map +0 -1
- package/src/client/logs_cache.ts +0 -65
- package/src/public/public_execution_context.ts +0 -289
- package/src/public/state_actions.ts +0 -102
- /package/dest/{simulator → providers}/acvm_native.d.ts +0 -0
- /package/dest/{simulator → providers}/acvm_wasm.d.ts +0 -0
- /package/dest/{simulator → providers}/index.d.ts +0 -0
- /package/dest/{simulator → providers}/simulation_provider.d.ts +0 -0
- /package/src/{simulator → providers}/index.ts +0 -0
- /package/src/{simulator → providers}/simulation_provider.ts +0 -0
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
// All code in this file needs to die once the public executor is phased out in favor of the AVM.
|
|
2
2
|
import { UnencryptedFunctionL2Logs } from '@aztec/circuit-types';
|
|
3
|
-
import {
|
|
4
|
-
CallContext,
|
|
5
|
-
FunctionData,
|
|
6
|
-
type Gas,
|
|
7
|
-
type GasSettings,
|
|
8
|
-
type GlobalVariables,
|
|
9
|
-
type Header,
|
|
10
|
-
} from '@aztec/circuits.js';
|
|
3
|
+
import { CallContext, type Gas, type GasSettings, type GlobalVariables, type Header } from '@aztec/circuits.js';
|
|
11
4
|
import { Fr } from '@aztec/foundation/fields';
|
|
12
5
|
|
|
6
|
+
import { promisify } from 'util';
|
|
7
|
+
import { gunzip } from 'zlib';
|
|
8
|
+
|
|
13
9
|
import { type AvmContext } from '../avm/avm_context.js';
|
|
14
10
|
import { AvmExecutionEnvironment } from '../avm/avm_execution_environment.js';
|
|
15
11
|
import { type AvmContractCallResults } from '../avm/avm_message_call_result.js';
|
|
@@ -45,7 +41,7 @@ export function createAvmExecutionEnvironment(
|
|
|
45
41
|
current.args,
|
|
46
42
|
gasSettings,
|
|
47
43
|
transactionFee,
|
|
48
|
-
current.
|
|
44
|
+
current.functionSelector,
|
|
49
45
|
);
|
|
50
46
|
}
|
|
51
47
|
|
|
@@ -62,12 +58,11 @@ export function createPublicExecution(
|
|
|
62
58
|
isStaticCall: avmEnvironment.isStaticCall,
|
|
63
59
|
sideEffectCounter: startSideEffectCounter,
|
|
64
60
|
});
|
|
65
|
-
const functionData = new FunctionData(avmEnvironment.temporaryFunctionSelector, /*isPrivate=*/ false);
|
|
66
61
|
const execution: PublicExecution = {
|
|
67
62
|
contractAddress: avmEnvironment.address,
|
|
68
63
|
callContext,
|
|
69
64
|
args: calldata,
|
|
70
|
-
|
|
65
|
+
functionSelector: avmEnvironment.temporaryFunctionSelector,
|
|
71
66
|
};
|
|
72
67
|
return execution;
|
|
73
68
|
}
|
|
@@ -78,6 +73,7 @@ export function convertAvmResultsToPxResult(
|
|
|
78
73
|
fromPx: PublicExecution,
|
|
79
74
|
startGas: Gas,
|
|
80
75
|
endAvmContext: AvmContext,
|
|
76
|
+
bytecode: Buffer | undefined,
|
|
81
77
|
): PublicExecutionResult {
|
|
82
78
|
const endPersistableState = endAvmContext.persistableState;
|
|
83
79
|
const endMachineState = endAvmContext.machineState;
|
|
@@ -97,6 +93,9 @@ export function convertAvmResultsToPxResult(
|
|
|
97
93
|
startGasLeft: startGas,
|
|
98
94
|
endGasLeft: endMachineState.gasLeft,
|
|
99
95
|
transactionFee: endAvmContext.environment.transactionFee,
|
|
96
|
+
bytecode: bytecode,
|
|
97
|
+
calldata: endAvmContext.environment.calldata,
|
|
98
|
+
avmHints: endPersistableState.trace.toHints(),
|
|
100
99
|
};
|
|
101
100
|
}
|
|
102
101
|
|
|
@@ -111,7 +110,19 @@ export function markBytecodeAsAvm(bytecode: Buffer): Buffer {
|
|
|
111
110
|
return Buffer.concat([bytecode, AVM_MAGIC_SUFFIX]);
|
|
112
111
|
}
|
|
113
112
|
|
|
114
|
-
|
|
113
|
+
// This is just a helper function for the AVM circuit.
|
|
114
|
+
export async function decompressBytecodeIfCompressed(bytecode: Buffer): Promise<Buffer> {
|
|
115
|
+
try {
|
|
116
|
+
return await promisify(gunzip)(bytecode);
|
|
117
|
+
} catch {
|
|
118
|
+
// If the bytecode is not compressed, the gunzip call will throw an error
|
|
119
|
+
// In this case, we assume the bytecode is not compressed and continue.
|
|
120
|
+
return Promise.resolve(bytecode);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
export async function isAvmBytecode(bytecode: Buffer): Promise<boolean> {
|
|
125
|
+
const decompressedBytecode = await decompressBytecodeIfCompressed(bytecode);
|
|
115
126
|
const magicSize = AVM_MAGIC_SUFFIX.length;
|
|
116
|
-
return
|
|
127
|
+
return decompressedBytecode.subarray(-magicSize).equals(AVM_MAGIC_SUFFIX);
|
|
117
128
|
}
|
package/src/public/utils.ts
CHANGED
|
@@ -1,31 +1,37 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
import { CallRequest } from '@aztec/circuits.js';
|
|
1
|
+
import { type PublicKernelCircuitPublicInputs } from '@aztec/circuits.js';
|
|
3
2
|
|
|
4
3
|
/**
|
|
5
4
|
* Looks at the side effects of a transaction and returns the highest counter
|
|
6
5
|
* @param tx - A transaction
|
|
7
6
|
* @returns The highest side effect counter in the transaction so far
|
|
8
7
|
*/
|
|
9
|
-
export function lastSideEffectCounter(
|
|
10
|
-
const data = tx.data.forPublic!;
|
|
8
|
+
export function lastSideEffectCounter(inputs: PublicKernelCircuitPublicInputs): number {
|
|
11
9
|
const sideEffectCounters = [
|
|
12
|
-
...
|
|
13
|
-
...
|
|
14
|
-
...
|
|
15
|
-
...
|
|
16
|
-
...
|
|
17
|
-
...
|
|
18
|
-
...
|
|
10
|
+
...inputs.endNonRevertibleData.newNoteHashes,
|
|
11
|
+
...inputs.endNonRevertibleData.newNullifiers,
|
|
12
|
+
...inputs.endNonRevertibleData.noteEncryptedLogsHashes,
|
|
13
|
+
...inputs.endNonRevertibleData.encryptedLogsHashes,
|
|
14
|
+
...inputs.endNonRevertibleData.unencryptedLogsHashes,
|
|
15
|
+
...inputs.endNonRevertibleData.publicCallStack,
|
|
16
|
+
...inputs.endNonRevertibleData.publicDataUpdateRequests,
|
|
17
|
+
...inputs.end.newNoteHashes,
|
|
18
|
+
...inputs.end.newNullifiers,
|
|
19
|
+
...inputs.end.noteEncryptedLogsHashes,
|
|
20
|
+
...inputs.end.encryptedLogsHashes,
|
|
21
|
+
...inputs.end.unencryptedLogsHashes,
|
|
22
|
+
...inputs.end.publicCallStack,
|
|
23
|
+
...inputs.end.publicDataUpdateRequests,
|
|
19
24
|
];
|
|
20
25
|
|
|
21
26
|
let max = 0;
|
|
22
27
|
for (const sideEffect of sideEffectCounters) {
|
|
23
|
-
if (
|
|
28
|
+
if ('startSideEffectCounter' in sideEffect) {
|
|
24
29
|
// look at both start and end counters because for enqueued public calls start > 0 while end === 0
|
|
25
30
|
max = Math.max(max, sideEffect.startSideEffectCounter.toNumber(), sideEffect.endSideEffectCounter.toNumber());
|
|
31
|
+
} else if ('counter' in sideEffect) {
|
|
32
|
+
max = Math.max(max, sideEffect.counter);
|
|
26
33
|
} else {
|
|
27
|
-
|
|
28
|
-
max = Math.max(max, counter);
|
|
34
|
+
throw new Error('Unknown side effect type');
|
|
29
35
|
}
|
|
30
36
|
}
|
|
31
37
|
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { type EncryptedL2Log, type UnencryptedL2Log } from '@aztec/circuit-types';
|
|
2
|
-
/**
|
|
3
|
-
* Log data that's accessible by all the function calls in an execution.
|
|
4
|
-
* This class exists to:
|
|
5
|
-
* 1. Keep track of logs emitted through nested calls in the correct order.
|
|
6
|
-
* 2. TODO(1641): Remove encrypted logs based on notes nullified in the same scope.
|
|
7
|
-
*/
|
|
8
|
-
export declare class LogsCache {
|
|
9
|
-
/**
|
|
10
|
-
* Logs notes created in this transaction.
|
|
11
|
-
*/
|
|
12
|
-
private encryptedLogs;
|
|
13
|
-
private unencryptedLogs;
|
|
14
|
-
/**
|
|
15
|
-
* Add a new encrypted log to cache.
|
|
16
|
-
* @param log - New log created during execution.
|
|
17
|
-
*/
|
|
18
|
-
addEncryptedLog(log: EncryptedL2Log): void;
|
|
19
|
-
/**
|
|
20
|
-
* Add a new unencrypted log to cache.
|
|
21
|
-
* @param log - New log created during execution.
|
|
22
|
-
*/
|
|
23
|
-
addUnencryptedLog(log: UnencryptedL2Log): void;
|
|
24
|
-
/**
|
|
25
|
-
* Return the encrypted logs.
|
|
26
|
-
*/
|
|
27
|
-
getEncryptedLogs(): EncryptedL2Log[];
|
|
28
|
-
/**
|
|
29
|
-
* Return the encrypted logs.
|
|
30
|
-
*/
|
|
31
|
-
getUnencryptedLogs(): UnencryptedL2Log[];
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=logs_cache.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logs_cache.d.ts","sourceRoot":"","sources":["../../src/client/logs_cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAElF;;;;;GAKG;AACH,qBAAa,SAAS;IACpB;;OAEG;IACH,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,eAAe,CAA0B;IAsBjD;;;OAGG;IACI,eAAe,CAAC,GAAG,EAAE,cAAc;IAI1C;;;OAGG;IACI,iBAAiB,CAAC,GAAG,EAAE,gBAAgB;IAI9C;;OAEG;IACI,gBAAgB;IAIvB;;OAEG;IACI,kBAAkB;CAG1B"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Log data that's accessible by all the function calls in an execution.
|
|
3
|
-
* This class exists to:
|
|
4
|
-
* 1. Keep track of logs emitted through nested calls in the correct order.
|
|
5
|
-
* 2. TODO(1641): Remove encrypted logs based on notes nullified in the same scope.
|
|
6
|
-
*/
|
|
7
|
-
export class LogsCache {
|
|
8
|
-
constructor() {
|
|
9
|
-
/**
|
|
10
|
-
* Logs notes created in this transaction.
|
|
11
|
-
*/
|
|
12
|
-
this.encryptedLogs = [];
|
|
13
|
-
this.unencryptedLogs = [];
|
|
14
|
-
}
|
|
15
|
-
// TODO Separate encrypted logs linked to note hashes and arbitrary logs:
|
|
16
|
-
// Maps from note hash to encrypted log - useful for removing transient logs
|
|
17
|
-
// private encryptedLogsLinkedToNotes: Map<bigint, EncryptedL2Log> = new Map();
|
|
18
|
-
// /**
|
|
19
|
-
// * Remove the encrypted log for a nullified note.
|
|
20
|
-
// * This fn should only be called if the note's innerNoteHash != 0.
|
|
21
|
-
// * @param noteHashCounter - Side effect counter of the note.
|
|
22
|
-
// */
|
|
23
|
-
// public nullifyNote(noteHashCounter: Fr) {
|
|
24
|
-
// // Find and remove the matching new note if the emitted innerNoteHash is not empty.
|
|
25
|
-
// const log = this.encryptedLogsLinkedToNotes.get(noteHashCounter.toBigInt()) ?? false;
|
|
26
|
-
// // TODO: throw here? Will the log always be here?
|
|
27
|
-
// if (!log) {
|
|
28
|
-
// throw new Error('Attempt to remove a pending note log that does not exist.');
|
|
29
|
-
// }
|
|
30
|
-
// this.encryptedLogsLinkedToNotes.delete(noteHashCounter.toBigInt());
|
|
31
|
-
// }
|
|
32
|
-
/**
|
|
33
|
-
* Add a new encrypted log to cache.
|
|
34
|
-
* @param log - New log created during execution.
|
|
35
|
-
*/
|
|
36
|
-
addEncryptedLog(log) {
|
|
37
|
-
this.encryptedLogs.push(log);
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Add a new unencrypted log to cache.
|
|
41
|
-
* @param log - New log created during execution.
|
|
42
|
-
*/
|
|
43
|
-
addUnencryptedLog(log) {
|
|
44
|
-
this.unencryptedLogs.push(log);
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Return the encrypted logs.
|
|
48
|
-
*/
|
|
49
|
-
getEncryptedLogs() {
|
|
50
|
-
return this.encryptedLogs;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Return the encrypted logs.
|
|
54
|
-
*/
|
|
55
|
-
getUnencryptedLogs() {
|
|
56
|
-
return this.unencryptedLogs;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nc19jYWNoZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQvbG9nc19jYWNoZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyxTQUFTO0lBQXRCO1FBQ0U7O1dBRUc7UUFDSyxrQkFBYSxHQUFxQixFQUFFLENBQUM7UUFDckMsb0JBQWUsR0FBdUIsRUFBRSxDQUFDO0lBbURuRCxDQUFDO0lBakRDLHlFQUF5RTtJQUV6RSw0RUFBNEU7SUFDNUUsK0VBQStFO0lBRS9FLE1BQU07SUFDTixvREFBb0Q7SUFDcEQscUVBQXFFO0lBQ3JFLCtEQUErRDtJQUMvRCxNQUFNO0lBQ04sNENBQTRDO0lBQzVDLHVGQUF1RjtJQUN2Rix5RkFBeUY7SUFDekYscURBQXFEO0lBQ3JELGVBQWU7SUFDZixtRkFBbUY7SUFDbkYsS0FBSztJQUNMLHVFQUF1RTtJQUN2RSxJQUFJO0lBRUo7OztPQUdHO0lBQ0ksZUFBZSxDQUFDLEdBQW1CO1FBQ3hDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7O09BR0c7SUFDSSxpQkFBaUIsQ0FBQyxHQUFxQjtRQUM1QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxnQkFBZ0I7UUFDckIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFFRDs7T0FFRztJQUNJLGtCQUFrQjtRQUN2QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztDQUNGIn0=
|
package/dest/public/db.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/public/db.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC1F,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAE1E,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,WAAW,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;IAE3D;;;;;;OAMG;IACH,YAAY,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5E;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B;;OAEG;IACH,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtC;;;OAGG;IACH,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAExB;;OAEG;IACH,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAE5F;;;;OAIG;IACH,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC,CAAC;CAC9F;AAED,6GAA6G;AAC7G,MAAM,WAAW,aAAa;IAC5B;;;;;;;OAOG;IACH,0BAA0B,CACxB,eAAe,EAAE,YAAY,EAC7B,WAAW,EAAE,EAAE,EACf,MAAM,EAAE,EAAE,GACT,OAAO,CAAC,uBAAuB,CAAC,OAAO,wBAAwB,CAAC,CAAC,CAAC;IAErE;;;OAGG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC;IAE/D;;;;OAIG;IACH,kBAAkB,CAAC,UAAU,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAEhE;;;;OAIG;IACH,iBAAiB,CAAC,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAE9D;;;;OAIG;IACH,0CAA0C,CAAC,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,0BAA0B,GAAG,SAAS,CAAC,CAAC;CAC5G"}
|
package/dest/public/db.js
DELETED
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
import { UnencryptedFunctionL2Logs, type UnencryptedL2Log } from '@aztec/circuit-types';
|
|
2
|
-
import { type FunctionSelector, type Gas, type GasSettings, type GlobalVariables, type Header, type Nullifier } from '@aztec/circuits.js';
|
|
3
|
-
import { type AztecAddress } from '@aztec/foundation/aztec-address';
|
|
4
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
5
|
-
import { type ContractInstance } from '@aztec/types/contracts';
|
|
6
|
-
import { TypedOracle } from '../acvm/index.js';
|
|
7
|
-
import { type PackedValuesCache, type SideEffectCounter } from '../common/index.js';
|
|
8
|
-
import { type CommitmentsDB, type PublicContractsDB, type PublicStateDB } from './db.js';
|
|
9
|
-
import { type PublicExecution, type PublicExecutionResult } from './execution.js';
|
|
10
|
-
/**
|
|
11
|
-
* The execution context for a public tx simulation.
|
|
12
|
-
*/
|
|
13
|
-
export declare class PublicExecutionContext extends TypedOracle {
|
|
14
|
-
/**
|
|
15
|
-
* Data for this execution.
|
|
16
|
-
*/
|
|
17
|
-
readonly execution: PublicExecution;
|
|
18
|
-
readonly header: Header;
|
|
19
|
-
readonly globalVariables: GlobalVariables;
|
|
20
|
-
private readonly packedValuesCache;
|
|
21
|
-
readonly sideEffectCounter: SideEffectCounter;
|
|
22
|
-
readonly stateDb: PublicStateDB;
|
|
23
|
-
readonly contractsDb: PublicContractsDB;
|
|
24
|
-
readonly commitmentsDb: CommitmentsDB;
|
|
25
|
-
readonly availableGas: Gas;
|
|
26
|
-
readonly transactionFee: Fr;
|
|
27
|
-
readonly gasSettings: GasSettings;
|
|
28
|
-
readonly pendingNullifiers: Nullifier[];
|
|
29
|
-
private allUnencryptedLogs;
|
|
30
|
-
private log;
|
|
31
|
-
private storageActions;
|
|
32
|
-
private nestedExecutions;
|
|
33
|
-
private unencryptedLogs;
|
|
34
|
-
constructor(
|
|
35
|
-
/**
|
|
36
|
-
* Data for this execution.
|
|
37
|
-
*/
|
|
38
|
-
execution: PublicExecution, header: Header, globalVariables: GlobalVariables, packedValuesCache: PackedValuesCache, sideEffectCounter: SideEffectCounter, stateDb: PublicStateDB, contractsDb: PublicContractsDB, commitmentsDb: CommitmentsDB, availableGas: Gas, transactionFee: Fr, gasSettings: GasSettings, pendingNullifiers: Nullifier[], allUnencryptedLogs?: UnencryptedL2Log[], log?: import("@aztec/foundation/log").Logger);
|
|
39
|
-
/**
|
|
40
|
-
* Generates the initial witness for a public function.
|
|
41
|
-
* @param args - The arguments to the function.
|
|
42
|
-
* @param callContext - The call context of the function.
|
|
43
|
-
* @param header - Contains data required to reconstruct a block hash (historical roots etc.).
|
|
44
|
-
* @param globalVariables - The global variables.
|
|
45
|
-
* @param witnessStartIndex - The index where to start inserting the parameters.
|
|
46
|
-
* @returns The initial witness.
|
|
47
|
-
*/
|
|
48
|
-
getInitialWitness(witnessStartIndex?: number): Map<number, string>;
|
|
49
|
-
/**
|
|
50
|
-
* Return the nested execution results during this execution.
|
|
51
|
-
*/
|
|
52
|
-
getNestedExecutions(): PublicExecutionResult[];
|
|
53
|
-
/**
|
|
54
|
-
* Return the encrypted logs emitted during this execution.
|
|
55
|
-
*/
|
|
56
|
-
getUnencryptedLogs(): UnencryptedFunctionL2Logs;
|
|
57
|
-
/**
|
|
58
|
-
* Return the encrypted logs emitted during this execution, including nested calls.
|
|
59
|
-
*/
|
|
60
|
-
getAllUnencryptedLogs(): UnencryptedFunctionL2Logs;
|
|
61
|
-
/**
|
|
62
|
-
* Return the data read and updated during this execution.
|
|
63
|
-
*/
|
|
64
|
-
getStorageActionData(): {
|
|
65
|
-
contractStorageReads: import("@aztec/circuits.js").ContractStorageRead[];
|
|
66
|
-
contractStorageUpdateRequests: import("@aztec/circuits.js").ContractStorageUpdateRequest[];
|
|
67
|
-
};
|
|
68
|
-
/**
|
|
69
|
-
* Pack the given array of arguments.
|
|
70
|
-
* @param args - Arguments to pack
|
|
71
|
-
*/
|
|
72
|
-
packArgumentsArray(args: Fr[]): Promise<Fr>;
|
|
73
|
-
/**
|
|
74
|
-
* Pack the given returns.
|
|
75
|
-
* @param returns - Returns to pack
|
|
76
|
-
*/
|
|
77
|
-
packReturns(returns: Fr[]): Promise<Fr>;
|
|
78
|
-
/**
|
|
79
|
-
* Unpack the given returns.
|
|
80
|
-
* @param returnsHash - Returns hash to unpack
|
|
81
|
-
*/
|
|
82
|
-
unpackReturns(returnsHash: Fr): Promise<Fr[]>;
|
|
83
|
-
/**
|
|
84
|
-
* Fetches a message from the db, given its key.
|
|
85
|
-
* @param contractAddress - Address of a contract by which the message was emitted.
|
|
86
|
-
* @param messageHash - Hash of the message.
|
|
87
|
-
* @param secret - Secret used to compute a nullifier.
|
|
88
|
-
* @dev Contract address and secret are only used to compute the nullifier to get non-nullified messages
|
|
89
|
-
* @returns The l1 to l2 membership witness (index of message in the tree and sibling path).
|
|
90
|
-
*/
|
|
91
|
-
getL1ToL2MembershipWitness(contractAddress: AztecAddress, messageHash: Fr, secret: Fr): Promise<import("../acvm/index.js").MessageLoadOracleInputs<16>>;
|
|
92
|
-
/**
|
|
93
|
-
* Emit an unencrypted log.
|
|
94
|
-
* @param log - The unencrypted log to be emitted.
|
|
95
|
-
*/
|
|
96
|
-
emitUnencryptedLog(log: UnencryptedL2Log, _counter: number): void;
|
|
97
|
-
/**
|
|
98
|
-
* Read the public storage data.
|
|
99
|
-
* @param startStorageSlot - The starting storage slot.
|
|
100
|
-
* @param numberOfElements - Number of elements to read from the starting storage slot.
|
|
101
|
-
*/
|
|
102
|
-
storageRead(startStorageSlot: Fr, numberOfElements: number): Promise<Fr[]>;
|
|
103
|
-
/**
|
|
104
|
-
* Write some values to the public storage.
|
|
105
|
-
* @param startStorageSlot - The starting storage slot.
|
|
106
|
-
* @param values - The values to be written.
|
|
107
|
-
*/
|
|
108
|
-
storageWrite(startStorageSlot: Fr, values: Fr[]): Promise<Fr[]>;
|
|
109
|
-
/**
|
|
110
|
-
* Calls a public function as a nested execution.
|
|
111
|
-
* @param targetContractAddress - The address of the contract to call.
|
|
112
|
-
* @param functionSelector - The function selector of the function to call.
|
|
113
|
-
* @param argsHash - The packed arguments to pass to the function.
|
|
114
|
-
* @returns The return values of the public function.
|
|
115
|
-
*/
|
|
116
|
-
callPublicFunction(targetContractAddress: AztecAddress, functionSelector: FunctionSelector, argsHash: Fr, sideEffectCounter: number, isStaticCall: boolean, isDelegateCall: boolean): Promise<Fr[]>;
|
|
117
|
-
checkNullifierExists(nullifier: Fr): Promise<boolean>;
|
|
118
|
-
getContractInstance(address: AztecAddress): Promise<ContractInstance>;
|
|
119
|
-
debugLog(message: string, fields: Fr[]): void;
|
|
120
|
-
}
|
|
121
|
-
//# sourceMappingURL=public_execution_context.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"public_execution_context.d.ts","sourceRoot":"","sources":["../../src/public/public_execution_context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,214 +0,0 @@
|
|
|
1
|
-
import { UnencryptedFunctionL2Logs } from '@aztec/circuit-types';
|
|
2
|
-
import { CallContext, FunctionData, PublicContextInputs, } from '@aztec/circuits.js';
|
|
3
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
4
|
-
import { applyStringFormatting, createDebugLogger } from '@aztec/foundation/log';
|
|
5
|
-
import { TypedOracle, toACVMWitness } from '../acvm/index.js';
|
|
6
|
-
import { checkValidStaticCall } from './execution.js';
|
|
7
|
-
import { executePublicFunction } from './executor.js';
|
|
8
|
-
import { ContractStorageActionsCollector } from './state_actions.js';
|
|
9
|
-
/**
|
|
10
|
-
* The execution context for a public tx simulation.
|
|
11
|
-
*/
|
|
12
|
-
export class PublicExecutionContext extends TypedOracle {
|
|
13
|
-
constructor(
|
|
14
|
-
/**
|
|
15
|
-
* Data for this execution.
|
|
16
|
-
*/
|
|
17
|
-
execution, header, globalVariables, packedValuesCache,
|
|
18
|
-
// TRANSITIONAL: once AVM-ACVM interoperability is removed (fully functional AVM), sideEffectCounter can be made private
|
|
19
|
-
sideEffectCounter, stateDb, contractsDb, commitmentsDb, availableGas, transactionFee, gasSettings, pendingNullifiers,
|
|
20
|
-
// Unencrypted logs emitted during this call AND any nested calls
|
|
21
|
-
// Useful for maintaining correct ordering in ts
|
|
22
|
-
allUnencryptedLogs = [], log = createDebugLogger('aztec:simulator:public_execution_context')) {
|
|
23
|
-
super();
|
|
24
|
-
this.execution = execution;
|
|
25
|
-
this.header = header;
|
|
26
|
-
this.globalVariables = globalVariables;
|
|
27
|
-
this.packedValuesCache = packedValuesCache;
|
|
28
|
-
this.sideEffectCounter = sideEffectCounter;
|
|
29
|
-
this.stateDb = stateDb;
|
|
30
|
-
this.contractsDb = contractsDb;
|
|
31
|
-
this.commitmentsDb = commitmentsDb;
|
|
32
|
-
this.availableGas = availableGas;
|
|
33
|
-
this.transactionFee = transactionFee;
|
|
34
|
-
this.gasSettings = gasSettings;
|
|
35
|
-
this.pendingNullifiers = pendingNullifiers;
|
|
36
|
-
this.allUnencryptedLogs = allUnencryptedLogs;
|
|
37
|
-
this.log = log;
|
|
38
|
-
this.nestedExecutions = [];
|
|
39
|
-
this.unencryptedLogs = [];
|
|
40
|
-
this.storageActions = new ContractStorageActionsCollector(stateDb, execution.callContext.storageContractAddress);
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Generates the initial witness for a public function.
|
|
44
|
-
* @param args - The arguments to the function.
|
|
45
|
-
* @param callContext - The call context of the function.
|
|
46
|
-
* @param header - Contains data required to reconstruct a block hash (historical roots etc.).
|
|
47
|
-
* @param globalVariables - The global variables.
|
|
48
|
-
* @param witnessStartIndex - The index where to start inserting the parameters.
|
|
49
|
-
* @returns The initial witness.
|
|
50
|
-
*/
|
|
51
|
-
getInitialWitness(witnessStartIndex = 0) {
|
|
52
|
-
const { callContext, args } = this.execution;
|
|
53
|
-
const publicContextInputs = new PublicContextInputs(callContext, this.header, this.globalVariables, this.sideEffectCounter.current(), this.availableGas, this.transactionFee);
|
|
54
|
-
const fields = [...publicContextInputs.toFields(), ...args];
|
|
55
|
-
return toACVMWitness(witnessStartIndex, fields);
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Return the nested execution results during this execution.
|
|
59
|
-
*/
|
|
60
|
-
getNestedExecutions() {
|
|
61
|
-
return this.nestedExecutions;
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Return the encrypted logs emitted during this execution.
|
|
65
|
-
*/
|
|
66
|
-
getUnencryptedLogs() {
|
|
67
|
-
return new UnencryptedFunctionL2Logs(this.unencryptedLogs);
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Return the encrypted logs emitted during this execution, including nested calls.
|
|
71
|
-
*/
|
|
72
|
-
getAllUnencryptedLogs() {
|
|
73
|
-
return new UnencryptedFunctionL2Logs(this.allUnencryptedLogs);
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Return the data read and updated during this execution.
|
|
77
|
-
*/
|
|
78
|
-
getStorageActionData() {
|
|
79
|
-
const [contractStorageReads, contractStorageUpdateRequests] = this.storageActions.collect();
|
|
80
|
-
return { contractStorageReads, contractStorageUpdateRequests };
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Pack the given array of arguments.
|
|
84
|
-
* @param args - Arguments to pack
|
|
85
|
-
*/
|
|
86
|
-
packArgumentsArray(args) {
|
|
87
|
-
return Promise.resolve(this.packedValuesCache.pack(args));
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Pack the given returns.
|
|
91
|
-
* @param returns - Returns to pack
|
|
92
|
-
*/
|
|
93
|
-
packReturns(returns) {
|
|
94
|
-
return Promise.resolve(this.packedValuesCache.pack(returns));
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Unpack the given returns.
|
|
98
|
-
* @param returnsHash - Returns hash to unpack
|
|
99
|
-
*/
|
|
100
|
-
unpackReturns(returnsHash) {
|
|
101
|
-
return Promise.resolve(this.packedValuesCache.unpack(returnsHash));
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Fetches a message from the db, given its key.
|
|
105
|
-
* @param contractAddress - Address of a contract by which the message was emitted.
|
|
106
|
-
* @param messageHash - Hash of the message.
|
|
107
|
-
* @param secret - Secret used to compute a nullifier.
|
|
108
|
-
* @dev Contract address and secret are only used to compute the nullifier to get non-nullified messages
|
|
109
|
-
* @returns The l1 to l2 membership witness (index of message in the tree and sibling path).
|
|
110
|
-
*/
|
|
111
|
-
async getL1ToL2MembershipWitness(contractAddress, messageHash, secret) {
|
|
112
|
-
return await this.commitmentsDb.getL1ToL2MembershipWitness(contractAddress, messageHash, secret);
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Emit an unencrypted log.
|
|
116
|
-
* @param log - The unencrypted log to be emitted.
|
|
117
|
-
*/
|
|
118
|
-
emitUnencryptedLog(log, _counter) {
|
|
119
|
-
this.unencryptedLogs.push(log);
|
|
120
|
-
this.allUnencryptedLogs.push(log);
|
|
121
|
-
this.log.verbose(`Emitted unencrypted log: "${log.toHumanReadable()}"`);
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Read the public storage data.
|
|
125
|
-
* @param startStorageSlot - The starting storage slot.
|
|
126
|
-
* @param numberOfElements - Number of elements to read from the starting storage slot.
|
|
127
|
-
*/
|
|
128
|
-
async storageRead(startStorageSlot, numberOfElements) {
|
|
129
|
-
const values = [];
|
|
130
|
-
for (let i = 0; i < Number(numberOfElements); i++) {
|
|
131
|
-
const storageSlot = new Fr(startStorageSlot.value + BigInt(i));
|
|
132
|
-
const sideEffectCounter = this.sideEffectCounter.count();
|
|
133
|
-
const value = await this.storageActions.read(storageSlot, sideEffectCounter);
|
|
134
|
-
this.log.debug(`Oracle storage read: slot=${storageSlot.toString()} value=${value.toString()}`);
|
|
135
|
-
values.push(value);
|
|
136
|
-
}
|
|
137
|
-
return values;
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* Write some values to the public storage.
|
|
141
|
-
* @param startStorageSlot - The starting storage slot.
|
|
142
|
-
* @param values - The values to be written.
|
|
143
|
-
*/
|
|
144
|
-
async storageWrite(startStorageSlot, values) {
|
|
145
|
-
const newValues = [];
|
|
146
|
-
for (let i = 0; i < values.length; i++) {
|
|
147
|
-
const storageSlot = new Fr(startStorageSlot.toBigInt() + BigInt(i));
|
|
148
|
-
const newValue = values[i];
|
|
149
|
-
const sideEffectCounter = this.sideEffectCounter.count();
|
|
150
|
-
this.storageActions.write(storageSlot, newValue, sideEffectCounter);
|
|
151
|
-
await this.stateDb.storageWrite(this.execution.callContext.storageContractAddress, storageSlot, newValue);
|
|
152
|
-
this.log.debug(`Oracle storage write: slot=${storageSlot.toString()} value=${newValue.toString()}`);
|
|
153
|
-
newValues.push(newValue);
|
|
154
|
-
}
|
|
155
|
-
return newValues;
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* Calls a public function as a nested execution.
|
|
159
|
-
* @param targetContractAddress - The address of the contract to call.
|
|
160
|
-
* @param functionSelector - The function selector of the function to call.
|
|
161
|
-
* @param argsHash - The packed arguments to pass to the function.
|
|
162
|
-
* @returns The return values of the public function.
|
|
163
|
-
*/
|
|
164
|
-
async callPublicFunction(targetContractAddress, functionSelector, argsHash, sideEffectCounter, isStaticCall, isDelegateCall) {
|
|
165
|
-
isStaticCall = isStaticCall || this.execution.callContext.isStaticCall;
|
|
166
|
-
const args = this.packedValuesCache.unpack(argsHash);
|
|
167
|
-
this.log.verbose(`Public function call: addr=${targetContractAddress} selector=${functionSelector} args=${args.join(',')}`);
|
|
168
|
-
const functionData = new FunctionData(functionSelector, /*isPrivate=*/ false);
|
|
169
|
-
const callContext = CallContext.from({
|
|
170
|
-
msgSender: isDelegateCall ? this.execution.callContext.msgSender : this.execution.contractAddress,
|
|
171
|
-
storageContractAddress: isDelegateCall ? this.execution.contractAddress : targetContractAddress,
|
|
172
|
-
functionSelector,
|
|
173
|
-
isDelegateCall,
|
|
174
|
-
isStaticCall,
|
|
175
|
-
sideEffectCounter,
|
|
176
|
-
});
|
|
177
|
-
const nestedExecution = {
|
|
178
|
-
args,
|
|
179
|
-
contractAddress: targetContractAddress,
|
|
180
|
-
functionData,
|
|
181
|
-
callContext,
|
|
182
|
-
};
|
|
183
|
-
const context = new PublicExecutionContext(nestedExecution, this.header, this.globalVariables, this.packedValuesCache, this.sideEffectCounter, this.stateDb, this.contractsDb, this.commitmentsDb, this.availableGas, this.transactionFee, this.gasSettings,
|
|
184
|
-
/*pendingNullifiers=*/ [], this.allUnencryptedLogs, this.log);
|
|
185
|
-
const childExecutionResult = await executePublicFunction(context, /*nested=*/ true);
|
|
186
|
-
if (isStaticCall) {
|
|
187
|
-
checkValidStaticCall(childExecutionResult.newNoteHashes, childExecutionResult.newNullifiers, childExecutionResult.contractStorageUpdateRequests, childExecutionResult.newL2ToL1Messages, childExecutionResult.unencryptedLogs);
|
|
188
|
-
}
|
|
189
|
-
this.nestedExecutions.push(childExecutionResult);
|
|
190
|
-
this.log.debug(`Returning from nested call: ret=${childExecutionResult.returnValues.join(', ')}`);
|
|
191
|
-
return childExecutionResult.returnValues;
|
|
192
|
-
}
|
|
193
|
-
async checkNullifierExists(nullifier) {
|
|
194
|
-
const witness = await this.commitmentsDb.getNullifierMembershipWitnessAtLatestBlock(nullifier);
|
|
195
|
-
return !!witness;
|
|
196
|
-
}
|
|
197
|
-
async getContractInstance(address) {
|
|
198
|
-
// Note to AVM implementor: The wrapper of the oracle call get_contract_instance in aztec-nr
|
|
199
|
-
// automatically checks that the returned instance is correct, by hashing it together back
|
|
200
|
-
// into the address. However, in the AVM, we also need to prove the negative, otherwise a malicious
|
|
201
|
-
// sequencer could just lie about not having the instance available in its local db. We can do this
|
|
202
|
-
// by using the prove_contract_non_deployment_at method if the contract is not found in the db.
|
|
203
|
-
const instance = await this.contractsDb.getContractInstance(address);
|
|
204
|
-
if (!instance) {
|
|
205
|
-
throw new Error(`Contract instance at ${address} not found`);
|
|
206
|
-
}
|
|
207
|
-
return instance;
|
|
208
|
-
}
|
|
209
|
-
debugLog(message, fields) {
|
|
210
|
-
const formattedStr = applyStringFormatting(message, fields);
|
|
211
|
-
this.log.verbose(`debug_log ${formattedStr}`);
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2V4ZWN1dGlvbl9jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1YmxpYy9wdWJsaWNfZXhlY3V0aW9uX2NvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHlCQUF5QixFQUF5QixNQUFNLHNCQUFzQixDQUFDO0FBQ3hGLE9BQU8sRUFDTCxXQUFXLEVBQ1gsWUFBWSxFQU9aLG1CQUFtQixHQUNwQixNQUFNLG9CQUFvQixDQUFDO0FBRTVCLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUdqRixPQUFPLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRzlELE9BQU8sRUFBb0Qsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFckU7O0dBRUc7QUFDSCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsV0FBVztJQUtyRDtJQUNFOztPQUVHO0lBQ2EsU0FBMEIsRUFDMUIsTUFBYyxFQUNkLGVBQWdDLEVBQy9CLGlCQUFvQztJQUNyRCx3SEFBd0g7SUFDeEcsaUJBQW9DLEVBQ3BDLE9BQXNCLEVBQ3RCLFdBQThCLEVBQzlCLGFBQTRCLEVBQzVCLFlBQWlCLEVBQ2pCLGNBQWtCLEVBQ2xCLFdBQXdCLEVBQ3hCLGlCQUE4QjtJQUM5QyxpRUFBaUU7SUFDakUsZ0RBQWdEO0lBQ3hDLHFCQUF5QyxFQUFFLEVBQzNDLE1BQU0saUJBQWlCLENBQUMsMENBQTBDLENBQUM7UUFFM0UsS0FBSyxFQUFFLENBQUM7UUFsQlEsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUFDMUIsV0FB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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"public_executor.d.ts","sourceRoot":"","sources":["../../src/public/public_executor.ts"],"names":[],"mappings":";AAAA,OAAO,EAAgB,0BAA0B,EAAE,KAAK,EAAE,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EACL,KAAK,YAAY,EAGjB,EAAE,EACF,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAI9B,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EACL,KAAK,aAAa,EAClB,uBAAuB,EACvB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,2BAA2B,EACjC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/D;;;GAGG;AACH,qBAAa,2BAA4B,YAAW,iBAAiB;IAMvD,OAAO,CAAC,EAAE;IALtB,OAAO,CAAC,aAAa,CAAkD;IACvE,OAAO,CAAC,UAAU,CAA0C;IAE5D,OAAO,CAAC,GAAG,CAA8D;gBAErD,EAAE,EAAE,kBAAkB;IAE1C;;;OAGG;IACI,eAAe,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB7C;;;OAGG;IACI,kBAAkB,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAYnC,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC;IAI5F,gBAAgB,CAAC,eAAe,EAAE,EAAE,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAItF,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAWlG;AAED;;GAEG;AACH,qBAAa,kBAAmB,YAAW,aAAa;IAK1C,OAAO,CAAC,EAAE;IAJtB,OAAO,CAAC,mBAAmB,CAA8B;IACzD,OAAO,CAAC,sBAAsB,CAA8B;IAC5D,OAAO,CAAC,qBAAqB,CAA8B;gBAEvC,EAAE,EAAE,oBAAoB;IAE5C;;;;;OAKG;IACU,WAAW,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;IA4BvE;;;;;OAKG;IACI,YAAY,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMlF;;;OAGG;IACH,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAYvB;;;OAGG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAMvC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3B,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;CAItC;AAED;;GAEG;AACH,qBAAa,YAAa,YAAW,aAAa;IACpC,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,oBAAoB;IAE/B,0CAA0C,CACrD,SAAS,EAAE,EAAE,GACZ,OAAO,CAAC,0BAA0B,GAAG,SAAS,CAAC;IAqBrC,0BAA0B,CACrC,eAAe,EAAE,YAAY,EAC7B,WAAW,EAAE,EAAE,EACf,MAAM,EAAE,EAAE,GACT,OAAO,CAAC,uBAAuB,CAAC,OAAO,wBAAwB,CAAC,CAAC;IA2BvD,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC;IAI9D,kBAAkB,CAAC,UAAU,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAI/D,iBAAiB,CAAC,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAG3E"}
|