@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.
@@ -3,15 +3,14 @@ import { Fr } from '@aztec/foundation/curves/bn254';
3
3
  import { createLogger } from '@aztec/foundation/log';
4
4
  import { KeyStore } from '@aztec/key-store';
5
5
  import { openTmpStore } from '@aztec/kv-store/lmdb-v2';
6
- import { AddressStore, AnchorBlockStore, CapsuleService, CapsuleStore, ContractSyncService, JobCoordinator, NoteService, NoteStore, PrivateEventStore, RecipientTaggingStore, SenderAddressBookStore, SenderTaggingStore } from '@aztec/pxe/server';
6
+ import { AddressStore, AnchorBlockStore, CapsuleService, CapsuleStore, JobCoordinator, NoteService, NoteStore, PrivateEventStore, RecipientTaggingStore, SenderAddressBookStore, SenderTaggingStore } from '@aztec/pxe/server';
7
7
  import { ExecutionNoteCache, ExecutionTaggingIndexCache, HashedValuesCache, Oracle, PrivateExecutionOracle, UtilityExecutionOracle } from '@aztec/pxe/simulator';
8
8
  import { ExecutionError, WASMSimulator, createSimulationError, extractCallStack, resolveAssertionMessageFromError, toACVMWitness } from '@aztec/simulator/client';
9
9
  import { FunctionSelector, FunctionType } from '@aztec/stdlib/abi';
10
10
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
11
- import { GasSettings } from '@aztec/stdlib/gas';
12
11
  import { computeProtocolNullifier } from '@aztec/stdlib/hash';
13
12
  import { makeGlobalVariables } from '@aztec/stdlib/testing';
14
- import { CallContext, TxContext } from '@aztec/stdlib/tx';
13
+ import { CallContext, OFFCHAIN_MESSAGE_IDENTIFIER, TxContext } from '@aztec/stdlib/tx';
15
14
  import { z } from 'zod';
16
15
  import { DEFAULT_ADDRESS } from './constants.js';
17
16
  import { TXEOraclePublicContext } from './oracle/txe_oracle_public_context.js';
@@ -19,9 +18,18 @@ import { TXEOracleTopLevelContext } from './oracle/txe_oracle_top_level_context.
19
18
  import { RPCTranslator } from './rpc_translator.js';
20
19
  import { TXEArchiver } from './state_machine/archiver.js';
21
20
  import { TXEStateMachine } from './state_machine/index.js';
21
+ import { TXE_ORACLE_VERSION_MAJOR, TXE_ORACLE_VERSION_MINOR } from './txe_oracle_version.js';
22
22
  import { TXEAccountStore } from './util/txe_account_store.js';
23
23
  import { getSingleTxBlockRequestHash, insertTxEffectIntoWorldTrees, makeTXEBlock } from './utils/block_creation.js';
24
24
  import { makeTxEffect } from './utils/tx_effect_creation.js';
