@aztec/txe 0.0.1-commit.fff30aa → 0.0.1-dev

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.
@@ -1,10 +1,13 @@
1
1
  import { Fr, Point } from '@aztec/aztec.js/fields';
2
- import { MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX } from '@aztec/constants';
2
+ import { ARCHIVE_HEIGHT, 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
+ import { MembershipWitness } from '@aztec/foundation/trees';
4
5
  import { packAsHintedNote } from '@aztec/pxe/simulator';
5
6
  import { EventSelector, FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
6
7
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
7
8
  import { BlockHash } from '@aztec/stdlib/block';
9
+ import { GasSettings } from '@aztec/stdlib/gas';
10
+ import { TXE_ORACLE_VERSION_MAJOR } from './txe_oracle_version.js';
8
11
  import { addressFromSingle, arrayOfArraysToBoundedVecOfArrays, arrayToBoundedVec, bufferToU8Array, fromArray, fromSingle, fromUintArray, fromUintBoundedVec, toArray, toForeignCallResult, toSingle } from './util/encoding.js';
9
12
  const MAX_EVENT_LEN = 10; // This is MAX_MESSAGE_CONTENT_LEN - PRIVATE_EVENT_MSG_PLAINTEXT_RESERVED_FIELDS_LEN
10
13
  const MAX_PRIVATE_EVENTS_PER_TXE_QUERY = 5;
@@ -60,6 +63,20 @@ export class RPCTranslator {
60
63
  }
61
64
  return this.oracleHandler;
62
65
  }
66
+ // eslint-disable-next-line camelcase
67
+ aztec_txe_assertCompatibleOracleVersion(foreignMajor, foreignMinor) {
68
+ const major = fromSingle(foreignMajor).toNumber();
69
+ const minor = fromSingle(foreignMinor).toNumber();
70
+ if (major !== TXE_ORACLE_VERSION_MAJOR) {
71
+ const hint = major > TXE_ORACLE_VERSION_MAJOR ? 'The test was compiled with a newer version of Aztec.nr than your test environment supports. Upgrade your test environment to a compatible version.' : 'The test was compiled with an older version of Aztec.nr than your test environment supports. Recompile the test with a compatible version of Aztec.nr.';
72
+ throw new Error(`Incompatible test environment version: ${hint} See https://docs.aztec.network/errors/12 (expected test oracle major version ${TXE_ORACLE_VERSION_MAJOR}, got ${major})`);
73
+ }
74
+ this.stateHandler.setTxeOracleVersion({
75
+ major,
76
+ minor
77
+ });
78
+ return toForeignCallResult([]);
79
+ }
63
80
  // TXE session state transition functions - these get handled by the state handler
64
81
  // eslint-disable-next-line camelcase
65
82
  async aztec_txe_setTopLevelTXEContext() {
@@ -67,10 +84,11 @@ export class RPCTranslator {
67
84
  return toForeignCallResult([]);
68
85
  }
69
86
  // eslint-disable-next-line camelcase
70
- async aztec_txe_setPrivateTXEContext(foreignContractAddressIsSome, foreignContractAddressValue, foreignAnchorBlockNumberIsSome, foreignAnchorBlockNumberValue) {
87
+ async aztec_txe_setPrivateTXEContext(foreignContractAddressIsSome, foreignContractAddressValue, foreignAnchorBlockNumberIsSome, foreignAnchorBlockNumberValue, foreignGasSettings) {
71
88
  const contractAddress = fromSingle(foreignContractAddressIsSome).toBool() ? AztecAddress.fromField(fromSingle(foreignContractAddressValue)) : undefined;
72
89
  const anchorBlockNumber = fromSingle(foreignAnchorBlockNumberIsSome).toBool() ? BlockNumber(fromSingle(foreignAnchorBlockNumberValue).toNumber()) : undefined;
73
- const privateContextInputs = await this.stateHandler.enterPrivateState(contractAddress, anchorBlockNumber);
90
+ const gasSettings = GasSettings.fromFields(fromArray(foreignGasSettings));
91
+ const privateContextInputs = await this.stateHandler.enterPrivateState(contractAddress, anchorBlockNumber, gasSettings);
74
92
  return toForeignCallResult(privateContextInputs.toFields().map(toSingle));
75
93
  }
76
94
  // eslint-disable-next-line camelcase
@@ -183,11 +201,58 @@ export class RPCTranslator {
183
201
  }
184
202
  // eslint-disable-next-line camelcase
185
203
  async aztec_txe_getLastTxEffects() {
186
- const { txHash, noteHashes, nullifiers } = await this.handlerAsTxe().getLastTxEffects();
204
+ const { txHash, noteHashes, nullifiers, privateLogs } = await this.handlerAsTxe().getLastTxEffects();
205
+ if (privateLogs.length > MAX_PRIVATE_LOGS_PER_TX) {
206
+ throw new Error(`${privateLogs.length} private logs exceed max ${MAX_PRIVATE_LOGS_PER_TX}`);
207
+ }
208
+ // Same workaround as `aztec_txe_getPrivateEvents`: Noir cannot yet return nested structs with arrays, so we return
209
+ // a flat multidimensional array plus per-log lengths and the total count, and reassemble into a
210
+ // `BoundedVec<BoundedVec<T>>` on the Noir side. Each log contributes only its emitted fields. The rest
211
+ // is zero-padded to `PRIVATE_LOG_SIZE_IN_FIELDS`.
212
+ const emittedLogs = privateLogs.map((log)=>log.getEmittedFields());
213
+ 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();
214
+ const logLengths = emittedLogs.map((fields)=>new Fr(fields.length)).concat(Array(MAX_PRIVATE_LOGS_PER_TX - emittedLogs.length).fill(new Fr(0)));
215
+ const logCount = new Fr(emittedLogs.length);
187
216
  return toForeignCallResult([
188
217
  toSingle(txHash.hash),
189
218
  ...arrayToBoundedVec(toArray(noteHashes), MAX_NOTE_HASHES_PER_TX),
190
- ...arrayToBoundedVec(toArray(nullifiers), MAX_NULLIFIERS_PER_TX)
219
+ ...arrayToBoundedVec(toArray(nullifiers), MAX_NULLIFIERS_PER_TX),
220
+ toArray(rawLogStorage),
221
+ toArray(logLengths),
222
+ toSingle(logCount)
223
+ ]);
224
+ }
225
+ // eslint-disable-next-line camelcase
226
+ aztec_txe_getLastCallOffchainEffects() {
227
+ // This oracle returns all offchain effect payloads (messages, authwit requests, etc.) emitted by the last top-level call,
228
+ // MAX_OFFCHAIN_EFFECTS_PER_TXE_QUERY is arbitrarily set at 64 because we need a bound. Nothing inherent about it.
229
+ const MAX_OFFCHAIN_EFFECTS_PER_TXE_QUERY = 64;
230
+ // Must match MAX_OFFCHAIN_EFFECT_LEN in txe_oracles.nr.
231
+ const MAX_OFFCHAIN_EFFECT_LEN = 2 + PRIVATE_LOG_CIPHERTEXT_LEN;
232
+ const { effects } = this.stateHandler.getLastCallOffchainEffects();
233
+ if (effects.length > MAX_OFFCHAIN_EFFECTS_PER_TXE_QUERY) {
234
+ throw new Error(`${effects.length} offchain effects exceed max ${MAX_OFFCHAIN_EFFECTS_PER_TXE_QUERY}`);
235
+ }
236
+ if (effects.some((e)=>e.length > MAX_OFFCHAIN_EFFECT_LEN)) {
237
+ throw new Error(`Some offchain effect has length larger than max ${MAX_OFFCHAIN_EFFECT_LEN}`);
238
+ }
239
+ const rawArrayStorage = effects.map((e)=>e.concat(Array(MAX_OFFCHAIN_EFFECT_LEN - e.length).fill(new Fr(0)))).concat(Array(MAX_OFFCHAIN_EFFECTS_PER_TXE_QUERY - effects.length).fill(Array(MAX_OFFCHAIN_EFFECT_LEN).fill(new Fr(0)))).flat();
240
+ const effectLengths = effects.map((e)=>new Fr(e.length)).concat(Array(MAX_OFFCHAIN_EFFECTS_PER_TXE_QUERY - effects.length).fill(new Fr(0)));
241
+ const count = new Fr(effects.length);
242
+ return toForeignCallResult([
243
+ toArray(rawArrayStorage),
244
+ toArray(effectLengths),
245
+ toSingle(count)
246
+ ]);
247
+ }
248
+ // eslint-disable-next-line camelcase
249
+ aztec_txe_getLastCallContext() {
250
+ const { txHash, anchorBlockTimestamp } = this.stateHandler.getLastCallContext();
251
+ const isSome = txHash.isZero() ? 0 : 1;
252
+ return toForeignCallResult([
253
+ toSingle(isSome),
254
+ toSingle(txHash),
255
+ toSingle(new Fr(anchorBlockTimestamp))
191
256
  ]);
192
257
  }
193
258
  // eslint-disable-next-line camelcase
@@ -449,6 +514,7 @@ export class RPCTranslator {
449
514
  }
450
515
  return toForeignCallResult(witness.toNoirRepresentation());
451
516
  }
517
+ // TODO(https://linear.app/aztec-labs/issue/F-651): drop this
452
518
  // eslint-disable-next-line camelcase
453
519
  async aztec_utl_getBlockHashMembershipWitness(foreignAnchorBlockHash, foreignBlockHash) {
454
520
  const anchorBlockHash = new BlockHash(fromSingle(foreignAnchorBlockHash));
@@ -459,6 +525,18 @@ export class RPCTranslator {
459
525
  }
460
526
  return toForeignCallResult(witness.toNoirRepresentation());
461
527
  }
528
+ // TODO(https://linear.app/aztec-labs/issue/F-651): rename to aztec_utl_getBlockHashMembershipWitness
529
+ // eslint-disable-next-line camelcase
530
+ async aztec_utl_getBlockHashMembershipWitnessV2(foreignAnchorBlockHash, foreignBlockHash) {
531
+ const anchorBlockHash = new BlockHash(fromSingle(foreignAnchorBlockHash));
532
+ const blockHash = new BlockHash(fromSingle(foreignBlockHash));
533
+ const witness = await this.handlerAsUtility().getBlockHashMembershipWitness(anchorBlockHash, blockHash);
534
+ const effective = witness ?? MembershipWitness.empty(ARCHIVE_HEIGHT);
535
+ return toForeignCallResult([
536
+ toSingle(new Fr(witness !== undefined ? 1 : 0)),
537
+ ...effective.toNoirRepresentation()
538
+ ]);
539
+ }
462
540
  // eslint-disable-next-line camelcase
463
541
  async aztec_utl_getLowNullifierMembershipWitness(foreignBlockHash, foreignNullifier) {
464
542
  const blockHash = new BlockHash(fromSingle(foreignBlockHash));
@@ -694,8 +772,13 @@ export class RPCTranslator {
694
772
  return Promise.resolve(toForeignCallResult([]));
695
773
  }
696
774
  // eslint-disable-next-line camelcase
697
- aztec_utl_emitOffchainEffect(_foreignData) {
698
- throw new Error('Offchain effects are not yet supported in the TestEnvironment');
775
+ aztec_utl_emitOffchainEffect(foreignData) {
776
+ // Record the raw payload against the currently-executing top-level call. The Noir side
777
+ // (via `env.offchain_messages()`) is responsible for decoding the protocol-reserved prefix
778
+ // (`OFFCHAIN_MESSAGE_IDENTIFIER`, recipient) and turning each payload into an `OffchainMessage` struct suitable
779
+ // for `offchain_receive`.
780
+ this.stateHandler.recordOffchainEffect(fromArray(foreignData));
781
+ return Promise.resolve(toForeignCallResult([]));
699
782
  }
700
783
  // AVM opcodes
701
784
  // eslint-disable-next-line camelcase
@@ -839,41 +922,86 @@ export class RPCTranslator {
839
922
  throw new Error('Contract calls are forbidden inside a `TestEnvironment::public_context`, use `public_call` instead');
840
923
  }
841
924
  // eslint-disable-next-line camelcase
842
- async aztec_txe_privateCallNewFlow(foreignFrom, foreignTargetContractAddress, foreignFunctionSelector, foreignArgs, foreignArgsHash, foreignIsStaticCall) {
843
- const from = addressFromSingle(foreignFrom);
925
+ async aztec_txe_privateCallNewFlow(foreignFromIsSome, foreignFromValue, foreignTargetContractAddress, foreignFunctionSelector, foreignArgs, foreignArgsHash, foreignIsStaticCall, foreignAdditionalScopes, foreignAuthorizedUtilityCallTargets, foreignGasSettings) {
926
+ const from = fromSingle(foreignFromIsSome).toBool() ? addressFromSingle(foreignFromValue) : undefined;
844
927
  const targetContractAddress = addressFromSingle(foreignTargetContractAddress);
845
928
  const functionSelector = FunctionSelector.fromField(fromSingle(foreignFunctionSelector));
846
929
  const args = fromArray(foreignArgs);
847
930
  const argsHash = fromSingle(foreignArgsHash);
848
931
  const isStaticCall = fromSingle(foreignIsStaticCall).toBool();
849
- const returnValues = await this.handlerAsTxe().privateCallNewFlow(from, targetContractAddress, functionSelector, args, argsHash, isStaticCall, this.stateHandler.getCurrentJob());
850
- // TODO(F-335): Avoid doing the following call here.
851
- await this.stateHandler.cycleJob();
932
+ const additionalScopes = fromArray(foreignAdditionalScopes).map((field)=>AztecAddress.fromField(field));
933
+ const authorizedUtilityCallTargets = fromArray(foreignAuthorizedUtilityCallTargets).map((field)=>AztecAddress.fromField(field));
934
+ const gasSettings = GasSettings.fromFields(fromArray(foreignGasSettings));
935
+ const returnValues = await this.stateHandler.withTopLevelCallTracking(async ()=>{
936
+ const { returnValues, offchainEffects } = await this.handlerAsTxe().privateCallNewFlow(from, targetContractAddress, functionSelector, args, argsHash, isStaticCall, additionalScopes, this.stateHandler.getCurrentJob(), authorizedUtilityCallTargets, gasSettings);
937
+ // Private execution collects offchain effects inside PXE's PrivateExecutionOracle rather than
938
+ // round-tripping them through `aztec_utl_emitOffchainEffect`, so the session buffer is empty
939
+ // at this point. Drain the effects from the execution tree into the session buffer so the
940
+ // next `env.offchain_messages()` call in the test sees them.
941
+ for (const data of offchainEffects){
942
+ this.stateHandler.recordOffchainEffect(data);
943
+ }
944
+ // TODO(F-335): Avoid doing the following call here.
945
+ await this.stateHandler.cycleJob();
946
+ if (isStaticCall) {
947
+ // Static calls revert their checkpoint and mine no block, so there is no tx hash to tag
948
+ // offchain effects with. Querying `getLastTxEffects()` here would return an unrelated
949
+ // predecessor tx.
950
+ return {
951
+ result: returnValues
952
+ };
953
+ }
954
+ const { txHash } = await this.handlerAsTxe().getLastTxEffects();
955
+ return {
956
+ result: returnValues,
957
+ txHash: txHash.hash
958
+ };
959
+ });
852
960
  return toForeignCallResult([
853
961
  toArray(returnValues)
854
962
  ]);
855
963
  }
856
964
  // eslint-disable-next-line camelcase
857
- async aztec_txe_executeUtilityFunction(foreignTargetContractAddress, foreignFunctionSelector, foreignArgs) {
965
+ async aztec_txe_executeUtilityFunction(foreignTargetContractAddress, foreignFunctionSelector, foreignArgs, foreignAuthorizedUtilityCallTargets) {
858
966
  const targetContractAddress = addressFromSingle(foreignTargetContractAddress);
859
967
  const functionSelector = FunctionSelector.fromField(fromSingle(foreignFunctionSelector));
860
968
  const args = fromArray(foreignArgs);
861
- const returnValues = await this.handlerAsTxe().executeUtilityFunction(targetContractAddress, functionSelector, args, this.stateHandler.getCurrentJob());
862
- // TODO(F-335): Avoid doing the following call here.
863
- await this.stateHandler.cycleJob();
969
+ const authorizedUtilityCallTargets = fromArray(foreignAuthorizedUtilityCallTargets).map((field)=>AztecAddress.fromField(field));
970
+ const returnValues = await this.stateHandler.withTopLevelCallTracking(async ()=>{
971
+ const returnValues = await this.handlerAsTxe().executeUtilityFunction(targetContractAddress, functionSelector, args, this.stateHandler.getCurrentJob(), authorizedUtilityCallTargets);
972
+ // TODO(F-335): Avoid doing the following call here.
973
+ await this.stateHandler.cycleJob();
974
+ return {
975
+ result: returnValues
976
+ };
977
+ });
864
978
  return toForeignCallResult([
865
979
  toArray(returnValues)
866
980
  ]);
867
981
  }
868
982
  // eslint-disable-next-line camelcase
869
- async aztec_txe_publicCallNewFlow(foreignFrom, foreignAddress, foreignCalldata, foreignIsStaticCall) {
870
- const from = addressFromSingle(foreignFrom);
983
+ async aztec_txe_publicCallNewFlow(foreignFromIsSome, foreignFromValue, foreignAddress, foreignCalldata, foreignIsStaticCall, foreignGasSettings) {
984
+ const from = fromSingle(foreignFromIsSome).toBool() ? addressFromSingle(foreignFromValue) : undefined;
871
985
  const address = addressFromSingle(foreignAddress);
872
986
  const calldata = fromArray(foreignCalldata);
873
987
  const isStaticCall = fromSingle(foreignIsStaticCall).toBool();
874
- const returnValues = await this.handlerAsTxe().publicCallNewFlow(from, address, calldata, isStaticCall);
875
- // TODO(F-335): Avoid doing the following call here.
876
- await this.stateHandler.cycleJob();
988
+ const gasSettings = GasSettings.fromFields(fromArray(foreignGasSettings));
989
+ const returnValues = await this.stateHandler.withTopLevelCallTracking(async ()=>{
990
+ const returnValues = await this.handlerAsTxe().publicCallNewFlow(from, address, calldata, isStaticCall, gasSettings);
991
+ // TODO(F-335): Avoid doing the following call here.
992
+ await this.stateHandler.cycleJob();
993
+ if (isStaticCall) {
994
+ // See equivalent branch in `aztec_txe_privateCallNewFlow`.
995
+ return {
996
+ result: returnValues
997
+ };
998
+ }
999
+ const { txHash } = await this.handlerAsTxe().getLastTxEffects();
1000
+ return {
1001
+ result: returnValues,
1002
+ txHash: txHash.hash
1003
+ };
1004
+ });
877
1005
  return toForeignCallResult([
878
1006
  toArray(returnValues)
879
1007
  ]);
@@ -33,7 +33,7 @@ export class TXEStateMachine {
33
33
  const synchronizer = await TXESynchronizer.create();
34
34
  const aztecNodeConfig = {};
35
35
  const log = createLogger('txe_node');
36
- const node = new AztecNodeService(aztecNodeConfig, new DummyP2P(), archiver, archiver, archiver, archiver, synchronizer, undefined, undefined, undefined, undefined, undefined, VERSION, CHAIN_ID, new TXEGlobalVariablesBuilder(), new MockEpochCache(), getPackageVersion() ?? '', new TestCircuitVerifier(), undefined, log);
36
+ const node = new AztecNodeService(aztecNodeConfig, new DummyP2P(), archiver, archiver, archiver, archiver, synchronizer, undefined, undefined, undefined, undefined, undefined, VERSION, CHAIN_ID, new TXEGlobalVariablesBuilder(), new MockEpochCache(), getPackageVersion(), new TestCircuitVerifier(), undefined, log);
37
37
  const contractSyncService = new ContractSyncService(node, contractStore, noteStore, createLogger('txe:contract_sync'));
38
38
  const messageContextService = new MessageContextService(node);
39
39
  return new this(node, synchronizer, archiver, anchorBlockStore, contractSyncService, messageContextService);
@@ -0,0 +1,10 @@
1
+ /**
2
+ * The TXE oracle version constants are used to check that the oracle interface used for tests is in sync between
3
+ * TXE and Aztec.nr. This is separate from the contract oracle version in `pxe/src/oracle_version.ts`, which covers
4
+ * oracles used during contract execution by PXE.
5
+ *
6
+ * The Noir counterparts are in `noir-projects/aztec-nr/aztec/src/test/helpers/txe_oracles.nr`.
7
+ */
8
+ export declare const TXE_ORACLE_VERSION_MAJOR = 1;
9
+ export declare const TXE_ORACLE_VERSION_MINOR = 0;
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhlX29yYWNsZV92ZXJzaW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHhlX29yYWNsZV92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUNILGVBQU8sTUFBTSx3QkFBd0IsSUFBSSxDQUFDO0FBQzFDLGVBQU8sTUFBTSx3QkFBd0IsSUFBSSxDQUFDIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"txe_oracle_version.d.ts","sourceRoot":"","sources":["../src/txe_oracle_version.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,eAAO,MAAM,wBAAwB,IAAI,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * The TXE oracle version constants are used to check that the oracle interface used for tests is in sync between
3
+ * TXE and Aztec.nr. This is separate from the contract oracle version in `pxe/src/oracle_version.ts`, which covers
4
+ * oracles used during contract execution by PXE.
5
+ *
6
+ * The Noir counterparts are in `noir-projects/aztec-nr/aztec/src/test/helpers/txe_oracles.nr`.
7
+ */ export const TXE_ORACLE_VERSION_MAJOR = 1;
8
+ export const TXE_ORACLE_VERSION_MINOR = 0;
@@ -2,9 +2,10 @@ import { BlockNumber } from '@aztec/foundation/branded-types';
2
2
  import { Fr } from '@aztec/foundation/curves/bn254';
3
3
  import { type Logger } from '@aztec/foundation/log';
4
4
  import { KeyStore } from '@aztec/key-store';
5
- import { AddressStore, CapsuleStore, ContractStore, ContractSyncService, JobCoordinator, NoteStore, PrivateEventStore, RecipientTaggingStore, SenderAddressBookStore, SenderTaggingStore } from '@aztec/pxe/server';
5
+ import { AddressStore, CapsuleStore, ContractStore, JobCoordinator, NoteStore, PrivateEventStore, RecipientTaggingStore, SenderAddressBookStore, SenderTaggingStore } from '@aztec/pxe/server';
6
6
  import { type IPrivateExecutionOracle, type IUtilityExecutionOracle } from '@aztec/pxe/simulator';
7
7
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
8
+ import type { GasSettings } from '@aztec/stdlib/gas';
8
9
  import { PrivateContextInputs } from '@aztec/stdlib/kernel';
9
10
  import type { IAvmExecutionOracle, ITxeExecutionOracle } from './oracle/interfaces.js';
10
11
  import { RPCTranslator } from './rpc_translator.js';
@@ -20,12 +21,47 @@ type MethodNames<T> = {
20
21
  */
21
22
  export type TXEOracleFunctionName = Exclude<MethodNames<RPCTranslator>, 'constructor' | 'handlerAsMisc' | 'handlerAsUtility' | 'handlerAsPrivate' | 'handlerAsAvm' | 'handlerAsTxe'>;
22
23
  export interface TXESessionStateHandler {
24
+ /** Records the TXE oracle version reported by the Noir test code for diagnostics. */
25
+ setTxeOracleVersion(version: {
26
+ major: number;
27
+ minor: number;
28
+ }): void;
23
29
  enterTopLevelState(): Promise<void>;
24
30
  enterPublicState(contractAddress?: AztecAddress): Promise<void>;
25
- enterPrivateState(contractAddress?: AztecAddress, anchorBlockNumber?: BlockNumber): Promise<PrivateContextInputs>;
31
+ enterPrivateState(contractAddress: AztecAddress | undefined, anchorBlockNumber: BlockNumber | undefined, gasSettings: GasSettings): Promise<PrivateContextInputs>;
26
32
  enterUtilityState(contractAddress?: AztecAddress): Promise<void>;
27
33
  cycleJob(): Promise<string>;
28
34
  getCurrentJob(): string;
35
+ /**
36
+ * Runs an executor-style top-level call (private/public call, utility execution) with last-call tracking.
37
+ */
38
+ withTopLevelCallTracking<T>(work: () => Promise<{
39
+ result: T;
40
+ txHash?: Fr;
41
+ }>): Promise<T>;
42
+ /**
43
+ * Captures a raw offchain effect payload for consumption from test environment. Called by the `emit_offchain_effect`
44
+ * oracle handler whenever a contract function emits an offchain message, at any call depth.
45
+ */
46
+ recordOffchainEffect(data: Fr[]): void;
47
+ /**
48
+ * Returns the raw offchain effect payloads emitted by the last top-level call. Each payload follows the protocol
49
+ * convention documented on `OFFCHAIN_MESSAGE_IDENTIFIER`, i.e. `[identifier, recipient, ...ciphertext]`. Decoding into
50
+ * `OffchainMessage` structs happens on the Noir side of the test helper. Marks the buffer as queried so the
51
+ * unqueried-messages warning doesn't fire on the next reset.
52
+ */
53
+ getLastCallOffchainEffects(): {
54
+ effects: Fr[][];
55
+ };
56
+ /**
57
+ * Returns the context of the last top-level call: its tx hash (`Fr.ZERO` if the call was tx-less) and the anchor
58
+ * block timestamp captured at the start of the call. Does *not* mark the buffer as queried — context reads are
59
+ * metadata, not effect consumption.
60
+ */
61
+ getLastCallContext(): {
62
+ txHash: Fr;
63
+ anchorBlockTimestamp: bigint;
64
+ };
29
65
  }
30
66
  /**
31
67
  * A `TXESession` corresponds to a Noir `#[test]` function, and handles all of its oracle calls, stores test-specific
@@ -50,10 +86,11 @@ export declare class TXESession implements TXESessionStateHandler {
50
86
  private chainId;
51
87
  private version;
52
88
  private nextBlockTimestamp;
53
- private contractSyncService;
54
89
  private state;
55
90
  private authwits;
56
- constructor(logger: Logger, stateMachine: TXEStateMachine, oracleHandler: IUtilityExecutionOracle | IPrivateExecutionOracle | IAvmExecutionOracle | ITxeExecutionOracle, contractStore: ContractStore, noteStore: NoteStore, keyStore: KeyStore, addressStore: AddressStore, accountStore: TXEAccountStore, senderTaggingStore: SenderTaggingStore, recipientTaggingStore: RecipientTaggingStore, senderAddressBookStore: SenderAddressBookStore, capsuleStore: CapsuleStore, privateEventStore: PrivateEventStore, jobCoordinator: JobCoordinator, currentJobId: string, chainId: Fr, version: Fr, nextBlockTimestamp: bigint, contractSyncService: ContractSyncService);
91
+ private lastCallInfo;
92
+ private txeOracleVersion;
93
+ constructor(logger: Logger, stateMachine: TXEStateMachine, oracleHandler: IUtilityExecutionOracle | IPrivateExecutionOracle | IAvmExecutionOracle | ITxeExecutionOracle, contractStore: ContractStore, noteStore: NoteStore, keyStore: KeyStore, addressStore: AddressStore, accountStore: TXEAccountStore, senderTaggingStore: SenderTaggingStore, recipientTaggingStore: RecipientTaggingStore, senderAddressBookStore: SenderAddressBookStore, capsuleStore: CapsuleStore, privateEventStore: PrivateEventStore, jobCoordinator: JobCoordinator, currentJobId: string, chainId: Fr, version: Fr, nextBlockTimestamp: bigint);
57
94
  static init(contractStore: ContractStore): Promise<TXESession>;
58
95
  /**
59
96
  * Processes an oracle function invoked by the Noir test associated to this session.
@@ -65,8 +102,26 @@ export declare class TXESession implements TXESessionStateHandler {
65
102
  getCurrentJob(): string;
66
103
  /** Commits the current job and begins a new one. Returns the new job ID. */
67
104
  cycleJob(): Promise<string>;
105
+ private resetLastCall;
106
+ recordOffchainEffect(data: Fr[]): void;
107
+ private setLastCallContext;
108
+ withTopLevelCallTracking<T>(work: () => Promise<{
109
+ result: T;
110
+ txHash?: Fr;
111
+ }>): Promise<T>;
112
+ getLastCallOffchainEffects(): {
113
+ effects: Fr[][];
114
+ };
115
+ getLastCallContext(): {
116
+ txHash: Fr;
117
+ anchorBlockTimestamp: bigint;
118
+ };
119
+ setTxeOracleVersion(version: {
120
+ major: number;
121
+ minor: number;
122
+ }): void;
68
123
  enterTopLevelState(): Promise<void>;
69
- enterPrivateState(contractAddress?: AztecAddress, anchorBlockNumber?: BlockNumber): Promise<PrivateContextInputs>;
124
+ enterPrivateState(contractAddress: AztecAddress | undefined, anchorBlockNumber: BlockNumber | undefined, gasSettings: GasSettings): Promise<PrivateContextInputs>;
70
125
  enterPublicState(contractAddress?: AztecAddress): Promise<void>;
71
126
  enterUtilityState(contractAddress?: AztecAddress): Promise<void>;
72
127
  private exitTopLevelState;
@@ -76,4 +131,4 @@ export declare class TXESession implements TXESessionStateHandler {
76
131
  private utilityExecutorForContractSync;
77
132
  }
78
133
  export {};
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhlX3Nlc3Npb24uZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90eGVfc2Vzc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFNUMsT0FBTyxFQUNMLFlBQVksRUFHWixZQUFZLEVBQ1osYUFBYSxFQUNiLG1CQUFtQixFQUNuQixjQUFjLEVBRWQsU0FBUyxFQUNULGlCQUFpQixFQUNqQixxQkFBcUIsRUFDckIsc0JBQXNCLEVBQ3RCLGtCQUFrQixFQUNuQixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFJTCxLQUFLLHVCQUF1QixFQUM1QixLQUFLLHVCQUF1QixFQUk3QixNQUFNLHNCQUFzQixDQUFDO0FBVzlCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUczRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQU81RCxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBR3ZGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDN0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBeUM5RCxLQUFLLFdBQVcsQ0FBQyxDQUFDLElBQUk7S0FDbkIsQ0FBQyxJQUFJLE1BQU0s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
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhlX3Nlc3Npb24uZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90eGVfc2Vzc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFNUMsT0FBTyxFQUNMLFlBQVksRUFHWixZQUFZLEVBQ1osYUFBYSxFQUNiLGNBQWMsRUFFZCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLHFCQUFxQixFQUNyQixzQkFBc0IsRUFDdEIsa0JBQWtCLEVBQ25CLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUlMLEtBQUssdUJBQXVCLEVBQzVCLEtBQUssdUJBQXVCLEVBSTdCLE1BQU0sc0JBQXNCLENBQUM7QUFXOUIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXJELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBTzVELE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHdkYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXBELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUzRCxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUF5QzlELEtBQUssV0FBVyxD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
@@ -1 +1 @@
1
- {"version":3,"file":"txe_session.d.ts","sourceRoot":"","sources":["../src/txe_session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"txe_session.d.ts","sourceRoot":"","sources":["../src/txe_session.ts"],"names":[],"mappings":"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"}