@aztec/txe 0.87.7 → 1.0.0-nightly.20250604
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 +8 -3
- package/dest/oracle/txe_oracle.d.ts.map +1 -1
- package/dest/oracle/txe_oracle.js +93 -8
- package/dest/state_machine/dummy_p2p_client.d.ts +1 -1
- package/dest/state_machine/dummy_p2p_client.d.ts.map +1 -1
- package/dest/state_machine/dummy_p2p_client.js +2 -2
- package/dest/state_machine/index.js +1 -1
- package/dest/txe_service/txe_service.d.ts +8 -2
- package/dest/txe_service/txe_service.d.ts.map +1 -1
- package/dest/txe_service/txe_service.js +34 -10
- package/package.json +15 -15
- package/src/oracle/txe_oracle.ts +170 -23
- package/src/state_machine/dummy_p2p_client.ts +2 -2
- package/src/state_machine/index.ts +1 -1
- package/src/txe_service/txe_service.ts +50 -23
|
@@ -14,7 +14,7 @@ import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
|
14
14
|
import type { ContractInstance, ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
15
15
|
import type { MerkleTreeWriteOperations } from '@aztec/stdlib/interfaces/server';
|
|
16
16
|
import { type KeyValidationRequest, PrivateContextInputs } from '@aztec/stdlib/kernel';
|
|
17
|
-
import { ContractClassLog, IndexedTaggingSecret,
|
|
17
|
+
import { ContractClassLog, IndexedTaggingSecret, PrivateLog, PrivateLogWithTxData, type PublicLog, PublicLogWithTxData } from '@aztec/stdlib/logs';
|
|
18
18
|
import type { NoteStatus } from '@aztec/stdlib/note';
|
|
19
19
|
import { MerkleTreeId, NullifierMembershipWitness, PublicDataWitness } from '@aztec/stdlib/trees';
|
|
20
20
|
import { BlockHeader, TxHash } from '@aztec/stdlib/tx';
|
|
@@ -134,8 +134,9 @@ export declare class TXE implements TypedOracle {
|
|
|
134
134
|
incrementAppTaggingSecretIndexAsSender(sender: AztecAddress, recipient: AztecAddress): Promise<void>;
|
|
135
135
|
getIndexedTaggingSecretAsSender(sender: AztecAddress, recipient: AztecAddress): Promise<IndexedTaggingSecret>;
|
|
136
136
|
fetchTaggedLogs(pendingTaggedLogArrayBaseSlot: Fr): Promise<void>;
|
|
137
|
-
|
|
138
|
-
|
|
137
|
+
validateEnqueuedNotes(contractAddress: AztecAddress, noteValidationRequestsArrayBaseSlot: Fr): Promise<void>;
|
|
138
|
+
getPublicLogByTag(tag: Fr, contractAddress: AztecAddress): Promise<PublicLogWithTxData | null>;
|
|
139
|
+
getPrivateLogByTag(siloedTag: Fr): Promise<PrivateLogWithTxData | null>;
|
|
139
140
|
avmOpcodeCall(targetContractAddress: AztecAddress, calldata: Fr[], isStaticCall: boolean): Promise<PublicTxResult>;
|
|
140
141
|
avmOpcodeSuccessCopy(): boolean;
|
|
141
142
|
avmOpcodeReturndataSize(): number;
|
|
@@ -156,5 +157,9 @@ export declare class TXE implements TypedOracle {
|
|
|
156
157
|
returnsHash: Fr;
|
|
157
158
|
txHash: Fr;
|
|
158
159
|
}>;
|
|
160
|
+
publicCallNewFlow(from: AztecAddress, targetContractAddress: AztecAddress, calldata: Fr[], isStaticCall: boolean): Promise<{
|
|
161
|
+
returnsHash: Fr;
|
|
162
|
+
txHash: Fr;
|
|
163
|
+
}>;
|
|
159
164
|
}
|
|
160
165
|
//# 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,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,
|
|
1
|
+
{"version":3,"file":"txe_oracle.d.ts","sourceRoot":"","sources":["../../src/oracle/txe_oracle.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,14 +10,14 @@ import { AddressDataProvider, CapsuleDataProvider, ContractDataProvider, NoteDat
|
|
|
10
10
|
import { ExecutionNoteCache, HashedValuesCache, Oracle, PrivateExecutionOracle, UtilityExecutionOracle, executePrivateFunction, extractPrivateCircuitPublicInputs, pickNotes } from '@aztec/pxe/simulator';
|
|
11
11
|
import { WASMSimulator, extractCallStack, toACVMWitness, witnessMapToFields } from '@aztec/simulator/client';
|
|
12
12
|
import { createTxForPublicCalls } from '@aztec/simulator/public/fixtures';
|
|
13
|
-
import { ExecutionError, PublicContractsDB, PublicProcessor, PublicTxSimulator, createSimulationError, resolveAssertionMessageFromError } from '@aztec/simulator/server';
|
|
13
|
+
import { ExecutionError, GuardedMerkleTreeOperations, PublicContractsDB, PublicProcessor, PublicTxSimulator, createSimulationError, resolveAssertionMessageFromError } from '@aztec/simulator/server';
|
|
14
14
|
import { FunctionSelector, FunctionType, countArgumentsSize } from '@aztec/stdlib/abi';
|
|
15
15
|
import { AuthWitness } from '@aztec/stdlib/auth-witness';
|
|
16
16
|
import { PublicDataWrite } from '@aztec/stdlib/avm';
|
|
17
17
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
18
18
|
import { SimulationError } from '@aztec/stdlib/errors';
|
|
19
19
|
import { Gas, GasFees, GasSettings } from '@aztec/stdlib/gas';
|
|
20
|
-
import { computeNoteHashNonce, computePublicDataTreeLeafSlot, computeUniqueNoteHash, computeVarArgsHash, siloNoteHash, siloNullifier } from '@aztec/stdlib/hash';
|
|
20
|
+
import { computeCalldataHash, computeNoteHashNonce, computePublicDataTreeLeafSlot, computeUniqueNoteHash, computeVarArgsHash, siloNoteHash, siloNullifier } from '@aztec/stdlib/hash';
|
|
21
21
|
import { PartialPrivateTailPublicInputsForPublic, PartialPrivateTailPublicInputsForRollup, PrivateContextInputs, PrivateKernelTailCircuitPublicInputs, PrivateToPublicAccumulatedData, PrivateToRollupAccumulatedData, PublicCallRequest, RollupValidationRequests, ScopedLogHash } from '@aztec/stdlib/kernel';
|
|
22
22
|
import { deriveKeys } from '@aztec/stdlib/keys';
|
|
23
23
|
import { PrivateLog } from '@aztec/stdlib/logs';
|
|
@@ -750,11 +750,14 @@ export class TXE {
|
|
|
750
750
|
await this.pxeOracleInterface.removeNullifiedNotes(this.contractAddress);
|
|
751
751
|
return Promise.resolve();
|
|
752
752
|
}
|
|
753
|
-
async
|
|
754
|
-
await this.pxeOracleInterface.
|
|
753
|
+
async validateEnqueuedNotes(contractAddress, noteValidationRequestsArrayBaseSlot) {
|
|
754
|
+
await this.pxeOracleInterface.validateEnqueuedNotes(contractAddress, noteValidationRequestsArrayBaseSlot);
|
|
755
755
|
}
|
|
756
|
-
async
|
|
757
|
-
return await this.pxeOracleInterface.
|
|
756
|
+
async getPublicLogByTag(tag, contractAddress) {
|
|
757
|
+
return await this.pxeOracleInterface.getPublicLogByTag(tag, contractAddress);
|
|
758
|
+
}
|
|
759
|
+
async getPrivateLogByTag(siloedTag) {
|
|
760
|
+
return await this.pxeOracleInterface.getPrivateLogByTag(siloedTag);
|
|
758
761
|
}
|
|
759
762
|
// AVM oracles
|
|
760
763
|
async avmOpcodeCall(targetContractAddress, calldata, isStaticCall) {
|
|
@@ -942,8 +945,9 @@ export class TXE {
|
|
|
942
945
|
globals.blockNumber = new Fr(this.blockNumber);
|
|
943
946
|
globals.gasFees = GasFees.empty();
|
|
944
947
|
const contractsDB = new PublicContractsDB(new TXEPublicContractDataSource(this));
|
|
945
|
-
const
|
|
946
|
-
const
|
|
948
|
+
const guardedMerkleTrees = new GuardedMerkleTreeOperations(this.baseFork);
|
|
949
|
+
const simulator = new PublicTxSimulator(guardedMerkleTrees, contractsDB, globals, true, true);
|
|
950
|
+
const processor = new PublicProcessor(globals, guardedMerkleTrees, contractsDB, simulator, new TestDateProvider());
|
|
947
951
|
const constantData = new TxConstantData(blockHeader, txContext, Fr.zero(), Fr.zero());
|
|
948
952
|
const hasPublicCalls = result.publicFunctionCalldata.length !== 0;
|
|
949
953
|
let inputsForRollup;
|
|
@@ -998,4 +1002,85 @@ export class TXE {
|
|
|
998
1002
|
txHash: txRequestHash
|
|
999
1003
|
};
|
|
1000
1004
|
}
|
|
1005
|
+
async publicCallNewFlow(from, targetContractAddress, calldata, isStaticCall) {
|
|
1006
|
+
this.logger.verbose(`Executing public function ${await this.getDebugFunctionName(targetContractAddress, FunctionSelector.fromField(calldata[0]))}@${targetContractAddress} isStaticCall=${isStaticCall}`);
|
|
1007
|
+
const gasLimits = new Gas(DEFAULT_GAS_LIMIT, MAX_L2_GAS_PER_TX_PUBLIC_PORTION);
|
|
1008
|
+
const teardownGasLimits = new Gas(DEFAULT_TEARDOWN_GAS_LIMIT, MAX_L2_GAS_PER_TX_PUBLIC_PORTION);
|
|
1009
|
+
const gasSettings = new GasSettings(gasLimits, teardownGasLimits, GasFees.empty(), GasFees.empty());
|
|
1010
|
+
const txContext = new TxContext(this.CHAIN_ID, this.ROLLUP_VERSION, gasSettings);
|
|
1011
|
+
const blockHeader = await this.pxeOracleInterface.getBlockHeader();
|
|
1012
|
+
const uniqueNoteHashes = [];
|
|
1013
|
+
const taggedPrivateLogs = [];
|
|
1014
|
+
const nullifiers = [
|
|
1015
|
+
this.getTxRequestHash()
|
|
1016
|
+
];
|
|
1017
|
+
const l2ToL1Messages = [];
|
|
1018
|
+
const contractClassLogsHashes = [];
|
|
1019
|
+
const calldataHash = await computeCalldataHash(calldata);
|
|
1020
|
+
const calldataHashedValues = new HashedValues(calldata, calldataHash);
|
|
1021
|
+
const publicCallRequest = new PublicCallRequest(from, targetContractAddress, isStaticCall, calldataHash);
|
|
1022
|
+
const publicCallRequests = [
|
|
1023
|
+
publicCallRequest
|
|
1024
|
+
];
|
|
1025
|
+
const globals = makeGlobalVariables();
|
|
1026
|
+
globals.blockNumber = new Fr(this.blockNumber);
|
|
1027
|
+
globals.gasFees = GasFees.empty();
|
|
1028
|
+
const contractsDB = new PublicContractsDB(new TXEPublicContractDataSource(this));
|
|
1029
|
+
const guardedMerkleTrees = new GuardedMerkleTreeOperations(this.baseFork);
|
|
1030
|
+
const simulator = new PublicTxSimulator(guardedMerkleTrees, contractsDB, globals, true, true);
|
|
1031
|
+
const processor = new PublicProcessor(globals, guardedMerkleTrees, contractsDB, simulator, new TestDateProvider());
|
|
1032
|
+
const constantData = new TxConstantData(blockHeader, txContext, Fr.zero(), Fr.zero());
|
|
1033
|
+
const accumulatedDataForPublic = new PrivateToPublicAccumulatedData(padArrayEnd(uniqueNoteHashes, Fr.ZERO, MAX_NOTE_HASHES_PER_TX), padArrayEnd(nullifiers, Fr.ZERO, MAX_NULLIFIERS_PER_TX), padArrayEnd(l2ToL1Messages, ScopedL2ToL1Message.empty(), MAX_L2_TO_L1_MSGS_PER_TX), padArrayEnd(taggedPrivateLogs, PrivateLog.empty(), MAX_PRIVATE_LOGS_PER_TX), padArrayEnd(contractClassLogsHashes, ScopedLogHash.empty(), MAX_CONTRACT_CLASS_LOGS_PER_TX), padArrayEnd(publicCallRequests, PublicCallRequest.empty(), MAX_ENQUEUED_CALLS_PER_TX));
|
|
1034
|
+
const inputsForPublic = new PartialPrivateTailPublicInputsForPublic(// nonrevertible
|
|
1035
|
+
PrivateToPublicAccumulatedData.empty(), // revertible
|
|
1036
|
+
// We are using revertible (app phase) because only the app-phase returns are exposed.
|
|
1037
|
+
accumulatedDataForPublic, PublicCallRequest.empty());
|
|
1038
|
+
const txData = new PrivateKernelTailCircuitPublicInputs(constantData, RollupValidationRequests.empty(), /*gasUsed=*/ new Gas(0, 0), /*feePayer=*/ AztecAddress.zero(), inputsForPublic, undefined);
|
|
1039
|
+
const tx = new Tx(txData, ClientIvcProof.empty(), [], [
|
|
1040
|
+
calldataHashedValues
|
|
1041
|
+
]);
|
|
1042
|
+
const results = await processor.process([
|
|
1043
|
+
tx
|
|
1044
|
+
]);
|
|
1045
|
+
const processedTxs = results[0];
|
|
1046
|
+
const failedTxs = results[1];
|
|
1047
|
+
if (failedTxs.length !== 0 || !processedTxs[0].revertCode.isOK()) {
|
|
1048
|
+
throw new Error('Public execution has failed');
|
|
1049
|
+
}
|
|
1050
|
+
const returnValues = results[3][0].values;
|
|
1051
|
+
let returnValuesHash;
|
|
1052
|
+
if (returnValues !== undefined) {
|
|
1053
|
+
// This is a bit of a hack to not deal with returning a slice in nr which is what normally happens.
|
|
1054
|
+
// Investigate whether it is faster to do this or return from the oracle directly.
|
|
1055
|
+
returnValuesHash = await computeVarArgsHash(returnValues);
|
|
1056
|
+
this.storeInExecutionCache(returnValues, returnValuesHash);
|
|
1057
|
+
}
|
|
1058
|
+
const fork = this.baseFork;
|
|
1059
|
+
const txEffect = TxEffect.empty();
|
|
1060
|
+
txEffect.noteHashes = processedTxs[0].txEffect.noteHashes;
|
|
1061
|
+
txEffect.nullifiers = processedTxs[0].txEffect.nullifiers;
|
|
1062
|
+
txEffect.privateLogs = taggedPrivateLogs;
|
|
1063
|
+
txEffect.publicLogs = processedTxs[0].txEffect.publicLogs;
|
|
1064
|
+
txEffect.publicDataWrites = processedTxs[0].txEffect.publicDataWrites;
|
|
1065
|
+
txEffect.txHash = new TxHash(new Fr(this.blockNumber));
|
|
1066
|
+
const body = new Body([
|
|
1067
|
+
txEffect
|
|
1068
|
+
]);
|
|
1069
|
+
const l2Block = new L2Block(makeAppendOnlyTreeSnapshot(this.blockNumber + 1), makeHeader(0, this.blockNumber, this.blockNumber), body);
|
|
1070
|
+
const l1ToL2Messages = Array(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP).fill(0).map(Fr.zero);
|
|
1071
|
+
await fork.appendLeaves(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, l1ToL2Messages);
|
|
1072
|
+
const stateReference = await fork.getStateReference();
|
|
1073
|
+
const archiveInfo = await fork.getTreeInfo(MerkleTreeId.ARCHIVE);
|
|
1074
|
+
const header = new BlockHeader(new AppendOnlyTreeSnapshot(new Fr(archiveInfo.root), Number(archiveInfo.size)), makeContentCommitment(), stateReference, globals, Fr.ZERO, Fr.ZERO);
|
|
1075
|
+
header.globalVariables.blockNumber = new Fr(this.blockNumber);
|
|
1076
|
+
l2Block.header = header;
|
|
1077
|
+
await fork.updateArchive(l2Block.header);
|
|
1078
|
+
await this.stateMachine.handleL2Block(l2Block);
|
|
1079
|
+
const txRequestHash = this.getTxRequestHash();
|
|
1080
|
+
this.setBlockNumber(this.blockNumber + 1);
|
|
1081
|
+
return {
|
|
1082
|
+
returnsHash: returnValuesHash ?? Fr.ZERO,
|
|
1083
|
+
txHash: txRequestHash
|
|
1084
|
+
};
|
|
1085
|
+
}
|
|
1001
1086
|
}
|
|
@@ -29,7 +29,7 @@ export declare class DummyP2P implements P2P {
|
|
|
29
29
|
isP2PClient(): true;
|
|
30
30
|
getTxsByHash(_txHashes: TxHash[]): Promise<Tx[]>;
|
|
31
31
|
getAttestationsForSlot(_slot: bigint, _proposalId?: string): Promise<BlockAttestation[]>;
|
|
32
|
-
|
|
32
|
+
addAttestations(_attestations: BlockAttestation[]): Promise<void>;
|
|
33
33
|
getL2BlockHash(_number: number): Promise<string | undefined>;
|
|
34
34
|
updateP2PConfig(_config: Partial<P2PConfig>): Promise<void>;
|
|
35
35
|
getL2Tips(): Promise<L2Tips>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dummy_p2p_client.d.ts","sourceRoot":"","sources":["../../src/state_machine/dummy_p2p_client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,wBAAwB,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC9F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEnD,qBAAa,QAAS,YAAW,GAAG;IAC3B,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAInC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,aAAa,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;IAI9B,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAI5C,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAIxD,iBAAiB,CAAC,SAAS,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1D,4BAA4B,CAAC,QAAQ,EAAE,wBAAwB,GAAG,IAAI;IAItE,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;IAI5D,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC;IAIzD,MAAM,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9B,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC;IAI7D,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC;IAIrD,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC;IAI7D,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IAItE,iBAAiB,IAAI,qBAAqB,CAAC,EAAE,CAAC;IAI9C,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IAIpC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,OAAO,IAAI,OAAO;IAIlB,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC;IAIlC,MAAM,IAAI,GAAG,GAAG,SAAS;IAIzB,WAAW,IAAI,IAAI;IAInB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC;IAIhD,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAIxF,
|
|
1
|
+
{"version":3,"file":"dummy_p2p_client.d.ts","sourceRoot":"","sources":["../../src/state_machine/dummy_p2p_client.ts"],"names":[],"mappings":"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"}
|
|
@@ -74,8 +74,8 @@ export class DummyP2P {
|
|
|
74
74
|
getAttestationsForSlot(_slot, _proposalId) {
|
|
75
75
|
throw new Error('DummyP2P does not implement "getAttestationForSlot"');
|
|
76
76
|
}
|
|
77
|
-
|
|
78
|
-
throw new Error('DummyP2P does not implement "
|
|
77
|
+
addAttestations(_attestations) {
|
|
78
|
+
throw new Error('DummyP2P does not implement "addAttestations"');
|
|
79
79
|
}
|
|
80
80
|
getL2BlockHash(_number) {
|
|
81
81
|
throw new Error('DummyP2P does not implement "getL2BlockHash"');
|
|
@@ -39,7 +39,7 @@ export class TXEStateMachine {
|
|
|
39
39
|
blockNumber: block.header.globalVariables.blockNumber.toBigInt(),
|
|
40
40
|
timestamp: block.header.globalVariables.blockNumber.toBigInt()
|
|
41
41
|
},
|
|
42
|
-
|
|
42
|
+
attestations: []
|
|
43
43
|
}
|
|
44
44
|
]),
|
|
45
45
|
this.syncDataProvider.setHeader(block.header)
|
|
@@ -136,10 +136,13 @@ export declare class TXEService {
|
|
|
136
136
|
fetchTaggedLogs(pendingTaggedLogArrayBaseSlot: ForeignCallSingle): Promise<{
|
|
137
137
|
values: (string | ForeignCallArray)[];
|
|
138
138
|
}>;
|
|
139
|
-
|
|
139
|
+
validateEnqueuedNotes(contractAddress: ForeignCallSingle, noteValidationRequestsArrayBaseSlot: ForeignCallSingle): Promise<{
|
|
140
140
|
values: (string | ForeignCallArray)[];
|
|
141
141
|
}>;
|
|
142
|
-
|
|
142
|
+
getPublicLogByTag(tag: ForeignCallSingle, contractAddress: ForeignCallSingle): Promise<{
|
|
143
|
+
values: (string | ForeignCallArray)[];
|
|
144
|
+
}>;
|
|
145
|
+
getPrivateLogByTag(siloedTag: ForeignCallSingle): Promise<{
|
|
143
146
|
values: (string | ForeignCallArray)[];
|
|
144
147
|
}>;
|
|
145
148
|
storeCapsule(contractAddress: ForeignCallSingle, slot: ForeignCallSingle, capsule: ForeignCallArray): Promise<{
|
|
@@ -231,5 +234,8 @@ export declare class TXEService {
|
|
|
231
234
|
simulateUtilityFunction(targetContractAddress: ForeignCallSingle, functionSelector: ForeignCallSingle, argsHash: ForeignCallSingle): Promise<{
|
|
232
235
|
values: (string | ForeignCallArray)[];
|
|
233
236
|
}>;
|
|
237
|
+
publicCallNewFlow(from: ForeignCallSingle, address: ForeignCallSingle, _length: ForeignCallSingle, calldata: ForeignCallArray, isStaticCall: ForeignCallSingle): Promise<{
|
|
238
|
+
values: (string | ForeignCallArray)[];
|
|
239
|
+
}>;
|
|
234
240
|
}
|
|
235
241
|
//# sourceMappingURL=txe_service.d.ts.map
|
|
@@ -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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"}
|
|
@@ -8,7 +8,7 @@ import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
|
8
8
|
import { computePartialAddress } from '@aztec/stdlib/contract';
|
|
9
9
|
import { SimulationError } from '@aztec/stdlib/errors';
|
|
10
10
|
import { computePublicDataTreeLeafSlot } from '@aztec/stdlib/hash';
|
|
11
|
-
import {
|
|
11
|
+
import { PrivateLogWithTxData, PublicLogWithTxData } from '@aztec/stdlib/logs';
|
|
12
12
|
import { MerkleTreeId } from '@aztec/stdlib/trees';
|
|
13
13
|
import { TXE } from '../oracle/txe_oracle.js';
|
|
14
14
|
import { addressFromSingle, arrayOfArraysToBoundedVecOfArrays, arrayToBoundedVec, bufferToU8Array, fromArray, fromSingle, fromUintArray, fromUintBoundedVec, toArray, toForeignCallResult, toSingle, toSingleOrArray } from '../util/encoding.js';
|
|
@@ -446,25 +446,40 @@ export class TXEService {
|
|
|
446
446
|
await this.typedOracle.fetchTaggedLogs(fromSingle(pendingTaggedLogArrayBaseSlot));
|
|
447
447
|
return toForeignCallResult([]);
|
|
448
448
|
}
|
|
449
|
-
async
|
|
449
|
+
async validateEnqueuedNotes(contractAddress, noteValidationRequestsArrayBaseSlot) {
|
|
450
450
|
if (!this.oraclesEnabled) {
|
|
451
451
|
throw new Error('Oracle access from the root of a TXe test are not enabled. Please use env._ to interact with the oracles.');
|
|
452
452
|
}
|
|
453
|
-
await this.typedOracle.
|
|
454
|
-
return toForeignCallResult([
|
|
455
|
-
|
|
456
|
-
|
|
453
|
+
await this.typedOracle.validateEnqueuedNotes(AztecAddress.fromField(fromSingle(contractAddress)), fromSingle(noteValidationRequestsArrayBaseSlot));
|
|
454
|
+
return toForeignCallResult([]);
|
|
455
|
+
}
|
|
456
|
+
async getPublicLogByTag(tag, contractAddress) {
|
|
457
|
+
if (!this.oraclesEnabled) {
|
|
458
|
+
throw new Error('Oracle access from the root of a TXe test are not enabled. Please use env._ to interact with the oracles.');
|
|
459
|
+
}
|
|
460
|
+
// TODO(AD): this was warning that getPublicLogByTag did not return a promise.
|
|
461
|
+
const log = await Promise.resolve(this.typedOracle.getPublicLogByTag(fromSingle(tag), AztecAddress.fromField(fromSingle(contractAddress))));
|
|
462
|
+
if (log == null) {
|
|
463
|
+
return toForeignCallResult([
|
|
464
|
+
toSingle(Fr.ZERO),
|
|
465
|
+
...PublicLogWithTxData.noirSerializationOfEmpty().map(toSingleOrArray)
|
|
466
|
+
]);
|
|
467
|
+
} else {
|
|
468
|
+
return toForeignCallResult([
|
|
469
|
+
toSingle(Fr.ONE),
|
|
470
|
+
...log.toNoirSerialization().map(toSingleOrArray)
|
|
471
|
+
]);
|
|
472
|
+
}
|
|
457
473
|
}
|
|
458
|
-
async
|
|
474
|
+
async getPrivateLogByTag(siloedTag) {
|
|
459
475
|
if (!this.oraclesEnabled) {
|
|
460
476
|
throw new Error('Oracle access from the root of a TXe test are not enabled. Please use env._ to interact with the oracles.');
|
|
461
477
|
}
|
|
462
|
-
|
|
463
|
-
const log = await Promise.resolve(this.typedOracle.getLogByTag(fromSingle(tag)));
|
|
478
|
+
const log = await this.typedOracle.getPrivateLogByTag(fromSingle(siloedTag));
|
|
464
479
|
if (log == null) {
|
|
465
480
|
return toForeignCallResult([
|
|
466
481
|
toSingle(Fr.ZERO),
|
|
467
|
-
...
|
|
482
|
+
...PrivateLogWithTxData.noirSerializationOfEmpty().map(toSingleOrArray)
|
|
468
483
|
]);
|
|
469
484
|
} else {
|
|
470
485
|
return toForeignCallResult([
|
|
@@ -766,4 +781,13 @@ export class TXEService {
|
|
|
766
781
|
toSingle(result)
|
|
767
782
|
]);
|
|
768
783
|
}
|
|
784
|
+
async publicCallNewFlow(from, address, _length, calldata, isStaticCall) {
|
|
785
|
+
const result = await this.typedOracle.publicCallNewFlow(addressFromSingle(from), addressFromSingle(address), fromArray(calldata), fromSingle(isStaticCall).toBool());
|
|
786
|
+
return toForeignCallResult([
|
|
787
|
+
toArray([
|
|
788
|
+
result.returnsHash,
|
|
789
|
+
result.txHash
|
|
790
|
+
])
|
|
791
|
+
]);
|
|
792
|
+
}
|
|
769
793
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/txe",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0-nightly.20250604",
|
|
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": "0.
|
|
61
|
-
"@aztec/archiver": "0.
|
|
62
|
-
"@aztec/aztec-node": "0.
|
|
63
|
-
"@aztec/aztec.js": "0.
|
|
64
|
-
"@aztec/bb-prover": "0.
|
|
65
|
-
"@aztec/constants": "0.
|
|
66
|
-
"@aztec/foundation": "0.
|
|
67
|
-
"@aztec/key-store": "0.
|
|
68
|
-
"@aztec/kv-store": "0.
|
|
69
|
-
"@aztec/protocol-contracts": "0.
|
|
70
|
-
"@aztec/pxe": "0.
|
|
71
|
-
"@aztec/simulator": "0.
|
|
72
|
-
"@aztec/stdlib": "0.
|
|
73
|
-
"@aztec/world-state": "0.
|
|
60
|
+
"@aztec/accounts": "1.0.0-nightly.20250604",
|
|
61
|
+
"@aztec/archiver": "1.0.0-nightly.20250604",
|
|
62
|
+
"@aztec/aztec-node": "1.0.0-nightly.20250604",
|
|
63
|
+
"@aztec/aztec.js": "1.0.0-nightly.20250604",
|
|
64
|
+
"@aztec/bb-prover": "1.0.0-nightly.20250604",
|
|
65
|
+
"@aztec/constants": "1.0.0-nightly.20250604",
|
|
66
|
+
"@aztec/foundation": "1.0.0-nightly.20250604",
|
|
67
|
+
"@aztec/key-store": "1.0.0-nightly.20250604",
|
|
68
|
+
"@aztec/kv-store": "1.0.0-nightly.20250604",
|
|
69
|
+
"@aztec/protocol-contracts": "1.0.0-nightly.20250604",
|
|
70
|
+
"@aztec/pxe": "1.0.0-nightly.20250604",
|
|
71
|
+
"@aztec/simulator": "1.0.0-nightly.20250604",
|
|
72
|
+
"@aztec/stdlib": "1.0.0-nightly.20250604",
|
|
73
|
+
"@aztec/world-state": "1.0.0-nightly.20250604",
|
|
74
74
|
"zod": "^3.23.8"
|
|
75
75
|
},
|
|
76
76
|
"devDependencies": {
|
package/src/oracle/txe_oracle.ts
CHANGED
|
@@ -52,6 +52,7 @@ import { WASMSimulator, extractCallStack, toACVMWitness, witnessMapToFields } fr
|
|
|
52
52
|
import { createTxForPublicCalls } from '@aztec/simulator/public/fixtures';
|
|
53
53
|
import {
|
|
54
54
|
ExecutionError,
|
|
55
|
+
GuardedMerkleTreeOperations,
|
|
55
56
|
PublicContractsDB,
|
|
56
57
|
PublicProcessor,
|
|
57
58
|
type PublicTxResult,
|
|
@@ -75,6 +76,7 @@ import type { ContractInstance, ContractInstanceWithAddress } from '@aztec/stdli
|
|
|
75
76
|
import { SimulationError } from '@aztec/stdlib/errors';
|
|
76
77
|
import { Gas, GasFees, GasSettings } from '@aztec/stdlib/gas';
|
|
77
78
|
import {
|
|
79
|
+
computeCalldataHash,
|
|
78
80
|
computeNoteHashNonce,
|
|
79
81
|
computePublicDataTreeLeafSlot,
|
|
80
82
|
computeUniqueNoteHash,
|
|
@@ -96,7 +98,14 @@ import {
|
|
|
96
98
|
ScopedLogHash,
|
|
97
99
|
} from '@aztec/stdlib/kernel';
|
|
98
100
|
import { deriveKeys } from '@aztec/stdlib/keys';
|
|
99
|
-
import {
|
|
101
|
+
import {
|
|
102
|
+
ContractClassLog,
|
|
103
|
+
IndexedTaggingSecret,
|
|
104
|
+
PrivateLog,
|
|
105
|
+
PrivateLogWithTxData,
|
|
106
|
+
type PublicLog,
|
|
107
|
+
PublicLogWithTxData,
|
|
108
|
+
} from '@aztec/stdlib/logs';
|
|
100
109
|
import { ScopedL2ToL1Message } from '@aztec/stdlib/messaging';
|
|
101
110
|
import type { NoteStatus } from '@aztec/stdlib/note';
|
|
102
111
|
import { ClientIvcProof } from '@aztec/stdlib/proofs';
|
|
@@ -1166,30 +1175,19 @@ export class TXE implements TypedOracle {
|
|
|
1166
1175
|
return Promise.resolve();
|
|
1167
1176
|
}
|
|
1168
1177
|
|
|
1169
|
-
public async
|
|
1178
|
+
public async validateEnqueuedNotes(
|
|
1170
1179
|
contractAddress: AztecAddress,
|
|
1171
|
-
|
|
1172
|
-
nonce: Fr,
|
|
1173
|
-
content: Fr[],
|
|
1174
|
-
noteHash: Fr,
|
|
1175
|
-
nullifier: Fr,
|
|
1176
|
-
txHash: TxHash,
|
|
1177
|
-
recipient: AztecAddress,
|
|
1180
|
+
noteValidationRequestsArrayBaseSlot: Fr,
|
|
1178
1181
|
): Promise<void> {
|
|
1179
|
-
await this.pxeOracleInterface.
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
noteHash,
|
|
1185
|
-
nullifier,
|
|
1186
|
-
txHash,
|
|
1187
|
-
recipient,
|
|
1188
|
-
);
|
|
1182
|
+
await this.pxeOracleInterface.validateEnqueuedNotes(contractAddress, noteValidationRequestsArrayBaseSlot);
|
|
1183
|
+
}
|
|
1184
|
+
|
|
1185
|
+
async getPublicLogByTag(tag: Fr, contractAddress: AztecAddress): Promise<PublicLogWithTxData | null> {
|
|
1186
|
+
return await this.pxeOracleInterface.getPublicLogByTag(tag, contractAddress);
|
|
1189
1187
|
}
|
|
1190
1188
|
|
|
1191
|
-
async
|
|
1192
|
-
return await this.pxeOracleInterface.
|
|
1189
|
+
async getPrivateLogByTag(siloedTag: Fr): Promise<PrivateLogWithTxData | null> {
|
|
1190
|
+
return await this.pxeOracleInterface.getPrivateLogByTag(siloedTag);
|
|
1193
1191
|
}
|
|
1194
1192
|
|
|
1195
1193
|
// AVM oracles
|
|
@@ -1505,8 +1503,9 @@ export class TXE implements TypedOracle {
|
|
|
1505
1503
|
globals.gasFees = GasFees.empty();
|
|
1506
1504
|
|
|
1507
1505
|
const contractsDB = new PublicContractsDB(new TXEPublicContractDataSource(this));
|
|
1508
|
-
const
|
|
1509
|
-
const
|
|
1506
|
+
const guardedMerkleTrees = new GuardedMerkleTreeOperations(this.baseFork);
|
|
1507
|
+
const simulator = new PublicTxSimulator(guardedMerkleTrees, contractsDB, globals, true, true);
|
|
1508
|
+
const processor = new PublicProcessor(globals, guardedMerkleTrees, contractsDB, simulator, new TestDateProvider());
|
|
1510
1509
|
|
|
1511
1510
|
const constantData = new TxConstantData(blockHeader, txContext, Fr.zero(), Fr.zero());
|
|
1512
1511
|
|
|
@@ -1617,4 +1616,152 @@ export class TXE implements TypedOracle {
|
|
|
1617
1616
|
txHash: txRequestHash,
|
|
1618
1617
|
};
|
|
1619
1618
|
}
|
|
1619
|
+
|
|
1620
|
+
async publicCallNewFlow(
|
|
1621
|
+
from: AztecAddress,
|
|
1622
|
+
targetContractAddress: AztecAddress,
|
|
1623
|
+
calldata: Fr[],
|
|
1624
|
+
isStaticCall: boolean,
|
|
1625
|
+
) {
|
|
1626
|
+
this.logger.verbose(
|
|
1627
|
+
`Executing public function ${await this.getDebugFunctionName(
|
|
1628
|
+
targetContractAddress,
|
|
1629
|
+
FunctionSelector.fromField(calldata[0]),
|
|
1630
|
+
)}@${targetContractAddress} isStaticCall=${isStaticCall}`,
|
|
1631
|
+
);
|
|
1632
|
+
|
|
1633
|
+
const gasLimits = new Gas(DEFAULT_GAS_LIMIT, MAX_L2_GAS_PER_TX_PUBLIC_PORTION);
|
|
1634
|
+
|
|
1635
|
+
const teardownGasLimits = new Gas(DEFAULT_TEARDOWN_GAS_LIMIT, MAX_L2_GAS_PER_TX_PUBLIC_PORTION);
|
|
1636
|
+
|
|
1637
|
+
const gasSettings = new GasSettings(gasLimits, teardownGasLimits, GasFees.empty(), GasFees.empty());
|
|
1638
|
+
|
|
1639
|
+
const txContext = new TxContext(this.CHAIN_ID, this.ROLLUP_VERSION, gasSettings);
|
|
1640
|
+
|
|
1641
|
+
const blockHeader = await this.pxeOracleInterface.getBlockHeader();
|
|
1642
|
+
|
|
1643
|
+
const uniqueNoteHashes: Fr[] = [];
|
|
1644
|
+
const taggedPrivateLogs: PrivateLog[] = [];
|
|
1645
|
+
const nullifiers: Fr[] = [this.getTxRequestHash()];
|
|
1646
|
+
const l2ToL1Messages: ScopedL2ToL1Message[] = [];
|
|
1647
|
+
const contractClassLogsHashes: ScopedLogHash[] = [];
|
|
1648
|
+
|
|
1649
|
+
const calldataHash = await computeCalldataHash(calldata);
|
|
1650
|
+
|
|
1651
|
+
const calldataHashedValues = new HashedValues(calldata, calldataHash);
|
|
1652
|
+
|
|
1653
|
+
const publicCallRequest = new PublicCallRequest(from, targetContractAddress, isStaticCall, calldataHash);
|
|
1654
|
+
const publicCallRequests: PublicCallRequest[] = [publicCallRequest];
|
|
1655
|
+
|
|
1656
|
+
const globals = makeGlobalVariables();
|
|
1657
|
+
globals.blockNumber = new Fr(this.blockNumber);
|
|
1658
|
+
globals.gasFees = GasFees.empty();
|
|
1659
|
+
|
|
1660
|
+
const contractsDB = new PublicContractsDB(new TXEPublicContractDataSource(this));
|
|
1661
|
+
const guardedMerkleTrees = new GuardedMerkleTreeOperations(this.baseFork);
|
|
1662
|
+
const simulator = new PublicTxSimulator(guardedMerkleTrees, contractsDB, globals, true, true);
|
|
1663
|
+
const processor = new PublicProcessor(globals, guardedMerkleTrees, contractsDB, simulator, new TestDateProvider());
|
|
1664
|
+
|
|
1665
|
+
const constantData = new TxConstantData(blockHeader, txContext, Fr.zero(), Fr.zero());
|
|
1666
|
+
|
|
1667
|
+
const accumulatedDataForPublic = new PrivateToPublicAccumulatedData(
|
|
1668
|
+
padArrayEnd(uniqueNoteHashes, Fr.ZERO, MAX_NOTE_HASHES_PER_TX),
|
|
1669
|
+
padArrayEnd(nullifiers, Fr.ZERO, MAX_NULLIFIERS_PER_TX),
|
|
1670
|
+
padArrayEnd(l2ToL1Messages, ScopedL2ToL1Message.empty(), MAX_L2_TO_L1_MSGS_PER_TX),
|
|
1671
|
+
padArrayEnd(taggedPrivateLogs, PrivateLog.empty(), MAX_PRIVATE_LOGS_PER_TX),
|
|
1672
|
+
padArrayEnd(contractClassLogsHashes, ScopedLogHash.empty(), MAX_CONTRACT_CLASS_LOGS_PER_TX),
|
|
1673
|
+
padArrayEnd(publicCallRequests, PublicCallRequest.empty(), MAX_ENQUEUED_CALLS_PER_TX),
|
|
1674
|
+
);
|
|
1675
|
+
|
|
1676
|
+
const inputsForPublic = new PartialPrivateTailPublicInputsForPublic(
|
|
1677
|
+
// nonrevertible
|
|
1678
|
+
PrivateToPublicAccumulatedData.empty(),
|
|
1679
|
+
// revertible
|
|
1680
|
+
// We are using revertible (app phase) because only the app-phase returns are exposed.
|
|
1681
|
+
accumulatedDataForPublic,
|
|
1682
|
+
PublicCallRequest.empty(),
|
|
1683
|
+
);
|
|
1684
|
+
|
|
1685
|
+
const txData = new PrivateKernelTailCircuitPublicInputs(
|
|
1686
|
+
constantData,
|
|
1687
|
+
RollupValidationRequests.empty(),
|
|
1688
|
+
/*gasUsed=*/ new Gas(0, 0),
|
|
1689
|
+
/*feePayer=*/ AztecAddress.zero(),
|
|
1690
|
+
inputsForPublic,
|
|
1691
|
+
undefined,
|
|
1692
|
+
);
|
|
1693
|
+
|
|
1694
|
+
const tx = new Tx(txData, ClientIvcProof.empty(), [], [calldataHashedValues]);
|
|
1695
|
+
|
|
1696
|
+
const results = await processor.process([tx]);
|
|
1697
|
+
|
|
1698
|
+
const processedTxs = results[0];
|
|
1699
|
+
const failedTxs = results[1];
|
|
1700
|
+
|
|
1701
|
+
if (failedTxs.length !== 0 || !processedTxs[0].revertCode.isOK()) {
|
|
1702
|
+
throw new Error('Public execution has failed');
|
|
1703
|
+
}
|
|
1704
|
+
|
|
1705
|
+
const returnValues = results[3][0].values;
|
|
1706
|
+
let returnValuesHash;
|
|
1707
|
+
|
|
1708
|
+
if (returnValues !== undefined) {
|
|
1709
|
+
// This is a bit of a hack to not deal with returning a slice in nr which is what normally happens.
|
|
1710
|
+
// Investigate whether it is faster to do this or return from the oracle directly.
|
|
1711
|
+
returnValuesHash = await computeVarArgsHash(returnValues);
|
|
1712
|
+
this.storeInExecutionCache(returnValues, returnValuesHash);
|
|
1713
|
+
}
|
|
1714
|
+
|
|
1715
|
+
const fork = this.baseFork;
|
|
1716
|
+
|
|
1717
|
+
const txEffect = TxEffect.empty();
|
|
1718
|
+
|
|
1719
|
+
txEffect.noteHashes = processedTxs[0]!.txEffect.noteHashes;
|
|
1720
|
+
txEffect.nullifiers = processedTxs[0]!.txEffect.nullifiers;
|
|
1721
|
+
txEffect.privateLogs = taggedPrivateLogs;
|
|
1722
|
+
txEffect.publicLogs = processedTxs[0]!.txEffect.publicLogs;
|
|
1723
|
+
txEffect.publicDataWrites = processedTxs[0]!.txEffect.publicDataWrites;
|
|
1724
|
+
|
|
1725
|
+
txEffect.txHash = new TxHash(new Fr(this.blockNumber));
|
|
1726
|
+
|
|
1727
|
+
const body = new Body([txEffect]);
|
|
1728
|
+
|
|
1729
|
+
const l2Block = new L2Block(
|
|
1730
|
+
makeAppendOnlyTreeSnapshot(this.blockNumber + 1),
|
|
1731
|
+
makeHeader(0, this.blockNumber, this.blockNumber),
|
|
1732
|
+
body,
|
|
1733
|
+
);
|
|
1734
|
+
|
|
1735
|
+
const l1ToL2Messages = Array(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP).fill(0).map(Fr.zero);
|
|
1736
|
+
await fork.appendLeaves(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, l1ToL2Messages);
|
|
1737
|
+
|
|
1738
|
+
const stateReference = await fork.getStateReference();
|
|
1739
|
+
const archiveInfo = await fork.getTreeInfo(MerkleTreeId.ARCHIVE);
|
|
1740
|
+
|
|
1741
|
+
const header = new BlockHeader(
|
|
1742
|
+
new AppendOnlyTreeSnapshot(new Fr(archiveInfo.root), Number(archiveInfo.size)),
|
|
1743
|
+
makeContentCommitment(),
|
|
1744
|
+
stateReference,
|
|
1745
|
+
globals,
|
|
1746
|
+
Fr.ZERO,
|
|
1747
|
+
Fr.ZERO,
|
|
1748
|
+
);
|
|
1749
|
+
|
|
1750
|
+
header.globalVariables.blockNumber = new Fr(this.blockNumber);
|
|
1751
|
+
|
|
1752
|
+
l2Block.header = header;
|
|
1753
|
+
|
|
1754
|
+
await fork.updateArchive(l2Block.header);
|
|
1755
|
+
|
|
1756
|
+
await this.stateMachine.handleL2Block(l2Block);
|
|
1757
|
+
|
|
1758
|
+
const txRequestHash = this.getTxRequestHash();
|
|
1759
|
+
|
|
1760
|
+
this.setBlockNumber(this.blockNumber + 1);
|
|
1761
|
+
|
|
1762
|
+
return {
|
|
1763
|
+
returnsHash: returnValuesHash ?? Fr.ZERO,
|
|
1764
|
+
txHash: txRequestHash,
|
|
1765
|
+
};
|
|
1766
|
+
}
|
|
1620
1767
|
}
|
|
@@ -105,8 +105,8 @@ export class DummyP2P implements P2P {
|
|
|
105
105
|
throw new Error('DummyP2P does not implement "getAttestationForSlot"');
|
|
106
106
|
}
|
|
107
107
|
|
|
108
|
-
public
|
|
109
|
-
throw new Error('DummyP2P does not implement "
|
|
108
|
+
public addAttestations(_attestations: BlockAttestation[]): Promise<void> {
|
|
109
|
+
throw new Error('DummyP2P does not implement "addAttestations"');
|
|
110
110
|
}
|
|
111
111
|
|
|
112
112
|
public getL2BlockHash(_number: number): Promise<string | undefined> {
|
|
@@ -62,7 +62,7 @@ export class TXEStateMachine {
|
|
|
62
62
|
blockNumber: block.header.globalVariables.blockNumber.toBigInt(),
|
|
63
63
|
timestamp: block.header.globalVariables.blockNumber.toBigInt(),
|
|
64
64
|
},
|
|
65
|
-
|
|
65
|
+
attestations: [],
|
|
66
66
|
},
|
|
67
67
|
]),
|
|
68
68
|
this.syncDataProvider.setHeader(block.header),
|
|
@@ -11,7 +11,7 @@ import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
|
11
11
|
import { computePartialAddress } from '@aztec/stdlib/contract';
|
|
12
12
|
import { SimulationError } from '@aztec/stdlib/errors';
|
|
13
13
|
import { computePublicDataTreeLeafSlot } from '@aztec/stdlib/hash';
|
|
14
|
-
import {
|
|
14
|
+
import { PrivateLogWithTxData, PublicLogWithTxData } from '@aztec/stdlib/logs';
|
|
15
15
|
import { MerkleTreeId } from '@aztec/stdlib/trees';
|
|
16
16
|
|
|
17
17
|
import { TXE } from '../oracle/txe_oracle.js';
|
|
@@ -700,16 +700,9 @@ export class TXEService {
|
|
|
700
700
|
return toForeignCallResult([]);
|
|
701
701
|
}
|
|
702
702
|
|
|
703
|
-
public async
|
|
703
|
+
public async validateEnqueuedNotes(
|
|
704
704
|
contractAddress: ForeignCallSingle,
|
|
705
|
-
|
|
706
|
-
nonce: ForeignCallSingle,
|
|
707
|
-
content: ForeignCallArray,
|
|
708
|
-
contentLength: ForeignCallSingle,
|
|
709
|
-
noteHash: ForeignCallSingle,
|
|
710
|
-
nullifier: ForeignCallSingle,
|
|
711
|
-
txHash: ForeignCallSingle,
|
|
712
|
-
recipient: ForeignCallSingle,
|
|
705
|
+
noteValidationRequestsArrayBaseSlot: ForeignCallSingle,
|
|
713
706
|
) {
|
|
714
707
|
if (!this.oraclesEnabled) {
|
|
715
708
|
throw new Error(
|
|
@@ -717,32 +710,49 @@ export class TXEService {
|
|
|
717
710
|
);
|
|
718
711
|
}
|
|
719
712
|
|
|
720
|
-
await this.typedOracle.
|
|
713
|
+
await this.typedOracle.validateEnqueuedNotes(
|
|
721
714
|
AztecAddress.fromField(fromSingle(contractAddress)),
|
|
722
|
-
fromSingle(
|
|
723
|
-
fromSingle(nonce),
|
|
724
|
-
fromArray(content.slice(0, Number(BigInt(contentLength)))),
|
|
725
|
-
fromSingle(noteHash),
|
|
726
|
-
fromSingle(nullifier),
|
|
727
|
-
new TxHash(fromSingle(txHash)),
|
|
728
|
-
AztecAddress.fromField(fromSingle(recipient)),
|
|
715
|
+
fromSingle(noteValidationRequestsArrayBaseSlot),
|
|
729
716
|
);
|
|
730
717
|
|
|
731
|
-
return toForeignCallResult([
|
|
718
|
+
return toForeignCallResult([]);
|
|
732
719
|
}
|
|
733
720
|
|
|
734
|
-
async
|
|
721
|
+
async getPublicLogByTag(tag: ForeignCallSingle, contractAddress: ForeignCallSingle) {
|
|
735
722
|
if (!this.oraclesEnabled) {
|
|
736
723
|
throw new Error(
|
|
737
724
|
'Oracle access from the root of a TXe test are not enabled. Please use env._ to interact with the oracles.',
|
|
738
725
|
);
|
|
739
726
|
}
|
|
740
727
|
|
|
741
|
-
// TODO(AD): this was warning that
|
|
742
|
-
const log = await Promise.resolve(
|
|
728
|
+
// TODO(AD): this was warning that getPublicLogByTag did not return a promise.
|
|
729
|
+
const log = await Promise.resolve(
|
|
730
|
+
this.typedOracle.getPublicLogByTag(fromSingle(tag), AztecAddress.fromField(fromSingle(contractAddress))),
|
|
731
|
+
);
|
|
732
|
+
|
|
733
|
+
if (log == null) {
|
|
734
|
+
return toForeignCallResult([
|
|
735
|
+
toSingle(Fr.ZERO),
|
|
736
|
+
...PublicLogWithTxData.noirSerializationOfEmpty().map(toSingleOrArray),
|
|
737
|
+
]);
|
|
738
|
+
} else {
|
|
739
|
+
return toForeignCallResult([toSingle(Fr.ONE), ...log.toNoirSerialization().map(toSingleOrArray)]);
|
|
740
|
+
}
|
|
741
|
+
}
|
|
742
|
+
|
|
743
|
+
async getPrivateLogByTag(siloedTag: ForeignCallSingle) {
|
|
744
|
+
if (!this.oraclesEnabled) {
|
|
745
|
+
throw new Error(
|
|
746
|
+
'Oracle access from the root of a TXe test are not enabled. Please use env._ to interact with the oracles.',
|
|
747
|
+
);
|
|
748
|
+
}
|
|
743
749
|
|
|
750
|
+
const log = await this.typedOracle.getPrivateLogByTag(fromSingle(siloedTag));
|
|
744
751
|
if (log == null) {
|
|
745
|
-
return toForeignCallResult([
|
|
752
|
+
return toForeignCallResult([
|
|
753
|
+
toSingle(Fr.ZERO),
|
|
754
|
+
...PrivateLogWithTxData.noirSerializationOfEmpty().map(toSingleOrArray),
|
|
755
|
+
]);
|
|
746
756
|
} else {
|
|
747
757
|
return toForeignCallResult([toSingle(Fr.ONE), ...log.toNoirSerialization().map(toSingleOrArray)]);
|
|
748
758
|
}
|
|
@@ -1222,4 +1232,21 @@ export class TXEService {
|
|
|
1222
1232
|
|
|
1223
1233
|
return toForeignCallResult([toSingle(result)]);
|
|
1224
1234
|
}
|
|
1235
|
+
|
|
1236
|
+
async publicCallNewFlow(
|
|
1237
|
+
from: ForeignCallSingle,
|
|
1238
|
+
address: ForeignCallSingle,
|
|
1239
|
+
_length: ForeignCallSingle,
|
|
1240
|
+
calldata: ForeignCallArray,
|
|
1241
|
+
isStaticCall: ForeignCallSingle,
|
|
1242
|
+
) {
|
|
1243
|
+
const result = await (this.typedOracle as TXE).publicCallNewFlow(
|
|
1244
|
+
addressFromSingle(from),
|
|
1245
|
+
addressFromSingle(address),
|
|
1246
|
+
fromArray(calldata),
|
|
1247
|
+
fromSingle(isStaticCall).toBool(),
|
|
1248
|
+
);
|
|
1249
|
+
|
|
1250
|
+
return toForeignCallResult([toArray([result.returnsHash, result.txHash])]);
|
|
1251
|
+
}
|
|
1225
1252
|
}
|