@aztec/txe 3.0.0-nightly.20251221 → 3.0.0-nightly.20251223
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_top_level_context.d.ts +8 -5
- package/dest/oracle/txe_oracle_top_level_context.d.ts.map +1 -1
- package/dest/oracle/txe_oracle_top_level_context.js +15 -9
- package/dest/state_machine/global_variable_builder.d.ts +3 -2
- package/dest/state_machine/global_variable_builder.d.ts.map +1 -1
- package/dest/state_machine/global_variable_builder.js +12 -0
- package/dest/txe_session.d.ts +8 -5
- package/dest/txe_session.d.ts.map +1 -1
- package/dest/txe_session.js +19 -14
- package/package.json +15 -15
- package/src/oracle/txe_oracle_top_level_context.ts +40 -7
- package/src/state_machine/global_variable_builder.ts +18 -1
- package/src/txe_session.ts +51 -26
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
2
2
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import type { KeyStore } from '@aztec/key-store';
|
|
4
|
-
import { AddressDataProvider,
|
|
4
|
+
import { AddressDataProvider, CapsuleDataProvider, NoteDataProvider, PrivateEventDataProvider, RecipientTaggingDataProvider, SenderTaggingDataProvider } from '@aztec/pxe/server';
|
|
5
5
|
import { type IMiscOracle } from '@aztec/pxe/simulator';
|
|
6
6
|
import { type ContractArtifact, EventSelector, FunctionSelector } from '@aztec/stdlib/abi';
|
|
7
7
|
import { AuthWitness } from '@aztec/stdlib/auth-witness';
|
|
@@ -16,11 +16,14 @@ import type { ITxeExecutionOracle } from './interfaces.js';
|
|
|
16
16
|
export declare class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecutionOracle {
|
|
17
17
|
private stateMachine;
|
|
18
18
|
private contractDataProvider;
|
|
19
|
+
private noteDataProvider;
|
|
19
20
|
private keyStore;
|
|
20
21
|
private addressDataProvider;
|
|
21
|
-
private privateEventDataProvider;
|
|
22
22
|
private accountDataProvider;
|
|
23
|
-
private
|
|
23
|
+
private senderTaggingDataProvider;
|
|
24
|
+
private recipientTaggingDataProvider;
|
|
25
|
+
private capsuleDataProvider;
|
|
26
|
+
private privateEventDataProvider;
|
|
24
27
|
private nextBlockTimestamp;
|
|
25
28
|
private version;
|
|
26
29
|
private chainId;
|
|
@@ -28,7 +31,7 @@ export declare class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecut
|
|
|
28
31
|
isMisc: true;
|
|
29
32
|
isTxe: true;
|
|
30
33
|
private logger;
|
|
31
|
-
constructor(stateMachine: TXEStateMachine, contractDataProvider: TXEContractDataProvider, keyStore: KeyStore, addressDataProvider: AddressDataProvider,
|
|
34
|
+
constructor(stateMachine: TXEStateMachine, contractDataProvider: TXEContractDataProvider, noteDataProvider: NoteDataProvider, keyStore: KeyStore, addressDataProvider: AddressDataProvider, accountDataProvider: TXEAccountDataProvider, senderTaggingDataProvider: SenderTaggingDataProvider, recipientTaggingDataProvider: RecipientTaggingDataProvider, capsuleDataProvider: CapsuleDataProvider, privateEventDataProvider: PrivateEventDataProvider, nextBlockTimestamp: bigint, version: Fr, chainId: Fr, authwits: Map<string, AuthWitness>);
|
|
32
35
|
utilityAssertCompatibleOracleVersion(version: number): void;
|
|
33
36
|
utilityGetRandomField(): Fr;
|
|
34
37
|
utilityDebugLog(level: number, message: string, fields: Fr[]): void;
|
|
@@ -57,4 +60,4 @@ export declare class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecut
|
|
|
57
60
|
close(): [bigint, Map<string, AuthWitness>];
|
|
58
61
|
private getLastBlockNumber;
|
|
59
62
|
}
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhlX29yYWNsZV90b3BfbGV2ZWxfY29udGV4dC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL29yYWNsZS90eGVfb3JhY2xlX3RvcF9sZXZlbF9jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU5RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHcEQsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBRWhCLHdCQUF3QixFQUN4Qiw0QkFBNEIsRUFDNUIseUJBQXlCLEVBRTFCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUlMLEtBQUssV0FBVyxFQU1qQixNQUFNLHNCQUFzQixDQUFDO0FBZ0I5QixPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQWdCLE1BQU0sbUJBQW1CLENBQUM7QUFDekcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXpELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsS0FBSywyQkFBMkIsRUFBeUIsTUFBTSx3QkFBd0IsQ0FBQztBQVlqRyxPQUFPLEVBU0wsTUFBTSxFQUVQLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHbEQsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFakUsT0FBTyxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNuRixPQUFPLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFD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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"txe_oracle_top_level_context.d.ts","sourceRoot":"","sources":["../../src/oracle/txe_oracle_top_level_context.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAGpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EACL,mBAAmB,
|
|
1
|
+
{"version":3,"file":"txe_oracle_top_level_context.d.ts","sourceRoot":"","sources":["../../src/oracle/txe_oracle_top_level_context.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,11 +27,14 @@ import { getSingleTxBlockRequestHash, insertTxEffectIntoWorldTrees, makeTXEBlock
|
|
|
27
27
|
export class TXEOracleTopLevelContext {
|
|
28
28
|
stateMachine;
|
|
29
29
|
contractDataProvider;
|
|
30
|
+
noteDataProvider;
|
|
30
31
|
keyStore;
|
|
31
32
|
addressDataProvider;
|
|
32
|
-
privateEventDataProvider;
|
|
33
33
|
accountDataProvider;
|
|
34
|
-
|
|
34
|
+
senderTaggingDataProvider;
|
|
35
|
+
recipientTaggingDataProvider;
|
|
36
|
+
capsuleDataProvider;
|
|
37
|
+
privateEventDataProvider;
|
|
35
38
|
nextBlockTimestamp;
|
|
36
39
|
version;
|
|
37
40
|
chainId;
|
|
@@ -39,14 +42,17 @@ export class TXEOracleTopLevelContext {
|
|
|
39
42
|
isMisc;
|
|
40
43
|
isTxe;
|
|
41
44
|
logger;
|
|
42
|
-
constructor(stateMachine, contractDataProvider, keyStore, addressDataProvider,
|
|
45
|
+
constructor(stateMachine, contractDataProvider, noteDataProvider, keyStore, addressDataProvider, accountDataProvider, senderTaggingDataProvider, recipientTaggingDataProvider, capsuleDataProvider, privateEventDataProvider, nextBlockTimestamp, version, chainId, authwits){
|
|
43
46
|
this.stateMachine = stateMachine;
|
|
44
47
|
this.contractDataProvider = contractDataProvider;
|
|
48
|
+
this.noteDataProvider = noteDataProvider;
|
|
45
49
|
this.keyStore = keyStore;
|
|
46
50
|
this.addressDataProvider = addressDataProvider;
|
|
47
|
-
this.privateEventDataProvider = privateEventDataProvider;
|
|
48
51
|
this.accountDataProvider = accountDataProvider;
|
|
49
|
-
this.
|
|
52
|
+
this.senderTaggingDataProvider = senderTaggingDataProvider;
|
|
53
|
+
this.recipientTaggingDataProvider = recipientTaggingDataProvider;
|
|
54
|
+
this.capsuleDataProvider = capsuleDataProvider;
|
|
55
|
+
this.privateEventDataProvider = privateEventDataProvider;
|
|
50
56
|
this.nextBlockTimestamp = nextBlockTimestamp;
|
|
51
57
|
this.version = version;
|
|
52
58
|
this.chainId = chainId;
|
|
@@ -148,7 +154,7 @@ export class TXEOracleTopLevelContext {
|
|
|
148
154
|
return completeAddress;
|
|
149
155
|
}
|
|
150
156
|
async txeCreateAccount(secret) {
|
|
151
|
-
// This is a
|
|
157
|
+
// This is a foot gun !
|
|
152
158
|
const completeAddress = await this.keyStore.addAccount(secret, secret);
|
|
153
159
|
await this.accountDataProvider.setAccount(completeAddress.address, completeAddress);
|
|
154
160
|
await this.addressDataProvider.addCompleteAddress(completeAddress);
|
|
@@ -208,7 +214,7 @@ export class TXEOracleTopLevelContext {
|
|
|
208
214
|
const simulator = new WASMSimulator();
|
|
209
215
|
const privateExecutionOracle = new PrivateExecutionOracle(argsHash, txContext, callContext, /** Header of a block whose state is used during private execution (not the block the transaction is included in). */ blockHeader, /** List of transient auth witnesses to be used during this simulation */ Array.from(this.authwits.values()), /** List of transient auth witnesses to be used during this simulation */ [], HashedValuesCache.create([
|
|
210
216
|
new HashedValues(args, argsHash)
|
|
211
|
-
]), noteCache, taggingIndexCache, this.
|
|
217
|
+
]), noteCache, taggingIndexCache, this.contractDataProvider, this.noteDataProvider, this.keyStore, this.addressDataProvider, this.stateMachine.node, this.stateMachine.anchorBlockDataProvider, this.senderTaggingDataProvider, this.recipientTaggingDataProvider, this.capsuleDataProvider, this.privateEventDataProvider, 0, 1, undefined, undefined, /**
|
|
212
218
|
* In TXE, the typical transaction entrypoint is skipped, so we need to simulate the actions that such a
|
|
213
219
|
* contract would perform, including setting senderForTags.
|
|
214
220
|
*/ from, simulator);
|
|
@@ -407,7 +413,7 @@ export class TXEOracleTopLevelContext {
|
|
|
407
413
|
selector: functionSelector,
|
|
408
414
|
to: targetContractAddress
|
|
409
415
|
};
|
|
410
|
-
const entryPointArtifact = await this.
|
|
416
|
+
const entryPointArtifact = await this.contractDataProvider.getFunctionArtifactWithDebugMetadata(call.to, call.selector);
|
|
411
417
|
if (entryPointArtifact.functionType !== FunctionType.UTILITY) {
|
|
412
418
|
throw new Error(`Cannot run ${entryPointArtifact.functionType} function as utility`);
|
|
413
419
|
}
|
|
@@ -417,7 +423,7 @@ export class TXEOracleTopLevelContext {
|
|
|
417
423
|
});
|
|
418
424
|
try {
|
|
419
425
|
const anchorBlockHeader = await this.stateMachine.anchorBlockDataProvider.getBlockHeader();
|
|
420
|
-
const oracle = new UtilityExecutionOracle(call.to, [], [], anchorBlockHeader, this.
|
|
426
|
+
const oracle = new UtilityExecutionOracle(call.to, [], [], anchorBlockHeader, this.contractDataProvider, this.noteDataProvider, this.keyStore, this.addressDataProvider, this.stateMachine.node, this.stateMachine.anchorBlockDataProvider, this.senderTaggingDataProvider, this.recipientTaggingDataProvider, this.capsuleDataProvider, this.privateEventDataProvider);
|
|
421
427
|
const acirExecutionResult = await new WASMSimulator().executeUserCircuit(toACVMWitness(0, args), entryPointArtifact, new Oracle(oracle).toACIRCallback()).catch((err)=>{
|
|
422
428
|
err.message = resolveAssertionMessageFromError(err, entryPointArtifact);
|
|
423
429
|
throw new ExecutionError(err.message, {
|
|
@@ -2,9 +2,10 @@ import { BlockNumber, type SlotNumber } from '@aztec/foundation/branded-types';
|
|
|
2
2
|
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
3
3
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
4
4
|
import { GasFees } from '@aztec/stdlib/gas';
|
|
5
|
-
import { type GlobalVariableBuilder, GlobalVariables } from '@aztec/stdlib/tx';
|
|
5
|
+
import { type CheckpointGlobalVariables, type GlobalVariableBuilder, GlobalVariables } from '@aztec/stdlib/tx';
|
|
6
6
|
export declare class TXEGlobalVariablesBuilder implements GlobalVariableBuilder {
|
|
7
7
|
getCurrentBaseFees(): Promise<GasFees>;
|
|
8
8
|
buildGlobalVariables(_blockNumber: BlockNumber, _coinbase: EthAddress, _feeRecipient: AztecAddress, _slotNumber?: SlotNumber): Promise<GlobalVariables>;
|
|
9
|
+
buildCheckpointGlobalVariables(_coinbase: EthAddress, _feeRecipient: AztecAddress, _slotNumber: SlotNumber): Promise<CheckpointGlobalVariables>;
|
|
9
10
|
}
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsX3ZhcmlhYmxlX2J1aWxkZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdGF0ZV9tYWNoaW5lL2dsb2JhbF92YXJpYWJsZV9idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsS0FBSyxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFNUMsT0FBTyxFQUFFLEtBQUsseUJBQXlCLEVBQUUsS0FBSyxxQkFBcUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUvRyxxQkFBYSx5QkFBMEIsWUFBVyxxQkFBcUI7SUFDOUQsa0JBQWtCLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUU1QztJQUVNLG9CQUFvQixDQUN6QixZQUFZLEVBQUUsV0FBVyxFQUN6QixTQUFTLEVBQUUsVUFBVSxFQUNyQixhQUFhLEVBQUUsWUFBWSxFQUMzQixXQUFXLENBQUMsRUFBRSxVQUFVLEdBQ3ZCLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FFMUI7SUFFTSw4QkFBOEIsQ0FDbkMsU0FBUyxFQUFFLFVBQVUsRUFDckIsYUFBYSxFQUFFLFlBQVksRUFDM0IsV0FBVyxFQUFFLFVBQVUsR0FDdEIsT0FBTyxDQUFDLHlCQUF5QixDQUFDLENBV3BDO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global_variable_builder.d.ts","sourceRoot":"","sources":["../../src/state_machine/global_variable_builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAE,KAAK,qBAAqB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAE/
|
|
1
|
+
{"version":3,"file":"global_variable_builder.d.ts","sourceRoot":"","sources":["../../src/state_machine/global_variable_builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAE,KAAK,yBAAyB,EAAE,KAAK,qBAAqB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAE/G,qBAAa,yBAA0B,YAAW,qBAAqB;IAC9D,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC,CAE5C;IAEM,oBAAoB,CACzB,YAAY,EAAE,WAAW,EACzB,SAAS,EAAE,UAAU,EACrB,aAAa,EAAE,YAAY,EAC3B,WAAW,CAAC,EAAE,UAAU,GACvB,OAAO,CAAC,eAAe,CAAC,CAE1B;IAEM,8BAA8B,CACnC,SAAS,EAAE,UAAU,EACrB,aAAa,EAAE,YAAY,EAC3B,WAAW,EAAE,UAAU,GACtB,OAAO,CAAC,yBAAyB,CAAC,CAWpC;CACF"}
|
|
@@ -7,4 +7,16 @@ export class TXEGlobalVariablesBuilder {
|
|
|
7
7
|
buildGlobalVariables(_blockNumber, _coinbase, _feeRecipient, _slotNumber) {
|
|
8
8
|
return Promise.resolve(makeGlobalVariables());
|
|
9
9
|
}
|
|
10
|
+
buildCheckpointGlobalVariables(_coinbase, _feeRecipient, _slotNumber) {
|
|
11
|
+
const vars = makeGlobalVariables();
|
|
12
|
+
return Promise.resolve({
|
|
13
|
+
chainId: vars.chainId,
|
|
14
|
+
version: vars.version,
|
|
15
|
+
slotNumber: vars.slotNumber,
|
|
16
|
+
timestamp: vars.timestamp,
|
|
17
|
+
coinbase: vars.coinbase,
|
|
18
|
+
feeRecipient: vars.feeRecipient,
|
|
19
|
+
gasFees: vars.gasFees
|
|
20
|
+
});
|
|
21
|
+
}
|
|
10
22
|
}
|
package/dest/txe_session.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { Fr } from '@aztec/foundation/curves/bn254';
|
|
|
3
3
|
import { type Logger } from '@aztec/foundation/log';
|
|
4
4
|
import { KeyStore } from '@aztec/key-store';
|
|
5
5
|
import type { ProtocolContract } from '@aztec/protocol-contracts';
|
|
6
|
-
import { AddressDataProvider,
|
|
6
|
+
import { AddressDataProvider, CapsuleDataProvider, NoteDataProvider, PrivateEventDataProvider, RecipientTaggingDataProvider, SenderTaggingDataProvider } from '@aztec/pxe/server';
|
|
7
7
|
import { type IPrivateExecutionOracle, type IUtilityExecutionOracle } from '@aztec/pxe/simulator';
|
|
8
8
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
9
9
|
import { PrivateContextInputs } from '@aztec/stdlib/kernel';
|
|
@@ -37,17 +37,20 @@ export declare class TXESession implements TXESessionStateHandler {
|
|
|
37
37
|
private stateMachine;
|
|
38
38
|
private oracleHandler;
|
|
39
39
|
private contractDataProvider;
|
|
40
|
+
private noteDataProvider;
|
|
40
41
|
private keyStore;
|
|
41
42
|
private addressDataProvider;
|
|
42
|
-
private privateEventDataProvider;
|
|
43
43
|
private accountDataProvider;
|
|
44
|
+
private senderTaggingDataProvider;
|
|
45
|
+
private recipientTaggingDataProvider;
|
|
46
|
+
private capsuleDataProvider;
|
|
47
|
+
private privateEventDataProvider;
|
|
44
48
|
private chainId;
|
|
45
49
|
private version;
|
|
46
50
|
private nextBlockTimestamp;
|
|
47
|
-
private pxeOracleInterface;
|
|
48
51
|
private state;
|
|
49
52
|
private authwits;
|
|
50
|
-
constructor(logger: Logger, stateMachine: TXEStateMachine, oracleHandler: IUtilityExecutionOracle | IPrivateExecutionOracle | IAvmExecutionOracle | ITxeExecutionOracle, contractDataProvider: TXEContractDataProvider, keyStore: KeyStore, addressDataProvider: AddressDataProvider,
|
|
53
|
+
constructor(logger: Logger, stateMachine: TXEStateMachine, oracleHandler: IUtilityExecutionOracle | IPrivateExecutionOracle | IAvmExecutionOracle | ITxeExecutionOracle, contractDataProvider: TXEContractDataProvider, noteDataProvider: NoteDataProvider, keyStore: KeyStore, addressDataProvider: AddressDataProvider, accountDataProvider: TXEAccountDataProvider, senderTaggingDataProvider: SenderTaggingDataProvider, recipientTaggingDataProvider: RecipientTaggingDataProvider, capsuleDataProvider: CapsuleDataProvider, privateEventDataProvider: PrivateEventDataProvider, chainId: Fr, version: Fr, nextBlockTimestamp: bigint);
|
|
51
54
|
static init(protocolContracts: ProtocolContract[]): Promise<TXESession>;
|
|
52
55
|
/**
|
|
53
56
|
* Processes an oracle function invoked by the Noir test associated to this session.
|
|
@@ -66,4 +69,4 @@ export declare class TXESession implements TXESessionStateHandler {
|
|
|
66
69
|
private exitUtilityContext;
|
|
67
70
|
}
|
|
68
71
|
export {};
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhlX3Nlc3Npb24uZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90eGVfc2Vzc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFNUMsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLG1CQUFtQixFQUNuQixnQkFBZ0IsRUFFaEIsd0JBQXdCLEVBQ3hCLDRCQUE0QixFQUM1Qix5QkFBeUIsRUFDMUIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBSUwsS0FBSyx1QkFBdUIsRUFDNUIsS0FBSyx1QkFBdUIsRUFHN0IsTUFBTSxzQkFBc0IsQ0FBQztBQUc5QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFNNUQsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUd2RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNDQUFz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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"txe_session.d.ts","sourceRoot":"","sources":["../src/txe_session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EACL,mBAAmB,
|
|
1
|
+
{"version":3,"file":"txe_session.d.ts","sourceRoot":"","sources":["../src/txe_session.ts"],"names":[],"mappings":"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"}
|
package/dest/txe_session.js
CHANGED
|
@@ -3,7 +3,7 @@ import { Fr } from '@aztec/foundation/curves/bn254';
|
|
|
3
3
|
import { createLogger } from '@aztec/foundation/log';
|
|
4
4
|
import { KeyStore } from '@aztec/key-store';
|
|
5
5
|
import { openTmpStore } from '@aztec/kv-store/lmdb-v2';
|
|
6
|
-
import { AddressDataProvider, CapsuleDataProvider, NoteDataProvider,
|
|
6
|
+
import { AddressDataProvider, CapsuleDataProvider, NoteDataProvider, NoteService, PrivateEventDataProvider, RecipientTaggingDataProvider, SenderTaggingDataProvider } from '@aztec/pxe/server';
|
|
7
7
|
import { ExecutionNoteCache, ExecutionTaggingIndexCache, HashedValuesCache, PrivateExecutionOracle, UtilityExecutionOracle } from '@aztec/pxe/simulator';
|
|
8
8
|
import { FunctionSelector } from '@aztec/stdlib/abi';
|
|
9
9
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
@@ -29,29 +29,35 @@ export const DEFAULT_ADDRESS = AztecAddress.fromNumber(42);
|
|
|
29
29
|
stateMachine;
|
|
30
30
|
oracleHandler;
|
|
31
31
|
contractDataProvider;
|
|
32
|
+
noteDataProvider;
|
|
32
33
|
keyStore;
|
|
33
34
|
addressDataProvider;
|
|
34
|
-
privateEventDataProvider;
|
|
35
35
|
accountDataProvider;
|
|
36
|
+
senderTaggingDataProvider;
|
|
37
|
+
recipientTaggingDataProvider;
|
|
38
|
+
capsuleDataProvider;
|
|
39
|
+
privateEventDataProvider;
|
|
36
40
|
chainId;
|
|
37
41
|
version;
|
|
38
42
|
nextBlockTimestamp;
|
|
39
|
-
pxeOracleInterface;
|
|
40
43
|
state;
|
|
41
44
|
authwits;
|
|
42
|
-
constructor(logger, stateMachine, oracleHandler, contractDataProvider, keyStore, addressDataProvider,
|
|
45
|
+
constructor(logger, stateMachine, oracleHandler, contractDataProvider, noteDataProvider, keyStore, addressDataProvider, accountDataProvider, senderTaggingDataProvider, recipientTaggingDataProvider, capsuleDataProvider, privateEventDataProvider, chainId, version, nextBlockTimestamp){
|
|
43
46
|
this.logger = logger;
|
|
44
47
|
this.stateMachine = stateMachine;
|
|
45
48
|
this.oracleHandler = oracleHandler;
|
|
46
49
|
this.contractDataProvider = contractDataProvider;
|
|
50
|
+
this.noteDataProvider = noteDataProvider;
|
|
47
51
|
this.keyStore = keyStore;
|
|
48
52
|
this.addressDataProvider = addressDataProvider;
|
|
49
|
-
this.privateEventDataProvider = privateEventDataProvider;
|
|
50
53
|
this.accountDataProvider = accountDataProvider;
|
|
54
|
+
this.senderTaggingDataProvider = senderTaggingDataProvider;
|
|
55
|
+
this.recipientTaggingDataProvider = recipientTaggingDataProvider;
|
|
56
|
+
this.capsuleDataProvider = capsuleDataProvider;
|
|
57
|
+
this.privateEventDataProvider = privateEventDataProvider;
|
|
51
58
|
this.chainId = chainId;
|
|
52
59
|
this.version = version;
|
|
53
60
|
this.nextBlockTimestamp = nextBlockTimestamp;
|
|
54
|
-
this.pxeOracleInterface = pxeOracleInterface;
|
|
55
61
|
this.state = {
|
|
56
62
|
name: 'TOP_LEVEL'
|
|
57
63
|
};
|
|
@@ -77,10 +83,9 @@ export const DEFAULT_ADDRESS = AztecAddress.fromNumber(42);
|
|
|
77
83
|
const nextBlockTimestamp = BigInt(Math.floor(new Date().getTime() / 1000));
|
|
78
84
|
const version = new Fr(await stateMachine.node.getVersion());
|
|
79
85
|
const chainId = new Fr(await stateMachine.node.getChainId());
|
|
80
|
-
const
|
|
81
|
-
const topLevelOracleHandler = new TXEOracleTopLevelContext(stateMachine, contractDataProvider, keyStore, addressDataProvider, privateEventDataProvider, accountDataProvider, pxeOracleInterface, nextBlockTimestamp, version, chainId, new Map());
|
|
86
|
+
const topLevelOracleHandler = new TXEOracleTopLevelContext(stateMachine, contractDataProvider, noteDataProvider, keyStore, addressDataProvider, accountDataProvider, senderTaggingDataProvider, recipientTaggingDataProvider, capsuleDataProvider, privateEventDataProvider, nextBlockTimestamp, version, chainId, new Map());
|
|
82
87
|
await topLevelOracleHandler.txeAdvanceBlocksBy(1);
|
|
83
|
-
return new TXESession(createLogger('txe:session'), stateMachine, topLevelOracleHandler, contractDataProvider, keyStore, addressDataProvider,
|
|
88
|
+
return new TXESession(createLogger('txe:session'), stateMachine, topLevelOracleHandler, contractDataProvider, noteDataProvider, keyStore, addressDataProvider, accountDataProvider, senderTaggingDataProvider, recipientTaggingDataProvider, capsuleDataProvider, privateEventDataProvider, version, chainId, nextBlockTimestamp);
|
|
84
89
|
}
|
|
85
90
|
/**
|
|
86
91
|
* Processes an oracle function invoked by the Noir test associated to this session.
|
|
@@ -129,7 +134,7 @@ export const DEFAULT_ADDRESS = AztecAddress.fromNumber(42);
|
|
|
129
134
|
this.state;
|
|
130
135
|
}
|
|
131
136
|
}
|
|
132
|
-
this.oracleHandler = new TXEOracleTopLevelContext(this.stateMachine, this.contractDataProvider, this.keyStore, this.addressDataProvider, this.
|
|
137
|
+
this.oracleHandler = new TXEOracleTopLevelContext(this.stateMachine, this.contractDataProvider, this.noteDataProvider, this.keyStore, this.addressDataProvider, this.accountDataProvider, this.senderTaggingDataProvider, this.recipientTaggingDataProvider, this.capsuleDataProvider, this.privateEventDataProvider, this.nextBlockTimestamp, this.version, this.chainId, this.authwits);
|
|
133
138
|
this.state = {
|
|
134
139
|
name: 'TOP_LEVEL'
|
|
135
140
|
};
|
|
@@ -142,7 +147,7 @@ export const DEFAULT_ADDRESS = AztecAddress.fromNumber(42);
|
|
|
142
147
|
// we perform this. We therefore search for known nullifiers now, as otherwise notes that were nullified would not
|
|
143
148
|
// be removed from the database.
|
|
144
149
|
// TODO(#12553): make the synchronizer sync here instead and remove this
|
|
145
|
-
await this.
|
|
150
|
+
await new NoteService(this.noteDataProvider, this.stateMachine.node, this.stateMachine.anchorBlockDataProvider).syncNoteNullifiers(contractAddress);
|
|
146
151
|
// Private execution has two associated block numbers: the anchor block (i.e. the historical block that is used to
|
|
147
152
|
// build the proof), and the *next* block, i.e. the one we'll create once the execution ends, and which will contain
|
|
148
153
|
// a single transaction with the effects of what was done in the test.
|
|
@@ -158,7 +163,7 @@ export const DEFAULT_ADDRESS = AztecAddress.fromNumber(42);
|
|
|
158
163
|
const protocolNullifier = await computeProtocolNullifier(txRequestHash);
|
|
159
164
|
const noteCache = new ExecutionNoteCache(protocolNullifier);
|
|
160
165
|
const taggingIndexCache = new ExecutionTaggingIndexCache();
|
|
161
|
-
this.oracleHandler = new PrivateExecutionOracle(Fr.ZERO, new TxContext(this.chainId, this.version, GasSettings.empty()), new CallContext(AztecAddress.ZERO, contractAddress, FunctionSelector.empty(), false), anchorBlock, [], [], new HashedValuesCache(), noteCache, taggingIndexCache, this.
|
|
166
|
+
this.oracleHandler = new PrivateExecutionOracle(Fr.ZERO, new TxContext(this.chainId, this.version, GasSettings.empty()), new CallContext(AztecAddress.ZERO, contractAddress, FunctionSelector.empty(), false), anchorBlock, [], [], new HashedValuesCache(), noteCache, taggingIndexCache, this.contractDataProvider, this.noteDataProvider, this.keyStore, this.addressDataProvider, this.stateMachine.node, this.stateMachine.anchorBlockDataProvider, this.senderTaggingDataProvider, this.recipientTaggingDataProvider, this.capsuleDataProvider, this.privateEventDataProvider);
|
|
162
167
|
// We store the note and tagging index caches fed into the PrivateExecutionOracle (along with some other auxiliary
|
|
163
168
|
// data) in order to refer to it later, mimicking the way this object is used by the ContractFunctionSimulator. The
|
|
164
169
|
// difference resides in that the simulator has all information needed in order to run the simulation, while ours
|
|
@@ -198,9 +203,9 @@ export const DEFAULT_ADDRESS = AztecAddress.fromNumber(42);
|
|
|
198
203
|
// we perform this. We therefore search for known nullifiers now, as otherwise notes that were nullified would not
|
|
199
204
|
// be removed from the database.
|
|
200
205
|
// TODO(#12553): make the synchronizer sync here instead and remove this
|
|
201
|
-
await this.
|
|
206
|
+
await new NoteService(this.noteDataProvider, this.stateMachine.node, this.stateMachine.anchorBlockDataProvider).syncNoteNullifiers(contractAddress);
|
|
202
207
|
const anchorBlockHeader = await this.stateMachine.anchorBlockDataProvider.getBlockHeader();
|
|
203
|
-
this.oracleHandler = new UtilityExecutionOracle(contractAddress, [], [], anchorBlockHeader, this.
|
|
208
|
+
this.oracleHandler = new UtilityExecutionOracle(contractAddress, [], [], anchorBlockHeader, this.contractDataProvider, this.noteDataProvider, this.keyStore, this.addressDataProvider, this.stateMachine.node, this.stateMachine.anchorBlockDataProvider, this.senderTaggingDataProvider, this.recipientTaggingDataProvider, this.capsuleDataProvider, this.privateEventDataProvider);
|
|
204
209
|
this.state = {
|
|
205
210
|
name: 'UTILITY'
|
|
206
211
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/txe",
|
|
3
|
-
"version": "3.0.0-nightly.
|
|
3
|
+
"version": "3.0.0-nightly.20251223",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": "./dest/index.js",
|
|
6
6
|
"bin": "./dest/bin/index.js",
|
|
@@ -61,20 +61,20 @@
|
|
|
61
61
|
]
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
|
-
"@aztec/accounts": "3.0.0-nightly.
|
|
65
|
-
"@aztec/archiver": "3.0.0-nightly.
|
|
66
|
-
"@aztec/aztec-node": "3.0.0-nightly.
|
|
67
|
-
"@aztec/aztec.js": "3.0.0-nightly.
|
|
68
|
-
"@aztec/bb-prover": "3.0.0-nightly.
|
|
69
|
-
"@aztec/constants": "3.0.0-nightly.
|
|
70
|
-
"@aztec/foundation": "3.0.0-nightly.
|
|
71
|
-
"@aztec/key-store": "3.0.0-nightly.
|
|
72
|
-
"@aztec/kv-store": "3.0.0-nightly.
|
|
73
|
-
"@aztec/protocol-contracts": "3.0.0-nightly.
|
|
74
|
-
"@aztec/pxe": "3.0.0-nightly.
|
|
75
|
-
"@aztec/simulator": "3.0.0-nightly.
|
|
76
|
-
"@aztec/stdlib": "3.0.0-nightly.
|
|
77
|
-
"@aztec/world-state": "3.0.0-nightly.
|
|
64
|
+
"@aztec/accounts": "3.0.0-nightly.20251223",
|
|
65
|
+
"@aztec/archiver": "3.0.0-nightly.20251223",
|
|
66
|
+
"@aztec/aztec-node": "3.0.0-nightly.20251223",
|
|
67
|
+
"@aztec/aztec.js": "3.0.0-nightly.20251223",
|
|
68
|
+
"@aztec/bb-prover": "3.0.0-nightly.20251223",
|
|
69
|
+
"@aztec/constants": "3.0.0-nightly.20251223",
|
|
70
|
+
"@aztec/foundation": "3.0.0-nightly.20251223",
|
|
71
|
+
"@aztec/key-store": "3.0.0-nightly.20251223",
|
|
72
|
+
"@aztec/kv-store": "3.0.0-nightly.20251223",
|
|
73
|
+
"@aztec/protocol-contracts": "3.0.0-nightly.20251223",
|
|
74
|
+
"@aztec/pxe": "3.0.0-nightly.20251223",
|
|
75
|
+
"@aztec/simulator": "3.0.0-nightly.20251223",
|
|
76
|
+
"@aztec/stdlib": "3.0.0-nightly.20251223",
|
|
77
|
+
"@aztec/world-state": "3.0.0-nightly.20251223",
|
|
78
78
|
"zod": "^3.23.8"
|
|
79
79
|
},
|
|
80
80
|
"devDependencies": {
|
|
@@ -14,9 +14,12 @@ import { TestDateProvider } from '@aztec/foundation/timer';
|
|
|
14
14
|
import type { KeyStore } from '@aztec/key-store';
|
|
15
15
|
import {
|
|
16
16
|
AddressDataProvider,
|
|
17
|
+
CapsuleDataProvider,
|
|
18
|
+
NoteDataProvider,
|
|
17
19
|
ORACLE_VERSION,
|
|
18
|
-
PXEOracleInterface,
|
|
19
20
|
PrivateEventDataProvider,
|
|
21
|
+
RecipientTaggingDataProvider,
|
|
22
|
+
SenderTaggingDataProvider,
|
|
20
23
|
enrichPublicSimulationError,
|
|
21
24
|
} from '@aztec/pxe/server';
|
|
22
25
|
import {
|
|
@@ -93,11 +96,14 @@ export class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecutionOracl
|
|
|
93
96
|
constructor(
|
|
94
97
|
private stateMachine: TXEStateMachine,
|
|
95
98
|
private contractDataProvider: TXEContractDataProvider,
|
|
99
|
+
private noteDataProvider: NoteDataProvider,
|
|
96
100
|
private keyStore: KeyStore,
|
|
97
101
|
private addressDataProvider: AddressDataProvider,
|
|
98
|
-
private privateEventDataProvider: PrivateEventDataProvider,
|
|
99
102
|
private accountDataProvider: TXEAccountDataProvider,
|
|
100
|
-
private
|
|
103
|
+
private senderTaggingDataProvider: SenderTaggingDataProvider,
|
|
104
|
+
private recipientTaggingDataProvider: RecipientTaggingDataProvider,
|
|
105
|
+
private capsuleDataProvider: CapsuleDataProvider,
|
|
106
|
+
private privateEventDataProvider: PrivateEventDataProvider,
|
|
101
107
|
private nextBlockTimestamp: bigint,
|
|
102
108
|
private version: Fr,
|
|
103
109
|
private chainId: Fr,
|
|
@@ -220,7 +226,7 @@ export class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecutionOracl
|
|
|
220
226
|
}
|
|
221
227
|
|
|
222
228
|
async txeCreateAccount(secret: Fr) {
|
|
223
|
-
// This is a
|
|
229
|
+
// This is a foot gun !
|
|
224
230
|
const completeAddress = await this.keyStore.addAccount(secret, secret);
|
|
225
231
|
await this.accountDataProvider.setAccount(completeAddress.address, completeAddress);
|
|
226
232
|
await this.addressDataProvider.addCompleteAddress(completeAddress);
|
|
@@ -319,7 +325,16 @@ export class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecutionOracl
|
|
|
319
325
|
HashedValuesCache.create([new HashedValues(args, argsHash)]),
|
|
320
326
|
noteCache,
|
|
321
327
|
taggingIndexCache,
|
|
322
|
-
this.
|
|
328
|
+
this.contractDataProvider,
|
|
329
|
+
this.noteDataProvider,
|
|
330
|
+
this.keyStore,
|
|
331
|
+
this.addressDataProvider,
|
|
332
|
+
this.stateMachine.node,
|
|
333
|
+
this.stateMachine.anchorBlockDataProvider,
|
|
334
|
+
this.senderTaggingDataProvider,
|
|
335
|
+
this.recipientTaggingDataProvider,
|
|
336
|
+
this.capsuleDataProvider,
|
|
337
|
+
this.privateEventDataProvider,
|
|
323
338
|
0,
|
|
324
339
|
1,
|
|
325
340
|
undefined, // log
|
|
@@ -616,7 +631,10 @@ export class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecutionOracl
|
|
|
616
631
|
to: targetContractAddress,
|
|
617
632
|
};
|
|
618
633
|
|
|
619
|
-
const entryPointArtifact = await this.
|
|
634
|
+
const entryPointArtifact = await this.contractDataProvider.getFunctionArtifactWithDebugMetadata(
|
|
635
|
+
call.to,
|
|
636
|
+
call.selector,
|
|
637
|
+
);
|
|
620
638
|
if (entryPointArtifact.functionType !== FunctionType.UTILITY) {
|
|
621
639
|
throw new Error(`Cannot run ${entryPointArtifact.functionType} function as utility`);
|
|
622
640
|
}
|
|
@@ -628,7 +646,22 @@ export class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecutionOracl
|
|
|
628
646
|
|
|
629
647
|
try {
|
|
630
648
|
const anchorBlockHeader = await this.stateMachine.anchorBlockDataProvider.getBlockHeader();
|
|
631
|
-
const oracle = new UtilityExecutionOracle(
|
|
649
|
+
const oracle = new UtilityExecutionOracle(
|
|
650
|
+
call.to,
|
|
651
|
+
[],
|
|
652
|
+
[],
|
|
653
|
+
anchorBlockHeader,
|
|
654
|
+
this.contractDataProvider,
|
|
655
|
+
this.noteDataProvider,
|
|
656
|
+
this.keyStore,
|
|
657
|
+
this.addressDataProvider,
|
|
658
|
+
this.stateMachine.node,
|
|
659
|
+
this.stateMachine.anchorBlockDataProvider,
|
|
660
|
+
this.senderTaggingDataProvider,
|
|
661
|
+
this.recipientTaggingDataProvider,
|
|
662
|
+
this.capsuleDataProvider,
|
|
663
|
+
this.privateEventDataProvider,
|
|
664
|
+
);
|
|
632
665
|
const acirExecutionResult = await new WASMSimulator()
|
|
633
666
|
.executeUserCircuit(toACVMWitness(0, args), entryPointArtifact, new Oracle(oracle).toACIRCallback())
|
|
634
667
|
.catch((err: Error) => {
|
|
@@ -3,7 +3,7 @@ import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
|
3
3
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
4
4
|
import { GasFees } from '@aztec/stdlib/gas';
|
|
5
5
|
import { makeGlobalVariables } from '@aztec/stdlib/testing';
|
|
6
|
-
import { type GlobalVariableBuilder, GlobalVariables } from '@aztec/stdlib/tx';
|
|
6
|
+
import { type CheckpointGlobalVariables, type GlobalVariableBuilder, GlobalVariables } from '@aztec/stdlib/tx';
|
|
7
7
|
|
|
8
8
|
export class TXEGlobalVariablesBuilder implements GlobalVariableBuilder {
|
|
9
9
|
public getCurrentBaseFees(): Promise<GasFees> {
|
|
@@ -18,4 +18,21 @@ export class TXEGlobalVariablesBuilder implements GlobalVariableBuilder {
|
|
|
18
18
|
): Promise<GlobalVariables> {
|
|
19
19
|
return Promise.resolve(makeGlobalVariables());
|
|
20
20
|
}
|
|
21
|
+
|
|
22
|
+
public buildCheckpointGlobalVariables(
|
|
23
|
+
_coinbase: EthAddress,
|
|
24
|
+
_feeRecipient: AztecAddress,
|
|
25
|
+
_slotNumber: SlotNumber,
|
|
26
|
+
): Promise<CheckpointGlobalVariables> {
|
|
27
|
+
const vars = makeGlobalVariables();
|
|
28
|
+
return Promise.resolve({
|
|
29
|
+
chainId: vars.chainId,
|
|
30
|
+
version: vars.version,
|
|
31
|
+
slotNumber: vars.slotNumber,
|
|
32
|
+
timestamp: vars.timestamp,
|
|
33
|
+
coinbase: vars.coinbase,
|
|
34
|
+
feeRecipient: vars.feeRecipient,
|
|
35
|
+
gasFees: vars.gasFees,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
21
38
|
}
|
package/src/txe_session.ts
CHANGED
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
AddressDataProvider,
|
|
9
9
|
CapsuleDataProvider,
|
|
10
10
|
NoteDataProvider,
|
|
11
|
-
|
|
11
|
+
NoteService,
|
|
12
12
|
PrivateEventDataProvider,
|
|
13
13
|
RecipientTaggingDataProvider,
|
|
14
14
|
SenderTaggingDataProvider,
|
|
@@ -121,14 +121,17 @@ export class TXESession implements TXESessionStateHandler {
|
|
|
121
121
|
| IAvmExecutionOracle
|
|
122
122
|
| ITxeExecutionOracle,
|
|
123
123
|
private contractDataProvider: TXEContractDataProvider,
|
|
124
|
+
private noteDataProvider: NoteDataProvider,
|
|
124
125
|
private keyStore: KeyStore,
|
|
125
126
|
private addressDataProvider: AddressDataProvider,
|
|
126
|
-
private privateEventDataProvider: PrivateEventDataProvider,
|
|
127
127
|
private accountDataProvider: TXEAccountDataProvider,
|
|
128
|
+
private senderTaggingDataProvider: SenderTaggingDataProvider,
|
|
129
|
+
private recipientTaggingDataProvider: RecipientTaggingDataProvider,
|
|
130
|
+
private capsuleDataProvider: CapsuleDataProvider,
|
|
131
|
+
private privateEventDataProvider: PrivateEventDataProvider,
|
|
128
132
|
private chainId: Fr,
|
|
129
133
|
private version: Fr,
|
|
130
134
|
private nextBlockTimestamp: bigint,
|
|
131
|
-
private pxeOracleInterface: PXEOracleInterface,
|
|
132
135
|
) {}
|
|
133
136
|
|
|
134
137
|
static async init(protocolContracts: ProtocolContract[]) {
|
|
@@ -156,27 +159,17 @@ export class TXESession implements TXESessionStateHandler {
|
|
|
156
159
|
const version = new Fr(await stateMachine.node.getVersion());
|
|
157
160
|
const chainId = new Fr(await stateMachine.node.getChainId());
|
|
158
161
|
|
|
159
|
-
const pxeOracleInterface = new PXEOracleInterface(
|
|
160
|
-
stateMachine.node,
|
|
161
|
-
keyStore,
|
|
162
|
-
contractDataProvider,
|
|
163
|
-
noteDataProvider,
|
|
164
|
-
capsuleDataProvider,
|
|
165
|
-
stateMachine.anchorBlockDataProvider,
|
|
166
|
-
senderTaggingDataProvider,
|
|
167
|
-
recipientTaggingDataProvider,
|
|
168
|
-
addressDataProvider,
|
|
169
|
-
privateEventDataProvider,
|
|
170
|
-
);
|
|
171
|
-
|
|
172
162
|
const topLevelOracleHandler = new TXEOracleTopLevelContext(
|
|
173
163
|
stateMachine,
|
|
174
164
|
contractDataProvider,
|
|
165
|
+
noteDataProvider,
|
|
175
166
|
keyStore,
|
|
176
167
|
addressDataProvider,
|
|
177
|
-
privateEventDataProvider,
|
|
178
168
|
accountDataProvider,
|
|
179
|
-
|
|
169
|
+
senderTaggingDataProvider,
|
|
170
|
+
recipientTaggingDataProvider,
|
|
171
|
+
capsuleDataProvider,
|
|
172
|
+
privateEventDataProvider,
|
|
180
173
|
nextBlockTimestamp,
|
|
181
174
|
version,
|
|
182
175
|
chainId,
|
|
@@ -189,14 +182,17 @@ export class TXESession implements TXESessionStateHandler {
|
|
|
189
182
|
stateMachine,
|
|
190
183
|
topLevelOracleHandler,
|
|
191
184
|
contractDataProvider,
|
|
185
|
+
noteDataProvider,
|
|
192
186
|
keyStore,
|
|
193
187
|
addressDataProvider,
|
|
194
|
-
privateEventDataProvider,
|
|
195
188
|
accountDataProvider,
|
|
189
|
+
senderTaggingDataProvider,
|
|
190
|
+
recipientTaggingDataProvider,
|
|
191
|
+
capsuleDataProvider,
|
|
192
|
+
privateEventDataProvider,
|
|
196
193
|
version,
|
|
197
194
|
chainId,
|
|
198
195
|
nextBlockTimestamp,
|
|
199
|
-
pxeOracleInterface,
|
|
200
196
|
);
|
|
201
197
|
}
|
|
202
198
|
|
|
@@ -256,11 +252,14 @@ export class TXESession implements TXESessionStateHandler {
|
|
|
256
252
|
this.oracleHandler = new TXEOracleTopLevelContext(
|
|
257
253
|
this.stateMachine,
|
|
258
254
|
this.contractDataProvider,
|
|
255
|
+
this.noteDataProvider,
|
|
259
256
|
this.keyStore,
|
|
260
257
|
this.addressDataProvider,
|
|
261
|
-
this.privateEventDataProvider,
|
|
262
258
|
this.accountDataProvider,
|
|
263
|
-
this.
|
|
259
|
+
this.senderTaggingDataProvider,
|
|
260
|
+
this.recipientTaggingDataProvider,
|
|
261
|
+
this.capsuleDataProvider,
|
|
262
|
+
this.privateEventDataProvider,
|
|
264
263
|
this.nextBlockTimestamp,
|
|
265
264
|
this.version,
|
|
266
265
|
this.chainId,
|
|
@@ -282,7 +281,11 @@ export class TXESession implements TXESessionStateHandler {
|
|
|
282
281
|
// we perform this. We therefore search for known nullifiers now, as otherwise notes that were nullified would not
|
|
283
282
|
// be removed from the database.
|
|
284
283
|
// TODO(#12553): make the synchronizer sync here instead and remove this
|
|
285
|
-
await
|
|
284
|
+
await new NoteService(
|
|
285
|
+
this.noteDataProvider,
|
|
286
|
+
this.stateMachine.node,
|
|
287
|
+
this.stateMachine.anchorBlockDataProvider,
|
|
288
|
+
).syncNoteNullifiers(contractAddress);
|
|
286
289
|
|
|
287
290
|
// Private execution has two associated block numbers: the anchor block (i.e. the historical block that is used to
|
|
288
291
|
// build the proof), and the *next* block, i.e. the one we'll create once the execution ends, and which will contain
|
|
@@ -312,7 +315,16 @@ export class TXESession implements TXESessionStateHandler {
|
|
|
312
315
|
new HashedValuesCache(),
|
|
313
316
|
noteCache,
|
|
314
317
|
taggingIndexCache,
|
|
315
|
-
this.
|
|
318
|
+
this.contractDataProvider,
|
|
319
|
+
this.noteDataProvider,
|
|
320
|
+
this.keyStore,
|
|
321
|
+
this.addressDataProvider,
|
|
322
|
+
this.stateMachine.node,
|
|
323
|
+
this.stateMachine.anchorBlockDataProvider,
|
|
324
|
+
this.senderTaggingDataProvider,
|
|
325
|
+
this.recipientTaggingDataProvider,
|
|
326
|
+
this.capsuleDataProvider,
|
|
327
|
+
this.privateEventDataProvider,
|
|
316
328
|
);
|
|
317
329
|
|
|
318
330
|
// We store the note and tagging index caches fed into the PrivateExecutionOracle (along with some other auxiliary
|
|
@@ -358,7 +370,11 @@ export class TXESession implements TXESessionStateHandler {
|
|
|
358
370
|
// we perform this. We therefore search for known nullifiers now, as otherwise notes that were nullified would not
|
|
359
371
|
// be removed from the database.
|
|
360
372
|
// TODO(#12553): make the synchronizer sync here instead and remove this
|
|
361
|
-
await
|
|
373
|
+
await new NoteService(
|
|
374
|
+
this.noteDataProvider,
|
|
375
|
+
this.stateMachine.node,
|
|
376
|
+
this.stateMachine.anchorBlockDataProvider,
|
|
377
|
+
).syncNoteNullifiers(contractAddress);
|
|
362
378
|
|
|
363
379
|
const anchorBlockHeader = await this.stateMachine.anchorBlockDataProvider.getBlockHeader();
|
|
364
380
|
|
|
@@ -367,7 +383,16 @@ export class TXESession implements TXESessionStateHandler {
|
|
|
367
383
|
[],
|
|
368
384
|
[],
|
|
369
385
|
anchorBlockHeader,
|
|
370
|
-
this.
|
|
386
|
+
this.contractDataProvider,
|
|
387
|
+
this.noteDataProvider,
|
|
388
|
+
this.keyStore,
|
|
389
|
+
this.addressDataProvider,
|
|
390
|
+
this.stateMachine.node,
|
|
391
|
+
this.stateMachine.anchorBlockDataProvider,
|
|
392
|
+
this.senderTaggingDataProvider,
|
|
393
|
+
this.recipientTaggingDataProvider,
|
|
394
|
+
this.capsuleDataProvider,
|
|
395
|
+
this.privateEventDataProvider,
|
|
371
396
|
);
|
|
372
397
|
|
|
373
398
|
this.state = { name: 'UTILITY' };
|