@aztec/txe 0.82.3 → 0.83.0
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/node/txe_node.d.ts +3 -15
- package/dest/node/txe_node.d.ts.map +1 -1
- package/dest/node/txe_node.js +10 -20
- package/dest/oracle/txe_oracle.d.ts +6 -4
- package/dest/oracle/txe_oracle.d.ts.map +1 -1
- package/dest/oracle/txe_oracle.js +20 -17
- package/dest/txe_service/txe_service.d.ts +5 -2
- package/dest/txe_service/txe_service.d.ts.map +1 -1
- package/dest/txe_service/txe_service.js +16 -8
- package/dest/util/txe_public_dbs.js +1 -1
- package/package.json +12 -12
- package/src/node/txe_node.ts +24 -23
- package/src/oracle/txe_oracle.ts +33 -22
- package/src/txe_service/txe_service.ts +32 -8
- package/src/util/txe_public_dbs.ts +1 -1
package/dest/node/txe_node.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ import type { ContractClassPublic, ContractInstanceWithAddress, NodeInfo, Protoc
|
|
|
8
8
|
import type { GasFees } from '@aztec/stdlib/gas';
|
|
9
9
|
import type { AztecNode, GetContractClassLogsResponse, GetPublicLogsResponse } from '@aztec/stdlib/interfaces/client';
|
|
10
10
|
import type { MerkleTreeWriteOperations, ProverConfig, SequencerConfig, WorldStateSyncStatus } from '@aztec/stdlib/interfaces/server';
|
|
11
|
-
import { type LogFilter, type PrivateLog,
|
|
11
|
+
import { type LogFilter, type PrivateLog, TxScopedL2Log } from '@aztec/stdlib/logs';
|
|
12
12
|
import { MerkleTreeId, type NullifierMembershipWitness, PublicDataWitness } from '@aztec/stdlib/trees';
|
|
13
13
|
import { BlockHeader, type PublicSimulationOutput, type Tx, type TxEffect, TxHash, TxReceipt, type TxValidationResult } from '@aztec/stdlib/tx';
|
|
14
14
|
import type { ValidatorsStats } from '@aztec/stdlib/validators';
|
|
@@ -38,24 +38,12 @@ export declare class TXENode implements AztecNode {
|
|
|
38
38
|
*/
|
|
39
39
|
getTxEffect(txHash: TxHash): Promise<InBlock<TxEffect> | undefined>;
|
|
40
40
|
/**
|
|
41
|
-
*
|
|
41
|
+
* Processes a tx effect and receipt for a given block number.
|
|
42
42
|
* @param blockNumber - The block number that this tx effect resides.
|
|
43
43
|
* @param txHash - The transaction hash of the transaction.
|
|
44
44
|
* @param effect - The tx effect to set.
|
|
45
45
|
*/
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Adds private logs to the txe node, given a block
|
|
49
|
-
* @param blockNumber - The block number at which to add the private logs.
|
|
50
|
-
* @param privateLogs - The privateLogs that contain the private logs to be added.
|
|
51
|
-
*/
|
|
52
|
-
addPrivateLogsByTags(blockNumber: number, privateLogs: PrivateLog[]): void;
|
|
53
|
-
/**
|
|
54
|
-
* Adds public logs to the txe node, given a block
|
|
55
|
-
* @param blockNumber - The block number at which to add the public logs.
|
|
56
|
-
* @param publicLogs - The public logs to be added.
|
|
57
|
-
*/
|
|
58
|
-
addPublicLogsByTags(blockNumber: number, publicLogs: PublicLog[]): void;
|
|
46
|
+
processTxEffect(blockNumber: number, txHash: TxHash, effect: TxEffect): Promise<void>;
|
|
59
47
|
/**
|
|
60
48
|
* Gets all logs that match any of the received tags (i.e. logs with their first field equal to a tag).
|
|
61
49
|
* @param tags - The tags to filter the logs by.
|
|
@@ -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,
|
|
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
|
@@ -50,11 +50,11 @@ export class TXENode {
|
|
|
50
50
|
return Promise.resolve(txEffect);
|
|
51
51
|
}
|
|
52
52
|
/**
|
|
53
|
-
*
|
|
53
|
+
* Processes a tx effect and receipt for a given block number.
|
|
54
54
|
* @param blockNumber - The block number that this tx effect resides.
|
|
55
55
|
* @param txHash - The transaction hash of the transaction.
|
|
56
56
|
* @param effect - The tx effect to set.
|
|
57
|
-
*/ async
|
|
57
|
+
*/ async processTxEffect(blockNumber, txHash, effect) {
|
|
58
58
|
// We are not creating real blocks on which membership proofs can be constructed - we instead define its hash as
|
|
59
59
|
// simply the hash of the block number.
|
|
60
60
|
const blockHash = await poseidon2Hash([
|
|
@@ -68,32 +68,22 @@ export class TXENode {
|
|
|
68
68
|
// We also set the receipt since we want to be able to serve `getTxReceipt` - we don't care about most values here,
|
|
69
69
|
// but we do need to be able to retrieve the block number of a given txHash.
|
|
70
70
|
this.#txReceiptsByTxHash.set(txHash.toString(), new TxReceipt(txHash, TxReceipt.statusFromRevertCode(effect.revertCode), '', undefined, new L2BlockHash(blockHash.toBuffer()), blockNumber));
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
* Adds private logs to the txe node, given a block
|
|
74
|
-
* @param blockNumber - The block number at which to add the private logs.
|
|
75
|
-
* @param privateLogs - The privateLogs that contain the private logs to be added.
|
|
76
|
-
*/ addPrivateLogsByTags(blockNumber, privateLogs) {
|
|
77
|
-
privateLogs.forEach((log)=>{
|
|
71
|
+
// Store the private logs
|
|
72
|
+
effect.privateLogs.forEach((log, logIndexInTx)=>{
|
|
78
73
|
const tag = log.fields[0];
|
|
79
74
|
this.#logger.verbose(`Found private log with tag ${tag.toString()} in block ${this.getBlockNumber()}`);
|
|
80
75
|
const currentLogs = this.#logsByTags.get(tag.toString()) ?? [];
|
|
81
|
-
const scopedLog = new TxScopedL2Log(new TxHash(new Fr(blockNumber)), this.#noteIndex, blockNumber, log);
|
|
76
|
+
const scopedLog = new TxScopedL2Log(new TxHash(new Fr(blockNumber)), this.#noteIndex, logIndexInTx, blockNumber, log);
|
|
82
77
|
currentLogs.push(scopedLog);
|
|
83
78
|
this.#logsByTags.set(tag.toString(), currentLogs);
|
|
84
79
|
});
|
|
85
|
-
this.#noteIndex += privateLogs.length;
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
* Adds public logs to the txe node, given a block
|
|
89
|
-
* @param blockNumber - The block number at which to add the public logs.
|
|
90
|
-
* @param publicLogs - The public logs to be added.
|
|
91
|
-
*/ addPublicLogsByTags(blockNumber, publicLogs) {
|
|
92
|
-
publicLogs.forEach((log)=>{
|
|
80
|
+
this.#noteIndex += effect.privateLogs.length;
|
|
81
|
+
// Store the public logs
|
|
82
|
+
effect.publicLogs.forEach((log, logIndexInTx)=>{
|
|
93
83
|
const tag = log.log[0];
|
|
94
84
|
this.#logger.verbose(`Found public log with tag ${tag.toString()} in block ${this.getBlockNumber()}`);
|
|
95
85
|
const currentLogs = this.#logsByTags.get(tag.toString()) ?? [];
|
|
96
|
-
const scopedLog = new TxScopedL2Log(new TxHash(new Fr(blockNumber)), this.#noteIndex, blockNumber, log);
|
|
86
|
+
const scopedLog = new TxScopedL2Log(new TxHash(new Fr(blockNumber)), this.#noteIndex, logIndexInTx, blockNumber, log);
|
|
97
87
|
currentLogs.push(scopedLog);
|
|
98
88
|
this.#logsByTags.set(tag.toString(), currentLogs);
|
|
99
89
|
});
|
|
@@ -401,7 +391,7 @@ export class TXENode {
|
|
|
401
391
|
return Fr.ZERO;
|
|
402
392
|
}
|
|
403
393
|
const preimage = await db.getLeafPreimage(MerkleTreeId.PUBLIC_DATA_TREE, lowLeafResult.index);
|
|
404
|
-
return preimage.value;
|
|
394
|
+
return preimage.leaf.value;
|
|
405
395
|
}
|
|
406
396
|
/**
|
|
407
397
|
* Returns the currently committed block header.
|
|
@@ -9,7 +9,7 @@ import type { ProtocolContract } from '@aztec/protocol-contracts';
|
|
|
9
9
|
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
|
-
import { type ContractArtifact, type FunctionAbi, FunctionSelector, type NoteSelector } from '@aztec/stdlib/abi';
|
|
12
|
+
import { type ContractArtifact, EventSelector, type FunctionAbi, FunctionSelector, type NoteSelector } from '@aztec/stdlib/abi';
|
|
13
13
|
import { AuthWitness } from '@aztec/stdlib/auth-witness';
|
|
14
14
|
import { PublicDataWrite } from '@aztec/stdlib/avm';
|
|
15
15
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
@@ -19,7 +19,7 @@ import { type KeyValidationRequest, PrivateContextInputs } from '@aztec/stdlib/k
|
|
|
19
19
|
import { ContractClassLog, IndexedTaggingSecret, LogWithTxData, type PrivateLog, type PublicLog } from '@aztec/stdlib/logs';
|
|
20
20
|
import type { NoteStatus } from '@aztec/stdlib/note';
|
|
21
21
|
import { MerkleTreeId, NullifierMembershipWitness, PublicDataWitness } from '@aztec/stdlib/trees';
|
|
22
|
-
import { BlockHeader } from '@aztec/stdlib/tx';
|
|
22
|
+
import { BlockHeader, TxHash } from '@aztec/stdlib/tx';
|
|
23
23
|
import { NativeWorldStateService } from '@aztec/world-state/native';
|
|
24
24
|
import { TXEAccountDataProvider } from '../util/txe_account_data_provider.js';
|
|
25
25
|
export declare class TXE implements TypedOracle {
|
|
@@ -31,6 +31,7 @@ export declare class TXE implements TypedOracle {
|
|
|
31
31
|
private syncDataProvider;
|
|
32
32
|
private taggingDataProvider;
|
|
33
33
|
private addressDataProvider;
|
|
34
|
+
private privateEventDataProvider;
|
|
34
35
|
private accountDataProvider;
|
|
35
36
|
private executionCache;
|
|
36
37
|
private contractAddress;
|
|
@@ -50,7 +51,7 @@ export declare class TXE implements TypedOracle {
|
|
|
50
51
|
private privateLogs;
|
|
51
52
|
private publicLogs;
|
|
52
53
|
private committedBlocks;
|
|
53
|
-
private
|
|
54
|
+
private ROLLUP_VERSION;
|
|
54
55
|
private CHAIN_ID;
|
|
55
56
|
private node;
|
|
56
57
|
private simulationProvider;
|
|
@@ -132,7 +133,7 @@ export declare class TXE implements TypedOracle {
|
|
|
132
133
|
debugLog(message: string, fields: Fr[]): void;
|
|
133
134
|
incrementAppTaggingSecretIndexAsSender(sender: AztecAddress, recipient: AztecAddress): Promise<void>;
|
|
134
135
|
getIndexedTaggingSecretAsSender(sender: AztecAddress, recipient: AztecAddress): Promise<IndexedTaggingSecret>;
|
|
135
|
-
syncNotes(): Promise<void>;
|
|
136
|
+
syncNotes(pendingTaggedLogArrayBaseSlot: Fr): Promise<void>;
|
|
136
137
|
deliverNote(contractAddress: AztecAddress, storageSlot: Fr, nonce: Fr, content: Fr[], noteHash: Fr, nullifier: Fr, txHash: Fr, recipient: AztecAddress): Promise<void>;
|
|
137
138
|
getLogByTag(tag: Fr): Promise<LogWithTxData | null>;
|
|
138
139
|
avmOpcodeCall(targetContractAddress: AztecAddress, calldata: Fr[], isStaticCall: boolean): Promise<PublicTxResult>;
|
|
@@ -149,5 +150,6 @@ export declare class TXE implements TypedOracle {
|
|
|
149
150
|
copyCapsule(contractAddress: AztecAddress, srcSlot: Fr, dstSlot: Fr, numEntries: number): Promise<void>;
|
|
150
151
|
aes128Decrypt(ciphertext: Buffer, iv: Buffer, symKey: Buffer): Promise<Buffer>;
|
|
151
152
|
getSharedSecret(address: AztecAddress, ephPk: Point): Promise<Point>;
|
|
153
|
+
storePrivateEventLog(contractAddress: AztecAddress, recipient: AztecAddress, eventSelector: EventSelector, logContent: Fr[], txHash: TxHash, logIndexInTx: number): Promise<void>;
|
|
152
154
|
}
|
|
153
155
|
//# sourceMappingURL=txe_oracle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"txe_oracle.d.ts","sourceRoot":"","sources":["../../src/oracle/txe_oracle.ts"],"names":[],"mappings":";;AACA,OAAO,EACL,KAAK,wBAAwB,EAQ9B,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,KAAK,MAAM,EAAyB,MAAM,uBAAuB,CAAC;AAE3E,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EACL,mBAAmB,EAEnB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"txe_oracle.d.ts","sourceRoot":"","sources":["../../src/oracle/txe_oracle.ts"],"names":[],"mappings":";;AACA,OAAO,EACL,KAAK,wBAAwB,EAQ9B,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,KAAK,MAAM,EAAyB,MAAM,uBAAuB,CAAC;AAE3E,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EACL,mBAAmB,EAEnB,oBAAoB,EAOrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAGL,KAAK,uBAAuB,EAC5B,KAAK,QAAQ,EAEb,KAAK,WAAW,EAOjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAGL,KAAK,cAAc,EAIpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,KAAK,gBAAgB,EACrB,aAAa,EACb,KAAK,WAAW,EAChB,gBAAgB,EAChB,KAAK,YAAY,EAElB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAU5F,OAAO,KAAK,EAA4B,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC3G,OAAO,EAAE,KAAK,oBAAoB,EAAE,oBAAoB,EAAqB,MAAM,sBAAsB,CAAC;AAE1G,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,KAAK,UAAU,EACf,KAAK,SAAS,EACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAQrD,OAAO,EAEL,YAAY,EAEZ,0BAA0B,EAG1B,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,WAAW,EAKX,MAAM,EACP,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAkB,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAGpF,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAI9E,qBAAa,GAAI,YAAW,WAAW;IAgCnC,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,oBAAoB;IAC5B,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,wBAAwB;IAChC,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,uBAAuB;IAC/B,OAAO,CAAC,QAAQ;IA5ClB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,gBAAgB,CAAyC;IACjE,OAAO,CAAC,YAAY,CAAS;IAE7B,OAAO,CAAC,oBAAoB,CAAY;IACxC,OAAO,CAAC,iBAAiB,CAAkB;IAE3C,OAAO,CAAC,kBAAkB,CAAqB;IAE/C,OAAO,CAAC,gBAAgB,CAAyB;IACjD,OAAO,CAAC,0BAA0B,CAAY;IAC9C,OAAO,CAAC,0BAA0B,CAAY;IAC9C,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,UAAU,CAAmB;IAErC,OAAO,CAAC,eAAe,CAAqB;IAE5C,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,QAAQ,CAAK;IAErB,OAAO,CAAC,IAAI,CAAU;IAEtB,OAAO,CAAC,kBAAkB,CAAuB;IAEjD,OAAO,CAAC,SAAS,CAAqB;IAEtC,OAAO,CAAC,QAAQ,CAAuC;IAEvD,OAAO;WAoCM,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE;IA0CnG,0BAA0B;IAI1B,WAAW;IAIX,UAAU,IAAI,OAAO,CAAC,EAAE,CAAC;IAIzB,UAAU,IAAI,OAAO,CAAC,EAAE,CAAC;IAIzB,YAAY;IAIZ,mBAAmB;IAInB,YAAY,CAAC,SAAS,EAAE,YAAY;IAIpC,mBAAmB,CAAC,gBAAgB,EAAE,gBAAgB;IAItD,qBAAqB;IAIrB,qBAAqB,CAAC,kBAAkB,EAAE,MAAM;IAIhD,kBAAkB,CAAC,eAAe,EAAE,YAAY;IAIhD,cAAc,CAAC,WAAW,EAAE,MAAM;IAKlC,uBAAuB;IAIvB,WAAW;IAIX,sBAAsB;IAItB,sBAAsB;IAIhB,mBAAmB,CAAC,gBAAgB,EAAE,2BAA2B;IAIjE,mBAAmB,CAAC,eAAe,EAAE,EAAE,EAAE,QAAQ,EAAE,gBAAgB;IAInE,uBAAuB,CAC3B,WAAW,EAAE,MAAM,EACnB,kBAAkB,SAAyB,EAC3C,YAAY,UAAQ;IA8BtB,UAAU,CAAC,MAAM,EAAE,EAAE;;;;;;;IAIf,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE;IASrD,mBAAmB,CAAC,MAAM,EAAE,eAAe,EAAE;IAS7C,wBAAwB,CAAC,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,EAAE;IAY9E,6BAA6B,CAAC,gBAAgB,EAAE,EAAE,EAAE;IAIpD,6BAA6B,CAAC,gBAAgB,EAAE,EAAE,EAAE;IAI9C,cAAc,CAAC,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE;IAQ7E,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE;IAgB/B,cAAc;IAId,kBAAkB;IAIlB,eAAe,CAAC,QAAQ,EAAE,OAAO;IAIjC,eAAe;IAIf,cAAc;IAId,qBAAqB,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;IAI5C,sBAAsB,CAAC,IAAI,EAAE,EAAE;IAQ/B,uBAAuB,CAAC,OAAO,EAAE,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAI7D,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAQrE,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC;IAWzG,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE;IAOvE,6BAA6B,CACjC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,EAAE,GACZ,OAAO,CAAC,0BAA0B,GAAG,SAAS,CAAC;IAuB5C,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAmB/F,gCAAgC,CACpC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,EAAE,GACZ,OAAO,CAAC,0BAA0B,GAAG,SAAS,CAAC;IAoB5C,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IA0B3E,kBAAkB,CAAC,OAAO,EAAE,YAAY;IAIxC,cAAc,CAAC,WAAW,EAAE,EAAE;IAKxB,QAAQ,CACZ,WAAW,EAAE,EAAE,EACf,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,EAAE,EACzB,eAAe,EAAE,MAAM,EAAE,EACzB,eAAe,EAAE,MAAM,EAAE,EACzB,YAAY,EAAE,EAAE,EAAE,EAClB,iBAAiB,EAAE,MAAM,EAAE,EAC3B,aAAa,EAAE,MAAM,EAAE,EACvB,aAAa,EAAE,MAAM,EAAE,EACvB,aAAa,EAAE,MAAM,EAAE,EACvB,SAAS,EAAE,MAAM,EAAE,EACnB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,UAAU;IAgCpB,iBAAiB,CAAC,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM;IAiBtG,mBAAmB,CAAC,cAAc,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM;IAMrE,sBAAsB,CAAC,cAAc,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzD,oBAAoB,CAAC,cAAc,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAQhE,0BAA0B,CACxB,gBAAgB,EAAE,YAAY,EAC9B,YAAY,EAAE,EAAE,EAChB,OAAO,EAAE,EAAE,GACV,OAAO,CAAC,uBAAuB,CAAC,OAAO,wBAAwB,CAAC,CAAC;IAI9D,WAAW,CACf,eAAe,EAAE,YAAY,EAC7B,gBAAgB,EAAE,EAAE,EACpB,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,EAAE,EAAE,CAAC;IA6BV,YAAY,CAAC,gBAAgB,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC;IAa/D,WAAW;IA+GjB,gBAAgB;IAKhB,6BAA6B,CAAC,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,GAAG,EAAE;IAIrE,mBAAmB,CACvB,qBAAqB,EAAE,YAAY,EACnC,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,EAAE,EAAE,EACZ,iBAAiB,EAAE,MAAM,EACzB,YAAY,EAAE,OAAO;;;;IAuEjB,iBAAiB,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO;IAuB3F,oBAAoB,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;YAInG,qBAAqB;IA2E7B,gCAAgC,CACpC,qBAAqB,EAAE,YAAY,EACnC,YAAY,EAAE,EAAE,EAChB,kBAAkB,EAAE,MAAM,EAC1B,YAAY,EAAE,OAAO,EACrB,UAAU,UAAQ,GACjB,OAAO,CAAC,IAAI,CAAC;IA+CV,mCAAmC,CACvC,qBAAqB,EAAE,YAAY,EACnC,YAAY,EAAE,EAAE,EAChB,iBAAiB,EAAE,MAAM,EACzB,YAAY,EAAE,OAAO,GACpB,OAAO,CAAC,IAAI,CAAC;IAYV,uCAAuC,CAAC,8BAA8B,EAAE,MAAM;IAIpF,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI;IAIvC,sCAAsC,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpG,+BAA+B,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAI7G,SAAS,CAAC,6BAA6B,EAAE,EAAE;IAQpC,WAAW,CACtB,eAAe,EAAE,YAAY,EAC7B,WAAW,EAAE,EAAE,EACf,KAAK,EAAE,EAAE,EACT,OAAO,EAAE,EAAE,EAAE,EACb,QAAQ,EAAE,EAAE,EACZ,SAAS,EAAE,EAAE,EACb,MAAM,EAAE,EAAE,EACV,SAAS,EAAE,YAAY,GACtB,OAAO,CAAC,IAAI,CAAC;IAaV,WAAW,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAMnD,aAAa,CACjB,qBAAqB,EAAE,YAAY,EACnC,QAAQ,EAAE,EAAE,EAAE,EACd,YAAY,EAAE,OAAO,GACpB,OAAO,CAAC,cAAc,CAAC;IAsC1B,oBAAoB,IAAI,OAAO;IAI/B,uBAAuB,IAAI,MAAM;IAIjC,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,EAAE,EAAE;IAI3D,wBAAwB,CAAC,cAAc,EAAE,EAAE,EAAE,aAAa,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAO3F,sBAAsB,CAAC,SAAS,EAAE,EAAE;IAQpC,qBAAqB,CAAC,QAAQ,EAAE,EAAE;IAMlC,oBAAoB,CAAC,IAAI,EAAE,EAAE;IAgBnC,YAAY,CAAC,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQnF,WAAW,CAAC,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC;IAQ1E,aAAa,CAAC,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQrE,WAAW,CAAC,eAAe,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQvG,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK9E,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAIpE,oBAAoB,CAClB,eAAe,EAAE,YAAY,EAC7B,SAAS,EAAE,YAAY,EACvB,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,EAAE,EAAE,EAChB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;CAUjB"}
|
|
@@ -6,7 +6,7 @@ import { Fr } from '@aztec/foundation/fields';
|
|
|
6
6
|
import { applyStringFormatting } from '@aztec/foundation/log';
|
|
7
7
|
import { Timer } from '@aztec/foundation/timer';
|
|
8
8
|
import { KeyStore } from '@aztec/key-store';
|
|
9
|
-
import { AddressDataProvider, CapsuleDataProvider, ContractDataProvider, NoteDataProvider, PXEOracleInterface, SyncDataProvider, TaggingDataProvider, enrichPublicSimulationError } from '@aztec/pxe/server';
|
|
9
|
+
import { AddressDataProvider, CapsuleDataProvider, ContractDataProvider, NoteDataProvider, PXEOracleInterface, PrivateEventDataProvider, SyncDataProvider, TaggingDataProvider, enrichPublicSimulationError } from '@aztec/pxe/server';
|
|
10
10
|
import { ExecutionNoteCache, HashedValuesCache, Oracle, WASMSimulator, extractCallStack, extractPrivateCircuitPublicInputs, pickNotes, toACVMWitness, witnessMapToFields } from '@aztec/simulator/client';
|
|
11
11
|
import { createTxForPublicCalls } from '@aztec/simulator/public/fixtures';
|
|
12
12
|
import { ExecutionError, PublicContractsDB, PublicTxSimulator, createSimulationError, resolveAssertionMessageFromError } from '@aztec/simulator/server';
|
|
@@ -36,6 +36,7 @@ export class TXE {
|
|
|
36
36
|
syncDataProvider;
|
|
37
37
|
taggingDataProvider;
|
|
38
38
|
addressDataProvider;
|
|
39
|
+
privateEventDataProvider;
|
|
39
40
|
accountDataProvider;
|
|
40
41
|
executionCache;
|
|
41
42
|
contractAddress;
|
|
@@ -56,13 +57,13 @@ export class TXE {
|
|
|
56
57
|
privateLogs;
|
|
57
58
|
publicLogs;
|
|
58
59
|
committedBlocks;
|
|
59
|
-
|
|
60
|
+
ROLLUP_VERSION;
|
|
60
61
|
CHAIN_ID;
|
|
61
62
|
node;
|
|
62
63
|
simulationProvider;
|
|
63
64
|
noteCache;
|
|
64
65
|
authwits;
|
|
65
|
-
constructor(logger, keyStore, contractDataProvider, noteDataProvider, capsuleDataProvider, syncDataProvider, taggingDataProvider, addressDataProvider, accountDataProvider, executionCache, contractAddress, nativeWorldStateService, baseFork){
|
|
66
|
+
constructor(logger, keyStore, contractDataProvider, noteDataProvider, capsuleDataProvider, syncDataProvider, taggingDataProvider, addressDataProvider, privateEventDataProvider, accountDataProvider, executionCache, contractAddress, nativeWorldStateService, baseFork){
|
|
66
67
|
this.logger = logger;
|
|
67
68
|
this.keyStore = keyStore;
|
|
68
69
|
this.contractDataProvider = contractDataProvider;
|
|
@@ -71,6 +72,7 @@ export class TXE {
|
|
|
71
72
|
this.syncDataProvider = syncDataProvider;
|
|
72
73
|
this.taggingDataProvider = taggingDataProvider;
|
|
73
74
|
this.addressDataProvider = addressDataProvider;
|
|
75
|
+
this.privateEventDataProvider = privateEventDataProvider;
|
|
74
76
|
this.accountDataProvider = accountDataProvider;
|
|
75
77
|
this.executionCache = executionCache;
|
|
76
78
|
this.contractAddress = contractAddress;
|
|
@@ -88,21 +90,22 @@ export class TXE {
|
|
|
88
90
|
this.privateLogs = [];
|
|
89
91
|
this.publicLogs = [];
|
|
90
92
|
this.committedBlocks = new Set();
|
|
91
|
-
this.
|
|
93
|
+
this.ROLLUP_VERSION = 1;
|
|
92
94
|
this.CHAIN_ID = 1;
|
|
93
95
|
this.simulationProvider = new WASMSimulator();
|
|
94
96
|
this.authwits = new Map();
|
|
95
97
|
this.noteCache = new ExecutionNoteCache(this.getTxRequestHash());
|
|
96
|
-
this.node = new TXENode(this.blockNumber, this.
|
|
98
|
+
this.node = new TXENode(this.blockNumber, this.ROLLUP_VERSION, this.CHAIN_ID, nativeWorldStateService, baseFork);
|
|
97
99
|
// Default msg_sender (for entrypoints) is now Fr.max_value rather than 0 addr (see #7190 & #7404)
|
|
98
100
|
this.msgSender = AztecAddress.fromField(Fr.MAX_FIELD_VALUE);
|
|
99
|
-
this.pxeOracleInterface = new PXEOracleInterface(this.node, this.keyStore, this.
|
|
101
|
+
this.pxeOracleInterface = new PXEOracleInterface(this.node, this.keyStore, this.contractDataProvider, this.noteDataProvider, this.capsuleDataProvider, this.syncDataProvider, this.taggingDataProvider, this.addressDataProvider, this.privateEventDataProvider, this.logger);
|
|
100
102
|
}
|
|
101
103
|
static async create(logger, store, protocolContracts) {
|
|
102
104
|
const executionCache = new HashedValuesCache();
|
|
103
105
|
const nativeWorldStateService = await NativeWorldStateService.tmp();
|
|
104
106
|
const baseFork = await nativeWorldStateService.fork();
|
|
105
107
|
const addressDataProvider = new AddressDataProvider(store);
|
|
108
|
+
const privateEventDataProvider = new PrivateEventDataProvider(store);
|
|
106
109
|
const contractDataProvider = new ContractDataProvider(store);
|
|
107
110
|
const noteDataProvider = await NoteDataProvider.create(store);
|
|
108
111
|
const syncDataProvider = new SyncDataProvider(store);
|
|
@@ -115,7 +118,7 @@ export class TXE {
|
|
|
115
118
|
await contractDataProvider.addContractArtifact(contractClass.id, artifact);
|
|
116
119
|
await contractDataProvider.addContractInstance(instance);
|
|
117
120
|
}
|
|
118
|
-
return new TXE(logger, keyStore, contractDataProvider, noteDataProvider, capsuleDataProvider, syncDataProvider, taggingDataProvider, addressDataProvider, accountDataProvider, executionCache, await AztecAddress.random(), nativeWorldStateService, baseFork);
|
|
121
|
+
return new TXE(logger, keyStore, contractDataProvider, noteDataProvider, capsuleDataProvider, syncDataProvider, taggingDataProvider, addressDataProvider, privateEventDataProvider, accountDataProvider, executionCache, await AztecAddress.random(), nativeWorldStateService, baseFork);
|
|
119
122
|
}
|
|
120
123
|
// Utils
|
|
121
124
|
getNativeWorldStateService() {
|
|
@@ -449,7 +452,7 @@ export class TXE {
|
|
|
449
452
|
let value = Fr.ZERO;
|
|
450
453
|
if (lowLeafResult && lowLeafResult.alreadyPresent) {
|
|
451
454
|
const preimage = await db.getLeafPreimage(MerkleTreeId.PUBLIC_DATA_TREE, lowLeafResult.index);
|
|
452
|
-
value = preimage.value;
|
|
455
|
+
value = preimage.leaf.value;
|
|
453
456
|
}
|
|
454
457
|
this.logger.debug(`Oracle storage read: slot=${storageSlot.toString()} value=${value}`);
|
|
455
458
|
values.push(value);
|
|
@@ -490,6 +493,8 @@ export class TXE {
|
|
|
490
493
|
txEffect.nullifiers.unshift(this.getTxRequestHash());
|
|
491
494
|
}
|
|
492
495
|
txEffect.publicDataWrites = this.publicDataWrites;
|
|
496
|
+
txEffect.privateLogs = this.privateLogs;
|
|
497
|
+
txEffect.publicLogs = this.publicLogs;
|
|
493
498
|
const body = new Body([
|
|
494
499
|
txEffect
|
|
495
500
|
]);
|
|
@@ -511,9 +516,7 @@ export class TXE {
|
|
|
511
516
|
await fork.batchInsert(MerkleTreeId.NULLIFIER_TREE, nullifiersPadded.map((nullifier)=>nullifier.toBuffer()), NULLIFIER_SUBTREE_HEIGHT);
|
|
512
517
|
}
|
|
513
518
|
}
|
|
514
|
-
await this.node.
|
|
515
|
-
this.node.addPrivateLogsByTags(this.blockNumber, this.privateLogs);
|
|
516
|
-
this.node.addPublicLogsByTags(this.blockNumber, this.publicLogs);
|
|
519
|
+
await this.node.processTxEffect(blockNumber, new TxHash(new Fr(blockNumber)), txEffect);
|
|
517
520
|
const stateReference = await fork.getStateReference();
|
|
518
521
|
const archiveInfo = await fork.getTreeInfo(MerkleTreeId.ARCHIVE);
|
|
519
522
|
const header = new BlockHeader(new AppendOnlyTreeSnapshot(new Fr(archiveInfo.root), Number(archiveInfo.size)), makeContentCommitment(), stateReference, makeGlobalVariables(), Fr.ZERO, Fr.ZERO);
|
|
@@ -706,11 +709,8 @@ export class TXE {
|
|
|
706
709
|
async getIndexedTaggingSecretAsSender(sender, recipient) {
|
|
707
710
|
return await this.pxeOracleInterface.getIndexedTaggingSecretAsSender(this.contractAddress, sender, recipient);
|
|
708
711
|
}
|
|
709
|
-
async syncNotes() {
|
|
710
|
-
|
|
711
|
-
for (const [recipient, taggedLogs] of taggedLogsByRecipient.entries()){
|
|
712
|
-
await this.pxeOracleInterface.processTaggedLogs(this.contractAddress, taggedLogs, AztecAddress.fromString(recipient));
|
|
713
|
-
}
|
|
712
|
+
async syncNotes(pendingTaggedLogArrayBaseSlot) {
|
|
713
|
+
await this.pxeOracleInterface.syncTaggedLogs(this.contractAddress, pendingTaggedLogArrayBaseSlot);
|
|
714
714
|
await this.pxeOracleInterface.removeNullifiedNotes(this.contractAddress);
|
|
715
715
|
return Promise.resolve();
|
|
716
716
|
}
|
|
@@ -786,7 +786,7 @@ export class TXE {
|
|
|
786
786
|
return Fr.ZERO;
|
|
787
787
|
}
|
|
788
788
|
const preimage = await this.baseFork.getLeafPreimage(MerkleTreeId.PUBLIC_DATA_TREE, lowLeafResult.index);
|
|
789
|
-
return preimage.value;
|
|
789
|
+
return preimage.leaf.value;
|
|
790
790
|
}
|
|
791
791
|
storeCapsule(contractAddress, slot, capsule) {
|
|
792
792
|
if (!contractAddress.equals(this.contractAddress)) {
|
|
@@ -823,4 +823,7 @@ export class TXE {
|
|
|
823
823
|
getSharedSecret(address, ephPk) {
|
|
824
824
|
return this.pxeOracleInterface.getSharedSecret(address, ephPk);
|
|
825
825
|
}
|
|
826
|
+
storePrivateEventLog(contractAddress, recipient, eventSelector, logContent, txHash, logIndexInTx) {
|
|
827
|
+
return this.pxeOracleInterface.storePrivateEventLog(contractAddress, recipient, eventSelector, logContent, txHash, logIndexInTx);
|
|
828
|
+
}
|
|
826
829
|
}
|
|
@@ -132,7 +132,7 @@ export declare class TXEService {
|
|
|
132
132
|
getIndexedTaggingSecretAsSender(sender: ForeignCallSingle, recipient: ForeignCallSingle): Promise<{
|
|
133
133
|
values: (string | ForeignCallArray)[];
|
|
134
134
|
}>;
|
|
135
|
-
syncNotes(): Promise<{
|
|
135
|
+
syncNotes(pendingTaggedLogArrayBaseSlot: ForeignCallSingle): Promise<{
|
|
136
136
|
values: (string | ForeignCallArray)[];
|
|
137
137
|
}>;
|
|
138
138
|
deliverNote(contractAddress: ForeignCallSingle, storageSlot: ForeignCallSingle, nonce: ForeignCallSingle, content: ForeignCallArray, contentLength: ForeignCallSingle, noteHash: ForeignCallSingle, nullifier: ForeignCallSingle, txHash: ForeignCallSingle, recipient: ForeignCallSingle): Promise<{
|
|
@@ -156,7 +156,10 @@ export declare class TXEService {
|
|
|
156
156
|
aes128Decrypt(ciphertextBVecStorage: ForeignCallArray, ciphertextLength: ForeignCallSingle, iv: ForeignCallArray, symKey: ForeignCallArray): Promise<{
|
|
157
157
|
values: (string | ForeignCallArray)[];
|
|
158
158
|
}>;
|
|
159
|
-
getSharedSecret(address: ForeignCallSingle,
|
|
159
|
+
getSharedSecret(address: ForeignCallSingle, ephPKField0: ForeignCallSingle, ephPKField1: ForeignCallSingle, ephPKField2: ForeignCallSingle): Promise<{
|
|
160
|
+
values: (string | ForeignCallArray)[];
|
|
161
|
+
}>;
|
|
162
|
+
storePrivateEventLog(contractAddress: ForeignCallSingle, recipient: ForeignCallSingle, eventSelector: ForeignCallSingle, logContent: ForeignCallArray, txHash: ForeignCallSingle, logIndexInTx: ForeignCallSingle): Promise<{
|
|
160
163
|
values: (string | ForeignCallArray)[];
|
|
161
164
|
}>;
|
|
162
165
|
avmOpcodeEmitUnencryptedLog(_message: ForeignCallArray): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"txe_service.d.ts","sourceRoot":"","sources":["../../src/txe_service/txe_service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,2BAA2B,
|
|
1
|
+
{"version":3,"file":"txe_service.d.ts","sourceRoot":"","sources":["../../src/txe_service/txe_service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Fr, Point } from '@aztec/aztec.js';
|
|
1
|
+
import { Fr, Point, TxHash } from '@aztec/aztec.js';
|
|
2
2
|
import { DEPLOYER_CONTRACT_ADDRESS } from '@aztec/constants';
|
|
3
3
|
import { openTmpStore } from '@aztec/kv-store/lmdb-v2';
|
|
4
4
|
import { enrichPublicSimulationError } from '@aztec/pxe/server';
|
|
5
|
-
import { FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
|
|
5
|
+
import { EventSelector, FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
|
|
6
6
|
import { PublicDataWrite } from '@aztec/stdlib/avm';
|
|
7
7
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
8
8
|
import { computePartialAddress } from '@aztec/stdlib/contract';
|
|
@@ -367,8 +367,8 @@ export class TXEService {
|
|
|
367
367
|
const secret = await this.typedOracle.getIndexedTaggingSecretAsSender(AztecAddress.fromField(fromSingle(sender)), AztecAddress.fromField(fromSingle(recipient)));
|
|
368
368
|
return toForeignCallResult(secret.toFields().map(toSingle));
|
|
369
369
|
}
|
|
370
|
-
async syncNotes() {
|
|
371
|
-
await this.typedOracle.syncNotes();
|
|
370
|
+
async syncNotes(pendingTaggedLogArrayBaseSlot) {
|
|
371
|
+
await this.typedOracle.syncNotes(fromSingle(pendingTaggedLogArrayBaseSlot));
|
|
372
372
|
return toForeignCallResult([]);
|
|
373
373
|
}
|
|
374
374
|
async deliverNote(contractAddress, storageSlot, nonce, content, contentLength, noteHash, nullifier, txHash, recipient) {
|
|
@@ -433,19 +433,27 @@ export class TXEService {
|
|
|
433
433
|
const plaintextBuffer = await this.typedOracle.aes128Decrypt(ciphertext, ivBuffer, symKeyBuffer);
|
|
434
434
|
return toForeignCallResult(arrayToBoundedVec(bufferToU8Array(plaintextBuffer), ciphertextBVecStorage.length));
|
|
435
435
|
}
|
|
436
|
-
async getSharedSecret(address,
|
|
437
|
-
const secret = await this.typedOracle.getSharedSecret(AztecAddress.fromField(fromSingle(address)), Point.fromFields(
|
|
436
|
+
async getSharedSecret(address, ephPKField0, ephPKField1, ephPKField2) {
|
|
437
|
+
const secret = await this.typedOracle.getSharedSecret(AztecAddress.fromField(fromSingle(address)), Point.fromFields([
|
|
438
|
+
fromSingle(ephPKField0),
|
|
439
|
+
fromSingle(ephPKField1),
|
|
440
|
+
fromSingle(ephPKField2)
|
|
441
|
+
]));
|
|
438
442
|
return toForeignCallResult(secret.toFields().map(toSingle));
|
|
439
443
|
}
|
|
444
|
+
async storePrivateEventLog(contractAddress, recipient, eventSelector, logContent, txHash, logIndexInTx) {
|
|
445
|
+
await this.typedOracle.storePrivateEventLog(AztecAddress.fromField(fromSingle(contractAddress)), AztecAddress.fromField(fromSingle(recipient)), EventSelector.fromField(fromSingle(eventSelector)), fromArray(logContent), new TxHash(fromSingle(txHash)), fromSingle(logIndexInTx).toNumber());
|
|
446
|
+
return toForeignCallResult([]);
|
|
447
|
+
}
|
|
440
448
|
// AVM opcodes
|
|
441
449
|
avmOpcodeEmitUnencryptedLog(_message) {
|
|
442
450
|
// TODO(#8811): Implement
|
|
443
451
|
return toForeignCallResult([]);
|
|
444
452
|
}
|
|
445
453
|
async avmOpcodeStorageRead(slot) {
|
|
446
|
-
const value = await this.typedOracle.avmOpcodeStorageRead(fromSingle(slot));
|
|
454
|
+
const value = (await this.typedOracle.avmOpcodeStorageRead(fromSingle(slot))).value;
|
|
447
455
|
return toForeignCallResult([
|
|
448
|
-
toSingle(value)
|
|
456
|
+
toSingle(new Fr(value))
|
|
449
457
|
]);
|
|
450
458
|
}
|
|
451
459
|
async avmOpcodeStorageWrite(slot, value) {
|
|
@@ -15,7 +15,7 @@ export class TXEPublicTreesDB extends PublicTreesDB {
|
|
|
15
15
|
let value = Fr.ZERO;
|
|
16
16
|
if (lowLeafResult && lowLeafResult.alreadyPresent) {
|
|
17
17
|
const preimage = await this.merkleDb.getLeafPreimage(MerkleTreeId.PUBLIC_DATA_TREE, lowLeafResult.index);
|
|
18
|
-
value = preimage.value;
|
|
18
|
+
value = preimage.leaf.value;
|
|
19
19
|
}
|
|
20
20
|
return value;
|
|
21
21
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/txe",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.83.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": "./dest/index.js",
|
|
6
6
|
"bin": "./dest/bin/index.js",
|
|
@@ -59,17 +59,17 @@
|
|
|
59
59
|
]
|
|
60
60
|
},
|
|
61
61
|
"dependencies": {
|
|
62
|
-
"@aztec/accounts": "0.
|
|
63
|
-
"@aztec/aztec.js": "0.
|
|
64
|
-
"@aztec/constants": "0.
|
|
65
|
-
"@aztec/foundation": "0.
|
|
66
|
-
"@aztec/key-store": "0.
|
|
67
|
-
"@aztec/kv-store": "0.
|
|
68
|
-
"@aztec/protocol-contracts": "0.
|
|
69
|
-
"@aztec/pxe": "0.
|
|
70
|
-
"@aztec/simulator": "0.
|
|
71
|
-
"@aztec/stdlib": "0.
|
|
72
|
-
"@aztec/world-state": "0.
|
|
62
|
+
"@aztec/accounts": "0.83.0",
|
|
63
|
+
"@aztec/aztec.js": "0.83.0",
|
|
64
|
+
"@aztec/constants": "0.83.0",
|
|
65
|
+
"@aztec/foundation": "0.83.0",
|
|
66
|
+
"@aztec/key-store": "0.83.0",
|
|
67
|
+
"@aztec/kv-store": "0.83.0",
|
|
68
|
+
"@aztec/protocol-contracts": "0.83.0",
|
|
69
|
+
"@aztec/pxe": "0.83.0",
|
|
70
|
+
"@aztec/simulator": "0.83.0",
|
|
71
|
+
"@aztec/stdlib": "0.83.0",
|
|
72
|
+
"@aztec/world-state": "0.83.0",
|
|
73
73
|
"zod": "^3.23.8"
|
|
74
74
|
},
|
|
75
75
|
"devDependencies": {
|
package/src/node/txe_node.ts
CHANGED
|
@@ -35,7 +35,7 @@ import type {
|
|
|
35
35
|
SequencerConfig,
|
|
36
36
|
WorldStateSyncStatus,
|
|
37
37
|
} from '@aztec/stdlib/interfaces/server';
|
|
38
|
-
import { type LogFilter, type PrivateLog,
|
|
38
|
+
import { type LogFilter, type PrivateLog, TxScopedL2Log } from '@aztec/stdlib/logs';
|
|
39
39
|
import {
|
|
40
40
|
MerkleTreeId,
|
|
41
41
|
type NullifierMembershipWitness,
|
|
@@ -98,12 +98,12 @@ export class TXENode implements AztecNode {
|
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
/**
|
|
101
|
-
*
|
|
101
|
+
* Processes a tx effect and receipt for a given block number.
|
|
102
102
|
* @param blockNumber - The block number that this tx effect resides.
|
|
103
103
|
* @param txHash - The transaction hash of the transaction.
|
|
104
104
|
* @param effect - The tx effect to set.
|
|
105
105
|
*/
|
|
106
|
-
async
|
|
106
|
+
async processTxEffect(blockNumber: number, txHash: TxHash, effect: TxEffect) {
|
|
107
107
|
// We are not creating real blocks on which membership proofs can be constructed - we instead define its hash as
|
|
108
108
|
// simply the hash of the block number.
|
|
109
109
|
const blockHash = await poseidon2Hash([blockNumber]);
|
|
@@ -127,44 +127,45 @@ export class TXENode implements AztecNode {
|
|
|
127
127
|
blockNumber,
|
|
128
128
|
),
|
|
129
129
|
);
|
|
130
|
-
}
|
|
131
130
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
* @param blockNumber - The block number at which to add the private logs.
|
|
135
|
-
* @param privateLogs - The privateLogs that contain the private logs to be added.
|
|
136
|
-
*/
|
|
137
|
-
addPrivateLogsByTags(blockNumber: number, privateLogs: PrivateLog[]) {
|
|
138
|
-
privateLogs.forEach(log => {
|
|
131
|
+
// Store the private logs
|
|
132
|
+
effect.privateLogs.forEach((log, logIndexInTx) => {
|
|
139
133
|
const tag = log.fields[0];
|
|
140
134
|
this.#logger.verbose(`Found private log with tag ${tag.toString()} in block ${this.getBlockNumber()}`);
|
|
141
135
|
|
|
142
136
|
const currentLogs = this.#logsByTags.get(tag.toString()) ?? [];
|
|
143
|
-
const scopedLog = new TxScopedL2Log(
|
|
137
|
+
const scopedLog = new TxScopedL2Log(
|
|
138
|
+
new TxHash(new Fr(blockNumber)),
|
|
139
|
+
this.#noteIndex,
|
|
140
|
+
logIndexInTx,
|
|
141
|
+
blockNumber,
|
|
142
|
+
log,
|
|
143
|
+
);
|
|
144
144
|
currentLogs.push(scopedLog);
|
|
145
145
|
this.#logsByTags.set(tag.toString(), currentLogs);
|
|
146
146
|
});
|
|
147
147
|
|
|
148
|
-
this.#noteIndex += privateLogs.length;
|
|
149
|
-
}
|
|
148
|
+
this.#noteIndex += effect.privateLogs.length;
|
|
150
149
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
* @param blockNumber - The block number at which to add the public logs.
|
|
154
|
-
* @param publicLogs - The public logs to be added.
|
|
155
|
-
*/
|
|
156
|
-
addPublicLogsByTags(blockNumber: number, publicLogs: PublicLog[]) {
|
|
157
|
-
publicLogs.forEach(log => {
|
|
150
|
+
// Store the public logs
|
|
151
|
+
effect.publicLogs.forEach((log, logIndexInTx) => {
|
|
158
152
|
const tag = log.log[0];
|
|
159
153
|
this.#logger.verbose(`Found public log with tag ${tag.toString()} in block ${this.getBlockNumber()}`);
|
|
160
154
|
|
|
161
155
|
const currentLogs = this.#logsByTags.get(tag.toString()) ?? [];
|
|
162
|
-
const scopedLog = new TxScopedL2Log(
|
|
156
|
+
const scopedLog = new TxScopedL2Log(
|
|
157
|
+
new TxHash(new Fr(blockNumber)),
|
|
158
|
+
this.#noteIndex,
|
|
159
|
+
logIndexInTx,
|
|
160
|
+
blockNumber,
|
|
161
|
+
log,
|
|
162
|
+
);
|
|
163
163
|
|
|
164
164
|
currentLogs.push(scopedLog);
|
|
165
165
|
this.#logsByTags.set(tag.toString(), currentLogs);
|
|
166
166
|
});
|
|
167
167
|
}
|
|
168
|
+
|
|
168
169
|
/**
|
|
169
170
|
* Gets all logs that match any of the received tags (i.e. logs with their first field equal to a tag).
|
|
170
171
|
* @param tags - The tags to filter the logs by.
|
|
@@ -580,7 +581,7 @@ export class TXENode implements AztecNode {
|
|
|
580
581
|
MerkleTreeId.PUBLIC_DATA_TREE,
|
|
581
582
|
lowLeafResult.index,
|
|
582
583
|
)) as PublicDataTreeLeafPreimage;
|
|
583
|
-
return preimage.value;
|
|
584
|
+
return preimage.leaf.value;
|
|
584
585
|
}
|
|
585
586
|
|
|
586
587
|
/**
|
package/src/oracle/txe_oracle.ts
CHANGED
|
@@ -23,6 +23,7 @@ import {
|
|
|
23
23
|
ContractDataProvider,
|
|
24
24
|
NoteDataProvider,
|
|
25
25
|
PXEOracleInterface,
|
|
26
|
+
PrivateEventDataProvider,
|
|
26
27
|
SyncDataProvider,
|
|
27
28
|
TaggingDataProvider,
|
|
28
29
|
enrichPublicSimulationError,
|
|
@@ -52,6 +53,7 @@ import {
|
|
|
52
53
|
} from '@aztec/simulator/server';
|
|
53
54
|
import {
|
|
54
55
|
type ContractArtifact,
|
|
56
|
+
EventSelector,
|
|
55
57
|
type FunctionAbi,
|
|
56
58
|
FunctionSelector,
|
|
57
59
|
type NoteSelector,
|
|
@@ -132,7 +134,7 @@ export class TXE implements TypedOracle {
|
|
|
132
134
|
|
|
133
135
|
private committedBlocks = new Set<number>();
|
|
134
136
|
|
|
135
|
-
private
|
|
137
|
+
private ROLLUP_VERSION = 1;
|
|
136
138
|
private CHAIN_ID = 1;
|
|
137
139
|
|
|
138
140
|
private node: TXENode;
|
|
@@ -152,6 +154,7 @@ export class TXE implements TypedOracle {
|
|
|
152
154
|
private syncDataProvider: SyncDataProvider,
|
|
153
155
|
private taggingDataProvider: TaggingDataProvider,
|
|
154
156
|
private addressDataProvider: AddressDataProvider,
|
|
157
|
+
private privateEventDataProvider: PrivateEventDataProvider,
|
|
155
158
|
private accountDataProvider: TXEAccountDataProvider,
|
|
156
159
|
private executionCache: HashedValuesCache,
|
|
157
160
|
private contractAddress: AztecAddress,
|
|
@@ -160,20 +163,20 @@ export class TXE implements TypedOracle {
|
|
|
160
163
|
) {
|
|
161
164
|
this.noteCache = new ExecutionNoteCache(this.getTxRequestHash());
|
|
162
165
|
|
|
163
|
-
this.node = new TXENode(this.blockNumber, this.
|
|
166
|
+
this.node = new TXENode(this.blockNumber, this.ROLLUP_VERSION, this.CHAIN_ID, nativeWorldStateService, baseFork);
|
|
164
167
|
// Default msg_sender (for entrypoints) is now Fr.max_value rather than 0 addr (see #7190 & #7404)
|
|
165
168
|
this.msgSender = AztecAddress.fromField(Fr.MAX_FIELD_VALUE);
|
|
166
169
|
|
|
167
170
|
this.pxeOracleInterface = new PXEOracleInterface(
|
|
168
171
|
this.node,
|
|
169
172
|
this.keyStore,
|
|
170
|
-
this.simulationProvider,
|
|
171
173
|
this.contractDataProvider,
|
|
172
174
|
this.noteDataProvider,
|
|
173
175
|
this.capsuleDataProvider,
|
|
174
176
|
this.syncDataProvider,
|
|
175
177
|
this.taggingDataProvider,
|
|
176
178
|
this.addressDataProvider,
|
|
179
|
+
this.privateEventDataProvider,
|
|
177
180
|
this.logger,
|
|
178
181
|
);
|
|
179
182
|
}
|
|
@@ -184,6 +187,7 @@ export class TXE implements TypedOracle {
|
|
|
184
187
|
const baseFork = await nativeWorldStateService.fork();
|
|
185
188
|
|
|
186
189
|
const addressDataProvider = new AddressDataProvider(store);
|
|
190
|
+
const privateEventDataProvider = new PrivateEventDataProvider(store);
|
|
187
191
|
const contractDataProvider = new ContractDataProvider(store);
|
|
188
192
|
const noteDataProvider = await NoteDataProvider.create(store);
|
|
189
193
|
const syncDataProvider = new SyncDataProvider(store);
|
|
@@ -208,6 +212,7 @@ export class TXE implements TypedOracle {
|
|
|
208
212
|
syncDataProvider,
|
|
209
213
|
taggingDataProvider,
|
|
210
214
|
addressDataProvider,
|
|
215
|
+
privateEventDataProvider,
|
|
211
216
|
accountDataProvider,
|
|
212
217
|
executionCache,
|
|
213
218
|
await AztecAddress.random(),
|
|
@@ -671,7 +676,7 @@ export class TXE implements TypedOracle {
|
|
|
671
676
|
MerkleTreeId.PUBLIC_DATA_TREE,
|
|
672
677
|
lowLeafResult.index,
|
|
673
678
|
)) as PublicDataTreeLeafPreimage;
|
|
674
|
-
value = preimage.value;
|
|
679
|
+
value = preimage.leaf.value;
|
|
675
680
|
}
|
|
676
681
|
this.logger.debug(`Oracle storage read: slot=${storageSlot.toString()} value=${value}`);
|
|
677
682
|
values.push(value);
|
|
@@ -726,6 +731,8 @@ export class TXE implements TypedOracle {
|
|
|
726
731
|
}
|
|
727
732
|
|
|
728
733
|
txEffect.publicDataWrites = this.publicDataWrites;
|
|
734
|
+
txEffect.privateLogs = this.privateLogs;
|
|
735
|
+
txEffect.publicLogs = this.publicLogs;
|
|
729
736
|
|
|
730
737
|
const body = new Body([txEffect]);
|
|
731
738
|
|
|
@@ -765,9 +772,7 @@ export class TXE implements TypedOracle {
|
|
|
765
772
|
}
|
|
766
773
|
}
|
|
767
774
|
|
|
768
|
-
await this.node.
|
|
769
|
-
this.node.addPrivateLogsByTags(this.blockNumber, this.privateLogs);
|
|
770
|
-
this.node.addPublicLogsByTags(this.blockNumber, this.publicLogs);
|
|
775
|
+
await this.node.processTxEffect(blockNumber, new TxHash(new Fr(blockNumber)), txEffect);
|
|
771
776
|
|
|
772
777
|
const stateReference = await fork.getStateReference();
|
|
773
778
|
const archiveInfo = await fork.getTreeInfo(MerkleTreeId.ARCHIVE);
|
|
@@ -1076,20 +1081,8 @@ export class TXE implements TypedOracle {
|
|
|
1076
1081
|
return await this.pxeOracleInterface.getIndexedTaggingSecretAsSender(this.contractAddress, sender, recipient);
|
|
1077
1082
|
}
|
|
1078
1083
|
|
|
1079
|
-
async syncNotes() {
|
|
1080
|
-
|
|
1081
|
-
this.contractAddress,
|
|
1082
|
-
await this.getBlockNumber(),
|
|
1083
|
-
undefined,
|
|
1084
|
-
);
|
|
1085
|
-
|
|
1086
|
-
for (const [recipient, taggedLogs] of taggedLogsByRecipient.entries()) {
|
|
1087
|
-
await this.pxeOracleInterface.processTaggedLogs(
|
|
1088
|
-
this.contractAddress,
|
|
1089
|
-
taggedLogs,
|
|
1090
|
-
AztecAddress.fromString(recipient),
|
|
1091
|
-
);
|
|
1092
|
-
}
|
|
1084
|
+
async syncNotes(pendingTaggedLogArrayBaseSlot: Fr) {
|
|
1085
|
+
await this.pxeOracleInterface.syncTaggedLogs(this.contractAddress, pendingTaggedLogArrayBaseSlot);
|
|
1093
1086
|
|
|
1094
1087
|
await this.pxeOracleInterface.removeNullifiedNotes(this.contractAddress);
|
|
1095
1088
|
|
|
@@ -1212,7 +1205,7 @@ export class TXE implements TypedOracle {
|
|
|
1212
1205
|
lowLeafResult.index,
|
|
1213
1206
|
)) as PublicDataTreeLeafPreimage;
|
|
1214
1207
|
|
|
1215
|
-
return preimage.value;
|
|
1208
|
+
return preimage.leaf.value;
|
|
1216
1209
|
}
|
|
1217
1210
|
|
|
1218
1211
|
storeCapsule(contractAddress: AztecAddress, slot: Fr, capsule: Fr[]): Promise<void> {
|
|
@@ -1255,4 +1248,22 @@ export class TXE implements TypedOracle {
|
|
|
1255
1248
|
getSharedSecret(address: AztecAddress, ephPk: Point): Promise<Point> {
|
|
1256
1249
|
return this.pxeOracleInterface.getSharedSecret(address, ephPk);
|
|
1257
1250
|
}
|
|
1251
|
+
|
|
1252
|
+
storePrivateEventLog(
|
|
1253
|
+
contractAddress: AztecAddress,
|
|
1254
|
+
recipient: AztecAddress,
|
|
1255
|
+
eventSelector: EventSelector,
|
|
1256
|
+
logContent: Fr[],
|
|
1257
|
+
txHash: TxHash,
|
|
1258
|
+
logIndexInTx: number,
|
|
1259
|
+
): Promise<void> {
|
|
1260
|
+
return this.pxeOracleInterface.storePrivateEventLog(
|
|
1261
|
+
contractAddress,
|
|
1262
|
+
recipient,
|
|
1263
|
+
eventSelector,
|
|
1264
|
+
logContent,
|
|
1265
|
+
txHash,
|
|
1266
|
+
logIndexInTx,
|
|
1267
|
+
);
|
|
1268
|
+
}
|
|
1258
1269
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { type ContractInstanceWithAddress, Fr, Point } from '@aztec/aztec.js';
|
|
1
|
+
import { type ContractInstanceWithAddress, Fr, Point, TxHash } from '@aztec/aztec.js';
|
|
2
2
|
import { DEPLOYER_CONTRACT_ADDRESS } from '@aztec/constants';
|
|
3
3
|
import type { Logger } from '@aztec/foundation/log';
|
|
4
4
|
import { openTmpStore } from '@aztec/kv-store/lmdb-v2';
|
|
5
5
|
import type { ProtocolContract } from '@aztec/protocol-contracts';
|
|
6
6
|
import { enrichPublicSimulationError } from '@aztec/pxe/server';
|
|
7
7
|
import type { TypedOracle } from '@aztec/simulator/client';
|
|
8
|
-
import { type ContractArtifact, FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
|
|
8
|
+
import { type ContractArtifact, EventSelector, FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
|
|
9
9
|
import { PublicDataWrite } from '@aztec/stdlib/avm';
|
|
10
10
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
11
11
|
import { computePartialAddress } from '@aztec/stdlib/contract';
|
|
@@ -516,8 +516,8 @@ export class TXEService {
|
|
|
516
516
|
return toForeignCallResult(secret.toFields().map(toSingle));
|
|
517
517
|
}
|
|
518
518
|
|
|
519
|
-
async syncNotes() {
|
|
520
|
-
await this.typedOracle.syncNotes();
|
|
519
|
+
async syncNotes(pendingTaggedLogArrayBaseSlot: ForeignCallSingle) {
|
|
520
|
+
await this.typedOracle.syncNotes(fromSingle(pendingTaggedLogArrayBaseSlot));
|
|
521
521
|
return toForeignCallResult([]);
|
|
522
522
|
}
|
|
523
523
|
|
|
@@ -622,14 +622,38 @@ export class TXEService {
|
|
|
622
622
|
return toForeignCallResult(arrayToBoundedVec(bufferToU8Array(plaintextBuffer), ciphertextBVecStorage.length));
|
|
623
623
|
}
|
|
624
624
|
|
|
625
|
-
async getSharedSecret(
|
|
625
|
+
async getSharedSecret(
|
|
626
|
+
address: ForeignCallSingle,
|
|
627
|
+
ephPKField0: ForeignCallSingle,
|
|
628
|
+
ephPKField1: ForeignCallSingle,
|
|
629
|
+
ephPKField2: ForeignCallSingle,
|
|
630
|
+
) {
|
|
626
631
|
const secret = await this.typedOracle.getSharedSecret(
|
|
627
632
|
AztecAddress.fromField(fromSingle(address)),
|
|
628
|
-
Point.fromFields(
|
|
633
|
+
Point.fromFields([fromSingle(ephPKField0), fromSingle(ephPKField1), fromSingle(ephPKField2)]),
|
|
629
634
|
);
|
|
630
635
|
return toForeignCallResult(secret.toFields().map(toSingle));
|
|
631
636
|
}
|
|
632
637
|
|
|
638
|
+
async storePrivateEventLog(
|
|
639
|
+
contractAddress: ForeignCallSingle,
|
|
640
|
+
recipient: ForeignCallSingle,
|
|
641
|
+
eventSelector: ForeignCallSingle,
|
|
642
|
+
logContent: ForeignCallArray,
|
|
643
|
+
txHash: ForeignCallSingle,
|
|
644
|
+
logIndexInTx: ForeignCallSingle,
|
|
645
|
+
) {
|
|
646
|
+
await this.typedOracle.storePrivateEventLog(
|
|
647
|
+
AztecAddress.fromField(fromSingle(contractAddress)),
|
|
648
|
+
AztecAddress.fromField(fromSingle(recipient)),
|
|
649
|
+
EventSelector.fromField(fromSingle(eventSelector)),
|
|
650
|
+
fromArray(logContent),
|
|
651
|
+
new TxHash(fromSingle(txHash)),
|
|
652
|
+
fromSingle(logIndexInTx).toNumber(),
|
|
653
|
+
);
|
|
654
|
+
return toForeignCallResult([]);
|
|
655
|
+
}
|
|
656
|
+
|
|
633
657
|
// AVM opcodes
|
|
634
658
|
|
|
635
659
|
avmOpcodeEmitUnencryptedLog(_message: ForeignCallArray) {
|
|
@@ -638,8 +662,8 @@ export class TXEService {
|
|
|
638
662
|
}
|
|
639
663
|
|
|
640
664
|
async avmOpcodeStorageRead(slot: ForeignCallSingle) {
|
|
641
|
-
const value = await (this.typedOracle as TXE).avmOpcodeStorageRead(fromSingle(slot));
|
|
642
|
-
return toForeignCallResult([toSingle(value)]);
|
|
665
|
+
const value = (await (this.typedOracle as TXE).avmOpcodeStorageRead(fromSingle(slot))).value;
|
|
666
|
+
return toForeignCallResult([toSingle(new Fr(value))]);
|
|
643
667
|
}
|
|
644
668
|
|
|
645
669
|
async avmOpcodeStorageWrite(slot: ForeignCallSingle, value: ForeignCallSingle) {
|