@aztec/simulator 0.81.0 → 0.82.1-alpha-testnet.1
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/common/db_interfaces.d.ts +6 -12
- package/dest/common/db_interfaces.d.ts.map +1 -1
- package/dest/common/db_interfaces.js +1 -1
- package/dest/common/debug_fn_name.js +5 -2
- package/dest/common/message_load_oracle_inputs.d.ts +4 -0
- package/dest/common/message_load_oracle_inputs.d.ts.map +1 -1
- package/dest/common/message_load_oracle_inputs.js +9 -0
- package/dest/private/acvm/acvm.d.ts +6 -1
- package/dest/private/acvm/acvm.d.ts.map +1 -1
- package/dest/private/acvm/acvm.js +7 -13
- package/dest/private/acvm/deserialize.d.ts +0 -18
- package/dest/private/acvm/deserialize.d.ts.map +1 -1
- package/dest/private/acvm/deserialize.js +3 -24
- package/dest/private/acvm/oracle/oracle.d.ts +34 -34
- package/dest/private/acvm/oracle/oracle.d.ts.map +1 -1
- package/dest/private/acvm/oracle/oracle.js +116 -82
- package/dest/private/acvm/oracle/typed_oracle.d.ts +4 -4
- package/dest/private/acvm/oracle/typed_oracle.d.ts.map +1 -1
- package/dest/private/acvm/oracle/typed_oracle.js +8 -8
- package/dest/private/execution_data_provider.d.ts +3 -9
- package/dest/private/execution_data_provider.d.ts.map +1 -1
- package/dest/private/hashed_values_cache.d.ts +2 -2
- package/dest/private/hashed_values_cache.d.ts.map +1 -1
- package/dest/private/hashed_values_cache.js +5 -15
- package/dest/private/private_execution.d.ts +2 -2
- package/dest/private/private_execution.d.ts.map +1 -1
- package/dest/private/private_execution.js +4 -7
- package/dest/private/private_execution_oracle.d.ts +9 -37
- package/dest/private/private_execution_oracle.d.ts.map +1 -1
- package/dest/private/private_execution_oracle.js +32 -92
- package/dest/private/providers/acvm_native.d.ts +6 -4
- package/dest/private/providers/acvm_native.d.ts.map +1 -1
- package/dest/private/providers/acvm_native.js +6 -3
- package/dest/private/providers/acvm_wasm.d.ts +6 -7
- package/dest/private/providers/acvm_wasm.d.ts.map +1 -1
- package/dest/private/providers/acvm_wasm.js +13 -15
- package/dest/private/providers/acvm_wasm_with_blobs.d.ts +5 -5
- package/dest/private/providers/acvm_wasm_with_blobs.d.ts.map +1 -1
- package/dest/private/providers/acvm_wasm_with_blobs.js +7 -9
- package/dest/private/providers/circuit_recording/circuit_recorder.d.ts +90 -0
- package/dest/private/providers/circuit_recording/circuit_recorder.d.ts.map +1 -0
- package/dest/private/providers/circuit_recording/circuit_recorder.js +246 -0
- package/dest/private/providers/circuit_recording/simulation_provider_recorder_wrapper.d.ts +18 -0
- package/dest/private/providers/circuit_recording/simulation_provider_recorder_wrapper.d.ts.map +1 -0
- package/dest/private/providers/circuit_recording/simulation_provider_recorder_wrapper.js +39 -0
- package/dest/private/providers/simulation_provider.d.ts +21 -7
- package/dest/private/providers/simulation_provider.d.ts.map +1 -1
- package/dest/private/simulator.d.ts +3 -2
- package/dest/private/simulator.d.ts.map +1 -1
- package/dest/private/simulator.js +14 -4
- package/dest/private/unconstrained_execution.d.ts +2 -2
- package/dest/private/unconstrained_execution.d.ts.map +1 -1
- package/dest/private/unconstrained_execution.js +1 -2
- package/dest/private/unconstrained_execution_oracle.d.ts +1 -1
- package/dest/private/unconstrained_execution_oracle.d.ts.map +1 -1
- package/dest/private/unconstrained_execution_oracle.js +3 -3
- package/dest/public/avm/avm_simulator.d.ts.map +1 -1
- package/dest/public/avm/avm_simulator.js +0 -2
- package/dest/public/avm/fixtures/avm_simulation_tester.js +2 -2
- package/dest/public/avm/fixtures/index.d.ts +2 -1
- package/dest/public/avm/fixtures/index.d.ts.map +1 -1
- package/dest/public/avm/fixtures/index.js +7 -12
- package/dest/public/avm/fixtures/simple_contract_data_source.d.ts +2 -2
- package/dest/public/avm/fixtures/simple_contract_data_source.d.ts.map +1 -1
- package/dest/public/avm/fixtures/simple_contract_data_source.js +1 -1
- package/dest/public/avm/journal/journal.d.ts +2 -2
- package/dest/public/avm/journal/journal.d.ts.map +1 -1
- package/dest/public/avm/journal/journal.js +4 -4
- package/dest/public/avm/test_utils.js +1 -1
- package/dest/public/fixtures/public_tx_simulation_tester.d.ts +2 -2
- package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
- package/dest/public/fixtures/public_tx_simulation_tester.js +27 -47
- package/dest/public/fixtures/utils.d.ts +2 -2
- package/dest/public/fixtures/utils.d.ts.map +1 -1
- package/dest/public/fixtures/utils.js +18 -22
- package/dest/public/index.d.ts +1 -2
- package/dest/public/index.d.ts.map +1 -1
- package/dest/public/index.js +1 -1
- package/dest/public/public_db_sources.d.ts +1 -1
- 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/public_processor.js +1 -1
- package/dest/public/public_tx_simulator/public_tx_context.d.ts +3 -10
- package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/public_tx_context.js +4 -22
- package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +2 -3
- package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/public_tx_simulator.js +20 -24
- package/dest/public/utils.d.ts +2 -4
- package/dest/public/utils.d.ts.map +1 -1
- package/dest/public/utils.js +4 -21
- package/dest/testing.d.ts +2 -0
- package/dest/testing.d.ts.map +1 -0
- package/dest/testing.js +1 -0
- package/package.json +15 -14
- package/src/common/db_interfaces.ts +6 -13
- package/src/common/debug_fn_name.ts +5 -5
- package/src/common/message_load_oracle_inputs.ts +8 -0
- package/src/private/acvm/acvm.ts +8 -24
- package/src/private/acvm/deserialize.ts +3 -30
- package/src/private/acvm/oracle/oracle.ts +148 -144
- package/src/private/acvm/oracle/typed_oracle.ts +12 -14
- package/src/private/execution_data_provider.ts +6 -10
- package/src/private/hashed_values_cache.ts +6 -14
- package/src/private/private_execution.ts +11 -11
- package/src/private/private_execution_oracle.ts +39 -138
- package/src/private/providers/acvm_native.ts +17 -6
- package/src/private/providers/acvm_wasm.ts +27 -20
- package/src/private/providers/acvm_wasm_with_blobs.ts +15 -12
- package/src/private/providers/circuit_recording/circuit_recorder.ts +283 -0
- package/src/private/providers/circuit_recording/simulation_provider_recorder_wrapper.ts +82 -0
- package/src/private/providers/simulation_provider.ts +30 -5
- package/src/private/simulator.ts +19 -5
- package/src/private/unconstrained_execution.ts +8 -4
- package/src/private/unconstrained_execution_oracle.ts +3 -6
- package/src/public/avm/avm_simulator.ts +0 -2
- package/src/public/avm/fixtures/avm_simulation_tester.ts +2 -2
- package/src/public/avm/fixtures/index.ts +15 -17
- package/src/public/avm/fixtures/simple_contract_data_source.ts +2 -2
- package/src/public/avm/journal/journal.ts +7 -7
- package/src/public/avm/test_utils.ts +1 -1
- package/src/public/fixtures/public_tx_simulation_tester.ts +31 -88
- package/src/public/fixtures/utils.ts +28 -26
- package/src/public/index.ts +1 -2
- package/src/public/public_db_sources.ts +4 -4
- package/src/public/public_processor/public_processor.ts +1 -1
- package/src/public/public_tx_simulator/public_tx_context.ts +12 -32
- package/src/public/public_tx_simulator/public_tx_simulator.ts +24 -30
- package/src/public/utils.ts +5 -21
- package/src/testing.ts +1 -0
- package/dest/public/avm/bytecode_utils.d.ts +0 -5
- package/dest/public/avm/bytecode_utils.d.ts.map +0 -1
- package/dest/public/avm/bytecode_utils.js +0 -17
- package/dest/public/execution.d.ts +0 -108
- package/dest/public/execution.d.ts.map +0 -1
- package/dest/public/execution.js +0 -9
- package/src/public/avm/bytecode_utils.ts +0 -17
- package/src/public/execution.ts +0 -140
|
@@ -4,7 +4,7 @@ import { GasFees } from '@aztec/stdlib/gas';
|
|
|
4
4
|
import { GlobalVariables } from '@aztec/stdlib/tx';
|
|
5
5
|
import { NativeWorldStateService } from '@aztec/world-state';
|
|
6
6
|
import { SideEffectTrace } from '../../../public/side_effect_trace.js';
|
|
7
|
-
import {
|
|
7
|
+
import { getContractFunctionAbi, getFunctionSelector, initContext, initExecutionEnvironment, resolveContractAssertionMessage } from '../../avm/fixtures/index.js';
|
|
8
8
|
import { AvmPersistableStateManager } from '../../avm/journal/journal.js';
|
|
9
9
|
import { DEFAULT_BLOCK_NUMBER } from '../../fixtures/public_tx_simulation_tester.js';
|
|
10
10
|
import { PublicContractsDB, PublicTreesDB } from '../../public_db_sources.js';
|
|
@@ -40,7 +40,7 @@ const DEFAULT_GAS_FEES = new GasFees(2, 3);
|
|
|
40
40
|
throw new Error(`Contract not found at address: ${address}`);
|
|
41
41
|
}
|
|
42
42
|
const fnSelector = await getFunctionSelector(fnName, contractArtifact);
|
|
43
|
-
const fnAbi =
|
|
43
|
+
const fnAbi = getContractFunctionAbi(fnName, contractArtifact);
|
|
44
44
|
const encodedArgs = encodeArguments(fnAbi, args);
|
|
45
45
|
const calldata = [
|
|
46
46
|
fnSelector.toField(),
|
|
@@ -56,7 +56,8 @@ export declare function randomMemoryUint32s(length: number): Uint32[];
|
|
|
56
56
|
export declare function randomMemoryUint64s(length: number): Uint64[];
|
|
57
57
|
export declare function randomMemoryFields(length: number): Field[];
|
|
58
58
|
export declare function getFunctionSelector(functionName: string, contractArtifact: ContractArtifact): Promise<FunctionSelector>;
|
|
59
|
-
export declare function getContractFunctionArtifact(functionName: string, contractArtifact: ContractArtifact): FunctionArtifact |
|
|
59
|
+
export declare function getContractFunctionArtifact(functionName: string, contractArtifact: ContractArtifact): FunctionArtifact | undefined;
|
|
60
|
+
export declare function getContractFunctionAbi(functionName: string, contractArtifact: ContractArtifact): FunctionAbi | undefined;
|
|
60
61
|
export declare function resolveContractAssertionMessage(functionName: string, revertReason: AvmRevertReason, output: Fr[], contractArtifact: ContractArtifact): string | undefined;
|
|
61
62
|
export declare function getAvmTestContractFunctionSelector(functionName: string): Promise<FunctionSelector>;
|
|
62
63
|
export declare function getAvmGadgetsTestContractFunctionSelector(functionName: string): Promise<FunctionSelector>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/fixtures/index.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/fixtures/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DEPLOYER_CONTRACT_ADDRESS, MAX_L2_GAS_PER_TX_PUBLIC_PORTION
|
|
1
|
+
import { DEPLOYER_CONTRACT_ADDRESS, MAX_L2_GAS_PER_TX_PUBLIC_PORTION } from '@aztec/constants';
|
|
2
2
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
3
3
|
import { Fr } from '@aztec/foundation/fields';
|
|
4
4
|
import { AvmGadgetsTestContract } from '@aztec/noir-contracts.js/AvmGadgetsTest';
|
|
@@ -85,12 +85,10 @@ export function getFunctionSelector(functionName, contractArtifact) {
|
|
|
85
85
|
return FunctionSelector.fromNameAndParameters(fnArtifact.name, params);
|
|
86
86
|
}
|
|
87
87
|
export function getContractFunctionArtifact(functionName, contractArtifact) {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
}
|
|
93
|
-
return artifact;
|
|
88
|
+
return contractArtifact.functions.find((f)=>f.name === functionName);
|
|
89
|
+
}
|
|
90
|
+
export function getContractFunctionAbi(functionName, contractArtifact) {
|
|
91
|
+
return contractArtifact.functions.find((f)=>f.name === functionName) ?? contractArtifact.nonDispatchPublicFunctions.find((f)=>f.name === functionName);
|
|
94
92
|
}
|
|
95
93
|
export function resolveContractAssertionMessage(functionName, revertReason, output, contractArtifact) {
|
|
96
94
|
traverseCauseChain(revertReason, (cause)=>{
|
|
@@ -153,11 +151,8 @@ export function resolveAvmGadgetsTestContractAssertionMessage(functionName, reve
|
|
|
153
151
|
* @returns The contract class, instance, and contract address nullifier.
|
|
154
152
|
*/ export async function createContractClassAndInstance(constructorArgs, deployer, contractArtifact, seed = 0, originalContractClassId) {
|
|
155
153
|
const bytecode = getContractFunctionArtifact(PUBLIC_DISPATCH_FN_NAME, contractArtifact).bytecode;
|
|
156
|
-
const contractClass = await makeContractClassPublic(seed,
|
|
157
|
-
|
|
158
|
-
selector: new FunctionSelector(PUBLIC_DISPATCH_SELECTOR)
|
|
159
|
-
});
|
|
160
|
-
const constructorAbi = getContractFunctionArtifact('constructor', contractArtifact);
|
|
154
|
+
const contractClass = await makeContractClassPublic(seed, bytecode);
|
|
155
|
+
const constructorAbi = getContractFunctionAbi('constructor', contractArtifact);
|
|
161
156
|
const { publicKeys } = await deriveKeys(Fr.random());
|
|
162
157
|
const initializationHash = await computeInitializationHash(constructorAbi, constructorArgs);
|
|
163
158
|
const contractInstance = originalContractClassId === undefined ? await makeContractInstanceFromClassId(contractClass.id, seed, {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Fr } from '@aztec/foundation/fields';
|
|
2
|
-
import {
|
|
2
|
+
import type { ContractArtifact, FunctionSelector } from '@aztec/stdlib/abi';
|
|
3
3
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
4
4
|
import type { ContractClassPublic, ContractDataSource, ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
5
5
|
/**
|
|
@@ -26,7 +26,7 @@ export declare class SimpleContractDataSource implements ContractDataSource {
|
|
|
26
26
|
getContract(address: AztecAddress): Promise<ContractInstanceWithAddress | undefined>;
|
|
27
27
|
getContractClassIds(): Promise<Fr[]>;
|
|
28
28
|
getContractArtifact(address: AztecAddress): Promise<ContractArtifact | undefined>;
|
|
29
|
-
|
|
29
|
+
getDebugFunctionName(_address: AztecAddress, _selector: FunctionSelector): Promise<string>;
|
|
30
30
|
registerContractFunctionSignatures(_address: AztecAddress, _signatures: string[]): Promise<void>;
|
|
31
31
|
addContractClass(contractClass: ContractClassPublic): Promise<void>;
|
|
32
32
|
addContractInstance(contractInstance: ContractInstanceWithAddress): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simple_contract_data_source.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/fixtures/simple_contract_data_source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"simple_contract_data_source.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/fixtures/simple_contract_data_source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAInH;;;;;;GAMG;AACH,qBAAa,wBAAyB,YAAW,kBAAkB;IAC1D,MAAM,yCAA+C;IAG5D,OAAO,CAAC,eAAe,CAA+C;IAEtE,OAAO,CAAC,iBAAiB,CAAuD;IAEhF,OAAO,CAAC,iBAAiB,CAA4C;IAIrE;;;OAGG;IACG,cAAc,CAClB,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,mBAAmB,EAClC,gBAAgB,EAAE,2BAA2B;IAO/C,mBAAmB,CAAC,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAMlE,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAIjC,gBAAgB,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAIlE,qBAAqB,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC;IAIvD,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC;IAIpF,mBAAmB,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;IAI9B,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAWvF,oBAAoB,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IAI1F,kCAAkC,CAAC,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhG,gBAAgB,CAAC,aAAa,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnE,mBAAmB,CAAC,gBAAgB,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC;CAIlF"}
|
|
@@ -54,7 +54,7 @@ import { PUBLIC_DISPATCH_FN_NAME } from './index.js';
|
|
|
54
54
|
this.logger.debug(`Contract class ID: ${contractInstance.currentContractClassId}`);
|
|
55
55
|
return Promise.resolve(this.contractArtifacts.get(contractInstance.currentContractClassId.toString()));
|
|
56
56
|
}
|
|
57
|
-
|
|
57
|
+
getDebugFunctionName(_address, _selector) {
|
|
58
58
|
return Promise.resolve(PUBLIC_DISPATCH_FN_NAME);
|
|
59
59
|
}
|
|
60
60
|
registerContractFunctionSignatures(_address, _signatures) {
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
/// <reference types="node" resolution-mode="require"/>
|
|
3
3
|
import { Fr } from '@aztec/foundation/fields';
|
|
4
4
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
5
|
+
import type { ContractClassPublicWithCommitment } from '@aztec/stdlib/contract';
|
|
5
6
|
import { SerializableContractInstance } from '@aztec/stdlib/contract';
|
|
6
|
-
import type { ContractClassWithCommitment } from '@aztec/stdlib/contract';
|
|
7
7
|
import type { PublicCallRequest } from '@aztec/stdlib/kernel';
|
|
8
8
|
import type { PublicTreesDB } from '../../../public/public_db_sources.js';
|
|
9
9
|
import type { PublicContractsDBInterface } from '../../../server.js';
|
|
@@ -144,7 +144,7 @@ export declare class AvmPersistableStateManager {
|
|
|
144
144
|
* @param classId - class id to retrieve.
|
|
145
145
|
* @returns the contract class or undefined if it does not exist.
|
|
146
146
|
*/
|
|
147
|
-
getContractClass(classId: Fr): Promise<
|
|
147
|
+
getContractClass(classId: Fr): Promise<ContractClassPublicWithCommitment | undefined>;
|
|
148
148
|
/**
|
|
149
149
|
* Get a contract's bytecode from the contracts DB, also trace the contract class and instance indirectly.
|
|
150
150
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"journal.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/journal/journal.ts"],"names":[],"mappings":";;AASA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAK9C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"journal.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/journal/journal.ts"],"names":[],"mappings":"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"}
|
|
@@ -137,7 +137,7 @@ import { PublicStorage } from './public_storage.js';
|
|
|
137
137
|
* @param leafIndex - the leaf index being checked
|
|
138
138
|
* @returns true if the note hash exists at the given leaf index, false otherwise
|
|
139
139
|
*/ async checkNoteHashExists(contractAddress, noteHash, leafIndex) {
|
|
140
|
-
const gotLeafValue = await this.treesDB.
|
|
140
|
+
const gotLeafValue = await this.treesDB.getNoteHash(leafIndex.toBigInt()) ?? Fr.ZERO;
|
|
141
141
|
const exists = gotLeafValue.equals(noteHash);
|
|
142
142
|
this.log.trace(`noteHashes(${contractAddress})@${noteHash} ?? leafIndex: ${leafIndex} | gotLeafValue: ${gotLeafValue}, exists: ${exists}.`);
|
|
143
143
|
return Promise.resolve(exists);
|
|
@@ -320,8 +320,8 @@ import { PublicStorage } from './public_storage.js';
|
|
|
320
320
|
* @returns the contract class or undefined if it does not exist.
|
|
321
321
|
*/ async getContractClass(classId) {
|
|
322
322
|
this.log.trace(`Getting contract class for id ${classId}`);
|
|
323
|
-
const
|
|
324
|
-
const exists =
|
|
323
|
+
const contractClass = await this.contractsDB.getContractClass(classId);
|
|
324
|
+
const exists = contractClass !== undefined;
|
|
325
325
|
let extendedClass = undefined;
|
|
326
326
|
// Note: We currently do not generate info to check the nullifier tree, because
|
|
327
327
|
// this is not needed for our use cases.
|
|
@@ -331,7 +331,7 @@ import { PublicStorage } from './public_storage.js';
|
|
|
331
331
|
const bytecodeCommitment = await this.contractsDB.getBytecodeCommitment(classId);
|
|
332
332
|
assert(bytecodeCommitment, `Bytecode commitment was not found in DB for contract class (${classId}). This should not happen!`);
|
|
333
333
|
extendedClass = {
|
|
334
|
-
...
|
|
334
|
+
...contractClass,
|
|
335
335
|
publicBytecodeCommitment: bytecodeCommitment
|
|
336
336
|
};
|
|
337
337
|
} else {
|
|
@@ -13,7 +13,7 @@ export function mockStorageReadWithMap(worldStateDB, mockedStorage) {
|
|
|
13
13
|
worldStateDB.storageRead.mockImplementation((_address, slot)=>Promise.resolve(mockedStorage.get(slot.toBigInt()) ?? Fr.ZERO));
|
|
14
14
|
}
|
|
15
15
|
export function mockNoteHashExists(worldStateDB, _leafIndex, value) {
|
|
16
|
-
worldStateDB.
|
|
16
|
+
worldStateDB.getNoteHash.mockImplementation((index)=>{
|
|
17
17
|
if (index == _leafIndex.toBigInt()) {
|
|
18
18
|
return Promise.resolve(value);
|
|
19
19
|
} else {
|
|
@@ -2,8 +2,7 @@ import { Fr } from '@aztec/foundation/fields';
|
|
|
2
2
|
import { type ContractArtifact } from '@aztec/stdlib/abi';
|
|
3
3
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
4
4
|
import type { MerkleTreeWriteOperations } from '@aztec/stdlib/interfaces/server';
|
|
5
|
-
import { type Tx } from '@aztec/stdlib/tx';
|
|
6
|
-
import { GlobalVariables } from '@aztec/stdlib/tx';
|
|
5
|
+
import { GlobalVariables, type Tx } from '@aztec/stdlib/tx';
|
|
7
6
|
import { BaseAvmSimulationTester } from '../avm/fixtures/base_avm_simulation_tester.js';
|
|
8
7
|
import { SimpleContractDataSource } from '../avm/fixtures/simple_contract_data_source.js';
|
|
9
8
|
import { type PublicTxResult } from '../public_tx_simulator/public_tx_simulator.js';
|
|
@@ -21,6 +20,7 @@ export type TestEnqueuedCall = {
|
|
|
21
20
|
* transactions.
|
|
22
21
|
*/
|
|
23
22
|
export declare class PublicTxSimulationTester extends BaseAvmSimulationTester {
|
|
23
|
+
#private;
|
|
24
24
|
private merkleTree;
|
|
25
25
|
private txCount;
|
|
26
26
|
constructor(merkleTree: MerkleTreeWriteOperations, contractDataSource: SimpleContractDataSource);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public_tx_simulation_tester.d.ts","sourceRoot":"","sources":["../../../src/public/fixtures/public_tx_simulation_tester.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,KAAK,gBAAgB,
|
|
1
|
+
{"version":3,"file":"public_tx_simulation_tester.d.ts","sourceRoot":"","sources":["../../../src/public/fixtures/public_tx_simulation_tester.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,KAAK,gBAAgB,EAAmB,MAAM,mBAAmB,CAAC;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAEjF,OAAO,EAAE,eAAe,EAAiC,KAAK,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAG3F,OAAO,EAAE,uBAAuB,EAAE,MAAM,+CAA+C,CAAC;AAExF,OAAO,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAC;AAE1F,OAAO,EAAE,KAAK,cAAc,EAAqB,MAAM,+CAA+C,CAAC;AAKvG,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,CAAC;AAEF;;;;GAIG;AACH,qBAAa,wBAAyB,SAAQ,uBAAuB;;IAGvD,OAAO,CAAC,UAAU;IAF9B,OAAO,CAAC,OAAO,CAAK;gBAEA,UAAU,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,wBAAwB;WAInF,MAAM,IAAI,OAAO,CAAC,wBAAwB,CAAC;IAMlD,QAAQ,CACnB,MAAM,EAAE,YAAY,EACpB,UAAU,GAAE,gBAAgB,EAAO,EACnC,QAAQ,GAAE,gBAAgB,EAAO,EACjC,YAAY,CAAC,EAAE,gBAAgB,EAC/B,QAAQ,GAAE,YAAqB,EAE/B,cAAc,KAAkC,GAC/C,OAAO,CAAC,EAAE,CAAC;IAUD,UAAU,CACrB,MAAM,EAAE,YAAY,EACpB,UAAU,GAAE,gBAAgB,EAAO,EACnC,QAAQ,GAAE,gBAAgB,EAAO,EACjC,YAAY,CAAC,EAAE,gBAAgB,EAC/B,QAAQ,GAAE,YAAqB,EAE/B,cAAc,KAAkC,EAChD,OAAO,kBAAmB,GACzB,OAAO,CAAC,cAAc,CAAC;CAoC3B;AAED,wBAAgB,cAAc,oBAM7B"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { asyncMap } from '@aztec/foundation/async-map';
|
|
2
2
|
import { Fr } from '@aztec/foundation/fields';
|
|
3
|
-
import {
|
|
3
|
+
import { encodeArguments } from '@aztec/stdlib/abi';
|
|
4
4
|
import { GasFees } from '@aztec/stdlib/gas';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
5
|
+
import { PublicCallRequest } from '@aztec/stdlib/kernel';
|
|
6
|
+
import { GlobalVariables, PublicCallRequestWithCalldata } from '@aztec/stdlib/tx';
|
|
7
7
|
import { NativeWorldStateService } from '@aztec/world-state';
|
|
8
8
|
import { BaseAvmSimulationTester } from '../avm/fixtures/base_avm_simulation_tester.js';
|
|
9
|
-
import {
|
|
9
|
+
import { getContractFunctionAbi, getFunctionSelector } from '../avm/fixtures/index.js';
|
|
10
10
|
import { SimpleContractDataSource } from '../avm/fixtures/simple_contract_data_source.js';
|
|
11
11
|
import { PublicContractsDB, PublicTreesDB } from '../public_db_sources.js';
|
|
12
12
|
import { PublicTxSimulator } from '../public_tx_simulator/public_tx_simulator.js';
|
|
13
|
-
import { createTxForPublicCalls } from './
|
|
13
|
+
import { createTxForPublicCalls } from './utils.js';
|
|
14
14
|
const TIMESTAMP = new Fr(99833);
|
|
15
15
|
const DEFAULT_GAS_FEES = new GasFees(2, 3);
|
|
16
16
|
export const DEFAULT_BLOCK_NUMBER = 42;
|
|
@@ -30,36 +30,10 @@ export const DEFAULT_BLOCK_NUMBER = 42;
|
|
|
30
30
|
return new PublicTxSimulationTester(merkleTree, contractDataSource);
|
|
31
31
|
}
|
|
32
32
|
async createTx(sender, setupCalls = [], appCalls = [], teardownCall, feePayer = sender, /* need some unique first nullifier for note-nonce computations */ firstNullifier = new Fr(420000 + this.txCount++)) {
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
if (!contractArtifact) {
|
|
38
|
-
throw new Error(`Contract artifact not found for address: ${address}`);
|
|
39
|
-
}
|
|
40
|
-
const req = await executionRequestForCall(contractArtifact, sender, address, setupCalls[i].fnName, setupCalls[i].args, setupCalls[i].isStaticCall);
|
|
41
|
-
setupExecutionRequests.push(req);
|
|
42
|
-
}
|
|
43
|
-
const appExecutionRequests = [];
|
|
44
|
-
for(let i = 0; i < appCalls.length; i++){
|
|
45
|
-
const address = appCalls[i].address;
|
|
46
|
-
const contractArtifact = appCalls[i].contractArtifact || await this.contractDataSource.getContractArtifact(address);
|
|
47
|
-
if (!contractArtifact) {
|
|
48
|
-
throw new Error(`Contract artifact not found for address: ${address}`);
|
|
49
|
-
}
|
|
50
|
-
const req = await executionRequestForCall(contractArtifact, sender, address, appCalls[i].fnName, appCalls[i].args, appCalls[i].isStaticCall);
|
|
51
|
-
appExecutionRequests.push(req);
|
|
52
|
-
}
|
|
53
|
-
let teardownExecutionRequest = undefined;
|
|
54
|
-
if (teardownCall) {
|
|
55
|
-
const address = teardownCall.address;
|
|
56
|
-
const contractArtifact = teardownCall.contractArtifact || await this.contractDataSource.getContractArtifact(address);
|
|
57
|
-
if (!contractArtifact) {
|
|
58
|
-
throw new Error(`Contract artifact not found for address: ${address}`);
|
|
59
|
-
}
|
|
60
|
-
teardownExecutionRequest = await executionRequestForCall(contractArtifact, sender, address, teardownCall.fnName, teardownCall.args, teardownCall.isStaticCall);
|
|
61
|
-
}
|
|
62
|
-
return await createTxForPublicCalls(firstNullifier, setupExecutionRequests, appExecutionRequests, teardownExecutionRequest, feePayer);
|
|
33
|
+
const setupCallRequests = await asyncMap(setupCalls, (call)=>this.#createPubicCallRequestForCall(call, sender));
|
|
34
|
+
const appCallRequests = await asyncMap(appCalls, (call)=>this.#createPubicCallRequestForCall(call, sender));
|
|
35
|
+
const teardownCallRequest = teardownCall ? await this.#createPubicCallRequestForCall(teardownCall, sender) : undefined;
|
|
36
|
+
return createTxForPublicCalls(firstNullifier, setupCallRequests, appCallRequests, teardownCallRequest, feePayer);
|
|
63
37
|
}
|
|
64
38
|
async simulateTx(sender, setupCalls = [], appCalls = [], teardownCall, feePayer = sender, /* need some unique first nullifier for note-nonce computations */ firstNullifier = new Fr(420000 + this.txCount++), globals = defaultGlobals()) {
|
|
65
39
|
const tx = await this.createTx(sender, setupCalls, appCalls, teardownCall, feePayer, firstNullifier);
|
|
@@ -73,17 +47,23 @@ export const DEFAULT_BLOCK_NUMBER = 42;
|
|
|
73
47
|
this.logger.debug(`Public transaction simulation took ${endTime - startTime}ms`);
|
|
74
48
|
return avmResult;
|
|
75
49
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
fnSelector.
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
50
|
+
async #createPubicCallRequestForCall(call, sender) {
|
|
51
|
+
const address = call.address;
|
|
52
|
+
const contractArtifact = call.contractArtifact || await this.contractDataSource.getContractArtifact(address);
|
|
53
|
+
if (!contractArtifact) {
|
|
54
|
+
throw new Error(`Contract artifact not found for address: ${address}`);
|
|
55
|
+
}
|
|
56
|
+
const fnSelector = await getFunctionSelector(call.fnName, contractArtifact);
|
|
57
|
+
const fnAbi = getContractFunctionAbi(call.fnName, contractArtifact);
|
|
58
|
+
const encodedArgs = encodeArguments(fnAbi, call.args);
|
|
59
|
+
const calldata = [
|
|
60
|
+
fnSelector.toField(),
|
|
61
|
+
...encodedArgs
|
|
62
|
+
];
|
|
63
|
+
const isStaticCall = call.isStaticCall ?? false;
|
|
64
|
+
const request = await PublicCallRequest.fromCalldata(sender, address, isStaticCall, calldata);
|
|
65
|
+
return new PublicCallRequestWithCalldata(request, calldata);
|
|
66
|
+
}
|
|
87
67
|
}
|
|
88
68
|
export function defaultGlobals() {
|
|
89
69
|
const globals = GlobalVariables.empty();
|
|
@@ -2,11 +2,11 @@ import { Fr } from '@aztec/foundation/fields';
|
|
|
2
2
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
3
3
|
import type { ContractClassPublic, ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
4
4
|
import { Gas } from '@aztec/stdlib/gas';
|
|
5
|
-
import {
|
|
5
|
+
import { PublicCallRequestWithCalldata, Tx } from '@aztec/stdlib/tx';
|
|
6
6
|
/**
|
|
7
7
|
* Craft a carrier transaction for some public calls for simulation by PublicTxSimulator.
|
|
8
8
|
*/
|
|
9
|
-
export declare function createTxForPublicCalls(firstNullifier: Fr,
|
|
9
|
+
export declare function createTxForPublicCalls(firstNullifier: Fr, setupCallRequests: PublicCallRequestWithCalldata[], appCallRequests: PublicCallRequestWithCalldata[], teardownCallRequest?: PublicCallRequestWithCalldata, feePayer?: AztecAddress, gasUsedByPrivate?: Gas): Tx;
|
|
10
10
|
export declare function createTxForPrivateOnly(feePayer?: AztecAddress, gasUsedByPrivate?: Gas): Tx;
|
|
11
11
|
export declare function addNewContractClassToTx(tx: Tx, contractClass: ContractClassPublic, skipNullifierInsertion?: boolean): Promise<void>;
|
|
12
12
|
export declare function addNewContractInstanceToTx(tx: Tx, contractInstance: ContractInstanceWithAddress, skipNullifierInsertion?: boolean): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/public/fixtures/utils.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAI9C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAC/F,OAAO,EAAE,GAAG,EAAwB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/public/fixtures/utils.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAI9C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAC/F,OAAO,EAAE,GAAG,EAAwB,MAAM,mBAAmB,CAAC;AAY9D,OAAO,EAGL,6BAA6B,EAC7B,EAAE,EAGH,MAAM,kBAAkB,CAAC;AAI1B;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,cAAc,EAAE,EAAE,EAClB,iBAAiB,EAAE,6BAA6B,EAAE,EAClD,eAAe,EAAE,6BAA6B,EAAE,EAChD,mBAAmB,CAAC,EAAE,6BAA6B,EACnD,QAAQ,eAAsB,EAC9B,gBAAgB,GAAE,GAAiB,GAClC,EAAE,CA6CJ;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,eAAsB,EAAE,gBAAgB,GAAE,GAAqB,GAAG,EAAE,CAoBlH;AAED,wBAAsB,uBAAuB,CAC3C,EAAE,EAAE,EAAE,EACN,aAAa,EAAE,mBAAmB,EAClC,sBAAsB,UAAQ,iBAiC/B;AAED,wBAAsB,0BAA0B,CAC9C,EAAE,EAAE,EAAE,EACN,gBAAgB,EAAE,2BAA2B,EAC7C,sBAAsB,UAAQ,iBA0C/B"}
|
|
@@ -8,15 +8,13 @@ import { Gas, GasFees, GasSettings } from '@aztec/stdlib/gas';
|
|
|
8
8
|
import { siloNullifier } from '@aztec/stdlib/hash';
|
|
9
9
|
import { PartialPrivateTailPublicInputsForPublic, PartialPrivateTailPublicInputsForRollup, PrivateKernelTailCircuitPublicInputs, RollupValidationRequests, ScopedLogHash, countAccumulatedItems } from '@aztec/stdlib/kernel';
|
|
10
10
|
import { ContractClassLog, PrivateLog } from '@aztec/stdlib/logs';
|
|
11
|
-
import {
|
|
12
|
-
import { BlockHeader, TxConstantData, TxContext } from '@aztec/stdlib/tx';
|
|
11
|
+
import { ClientIvcProof } from '@aztec/stdlib/proofs';
|
|
12
|
+
import { BlockHeader, HashedValues, Tx, TxConstantData, TxContext } from '@aztec/stdlib/tx';
|
|
13
13
|
import { strict as assert } from 'assert';
|
|
14
14
|
/**
|
|
15
15
|
* Craft a carrier transaction for some public calls for simulation by PublicTxSimulator.
|
|
16
|
-
*/ export
|
|
17
|
-
assert(
|
|
18
|
-
const setupCallRequests = await Promise.all(setupExecutionRequests.map((er)=>er.toCallRequest()));
|
|
19
|
-
const appCallRequests = await Promise.all(appExecutionRequests.map((er)=>er.toCallRequest()));
|
|
16
|
+
*/ export function createTxForPublicCalls(firstNullifier, setupCallRequests, appCallRequests, teardownCallRequest, feePayer = AztecAddress.zero(), gasUsedByPrivate = Gas.empty()) {
|
|
17
|
+
assert(setupCallRequests.length > 0 || appCallRequests.length > 0 || teardownCallRequest !== undefined, "Can't create public tx with no enqueued calls");
|
|
20
18
|
// use max limits
|
|
21
19
|
const gasLimits = new Gas(DEFAULT_GAS_LIMIT, MAX_L2_GAS_PER_TX_PUBLIC_PORTION);
|
|
22
20
|
const forPublic = PartialPrivateTailPublicInputsForPublic.empty();
|
|
@@ -24,30 +22,28 @@ import { strict as assert } from 'assert';
|
|
|
24
22
|
forPublic.nonRevertibleAccumulatedData.nullifiers[0] = firstNullifier;
|
|
25
23
|
// We reverse order because the simulator expects it to be like a "stack" of calls to pop from
|
|
26
24
|
for(let i = setupCallRequests.length - 1; i >= 0; i--){
|
|
27
|
-
forPublic.nonRevertibleAccumulatedData.publicCallRequests[i] = setupCallRequests[i];
|
|
25
|
+
forPublic.nonRevertibleAccumulatedData.publicCallRequests[setupCallRequests.length - i - 1] = setupCallRequests[i].request;
|
|
28
26
|
}
|
|
29
27
|
for(let i = appCallRequests.length - 1; i >= 0; i--){
|
|
30
|
-
forPublic.revertibleAccumulatedData.publicCallRequests[i] = appCallRequests[i];
|
|
28
|
+
forPublic.revertibleAccumulatedData.publicCallRequests[appCallRequests.length - i - 1] = appCallRequests[i].request;
|
|
31
29
|
}
|
|
32
|
-
if (
|
|
33
|
-
forPublic.publicTeardownCallRequest =
|
|
30
|
+
if (teardownCallRequest) {
|
|
31
|
+
forPublic.publicTeardownCallRequest = teardownCallRequest.request;
|
|
34
32
|
}
|
|
35
33
|
const maxFeesPerGas = feePayer.isZero() ? GasFees.empty() : new GasFees(10, 10);
|
|
36
|
-
const teardownGasLimits =
|
|
34
|
+
const teardownGasLimits = teardownCallRequest ? gasLimits : Gas.empty();
|
|
37
35
|
const gasSettings = new GasSettings(gasLimits, teardownGasLimits, maxFeesPerGas, GasFees.empty());
|
|
38
36
|
const txContext = new TxContext(Fr.zero(), Fr.zero(), gasSettings);
|
|
39
37
|
const constantData = new TxConstantData(BlockHeader.empty(), txContext, Fr.zero(), Fr.zero());
|
|
40
38
|
const txData = new PrivateKernelTailCircuitPublicInputs(constantData, RollupValidationRequests.empty(), /*gasUsed=*/ gasUsedByPrivate, feePayer, forPublic);
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}
|
|
50
|
-
return tx;
|
|
39
|
+
const calldata = [
|
|
40
|
+
...setupCallRequests,
|
|
41
|
+
...appCallRequests,
|
|
42
|
+
...teardownCallRequest ? [
|
|
43
|
+
teardownCallRequest
|
|
44
|
+
] : []
|
|
45
|
+
].map((r)=>new HashedValues(r.calldata, r.request.calldataHash));
|
|
46
|
+
return new Tx(txData, ClientIvcProof.empty(), [], calldata);
|
|
51
47
|
}
|
|
52
48
|
export function createTxForPrivateOnly(feePayer = AztecAddress.zero(), gasUsedByPrivate = new Gas(10, 10)) {
|
|
53
49
|
// use max limits
|
|
@@ -58,7 +54,7 @@ export function createTxForPrivateOnly(feePayer = AztecAddress.zero(), gasUsedBy
|
|
|
58
54
|
const txContext = new TxContext(Fr.zero(), Fr.zero(), gasSettings);
|
|
59
55
|
const constantData = new TxConstantData(BlockHeader.empty(), txContext, Fr.zero(), Fr.zero());
|
|
60
56
|
const txData = new PrivateKernelTailCircuitPublicInputs(constantData, RollupValidationRequests.empty(), /*gasUsed=*/ gasUsedByPrivate, feePayer, /*forPublic=*/ undefined, forRollup);
|
|
61
|
-
return Tx.
|
|
57
|
+
return new Tx(txData, ClientIvcProof.empty(), [], []);
|
|
62
58
|
}
|
|
63
59
|
export async function addNewContractClassToTx(tx, contractClass, skipNullifierInsertion = false) {
|
|
64
60
|
const contractClassLogFields = [
|
package/dest/public/index.d.ts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
export * from '../common/db_interfaces.js';
|
|
2
2
|
export * from './public_tx_simulator/public_tx_simulator.js';
|
|
3
|
-
export { type EnqueuedPublicCallExecutionResult, type PublicFunctionCallResult } from './execution.js';
|
|
4
3
|
export * from './public_db_sources.js';
|
|
5
4
|
export { PublicProcessor, PublicProcessorFactory } from './public_processor/public_processor.js';
|
|
6
5
|
export { SideEffectTrace } from './side_effect_trace.js';
|
|
7
|
-
export { getExecutionRequestsByPhase } from './utils.js';
|
|
8
6
|
export { PublicTxSimulationTester } from './fixtures/index.js';
|
|
9
7
|
export * from './avm/index.js';
|
|
8
|
+
export { getCallRequestsWithCalldataByPhase } from './utils.js';
|
|
10
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/public/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8CAA8C,CAAC;AAC7D,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/public/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8CAA8C,CAAC;AAC7D,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AACjG,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,kCAAkC,EAAE,MAAM,YAAY,CAAC"}
|
package/dest/public/index.js
CHANGED
|
@@ -3,6 +3,6 @@ export * from './public_tx_simulator/public_tx_simulator.js';
|
|
|
3
3
|
export * from './public_db_sources.js';
|
|
4
4
|
export { PublicProcessor, PublicProcessorFactory } from './public_processor/public_processor.js';
|
|
5
5
|
export { SideEffectTrace } from './side_effect_trace.js';
|
|
6
|
-
export { getExecutionRequestsByPhase } from './utils.js';
|
|
7
6
|
export { PublicTxSimulationTester } from './fixtures/index.js';
|
|
8
7
|
export * from './avm/index.js';
|
|
8
|
+
export { getCallRequestsWithCalldataByPhase } from './utils.js';
|
|
@@ -145,7 +145,7 @@ export declare class PublicTreesDB extends ForwardMerkleTree implements PublicSt
|
|
|
145
145
|
*/
|
|
146
146
|
storageWrite(contract: AztecAddress, slot: Fr, newValue: Fr): Promise<void>;
|
|
147
147
|
getL1ToL2LeafValue(leafIndex: bigint): Promise<Fr | undefined>;
|
|
148
|
-
|
|
148
|
+
getNoteHash(leafIndex: bigint): Promise<Fr | undefined>;
|
|
149
149
|
getNullifierIndex(nullifier: Fr): Promise<bigint | undefined>;
|
|
150
150
|
}
|
|
151
151
|
export declare function readPublicState(db: MerkleTreeReadOperations, contract: AztecAddress, slot: Fr): Promise<Fr>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public_db_sources.d.ts","sourceRoot":"","sources":["../../src/public/public_db_sources.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"public_db_sources.d.ts","sourceRoot":"","sources":["../../src/public/public_db_sources.ts"],"names":[],"mappings":"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"}
|
|
@@ -177,7 +177,7 @@ import { TxContractCache } from './tx_contract_cache.js';
|
|
|
177
177
|
return value;
|
|
178
178
|
}
|
|
179
179
|
async getDebugFunctionName(address, selector) {
|
|
180
|
-
return await this.dataSource.
|
|
180
|
+
return await this.dataSource.getDebugFunctionName(address, selector);
|
|
181
181
|
}
|
|
182
182
|
}
|
|
183
183
|
/**
|
|
@@ -285,13 +285,13 @@ import { TxContractCache } from './tx_contract_cache.js';
|
|
|
285
285
|
});
|
|
286
286
|
return leafValue;
|
|
287
287
|
}
|
|
288
|
-
async
|
|
288
|
+
async getNoteHash(leafIndex) {
|
|
289
289
|
const timer = new Timer();
|
|
290
290
|
const leafValue = await this.db.getLeafValue(MerkleTreeId.NOTE_HASH_TREE, leafIndex);
|
|
291
|
-
this.logger.debug(`[DB] Fetched
|
|
291
|
+
this.logger.debug(`[DB] Fetched note hash leaf value`, {
|
|
292
292
|
eventName: 'public-db-access',
|
|
293
293
|
duration: timer.ms(),
|
|
294
|
-
operation: 'get-
|
|
294
|
+
operation: 'get-note-hash'
|
|
295
295
|
});
|
|
296
296
|
return leafValue;
|
|
297
297
|
}
|
|
@@ -245,7 +245,7 @@ class PublicProcessorTimeoutError extends Error {
|
|
|
245
245
|
}
|
|
246
246
|
async processTx(tx, deadline) {
|
|
247
247
|
const [time, [processedTx, returnValues]] = await elapsed(()=>this.processTxWithinDeadline(tx, deadline));
|
|
248
|
-
this.log.verbose(!tx.hasPublicCalls() ? `Processed tx ${processedTx.hash} with no public calls in ${time}ms` : `Processed tx ${processedTx.hash} with ${tx.
|
|
248
|
+
this.log.verbose(!tx.hasPublicCalls() ? `Processed tx ${processedTx.hash} with no public calls in ${time}ms` : `Processed tx ${processedTx.hash} with ${tx.numberOfPublicCalls()} public calls in ${time}ms`, {
|
|
249
249
|
txHash: processedTx.hash,
|
|
250
250
|
txFee: processedTx.txEffect.transactionFee.toBigInt(),
|
|
251
251
|
revertCode: processedTx.txEffect.revertCode.getCode(),
|
|
@@ -3,8 +3,8 @@ import { type AvmCircuitPublicInputs, AvmExecutionHints, RevertCode } from '@azt
|
|
|
3
3
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
4
4
|
import type { SimulationError } from '@aztec/stdlib/errors';
|
|
5
5
|
import { Gas } from '@aztec/stdlib/gas';
|
|
6
|
-
import { type PrivateToPublicAccumulatedData
|
|
7
|
-
import { type GlobalVariables,
|
|
6
|
+
import { type PrivateToPublicAccumulatedData } from '@aztec/stdlib/kernel';
|
|
7
|
+
import { type GlobalVariables, PublicCallRequestWithCalldata, type StateReference, type Tx, TxExecutionPhase, type TxHash } from '@aztec/stdlib/tx';
|
|
8
8
|
import type { PublicContractsDBInterface } from '../../server.js';
|
|
9
9
|
import { AvmPersistableStateManager } from '../avm/index.js';
|
|
10
10
|
import type { PublicTreesDB } from '../public_db_sources.js';
|
|
@@ -22,9 +22,6 @@ export declare class PublicTxContext {
|
|
|
22
22
|
private readonly setupCallRequests;
|
|
23
23
|
private readonly appLogicCallRequests;
|
|
24
24
|
private readonly teardownCallRequests;
|
|
25
|
-
private readonly setupExecutionRequests;
|
|
26
|
-
private readonly appLogicExecutionRequests;
|
|
27
|
-
private readonly teardownExecutionRequests;
|
|
28
25
|
readonly nonRevertibleAccumulatedDataFromPrivate: PrivateToPublicAccumulatedData;
|
|
29
26
|
readonly revertibleAccumulatedDataFromPrivate: PrivateToPublicAccumulatedData;
|
|
30
27
|
readonly feePayer: AztecAddress;
|
|
@@ -62,11 +59,7 @@ export declare class PublicTxContext {
|
|
|
62
59
|
/**
|
|
63
60
|
* Get the call requests for the specified phase (including args hashes).
|
|
64
61
|
*/
|
|
65
|
-
getCallRequestsForPhase(phase: TxExecutionPhase):
|
|
66
|
-
/**
|
|
67
|
-
* Get the call requests for the specified phase (including actual args).
|
|
68
|
-
*/
|
|
69
|
-
getExecutionRequestsForPhase(phase: TxExecutionPhase): PublicExecutionRequest[];
|
|
62
|
+
getCallRequestsForPhase(phase: TxExecutionPhase): PublicCallRequestWithCalldata[];
|
|
70
63
|
/**
|
|
71
64
|
* How much gas is left as of the specified phase?
|
|
72
65
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public_tx_context.d.ts","sourceRoot":"","sources":["../../../src/public/public_tx_simulator/public_tx_context.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAG9C,OAAO,EAAE,KAAK,sBAAsB,EAAE,iBAAiB,EAAmB,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAChH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAE,GAAG,EAAe,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAGL,KAAK,8BAA8B,
|
|
1
|
+
{"version":3,"file":"public_tx_context.d.ts","sourceRoot":"","sources":["../../../src/public/public_tx_simulator/public_tx_context.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAG9C,OAAO,EAAE,KAAK,sBAAsB,EAAE,iBAAiB,EAAmB,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAChH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAE,GAAG,EAAe,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAGL,KAAK,8BAA8B,EAIpC,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,KAAK,eAAe,EACpB,6BAA6B,EAC7B,KAAK,cAAc,EAEnB,KAAK,EAAE,EACP,gBAAgB,EAChB,KAAK,MAAM,EACZ,MAAM,kBAAkB,CAAC;AAK1B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAE7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAI7D;;GAEG;AACH,qBAAa,eAAe;aAgBR,MAAM,EAAE,MAAM;aACd,KAAK,EAAE,iBAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;aACrB,uCAAuC,EAAE,8BAA8B;aACvE,oCAAoC,EAAE,8BAA8B;aACpE,QAAQ,EAAE,YAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,KAAK;aACN,KAAK,EAAE,iBAAiB;IA7B1C,OAAO,CAAC,GAAG,CAAS;IAGpB,OAAO,CAAC,eAAe,CAAoB;IAEpC,eAAe,EAAE,GAAG,CAAe;IAG1C,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,UAAU,CAA6B;IAExC,YAAY,EAAE,eAAe,GAAG,SAAS,CAAC;IAEjD,OAAO;WAoBa,MAAM,CACxB,OAAO,EAAE,aAAa,EACtB,WAAW,EAAE,0BAA0B,EACvC,EAAE,EAAE,EAAE,EACN,eAAe,EAAE,eAAe,EAChC,kBAAkB,EAAE,OAAO;IAwD7B;;;;OAIG;IACG,IAAI;IAOV;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,gBAAgB,EAAE,YAAY,GAAE,eAAe,GAAG,SAAqB,EAAE,OAAO,SAAK;IA0BnG;;;OAGG;IACH,kBAAkB,IAAI,UAAU;IAKhC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO;IAW1C;;OAEG;IACH,uBAAuB,CAAC,KAAK,EAAE,gBAAgB,GAAG,6BAA6B,EAAE;IAWjF;;OAEG;IACH,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,GAAG;IAS/C;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,EAAE,GAAG;IAQ5C;;;OAGG;IACH,eAAe,IAAI,GAAG;IAItB;;;;;OAKG;IACH,gBAAgB,IAAI,GAAG;IAOvB;;;OAGG;IACH,sBAAsB,IAAI,GAAG;IAK7B;;;OAGG;IACH,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,EAAE;IAQ9C;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAa/B;;OAEG;IACU,8BAA8B,CAAC,iBAAiB,EAAE,cAAc,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAyGhH;AAED;;;;;;;;;GASG;AACH,cAAM,iBAAiB;IAKT,OAAO,CAAC,QAAQ,CAAC,cAAc;IAJ3C,OAAO,CAAC,GAAG,CAAS;IAEpB,OAAO,CAAC,2BAA2B,CAAyC;gBAE/C,cAAc,EAAE,0BAA0B;IAIjE,IAAI;IAMV,qBAAqB;IAIrB,QAAQ;IAIF,gBAAgB;IAQhB,kBAAkB;CAOzB"}
|