25
+ function emptyLastCallState() {
26
+ return {
27
+ offchainEffects: [],
28
+ queried: false,
29
+ txHash: Fr.ZERO,
30
+ anchorBlockTimestamp: 0n
31
+ };
32
+ }
25
33
  /**
26
34
  * A `TXESession` corresponds to a Noir `#[test]` function, and handles all of its oracle calls, stores test-specific
27
35
  * state, etc., independent of all other tests running in parallel.
@@ -44,10 +52,11 @@ import { makeTxEffect } from './utils/tx_effect_creation.js';
44
52
  chainId;
45
53
  version;
46
54
  nextBlockTimestamp;
47
- contractSyncService;
48
55
  state;
49
56
  authwits;
50
- constructor(logger, stateMachine, oracleHandler, contractStore, noteStore, keyStore, addressStore, accountStore, senderTaggingStore, recipientTaggingStore, senderAddressBookStore, capsuleStore, privateEventStore, jobCoordinator, currentJobId, chainId, version, nextBlockTimestamp, contractSyncService){
57
+ lastCallInfo;
58
+ txeOracleVersion;
59
+ constructor(logger, stateMachine, oracleHandler, contractStore, noteStore, keyStore, addressStore, accountStore, senderTaggingStore, recipientTaggingStore, senderAddressBookStore, capsuleStore, privateEventStore, jobCoordinator, currentJobId, chainId, version, nextBlockTimestamp){
51
60
  this.logger = logger;
52
61
  this.stateMachine = stateMachine;
53
62
  this.oracleHandler = oracleHandler;
@@ -66,11 +75,11 @@ import { makeTxEffect } from './utils/tx_effect_creation.js';
66
75
  this.chainId = chainId;
67
76
  this.version = version;
68
77
  this.nextBlockTimestamp = nextBlockTimestamp;
69
- this.contractSyncService = contractSyncService;
70
78
  this.state = {
71
79
  name: 'TOP_LEVEL'
72
80
  };
73
81
  this.authwits = new Map();
82
+ this.lastCallInfo = emptyLastCallState();
74
83
  }
75
84
  static async init(contractStore) {
76
85
  const store = await openTmpStore('txe-session');
@@ -100,10 +109,9 @@ import { makeTxEffect } from './utils/tx_effect_creation.js';
100
109
  const chainId = new Fr(await stateMachine.node.getChainId());
101
110
  const initialJobId = jobCoordinator.beginJob();
102
111
  const logger = createLogger('txe:session');
103
- const contractSyncService = new ContractSyncService(stateMachine.node, contractStore, noteStore, logger);
104
- const topLevelOracleHandler = new TXEOracleTopLevelContext(stateMachine, contractStore, noteStore, keyStore, addressStore, accountStore, senderTaggingStore, recipientTaggingStore, senderAddressBookStore, capsuleStore, privateEventStore, nextBlockTimestamp, version, chainId, new Map(), contractSyncService);
112
+ const topLevelOracleHandler = new TXEOracleTopLevelContext(stateMachine, contractStore, noteStore, keyStore, addressStore, accountStore, senderTaggingStore, recipientTaggingStore, senderAddressBookStore, capsuleStore, privateEventStore, nextBlockTimestamp, version, chainId, new Map());
105
113
  await topLevelOracleHandler.advanceBlocksBy(1);
106
- return new TXESession(logger, stateMachine, topLevelOracleHandler, contractStore, noteStore, keyStore, addressStore, accountStore, senderTaggingStore, recipientTaggingStore, senderAddressBookStore, capsuleStore, privateEventStore, jobCoordinator, initialJobId, version, chainId, nextBlockTimestamp, contractSyncService);
114
+ return new TXESession(logger, stateMachine, topLevelOracleHandler, contractStore, noteStore, keyStore, addressStore, accountStore, senderTaggingStore, recipientTaggingStore, senderAddressBookStore, capsuleStore, privateEventStore, jobCoordinator, initialJobId, version, chainId, nextBlockTimestamp);
107
115
  }
108
116
  /**
109
117
  * Processes an oracle function invoked by the Noir test associated to this session.
@@ -118,7 +126,15 @@ import { makeTxEffect } from './utils/tx_effect_creation.js';
118
126
  return translator[validatedFunctionName](...inputs);
119
127
  } catch (error) {
120
128
  if (error instanceof z.ZodError) {
121
- throw new Error(`${functionName} does not correspond to any oracle handler available on RPCTranslator`);
129
+ let versionHint;
130
+ if (!this.txeOracleVersion) {
131
+ versionHint = ' The test appears to use an older version of Aztec.nr that does not' + ' support test environment oracle versioning. Update Aztec.nr to a compatible version.' + ' See https://docs.aztec.network/errors/12';
132
+ } else if (this.txeOracleVersion.minor > TXE_ORACLE_VERSION_MINOR) {
133
+ versionHint = ` The test uses Aztec.nr test oracle version` + ` ${this.txeOracleVersion.major}.${this.txeOracleVersion.minor}, but this test environment` + ` only supports up to ${TXE_ORACLE_VERSION_MAJOR}.${TXE_ORACLE_VERSION_MINOR}.` + ` Upgrade the Aztec CLI to a compatible version.` + ` See https://docs.aztec.network/errors/12`;
134
+ } else {
135
+ versionHint = ` The test's oracle version (${this.txeOracleVersion.major}.${this.txeOracleVersion.minor})` + ` is compatible with this test environment` + ` (${TXE_ORACLE_VERSION_MAJOR}.${TXE_ORACLE_VERSION_MINOR}), so this oracle should be` + ` available. This is an unexpected error, please report it.` + ` See https://docs.aztec.network/errors/13`;
136
+ }
137
+ throw new Error(`Unknown oracle '${functionName}'.${versionHint}`);
122
138
  } else if (error instanceof Error) {
123
139
  throw new Error(`Execution error while processing function ${functionName} in state ${this.state.name}: ${error.message}`);
124
140
  } else {
@@ -134,6 +150,46 @@ import { makeTxEffect } from './utils/tx_effect_creation.js';
134
150
  this.currentJobId = this.jobCoordinator.beginJob();
135
151
  return this.currentJobId;
136
152
  }
153
+ resetLastCall() {
154
+ const notQueriedMessageCount = this.lastCallInfo.queried ? 0 : this.lastCallInfo.offchainEffects.filter((payload)=>payload[0]?.equals(OFFCHAIN_MESSAGE_IDENTIFIER)).length;
155
+ if (notQueriedMessageCount > 0) {
156
+ this.logger.warn(`Dropping ${notQueriedMessageCount} unqueried offchain message(s) from the previous top-level call. ` + `To deliver them, call \`env.offchain_messages()\` and forward the result to the recipient contract's ` + `\`offchain_receive\` utility before issuing another top-level call. To intentionally discard, assign ` + `to \`let _ = env.offchain_messages()\` to silence this warning.`);
157
+ }
158
+ this.lastCallInfo = emptyLastCallState();
159
+ }
160
+ recordOffchainEffect(data) {
161
+ this.lastCallInfo.offchainEffects.push(data);
162
+ }
163
+ setLastCallContext(txHash, anchorBlockTimestamp) {
164
+ this.lastCallInfo.txHash = txHash;
165
+ this.lastCallInfo.anchorBlockTimestamp = anchorBlockTimestamp;
166
+ }
167
+ async withTopLevelCallTracking(work) {
168
+ this.resetLastCall();
169
+ // Capture the anchor *before* `work` runs: private/public executor calls mine a new block as a
170
+ // side effect, and that block's timestamp should not be attributed to this call's anchor.
171
+ const anchorBlockTimestamp = (await this.stateMachine.node.getBlockHeader('latest')).globalVariables.timestamp;
172
+ const { result, txHash } = await work();
173
+ this.setLastCallContext(txHash ?? Fr.ZERO, anchorBlockTimestamp);
174
+ return result;
175
+ }
176
+ getLastCallOffchainEffects() {
177
+ this.lastCallInfo.queried = true;
178
+ return {
179
+ effects: this.lastCallInfo.offchainEffects
180
+ };
181
+ }
182
+ getLastCallContext() {
183
+ const { txHash, anchorBlockTimestamp } = this.lastCallInfo;
184
+ return {
185
+ txHash,
186
+ anchorBlockTimestamp
187
+ };
188
+ }
189
+ setTxeOracleVersion(version) {
190
+ this.txeOracleVersion = version;
191
+ this.logger.debug(`Test compiled with test oracle version ${version.major}.${version.minor}`);
192
+ }
137
193
  async enterTopLevelState() {
138
194
  switch(this.state.name){
139
195
  case 'PRIVATE':
@@ -162,14 +218,15 @@ import { makeTxEffect } from './utils/tx_effect_creation.js';
162
218
  }
163
219
  // Commit all staged stores from the job that was just completed, then begin a new job
164
220
  await this.cycleJob();
165
- this.oracleHandler = new TXEOracleTopLevelContext(this.stateMachine, this.contractStore, this.noteStore, this.keyStore, this.addressStore, this.accountStore, this.senderTaggingStore, this.recipientTaggingStore, this.senderAddressBookStore, this.capsuleStore, this.privateEventStore, this.nextBlockTimestamp, this.version, this.chainId, this.authwits, this.contractSyncService);
221
+ this.oracleHandler = new TXEOracleTopLevelContext(this.stateMachine, this.contractStore, this.noteStore, this.keyStore, this.addressStore, this.accountStore, this.senderTaggingStore, this.recipientTaggingStore, this.senderAddressBookStore, this.capsuleStore, this.privateEventStore, this.nextBlockTimestamp, this.version, this.chainId, this.authwits);
166
222
  this.state = {
167
223
  name: 'TOP_LEVEL'
168
224
  };
169
225
  this.logger.debug(`Entered state ${this.state.name}`);
170
226
  }
171
- async enterPrivateState(contractAddress = DEFAULT_ADDRESS, anchorBlockNumber) {
227
+ async enterPrivateState(contractAddress = DEFAULT_ADDRESS, anchorBlockNumber, gasSettings) {
172
228
  this.exitTopLevelState();
229
+ this.resetLastCall();
173
230
  // Private execution has two associated block numbers: the anchor block (i.e. the historical block that is used to
174
231
  // build the proof), and the *next* block, i.e. the one we'll create once the execution ends, and which will contain
175
232
  // a single transaction with the effects of what was done in the test.
@@ -189,7 +246,7 @@ import { makeTxEffect } from './utils/tx_effect_creation.js';
189
246
  const utilityExecutor = this.utilityExecutorForContractSync(anchorBlock);
190
247
  this.oracleHandler = new PrivateExecutionOracle({
191
248
  argsHash: Fr.ZERO,
192
- txContext: new TxContext(this.chainId, this.version, GasSettings.empty()),
249
+ txContext: new TxContext(this.chainId, this.version, gasSettings),
193
250
  callContext: new CallContext(AztecAddress.ZERO, contractAddress, FunctionSelector.empty(), false),
194
251
  anchorBlockHeader: anchorBlock,
195
252
  utilityExecutor,
@@ -212,7 +269,8 @@ import { makeTxEffect } from './utils/tx_effect_creation.js';
212
269
  l2TipsStore: this.stateMachine.node,
213
270
  jobId: this.currentJobId,
214
271
  scopes: await this.keyStore.getAccounts(),
215
- messageContextService: this.stateMachine.messageContextService
272
+ messageContextService: this.stateMachine.messageContextService,
273
+ simulator: new WASMSimulator()
216
274
  });
217
275
  // We store the note and tagging index caches fed into the PrivateExecutionOracle (along with some other auxiliary
218
276
  // data) in order to refer to it later, mimicking the way this object is used by the ContractFunctionSimulator. The
@@ -226,15 +284,19 @@ import { makeTxEffect } from './utils/tx_effect_creation.js';
226
284
  taggingIndexCache
227
285
  };
228
286
  this.logger.debug(`Entered state ${this.state.name}`);
287
+ // Record the *resolved* anchor's timestamp — if the caller pinned the anchor to a past block
288
+ // via `anchorBlockNumber`, "latest" would be the wrong anchor for offchain-message semantics.
289
+ this.setLastCallContext(Fr.ZERO, anchorBlock.globalVariables.timestamp);
229
290
  return this.oracleHandler.getPrivateContextInputs();
230
291
  }
231
292
  async enterPublicState(contractAddress) {
232
293
  this.exitTopLevelState();
294
+ this.resetLastCall();
233
295
  // The PublicContext will create a block with a single transaction in it, containing the effects of what was done in
234
296
  // the test. The block therefore gets the *next* block number and timestamp.
235
- const latestBlockNumber = (await this.stateMachine.node.getBlockHeader('latest')).globalVariables.blockNumber;
297
+ const latestHeader = await this.stateMachine.node.getBlockHeader('latest');
236
298
  const globalVariables = makeGlobalVariables(undefined, {
237
- blockNumber: BlockNumber(latestBlockNumber + 1),
299
+ blockNumber: BlockNumber(latestHeader.globalVariables.blockNumber + 1),
238
300
  timestamp: this.nextBlockTimestamp,
239
301
  version: this.version,
240
302
  chainId: this.chainId
@@ -244,9 +306,12 @@ import { makeTxEffect } from './utils/tx_effect_creation.js';
244
306
  name: 'PUBLIC'
245
307
  };
246
308
  this.logger.debug(`Entered state ${this.state.name}`);
309
+ // Public state is anchored at the latest block.
310
+ this.setLastCallContext(Fr.ZERO, latestHeader.globalVariables.timestamp);
247
311
  }
248
312
  async enterUtilityState(contractAddress = DEFAULT_ADDRESS) {
249
313
  this.exitTopLevelState();
314
+ this.resetLastCall();
250
315
  const anchorBlockHeader = await this.stateMachine.anchorBlockStore.getBlockHeader();
251
316
  // There is no automatic message discovery and contract-driven syncing process in inlined private or utility
252
317
  // contexts, which means that known nullifiers are also not searched for, since it is during the tagging sync that
@@ -269,15 +334,19 @@ import { makeTxEffect } from './utils/tx_effect_creation.js';
269
334
  capsuleService: new CapsuleService(this.capsuleStore, await this.keyStore.getAccounts()),
270
335
  privateEventStore: this.privateEventStore,
271
336
  messageContextService: this.stateMachine.messageContextService,
272
- contractSyncService: this.contractSyncService,
337
+ contractSyncService: this.stateMachine.contractSyncService,
273
338
  l2TipsStore: this.stateMachine.node,
274
339
  jobId: this.currentJobId,
275
- scopes: await this.keyStore.getAccounts()
340
+ scopes: await this.keyStore.getAccounts(),
341
+ simulator: new WASMSimulator(),
342
+ utilityExecutor: this.utilityExecutorForContractSync(anchorBlockHeader)
276
343
  });
277
344
  this.state = {
278
345
  name: 'UTILITY'
279
346
  };
280
347
  this.logger.debug(`Entered state ${this.state.name}`);
348
+ // Utility state anchors at whatever the anchor block store is pointing to (tracked as latest).
349
+ this.setLastCallContext(Fr.ZERO, anchorBlockHeader.globalVariables.timestamp);
281
350
  }
282
351
  exitTopLevelState() {
283
352
  if (this.state.name != 'TOP_LEVEL') {
@@ -336,6 +405,7 @@ import { makeTxEffect } from './utils/tx_effect_creation.js';
336
405
  throw new Error(`Cannot run ${entryPointArtifact.functionType} function as utility`);
337
406
  }
338
407
  try {
408
+ const simulator = new WASMSimulator();
339
409
  const oracle = new UtilityExecutionOracle({
340
410
  contractAddress: call.to,
341
411
  authWitnesses: [],
@@ -351,12 +421,14 @@ import { makeTxEffect } from './utils/tx_effect_creation.js';
351
421
  capsuleService: new CapsuleService(this.capsuleStore, scopes),
352
422
  privateEventStore: this.privateEventStore,
353
423
  messageContextService: this.stateMachine.messageContextService,
354
- contractSyncService: this.contractSyncService,
424
+ contractSyncService: this.stateMachine.contractSyncService,
355
425
  l2TipsStore: this.stateMachine.node,
356
426
  jobId: this.currentJobId,
357
- scopes
427
+ scopes,
428
+ simulator,
429
+ utilityExecutor: this.utilityExecutorForContractSync(anchorBlock)
358
430
  });
359
- await new WASMSimulator().executeUserCircuit(toACVMWitness(0, call.args), entryPointArtifact, new Oracle(oracle).toACIRCallback()).catch((err)=>{
431
+ await simulator.executeUserCircuit(toACVMWitness(0, call.args), entryPointArtifact, new Oracle(oracle).toACIRCallback()).catch((err)=>{
360
432
  err.message = resolveAssertionMessageFromError(err, entryPointArtifact);
361
433
  throw new ExecutionError(err.message, {
362
434
  contractAddress: call.to,
@@ -57,6 +57,7 @@ export declare const ForeignCallSingleSchema: z.ZodString;
57
57
  export declare const ForeignCallArraySchema: z.ZodArray<z.ZodString, "many">;
58
58
  export declare const ForeignCallArgsSchema: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">, z.ZodObject<{
59
59
  name: z.ZodString;
60
+ aztecVersion: z.ZodDefault<z.ZodString>;
60
61
  functions: z.ZodArray<z.ZodIntersection<z.ZodObject<{
61
62
  name: z.ZodString;
62
63
  functionType: z.ZodNativeEnum<typeof import("@aztec/stdlib/abi").FunctionType>;
@@ -490,6 +491,7 @@ export declare const ForeignCallArgsSchema: z.ZodArray<z.ZodUnion<[z.ZodString,
490
491
  }>, unknown>;
491
492
  }, "strip", z.ZodTypeAny, {
492
493
  name: string;
494
+ aztecVersion: string;
493
495
  functions: ({
494
496
  name: string;
495
497
  functionType: import("@aztec/stdlib/abi").FunctionType;
@@ -576,6 +578,7 @@ export declare const ForeignCallArgsSchema: z.ZodArray<z.ZodUnion<[z.ZodString,
576
578
  }>;
577
579
  }, {
578
580
  name: string;
581
+ aztecVersion?: string | undefined;
579
582
  functions: ({
580
583
  name: string;
581
584
  functionType: import("@aztec/stdlib/abi").FunctionType;
@@ -716,4 +719,4 @@ export declare const ForeignCallResultSchema: z.ZodObject<{
716
719
  }, {
717
720
  values: (string | string[])[];
718
721
  }>;
719
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jb2RpbmcuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL2VuY29kaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVoRSxPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBMEIsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEtBQUssMkJBQTJCLEVBQXFDLE1BQU0sd0JBQXdCLENBQUM7QUFFN0csT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixNQUFNLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDO0FBRXZDLE1BQU0sTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLEVBQUUsQ0FBQztBQUV4QyxNQUFNLE1BQU0sZUFBZSxHQUFHLENBQUMsaUJBQWlCLEdBQUcsZ0JBQWdCLEdBQUcsZ0JBQWdCLEdBQUcsMkJBQTJCLENBQUMsRUFBRSxDQUFDO0FBRXhILE1BQU0sTUFBTSxpQkFBaUIsR0FBRztJQUM5QixNQUFNLEVBQUUsQ0FBQyxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7Q0FDbEQsQ0FBQztBQUVGLHdCQUFnQixVQUFVLENBQUMsR0FBRyxFQUFFLGlCQUFpQixNQUVoRDtBQUVELHdCQUFnQixpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLGdCQUV2RDtBQUVELHdCQUFnQixTQUFTLENBQUMsR0FBRyxFQUFFLGdCQUFnQixRQUU5QztBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0IsYUFBYSxDQUFDLEdBQUcsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxHQUFHLE1BQU0sQ0FNaEY7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILHdCQUFnQixrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxNQUFNLEdBQUcsTUFBTSxDQU9wSDtBQUlELHdCQUFnQixRQUFRLENBQ3RCLEtBQUssRUFBRSxZQUFZLEdBQUcsVUFBVSxHQUFHLEVBQUUsR0FBRyxNQUFNLEdBQUcsT0FBTyxHQUFHLE1BQU0sR0FBRyxNQUFNLEdBQ3pFLGlCQUFpQixDQVluQjtBQUVELHdCQUFnQixPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLGdCQUFnQixDQUVwRDtBQUVELHdCQUFnQixlQUFlLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUscUJBRS9DO0FBRUQsd0JBQWdCLGVBQWUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLGdCQUFnQixDQUVoRTtBQUVEOzs7Ozs7O0dBT0c7QUFDSCx3QkFBZ0IsaUJBQWlCLENBQy9CLFdBQVcsRUFBRSxnQkFBZ0IsRUFDN0IsTUFBTSxFQUFFLE1BQU0sR0FDYixDQUFDLGdCQUFnQixFQUFFLGlCQUFpQixDQUFDLENBWXZDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsd0JBQWdCLGlDQUFpQyxDQUMvQyxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsRUFDL0IsTUFBTSxFQUFFLE1BQU0sRUFDZCxpQkFBaUIsRUFBRSxNQUFNLEdBQ3hCLENBQUMsZ0JBQWdCLEVBQUUsaUJBQWlCLENBQUMsQ0FxQnZDO0FBRUQsd0JBQWdCLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixHQUFHLGdCQUFnQixDQUFDLEVBQUU7O0VBRWhGO0FBRUQsZUFBTyxNQUFNLHVCQUF1QixhQUFhLENBQUM7QUFFbEQsZUFBTyxNQUFNLHNCQUFzQixpQ0FBc0IsQ0FBQztBQUUxRCxlQUFPLE1BQU0scUJBQXFCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztjQUVqQyxDQUFDO0FBRUYsZUFBTyxNQUFNLHVCQUF1Qjs7Ozs7O0VBRWxDLENBQUMifQ==
722
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jb2RpbmcuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL2VuY29kaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVoRSxPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBMEIsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEtBQUssMkJBQTJCLEVBQXFDLE1BQU0sd0JBQXdCLENBQUM7QUFFN0csT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixNQUFNLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDO0FBRXZDLE1BQU0sTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLEVBQUUsQ0FBQztBQUV4QyxNQUFNLE1BQU0sZUFBZSxHQUFHLENBQUMsaUJBQWlCLEdBQUcsZ0JBQWdCLEdBQUcsZ0JBQWdCLEdBQUcsMkJBQTJCLENBQUMsRUFBRSxDQUFDO0FBRXhILE1BQU0sTUFBTSxpQkFBaUIsR0FBRztJQUM5QixNQUFNLEVBQUUsQ0FBQyxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7Q0FDbEQsQ0FBQztBQUVGLHdCQUFnQixVQUFVLENBQUMsR0FBRyxFQUFFLGlCQUFpQixNQUVoRDtBQUVELHdCQUFnQixpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLGdCQUV2RDtBQUVELHdCQUFnQixTQUFTLENBQUMsR0FBRyxFQUFFLGdCQUFnQixRQUU5QztBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0IsYUFBYSxDQUFDLEdBQUcsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxHQUFHLE1BQU0sQ0FNaEY7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILHdCQUFnQixrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxNQUFNLEdBQUcsTUFBTSxDQU9wSDtBQUlELHdCQUFnQixRQUFRLENBQ3RCLEtBQUssRUFBRSxZQUFZLEdBQUcsVUFBVSxHQUFHLEVBQUUsR0FBRyxNQUFNLEdBQUcsT0FBTyxHQUFHLE1BQU0sR0FBRyxNQUFNLEdBQ3pFLGlCQUFpQixDQVluQjtBQUVELHdCQUFnQixPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLGdCQUFnQixDQUVwRDtBQUVELHdCQUFnQixlQUFlLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUscUJBRS9DO0FBRUQsd0JBQWdCLGVBQWUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLGdCQUFnQixDQUVoRTtBQUVEOzs7Ozs7O0dBT0c7QUFDSCx3QkFBZ0IsaUJBQWlCLENBQy9CLFdBQVcsRUFBRSxnQkFBZ0IsRUFDN0IsTUFBTSxFQUFFLE1BQU0sR0FDYixDQUFDLGdCQUFnQixFQUFFLGlCQUFpQixDQUFDLENBWXZDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsd0JBQWdCLGlDQUFpQyxDQUMvQyxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsRUFDL0IsTUFBTSxFQUFFLE1BQU0sRUFDZCxpQkFBaUIsRUFBRSxNQUFNLEdBQ3hCLENBQUMsZ0JBQWdCLEVBQUUsaUJBQWlCLENBQUMsQ0FxQnZDO0FBRUQsd0JBQWdCLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixHQUFHLGdCQUFnQixDQUFDLEVBQUU7O0VBRWhGO0FBRUQsZUFBTyxNQUFNLHVCQUF1QixhQUFhLENBQUM7QUFFbEQsZUFBTyxNQUFNLHNCQUFzQixpQ0FBc0IsQ0FBQztBQUUxRCxlQUFPLE1BQU0scUJBQXFCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztjQUVqQyxDQUFDO0FBRUYsZUFBTyxNQUFNLHVCQUF1Qjs7Ozs7O0VBRWxDLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../../src/util/encoding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../../src/util/encoding.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/txe",
3
- "version": "0.0.1-commit.fff30aa",
3
+ "version": "0.0.1-dev",
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": "0.0.1-commit.fff30aa",
65
- "@aztec/archiver": "0.0.1-commit.fff30aa",
66
- "@aztec/aztec-node": "0.0.1-commit.fff30aa",
67
- "@aztec/aztec.js": "0.0.1-commit.fff30aa",
68
- "@aztec/bb-prover": "0.0.1-commit.fff30aa",
69
- "@aztec/constants": "0.0.1-commit.fff30aa",
70
- "@aztec/foundation": "0.0.1-commit.fff30aa",
71
- "@aztec/key-store": "0.0.1-commit.fff30aa",
72
- "@aztec/kv-store": "0.0.1-commit.fff30aa",
73
- "@aztec/protocol-contracts": "0.0.1-commit.fff30aa",
74
- "@aztec/pxe": "0.0.1-commit.fff30aa",
75
- "@aztec/simulator": "0.0.1-commit.fff30aa",
76
- "@aztec/stdlib": "0.0.1-commit.fff30aa",
77
- "@aztec/world-state": "0.0.1-commit.fff30aa",
64
+ "@aztec/accounts": "0.0.1-dev",
65
+ "@aztec/archiver": "0.0.1-dev",
66
+ "@aztec/aztec-node": "0.0.1-dev",
67
+ "@aztec/aztec.js": "0.0.1-dev",
68
+ "@aztec/bb-prover": "0.0.1-dev",
69
+ "@aztec/constants": "0.0.1-dev",
70
+ "@aztec/foundation": "0.0.1-dev",
71
+ "@aztec/key-store": "0.0.1-dev",
72
+ "@aztec/kv-store": "0.0.1-dev",
73
+ "@aztec/protocol-contracts": "0.0.1-dev",
74
+ "@aztec/pxe": "0.0.1-dev",
75
+ "@aztec/simulator": "0.0.1-dev",
76
+ "@aztec/stdlib": "0.0.1-dev",
77
+ "@aztec/world-state": "0.0.1-dev",
78
78
  "zod": "^3.23.8"
79
79
  },
80
80
  "devDependencies": {
@@ -6,6 +6,8 @@ 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 { GasSettings } from '@aztec/stdlib/gas';
10
+ import type { PrivateLog } from '@aztec/stdlib/logs';
9
11
  import type { UInt64 } from '@aztec/stdlib/types';
10
12
 
11
13
  // These interfaces complement the ones defined in PXE, and combined with those contain the full list of oracles used by
@@ -58,28 +60,34 @@ export interface ITxeExecutionOracle {
58
60
  txHash: TxHash;
59
61
  noteHashes: Fr[];
60
62
  nullifiers: Fr[];
63
+ privateLogs: PrivateLog[];
61
64
  }>;
62
65
  getPrivateEvents(selector: EventSelector, contractAddress: AztecAddress, scope: AztecAddress): Promise<Fr[][]>;
63
66
  privateCallNewFlow(
64
- from: AztecAddress,
67
+ from: AztecAddress | undefined,
65
68
  targetContractAddress: AztecAddress,
66
69
  functionSelector: FunctionSelector,
67
70
  args: Fr[],
68
71
  argsHash: Fr,
69
72
  isStaticCall: boolean,
73
+ additionalScopes: AztecAddress[],
70
74
  jobId: string,
71
- ): Promise<Fr[]>;
75
+ authorizedUtilityCallTargets: AztecAddress[],
76
+ gasSettings: GasSettings,
77
+ ): Promise<{ returnValues: Fr[]; offchainEffects: Fr[][] }>;
72
78
  executeUtilityFunction(
73
79
  targetContractAddress: AztecAddress,
74
80
  functionSelector: FunctionSelector,
75
81
  args: Fr[],
76
82
  jobId: string,
83
+ authorizedUtilityCallTargets: AztecAddress[],
77
84
  ): Promise<Fr[]>;
78
85
  publicCallNewFlow(
79
- from: AztecAddress,
86
+ from: AztecAddress | undefined,
80
87
  targetContractAddress: AztecAddress,
81
88
  calldata: Fr[],
82
89
  isStaticCall: boolean,
90
+ gasSettings: GasSettings,
83
91
  ): Promise<Fr[]>;
84
92
  // TODO(F-335): Drop this from here as it's not a real oracle handler - it's only called from
85
93
  // RPCTranslator::txeGetPrivateEvents and never from Noir.