@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.
- package/dest/oracle/interfaces.d.ts +10 -4
- package/dest/oracle/interfaces.d.ts.map +1 -1
- package/dest/oracle/txe_oracle_top_level_context.d.ts +12 -7
- package/dest/oracle/txe_oracle_top_level_context.d.ts.map +1 -1
- package/dest/oracle/txe_oracle_top_level_context.js +59 -33
- package/dest/rpc_translator.d.ts +20 -6
- package/dest/rpc_translator.d.ts.map +1 -1
- package/dest/rpc_translator.js +149 -21
- package/dest/state_machine/index.js +1 -1
- package/dest/txe_oracle_version.d.ts +10 -0
- package/dest/txe_oracle_version.d.ts.map +1 -0
- package/dest/txe_oracle_version.js +8 -0
- package/dest/txe_session.d.ts +61 -6
- package/dest/txe_session.d.ts.map +1 -1
- package/dest/txe_session.js +93 -21
- package/dest/util/encoding.d.ts +4 -1
- package/dest/util/encoding.d.ts.map +1 -1
- package/package.json +15 -15
- package/src/oracle/interfaces.ts +11 -3
- package/src/oracle/txe_oracle_top_level_context.ts +66 -42
- package/src/rpc_translator.ts +215 -31
- package/src/state_machine/index.ts +1 -1
- package/src/txe_oracle_version.ts +9 -0
- package/src/txe_session.ts +170 -17
package/dest/txe_session.js
CHANGED
|
@@ -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,
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
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,
|
|
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
|
|
297
|
+
const latestHeader = await this.stateMachine.node.getBlockHeader('latest');
|
|
236
298
|
const globalVariables = makeGlobalVariables(undefined, {
|
|
237
|
-
blockNumber: BlockNumber(
|
|
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
|
|
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,
|
package/dest/util/encoding.d.ts
CHANGED
|
@@ -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,
|
|
722
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jb2RpbmcuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL2VuY29kaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVoRSxPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBMEIsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEtBQUssMkJBQTJCLEVBQXFDLE1BQU0sd0JBQXdCLENBQUM7QUFFN0csT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixNQUFNLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDO0FBRXZDLE1BQU0sTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLEVBQUUsQ0FBQztBQUV4QyxNQUFNLE1BQU0sZUFBZSxHQUFHLENBQUMsaUJBQWlCLEdBQUcsZ0JBQWdCLEdBQUcsZ0JBQWdCLEdBQUcsMkJBQTJCLENBQUMsRUFBRSxDQUFDO0FBRXhILE1BQU0sTUFBTSxpQkFBaUIsR0FBRztJQUM5QixNQUFNLEVBQUUsQ0FBQyxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7Q0FDbEQsQ0FBQztBQUVGLHdCQUFnQixVQUFVLENBQUMsR0FBRyxFQUFFLGlCQUFpQixNQUVoRDtBQUVELHdCQUFnQixpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLGdCQUV2RDtBQUVELHdCQUFnQixTQUFTLENBQUMsR0FBRyxFQUFFLGdCQUFnQixRQUU5QztBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0IsYUFBYSxDQUFDLEdBQUcsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxHQUFHLE1BQU0sQ0FNaEY7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILHdCQUFnQixrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxNQUFNLEdBQUcsTUFBTSxDQU9wSDtBQUlELHdCQUFnQixRQUFRLENBQ3RCLEtBQUssRUFBRSxZQUFZLEdBQUcsVUFBVSxHQUFHLEVBQUUsR0FBRyxNQUFNLEdBQUcsT0FBTyxHQUFHLE1BQU0sR0FBRyxNQUFNLEdBQ3pFLGlCQUFpQixDQVluQjtBQUVELHdCQUFnQixPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLGdCQUFnQixDQUVwRDtBQUVELHdCQUFnQixlQUFlLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUscUJBRS9DO0FBRUQsd0JBQWdCLGVBQWUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLGdCQUFnQixDQUVoRTtBQUVEOzs7Ozs7O0dBT0c7QUFDSCx3QkFBZ0IsaUJBQWlCLENBQy9CLFdBQVcsRUFBRSxnQkFBZ0IsRUFDN0IsTUFBTSxFQUFFLE1BQU0sR0FDYixDQUFDLGdCQUFnQixFQUFFLGlCQUFpQixDQUFDLENBWXZDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsd0JBQWdCLGlDQUFpQyxDQUMvQyxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsRUFDL0IsTUFBTSxFQUFFLE1BQU0sRUFDZCxpQkFBaUIsRUFBRSxNQUFNLEdBQ3hCLENBQUMsZ0JBQWdCLEVBQUUsaUJBQWlCLENBQUMsQ0FxQnZDO0FBRUQsd0JBQWdCLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixHQUFHLGdCQUFnQixDQUFDLEVBQUU7O0VBRWhGO0FBRUQsZUFBTyxNQUFNLHVCQUF1QixhQUFhLENBQUM7QUFFbEQsZUFBTyxNQUFNLHNCQUFzQixpQ0FBc0IsQ0FBQztBQUUxRCxlQUFPLE1BQU0scUJBQXFCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztjQUVqQyxDQUFDO0FBRUYsZUFBTyxNQUFNLHVCQUF1Qjs7Ozs7O0VBRWxDLENBQUMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../../src/util/encoding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,KAAK,gBAAgB,EAA0B,MAAM,mBAAmB,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,KAAK,2BAA2B,EAAqC,MAAM,wBAAwB,CAAC;AAE7G,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAEvC,MAAM,MAAM,gBAAgB,GAAG,MAAM,EAAE,CAAC;AAExC,MAAM,MAAM,eAAe,GAAG,CAAC,iBAAiB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,2BAA2B,CAAC,EAAE,CAAC;AAExH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,EAAE,CAAC;CAClD,CAAC;AAEF,wBAAgB,UAAU,CAAC,GAAG,EAAE,iBAAiB,MAEhD;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,iBAAiB,gBAEvD;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,gBAAgB,QAE9C;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAMhF;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAOpH;AAID,wBAAgB,QAAQ,CACtB,KAAK,EAAE,YAAY,GAAG,UAAU,GAAG,EAAE,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GACzE,iBAAiB,CAYnB;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,gBAAgB,CAEpD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,qBAE/C;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAEhE;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,gBAAgB,EAC7B,MAAM,EAAE,MAAM,GACb,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAYvC;AAED;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAC/C,WAAW,EAAE,gBAAgB,EAAE,EAC/B,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,MAAM,GACxB,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAqBvC;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,EAAE;;EAEhF;AAED,eAAO,MAAM,uBAAuB,aAAa,CAAC;AAElD,eAAO,MAAM,sBAAsB,iCAAsB,CAAC;AAE1D,eAAO,MAAM,qBAAqB
|
|
1
|
+
{"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../../src/util/encoding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,KAAK,gBAAgB,EAA0B,MAAM,mBAAmB,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,KAAK,2BAA2B,EAAqC,MAAM,wBAAwB,CAAC;AAE7G,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAEvC,MAAM,MAAM,gBAAgB,GAAG,MAAM,EAAE,CAAC;AAExC,MAAM,MAAM,eAAe,GAAG,CAAC,iBAAiB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,2BAA2B,CAAC,EAAE,CAAC;AAExH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,EAAE,CAAC;CAClD,CAAC;AAEF,wBAAgB,UAAU,CAAC,GAAG,EAAE,iBAAiB,MAEhD;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,iBAAiB,gBAEvD;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,gBAAgB,QAE9C;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAMhF;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAOpH;AAID,wBAAgB,QAAQ,CACtB,KAAK,EAAE,YAAY,GAAG,UAAU,GAAG,EAAE,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GACzE,iBAAiB,CAYnB;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,gBAAgB,CAEpD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,qBAE/C;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAEhE;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,gBAAgB,EAC7B,MAAM,EAAE,MAAM,GACb,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAYvC;AAED;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAC/C,WAAW,EAAE,gBAAgB,EAAE,EAC/B,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,MAAM,GACxB,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAqBvC;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,EAAE;;EAEhF;AAED,eAAO,MAAM,uBAAuB,aAAa,CAAC;AAElD,eAAO,MAAM,sBAAsB,iCAAsB,CAAC;AAE1D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAEjC,CAAC;AAEF,eAAO,MAAM,uBAAuB;;;;;;EAElC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/txe",
|
|
3
|
-
"version": "0.0.1-
|
|
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-
|
|
65
|
-
"@aztec/archiver": "0.0.1-
|
|
66
|
-
"@aztec/aztec-node": "0.0.1-
|
|
67
|
-
"@aztec/aztec.js": "0.0.1-
|
|
68
|
-
"@aztec/bb-prover": "0.0.1-
|
|
69
|
-
"@aztec/constants": "0.0.1-
|
|
70
|
-
"@aztec/foundation": "0.0.1-
|
|
71
|
-
"@aztec/key-store": "0.0.1-
|
|
72
|
-
"@aztec/kv-store": "0.0.1-
|
|
73
|
-
"@aztec/protocol-contracts": "0.0.1-
|
|
74
|
-
"@aztec/pxe": "0.0.1-
|
|
75
|
-
"@aztec/simulator": "0.0.1-
|
|
76
|
-
"@aztec/stdlib": "0.0.1-
|
|
77
|
-
"@aztec/world-state": "0.0.1-
|
|
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": {
|
package/src/oracle/interfaces.ts
CHANGED
|
@@ -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
|
-
|
|
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.
|