@aztec/txe 3.0.0-nightly.20250925 → 3.0.0-nightly.20250927
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 +51 -0
- package/dest/oracle/interfaces.d.ts.map +1 -0
- package/dest/oracle/interfaces.js +3 -0
- package/dest/oracle/txe_oracle_public_context.d.ts +5 -3
- package/dest/oracle/txe_oracle_public_context.d.ts.map +1 -1
- package/dest/oracle/txe_oracle_public_context.js +14 -3
- package/dest/oracle/txe_oracle_top_level_context.d.ts +9 -7
- package/dest/oracle/txe_oracle_top_level_context.d.ts.map +1 -1
- package/dest/oracle/txe_oracle_top_level_context.js +24 -24
- package/dest/rpc_translator.d.ts +13 -4
- package/dest/rpc_translator.d.ts.map +1 -1
- package/dest/rpc_translator.js +101 -66
- package/dest/txe_session.d.ts +15 -15
- package/dest/txe_session.d.ts.map +1 -1
- package/dest/txe_session.js +141 -99
- package/dest/utils/tx_effect_creation.d.ts +5 -0
- package/dest/utils/tx_effect_creation.d.ts.map +1 -0
- package/dest/utils/tx_effect_creation.js +16 -0
- package/package.json +15 -15
- package/src/oracle/interfaces.ts +80 -0
- package/src/oracle/txe_oracle_public_context.ts +20 -15
- package/src/oracle/txe_oracle_top_level_context.ts +26 -43
- package/src/rpc_translator.ts +125 -69
- package/src/txe_session.ts +196 -120
- package/src/utils/tx_effect_creation.ts +37 -0
- package/dest/oracle/txe_oracle.d.ts +0 -64
- package/dest/oracle/txe_oracle.d.ts.map +0 -1
- package/dest/oracle/txe_oracle.js +0 -263
- package/dest/oracle/txe_typed_oracle.d.ts +0 -41
- package/dest/oracle/txe_typed_oracle.d.ts.map +0 -1
- package/dest/oracle/txe_typed_oracle.js +0 -89
- package/src/oracle/txe_oracle.ts +0 -419
- package/src/oracle/txe_typed_oracle.ts +0 -147
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { CompleteAddress, ContractArtifact, ContractInstanceWithAddress, TxHash } from '@aztec/aztec.js';
|
|
2
|
+
import type { Fr } from '@aztec/foundation/fields';
|
|
3
|
+
import type { FunctionSelector } from '@aztec/stdlib/abi';
|
|
4
|
+
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
5
|
+
import type { UInt32, UInt64 } from '@aztec/stdlib/types';
|
|
6
|
+
/**
|
|
7
|
+
* Oracle methods associated with the execution of an Aztec #[public] function.
|
|
8
|
+
*
|
|
9
|
+
* Note that real contracts have their Brillig calls to these be transpiled into opcodes, the oracles are only executed
|
|
10
|
+
* as such when running the original Brillig code, e.g. when invoking functions that interact with a PublicContext
|
|
11
|
+
* directly in a Noir test.
|
|
12
|
+
*/
|
|
13
|
+
export interface IAvmExecutionOracle {
|
|
14
|
+
isAvm: true;
|
|
15
|
+
avmOpcodeAddress(): Promise<AztecAddress>;
|
|
16
|
+
avmOpcodeSender(): Promise<AztecAddress>;
|
|
17
|
+
avmOpcodeBlockNumber(): Promise<UInt32>;
|
|
18
|
+
avmOpcodeTimestamp(): Promise<bigint>;
|
|
19
|
+
avmOpcodeIsStaticCall(): Promise<boolean>;
|
|
20
|
+
avmOpcodeChainId(): Promise<Fr>;
|
|
21
|
+
avmOpcodeVersion(): Promise<Fr>;
|
|
22
|
+
avmOpcodeEmitNullifier(nullifier: Fr): Promise<void>;
|
|
23
|
+
avmOpcodeEmitNoteHash(noteHash: Fr): Promise<void>;
|
|
24
|
+
avmOpcodeNullifierExists(innerNullifier: Fr, targetAddress: AztecAddress): Promise<boolean>;
|
|
25
|
+
avmOpcodeStorageWrite(slot: Fr, value: Fr): Promise<void>;
|
|
26
|
+
avmOpcodeStorageRead(slot: Fr): Promise<Fr>;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Oracle methods associated with the execution of an Aztec Noir test.
|
|
30
|
+
*/
|
|
31
|
+
export interface ITxeExecutionOracle {
|
|
32
|
+
isTxe: true;
|
|
33
|
+
txeGetNextBlockNumber(): Promise<number>;
|
|
34
|
+
txeGetNextBlockTimestamp(): Promise<UInt64>;
|
|
35
|
+
txeAdvanceBlocksBy(blocks: number): Promise<void>;
|
|
36
|
+
txeAdvanceTimestampBy(duration: UInt64): void;
|
|
37
|
+
txeDeploy(artifact: ContractArtifact, instance: ContractInstanceWithAddress, foreignSecret: Fr): Promise<void>;
|
|
38
|
+
txeCreateAccount(secret: Fr): Promise<CompleteAddress>;
|
|
39
|
+
txeAddAccount(artifact: ContractArtifact, instance: ContractInstanceWithAddress, secret: Fr): Promise<CompleteAddress>;
|
|
40
|
+
txeAddAuthWitness(address: AztecAddress, messageHash: Fr): Promise<void>;
|
|
41
|
+
txeGetLastBlockTimestamp(): Promise<bigint>;
|
|
42
|
+
txeGetLastTxEffects(): Promise<{
|
|
43
|
+
txHash: TxHash;
|
|
44
|
+
noteHashes: Fr[];
|
|
45
|
+
nullifiers: Fr[];
|
|
46
|
+
}>;
|
|
47
|
+
txePrivateCallNewFlow(from: AztecAddress, targetContractAddress: AztecAddress, functionSelector: FunctionSelector, args: Fr[], argsHash: Fr, isStaticCall: boolean): Promise<Fr[]>;
|
|
48
|
+
txeSimulateUtilityFunction(targetContractAddress: AztecAddress, functionSelector: FunctionSelector, args: Fr[]): Promise<Fr[]>;
|
|
49
|
+
txePublicCallNewFlow(from: AztecAddress, targetContractAddress: AztecAddress, calldata: Fr[], isStaticCall: boolean): Promise<Fr[]>;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=interfaces.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/oracle/interfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
import { Fr } from '@aztec/foundation/fields';
|
|
2
|
-
import
|
|
2
|
+
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
3
3
|
import { L2Block } from '@aztec/stdlib/block';
|
|
4
4
|
import { type MerkleTreeWriteOperations } from '@aztec/stdlib/trees';
|
|
5
5
|
import { GlobalVariables } from '@aztec/stdlib/tx';
|
|
6
6
|
import type { UInt32 } from '@aztec/stdlib/types';
|
|
7
|
-
import {
|
|
8
|
-
export declare class TXEOraclePublicContext
|
|
7
|
+
import type { IAvmExecutionOracle } from './interfaces.js';
|
|
8
|
+
export declare class TXEOraclePublicContext implements IAvmExecutionOracle {
|
|
9
9
|
private contractAddress;
|
|
10
10
|
private forkedWorldTrees;
|
|
11
11
|
private txRequestHash;
|
|
12
12
|
private globalVariables;
|
|
13
|
+
isAvm: true;
|
|
13
14
|
private logger;
|
|
14
15
|
private transientUniqueNoteHashes;
|
|
15
16
|
private transientSiloedNullifiers;
|
|
16
17
|
private publicDataWrites;
|
|
17
18
|
constructor(contractAddress: AztecAddress, forkedWorldTrees: MerkleTreeWriteOperations, txRequestHash: Fr, globalVariables: GlobalVariables);
|
|
18
19
|
avmOpcodeAddress(): Promise<AztecAddress>;
|
|
20
|
+
avmOpcodeSender(): Promise<AztecAddress>;
|
|
19
21
|
avmOpcodeBlockNumber(): Promise<UInt32>;
|
|
20
22
|
avmOpcodeTimestamp(): Promise<bigint>;
|
|
21
23
|
avmOpcodeIsStaticCall(): Promise<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"txe_oracle_public_context.d.ts","sourceRoot":"","sources":["../../src/oracle/txe_oracle_public_context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAG9C,OAAO,
|
|
1
|
+
{"version":3,"file":"txe_oracle_public_context.d.ts","sourceRoot":"","sources":["../../src/oracle/txe_oracle_public_context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAQ,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,EAEL,KAAK,yBAAyB,EAG/B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAoB,MAAM,kBAAkB,CAAC;AACrE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGlD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,qBAAa,sBAAuB,YAAW,mBAAmB;IAS9D,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,eAAe;IAXzB,KAAK,EAAG,IAAI,CAAU;IAEtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,yBAAyB,CAAY;IAC7C,OAAO,CAAC,yBAAyB,CAAY;IAC7C,OAAO,CAAC,gBAAgB,CAAyB;gBAGvC,eAAe,EAAE,YAAY,EAC7B,gBAAgB,EAAE,yBAAyB,EAC3C,aAAa,EAAE,EAAE,EACjB,eAAe,EAAE,eAAe;IAW1C,gBAAgB,IAAI,OAAO,CAAC,YAAY,CAAC;IAIzC,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC;IAIxC,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC;IAIvC,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAIrC,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC;IAIzC,gBAAgB,IAAI,OAAO,CAAC,EAAE,CAAC;IAI/B,gBAAgB,IAAI,OAAO,CAAC,EAAE,CAAC;IAIzB,sBAAsB,CAAC,SAAS,EAAE,EAAE;IAKpC,qBAAqB,CAAC,QAAQ,EAAE,EAAE;IAMlC,wBAAwB,CAAC,cAAc,EAAE,EAAE,EAAE,aAAa,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAW3F,qBAAqB,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE;IAYzC,oBAAoB,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;IAuB3C,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;IAwB/B,OAAO,CAAC,YAAY;CAarB"}
|
|
@@ -1,24 +1,32 @@
|
|
|
1
1
|
import { Fr } from '@aztec/foundation/fields';
|
|
2
2
|
import { createLogger } from '@aztec/foundation/log';
|
|
3
3
|
import { PublicDataWrite } from '@aztec/stdlib/avm';
|
|
4
|
+
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
4
5
|
import { Body, L2Block } from '@aztec/stdlib/block';
|
|
5
6
|
import { computePublicDataTreeLeafSlot, siloNoteHash, siloNullifier } from '@aztec/stdlib/hash';
|
|
6
7
|
import { makeAppendOnlyTreeSnapshot } from '@aztec/stdlib/testing';
|
|
7
8
|
import { MerkleTreeId, PublicDataTreeLeaf } from '@aztec/stdlib/trees';
|
|
8
9
|
import { TxEffect, TxHash } from '@aztec/stdlib/tx';
|
|
9
10
|
import { insertTxEffectIntoWorldTrees, makeTXEBlockHeader } from '../utils/block_creation.js';
|
|
10
|
-
|
|
11
|
-
export class TXEOraclePublicContext extends TXETypedOracle {
|
|
11
|
+
export class TXEOraclePublicContext {
|
|
12
12
|
contractAddress;
|
|
13
13
|
forkedWorldTrees;
|
|
14
14
|
txRequestHash;
|
|
15
15
|
globalVariables;
|
|
16
|
+
isAvm;
|
|
16
17
|
logger;
|
|
17
18
|
transientUniqueNoteHashes;
|
|
18
19
|
transientSiloedNullifiers;
|
|
19
20
|
publicDataWrites;
|
|
20
21
|
constructor(contractAddress, forkedWorldTrees, txRequestHash, globalVariables){
|
|
21
|
-
|
|
22
|
+
this.contractAddress = contractAddress;
|
|
23
|
+
this.forkedWorldTrees = forkedWorldTrees;
|
|
24
|
+
this.txRequestHash = txRequestHash;
|
|
25
|
+
this.globalVariables = globalVariables;
|
|
26
|
+
this.isAvm = true;
|
|
27
|
+
this.transientUniqueNoteHashes = [];
|
|
28
|
+
this.transientSiloedNullifiers = [];
|
|
29
|
+
this.publicDataWrites = [];
|
|
22
30
|
this.logger = createLogger('txe:public_context');
|
|
23
31
|
this.logger.debug('Entering Public Context', {
|
|
24
32
|
contractAddress,
|
|
@@ -29,6 +37,9 @@ export class TXEOraclePublicContext extends TXETypedOracle {
|
|
|
29
37
|
avmOpcodeAddress() {
|
|
30
38
|
return Promise.resolve(this.contractAddress);
|
|
31
39
|
}
|
|
40
|
+
avmOpcodeSender() {
|
|
41
|
+
return Promise.resolve(AztecAddress.ZERO); // todo: change?
|
|
42
|
+
}
|
|
32
43
|
avmOpcodeBlockNumber() {
|
|
33
44
|
return Promise.resolve(this.globalVariables.blockNumber);
|
|
34
45
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { Fr } from '@aztec/foundation/fields';
|
|
2
2
|
import type { KeyStore } from '@aztec/key-store';
|
|
3
3
|
import { AddressDataProvider, PXEOracleInterface } from '@aztec/pxe/server';
|
|
4
|
-
import {
|
|
4
|
+
import { type IMiscOracle } from '@aztec/pxe/simulator';
|
|
5
5
|
import { type ContractArtifact, FunctionSelector } from '@aztec/stdlib/abi';
|
|
6
|
+
import { AuthWitness } from '@aztec/stdlib/auth-witness';
|
|
6
7
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
7
8
|
import { type ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
8
9
|
import { TxHash } from '@aztec/stdlib/tx';
|
|
@@ -10,8 +11,8 @@ import type { UInt64 } from '@aztec/stdlib/types';
|
|
|
10
11
|
import type { TXEStateMachine } from '../state_machine/index.js';
|
|
11
12
|
import type { TXEAccountDataProvider } from '../util/txe_account_data_provider.js';
|
|
12
13
|
import type { TXEContractDataProvider } from '../util/txe_contract_data_provider.js';
|
|
13
|
-
import {
|
|
14
|
-
export declare class TXEOracleTopLevelContext
|
|
14
|
+
import type { ITxeExecutionOracle } from './interfaces.js';
|
|
15
|
+
export declare class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecutionOracle {
|
|
15
16
|
private stateMachine;
|
|
16
17
|
private contractDataProvider;
|
|
17
18
|
private keyStore;
|
|
@@ -21,13 +22,14 @@ export declare class TXEOracleTopLevelContext extends TXETypedOracle {
|
|
|
21
22
|
private nextBlockTimestamp;
|
|
22
23
|
private version;
|
|
23
24
|
private chainId;
|
|
24
|
-
private logger;
|
|
25
25
|
private authwits;
|
|
26
|
-
|
|
26
|
+
isMisc: true;
|
|
27
|
+
isTxe: true;
|
|
28
|
+
private logger;
|
|
29
|
+
constructor(stateMachine: TXEStateMachine, contractDataProvider: TXEContractDataProvider, keyStore: KeyStore, addressDataProvider: AddressDataProvider, accountDataProvider: TXEAccountDataProvider, pxeOracleInterface: PXEOracleInterface, nextBlockTimestamp: bigint, version: Fr, chainId: Fr, authwits: Map<string, AuthWitness>);
|
|
27
30
|
utilityAssertCompatibleOracleVersion(version: number): void;
|
|
28
31
|
utilityGetRandomField(): Fr;
|
|
29
32
|
utilityDebugLog(message: string, fields: Fr[]): void;
|
|
30
|
-
utilityGetUtilityContext(): Promise<UtilityContext>;
|
|
31
33
|
txeGetNextBlockNumber(): Promise<number>;
|
|
32
34
|
txeGetNextBlockTimestamp(): Promise<bigint>;
|
|
33
35
|
txeGetLastBlockTimestamp(): Promise<bigint>;
|
|
@@ -48,7 +50,7 @@ export declare class TXEOracleTopLevelContext extends TXETypedOracle {
|
|
|
48
50
|
txePrivateCallNewFlow(from: AztecAddress, targetContractAddress: AztecAddress | undefined, functionSelector: FunctionSelector | undefined, args: Fr[], argsHash?: Fr, isStaticCall?: boolean): Promise<Fr[]>;
|
|
49
51
|
txePublicCallNewFlow(from: AztecAddress, targetContractAddress: AztecAddress, calldata: Fr[], isStaticCall: boolean): Promise<Fr[]>;
|
|
50
52
|
txeSimulateUtilityFunction(targetContractAddress: AztecAddress, functionSelector: FunctionSelector, args: Fr[]): Promise<Fr[]>;
|
|
51
|
-
close(): bigint;
|
|
53
|
+
close(): [bigint, Map<string, AuthWitness>];
|
|
52
54
|
private getLastBlockNumber;
|
|
53
55
|
}
|
|
54
56
|
//# sourceMappingURL=txe_oracle_top_level_context.d.ts.map
|
|
@@ -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":"AASA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAG9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EACL,mBAAmB,EAEnB,kBAAkB,EAEnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,
|
|
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 { Fr } from '@aztec/foundation/fields';
|
|
|
4
4
|
import { applyStringFormatting, createLogger } from '@aztec/foundation/log';
|
|
5
5
|
import { TestDateProvider } from '@aztec/foundation/timer';
|
|
6
6
|
import { ORACLE_VERSION, enrichPublicSimulationError } from '@aztec/pxe/server';
|
|
7
|
-
import { ExecutionNoteCache, HashedValuesCache, Oracle, PrivateExecutionOracle,
|
|
7
|
+
import { ExecutionNoteCache, HashedValuesCache, Oracle, PrivateExecutionOracle, UtilityExecutionOracle, executePrivateFunction, generateSimulatedProvingResult } from '@aztec/pxe/simulator';
|
|
8
8
|
import { ExecutionError, WASMSimulator, createSimulationError, extractCallStack, resolveAssertionMessageFromError, toACVMWitness, witnessMapToFields } from '@aztec/simulator/client';
|
|
9
9
|
import { GuardedMerkleTreeOperations, PublicContractsDB, PublicProcessor, PublicTxSimulator } from '@aztec/simulator/server';
|
|
10
10
|
import { FunctionSelector, FunctionType } from '@aztec/stdlib/abi';
|
|
@@ -22,8 +22,7 @@ import { CallContext, HashedValues, PrivateExecutionResult, Tx, TxConstantData,
|
|
|
22
22
|
import { ForkCheckpoint } from '@aztec/world-state';
|
|
23
23
|
import { TXEPublicContractDataSource } from '../util/txe_public_contract_data_source.js';
|
|
24
24
|
import { getSingleTxBlockRequestHash, insertTxEffectIntoWorldTrees, makeTXEBlockHeader } from '../utils/block_creation.js';
|
|
25
|
-
|
|
26
|
-
export class TXEOracleTopLevelContext extends TXETypedOracle {
|
|
25
|
+
export class TXEOracleTopLevelContext {
|
|
27
26
|
stateMachine;
|
|
28
27
|
contractDataProvider;
|
|
29
28
|
keyStore;
|
|
@@ -33,10 +32,23 @@ export class TXEOracleTopLevelContext extends TXETypedOracle {
|
|
|
33
32
|
nextBlockTimestamp;
|
|
34
33
|
version;
|
|
35
34
|
chainId;
|
|
36
|
-
logger;
|
|
37
35
|
authwits;
|
|
38
|
-
|
|
39
|
-
|
|
36
|
+
isMisc;
|
|
37
|
+
isTxe;
|
|
38
|
+
logger;
|
|
39
|
+
constructor(stateMachine, contractDataProvider, keyStore, addressDataProvider, accountDataProvider, pxeOracleInterface, nextBlockTimestamp, version, chainId, authwits){
|
|
40
|
+
this.stateMachine = stateMachine;
|
|
41
|
+
this.contractDataProvider = contractDataProvider;
|
|
42
|
+
this.keyStore = keyStore;
|
|
43
|
+
this.addressDataProvider = addressDataProvider;
|
|
44
|
+
this.accountDataProvider = accountDataProvider;
|
|
45
|
+
this.pxeOracleInterface = pxeOracleInterface;
|
|
46
|
+
this.nextBlockTimestamp = nextBlockTimestamp;
|
|
47
|
+
this.version = version;
|
|
48
|
+
this.chainId = chainId;
|
|
49
|
+
this.authwits = authwits;
|
|
50
|
+
this.isMisc = true;
|
|
51
|
+
this.isTxe = true;
|
|
40
52
|
this.logger = createLogger('txe:top_level_context');
|
|
41
53
|
this.logger.debug('Entering Top Level Context');
|
|
42
54
|
}
|
|
@@ -56,21 +68,6 @@ export class TXEOracleTopLevelContext extends TXETypedOracle {
|
|
|
56
68
|
module: `${this.logger.module}:debug_log`
|
|
57
69
|
});
|
|
58
70
|
}
|
|
59
|
-
// temporary - authwits require this, consider removing it once authwit support improves
|
|
60
|
-
utilityGetUtilityContext() {
|
|
61
|
-
// The zero values for block number, timestamp and contract address are unfortunate sideeffect of use replacing
|
|
62
|
-
// the utilityGetContractAddress, utilityGetBlockNumber, utilityGetTimestamp, utilityGetChainId and
|
|
63
|
-
// utilityGetVersion oracles with utilityGetUtilityContext. Having those values populated does not make sense here
|
|
64
|
-
// as they have no meaning in top level context. OTOH version and chain id also don't really make sense here so
|
|
65
|
-
// think it's fine to learn to live with this tech debt for now.
|
|
66
|
-
return Promise.resolve(UtilityContext.from({
|
|
67
|
-
blockNumber: 0,
|
|
68
|
-
timestamp: 0n,
|
|
69
|
-
contractAddress: AztecAddress.zero(),
|
|
70
|
-
version: this.version,
|
|
71
|
-
chainId: this.chainId
|
|
72
|
-
}));
|
|
73
|
-
}
|
|
74
71
|
async txeGetNextBlockNumber() {
|
|
75
72
|
return await this.getLastBlockNumber() + 1;
|
|
76
73
|
}
|
|
@@ -188,10 +185,10 @@ export class TXEOracleTopLevelContext extends TXETypedOracle {
|
|
|
188
185
|
const simulator = new WASMSimulator();
|
|
189
186
|
const privateExecutionOracle = new PrivateExecutionOracle(argsHash, txContext, callContext, /** Header of a block whose state is used during private execution (not the block the transaction is included in). */ blockHeader, /** List of transient auth witnesses to be used during this simulation */ Array.from(this.authwits.values()), /** List of transient auth witnesses to be used during this simulation */ [], HashedValuesCache.create([
|
|
190
187
|
new HashedValues(args, argsHash)
|
|
191
|
-
]), noteCache, this.pxeOracleInterface,
|
|
188
|
+
]), noteCache, this.pxeOracleInterface, 0, 1, undefined, undefined, /**
|
|
192
189
|
* In TXE, the typical transaction entrypoint is skipped, so we need to simulate the actions that such a
|
|
193
190
|
* contract would perform, including setting senderForTags.
|
|
194
|
-
*/ from);
|
|
191
|
+
*/ from, simulator);
|
|
195
192
|
// 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.
|
|
196
193
|
let result;
|
|
197
194
|
let executionResult;
|
|
@@ -404,7 +401,10 @@ export class TXEOracleTopLevelContext extends TXETypedOracle {
|
|
|
404
401
|
}
|
|
405
402
|
close() {
|
|
406
403
|
this.logger.debug('Exiting Top Level Context');
|
|
407
|
-
return
|
|
404
|
+
return [
|
|
405
|
+
this.nextBlockTimestamp,
|
|
406
|
+
this.authwits
|
|
407
|
+
];
|
|
408
408
|
}
|
|
409
409
|
async getLastBlockNumber() {
|
|
410
410
|
return (await this.stateMachine.node.getBlockHeader('latest'))?.globalVariables.blockNumber ?? 0;
|
package/dest/rpc_translator.d.ts
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import { type ContractInstanceWithAddress } from '@aztec/aztec.js';
|
|
2
|
+
import { type IMiscOracle, type IPrivateExecutionOracle, type IUtilityExecutionOracle } from '@aztec/pxe/simulator';
|
|
2
3
|
import { type ContractArtifact } from '@aztec/stdlib/abi';
|
|
3
|
-
import type {
|
|
4
|
+
import type { IAvmExecutionOracle, ITxeExecutionOracle } from './oracle/interfaces.js';
|
|
4
5
|
import type { TXESessionStateHandler } from './txe_session.js';
|
|
5
6
|
import { type ForeignCallArray, type ForeignCallSingle } from './util/encoding.js';
|
|
7
|
+
export declare class UnavailableOracleError extends Error {
|
|
8
|
+
constructor(oracleName: string);
|
|
9
|
+
}
|
|
6
10
|
export declare class RPCTranslator {
|
|
7
11
|
private stateHandler;
|
|
8
12
|
private oracleHandler;
|
|
@@ -15,7 +19,12 @@ export declare class RPCTranslator {
|
|
|
15
19
|
* @param oracleHandler The handler that will process all other oracle calls that are not directly related to session
|
|
16
20
|
* state.
|
|
17
21
|
*/
|
|
18
|
-
constructor(stateHandler: TXESessionStateHandler, oracleHandler:
|
|
22
|
+
constructor(stateHandler: TXESessionStateHandler, oracleHandler: IMiscOracle | IUtilityExecutionOracle | IPrivateExecutionOracle | IAvmExecutionOracle | ITxeExecutionOracle);
|
|
23
|
+
private handlerAsMisc;
|
|
24
|
+
private handlerAsUtility;
|
|
25
|
+
private handlerAsPrivate;
|
|
26
|
+
private handlerAsAvm;
|
|
27
|
+
private handlerAsTxe;
|
|
19
28
|
txeSetTopLevelTXEContext(): Promise<{
|
|
20
29
|
values: (string | ForeignCallArray)[];
|
|
21
30
|
}>;
|
|
@@ -174,9 +183,9 @@ export declare class RPCTranslator {
|
|
|
174
183
|
avmOpcodeGetContractInstanceInitializationHash(foreignAddress: ForeignCallSingle): Promise<{
|
|
175
184
|
values: (string | ForeignCallArray)[];
|
|
176
185
|
}>;
|
|
177
|
-
avmOpcodeSender(): {
|
|
186
|
+
avmOpcodeSender(): Promise<{
|
|
178
187
|
values: (string | ForeignCallArray)[];
|
|
179
|
-
}
|
|
188
|
+
}>;
|
|
180
189
|
avmOpcodeEmitNullifier(foreignNullifier: ForeignCallSingle): Promise<{
|
|
181
190
|
values: (string | ForeignCallArray)[];
|
|
182
191
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc_translator.d.ts","sourceRoot":"","sources":["../src/rpc_translator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,2BAA2B,EAAa,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"rpc_translator.d.ts","sourceRoot":"","sources":["../src/rpc_translator.ts"],"names":[],"mappings":"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"}
|