@aztec/simulator 0.66.0 → 0.67.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.js +3 -3
- package/dest/acvm/oracle/oracle.d.ts +1 -1
- package/dest/acvm/oracle/oracle.d.ts.map +1 -1
- package/dest/acvm/oracle/oracle.js +3 -3
- package/dest/acvm/oracle/typed_oracle.d.ts +2 -2
- package/dest/acvm/oracle/typed_oracle.d.ts.map +1 -1
- package/dest/acvm/oracle/typed_oracle.js +3 -3
- package/dest/acvm/serialize.js +2 -2
- package/dest/avm/avm_context.d.ts +2 -2
- package/dest/avm/avm_context.d.ts.map +1 -1
- package/dest/avm/avm_context.js +3 -4
- package/dest/avm/avm_execution_environment.d.ts +4 -6
- package/dest/avm/avm_execution_environment.d.ts.map +1 -1
- package/dest/avm/avm_execution_environment.js +8 -13
- package/dest/avm/avm_memory_types.d.ts +2 -2
- package/dest/avm/avm_memory_types.d.ts.map +1 -1
- package/dest/avm/avm_memory_types.js +3 -3
- package/dest/avm/avm_simulator.d.ts +3 -3
- package/dest/avm/avm_simulator.d.ts.map +1 -1
- package/dest/avm/avm_simulator.js +22 -13
- package/dest/avm/errors.d.ts +3 -3
- package/dest/avm/errors.d.ts.map +1 -1
- package/dest/avm/errors.js +8 -15
- package/dest/avm/fixtures/index.d.ts.map +1 -1
- package/dest/avm/fixtures/index.js +4 -4
- package/dest/avm/journal/journal.d.ts +15 -4
- package/dest/avm/journal/journal.d.ts.map +1 -1
- package/dest/avm/journal/journal.js +108 -29
- package/dest/avm/opcodes/external_calls.d.ts.map +1 -1
- package/dest/avm/opcodes/external_calls.js +4 -11
- package/dest/avm/opcodes/misc.d.ts.map +1 -1
- package/dest/avm/opcodes/misc.js +3 -3
- package/dest/client/client_execution_context.d.ts +3 -3
- package/dest/client/client_execution_context.d.ts.map +1 -1
- package/dest/client/client_execution_context.js +14 -8
- package/dest/client/db_oracle.d.ts +2 -2
- package/dest/client/db_oracle.d.ts.map +1 -1
- package/dest/client/execution_note_cache.d.ts +9 -1
- package/dest/client/execution_note_cache.d.ts.map +1 -1
- package/dest/client/execution_note_cache.js +10 -3
- package/dest/client/private_execution.d.ts.map +1 -1
- package/dest/client/private_execution.js +4 -4
- package/dest/client/simulator.d.ts.map +1 -1
- package/dest/client/simulator.js +4 -4
- package/dest/client/unconstrained_execution.d.ts.map +1 -1
- package/dest/client/unconstrained_execution.js +3 -3
- package/dest/client/view_data_oracle.d.ts +2 -2
- package/dest/client/view_data_oracle.d.ts.map +1 -1
- package/dest/client/view_data_oracle.js +5 -6
- package/dest/common/debug_fn_name.d.ts +2 -2
- package/dest/common/debug_fn_name.d.ts.map +1 -1
- package/dest/common/debug_fn_name.js +8 -14
- package/dest/providers/acvm_native.js +4 -4
- package/dest/providers/factory.d.ts +2 -2
- package/dest/providers/factory.d.ts.map +1 -1
- package/dest/providers/factory.js +4 -4
- package/dest/public/enqueued_call_side_effect_trace.d.ts +11 -23
- package/dest/public/enqueued_call_side_effect_trace.d.ts.map +1 -1
- package/dest/public/enqueued_call_side_effect_trace.js +37 -58
- package/dest/public/executor_metrics.d.ts.map +1 -1
- package/dest/public/executor_metrics.js +2 -5
- package/dest/public/fixtures/index.d.ts +24 -1
- package/dest/public/fixtures/index.d.ts.map +1 -1
- package/dest/public/fixtures/index.js +15 -9
- package/dest/public/index.d.ts +0 -1
- package/dest/public/index.d.ts.map +1 -1
- package/dest/public/index.js +1 -2
- package/dest/public/public_db_sources.d.ts.map +1 -1
- package/dest/public/public_db_sources.js +4 -4
- package/dest/public/public_processor.d.ts +7 -8
- package/dest/public/public_processor.d.ts.map +1 -1
- package/dest/public/public_processor.js +30 -22
- package/dest/public/public_tx_context.d.ts +13 -10
- package/dest/public/public_tx_context.d.ts.map +1 -1
- package/dest/public/public_tx_context.js +46 -31
- package/dest/public/public_tx_simulator.d.ts +2 -2
- package/dest/public/public_tx_simulator.d.ts.map +1 -1
- package/dest/public/public_tx_simulator.js +43 -23
- package/dest/public/side_effect_trace_interface.d.ts +4 -17
- package/dest/public/side_effect_trace_interface.d.ts.map +1 -1
- package/dest/public/transitional_adapters.d.ts +2 -2
- package/dest/public/transitional_adapters.d.ts.map +1 -1
- package/dest/public/transitional_adapters.js +28 -24
- package/package.json +16 -9
- package/src/acvm/acvm.ts +2 -2
- package/src/acvm/oracle/oracle.ts +2 -2
- package/src/acvm/oracle/typed_oracle.ts +3 -3
- package/src/acvm/serialize.ts +1 -1
- package/src/avm/avm_context.ts +2 -3
- package/src/avm/avm_execution_environment.ts +6 -31
- package/src/avm/avm_memory_types.ts +2 -2
- package/src/avm/avm_simulator.ts +24 -20
- package/src/avm/errors.ts +12 -14
- package/src/avm/fixtures/index.ts +2 -3
- package/src/avm/journal/journal.ts +189 -63
- package/src/avm/opcodes/external_calls.ts +3 -19
- package/src/avm/opcodes/misc.ts +2 -2
- package/src/client/client_execution_context.ts +17 -9
- package/src/client/db_oracle.ts +2 -2
- package/src/client/execution_note_cache.ts +13 -3
- package/src/client/private_execution.ts +3 -3
- package/src/client/simulator.ts +4 -4
- package/src/client/unconstrained_execution.ts +2 -2
- package/src/client/view_data_oracle.ts +5 -6
- package/src/common/debug_fn_name.ts +7 -13
- package/src/providers/acvm_native.ts +3 -3
- package/src/providers/factory.ts +3 -3
- package/src/public/enqueued_call_side_effect_trace.ts +54 -74
- package/src/public/executor_metrics.ts +0 -4
- package/src/public/fixtures/index.ts +23 -10
- package/src/public/index.ts +0 -1
- package/src/public/public_db_sources.ts +3 -3
- package/src/public/public_processor.ts +46 -47
- package/src/public/public_tx_context.ts +52 -32
- package/src/public/public_tx_simulator.ts +58 -38
- package/src/public/side_effect_trace_interface.ts +8 -15
- package/src/public/transitional_adapters.ts +39 -24
- package/dest/public/dual_side_effect_trace.d.ts +0 -77
- package/dest/public/dual_side_effect_trace.d.ts.map +0 -1
- package/dest/public/dual_side_effect_trace.js +0 -119
- package/dest/public/side_effect_trace.d.ts +0 -96
- package/dest/public/side_effect_trace.d.ts.map +0 -1
- package/dest/public/side_effect_trace.js +0 -309
- package/src/public/dual_side_effect_trace.ts +0 -242
- package/src/public/side_effect_trace.ts +0 -536
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { runInDirectory } from '@aztec/foundation/fs';
|
|
2
|
-
import {
|
|
2
|
+
import { createLogger } from '@aztec/foundation/log';
|
|
3
3
|
import { Timer } from '@aztec/foundation/timer';
|
|
4
4
|
import * as proc from 'child_process';
|
|
5
|
-
import fs from 'fs
|
|
6
|
-
const logger =
|
|
5
|
+
import { promises as fs } from 'fs';
|
|
6
|
+
const logger = createLogger('simulator:acvm-native');
|
|
7
7
|
export var ACVM_RESULT;
|
|
8
8
|
(function (ACVM_RESULT) {
|
|
9
9
|
ACVM_RESULT[ACVM_RESULT["SUCCESS"] = 0] = "SUCCESS";
|
|
@@ -119,4 +119,4 @@ export class NativeACVMSimulator {
|
|
|
119
119
|
return await runInDirectory(this.workingDirectory, operation, false);
|
|
120
120
|
}
|
|
121
121
|
}
|
|
122
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN2bV9uYXRpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmlkZXJzL2Fjdm1fbmF0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSWhELE9BQU8sS0FBSyxJQUFJLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxRQUFRLElBQUksRUFBRSxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBSXBDLE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0FBRXJELE1BQU0sQ0FBTixJQUFZLFdBR1g7QUFIRCxXQUFZLFdBQVc7SUFDckIsbURBQU8sQ0FBQTtJQUNQLG1EQUFPLENBQUE7QUFDVCxDQUFDLEVBSFcsV0FBVyxLQUFYLFdBQVcsUUFHdEI7QUFlRDs7OztHQUlHO0FBQ0gsU0FBUyxtQkFBbUIsQ0FBQyxZQUFvQjtJQUMvQyxNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLE9BQU8sSUFBSSxHQUFHLENBQ1osS0FBSztTQUNGLE1BQU0sQ0FBQyxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUNyQyxHQUFHLENBQUMsQ0FBQyxJQUFZLEVBQUUsRUFBRTtRQUNwQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxD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
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type Logger } from '@aztec/foundation/log';
|
|
2
2
|
import { type SimulationProvider } from './simulation_provider.js';
|
|
3
3
|
export type SimulationProviderConfig = {
|
|
4
4
|
acvmBinaryPath?: string;
|
|
@@ -8,5 +8,5 @@ export declare function getSimulationProviderConfigFromEnv(): {
|
|
|
8
8
|
acvmWorkingDirectory: string | undefined;
|
|
9
9
|
acvmBinaryPath: string | undefined;
|
|
10
10
|
};
|
|
11
|
-
export declare function createSimulationProvider(config: SimulationProviderConfig, logger?:
|
|
11
|
+
export declare function createSimulationProvider(config: SimulationProviderConfig, logger?: Logger): Promise<SimulationProvider>;
|
|
12
12
|
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/providers/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/providers/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAMlE,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,MAAM,MAAM,wBAAwB,GAAG;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,wBAAgB,kCAAkC;;;EAMjD;AAED,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,wBAAwB,EAChC,MAAM,GAAE,MAAkC,GACzC,OAAO,CAAC,kBAAkB,CAAC,CAa7B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
1
|
+
import { createLogger } from '@aztec/foundation/log';
|
|
2
|
+
import { promises as fs } from 'fs';
|
|
3
3
|
import { NativeACVMSimulator } from './acvm_native.js';
|
|
4
4
|
import { WASMSimulator } from './acvm_wasm.js';
|
|
5
5
|
export function getSimulationProviderConfigFromEnv() {
|
|
@@ -9,7 +9,7 @@ export function getSimulationProviderConfigFromEnv() {
|
|
|
9
9
|
acvmBinaryPath: ACVM_BINARY_PATH ? ACVM_BINARY_PATH : undefined,
|
|
10
10
|
};
|
|
11
11
|
}
|
|
12
|
-
export async function createSimulationProvider(config, logger =
|
|
12
|
+
export async function createSimulationProvider(config, logger = createLogger('simulator')) {
|
|
13
13
|
if (config.acvmBinaryPath && config.acvmWorkingDirectory) {
|
|
14
14
|
try {
|
|
15
15
|
await fs.access(config.acvmBinaryPath, fs.constants.R_OK);
|
|
@@ -24,4 +24,4 @@ export async function createSimulationProvider(config, logger = createDebugLogge
|
|
|
24
24
|
logger.info('Using WASM ACVM simulation');
|
|
25
25
|
return new WASMSimulator();
|
|
26
26
|
}
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92aWRlcnMvZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFbEUsT0FBTyxFQUFFLFFBQVEsSUFBSSxFQUFFLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFFcEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUS9DLE1BQU0sVUFBVSxrQ0FBa0M7SUFDaEQsTUFBTSxFQUFFLGdCQUFnQixFQUFFLHNCQUFzQixFQUFFLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQztJQUNqRSxPQUFPO1FBQ0wsb0JBQW9CLEVBQUUsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxTQUFTO1FBQ2pGLGNBQWMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLFNBQVM7S0FDaEUsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLHdCQUF3QixDQUM1QyxNQUFnQyxFQUNoQyxTQUFpQixZQUFZLENBQUMsV0FBVyxDQUFDO0lBRTFDLElBQUksTUFBTSxDQUFDLGNBQWMsSUFBSSxNQUFNLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUN6RCxJQUFJLENBQUM7WUFDSCxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFELE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNqRSxNQUFNLENBQUMsSUFBSSxDQUFDLHdCQUF3QixNQUFNLENBQUMsY0FBYywwQkFBMEIsTUFBTSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztZQUNsSCxPQUFPLElBQUksbUJBQW1CLENBQUMsTUFBTSxDQUFDLG9CQUFvQixFQUFFLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNyRixDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsTUFBTSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsTUFBTSxDQUFDLGNBQWMsd0JBQXdCLENBQUMsQ0FBQztRQUN6RixDQUFDO0lBQ0gsQ0FBQztJQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsQ0FBQztJQUMxQyxPQUFPLElBQUksYUFBYSxFQUFFLENBQUM7QUFDN0IsQ0FBQyJ9
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { UnencryptedL2Log } from '@aztec/circuit-types';
|
|
4
4
|
import { AvmCircuitPublicInputs, AvmExecutionHints, type AztecAddress, type ContractClassIdPreimage, Gas, type GasSettings, type GlobalVariables, Nullifier, NullifierLeafPreimage, PublicCallRequest, PublicDataTreeLeafPreimage, PublicDataUpdateRequest, ScopedL2ToL1Message, ScopedLogHash, type ScopedNoteHash, SerializableContractInstance, type TreeSnapshots } from '@aztec/circuits.js';
|
|
5
5
|
import { Fr } from '@aztec/foundation/fields';
|
|
6
|
-
import { type
|
|
6
|
+
import { type AvmFinalizedCallResult } from '../avm/avm_contract_call_result.js';
|
|
7
7
|
import { type AvmExecutionEnvironment } from '../avm/avm_execution_environment.js';
|
|
8
8
|
import { type EnqueuedPublicCallExecutionResultWithSideEffects, type PublicFunctionCallResult } from './execution.js';
|
|
9
9
|
import { type PublicSideEffectTraceInterface } from './side_effect_trace_interface.js';
|
|
@@ -23,11 +23,12 @@ export type SideEffects = {
|
|
|
23
23
|
};
|
|
24
24
|
export declare class SideEffectArrayLengths {
|
|
25
25
|
readonly publicDataWrites: number;
|
|
26
|
+
readonly protocolPublicDataWrites: number;
|
|
26
27
|
readonly noteHashes: number;
|
|
27
28
|
readonly nullifiers: number;
|
|
28
29
|
readonly l2ToL1Msgs: number;
|
|
29
30
|
readonly unencryptedLogs: number;
|
|
30
|
-
constructor(publicDataWrites: number, noteHashes: number, nullifiers: number, l2ToL1Msgs: number, unencryptedLogs: number);
|
|
31
|
+
constructor(publicDataWrites: number, protocolPublicDataWrites: number, noteHashes: number, nullifiers: number, l2ToL1Msgs: number, unencryptedLogs: number);
|
|
31
32
|
static empty(): SideEffectArrayLengths;
|
|
32
33
|
}
|
|
33
34
|
/**
|
|
@@ -45,6 +46,8 @@ export declare class PublicEnqueuedCallSideEffectTrace implements PublicSideEffe
|
|
|
45
46
|
private sideEffectCounter;
|
|
46
47
|
private enqueuedCalls;
|
|
47
48
|
private publicDataWrites;
|
|
49
|
+
private protocolPublicDataWritesLength;
|
|
50
|
+
private userPublicDataWritesLength;
|
|
48
51
|
private noteHashes;
|
|
49
52
|
private nullifiers;
|
|
50
53
|
private l2ToL1Messages;
|
|
@@ -65,8 +68,8 @@ export declare class PublicEnqueuedCallSideEffectTrace implements PublicSideEffe
|
|
|
65
68
|
private mergeHints;
|
|
66
69
|
getCounter(): number;
|
|
67
70
|
private incrementSideEffectCounter;
|
|
68
|
-
tracePublicStorageRead(
|
|
69
|
-
tracePublicStorageWrite(contractAddress: AztecAddress, slot: Fr, value: Fr, lowLeafPreimage?: PublicDataTreeLeafPreimage, lowLeafIndex?: Fr, lowLeafPath?: Fr[], newLeafPreimage?: PublicDataTreeLeafPreimage, insertionPath?: Fr[]): void;
|
|
71
|
+
tracePublicStorageRead(contractAddress: AztecAddress, slot: Fr, value: Fr, leafPreimage?: PublicDataTreeLeafPreimage, leafIndex?: Fr, path?: Fr[]): void;
|
|
72
|
+
tracePublicStorageWrite(contractAddress: AztecAddress, slot: Fr, value: Fr, protocolWrite: boolean, lowLeafPreimage?: PublicDataTreeLeafPreimage, lowLeafIndex?: Fr, lowLeafPath?: Fr[], newLeafPreimage?: PublicDataTreeLeafPreimage, insertionPath?: Fr[]): void;
|
|
70
73
|
traceNoteHashCheck(_contractAddress: AztecAddress, noteHash: Fr, leafIndex: Fr, _exists: boolean, path?: Fr[]): void;
|
|
71
74
|
traceNewNoteHash(contractAddress: AztecAddress, noteHash: Fr, leafIndex?: Fr, path?: Fr[]): void;
|
|
72
75
|
traceNullifierCheck(_siloedNullifier: Fr, _exists: boolean, lowLeafPreimage?: NullifierLeafPreimage, lowLeafIndex?: Fr, lowLeafPath?: Fr[]): void;
|
|
@@ -74,25 +77,8 @@ export declare class PublicEnqueuedCallSideEffectTrace implements PublicSideEffe
|
|
|
74
77
|
traceL1ToL2MessageCheck(_contractAddress: AztecAddress, msgHash: Fr, msgLeafIndex: Fr, _exists: boolean, path?: Fr[]): void;
|
|
75
78
|
traceNewL2ToL1Message(contractAddress: AztecAddress, recipient: Fr, content: Fr): void;
|
|
76
79
|
traceUnencryptedLog(contractAddress: AztecAddress, log: Fr[]): void;
|
|
77
|
-
traceGetContractInstance(contractAddress: AztecAddress, exists: boolean, instance?: SerializableContractInstance): void;
|
|
78
|
-
traceGetBytecode(contractAddress: AztecAddress, exists: boolean, bytecode?: Buffer, contractInstance?: SerializableContractInstance, contractClass?: ContractClassIdPreimage): void;
|
|
79
|
-
/**
|
|
80
|
-
* Trace a nested call.
|
|
81
|
-
* Accept some results from a finished nested call's trace into this one.
|
|
82
|
-
*/
|
|
83
|
-
traceNestedCall(
|
|
84
|
-
/** The trace of the nested call. */
|
|
85
|
-
_nestedCallTrace: this,
|
|
86
|
-
/** The execution environment of the nested call. */
|
|
87
|
-
nestedEnvironment: AvmExecutionEnvironment,
|
|
88
|
-
/** How much gas was available for this public execution. */
|
|
89
|
-
startGasLeft: Gas,
|
|
90
|
-
/** Bytecode used for this execution. */
|
|
91
|
-
_bytecode: Buffer,
|
|
92
|
-
/** The call's results */
|
|
93
|
-
avmCallResults: AvmContractCallResult,
|
|
94
|
-
/** Function name for logging */
|
|
95
|
-
_functionName?: string): void;
|
|
80
|
+
traceGetContractInstance(contractAddress: AztecAddress, exists: boolean, instance?: SerializableContractInstance, lowLeafPreimage?: NullifierLeafPreimage, lowLeafIndex?: Fr, lowLeafPath?: Fr[]): void;
|
|
81
|
+
traceGetBytecode(contractAddress: AztecAddress, exists: boolean, bytecode?: Buffer, contractInstance?: SerializableContractInstance, contractClass?: ContractClassIdPreimage, lowLeafPreimage?: NullifierLeafPreimage, lowLeafIndex?: Fr, lowLeafPath?: Fr[]): void;
|
|
96
82
|
/**
|
|
97
83
|
* Trace an enqueued call.
|
|
98
84
|
* Accept some results from a finished call's trace into this one.
|
|
@@ -120,6 +106,8 @@ export declare class PublicEnqueuedCallSideEffectTrace implements PublicSideEffe
|
|
|
120
106
|
startGasUsed: Gas,
|
|
121
107
|
/** How much gas was available for this public execution. */
|
|
122
108
|
gasLimits: GasSettings,
|
|
109
|
+
/** Address of the fee payer. */
|
|
110
|
+
feePayer: AztecAddress,
|
|
123
111
|
/** Call requests for setup phase. */
|
|
124
112
|
publicSetupCallRequests: PublicCallRequest[],
|
|
125
113
|
/** Call requests for app logic phase. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enqueued_call_side_effect_trace.d.ts","sourceRoot":"","sources":["../../src/public/enqueued_call_side_effect_trace.ts"],"names":[],"mappings":";;AAAA,OAAO,EAA6B,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAGL,sBAAsB,EAItB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"enqueued_call_side_effect_trace.d.ts","sourceRoot":"","sources":["../../src/public/enqueued_call_side_effect_trace.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +1,27 @@
|
|
|
1
1
|
import { UnencryptedFunctionL2Logs, UnencryptedL2Log } from '@aztec/circuit-types';
|
|
2
|
-
import { AvmAccumulatedData, AvmAppendTreeHint, AvmCircuitPublicInputs, AvmContractBytecodeHints, AvmContractInstanceHint, AvmEnqueuedCallHint, AvmExecutionHints,
|
|
2
|
+
import { AvmAccumulatedData, AvmAppendTreeHint, AvmCircuitPublicInputs, AvmContractBytecodeHints, AvmContractInstanceHint, AvmEnqueuedCallHint, AvmExecutionHints, AvmNullifierReadTreeHint, AvmNullifierWriteTreeHint, AvmPublicDataReadTreeHint, AvmPublicDataWriteTreeHint, EthAddress, Gas, L1_TO_L2_MSG_TREE_HEIGHT, L2ToL1Message, LogHash, MAX_ENQUEUED_CALLS_PER_TX, MAX_L2_TO_L1_MSGS_PER_TX, MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, MAX_UNENCRYPTED_LOGS_PER_TX, NOTE_HASH_TREE_HEIGHT, NULLIFIER_TREE_HEIGHT, NoteHash, Nullifier, NullifierLeafPreimage, PROTOCOL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, PUBLIC_DATA_TREE_HEIGHT, PrivateToAvmAccumulatedData, PrivateToAvmAccumulatedDataArrayLengths, PublicCallRequest, PublicDataTreeLeafPreimage, PublicDataUpdateRequest, PublicDataWrite, ScopedL2ToL1Message, ScopedLogHash, SerializableContractInstance, } from '@aztec/circuits.js';
|
|
3
3
|
import { computePublicDataTreeLeafSlot } from '@aztec/circuits.js/hash';
|
|
4
4
|
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
5
5
|
import { Fr } from '@aztec/foundation/fields';
|
|
6
6
|
import { jsonStringify } from '@aztec/foundation/json-rpc';
|
|
7
|
-
import {
|
|
8
|
-
import { assert } from '
|
|
7
|
+
import { createLogger } from '@aztec/foundation/log';
|
|
8
|
+
import { strict as assert } from 'assert';
|
|
9
9
|
import { SideEffectLimitReachedError } from './side_effect_errors.js';
|
|
10
10
|
const emptyPublicDataPath = () => new Array(PUBLIC_DATA_TREE_HEIGHT).fill(Fr.zero());
|
|
11
11
|
const emptyNoteHashPath = () => new Array(NOTE_HASH_TREE_HEIGHT).fill(Fr.zero());
|
|
12
12
|
const emptyNullifierPath = () => new Array(NULLIFIER_TREE_HEIGHT).fill(Fr.zero());
|
|
13
13
|
const emptyL1ToL2MessagePath = () => new Array(L1_TO_L2_MSG_TREE_HEIGHT).fill(Fr.zero());
|
|
14
14
|
export class SideEffectArrayLengths {
|
|
15
|
-
constructor(publicDataWrites, noteHashes, nullifiers, l2ToL1Msgs, unencryptedLogs) {
|
|
15
|
+
constructor(publicDataWrites, protocolPublicDataWrites, noteHashes, nullifiers, l2ToL1Msgs, unencryptedLogs) {
|
|
16
16
|
this.publicDataWrites = publicDataWrites;
|
|
17
|
+
this.protocolPublicDataWrites = protocolPublicDataWrites;
|
|
17
18
|
this.noteHashes = noteHashes;
|
|
18
19
|
this.nullifiers = nullifiers;
|
|
19
20
|
this.l2ToL1Msgs = l2ToL1Msgs;
|
|
20
21
|
this.unencryptedLogs = unencryptedLogs;
|
|
21
22
|
}
|
|
22
23
|
static empty() {
|
|
23
|
-
return new this(0, 0, 0, 0, 0);
|
|
24
|
+
return new this(0, 0, 0, 0, 0, 0);
|
|
24
25
|
}
|
|
25
26
|
}
|
|
26
27
|
/**
|
|
@@ -36,9 +37,11 @@ export class PublicEnqueuedCallSideEffectTrace {
|
|
|
36
37
|
previousSideEffectArrayLengths = SideEffectArrayLengths.empty()) {
|
|
37
38
|
this.startSideEffectCounter = startSideEffectCounter;
|
|
38
39
|
this.previousSideEffectArrayLengths = previousSideEffectArrayLengths;
|
|
39
|
-
this.log =
|
|
40
|
+
this.log = createLogger('simulator:public_enqueued_call_side_effect_trace');
|
|
40
41
|
this.enqueuedCalls = [];
|
|
41
42
|
this.publicDataWrites = [];
|
|
43
|
+
this.protocolPublicDataWritesLength = 0;
|
|
44
|
+
this.userPublicDataWritesLength = 0;
|
|
42
45
|
this.noteHashes = [];
|
|
43
46
|
this.nullifiers = [];
|
|
44
47
|
this.l2ToL1Messages = [];
|
|
@@ -51,7 +54,7 @@ export class PublicEnqueuedCallSideEffectTrace {
|
|
|
51
54
|
this.avmCircuitHints = AvmExecutionHints.empty();
|
|
52
55
|
}
|
|
53
56
|
fork() {
|
|
54
|
-
return new PublicEnqueuedCallSideEffectTrace(this.sideEffectCounter, new SideEffectArrayLengths(this.previousSideEffectArrayLengths.publicDataWrites + this.
|
|
57
|
+
return new PublicEnqueuedCallSideEffectTrace(this.sideEffectCounter, new SideEffectArrayLengths(this.previousSideEffectArrayLengths.publicDataWrites + this.userPublicDataWritesLength, this.previousSideEffectArrayLengths.protocolPublicDataWrites + this.protocolPublicDataWritesLength, this.previousSideEffectArrayLengths.noteHashes + this.noteHashes.length, this.previousSideEffectArrayLengths.nullifiers + this.nullifiers.length, this.previousSideEffectArrayLengths.l2ToL1Msgs + this.l2ToL1Messages.length, this.previousSideEffectArrayLengths.unencryptedLogs + this.unencryptedLogs.length));
|
|
55
58
|
}
|
|
56
59
|
merge(forkedTrace, reverted = false) {
|
|
57
60
|
// sanity check to avoid merging the same forked trace twice
|
|
@@ -71,11 +74,6 @@ export class PublicEnqueuedCallSideEffectTrace {
|
|
|
71
74
|
}
|
|
72
75
|
mergeHints(forkedTrace) {
|
|
73
76
|
this.avmCircuitHints.enqueuedCalls.items.push(...forkedTrace.avmCircuitHints.enqueuedCalls.items);
|
|
74
|
-
this.avmCircuitHints.storageValues.items.push(...forkedTrace.avmCircuitHints.storageValues.items);
|
|
75
|
-
this.avmCircuitHints.noteHashExists.items.push(...forkedTrace.avmCircuitHints.noteHashExists.items);
|
|
76
|
-
this.avmCircuitHints.nullifierExists.items.push(...forkedTrace.avmCircuitHints.nullifierExists.items);
|
|
77
|
-
this.avmCircuitHints.l1ToL2MessageExists.items.push(...forkedTrace.avmCircuitHints.l1ToL2MessageExists.items);
|
|
78
|
-
this.avmCircuitHints.externalCalls.items.push(...forkedTrace.avmCircuitHints.externalCalls.items);
|
|
79
77
|
this.avmCircuitHints.contractInstances.items.push(...forkedTrace.avmCircuitHints.contractInstances.items);
|
|
80
78
|
this.avmCircuitHints.contractBytecodeHints.items.push(...forkedTrace.avmCircuitHints.contractBytecodeHints.items);
|
|
81
79
|
this.avmCircuitHints.publicDataReads.items.push(...forkedTrace.avmCircuitHints.publicDataReads.items);
|
|
@@ -92,30 +90,32 @@ export class PublicEnqueuedCallSideEffectTrace {
|
|
|
92
90
|
incrementSideEffectCounter() {
|
|
93
91
|
this.sideEffectCounter++;
|
|
94
92
|
}
|
|
95
|
-
tracePublicStorageRead(
|
|
96
|
-
if (!leafIndex.equals(Fr.zero())) {
|
|
97
|
-
// if we have real merkle hint content, make sure the value matches the the provided preimage
|
|
98
|
-
assert(leafPreimage.value.equals(value), 'Value mismatch when tracing in public data write');
|
|
99
|
-
}
|
|
93
|
+
tracePublicStorageRead(contractAddress, slot, value, leafPreimage = PublicDataTreeLeafPreimage.empty(), leafIndex = Fr.zero(), path = emptyPublicDataPath()) {
|
|
100
94
|
this.avmCircuitHints.publicDataReads.items.push(new AvmPublicDataReadTreeHint(leafPreimage, leafIndex, path));
|
|
101
|
-
this.log.debug(`
|
|
95
|
+
this.log.debug(`Tracing storage read (address=${contractAddress}, slot=${slot}): value=${value} (counter=${this.sideEffectCounter})`);
|
|
102
96
|
this.incrementSideEffectCounter();
|
|
103
97
|
}
|
|
104
|
-
tracePublicStorageWrite(contractAddress, slot, value, lowLeafPreimage = PublicDataTreeLeafPreimage.empty(), lowLeafIndex = Fr.zero(), lowLeafPath = emptyPublicDataPath(), newLeafPreimage = PublicDataTreeLeafPreimage.empty(), insertionPath = emptyPublicDataPath()) {
|
|
105
|
-
if (
|
|
106
|
-
|
|
107
|
-
|
|
98
|
+
tracePublicStorageWrite(contractAddress, slot, value, protocolWrite, lowLeafPreimage = PublicDataTreeLeafPreimage.empty(), lowLeafIndex = Fr.zero(), lowLeafPath = emptyPublicDataPath(), newLeafPreimage = PublicDataTreeLeafPreimage.empty(), insertionPath = emptyPublicDataPath()) {
|
|
99
|
+
if (protocolWrite) {
|
|
100
|
+
if (this.protocolPublicDataWritesLength + this.previousSideEffectArrayLengths.protocolPublicDataWrites >=
|
|
101
|
+
PROTOCOL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX) {
|
|
102
|
+
throw new SideEffectLimitReachedError('protocol public data (contract storage) write', PROTOCOL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX);
|
|
103
|
+
}
|
|
104
|
+
this.protocolPublicDataWritesLength++;
|
|
108
105
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
106
|
+
else {
|
|
107
|
+
if (this.userPublicDataWritesLength + this.previousSideEffectArrayLengths.publicDataWrites >=
|
|
108
|
+
MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX) {
|
|
109
|
+
throw new SideEffectLimitReachedError('public data (contract storage) write', MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX);
|
|
110
|
+
}
|
|
111
|
+
this.userPublicDataWritesLength++;
|
|
112
112
|
}
|
|
113
113
|
const leafSlot = computePublicDataTreeLeafSlot(contractAddress, slot);
|
|
114
114
|
this.publicDataWrites.push(new PublicDataUpdateRequest(leafSlot, value, this.sideEffectCounter));
|
|
115
115
|
// New hinting
|
|
116
116
|
const readHint = new AvmPublicDataReadTreeHint(lowLeafPreimage, lowLeafIndex, lowLeafPath);
|
|
117
117
|
this.avmCircuitHints.publicDataWrites.items.push(new AvmPublicDataWriteTreeHint(readHint, newLeafPreimage, insertionPath));
|
|
118
|
-
this.log.debug(`Traced public data write (address=${contractAddress}, slot=${slot}
|
|
118
|
+
this.log.debug(`Traced public data write (address=${contractAddress}, slot=${slot}): value=${value} (counter=${this.sideEffectCounter}, isProtocol:${protocolWrite})`);
|
|
119
119
|
this.incrementSideEffectCounter();
|
|
120
120
|
}
|
|
121
121
|
// TODO(8287): _exists can be removed once we have the vm properly handling the equality check
|
|
@@ -177,8 +177,9 @@ export class PublicEnqueuedCallSideEffectTrace {
|
|
|
177
177
|
this.log.debug(`NEW_UNENCRYPTED_LOG cnt: ${this.sideEffectCounter}`);
|
|
178
178
|
this.incrementSideEffectCounter();
|
|
179
179
|
}
|
|
180
|
-
traceGetContractInstance(contractAddress, exists, instance = SerializableContractInstance.default()) {
|
|
181
|
-
|
|
180
|
+
traceGetContractInstance(contractAddress, exists, instance = SerializableContractInstance.default(), lowLeafPreimage = NullifierLeafPreimage.empty(), lowLeafIndex = Fr.zero(), lowLeafPath = emptyNullifierPath()) {
|
|
181
|
+
const membershipHint = new AvmNullifierReadTreeHint(lowLeafPreimage, lowLeafIndex, lowLeafPath);
|
|
182
|
+
this.avmCircuitHints.contractInstances.items.push(new AvmContractInstanceHint(contractAddress, exists, instance.salt, instance.deployer, instance.contractClassId, instance.initializationHash, instance.publicKeys, membershipHint));
|
|
182
183
|
this.log.debug(`CONTRACT_INSTANCE cnt: ${this.sideEffectCounter}`);
|
|
183
184
|
this.incrementSideEffectCounter();
|
|
184
185
|
}
|
|
@@ -189,37 +190,13 @@ export class PublicEnqueuedCallSideEffectTrace {
|
|
|
189
190
|
artifactHash: Fr.zero(),
|
|
190
191
|
privateFunctionsRoot: Fr.zero(),
|
|
191
192
|
publicBytecodeCommitment: Fr.zero(),
|
|
192
|
-
}) {
|
|
193
|
-
const
|
|
193
|
+
}, lowLeafPreimage = NullifierLeafPreimage.empty(), lowLeafIndex = Fr.zero(), lowLeafPath = emptyNullifierPath()) {
|
|
194
|
+
const membershipHint = new AvmNullifierReadTreeHint(lowLeafPreimage, lowLeafIndex, lowLeafPath);
|
|
195
|
+
const instance = new AvmContractInstanceHint(contractAddress, exists, contractInstance.salt, contractInstance.deployer, contractInstance.contractClassId, contractInstance.initializationHash, contractInstance.publicKeys, membershipHint);
|
|
194
196
|
// We need to deduplicate the contract instances based on addresses
|
|
195
197
|
this.avmCircuitHints.contractBytecodeHints.items.push(new AvmContractBytecodeHints(bytecode, instance, contractClass));
|
|
196
198
|
this.log.debug(`Bytecode retrieval for contract execution traced: exists=${exists}, instance=${jsonStringify(contractInstance)}`);
|
|
197
199
|
}
|
|
198
|
-
/**
|
|
199
|
-
* Trace a nested call.
|
|
200
|
-
* Accept some results from a finished nested call's trace into this one.
|
|
201
|
-
*/
|
|
202
|
-
traceNestedCall(
|
|
203
|
-
/** The trace of the nested call. */
|
|
204
|
-
_nestedCallTrace,
|
|
205
|
-
/** The execution environment of the nested call. */
|
|
206
|
-
nestedEnvironment,
|
|
207
|
-
/** How much gas was available for this public execution. */
|
|
208
|
-
startGasLeft,
|
|
209
|
-
/** Bytecode used for this execution. */
|
|
210
|
-
_bytecode,
|
|
211
|
-
/** The call's results */
|
|
212
|
-
avmCallResults,
|
|
213
|
-
/** Function name for logging */
|
|
214
|
-
_functionName = 'unknown') {
|
|
215
|
-
// TODO(4805): check if some threshold is reached for max nested calls (to unique contracts?)
|
|
216
|
-
//
|
|
217
|
-
// Store end side effect counter before it gets updated by absorbing nested call trace
|
|
218
|
-
const endSideEffectCounter = new Fr(this.sideEffectCounter);
|
|
219
|
-
const gasUsed = new Gas(startGasLeft.daGas - avmCallResults.gasLeft.daGas, startGasLeft.l2Gas - avmCallResults.gasLeft.l2Gas);
|
|
220
|
-
this.avmCircuitHints.externalCalls.items.push(new AvmExternalCallHint(
|
|
221
|
-
/*success=*/ new Fr(avmCallResults.reverted ? 0 : 1), avmCallResults.output, gasUsed, endSideEffectCounter, nestedEnvironment.address));
|
|
222
|
-
}
|
|
223
200
|
/**
|
|
224
201
|
* Trace an enqueued call.
|
|
225
202
|
* Accept some results from a finished call's trace into this one.
|
|
@@ -278,6 +255,8 @@ export class PublicEnqueuedCallSideEffectTrace {
|
|
|
278
255
|
startGasUsed,
|
|
279
256
|
/** How much gas was available for this public execution. */
|
|
280
257
|
gasLimits,
|
|
258
|
+
/** Address of the fee payer. */
|
|
259
|
+
feePayer,
|
|
281
260
|
/** Call requests for setup phase. */
|
|
282
261
|
publicSetupCallRequests,
|
|
283
262
|
/** Call requests for app logic phase. */
|
|
@@ -295,7 +274,7 @@ export class PublicEnqueuedCallSideEffectTrace {
|
|
|
295
274
|
transactionFee,
|
|
296
275
|
/** The call's results */
|
|
297
276
|
reverted) {
|
|
298
|
-
return new AvmCircuitPublicInputs(globalVariables, startTreeSnapshots, startGasUsed, gasLimits, padArrayEnd(publicSetupCallRequests, PublicCallRequest.empty(), MAX_ENQUEUED_CALLS_PER_TX), padArrayEnd(publicAppLogicCallRequests, PublicCallRequest.empty(), MAX_ENQUEUED_CALLS_PER_TX), publicTeardownCallRequest,
|
|
277
|
+
return new AvmCircuitPublicInputs(globalVariables, startTreeSnapshots, startGasUsed, gasLimits, feePayer, padArrayEnd(publicSetupCallRequests, PublicCallRequest.empty(), MAX_ENQUEUED_CALLS_PER_TX), padArrayEnd(publicAppLogicCallRequests, PublicCallRequest.empty(), MAX_ENQUEUED_CALLS_PER_TX), publicTeardownCallRequest,
|
|
299
278
|
/*previousNonRevertibleAccumulatedDataArrayLengths=*/ PrivateToAvmAccumulatedDataArrayLengths.empty(),
|
|
300
279
|
/*previousRevertibleAccumulatedDataArrayLengths=*/ PrivateToAvmAccumulatedDataArrayLengths.empty(),
|
|
301
280
|
/*previousNonRevertibleAccumulatedDataArray=*/ PrivateToAvmAccumulatedData.empty(),
|
|
@@ -322,7 +301,7 @@ export class PublicEnqueuedCallSideEffectTrace {
|
|
|
322
301
|
return this.avmCircuitHints;
|
|
323
302
|
}
|
|
324
303
|
getAvmAccumulatedData() {
|
|
325
|
-
return new AvmAccumulatedData(padArrayEnd(this.noteHashes.map(n => n.value), Fr.zero(), MAX_NOTE_HASHES_PER_TX), padArrayEnd(this.nullifiers.map(n => n.value), Fr.zero(), MAX_NULLIFIERS_PER_TX), padArrayEnd(this.l2ToL1Messages, ScopedL2ToL1Message.empty(), MAX_L2_TO_L1_MSGS_PER_TX), padArrayEnd(this.unencryptedLogsHashes, ScopedLogHash.empty(), MAX_UNENCRYPTED_LOGS_PER_TX), padArrayEnd(this.publicDataWrites.map(w => new PublicDataWrite(w.leafSlot, w.newValue)), PublicDataWrite.empty(),
|
|
304
|
+
return new AvmAccumulatedData(padArrayEnd(this.noteHashes.map(n => n.value), Fr.zero(), MAX_NOTE_HASHES_PER_TX), padArrayEnd(this.nullifiers.map(n => n.value), Fr.zero(), MAX_NULLIFIERS_PER_TX), padArrayEnd(this.l2ToL1Messages, ScopedL2ToL1Message.empty(), MAX_L2_TO_L1_MSGS_PER_TX), padArrayEnd(this.unencryptedLogsHashes, ScopedLogHash.empty(), MAX_UNENCRYPTED_LOGS_PER_TX), padArrayEnd(this.publicDataWrites.map(w => new PublicDataWrite(w.leafSlot, w.newValue)), PublicDataWrite.empty(), MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX));
|
|
326
305
|
}
|
|
327
306
|
}
|
|
328
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5xdWV1ZWRfY2FsbF9zaWRlX2VmZmVjdF90cmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvZW5xdWV1ZWRfY2FsbF9zaWRlX2VmZmVjdF90cmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRixPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLGlCQUFpQixFQUNqQixzQkFBc0IsRUFDdEIsd0JBQXdCLEVBQ3hCLHVCQUF1QixFQUN2QixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQix3QkFBd0IsRUFDeEIseUJBQXlCLEVBQ3pCLHlCQUF5QixFQUN6QiwwQkFBMEIsRUFHMUIsVUFBVSxFQUNWLEdBQUcsRUFHSCx3QkFBd0IsRUFDeEIsYUFBYSxFQUNiLE9BQU8sRUFDUCx5QkFBeUIsRUFDekIsd0JBQXdCLEVBQ3hCLHNCQUFzQixFQUN0QixxQkFBcUIsRUFDckIsc0NBQXNDLEVBQ3RDLDJCQUEyQixFQUMzQixxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLFFBQVEsRUFDUixTQUFTLEVBQ1QscUJBQXFCLEVBQ3JCLHVCQUF1QixFQUN2QiwyQkFBMkIsRUFDM0IsdUNBQXVDLEVBQ3ZDLGlCQUFpQixFQUNqQiwwQkFBMEIsRUFDMUIsdUJBQXVCLEVBQ3ZCLGVBQWUsRUFDZixtQkFBbUIsRUFDbkIsYUFBYSxFQUViLDRCQUE0QixHQUU3QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNE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
|
|
307
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5xdWV1ZWRfY2FsbF9zaWRlX2VmZmVjdF90cmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvZW5xdWV1ZWRfY2FsbF9zaWRlX2VmZmVjdF90cmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRixPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLGlCQUFpQixFQUNqQixzQkFBc0IsRUFDdEIsd0JBQXdCLEVBQ3hCLHVCQUF1QixFQUN2QixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLHdCQUF3QixFQUN4Qix5QkFBeUIsRUFDekIseUJBQXlCLEVBQ3pCLDBCQUEwQixFQUcxQixVQUFVLEVBQ1YsR0FBRyxFQUdILHdCQUF3QixFQUN4QixhQUFhLEVBQ2IsT0FBTyxFQUNQLHlCQUF5QixFQUN6Qix3QkFBd0IsRUFDeEIsc0JBQXNCLEVBQ3RCLHFCQUFxQixFQUNyQixzQ0FBc0MsRUFDdEMsNENBQTRDLEVBQzVDLDJCQUEyQixFQUMzQixxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLFFBQVEsRUFDUixTQUFTLEVBQ1QscUJBQXFCLEVBQ3JCLDJDQUEyQyxFQUMzQyx1QkFBdUIsRUFDdkIsMkJBQTJCLEVBQzNCLHVDQUF1QyxFQUN2QyxpQkFBaUIsRUFDakIsMEJBQTBCLEVBQzFCLHVCQUF1QixFQUN2QixlQUFlLEVBQ2YsbUJBQW1CLEVBQ25CLGFBQWEsRUFFYiw0QkFBNEIsR0FFN0IsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor_metrics.d.ts","sourceRoot":"","sources":["../../src/public/executor_metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,eAAe,EACpB,KAAK,MAAM,
|
|
1
|
+
{"version":3,"file":"executor_metrics.d.ts","sourceRoot":"","sources":["../../src/public/executor_metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,eAAe,EACpB,KAAK,MAAM,EAGZ,MAAM,yBAAyB,CAAC;AAEjC,qBAAa,eAAe;IAC1B,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,aAAa,CAAY;gBAErB,MAAM,EAAE,eAAe,EAAE,IAAI,SAAmB;IAqB5D,wBAAwB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAe7E,+BAA+B;CAKhC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Attributes, Metrics, ValueType,
|
|
1
|
+
import { Attributes, Metrics, ValueType, } from '@aztec/telemetry-client';
|
|
2
2
|
export class ExecutorMetrics {
|
|
3
3
|
constructor(client, name = 'PublicExecutor') {
|
|
4
4
|
this.tracer = client.getTracer(name);
|
|
@@ -15,9 +15,6 @@ export class ExecutorMetrics {
|
|
|
15
15
|
description: 'Mana used per second',
|
|
16
16
|
unit: 'mana/s',
|
|
17
17
|
valueType: ValueType.INT,
|
|
18
|
-
advice: {
|
|
19
|
-
explicitBucketBoundaries: linearBuckets(0, 10000000, 10),
|
|
20
|
-
},
|
|
21
18
|
});
|
|
22
19
|
}
|
|
23
20
|
recordFunctionSimulation(durationMs, manaUsed, fnName) {
|
|
@@ -40,4 +37,4 @@ export class ExecutorMetrics {
|
|
|
40
37
|
});
|
|
41
38
|
}
|
|
42
39
|
}
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0b3JfbWV0cmljcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvZXhlY3V0b3JfbWV0cmljcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUVWLE9BQU8sRUFJUCxTQUFTLEdBQ1YsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxNQUFNLE9BQU8sZUFBZTtJQU0xQixZQUFZLE1BQXVCLEVBQUUsSUFBSSxHQUFHLGdCQUFnQjtRQUMxRCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVwQyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsZ0NBQWdDLEVBQUU7WUFDakYsV0FBVyxFQUFFLDhCQUE4QjtTQUM1QyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLG1DQUFtQyxFQUFFO1lBQ25GLFdBQVcsRUFBRSx5Q0FBeUM7WUFDdEQsSUFBSSxFQUFFLElBQUk7WUFDVixTQUFTLEVBQUUsU0FBUyxDQUFDLEdBQUc7U0FDekIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQywwQ0FBMEMsRUFBRTtZQUM3RixXQUFXLEVBQUUsc0JBQXNCO1lBQ25DLElBQUksRUFBRSxRQUFRO1lBQ2QsU0FBUyxFQUFFLFNBQVMsQ0FBQyxHQUFHO1NBQ3pCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxVQUFrQixFQUFFLFFBQWdCLEVBQUUsTUFBYztRQUMzRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDbEIsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSTtZQUNyQixDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLE1BQU07WUFDckMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsUUFBUTtTQUNqQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDOUMsSUFBSSxVQUFVLEdBQUcsQ0FBQyxJQUFJLFFBQVEsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNuQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDO1lBQ2pFLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRTtnQkFDdkMsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxNQUFNO2FBQ3RDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQsK0JBQStCO1FBQzdCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtZQUNsQixDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLO1NBQ3ZCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiJ9
|
|
@@ -1,9 +1,32 @@
|
|
|
1
1
|
import { PublicExecutionRequest, Tx } from '@aztec/circuit-types';
|
|
2
|
-
import { type AvmCircuitInputs, Gas } from '@aztec/circuits.js';
|
|
2
|
+
import { type AvmCircuitInputs, type ContractClassPublic, type ContractInstanceWithAddress, FunctionSelector, Gas, type PublicFunction } from '@aztec/circuits.js';
|
|
3
|
+
import { type ContractArtifact } from '@aztec/foundation/abi';
|
|
4
|
+
import { AztecAddress } from '@aztec/foundation/aztec-address';
|
|
3
5
|
import { Fr } from '@aztec/foundation/fields';
|
|
4
6
|
export declare function simulateAvmTestContractGenerateCircuitInputs(functionName: string, calldata?: Fr[], expectRevert?: boolean, assertionErrString?: string): Promise<AvmCircuitInputs>;
|
|
5
7
|
/**
|
|
6
8
|
* Craft a carrier transaction for a public call for simulation by PublicTxSimulator.
|
|
7
9
|
*/
|
|
8
10
|
export declare function createTxForPublicCall(executionRequest: PublicExecutionRequest, gasUsedByPrivate?: Gas, isTeardown?: boolean): Tx;
|
|
11
|
+
export declare class MockedAvmTestContractDataSource {
|
|
12
|
+
private fnName;
|
|
13
|
+
private bytecode;
|
|
14
|
+
fnSelector: FunctionSelector;
|
|
15
|
+
private publicFn;
|
|
16
|
+
private contractClass;
|
|
17
|
+
contractInstance: ContractInstanceWithAddress;
|
|
18
|
+
private bytecodeCommitment;
|
|
19
|
+
otherContractInstance: ContractInstanceWithAddress;
|
|
20
|
+
constructor();
|
|
21
|
+
getPublicFunction(_address: AztecAddress, _selector: FunctionSelector): Promise<PublicFunction>;
|
|
22
|
+
getBlockNumber(): Promise<number>;
|
|
23
|
+
getContractClass(_id: Fr): Promise<ContractClassPublic>;
|
|
24
|
+
getBytecodeCommitment(_id: Fr): Promise<Fr>;
|
|
25
|
+
addContractClass(_contractClass: ContractClassPublic): Promise<void>;
|
|
26
|
+
getContract(address: AztecAddress): Promise<ContractInstanceWithAddress>;
|
|
27
|
+
getContractClassIds(): Promise<Fr[]>;
|
|
28
|
+
getContractArtifact(_address: AztecAddress): Promise<ContractArtifact | undefined>;
|
|
29
|
+
getContractFunctionName(_address: AztecAddress, _selector: FunctionSelector): Promise<string>;
|
|
30
|
+
addContractArtifact(_address: AztecAddress, _contract: ContractArtifact): Promise<void>;
|
|
31
|
+
}
|
|
9
32
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/public/fixtures/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/public/fixtures/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,sBAAsB,EAAE,EAAE,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EACL,KAAK,gBAAgB,EAGrB,KAAK,mBAAmB,EACxB,KAAK,2BAA2B,EAGhC,gBAAgB,EAChB,GAAG,EAOH,KAAK,cAAc,EAOpB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,KAAK,gBAAgB,EAAyB,MAAM,uBAAuB,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAS,MAAM,0BAA0B,CAAC;AASrD,wBAAsB,4CAA4C,CAChE,YAAY,EAAE,MAAM,EACpB,QAAQ,GAAE,EAAE,EAAO,EACnB,YAAY,GAAE,OAAe,EAC7B,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,gBAAgB,CAAC,CA4D3B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,gBAAgB,EAAE,sBAAsB,EACxC,gBAAgB,GAAE,GAAiB,EACnC,UAAU,GAAE,OAAe,GAC1B,EAAE,CAgCJ;AAED,qBAAa,+BAA+B;IAC1C,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,QAAQ,CAAS;IAClB,UAAU,EAAE,gBAAgB,CAAC;IACpC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,aAAa,CAAsB;IACpC,gBAAgB,EAAE,2BAA2B,CAAC;IACrD,OAAO,CAAC,kBAAkB,CAAK;IACxB,qBAAqB,EAAE,2BAA2B,CAAC;;IA0B1D,iBAAiB,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC;IAI/F,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAIjC,gBAAgB,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAIvD,qBAAqB,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;IAI3C,gBAAgB,CAAC,cAAc,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpE,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAQxE,mBAAmB,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;IAIpC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAIlF,uBAAuB,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IAI7F,mBAAmB,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;CAGxF"}
|