@aztec/txe 1.0.0-nightly.20250607 → 1.0.0-nightly.20250610
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/txe_oracle.d.ts +1 -0
- package/dest/oracle/txe_oracle.d.ts.map +1 -1
- package/dest/oracle/txe_oracle.js +41 -4
- package/dest/state_machine/index.d.ts.map +1 -1
- package/dest/state_machine/index.js +1 -1
- package/dest/txe_service/txe_service.d.ts +3 -0
- package/dest/txe_service/txe_service.d.ts.map +1 -1
- package/dest/txe_service/txe_service.js +8 -0
- package/package.json +15 -15
- package/src/oracle/txe_oracle.ts +54 -6
- package/src/state_machine/index.ts +2 -0
- package/src/txe_service/txe_service.ts +13 -0
|
@@ -151,6 +151,7 @@ export declare class TXE implements TypedOracle {
|
|
|
151
151
|
copyCapsule(contractAddress: AztecAddress, srcSlot: Fr, dstSlot: Fr, numEntries: number): Promise<void>;
|
|
152
152
|
aes128Decrypt(ciphertext: Buffer, iv: Buffer, symKey: Buffer): Promise<Buffer>;
|
|
153
153
|
getSharedSecret(address: AztecAddress, ephPk: Point): Promise<Point>;
|
|
154
|
+
emitOffchainMessage(_message: Fr[], _recipient: AztecAddress): Promise<void>;
|
|
154
155
|
privateCallNewFlow(from: AztecAddress, targetContractAddress: AztecAddress | undefined, functionSelector: FunctionSelector | undefined, args: Fr[], argsHash?: Fr, isStaticCall?: boolean): Promise<{
|
|
155
156
|
endSideEffectCounter: Fr;
|
|
156
157
|
returnsHash: Fr;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"txe_oracle.d.ts","sourceRoot":"","sources":["../../src/oracle/txe_oracle.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,wBAAwB,EAa9B,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,EACL,kBAAkB,EAElB,uBAAuB,EACvB,KAAK,QAAQ,EAGb,KAAK,WAAW,EAKjB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAKL,KAAK,cAAc,EAIpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,gBAAgB,EAEhB,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;AAY5F,OAAO,KAAK,EAA4B,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC3G,OAAO,EACL,KAAK,oBAAoB,EAGzB,oBAAoB,EAOrB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,UAAU,EACV,oBAAoB,EACpB,KAAK,SAAS,EACd,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AASrD,OAAO,EAEL,YAAY,EAEZ,0BAA0B,EAG1B,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,WAAW,
|
|
1
|
+
{"version":3,"file":"txe_oracle.d.ts","sourceRoot":"","sources":["../../src/oracle/txe_oracle.ts"],"names":[],"mappings":"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"}
|
|
@@ -862,6 +862,10 @@ export class TXE {
|
|
|
862
862
|
getSharedSecret(address, ephPk) {
|
|
863
863
|
return this.pxeOracleInterface.getSharedSecret(address, ephPk);
|
|
864
864
|
}
|
|
865
|
+
emitOffchainMessage(_message, _recipient) {
|
|
866
|
+
// Offchain messages are discarded in the TXE tests.
|
|
867
|
+
return Promise.resolve();
|
|
868
|
+
}
|
|
865
869
|
async privateCallNewFlow(from, targetContractAddress = AztecAddress.zero(), functionSelector = FunctionSelector.empty(), args, argsHash = Fr.zero(), isStaticCall = false) {
|
|
866
870
|
this.logger.verbose(`Executing external function ${await this.getDebugFunctionName(targetContractAddress, functionSelector)}@${targetContractAddress} isStaticCall=${isStaticCall}`);
|
|
867
871
|
const artifact = await this.contractDataProvider.getFunctionArtifact(targetContractAddress, functionSelector);
|
|
@@ -879,8 +883,9 @@ export class TXE {
|
|
|
879
883
|
context.storeInExecutionCache(args, argsHash);
|
|
880
884
|
// Note: This is a slight modification of simulator.run without any of the checks. Maybe we should modify simulator.run with a boolean value to skip checks.
|
|
881
885
|
let result;
|
|
886
|
+
let executionResult;
|
|
882
887
|
try {
|
|
883
|
-
|
|
888
|
+
executionResult = await executePrivateFunction(this.simulator, context, artifact, targetContractAddress, functionSelector);
|
|
884
889
|
const { usedTxRequestHashForNonces } = noteCache.finish();
|
|
885
890
|
const firstNullifierHint = usedTxRequestHashForNonces ? Fr.ZERO : noteCache.getAllNullifiers()[0];
|
|
886
891
|
const publicCallRequests = collectNested([
|
|
@@ -897,9 +902,16 @@ export class TXE {
|
|
|
897
902
|
} catch (err) {
|
|
898
903
|
throw createSimulationError(err instanceof Error ? err : new Error('Unknown error during private execution'));
|
|
899
904
|
}
|
|
905
|
+
if (executionResult.returnValues !== undefined) {
|
|
906
|
+
const { returnValues } = executionResult;
|
|
907
|
+
// This is a bit of a hack to not deal with returning a slice in nr which is what normally happens.
|
|
908
|
+
// Investigate whether it is faster to do this or return from the oracle directly.
|
|
909
|
+
const returnValuesHash = await computeVarArgsHash(returnValues);
|
|
910
|
+
this.storeInExecutionCache(returnValues, returnValuesHash);
|
|
911
|
+
}
|
|
900
912
|
const uniqueNoteHashes = [];
|
|
901
913
|
const taggedPrivateLogs = [];
|
|
902
|
-
const nullifiers = result.firstNullifier.equals(Fr.ZERO) ? [
|
|
914
|
+
const nullifiers = isStaticCall ? [] : result.firstNullifier.equals(Fr.ZERO) ? [
|
|
903
915
|
this.getTxRequestHash()
|
|
904
916
|
] : noteCache.getAllNullifiers();
|
|
905
917
|
const l2ToL1Messages = [];
|
|
@@ -962,6 +974,10 @@ export class TXE {
|
|
|
962
974
|
}
|
|
963
975
|
const txData = new PrivateKernelTailCircuitPublicInputs(constantData, RollupValidationRequests.empty(), /*gasUsed=*/ new Gas(0, 0), /*feePayer=*/ AztecAddress.zero(), hasPublicCalls ? inputsForPublic : undefined, !hasPublicCalls ? inputsForRollup : undefined);
|
|
964
976
|
const tx = new Tx(txData, ClientIvcProof.empty(), [], result.publicFunctionCalldata);
|
|
977
|
+
let checkpoint;
|
|
978
|
+
if (isStaticCall) {
|
|
979
|
+
checkpoint = await ForkCheckpoint.new(this.baseFork);
|
|
980
|
+
}
|
|
965
981
|
const results = await processor.process([
|
|
966
982
|
tx
|
|
967
983
|
]);
|
|
@@ -970,6 +986,15 @@ export class TXE {
|
|
|
970
986
|
if (failedTxs.length !== 0) {
|
|
971
987
|
throw new Error('Public execution has failed');
|
|
972
988
|
}
|
|
989
|
+
if (isStaticCall) {
|
|
990
|
+
await checkpoint.revert();
|
|
991
|
+
const txRequestHash = this.getTxRequestHash();
|
|
992
|
+
return {
|
|
993
|
+
endSideEffectCounter: result.entrypoint.publicInputs.endSideEffectCounter,
|
|
994
|
+
returnsHash: result.entrypoint.publicInputs.returnsHash,
|
|
995
|
+
txHash: txRequestHash
|
|
996
|
+
};
|
|
997
|
+
}
|
|
973
998
|
const fork = this.baseFork;
|
|
974
999
|
const txEffect = TxEffect.empty();
|
|
975
1000
|
txEffect.noteHashes = processedTxs[0].txEffect.noteHashes;
|
|
@@ -1008,9 +1033,9 @@ export class TXE {
|
|
|
1008
1033
|
const blockHeader = await this.pxeOracleInterface.getBlockHeader();
|
|
1009
1034
|
const uniqueNoteHashes = [];
|
|
1010
1035
|
const taggedPrivateLogs = [];
|
|
1011
|
-
const nullifiers = [
|
|
1036
|
+
const nullifiers = !isStaticCall ? [
|
|
1012
1037
|
this.getTxRequestHash()
|
|
1013
|
-
];
|
|
1038
|
+
] : [];
|
|
1014
1039
|
const l2ToL1Messages = [];
|
|
1015
1040
|
const contractClassLogsHashes = [];
|
|
1016
1041
|
const calldataHash = await computeCalldataHash(calldata);
|
|
@@ -1036,6 +1061,10 @@ export class TXE {
|
|
|
1036
1061
|
const tx = new Tx(txData, ClientIvcProof.empty(), [], [
|
|
1037
1062
|
calldataHashedValues
|
|
1038
1063
|
]);
|
|
1064
|
+
let checkpoint;
|
|
1065
|
+
if (isStaticCall) {
|
|
1066
|
+
checkpoint = await ForkCheckpoint.new(this.baseFork);
|
|
1067
|
+
}
|
|
1039
1068
|
const results = await processor.process([
|
|
1040
1069
|
tx
|
|
1041
1070
|
]);
|
|
@@ -1052,6 +1081,14 @@ export class TXE {
|
|
|
1052
1081
|
returnValuesHash = await computeVarArgsHash(returnValues);
|
|
1053
1082
|
this.storeInExecutionCache(returnValues, returnValuesHash);
|
|
1054
1083
|
}
|
|
1084
|
+
if (isStaticCall) {
|
|
1085
|
+
await checkpoint.revert();
|
|
1086
|
+
const txRequestHash = this.getTxRequestHash();
|
|
1087
|
+
return {
|
|
1088
|
+
returnsHash: returnValuesHash ?? Fr.ZERO,
|
|
1089
|
+
txHash: txRequestHash
|
|
1090
|
+
};
|
|
1091
|
+
}
|
|
1055
1092
|
const fork = this.baseFork;
|
|
1056
1093
|
const txEffect = TxEffect.empty();
|
|
1057
1094
|
txEffect.noteHashes = processedTxs[0].txEffect.noteHashes;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/state_machine/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAGjE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,qBAAa,eAAe;IAEjB,IAAI,EAAE,SAAS;IACf,YAAY,EAAE,eAAe;IAC7B,QAAQ,EAAE,WAAW;IACrB,gBAAgB,EAAE,gBAAgB;gBAHlC,IAAI,EAAE,SAAS,EACf,YAAY,EAAE,eAAe,EAC7B,QAAQ,EAAE,WAAW,EACrB,gBAAgB,EAAE,gBAAgB;WAGvB,MAAM,CAAC,EAAE,EAAE,iBAAiB;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/state_machine/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAGjE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,qBAAa,eAAe;IAEjB,IAAI,EAAE,SAAS;IACf,YAAY,EAAE,eAAe;IAC7B,QAAQ,EAAE,WAAW;IACrB,gBAAgB,EAAE,gBAAgB;gBAHlC,IAAI,EAAE,SAAS,EACf,YAAY,EAAE,eAAe,EAC7B,QAAQ,EAAE,WAAW,EACrB,gBAAgB,EAAE,gBAAgB;WAGvB,MAAM,CAAC,EAAE,EAAE,iBAAiB;IAiCnC,aAAa,CAAC,KAAK,EAAE,OAAO;CAiB1C"}
|
|
@@ -24,7 +24,7 @@ export class TXEStateMachine {
|
|
|
24
24
|
const syncDataProvider = new SyncDataProvider(db);
|
|
25
25
|
const aztecNodeConfig = {};
|
|
26
26
|
const log = createLogger('txe_node');
|
|
27
|
-
const node = new AztecNodeService(aztecNodeConfig, new DummyP2P(), archiver, archiver, archiver, archiver, synchronizer, undefined, undefined, // version and chainId should match the ones in txe oracle
|
|
27
|
+
const node = new AztecNodeService(aztecNodeConfig, new DummyP2P(), archiver, archiver, archiver, archiver, synchronizer, undefined, undefined, undefined, undefined, // version and chainId should match the ones in txe oracle
|
|
28
28
|
1, 1, new TXEGlobalVariablesBuilder(), getPackageVersion() ?? '', new TestCircuitVerifier(), undefined, log);
|
|
29
29
|
return new this(node, synchronizer, archiver, syncDataProvider);
|
|
30
30
|
}
|
|
@@ -163,6 +163,9 @@ export declare class TXEService {
|
|
|
163
163
|
getSharedSecret(address: ForeignCallSingle, ephPKField0: ForeignCallSingle, ephPKField1: ForeignCallSingle, ephPKField2: ForeignCallSingle): Promise<{
|
|
164
164
|
values: (string | ForeignCallArray)[];
|
|
165
165
|
}>;
|
|
166
|
+
emitOffchainMessage(_message: ForeignCallArray, _recipient: ForeignCallSingle): {
|
|
167
|
+
values: (string | ForeignCallArray)[];
|
|
168
|
+
};
|
|
166
169
|
avmOpcodeEmitUnencryptedLog(_message: ForeignCallArray): {
|
|
167
170
|
values: (string | ForeignCallArray)[];
|
|
168
171
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"txe_service.d.ts","sourceRoot":"","sources":["../../src/txe_service/txe_service.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"txe_service.d.ts","sourceRoot":"","sources":["../../src/txe_service/txe_service.ts"],"names":[],"mappings":"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"}
|
|
@@ -555,6 +555,14 @@ export class TXEService {
|
|
|
555
555
|
]));
|
|
556
556
|
return toForeignCallResult(secret.toFields().map(toSingle));
|
|
557
557
|
}
|
|
558
|
+
emitOffchainMessage(_message, _recipient) {
|
|
559
|
+
if (!this.oraclesEnabled) {
|
|
560
|
+
throw new Error('Oracle access from the root of a TXe test are not enabled. Please use env._ to interact with the oracles.');
|
|
561
|
+
}
|
|
562
|
+
// Offchain messages are currently discarded in the TXE tests.
|
|
563
|
+
// TODO: Expose this to the tests.
|
|
564
|
+
return toForeignCallResult([]);
|
|
565
|
+
}
|
|
558
566
|
// AVM opcodes
|
|
559
567
|
avmOpcodeEmitUnencryptedLog(_message) {
|
|
560
568
|
if (!this.oraclesEnabled) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/txe",
|
|
3
|
-
"version": "1.0.0-nightly.
|
|
3
|
+
"version": "1.0.0-nightly.20250610",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": "./dest/index.js",
|
|
6
6
|
"bin": "./dest/bin/index.js",
|
|
@@ -57,20 +57,20 @@
|
|
|
57
57
|
]
|
|
58
58
|
},
|
|
59
59
|
"dependencies": {
|
|
60
|
-
"@aztec/accounts": "1.0.0-nightly.
|
|
61
|
-
"@aztec/archiver": "1.0.0-nightly.
|
|
62
|
-
"@aztec/aztec-node": "1.0.0-nightly.
|
|
63
|
-
"@aztec/aztec.js": "1.0.0-nightly.
|
|
64
|
-
"@aztec/bb-prover": "1.0.0-nightly.
|
|
65
|
-
"@aztec/constants": "1.0.0-nightly.
|
|
66
|
-
"@aztec/foundation": "1.0.0-nightly.
|
|
67
|
-
"@aztec/key-store": "1.0.0-nightly.
|
|
68
|
-
"@aztec/kv-store": "1.0.0-nightly.
|
|
69
|
-
"@aztec/protocol-contracts": "1.0.0-nightly.
|
|
70
|
-
"@aztec/pxe": "1.0.0-nightly.
|
|
71
|
-
"@aztec/simulator": "1.0.0-nightly.
|
|
72
|
-
"@aztec/stdlib": "1.0.0-nightly.
|
|
73
|
-
"@aztec/world-state": "1.0.0-nightly.
|
|
60
|
+
"@aztec/accounts": "1.0.0-nightly.20250610",
|
|
61
|
+
"@aztec/archiver": "1.0.0-nightly.20250610",
|
|
62
|
+
"@aztec/aztec-node": "1.0.0-nightly.20250610",
|
|
63
|
+
"@aztec/aztec.js": "1.0.0-nightly.20250610",
|
|
64
|
+
"@aztec/bb-prover": "1.0.0-nightly.20250610",
|
|
65
|
+
"@aztec/constants": "1.0.0-nightly.20250610",
|
|
66
|
+
"@aztec/foundation": "1.0.0-nightly.20250610",
|
|
67
|
+
"@aztec/key-store": "1.0.0-nightly.20250610",
|
|
68
|
+
"@aztec/kv-store": "1.0.0-nightly.20250610",
|
|
69
|
+
"@aztec/protocol-contracts": "1.0.0-nightly.20250610",
|
|
70
|
+
"@aztec/pxe": "1.0.0-nightly.20250610",
|
|
71
|
+
"@aztec/simulator": "1.0.0-nightly.20250610",
|
|
72
|
+
"@aztec/stdlib": "1.0.0-nightly.20250610",
|
|
73
|
+
"@aztec/world-state": "1.0.0-nightly.20250610",
|
|
74
74
|
"zod": "^3.23.8"
|
|
75
75
|
},
|
|
76
76
|
"devDependencies": {
|
package/src/oracle/txe_oracle.ts
CHANGED
|
@@ -129,6 +129,7 @@ import {
|
|
|
129
129
|
CallContext,
|
|
130
130
|
GlobalVariables,
|
|
131
131
|
HashedValues,
|
|
132
|
+
PrivateCallExecutionResult,
|
|
132
133
|
PrivateExecutionResult,
|
|
133
134
|
PublicCallRequestWithCalldata,
|
|
134
135
|
Tx,
|
|
@@ -1328,6 +1329,11 @@ export class TXE implements TypedOracle {
|
|
|
1328
1329
|
return this.pxeOracleInterface.getSharedSecret(address, ephPk);
|
|
1329
1330
|
}
|
|
1330
1331
|
|
|
1332
|
+
emitOffchainMessage(_message: Fr[], _recipient: AztecAddress) {
|
|
1333
|
+
// Offchain messages are discarded in the TXE tests.
|
|
1334
|
+
return Promise.resolve();
|
|
1335
|
+
}
|
|
1336
|
+
|
|
1331
1337
|
async privateCallNewFlow(
|
|
1332
1338
|
from: AztecAddress,
|
|
1333
1339
|
targetContractAddress: AztecAddress = AztecAddress.zero(),
|
|
@@ -1384,9 +1390,10 @@ export class TXE implements TypedOracle {
|
|
|
1384
1390
|
context.storeInExecutionCache(args, argsHash);
|
|
1385
1391
|
|
|
1386
1392
|
// Note: This is a slight modification of simulator.run without any of the checks. Maybe we should modify simulator.run with a boolean value to skip checks.
|
|
1387
|
-
let result;
|
|
1393
|
+
let result: PrivateExecutionResult;
|
|
1394
|
+
let executionResult: PrivateCallExecutionResult;
|
|
1388
1395
|
try {
|
|
1389
|
-
|
|
1396
|
+
executionResult = await executePrivateFunction(
|
|
1390
1397
|
this.simulator,
|
|
1391
1398
|
context,
|
|
1392
1399
|
artifact,
|
|
@@ -1412,11 +1419,21 @@ export class TXE implements TypedOracle {
|
|
|
1412
1419
|
throw createSimulationError(err instanceof Error ? err : new Error('Unknown error during private execution'));
|
|
1413
1420
|
}
|
|
1414
1421
|
|
|
1422
|
+
if (executionResult.returnValues !== undefined) {
|
|
1423
|
+
const { returnValues } = executionResult;
|
|
1424
|
+
// This is a bit of a hack to not deal with returning a slice in nr which is what normally happens.
|
|
1425
|
+
// Investigate whether it is faster to do this or return from the oracle directly.
|
|
1426
|
+
const returnValuesHash = await computeVarArgsHash(returnValues);
|
|
1427
|
+
this.storeInExecutionCache(returnValues, returnValuesHash);
|
|
1428
|
+
}
|
|
1429
|
+
|
|
1415
1430
|
const uniqueNoteHashes: Fr[] = [];
|
|
1416
1431
|
const taggedPrivateLogs: PrivateLog[] = [];
|
|
1417
|
-
const nullifiers: Fr[] =
|
|
1418
|
-
? [
|
|
1419
|
-
:
|
|
1432
|
+
const nullifiers: Fr[] = isStaticCall
|
|
1433
|
+
? []
|
|
1434
|
+
: result.firstNullifier.equals(Fr.ZERO)
|
|
1435
|
+
? [this.getTxRequestHash()]
|
|
1436
|
+
: noteCache.getAllNullifiers();
|
|
1420
1437
|
const l2ToL1Messages: ScopedL2ToL1Message[] = [];
|
|
1421
1438
|
const contractClassLogsHashes: ScopedLogHash[] = [];
|
|
1422
1439
|
const publicCallRequests: PublicCallRequest[] = [];
|
|
@@ -1539,6 +1556,11 @@ export class TXE implements TypedOracle {
|
|
|
1539
1556
|
|
|
1540
1557
|
const tx = new Tx(txData, ClientIvcProof.empty(), [], result.publicFunctionCalldata);
|
|
1541
1558
|
|
|
1559
|
+
let checkpoint;
|
|
1560
|
+
if (isStaticCall) {
|
|
1561
|
+
checkpoint = await ForkCheckpoint.new(this.baseFork);
|
|
1562
|
+
}
|
|
1563
|
+
|
|
1542
1564
|
const results = await processor.process([tx]);
|
|
1543
1565
|
|
|
1544
1566
|
const processedTxs = results[0];
|
|
@@ -1548,6 +1570,17 @@ export class TXE implements TypedOracle {
|
|
|
1548
1570
|
throw new Error('Public execution has failed');
|
|
1549
1571
|
}
|
|
1550
1572
|
|
|
1573
|
+
if (isStaticCall) {
|
|
1574
|
+
await checkpoint!.revert();
|
|
1575
|
+
const txRequestHash = this.getTxRequestHash();
|
|
1576
|
+
|
|
1577
|
+
return {
|
|
1578
|
+
endSideEffectCounter: result.entrypoint.publicInputs.endSideEffectCounter,
|
|
1579
|
+
returnsHash: result.entrypoint.publicInputs.returnsHash,
|
|
1580
|
+
txHash: txRequestHash,
|
|
1581
|
+
};
|
|
1582
|
+
}
|
|
1583
|
+
|
|
1551
1584
|
const fork = this.baseFork;
|
|
1552
1585
|
|
|
1553
1586
|
const txEffect = TxEffect.empty();
|
|
@@ -1626,7 +1659,7 @@ export class TXE implements TypedOracle {
|
|
|
1626
1659
|
|
|
1627
1660
|
const uniqueNoteHashes: Fr[] = [];
|
|
1628
1661
|
const taggedPrivateLogs: PrivateLog[] = [];
|
|
1629
|
-
const nullifiers: Fr[] = [this.getTxRequestHash()];
|
|
1662
|
+
const nullifiers: Fr[] = !isStaticCall ? [this.getTxRequestHash()] : [];
|
|
1630
1663
|
const l2ToL1Messages: ScopedL2ToL1Message[] = [];
|
|
1631
1664
|
const contractClassLogsHashes: ScopedLogHash[] = [];
|
|
1632
1665
|
|
|
@@ -1677,6 +1710,11 @@ export class TXE implements TypedOracle {
|
|
|
1677
1710
|
|
|
1678
1711
|
const tx = new Tx(txData, ClientIvcProof.empty(), [], [calldataHashedValues]);
|
|
1679
1712
|
|
|
1713
|
+
let checkpoint;
|
|
1714
|
+
if (isStaticCall) {
|
|
1715
|
+
checkpoint = await ForkCheckpoint.new(this.baseFork);
|
|
1716
|
+
}
|
|
1717
|
+
|
|
1680
1718
|
const results = await processor.process([tx]);
|
|
1681
1719
|
|
|
1682
1720
|
const processedTxs = results[0];
|
|
@@ -1696,6 +1734,16 @@ export class TXE implements TypedOracle {
|
|
|
1696
1734
|
this.storeInExecutionCache(returnValues, returnValuesHash);
|
|
1697
1735
|
}
|
|
1698
1736
|
|
|
1737
|
+
if (isStaticCall) {
|
|
1738
|
+
await checkpoint!.revert();
|
|
1739
|
+
const txRequestHash = this.getTxRequestHash();
|
|
1740
|
+
|
|
1741
|
+
return {
|
|
1742
|
+
returnsHash: returnValuesHash ?? Fr.ZERO,
|
|
1743
|
+
txHash: txRequestHash,
|
|
1744
|
+
};
|
|
1745
|
+
}
|
|
1746
|
+
|
|
1699
1747
|
const fork = this.baseFork;
|
|
1700
1748
|
|
|
1701
1749
|
const txEffect = TxEffect.empty();
|
|
@@ -874,6 +874,19 @@ export class TXEService {
|
|
|
874
874
|
return toForeignCallResult(secret.toFields().map(toSingle));
|
|
875
875
|
}
|
|
876
876
|
|
|
877
|
+
emitOffchainMessage(_message: ForeignCallArray, _recipient: ForeignCallSingle) {
|
|
878
|
+
if (!this.oraclesEnabled) {
|
|
879
|
+
throw new Error(
|
|
880
|
+
'Oracle access from the root of a TXe test are not enabled. Please use env._ to interact with the oracles.',
|
|
881
|
+
);
|
|
882
|
+
}
|
|
883
|
+
|
|
884
|
+
// Offchain messages are currently discarded in the TXE tests.
|
|
885
|
+
// TODO: Expose this to the tests.
|
|
886
|
+
|
|
887
|
+
return toForeignCallResult([]);
|
|
888
|
+
}
|
|
889
|
+
|
|
877
890
|
// AVM opcodes
|
|
878
891
|
|
|
879
892
|
avmOpcodeEmitUnencryptedLog(_message: ForeignCallArray) {
|