@aztec/txe 4.3.0-nightly.20260508 → 4.3.0-nightly.20260510
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/oracle/interfaces.d.ts +6 -4
- package/dest/oracle/interfaces.d.ts.map +1 -1
- package/dest/oracle/txe_oracle_top_level_context.d.ts +6 -4
- package/dest/oracle/txe_oracle_top_level_context.d.ts.map +1 -1
- package/dest/oracle/txe_oracle_top_level_context.js +32 -17
- package/dest/rpc_translator.d.ts +4 -4
- package/dest/rpc_translator.d.ts.map +1 -1
- package/dest/rpc_translator.js +27 -10
- package/package.json +15 -15
- package/src/oracle/interfaces.ts +7 -2
- package/src/oracle/txe_oracle_top_level_context.ts +46 -13
- package/src/rpc_translator.ts +53 -6
|
@@ -6,6 +6,7 @@ import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
|
6
6
|
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
7
7
|
import type { EventSelector, FunctionSelector } from '@aztec/stdlib/abi';
|
|
8
8
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
9
|
+
import type { PrivateLog } from '@aztec/stdlib/logs';
|
|
9
10
|
import type { UInt64 } from '@aztec/stdlib/types';
|
|
10
11
|
/**
|
|
11
12
|
* Oracle methods associated with the execution of an Aztec #[external("public")] function.
|
|
@@ -48,14 +49,15 @@ export interface ITxeExecutionOracle {
|
|
|
48
49
|
txHash: TxHash;
|
|
49
50
|
noteHashes: Fr[];
|
|
50
51
|
nullifiers: Fr[];
|
|
52
|
+
privateLogs: PrivateLog[];
|
|
51
53
|
}>;
|
|
52
54
|
getPrivateEvents(selector: EventSelector, contractAddress: AztecAddress, scope: AztecAddress): Promise<Fr[][]>;
|
|
53
|
-
privateCallNewFlow(from: AztecAddress, targetContractAddress: AztecAddress, functionSelector: FunctionSelector, args: Fr[], argsHash: Fr, isStaticCall: boolean, jobId: string): Promise<{
|
|
55
|
+
privateCallNewFlow(from: AztecAddress | undefined, targetContractAddress: AztecAddress, functionSelector: FunctionSelector, args: Fr[], argsHash: Fr, isStaticCall: boolean, additionalScopes: AztecAddress[], jobId: string, authorizedUtilityCallTargets: AztecAddress[]): Promise<{
|
|
54
56
|
returnValues: Fr[];
|
|
55
57
|
offchainEffects: Fr[][];
|
|
56
58
|
}>;
|
|
57
|
-
executeUtilityFunction(targetContractAddress: AztecAddress, functionSelector: FunctionSelector, args: Fr[], jobId: string): Promise<Fr[]>;
|
|
58
|
-
publicCallNewFlow(from: AztecAddress, targetContractAddress: AztecAddress, calldata: Fr[], isStaticCall: boolean): Promise<Fr[]>;
|
|
59
|
+
executeUtilityFunction(targetContractAddress: AztecAddress, functionSelector: FunctionSelector, args: Fr[], jobId: string, authorizedUtilityCallTargets: AztecAddress[]): Promise<Fr[]>;
|
|
60
|
+
publicCallNewFlow(from: AztecAddress | undefined, targetContractAddress: AztecAddress, calldata: Fr[], isStaticCall: boolean): Promise<Fr[]>;
|
|
59
61
|
syncContractNonOracleMethod(contractAddress: AztecAddress, scope: AztecAddress, jobId: string): Promise<void>;
|
|
60
62
|
}
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL29yYWNsZS9pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sS0FBSyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RCxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQVFsRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFdBQVcsbUJBQW1CO0lBQ2xDLEtBQUssRUFBRSxJQUFJLENBQUM7SUFFWixPQUFPLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pDLE1BQU0sSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDaEMsV0FBVyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNwQyxTQUFTLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdCLFlBQVksSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxFQUFF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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/oracle/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAQlD;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,IAAI,CAAC;IAEZ,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;IACjC,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;IAChC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IACpC,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,OAAO,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC;IACvB,OAAO,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC;IACvB,aAAa,CAAC,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,YAAY,CAAC,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,eAAe,CAAC,eAAe,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACvD,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,eAAe,EAAE,YAAY,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;CACnE;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,IAAI,CAAC;IAEZ,iBAAiB,IAAI,YAAY,CAAC;IAClC,kBAAkB,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IAC3C,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,MAAM,CAAC,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,2BAA2B,EAAE,aAAa,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5G,aAAa,CAAC,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACpD,UAAU,CAAC,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,2BAA2B,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACpH,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,gBAAgB,IAAI,OAAO,CAAC;QAC1B,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,EAAE,EAAE,CAAC;QACjB,UAAU,EAAE,EAAE,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/oracle/interfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,6 +48,7 @@ export declare class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecut
|
|
|
48
48
|
txHash: TxHash;
|
|
49
49
|
noteHashes: Fr[];
|
|
50
50
|
nullifiers: Fr[];
|
|
51
|
+
privateLogs: import("@aztec/stdlib/logs").PrivateLog[];
|
|
51
52
|
}>;
|
|
52
53
|
syncContractNonOracleMethod(contractAddress: AztecAddress, scope: AztecAddress, jobId: string): Promise<void>;
|
|
53
54
|
getPrivateEvents(selector: EventSelector, contractAddress: AztecAddress, scope: AztecAddress): Promise<Fr[][]>;
|
|
@@ -60,14 +61,15 @@ export declare class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecut
|
|
|
60
61
|
mineBlock(options?: {
|
|
61
62
|
nullifiers?: Fr[];
|
|
62
63
|
}): Promise<void>;
|
|
63
|
-
privateCallNewFlow(from: AztecAddress, targetContractAddress: AztecAddress | undefined, functionSelector: FunctionSelector | undefined, args: Fr[], argsHash: Fr | undefined, isStaticCall: boolean | undefined, jobId: string): Promise<{
|
|
64
|
+
privateCallNewFlow(from: AztecAddress | undefined, targetContractAddress: AztecAddress | undefined, functionSelector: FunctionSelector | undefined, args: Fr[], argsHash: Fr | undefined, isStaticCall: boolean | undefined, additionalScopes: AztecAddress[] | undefined, jobId: string, authorizedUtilityCallTargets: AztecAddress[]): Promise<{
|
|
64
65
|
returnValues: Fr[];
|
|
65
66
|
offchainEffects: Fr[][];
|
|
66
67
|
}>;
|
|
67
|
-
publicCallNewFlow(from: AztecAddress, targetContractAddress: AztecAddress, calldata: Fr[], isStaticCall: boolean): Promise<Fr[]>;
|
|
68
|
-
executeUtilityFunction(targetContractAddress: AztecAddress, functionSelector: FunctionSelector, args: Fr[], jobId: string): Promise<Fr[]>;
|
|
68
|
+
publicCallNewFlow(from: AztecAddress | undefined, targetContractAddress: AztecAddress, calldata: Fr[], isStaticCall: boolean): Promise<Fr[]>;
|
|
69
|
+
executeUtilityFunction(targetContractAddress: AztecAddress, functionSelector: FunctionSelector, args: Fr[], jobId: string, authorizedUtilityCallTargets: AztecAddress[]): Promise<Fr[]>;
|
|
69
70
|
private executeUtilityCall;
|
|
70
71
|
close(): [bigint, Map<string, AuthWitness>];
|
|
71
72
|
private getLastBlockNumber;
|
|
73
|
+
private buildAuthorizeUtilityCallHook;
|
|
72
74
|
}
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhlX29yYWNsZV90b3BfbGV2ZWxfY29udGV4dC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL29yYWNsZS90eGVfb3JhY2xlX3RvcF9sZXZlbF9jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU5RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHcEQsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUNMLFlBQVksRUFFWixZQUFZLEVBQ1osS0FBSyxhQUFhLEVBRWxCLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0QixrQkFBa0IsRUFHbkIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBSUwsS0FBSyxXQUFXLEVBTWpCLE1BQU0sc0JBQXNCLENBQUM7QUFnQjlCLE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUFFLGFBQWEsRUFBZ0IsZ0JBQWdCLEVBQWdCLE1BQU0sbUJBQW1CLENBQUM7QUFDdkgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXpELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsS0FBSywyQkFBMkIsRUFBeUIsTUFBTSx3QkFBd0IsQ0FBQztBQWtCakcsT0FBTyxFQVNMLE1BQU0sRUFFUCxNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBSWxELE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBR3BFLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixF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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"txe_oracle_top_level_context.d.ts","sourceRoot":"","sources":["../../src/oracle/txe_oracle_top_level_context.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAGpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EACL,YAAY,EAEZ,YAAY,EACZ,KAAK,aAAa,
|
|
1
|
+
{"version":3,"file":"txe_oracle_top_level_context.d.ts","sourceRoot":"","sources":["../../src/oracle/txe_oracle_top_level_context.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { Schnorr } from '@aztec/foundation/crypto/schnorr';
|
|
|
4
4
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
5
5
|
import { LogLevels, applyStringFormatting, createLogger } from '@aztec/foundation/log';
|
|
6
6
|
import { TestDateProvider } from '@aztec/foundation/timer';
|
|
7
|
-
import { CapsuleService, ORACLE_VERSION_MAJOR, enrichPublicSimulationError } from '@aztec/pxe/server';
|
|
7
|
+
import { CapsuleService, ORACLE_VERSION_MAJOR, composeHooks, enrichPublicSimulationError } from '@aztec/pxe/server';
|
|
8
8
|
import { ExecutionNoteCache, ExecutionTaggingIndexCache, HashedValuesCache, Oracle, PrivateExecutionOracle, UtilityExecutionOracle, executePrivateFunction, generateSimulatedProvingResult } from '@aztec/pxe/simulator';
|
|
9
9
|
import { ExecutionError, WASMSimulator, createSimulationError, extractCallStack, resolveAssertionMessageFromError, toACVMWitness, witnessMapToFields } from '@aztec/simulator/client';
|
|
10
10
|
import { CppPublicTxSimulator, GuardedMerkleTreeOperations, PublicContractsDB, PublicProcessor } from '@aztec/simulator/server';
|
|
@@ -118,7 +118,8 @@ export class TXEOracleTopLevelContext {
|
|
|
118
118
|
return {
|
|
119
119
|
txHash: txEffects.txHash,
|
|
120
120
|
noteHashes: txEffects.noteHashes,
|
|
121
|
-
nullifiers: txEffects.nullifiers
|
|
121
|
+
nullifiers: txEffects.nullifiers,
|
|
122
|
+
privateLogs: txEffects.privateLogs
|
|
122
123
|
};
|
|
123
124
|
}
|
|
124
125
|
async syncContractNonOracleMethod(contractAddress, scope, jobId) {
|
|
@@ -220,26 +221,26 @@ export class TXEOracleTopLevelContext {
|
|
|
220
221
|
this.logger.info(`Created block ${blockNumber} with timestamp ${block.header.globalVariables.timestamp}`);
|
|
221
222
|
await this.stateMachine.handleL2Block(block);
|
|
222
223
|
}
|
|
223
|
-
async privateCallNewFlow(from, targetContractAddress = AztecAddress.zero(), functionSelector = FunctionSelector.empty(), args, argsHash = Fr.zero(), isStaticCall = false, jobId) {
|
|
224
|
+
async privateCallNewFlow(from, targetContractAddress = AztecAddress.zero(), functionSelector = FunctionSelector.empty(), args, argsHash = Fr.zero(), isStaticCall = false, additionalScopes = [], jobId, authorizedUtilityCallTargets) {
|
|
224
225
|
this.logger.verbose(`Executing external function ${await this.contractStore.getDebugFunctionName(targetContractAddress, functionSelector)}@${targetContractAddress} isStaticCall=${isStaticCall}`);
|
|
225
226
|
const artifact = await this.contractStore.getFunctionArtifact(targetContractAddress, functionSelector);
|
|
226
227
|
if (!artifact) {
|
|
227
228
|
const message = functionSelector.equals(await FunctionSelector.fromSignature('verify_private_authwit(Field)')) ? 'Found no account contract artifact for a private authwit check - use `create_contract_account` instead of `create_light_account` for authwit support.' : 'Function Artifact does not exist';
|
|
228
229
|
throw new Error(message);
|
|
229
230
|
}
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
from
|
|
231
|
+
const scopes = from === undefined ? additionalScopes : [
|
|
232
|
+
from,
|
|
233
|
+
...additionalScopes
|
|
234
234
|
];
|
|
235
235
|
// Sync notes before executing private function to discover notes from previous transactions
|
|
236
236
|
const utilityExecutor = async (call, execScopes)=>{
|
|
237
237
|
await this.executeUtilityCall(call, execScopes, jobId);
|
|
238
238
|
};
|
|
239
239
|
const blockHeader = await this.stateMachine.anchorBlockStore.getBlockHeader();
|
|
240
|
-
await this.stateMachine.contractSyncService.ensureContractSynced(targetContractAddress, functionSelector, utilityExecutor, blockHeader, jobId,
|
|
240
|
+
await this.stateMachine.contractSyncService.ensureContractSynced(targetContractAddress, functionSelector, utilityExecutor, blockHeader, jobId, scopes);
|
|
241
241
|
const blockNumber = await this.getNextBlockNumber();
|
|
242
|
-
const
|
|
242
|
+
const msgSender = from ?? AztecAddress.NULL_MSG_SENDER;
|
|
243
|
+
const callContext = new CallContext(msgSender, targetContractAddress, functionSelector, isStaticCall);
|
|
243
244
|
const gasLimits = new Gas(MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT, MAX_PROCESSABLE_L2_GAS);
|
|
244
245
|
const teardownGasLimits = new Gas(FALLBACK_TEARDOWN_DA_GAS_LIMIT, FALLBACK_TEARDOWN_L2_GAS_LIMIT);
|
|
245
246
|
const gasSettings = new GasSettings(gasLimits, teardownGasLimits, GasFees.empty(), GasFees.empty());
|
|
@@ -274,19 +275,22 @@ export class TXEOracleTopLevelContext {
|
|
|
274
275
|
senderTaggingStore: this.senderTaggingStore,
|
|
275
276
|
recipientTaggingStore: this.recipientTaggingStore,
|
|
276
277
|
senderAddressBookStore: this.senderAddressBookStore,
|
|
277
|
-
capsuleService: new CapsuleService(this.capsuleStore,
|
|
278
|
+
capsuleService: new CapsuleService(this.capsuleStore, scopes),
|
|
278
279
|
privateEventStore: this.privateEventStore,
|
|
279
280
|
contractSyncService: this.stateMachine.contractSyncService,
|
|
280
281
|
jobId,
|
|
281
282
|
totalPublicCalldataCount: 0,
|
|
282
283
|
sideEffectCounter: minRevertibleSideEffectCounter,
|
|
283
|
-
scopes
|
|
284
|
+
scopes,
|
|
284
285
|
// In TXE, the typical transaction entrypoint is skipped, so we need to simulate the actions that such a
|
|
285
286
|
// contract would perform, including setting senderForTags.
|
|
286
287
|
senderForTags: from,
|
|
287
288
|
simulator,
|
|
288
289
|
messageContextService: this.stateMachine.messageContextService,
|
|
289
|
-
l2TipsStore: this.stateMachine.node
|
|
290
|
+
l2TipsStore: this.stateMachine.node,
|
|
291
|
+
hooks: composeHooks({
|
|
292
|
+
authorizeUtilityCall: this.buildAuthorizeUtilityCallHook('private', authorizedUtilityCallTargets)
|
|
293
|
+
})
|
|
290
294
|
});
|
|
291
295
|
// Note: This is a slight modification of simulator.run without any of the checks. Maybe we should modify simulator.run with a boolean value to skip checks.
|
|
292
296
|
let result;
|
|
@@ -430,7 +434,7 @@ export class TXEOracleTopLevelContext {
|
|
|
430
434
|
// The enqueued public call itself we make be revertible so that the public execution is itself revertible, as tests
|
|
431
435
|
// may require producing reverts.
|
|
432
436
|
const revertibleAccumulatedData = PrivateToPublicAccumulatedData.empty();
|
|
433
|
-
revertibleAccumulatedData.publicCallRequests[0] = new PublicCallRequest(from, targetContractAddress, isStaticCall, calldataHash);
|
|
437
|
+
revertibleAccumulatedData.publicCallRequests[0] = new PublicCallRequest(from ?? AztecAddress.NULL_MSG_SENDER, targetContractAddress, isStaticCall, calldataHash);
|
|
434
438
|
const inputsForPublic = new PartialPrivateTailPublicInputsForPublic(nonRevertibleAccumulatedData, revertibleAccumulatedData, PublicCallRequest.empty());
|
|
435
439
|
const constantData = new TxConstantData(anchorBlockHeader, txContext, Fr.zero(), Fr.zero());
|
|
436
440
|
const txData = new PrivateKernelTailCircuitPublicInputs(constantData, /*gasUsed=*/ new Gas(0, 0), /*feePayer=*/ AztecAddress.zero(), /*expirationTimestamp=*/ 0n, inputsForPublic, undefined);
|
|
@@ -486,7 +490,7 @@ export class TXEOracleTopLevelContext {
|
|
|
486
490
|
await forkedWorldTrees.close();
|
|
487
491
|
return returnValues ?? [];
|
|
488
492
|
}
|
|
489
|
-
async executeUtilityFunction(targetContractAddress, functionSelector, args, jobId) {
|
|
493
|
+
async executeUtilityFunction(targetContractAddress, functionSelector, args, jobId, authorizedUtilityCallTargets) {
|
|
490
494
|
const artifact = await this.contractStore.getFunctionArtifact(targetContractAddress, functionSelector);
|
|
491
495
|
if (!artifact) {
|
|
492
496
|
throw new Error(`Cannot call ${functionSelector} as there is no artifact found at ${targetContractAddress}.`);
|
|
@@ -506,9 +510,9 @@ export class TXEOracleTopLevelContext {
|
|
|
506
510
|
args,
|
|
507
511
|
returnTypes: []
|
|
508
512
|
});
|
|
509
|
-
return this.executeUtilityCall(call, await this.keyStore.getAccounts(), jobId);
|
|
513
|
+
return this.executeUtilityCall(call, await this.keyStore.getAccounts(), jobId, authorizedUtilityCallTargets);
|
|
510
514
|
}
|
|
511
|
-
async executeUtilityCall(call, scopes, jobId) {
|
|
515
|
+
async executeUtilityCall(call, scopes, jobId, authorizedUtilityCallTargets = []) {
|
|
512
516
|
const entryPointArtifact = await this.contractStore.getFunctionArtifactWithDebugMetadata(call.to, call.selector);
|
|
513
517
|
if (entryPointArtifact.functionType !== FunctionType.UTILITY) {
|
|
514
518
|
throw new Error(`Cannot run ${entryPointArtifact.functionType} function as utility`);
|
|
@@ -539,7 +543,10 @@ export class TXEOracleTopLevelContext {
|
|
|
539
543
|
l2TipsStore: this.stateMachine.node,
|
|
540
544
|
jobId,
|
|
541
545
|
scopes,
|
|
542
|
-
simulator
|
|
546
|
+
simulator,
|
|
547
|
+
hooks: composeHooks({
|
|
548
|
+
authorizeUtilityCall: this.buildAuthorizeUtilityCallHook('utility', authorizedUtilityCallTargets)
|
|
549
|
+
})
|
|
543
550
|
});
|
|
544
551
|
const acirExecutionResult = await simulator.executeUserCircuit(toACVMWitness(0, call.args), entryPointArtifact, new Oracle(oracle).toACIRCallback()).catch((err)=>{
|
|
545
552
|
err.message = resolveAssertionMessageFromError(err, entryPointArtifact);
|
|
@@ -567,4 +574,12 @@ export class TXEOracleTopLevelContext {
|
|
|
567
574
|
const header = await this.stateMachine.node.getBlockHeader('latest');
|
|
568
575
|
return header ? header.globalVariables.blockNumber : BlockNumber.ZERO;
|
|
569
576
|
}
|
|
577
|
+
buildAuthorizeUtilityCallHook(callerContext, authorizedTargets) {
|
|
578
|
+
if (authorizedTargets.length === 0) {
|
|
579
|
+
return undefined;
|
|
580
|
+
}
|
|
581
|
+
return (req)=>Promise.resolve({
|
|
582
|
+
authorized: req.callerContext === callerContext && authorizedTargets.some((t)=>t.equals(req.target))
|
|
583
|
+
});
|
|
584
|
+
}
|
|
570
585
|
}
|
package/dest/rpc_translator.d.ts
CHANGED
|
@@ -276,13 +276,13 @@ export declare class RPCTranslator {
|
|
|
276
276
|
aztec_avm_call(_foreignL2Gas: ForeignCallSingle, _foreignDaGas: ForeignCallSingle, _foreignAddress: ForeignCallSingle, _foreignLength: ForeignCallSingle, _foreignArgs: ForeignCallArray): void;
|
|
277
277
|
aztec_avm_staticCall(_foreignL2Gas: ForeignCallSingle, _foreignDaGas: ForeignCallSingle, _foreignAddress: ForeignCallSingle, _foreignLength: ForeignCallSingle, _foreignArgs: ForeignCallArray): void;
|
|
278
278
|
aztec_avm_successCopy(): void;
|
|
279
|
-
aztec_txe_privateCallNewFlow(
|
|
279
|
+
aztec_txe_privateCallNewFlow(foreignFromIsSome: ForeignCallSingle, foreignFromValue: ForeignCallSingle, foreignTargetContractAddress: ForeignCallSingle, foreignFunctionSelector: ForeignCallSingle, foreignArgs: ForeignCallArray, foreignArgsHash: ForeignCallSingle, foreignIsStaticCall: ForeignCallSingle, foreignAdditionalScopes: ForeignCallArray, foreignAuthorizedUtilityCallTargets: ForeignCallArray): Promise<{
|
|
280
280
|
values: (string | ForeignCallArray)[];
|
|
281
281
|
}>;
|
|
282
|
-
aztec_txe_executeUtilityFunction(foreignTargetContractAddress: ForeignCallSingle, foreignFunctionSelector: ForeignCallSingle, foreignArgs: ForeignCallArray): Promise<{
|
|
282
|
+
aztec_txe_executeUtilityFunction(foreignTargetContractAddress: ForeignCallSingle, foreignFunctionSelector: ForeignCallSingle, foreignArgs: ForeignCallArray, foreignAuthorizedUtilityCallTargets: ForeignCallArray): Promise<{
|
|
283
283
|
values: (string | ForeignCallArray)[];
|
|
284
284
|
}>;
|
|
285
|
-
aztec_txe_publicCallNewFlow(
|
|
285
|
+
aztec_txe_publicCallNewFlow(foreignFromIsSome: ForeignCallSingle, foreignFromValue: ForeignCallSingle, foreignAddress: ForeignCallSingle, foreignCalldata: ForeignCallArray, foreignIsStaticCall: ForeignCallSingle): Promise<{
|
|
286
286
|
values: (string | ForeignCallArray)[];
|
|
287
287
|
}>;
|
|
288
288
|
aztec_prv_getSenderForTags(): Promise<{
|
|
@@ -295,4 +295,4 @@ export declare class RPCTranslator {
|
|
|
295
295
|
values: (string | ForeignCallArray)[];
|
|
296
296
|
}>;
|
|
297
297
|
}
|
|
298
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
298
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnBjX3RyYW5zbGF0b3IuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9ycGNfdHJhbnNsYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBVTdFLE9BQU8sRUFDTCxLQUFLLFdBQVcsRUFDaEIsS0FBSyx1QkFBdUIsRUFDNUIsS0FBSyx1QkFBdUIsRUFFN0IsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBaUQsTUFBTSxtQkFBbUIsQ0FBQztBQUl6RyxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZGLE9BQU8sS0FBSyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0QsT0FBTyxFQUNMLEtBQUssZ0JBQWdCLEVBQ3JCLEtBQUssaUJBQWlCLEVBWXZCLE1BQU0sb0JBQW9CLENBQUM7QUFLNUIscUJBQWEsc0JBQXVCLFNBQVEsS0FBSztJQUMvQyxZQUFZLFVBQVUsRUFBRSxNQUFNLEVBRTdCO0NBQ0Y7QUFFRCxxQkFBYSxhQUFhO0lBV3RCLE9BQU8sQ0FBQyxZQUFZO0lBQ3BCLE9BQU8sQ0FBQyxhQUFhO0lBWHZCOzs7Ozs7OztPQVFHO0lBQ0gsWUFDVSxZQUFZLEVBQUUsc0JBQXNCLEVBQ3BDLGFBQWEsRUFDakIsV0FBVyxHQUNYLHVCQUF1QixHQUN2Qix1QkFBdUIsR0FDdkIsbUJBQW1CLEdBQ25CLG1CQUFtQixFQUNyQjtJQUtKLE9BQU8sQ0FBQyxhQUFhO0lBUXJCLE9BQU8sQ0FBQyxnQkFBZ0I7SUFReEIsT0FBTyxDQUFDLGdCQUFnQjtJQVF4QixPQUFPLENBQUMsWUFBWTtJQVFwQixPQUFPLENBQUMsWUFBWTtJQVdkLCtCQUErQjs7T0FJcEM7SUFHSyw4QkFBOEIsQ0FDbEMsNEJBQTRCLEVBQUUsaUJBQWlCLEVB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc_translator.d.ts","sourceRoot":"","sources":["../src/rpc_translator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"rpc_translator.d.ts","sourceRoot":"","sources":["../src/rpc_translator.ts"],"names":[],"mappings":"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"}
|
package/dest/rpc_translator.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Fr, Point } from '@aztec/aztec.js/fields';
|
|
2
|
-
import { MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX, PRIVATE_LOG_CIPHERTEXT_LEN } from '@aztec/constants';
|
|
2
|
+
import { MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX, MAX_PRIVATE_LOGS_PER_TX, PRIVATE_LOG_CIPHERTEXT_LEN, PRIVATE_LOG_SIZE_IN_FIELDS } from '@aztec/constants';
|
|
3
3
|
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
4
4
|
import { packAsHintedNote } from '@aztec/pxe/simulator';
|
|
5
5
|
import { EventSelector, FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
|
|
@@ -183,11 +183,25 @@ export class RPCTranslator {
|
|
|
183
183
|
}
|
|
184
184
|
// eslint-disable-next-line camelcase
|
|
185
185
|
async aztec_txe_getLastTxEffects() {
|
|
186
|
-
const { txHash, noteHashes, nullifiers } = await this.handlerAsTxe().getLastTxEffects();
|
|
186
|
+
const { txHash, noteHashes, nullifiers, privateLogs } = await this.handlerAsTxe().getLastTxEffects();
|
|
187
|
+
if (privateLogs.length > MAX_PRIVATE_LOGS_PER_TX) {
|
|
188
|
+
throw new Error(`${privateLogs.length} private logs exceed max ${MAX_PRIVATE_LOGS_PER_TX}`);
|
|
189
|
+
}
|
|
190
|
+
// Same workaround as `aztec_txe_getPrivateEvents`: Noir cannot yet return nested structs with arrays, so we return
|
|
191
|
+
// a flat multidimensional array plus per-log lengths and the total count, and reassemble into a
|
|
192
|
+
// `BoundedVec<BoundedVec<T>>` on the Noir side. Each log contributes only its emitted fields. The rest
|
|
193
|
+
// is zero-padded to `PRIVATE_LOG_SIZE_IN_FIELDS`.
|
|
194
|
+
const emittedLogs = privateLogs.map((log)=>log.getEmittedFields());
|
|
195
|
+
const rawLogStorage = emittedLogs.map((fields)=>fields.concat(Array(PRIVATE_LOG_SIZE_IN_FIELDS - fields.length).fill(new Fr(0)))).concat(Array(MAX_PRIVATE_LOGS_PER_TX - emittedLogs.length).fill(Array(PRIVATE_LOG_SIZE_IN_FIELDS).fill(new Fr(0)))).flat();
|
|
196
|
+
const logLengths = emittedLogs.map((fields)=>new Fr(fields.length)).concat(Array(MAX_PRIVATE_LOGS_PER_TX - emittedLogs.length).fill(new Fr(0)));
|
|
197
|
+
const logCount = new Fr(emittedLogs.length);
|
|
187
198
|
return toForeignCallResult([
|
|
188
199
|
toSingle(txHash.hash),
|
|
189
200
|
...arrayToBoundedVec(toArray(noteHashes), MAX_NOTE_HASHES_PER_TX),
|
|
190
|
-
...arrayToBoundedVec(toArray(nullifiers), MAX_NULLIFIERS_PER_TX)
|
|
201
|
+
...arrayToBoundedVec(toArray(nullifiers), MAX_NULLIFIERS_PER_TX),
|
|
202
|
+
toArray(rawLogStorage),
|
|
203
|
+
toArray(logLengths),
|
|
204
|
+
toSingle(logCount)
|
|
191
205
|
]);
|
|
192
206
|
}
|
|
193
207
|
// eslint-disable-next-line camelcase
|
|
@@ -877,15 +891,17 @@ export class RPCTranslator {
|
|
|
877
891
|
throw new Error('Contract calls are forbidden inside a `TestEnvironment::public_context`, use `public_call` instead');
|
|
878
892
|
}
|
|
879
893
|
// eslint-disable-next-line camelcase
|
|
880
|
-
async aztec_txe_privateCallNewFlow(
|
|
881
|
-
const from = addressFromSingle(
|
|
894
|
+
async aztec_txe_privateCallNewFlow(foreignFromIsSome, foreignFromValue, foreignTargetContractAddress, foreignFunctionSelector, foreignArgs, foreignArgsHash, foreignIsStaticCall, foreignAdditionalScopes, foreignAuthorizedUtilityCallTargets) {
|
|
895
|
+
const from = fromSingle(foreignFromIsSome).toBool() ? addressFromSingle(foreignFromValue) : undefined;
|
|
882
896
|
const targetContractAddress = addressFromSingle(foreignTargetContractAddress);
|
|
883
897
|
const functionSelector = FunctionSelector.fromField(fromSingle(foreignFunctionSelector));
|
|
884
898
|
const args = fromArray(foreignArgs);
|
|
885
899
|
const argsHash = fromSingle(foreignArgsHash);
|
|
886
900
|
const isStaticCall = fromSingle(foreignIsStaticCall).toBool();
|
|
901
|
+
const additionalScopes = fromArray(foreignAdditionalScopes).map((field)=>AztecAddress.fromField(field));
|
|
902
|
+
const authorizedUtilityCallTargets = fromArray(foreignAuthorizedUtilityCallTargets).map((field)=>AztecAddress.fromField(field));
|
|
887
903
|
const returnValues = await this.stateHandler.withTopLevelCallTracking(async ()=>{
|
|
888
|
-
const { returnValues, offchainEffects } = await this.handlerAsTxe().privateCallNewFlow(from, targetContractAddress, functionSelector, args, argsHash, isStaticCall, this.stateHandler.getCurrentJob());
|
|
904
|
+
const { returnValues, offchainEffects } = await this.handlerAsTxe().privateCallNewFlow(from, targetContractAddress, functionSelector, args, argsHash, isStaticCall, additionalScopes, this.stateHandler.getCurrentJob(), authorizedUtilityCallTargets);
|
|
889
905
|
// Private execution collects offchain effects inside PXE's PrivateExecutionOracle rather than
|
|
890
906
|
// round-tripping them through `aztec_utl_emitOffchainEffect`, so the session buffer is empty
|
|
891
907
|
// at this point. Drain the effects from the execution tree into the session buffer so the
|
|
@@ -914,12 +930,13 @@ export class RPCTranslator {
|
|
|
914
930
|
]);
|
|
915
931
|
}
|
|
916
932
|
// eslint-disable-next-line camelcase
|
|
917
|
-
async aztec_txe_executeUtilityFunction(foreignTargetContractAddress, foreignFunctionSelector, foreignArgs) {
|
|
933
|
+
async aztec_txe_executeUtilityFunction(foreignTargetContractAddress, foreignFunctionSelector, foreignArgs, foreignAuthorizedUtilityCallTargets) {
|
|
918
934
|
const targetContractAddress = addressFromSingle(foreignTargetContractAddress);
|
|
919
935
|
const functionSelector = FunctionSelector.fromField(fromSingle(foreignFunctionSelector));
|
|
920
936
|
const args = fromArray(foreignArgs);
|
|
937
|
+
const authorizedUtilityCallTargets = fromArray(foreignAuthorizedUtilityCallTargets).map((field)=>AztecAddress.fromField(field));
|
|
921
938
|
const returnValues = await this.stateHandler.withTopLevelCallTracking(async ()=>{
|
|
922
|
-
const returnValues = await this.handlerAsTxe().executeUtilityFunction(targetContractAddress, functionSelector, args, this.stateHandler.getCurrentJob());
|
|
939
|
+
const returnValues = await this.handlerAsTxe().executeUtilityFunction(targetContractAddress, functionSelector, args, this.stateHandler.getCurrentJob(), authorizedUtilityCallTargets);
|
|
923
940
|
// TODO(F-335): Avoid doing the following call here.
|
|
924
941
|
await this.stateHandler.cycleJob();
|
|
925
942
|
return {
|
|
@@ -931,8 +948,8 @@ export class RPCTranslator {
|
|
|
931
948
|
]);
|
|
932
949
|
}
|
|
933
950
|
// eslint-disable-next-line camelcase
|
|
934
|
-
async aztec_txe_publicCallNewFlow(
|
|
935
|
-
const from = addressFromSingle(
|
|
951
|
+
async aztec_txe_publicCallNewFlow(foreignFromIsSome, foreignFromValue, foreignAddress, foreignCalldata, foreignIsStaticCall) {
|
|
952
|
+
const from = fromSingle(foreignFromIsSome).toBool() ? addressFromSingle(foreignFromValue) : undefined;
|
|
936
953
|
const address = addressFromSingle(foreignAddress);
|
|
937
954
|
const calldata = fromArray(foreignCalldata);
|
|
938
955
|
const isStaticCall = fromSingle(foreignIsStaticCall).toBool();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/txe",
|
|
3
|
-
"version": "4.3.0-nightly.
|
|
3
|
+
"version": "4.3.0-nightly.20260510",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": "./dest/index.js",
|
|
6
6
|
"bin": "./dest/bin/index.js",
|
|
@@ -61,20 +61,20 @@
|
|
|
61
61
|
]
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
|
-
"@aztec/accounts": "4.3.0-nightly.
|
|
65
|
-
"@aztec/archiver": "4.3.0-nightly.
|
|
66
|
-
"@aztec/aztec-node": "4.3.0-nightly.
|
|
67
|
-
"@aztec/aztec.js": "4.3.0-nightly.
|
|
68
|
-
"@aztec/bb-prover": "4.3.0-nightly.
|
|
69
|
-
"@aztec/constants": "4.3.0-nightly.
|
|
70
|
-
"@aztec/foundation": "4.3.0-nightly.
|
|
71
|
-
"@aztec/key-store": "4.3.0-nightly.
|
|
72
|
-
"@aztec/kv-store": "4.3.0-nightly.
|
|
73
|
-
"@aztec/protocol-contracts": "4.3.0-nightly.
|
|
74
|
-
"@aztec/pxe": "4.3.0-nightly.
|
|
75
|
-
"@aztec/simulator": "4.3.0-nightly.
|
|
76
|
-
"@aztec/stdlib": "4.3.0-nightly.
|
|
77
|
-
"@aztec/world-state": "4.3.0-nightly.
|
|
64
|
+
"@aztec/accounts": "4.3.0-nightly.20260510",
|
|
65
|
+
"@aztec/archiver": "4.3.0-nightly.20260510",
|
|
66
|
+
"@aztec/aztec-node": "4.3.0-nightly.20260510",
|
|
67
|
+
"@aztec/aztec.js": "4.3.0-nightly.20260510",
|
|
68
|
+
"@aztec/bb-prover": "4.3.0-nightly.20260510",
|
|
69
|
+
"@aztec/constants": "4.3.0-nightly.20260510",
|
|
70
|
+
"@aztec/foundation": "4.3.0-nightly.20260510",
|
|
71
|
+
"@aztec/key-store": "4.3.0-nightly.20260510",
|
|
72
|
+
"@aztec/kv-store": "4.3.0-nightly.20260510",
|
|
73
|
+
"@aztec/protocol-contracts": "4.3.0-nightly.20260510",
|
|
74
|
+
"@aztec/pxe": "4.3.0-nightly.20260510",
|
|
75
|
+
"@aztec/simulator": "4.3.0-nightly.20260510",
|
|
76
|
+
"@aztec/stdlib": "4.3.0-nightly.20260510",
|
|
77
|
+
"@aztec/world-state": "4.3.0-nightly.20260510",
|
|
78
78
|
"zod": "^3.23.8"
|
|
79
79
|
},
|
|
80
80
|
"devDependencies": {
|
package/src/oracle/interfaces.ts
CHANGED
|
@@ -6,6 +6,7 @@ import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
|
6
6
|
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
7
7
|
import type { EventSelector, FunctionSelector } from '@aztec/stdlib/abi';
|
|
8
8
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
9
|
+
import type { PrivateLog } from '@aztec/stdlib/logs';
|
|
9
10
|
import type { UInt64 } from '@aztec/stdlib/types';
|
|
10
11
|
|
|
11
12
|
// These interfaces complement the ones defined in PXE, and combined with those contain the full list of oracles used by
|
|
@@ -58,25 +59,29 @@ export interface ITxeExecutionOracle {
|
|
|
58
59
|
txHash: TxHash;
|
|
59
60
|
noteHashes: Fr[];
|
|
60
61
|
nullifiers: Fr[];
|
|
62
|
+
privateLogs: PrivateLog[];
|
|
61
63
|
}>;
|
|
62
64
|
getPrivateEvents(selector: EventSelector, contractAddress: AztecAddress, scope: AztecAddress): Promise<Fr[][]>;
|
|
63
65
|
privateCallNewFlow(
|
|
64
|
-
from: AztecAddress,
|
|
66
|
+
from: AztecAddress | undefined,
|
|
65
67
|
targetContractAddress: AztecAddress,
|
|
66
68
|
functionSelector: FunctionSelector,
|
|
67
69
|
args: Fr[],
|
|
68
70
|
argsHash: Fr,
|
|
69
71
|
isStaticCall: boolean,
|
|
72
|
+
additionalScopes: AztecAddress[],
|
|
70
73
|
jobId: string,
|
|
74
|
+
authorizedUtilityCallTargets: AztecAddress[],
|
|
71
75
|
): Promise<{ returnValues: Fr[]; offchainEffects: Fr[][] }>;
|
|
72
76
|
executeUtilityFunction(
|
|
73
77
|
targetContractAddress: AztecAddress,
|
|
74
78
|
functionSelector: FunctionSelector,
|
|
75
79
|
args: Fr[],
|
|
76
80
|
jobId: string,
|
|
81
|
+
authorizedUtilityCallTargets: AztecAddress[],
|
|
77
82
|
): Promise<Fr[]>;
|
|
78
83
|
publicCallNewFlow(
|
|
79
|
-
from: AztecAddress,
|
|
84
|
+
from: AztecAddress | undefined,
|
|
80
85
|
targetContractAddress: AztecAddress,
|
|
81
86
|
calldata: Fr[],
|
|
82
87
|
isStaticCall: boolean,
|
|
@@ -15,12 +15,14 @@ import {
|
|
|
15
15
|
CapsuleService,
|
|
16
16
|
CapsuleStore,
|
|
17
17
|
type ContractStore,
|
|
18
|
+
type ExecutionHooks,
|
|
18
19
|
NoteStore,
|
|
19
20
|
ORACLE_VERSION_MAJOR,
|
|
20
21
|
PrivateEventStore,
|
|
21
22
|
RecipientTaggingStore,
|
|
22
23
|
SenderAddressBookStore,
|
|
23
24
|
SenderTaggingStore,
|
|
25
|
+
composeHooks,
|
|
24
26
|
enrichPublicSimulationError,
|
|
25
27
|
} from '@aztec/pxe/server';
|
|
26
28
|
import {
|
|
@@ -184,7 +186,12 @@ export class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecutionOracl
|
|
|
184
186
|
|
|
185
187
|
const txEffects = block!.body.txEffects[0];
|
|
186
188
|
|
|
187
|
-
return {
|
|
189
|
+
return {
|
|
190
|
+
txHash: txEffects.txHash,
|
|
191
|
+
noteHashes: txEffects.noteHashes,
|
|
192
|
+
nullifiers: txEffects.nullifiers,
|
|
193
|
+
privateLogs: txEffects.privateLogs,
|
|
194
|
+
};
|
|
188
195
|
}
|
|
189
196
|
|
|
190
197
|
async syncContractNonOracleMethod(contractAddress: AztecAddress, scope: AztecAddress, jobId: string) {
|
|
@@ -313,13 +320,15 @@ export class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecutionOracl
|
|
|
313
320
|
}
|
|
314
321
|
|
|
315
322
|
async privateCallNewFlow(
|
|
316
|
-
from: AztecAddress,
|
|
323
|
+
from: AztecAddress | undefined,
|
|
317
324
|
targetContractAddress: AztecAddress = AztecAddress.zero(),
|
|
318
325
|
functionSelector: FunctionSelector = FunctionSelector.empty(),
|
|
319
326
|
args: Fr[],
|
|
320
327
|
argsHash: Fr = Fr.zero(),
|
|
321
328
|
isStaticCall: boolean = false,
|
|
329
|
+
additionalScopes: AztecAddress[] = [],
|
|
322
330
|
jobId: string,
|
|
331
|
+
authorizedUtilityCallTargets: AztecAddress[],
|
|
323
332
|
) {
|
|
324
333
|
this.logger.verbose(
|
|
325
334
|
`Executing external function ${await this.contractStore.getDebugFunctionName(targetContractAddress, functionSelector)}@${targetContractAddress} isStaticCall=${isStaticCall}`,
|
|
@@ -333,9 +342,7 @@ export class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecutionOracl
|
|
|
333
342
|
throw new Error(message);
|
|
334
343
|
}
|
|
335
344
|
|
|
336
|
-
|
|
337
|
-
// empty scope list which acts as deny-all: no notes are visible and no keys are accessible.
|
|
338
|
-
const effectiveScopes = from.isZero() ? [] : [from];
|
|
345
|
+
const scopes = from === undefined ? additionalScopes : [from, ...additionalScopes];
|
|
339
346
|
|
|
340
347
|
// Sync notes before executing private function to discover notes from previous transactions
|
|
341
348
|
const utilityExecutor = async (call: FunctionCall, execScopes: AztecAddress[]) => {
|
|
@@ -349,12 +356,13 @@ export class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecutionOracl
|
|
|
349
356
|
utilityExecutor,
|
|
350
357
|
blockHeader,
|
|
351
358
|
jobId,
|
|
352
|
-
|
|
359
|
+
scopes,
|
|
353
360
|
);
|
|
354
361
|
|
|
355
362
|
const blockNumber = await this.getNextBlockNumber();
|
|
356
363
|
|
|
357
|
-
const
|
|
364
|
+
const msgSender = from ?? AztecAddress.NULL_MSG_SENDER;
|
|
365
|
+
const callContext = new CallContext(msgSender, targetContractAddress, functionSelector, isStaticCall);
|
|
358
366
|
|
|
359
367
|
const gasLimits = new Gas(MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT, MAX_PROCESSABLE_L2_GAS);
|
|
360
368
|
const teardownGasLimits = new Gas(FALLBACK_TEARDOWN_DA_GAS_LIMIT, FALLBACK_TEARDOWN_L2_GAS_LIMIT);
|
|
@@ -392,19 +400,22 @@ export class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecutionOracl
|
|
|
392
400
|
senderTaggingStore: this.senderTaggingStore,
|
|
393
401
|
recipientTaggingStore: this.recipientTaggingStore,
|
|
394
402
|
senderAddressBookStore: this.senderAddressBookStore,
|
|
395
|
-
capsuleService: new CapsuleService(this.capsuleStore,
|
|
403
|
+
capsuleService: new CapsuleService(this.capsuleStore, scopes),
|
|
396
404
|
privateEventStore: this.privateEventStore,
|
|
397
405
|
contractSyncService: this.stateMachine.contractSyncService,
|
|
398
406
|
jobId,
|
|
399
407
|
totalPublicCalldataCount: 0,
|
|
400
408
|
sideEffectCounter: minRevertibleSideEffectCounter,
|
|
401
|
-
scopes
|
|
409
|
+
scopes,
|
|
402
410
|
// In TXE, the typical transaction entrypoint is skipped, so we need to simulate the actions that such a
|
|
403
411
|
// contract would perform, including setting senderForTags.
|
|
404
412
|
senderForTags: from,
|
|
405
413
|
simulator,
|
|
406
414
|
messageContextService: this.stateMachine.messageContextService,
|
|
407
415
|
l2TipsStore: this.stateMachine.node,
|
|
416
|
+
hooks: composeHooks({
|
|
417
|
+
authorizeUtilityCall: this.buildAuthorizeUtilityCallHook('private', authorizedUtilityCallTargets),
|
|
418
|
+
}),
|
|
408
419
|
});
|
|
409
420
|
|
|
410
421
|
// Note: This is a slight modification of simulator.run without any of the checks. Maybe we should modify simulator.run with a boolean value to skip checks.
|
|
@@ -548,7 +559,7 @@ export class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecutionOracl
|
|
|
548
559
|
}
|
|
549
560
|
|
|
550
561
|
async publicCallNewFlow(
|
|
551
|
-
from: AztecAddress,
|
|
562
|
+
from: AztecAddress | undefined,
|
|
552
563
|
targetContractAddress: AztecAddress,
|
|
553
564
|
calldata: Fr[],
|
|
554
565
|
isStaticCall: boolean,
|
|
@@ -616,7 +627,7 @@ export class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecutionOracl
|
|
|
616
627
|
// may require producing reverts.
|
|
617
628
|
const revertibleAccumulatedData = PrivateToPublicAccumulatedData.empty();
|
|
618
629
|
revertibleAccumulatedData.publicCallRequests[0] = new PublicCallRequest(
|
|
619
|
-
from,
|
|
630
|
+
from ?? AztecAddress.NULL_MSG_SENDER,
|
|
620
631
|
targetContractAddress,
|
|
621
632
|
isStaticCall,
|
|
622
633
|
calldataHash,
|
|
@@ -707,6 +718,7 @@ export class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecutionOracl
|
|
|
707
718
|
functionSelector: FunctionSelector,
|
|
708
719
|
args: Fr[],
|
|
709
720
|
jobId: string,
|
|
721
|
+
authorizedUtilityCallTargets: AztecAddress[],
|
|
710
722
|
) {
|
|
711
723
|
const artifact = await this.contractStore.getFunctionArtifact(targetContractAddress, functionSelector);
|
|
712
724
|
if (!artifact) {
|
|
@@ -737,10 +749,15 @@ export class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecutionOracl
|
|
|
737
749
|
returnTypes: [],
|
|
738
750
|
});
|
|
739
751
|
|
|
740
|
-
return this.executeUtilityCall(call, await this.keyStore.getAccounts(), jobId);
|
|
752
|
+
return this.executeUtilityCall(call, await this.keyStore.getAccounts(), jobId, authorizedUtilityCallTargets);
|
|
741
753
|
}
|
|
742
754
|
|
|
743
|
-
private async executeUtilityCall(
|
|
755
|
+
private async executeUtilityCall(
|
|
756
|
+
call: FunctionCall,
|
|
757
|
+
scopes: AztecAddress[],
|
|
758
|
+
jobId: string,
|
|
759
|
+
authorizedUtilityCallTargets: AztecAddress[] = [],
|
|
760
|
+
): Promise<Fr[]> {
|
|
744
761
|
const entryPointArtifact = await this.contractStore.getFunctionArtifactWithDebugMetadata(call.to, call.selector);
|
|
745
762
|
if (entryPointArtifact.functionType !== FunctionType.UTILITY) {
|
|
746
763
|
throw new Error(`Cannot run ${entryPointArtifact.functionType} function as utility`);
|
|
@@ -774,6 +791,9 @@ export class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecutionOracl
|
|
|
774
791
|
jobId,
|
|
775
792
|
scopes,
|
|
776
793
|
simulator,
|
|
794
|
+
hooks: composeHooks({
|
|
795
|
+
authorizeUtilityCall: this.buildAuthorizeUtilityCallHook('utility', authorizedUtilityCallTargets),
|
|
796
|
+
}),
|
|
777
797
|
});
|
|
778
798
|
const acirExecutionResult = await simulator
|
|
779
799
|
.executeUserCircuit(toACVMWitness(0, call.args), entryPointArtifact, new Oracle(oracle).toACIRCallback())
|
|
@@ -806,4 +826,17 @@ export class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecutionOracl
|
|
|
806
826
|
const header = await this.stateMachine.node.getBlockHeader('latest');
|
|
807
827
|
return header ? header.globalVariables.blockNumber : BlockNumber.ZERO;
|
|
808
828
|
}
|
|
829
|
+
|
|
830
|
+
private buildAuthorizeUtilityCallHook(
|
|
831
|
+
callerContext: 'private' | 'utility',
|
|
832
|
+
authorizedTargets: AztecAddress[],
|
|
833
|
+
): ExecutionHooks['authorizeUtilityCall'] | undefined {
|
|
834
|
+
if (authorizedTargets.length === 0) {
|
|
835
|
+
return undefined;
|
|
836
|
+
}
|
|
837
|
+
return req =>
|
|
838
|
+
Promise.resolve({
|
|
839
|
+
authorized: req.callerContext === callerContext && authorizedTargets.some(t => t.equals(req.target)),
|
|
840
|
+
});
|
|
841
|
+
}
|
|
809
842
|
}
|
package/src/rpc_translator.ts
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import type { ContractInstanceWithAddress } from '@aztec/aztec.js/contracts';
|
|
2
2
|
import { Fr, Point } from '@aztec/aztec.js/fields';
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
MAX_NOTE_HASHES_PER_TX,
|
|
5
|
+
MAX_NULLIFIERS_PER_TX,
|
|
6
|
+
MAX_PRIVATE_LOGS_PER_TX,
|
|
7
|
+
PRIVATE_LOG_CIPHERTEXT_LEN,
|
|
8
|
+
PRIVATE_LOG_SIZE_IN_FIELDS,
|
|
9
|
+
} from '@aztec/constants';
|
|
4
10
|
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
5
11
|
import {
|
|
6
12
|
type IMiscOracle,
|
|
@@ -289,12 +295,38 @@ export class RPCTranslator {
|
|
|
289
295
|
|
|
290
296
|
// eslint-disable-next-line camelcase
|
|
291
297
|
async aztec_txe_getLastTxEffects() {
|
|
292
|
-
const { txHash, noteHashes, nullifiers } = await this.handlerAsTxe().getLastTxEffects();
|
|
298
|
+
const { txHash, noteHashes, nullifiers, privateLogs } = await this.handlerAsTxe().getLastTxEffects();
|
|
299
|
+
|
|
300
|
+
if (privateLogs.length > MAX_PRIVATE_LOGS_PER_TX) {
|
|
301
|
+
throw new Error(`${privateLogs.length} private logs exceed max ${MAX_PRIVATE_LOGS_PER_TX}`);
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
// Same workaround as `aztec_txe_getPrivateEvents`: Noir cannot yet return nested structs with arrays, so we return
|
|
305
|
+
// a flat multidimensional array plus per-log lengths and the total count, and reassemble into a
|
|
306
|
+
// `BoundedVec<BoundedVec<T>>` on the Noir side. Each log contributes only its emitted fields. The rest
|
|
307
|
+
// is zero-padded to `PRIVATE_LOG_SIZE_IN_FIELDS`.
|
|
308
|
+
const emittedLogs = privateLogs.map(log => log.getEmittedFields());
|
|
309
|
+
|
|
310
|
+
const rawLogStorage = emittedLogs
|
|
311
|
+
.map(fields => fields.concat(Array(PRIVATE_LOG_SIZE_IN_FIELDS - fields.length).fill(new Fr(0))))
|
|
312
|
+
.concat(
|
|
313
|
+
Array(MAX_PRIVATE_LOGS_PER_TX - emittedLogs.length).fill(Array(PRIVATE_LOG_SIZE_IN_FIELDS).fill(new Fr(0))),
|
|
314
|
+
)
|
|
315
|
+
.flat();
|
|
316
|
+
|
|
317
|
+
const logLengths = emittedLogs
|
|
318
|
+
.map(fields => new Fr(fields.length))
|
|
319
|
+
.concat(Array(MAX_PRIVATE_LOGS_PER_TX - emittedLogs.length).fill(new Fr(0)));
|
|
320
|
+
|
|
321
|
+
const logCount = new Fr(emittedLogs.length);
|
|
293
322
|
|
|
294
323
|
return toForeignCallResult([
|
|
295
324
|
toSingle(txHash.hash),
|
|
296
325
|
...arrayToBoundedVec(toArray(noteHashes), MAX_NOTE_HASHES_PER_TX),
|
|
297
326
|
...arrayToBoundedVec(toArray(nullifiers), MAX_NULLIFIERS_PER_TX),
|
|
327
|
+
toArray(rawLogStorage),
|
|
328
|
+
toArray(logLengths),
|
|
329
|
+
toSingle(logCount),
|
|
298
330
|
]);
|
|
299
331
|
}
|
|
300
332
|
|
|
@@ -1312,19 +1344,26 @@ export class RPCTranslator {
|
|
|
1312
1344
|
|
|
1313
1345
|
// eslint-disable-next-line camelcase
|
|
1314
1346
|
async aztec_txe_privateCallNewFlow(
|
|
1315
|
-
|
|
1347
|
+
foreignFromIsSome: ForeignCallSingle,
|
|
1348
|
+
foreignFromValue: ForeignCallSingle,
|
|
1316
1349
|
foreignTargetContractAddress: ForeignCallSingle,
|
|
1317
1350
|
foreignFunctionSelector: ForeignCallSingle,
|
|
1318
1351
|
foreignArgs: ForeignCallArray,
|
|
1319
1352
|
foreignArgsHash: ForeignCallSingle,
|
|
1320
1353
|
foreignIsStaticCall: ForeignCallSingle,
|
|
1354
|
+
foreignAdditionalScopes: ForeignCallArray,
|
|
1355
|
+
foreignAuthorizedUtilityCallTargets: ForeignCallArray,
|
|
1321
1356
|
) {
|
|
1322
|
-
const from = addressFromSingle(
|
|
1357
|
+
const from = fromSingle(foreignFromIsSome).toBool() ? addressFromSingle(foreignFromValue) : undefined;
|
|
1323
1358
|
const targetContractAddress = addressFromSingle(foreignTargetContractAddress);
|
|
1324
1359
|
const functionSelector = FunctionSelector.fromField(fromSingle(foreignFunctionSelector));
|
|
1325
1360
|
const args = fromArray(foreignArgs);
|
|
1326
1361
|
const argsHash = fromSingle(foreignArgsHash);
|
|
1327
1362
|
const isStaticCall = fromSingle(foreignIsStaticCall).toBool();
|
|
1363
|
+
const additionalScopes = fromArray(foreignAdditionalScopes).map(field => AztecAddress.fromField(field));
|
|
1364
|
+
const authorizedUtilityCallTargets = fromArray(foreignAuthorizedUtilityCallTargets).map(field =>
|
|
1365
|
+
AztecAddress.fromField(field),
|
|
1366
|
+
);
|
|
1328
1367
|
|
|
1329
1368
|
const returnValues = await this.stateHandler.withTopLevelCallTracking(async () => {
|
|
1330
1369
|
const { returnValues, offchainEffects } = await this.handlerAsTxe().privateCallNewFlow(
|
|
@@ -1334,7 +1373,9 @@ export class RPCTranslator {
|
|
|
1334
1373
|
args,
|
|
1335
1374
|
argsHash,
|
|
1336
1375
|
isStaticCall,
|
|
1376
|
+
additionalScopes,
|
|
1337
1377
|
this.stateHandler.getCurrentJob(),
|
|
1378
|
+
authorizedUtilityCallTargets,
|
|
1338
1379
|
);
|
|
1339
1380
|
|
|
1340
1381
|
// Private execution collects offchain effects inside PXE's PrivateExecutionOracle rather than
|
|
@@ -1366,10 +1407,14 @@ export class RPCTranslator {
|
|
|
1366
1407
|
foreignTargetContractAddress: ForeignCallSingle,
|
|
1367
1408
|
foreignFunctionSelector: ForeignCallSingle,
|
|
1368
1409
|
foreignArgs: ForeignCallArray,
|
|
1410
|
+
foreignAuthorizedUtilityCallTargets: ForeignCallArray,
|
|
1369
1411
|
) {
|
|
1370
1412
|
const targetContractAddress = addressFromSingle(foreignTargetContractAddress);
|
|
1371
1413
|
const functionSelector = FunctionSelector.fromField(fromSingle(foreignFunctionSelector));
|
|
1372
1414
|
const args = fromArray(foreignArgs);
|
|
1415
|
+
const authorizedUtilityCallTargets = fromArray(foreignAuthorizedUtilityCallTargets).map(field =>
|
|
1416
|
+
AztecAddress.fromField(field),
|
|
1417
|
+
);
|
|
1373
1418
|
|
|
1374
1419
|
const returnValues = await this.stateHandler.withTopLevelCallTracking(async () => {
|
|
1375
1420
|
const returnValues = await this.handlerAsTxe().executeUtilityFunction(
|
|
@@ -1377,6 +1422,7 @@ export class RPCTranslator {
|
|
|
1377
1422
|
functionSelector,
|
|
1378
1423
|
args,
|
|
1379
1424
|
this.stateHandler.getCurrentJob(),
|
|
1425
|
+
authorizedUtilityCallTargets,
|
|
1380
1426
|
);
|
|
1381
1427
|
|
|
1382
1428
|
// TODO(F-335): Avoid doing the following call here.
|
|
@@ -1390,12 +1436,13 @@ export class RPCTranslator {
|
|
|
1390
1436
|
|
|
1391
1437
|
// eslint-disable-next-line camelcase
|
|
1392
1438
|
async aztec_txe_publicCallNewFlow(
|
|
1393
|
-
|
|
1439
|
+
foreignFromIsSome: ForeignCallSingle,
|
|
1440
|
+
foreignFromValue: ForeignCallSingle,
|
|
1394
1441
|
foreignAddress: ForeignCallSingle,
|
|
1395
1442
|
foreignCalldata: ForeignCallArray,
|
|
1396
1443
|
foreignIsStaticCall: ForeignCallSingle,
|
|
1397
1444
|
) {
|
|
1398
|
-
const from = addressFromSingle(
|
|
1445
|
+
const from = fromSingle(foreignFromIsSome).toBool() ? addressFromSingle(foreignFromValue) : undefined;
|
|
1399
1446
|
const address = addressFromSingle(foreignAddress);
|
|
1400
1447
|
const calldata = fromArray(foreignCalldata);
|
|
1401
1448
|
const isStaticCall = fromSingle(foreignIsStaticCall).toBool();
|