@aztec/txe 0.81.0 → 0.82.1-alpha-testnet.1
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/bin/index.js +1 -0
- package/dest/node/txe_node.d.ts +3 -33
- package/dest/node/txe_node.d.ts.map +1 -1
- package/dest/node/txe_node.js +50 -55
- package/dest/oracle/txe_oracle.d.ts +9 -8
- package/dest/oracle/txe_oracle.d.ts.map +1 -1
- package/dest/oracle/txe_oracle.js +42 -55
- package/dest/txe_service/txe_service.d.ts +8 -6
- package/dest/txe_service/txe_service.d.ts.map +1 -1
- package/dest/txe_service/txe_service.js +31 -54
- package/dest/util/encoding.d.ts +2 -2
- package/dest/util/txe_public_contract_data_source.d.ts +1 -2
- package/dest/util/txe_public_contract_data_source.d.ts.map +1 -1
- package/dest/util/txe_public_contract_data_source.js +15 -37
- package/package.json +12 -12
- package/src/bin/index.ts +1 -0
- package/src/node/txe_node.ts +56 -76
- package/src/oracle/txe_oracle.ts +62 -67
- package/src/txe_service/txe_service.ts +32 -34
- package/src/util/txe_public_contract_data_source.ts +21 -38
package/dest/bin/index.js
CHANGED
|
@@ -18,6 +18,7 @@ import { createTXERpcServer } from '../index.js';
|
|
|
18
18
|
logger.info(`Setting up TXE...`);
|
|
19
19
|
const txeServer = createTXERpcServer(logger);
|
|
20
20
|
const { port } = await startHttpRpcServer(txeServer, {
|
|
21
|
+
host: '127.0.0.1',
|
|
21
22
|
port: TXE_PORT,
|
|
22
23
|
timeoutMs: 1e3 * 60 * 5
|
|
23
24
|
});
|
package/dest/node/txe_node.d.ts
CHANGED
|
@@ -43,22 +43,6 @@ export declare class TXENode implements AztecNode {
|
|
|
43
43
|
* @param effect - The tx effect to set.
|
|
44
44
|
*/
|
|
45
45
|
setTxEffect(blockNumber: number, txHash: TxHash, effect: TxEffect): Promise<void>;
|
|
46
|
-
/**
|
|
47
|
-
* Returns the indexes of the given nullifiers in the nullifier tree,
|
|
48
|
-
* scoped to the block they were included in.
|
|
49
|
-
* @param blockNumber - The block number at which to get the data.
|
|
50
|
-
* @param nullifiers - The nullifiers to search for.
|
|
51
|
-
* @returns The block scoped indexes of the given nullifiers in the nullifier tree, or undefined if not found.
|
|
52
|
-
*/
|
|
53
|
-
findNullifiersIndexesWithBlock(blockNumber: L2BlockNumber, nullifiers: Fr[]): Promise<(InBlock<bigint> | undefined)[]>;
|
|
54
|
-
/**
|
|
55
|
-
* Returns the indexes of the given nullifiers in the nullifier tree,
|
|
56
|
-
* scoped to the block they were included in.
|
|
57
|
-
* @param blockNumber - The block number at which to get the data.
|
|
58
|
-
* @param nullifiers - The nullifiers to search for.
|
|
59
|
-
* @returns The block scoped indexes of the given nullifiers in the nullifier tree, or undefined if not found.
|
|
60
|
-
*/
|
|
61
|
-
setNullifiersIndexesWithBlock(blockNumber: number, nullifiers: Fr[]): void;
|
|
62
46
|
/**
|
|
63
47
|
* Adds private logs to the txe node, given a block
|
|
64
48
|
* @param blockNumber - The block number at which to add the private logs.
|
|
@@ -87,9 +71,9 @@ export declare class TXENode implements AztecNode {
|
|
|
87
71
|
* @param blockNumber - The block number at which to get the data or 'latest' for latest data
|
|
88
72
|
* @param treeId - The tree to search in.
|
|
89
73
|
* @param leafValue - The values to search for
|
|
90
|
-
* @returns The
|
|
74
|
+
* @returns The indices of leaves and the block metadata of a block in which the leaf was inserted.
|
|
91
75
|
*/
|
|
92
|
-
findLeavesIndexes(blockNumber: L2BlockNumber, treeId: MerkleTreeId, leafValues: Fr[]): Promise<(bigint | undefined)[]>;
|
|
76
|
+
findLeavesIndexes(blockNumber: L2BlockNumber, treeId: MerkleTreeId, leafValues: Fr[]): Promise<(InBlock<bigint> | undefined)[]>;
|
|
93
77
|
/**
|
|
94
78
|
* Returns a sibling path for the given index in the nullifier tree.
|
|
95
79
|
* @param blockNumber - The block number at which to get the data.
|
|
@@ -168,7 +152,7 @@ export declare class TXENode implements AztecNode {
|
|
|
168
152
|
* "in range" slot, means that the slot doesn't exist and the value is 0. If the low leaf preimage corresponds to the exact slot, the current value
|
|
169
153
|
* is contained in the leaf preimage.
|
|
170
154
|
*/
|
|
171
|
-
|
|
155
|
+
getPublicDataWitness(_blockNumber: L2BlockNumber, _leafSlot: Fr): Promise<PublicDataWitness | undefined>;
|
|
172
156
|
/**
|
|
173
157
|
* Get a block specified by its number.
|
|
174
158
|
* @param number - The block number being requested.
|
|
@@ -319,12 +303,6 @@ export declare class TXENode implements AztecNode {
|
|
|
319
303
|
* Returns the ENR of this node for peer discovery, if available.
|
|
320
304
|
*/
|
|
321
305
|
getEncodedEnr(): Promise<string | undefined>;
|
|
322
|
-
/**
|
|
323
|
-
* Adds a contract class bypassing the registerer.
|
|
324
|
-
* TODO(#10007): Remove this method.
|
|
325
|
-
* @param contractClass - The class to register.
|
|
326
|
-
*/
|
|
327
|
-
addContractClass(_contractClass: ContractClassPublic): Promise<void>;
|
|
328
306
|
/**
|
|
329
307
|
* Method to fetch the current base fees.
|
|
330
308
|
* @returns The current base fees.
|
|
@@ -337,14 +315,6 @@ export declare class TXENode implements AztecNode {
|
|
|
337
315
|
* @returns An array of private logs from the specified range of blocks.
|
|
338
316
|
*/
|
|
339
317
|
getPrivateLogs(_from: number, _limit: number): Promise<PrivateLog[]>;
|
|
340
|
-
/**
|
|
341
|
-
* Find the block numbers of the given leaf indices in the given tree.
|
|
342
|
-
* @param blockNumber - The block number at which to get the data or 'latest' for latest data
|
|
343
|
-
* @param treeId - The tree to search in.
|
|
344
|
-
* @param leafIndices - The values to search for
|
|
345
|
-
* @returns The indexes of the given leaves in the given tree or undefined if not found.
|
|
346
|
-
*/
|
|
347
|
-
findBlockNumbersForIndexes(_blockNumber: L2BlockNumber, _treeId: MerkleTreeId, _leafIndices: bigint[]): Promise<(bigint | undefined)[]>;
|
|
348
318
|
/**
|
|
349
319
|
* Returns the information about the server's node. Includes current Node version, compatible Noir version,
|
|
350
320
|
* L1 chain identifier, protocol version, and L1 address of the rollup contract.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"txe_node.d.ts","sourceRoot":"","sources":["../../src/node/txe_node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACxB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EACL,KAAK,OAAO,EACZ,OAAO,EAEP,KAAK,aAAa,EAClB,KAAK,MAAM,EACX,KAAK,gBAAgB,EACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,mBAAmB,EACnB,2BAA2B,EAC3B,QAAQ,EACR,yBAAyB,EAC1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,KAAK,EAAE,SAAS,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACtH,OAAO,KAAK,EAEV,yBAAyB,EACzB,YAAY,EACZ,eAAe,EACf,oBAAoB,EACrB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACpG,OAAO,EACL,YAAY,EACZ,KAAK,0BAA0B,EAE/B,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,WAAW,EACX,KAAK,sBAAsB,EAC3B,KAAK,EAAE,EACP,KAAK,QAAQ,EACb,MAAM,EACN,SAAS,EACT,KAAK,kBAAkB,EACxB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAElE,qBAAa,OAAQ,YAAW,SAAS;;
|
|
1
|
+
{"version":3,"file":"txe_node.d.ts","sourceRoot":"","sources":["../../src/node/txe_node.ts"],"names":[],"mappings":"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"}
|
package/dest/node/txe_node.js
CHANGED
|
@@ -15,7 +15,6 @@ export class TXENode {
|
|
|
15
15
|
#logsByTags;
|
|
16
16
|
#txEffectsByTxHash;
|
|
17
17
|
#txReceiptsByTxHash;
|
|
18
|
-
#blockNumberToNullifiers;
|
|
19
18
|
#noteIndex;
|
|
20
19
|
#logger;
|
|
21
20
|
constructor(blockNumber, version, chainId, nativeWorldStateService, baseFork){
|
|
@@ -27,7 +26,6 @@ export class TXENode {
|
|
|
27
26
|
this.#logsByTags = new Map();
|
|
28
27
|
this.#txEffectsByTxHash = new Map();
|
|
29
28
|
this.#txReceiptsByTxHash = new Map();
|
|
30
|
-
this.#blockNumberToNullifiers = new Map();
|
|
31
29
|
this.#noteIndex = 0;
|
|
32
30
|
this.#logger = createLogger('aztec:txe_node');
|
|
33
31
|
}
|
|
@@ -69,39 +67,7 @@ export class TXENode {
|
|
|
69
67
|
});
|
|
70
68
|
// We also set the receipt since we want to be able to serve `getTxReceipt` - we don't care about most values here,
|
|
71
69
|
// but we do need to be able to retrieve the block number of a given txHash.
|
|
72
|
-
this.#txReceiptsByTxHash.set(txHash.toString(), new TxReceipt(txHash, TxReceipt.statusFromRevertCode(effect.revertCode), '', undefined, new L2BlockHash(blockHash.toBuffer()), blockNumber
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Returns the indexes of the given nullifiers in the nullifier tree,
|
|
76
|
-
* scoped to the block they were included in.
|
|
77
|
-
* @param blockNumber - The block number at which to get the data.
|
|
78
|
-
* @param nullifiers - The nullifiers to search for.
|
|
79
|
-
* @returns The block scoped indexes of the given nullifiers in the nullifier tree, or undefined if not found.
|
|
80
|
-
*/ async findNullifiersIndexesWithBlock(blockNumber, nullifiers) {
|
|
81
|
-
const parsedBlockNumber = blockNumber === 'latest' ? await this.getBlockNumber() : blockNumber;
|
|
82
|
-
const nullifiersInBlock = [];
|
|
83
|
-
for (const [key, val] of this.#blockNumberToNullifiers.entries()){
|
|
84
|
-
if (key <= parsedBlockNumber) {
|
|
85
|
-
nullifiersInBlock.push(...val);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
return nullifiers.map((nullifier)=>{
|
|
89
|
-
const possibleNullifierIndex = nullifiersInBlock.findIndex((nullifierInBlock)=>nullifierInBlock.equals(nullifier));
|
|
90
|
-
return possibleNullifierIndex === -1 ? undefined : {
|
|
91
|
-
l2BlockNumber: parsedBlockNumber,
|
|
92
|
-
l2BlockHash: new Fr(parsedBlockNumber).toString(),
|
|
93
|
-
data: BigInt(possibleNullifierIndex)
|
|
94
|
-
};
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Returns the indexes of the given nullifiers in the nullifier tree,
|
|
99
|
-
* scoped to the block they were included in.
|
|
100
|
-
* @param blockNumber - The block number at which to get the data.
|
|
101
|
-
* @param nullifiers - The nullifiers to search for.
|
|
102
|
-
* @returns The block scoped indexes of the given nullifiers in the nullifier tree, or undefined if not found.
|
|
103
|
-
*/ setNullifiersIndexesWithBlock(blockNumber, nullifiers) {
|
|
104
|
-
this.#blockNumberToNullifiers.set(blockNumber, nullifiers);
|
|
70
|
+
this.#txReceiptsByTxHash.set(txHash.toString(), new TxReceipt(txHash, TxReceipt.statusFromRevertCode(effect.revertCode), '', undefined, new L2BlockHash(blockHash.toBuffer()), blockNumber));
|
|
105
71
|
}
|
|
106
72
|
/**
|
|
107
73
|
* Adds private logs to the txe node, given a block
|
|
@@ -151,14 +117,59 @@ export class TXENode {
|
|
|
151
117
|
* @param blockNumber - The block number at which to get the data or 'latest' for latest data
|
|
152
118
|
* @param treeId - The tree to search in.
|
|
153
119
|
* @param leafValue - The values to search for
|
|
154
|
-
* @returns The
|
|
120
|
+
* @returns The indices of leaves and the block metadata of a block in which the leaf was inserted.
|
|
155
121
|
*/ async findLeavesIndexes(blockNumber, treeId, leafValues) {
|
|
156
122
|
// Temporary workaround to be able to respond this query: the trees are currently stored in the TXE oracle, but we
|
|
157
123
|
// hold a reference to them.
|
|
158
124
|
// We should likely migrate this so that the trees are owned by the node.
|
|
159
125
|
// TODO: blockNumber is being passed as undefined, figure out why
|
|
160
126
|
const db = blockNumber === await this.getBlockNumber() || blockNumber === 'latest' || blockNumber === undefined ? this.baseFork : this.nativeWorldStateService.getSnapshot(blockNumber);
|
|
161
|
-
|
|
127
|
+
const maybeIndices = await db.findLeafIndices(treeId, leafValues.map((x)=>x.toBuffer()));
|
|
128
|
+
// We filter out undefined values
|
|
129
|
+
const indices = maybeIndices.filter((x)=>x !== undefined);
|
|
130
|
+
// Now we find the block numbers for the indices
|
|
131
|
+
const blockNumbers = await db.getBlockNumbersForLeafIndices(treeId, indices);
|
|
132
|
+
// If any of the block numbers are undefined, we throw an error.
|
|
133
|
+
for(let i = 0; i < indices.length; i++){
|
|
134
|
+
if (blockNumbers[i] === undefined) {
|
|
135
|
+
throw new Error(`Block number is undefined for leaf index ${indices[i]} in tree ${MerkleTreeId[treeId]}`);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
// Get unique block numbers in order to optimize num calls to getLeafValue function.
|
|
139
|
+
const uniqueBlockNumbers = [
|
|
140
|
+
...new Set(blockNumbers.filter((x)=>x !== undefined))
|
|
141
|
+
];
|
|
142
|
+
// Now we obtain the block hashes from the archive tree by calling await `committedDb.getLeafValue(treeId, index)`
|
|
143
|
+
// (note that block number corresponds to the leaf index in the archive tree).
|
|
144
|
+
const blockHashes = await Promise.all(uniqueBlockNumbers.map((blockNumber)=>{
|
|
145
|
+
return db.getLeafValue(MerkleTreeId.ARCHIVE, blockNumber);
|
|
146
|
+
}));
|
|
147
|
+
// If any of the block hashes are undefined, we throw an error.
|
|
148
|
+
for(let i = 0; i < uniqueBlockNumbers.length; i++){
|
|
149
|
+
if (blockHashes[i] === undefined) {
|
|
150
|
+
throw new Error(`Block hash is undefined for block number ${uniqueBlockNumbers[i]}`);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
// Create InBlock objects by combining indices, blockNumbers and blockHashes
|
|
154
|
+
return maybeIndices.map((index, i)=>{
|
|
155
|
+
if (index === undefined) {
|
|
156
|
+
return undefined;
|
|
157
|
+
}
|
|
158
|
+
const blockNumber = blockNumbers[i];
|
|
159
|
+
if (blockNumber === undefined) {
|
|
160
|
+
return undefined;
|
|
161
|
+
}
|
|
162
|
+
const blockHashIndex = uniqueBlockNumbers.indexOf(blockNumber);
|
|
163
|
+
const blockHash = blockHashes[blockHashIndex]?.toString();
|
|
164
|
+
if (!blockHash) {
|
|
165
|
+
return undefined;
|
|
166
|
+
}
|
|
167
|
+
return {
|
|
168
|
+
l2BlockNumber: Number(blockNumber),
|
|
169
|
+
l2BlockHash: blockHash,
|
|
170
|
+
data: index
|
|
171
|
+
};
|
|
172
|
+
});
|
|
162
173
|
}
|
|
163
174
|
/**
|
|
164
175
|
* Returns a sibling path for the given index in the nullifier tree.
|
|
@@ -246,8 +257,8 @@ export class TXENode {
|
|
|
246
257
|
* @remarks The witness can be used to compute the current value of the public data tree leaf. If the low leaf preimage corresponds to an
|
|
247
258
|
* "in range" slot, means that the slot doesn't exist and the value is 0. If the low leaf preimage corresponds to the exact slot, the current value
|
|
248
259
|
* is contained in the leaf preimage.
|
|
249
|
-
*/
|
|
250
|
-
throw new Error('TXE Node method
|
|
260
|
+
*/ getPublicDataWitness(_blockNumber, _leafSlot) {
|
|
261
|
+
throw new Error('TXE Node method getPublicDataWitness not implemented');
|
|
251
262
|
}
|
|
252
263
|
/**
|
|
253
264
|
* Get a block specified by its number.
|
|
@@ -441,13 +452,6 @@ export class TXENode {
|
|
|
441
452
|
throw new Error('TXE Node method getEncodedEnr not implemented');
|
|
442
453
|
}
|
|
443
454
|
/**
|
|
444
|
-
* Adds a contract class bypassing the registerer.
|
|
445
|
-
* TODO(#10007): Remove this method.
|
|
446
|
-
* @param contractClass - The class to register.
|
|
447
|
-
*/ addContractClass(_contractClass) {
|
|
448
|
-
throw new Error('TXE Node method addContractClass not implemented');
|
|
449
|
-
}
|
|
450
|
-
/**
|
|
451
455
|
* Method to fetch the current base fees.
|
|
452
456
|
* @returns The current base fees.
|
|
453
457
|
*/ getCurrentBaseFees() {
|
|
@@ -462,15 +466,6 @@ export class TXENode {
|
|
|
462
466
|
throw new Error('TXE Node method getPrivateLogs not implemented');
|
|
463
467
|
}
|
|
464
468
|
/**
|
|
465
|
-
* Find the block numbers of the given leaf indices in the given tree.
|
|
466
|
-
* @param blockNumber - The block number at which to get the data or 'latest' for latest data
|
|
467
|
-
* @param treeId - The tree to search in.
|
|
468
|
-
* @param leafIndices - The values to search for
|
|
469
|
-
* @returns The indexes of the given leaves in the given tree or undefined if not found.
|
|
470
|
-
*/ findBlockNumbersForIndexes(_blockNumber, _treeId, _leafIndices) {
|
|
471
|
-
throw new Error('TXE Node method findBlockNumbersForIndexes not implemented');
|
|
472
|
-
}
|
|
473
|
-
/**
|
|
474
469
|
* Returns the information about the server's node. Includes current Node version, compatible Noir version,
|
|
475
470
|
* L1 chain identifier, protocol version, and L1 address of the rollup contract.
|
|
476
471
|
* @returns - The node information.
|
|
@@ -10,6 +10,7 @@ import { AddressDataProvider, ContractDataProvider } from '@aztec/pxe/server';
|
|
|
10
10
|
import { type MessageLoadOracleInputs, type NoteData, type TypedOracle } from '@aztec/simulator/client';
|
|
11
11
|
import { type PublicTxResult } from '@aztec/simulator/server';
|
|
12
12
|
import { type ContractArtifact, type FunctionAbi, FunctionSelector, type NoteSelector } from '@aztec/stdlib/abi';
|
|
13
|
+
import { AuthWitness } from '@aztec/stdlib/auth-witness';
|
|
13
14
|
import { PublicDataWrite } from '@aztec/stdlib/avm';
|
|
14
15
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
15
16
|
import type { ContractInstance, ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
@@ -30,7 +31,6 @@ export declare class TXE implements TypedOracle {
|
|
|
30
31
|
private syncDataProvider;
|
|
31
32
|
private taggingDataProvider;
|
|
32
33
|
private addressDataProvider;
|
|
33
|
-
private authWitnessDataProvider;
|
|
34
34
|
private accountDataProvider;
|
|
35
35
|
private executionCache;
|
|
36
36
|
private contractAddress;
|
|
@@ -55,6 +55,7 @@ export declare class TXE implements TypedOracle {
|
|
|
55
55
|
private node;
|
|
56
56
|
private simulationProvider;
|
|
57
57
|
private noteCache;
|
|
58
|
+
private authwits;
|
|
58
59
|
private constructor();
|
|
59
60
|
static create(logger: Logger, store: AztecAsyncKVStore, protocolContracts: ProtocolContract[]): Promise<TXE>;
|
|
60
61
|
getNativeWorldStateService(): NativeWorldStateService;
|
|
@@ -83,7 +84,7 @@ export declare class TXE implements TypedOracle {
|
|
|
83
84
|
masterTaggingSecretKey: import("@aztec/aztec.js").Fq;
|
|
84
85
|
publicKeys: import("@aztec/aztec.js").PublicKeys;
|
|
85
86
|
}>;
|
|
86
|
-
addAuthWitness(address: AztecAddress, messageHash: Fr): Promise<
|
|
87
|
+
addAuthWitness(address: AztecAddress, messageHash: Fr): Promise<Map<string, AuthWitness>>;
|
|
87
88
|
addPublicDataWrites(writes: PublicDataWrite[]): Promise<void>;
|
|
88
89
|
checkNullifiersNotInTree(contractAddress: AztecAddress, nullifiers: Fr[]): Promise<void>;
|
|
89
90
|
addSiloedNullifiersFromPublic(siloedNullifiers: Fr[]): void;
|
|
@@ -95,14 +96,14 @@ export declare class TXE implements TypedOracle {
|
|
|
95
96
|
setIsStaticCall(isStatic: boolean): void;
|
|
96
97
|
getIsStaticCall(): boolean;
|
|
97
98
|
getRandomField(): Fr;
|
|
98
|
-
storeInExecutionCache(values: Fr[]):
|
|
99
|
-
loadFromExecutionCache(
|
|
99
|
+
storeInExecutionCache(values: Fr[], hash: Fr): void;
|
|
100
|
+
loadFromExecutionCache(hash: Fr): Promise<Fr[]>;
|
|
100
101
|
getKeyValidationRequest(pkMHash: Fr): Promise<KeyValidationRequest>;
|
|
101
102
|
getContractInstance(address: AztecAddress): Promise<ContractInstance>;
|
|
102
103
|
getMembershipWitness(blockNumber: number, treeId: MerkleTreeId, leafValue: Fr): Promise<Fr[] | undefined>;
|
|
103
104
|
getSiblingPath(blockNumber: number, treeId: MerkleTreeId, leafIndex: Fr): Promise<Fr[]>;
|
|
104
105
|
getNullifierMembershipWitness(blockNumber: number, nullifier: Fr): Promise<NullifierMembershipWitness | undefined>;
|
|
105
|
-
|
|
106
|
+
getPublicDataWitness(blockNumber: number, leafSlot: Fr): Promise<PublicDataWitness | undefined>;
|
|
106
107
|
getLowNullifierMembershipWitness(blockNumber: number, nullifier: Fr): Promise<NullifierMembershipWitness | undefined>;
|
|
107
108
|
getBlockHeader(blockNumber: number): Promise<BlockHeader | undefined>;
|
|
108
109
|
getCompleteAddress(account: AztecAddress): Promise<import("@aztec/aztec.js").CompleteAddress>;
|
|
@@ -125,8 +126,8 @@ export declare class TXE implements TypedOracle {
|
|
|
125
126
|
getInitialWitness(abi: FunctionAbi, argsHash: Fr, sideEffectCounter: number, isStaticCall: boolean): Promise<Map<number, string>>;
|
|
126
127
|
getDebugFunctionName(address: AztecAddress, selector: FunctionSelector): Promise<string | undefined>;
|
|
127
128
|
private executePublicFunction;
|
|
128
|
-
|
|
129
|
-
|
|
129
|
+
notifyEnqueuedPublicFunctionCall(targetContractAddress: AztecAddress, calldataHash: Fr, _sideEffectCounter: number, isStaticCall: boolean, isTeardown?: boolean): Promise<void>;
|
|
130
|
+
notifySetPublicTeardownFunctionCall(targetContractAddress: AztecAddress, calldataHash: Fr, sideEffectCounter: number, isStaticCall: boolean): Promise<void>;
|
|
130
131
|
notifySetMinRevertibleSideEffectCounter(minRevertibleSideEffectCounter: number): Promise<void>;
|
|
131
132
|
debugLog(message: string, fields: Fr[]): void;
|
|
132
133
|
incrementAppTaggingSecretIndexAsSender(sender: AztecAddress, recipient: AztecAddress): Promise<void>;
|
|
@@ -134,7 +135,7 @@ export declare class TXE implements TypedOracle {
|
|
|
134
135
|
syncNotes(): Promise<void>;
|
|
135
136
|
deliverNote(contractAddress: AztecAddress, storageSlot: Fr, nonce: Fr, content: Fr[], noteHash: Fr, nullifier: Fr, txHash: Fr, recipient: AztecAddress): Promise<void>;
|
|
136
137
|
getLogByTag(tag: Fr): Promise<LogWithTxData | null>;
|
|
137
|
-
avmOpcodeCall(targetContractAddress: AztecAddress,
|
|
138
|
+
avmOpcodeCall(targetContractAddress: AztecAddress, calldata: Fr[], isStaticCall: boolean): Promise<PublicTxResult>;
|
|
138
139
|
avmOpcodeSuccessCopy(): boolean;
|
|
139
140
|
avmOpcodeReturndataSize(): number;
|
|
140
141
|
avmOpcodeReturndataCopy(rdOffset: number, copySize: number): Fr[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"txe_oracle.d.ts","sourceRoot":"","sources":["../../src/oracle/txe_oracle.ts"],"names":[],"mappings":";;AACA,OAAO,EACL,KAAK,wBAAwB,
|
|
1
|
+
{"version":3,"file":"txe_oracle.d.ts","sourceRoot":"","sources":["../../src/oracle/txe_oracle.ts"],"names":[],"mappings":"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"}
|