@aztec/txe 0.0.1-commit.e588bc7e5 → 0.0.1-commit.e5a3663dd
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/interfaces.d.ts +7 -2
- package/dest/oracle/interfaces.d.ts.map +1 -1
- package/dest/oracle/txe_oracle_top_level_context.d.ts +14 -6
- package/dest/oracle/txe_oracle_top_level_context.d.ts.map +1 -1
- package/dest/oracle/txe_oracle_top_level_context.js +46 -21
- package/dest/rpc_translator.d.ts +44 -3
- package/dest/rpc_translator.d.ts.map +1 -1
- package/dest/rpc_translator.js +207 -26
- package/dest/state_machine/archiver.d.ts +1 -1
- package/dest/state_machine/archiver.d.ts.map +1 -1
- package/dest/state_machine/archiver.js +6 -5
- package/dest/state_machine/global_variable_builder.d.ts +9 -4
- package/dest/state_machine/global_variable_builder.d.ts.map +1 -1
- package/dest/state_machine/global_variable_builder.js +9 -3
- package/dest/state_machine/index.d.ts +1 -1
- package/dest/state_machine/index.d.ts.map +1 -1
- package/dest/state_machine/index.js +2 -2
- package/dest/state_machine/mock_epoch_cache.d.ts +2 -1
- package/dest/state_machine/mock_epoch_cache.d.ts.map +1 -1
- package/dest/state_machine/mock_epoch_cache.js +3 -0
- package/dest/txe_session.d.ts +48 -4
- package/dest/txe_session.d.ts.map +1 -1
- package/dest/txe_session.js +77 -17
- package/dest/util/encoding.d.ts +3 -1
- package/dest/util/encoding.d.ts.map +1 -1
- package/dest/util/encoding.js +4 -0
- package/package.json +15 -15
- package/src/oracle/interfaces.ts +3 -1
- package/src/oracle/txe_oracle_top_level_context.ts +46 -21
- package/src/rpc_translator.ts +254 -37
- package/src/state_machine/archiver.ts +4 -5
- package/src/state_machine/global_variable_builder.ts +13 -4
- package/src/state_machine/index.ts +3 -1
- package/src/state_machine/mock_epoch_cache.ts +4 -0
- package/src/txe_session.ts +130 -12
- package/src/util/encoding.ts +5 -0
package/dest/txe_session.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
|
2
2
|
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
|
-
import { AddressStore, CapsuleStore, ContractStore,
|
|
5
|
+
import { AddressStore, CapsuleStore, ContractStore, JobCoordinator, NoteStore, PrivateEventStore, RecipientTaggingStore, SenderAddressBookStore, SenderTaggingStore } from '@aztec/pxe/server';
|
|
6
6
|
import { type IPrivateExecutionOracle, type IUtilityExecutionOracle } from '@aztec/pxe/simulator';
|
|
7
7
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
8
8
|
import { PrivateContextInputs } from '@aztec/stdlib/kernel';
|
|
@@ -26,6 +26,36 @@ export interface TXESessionStateHandler {
|
|
|
26
26
|
enterUtilityState(contractAddress?: AztecAddress): Promise<void>;
|
|
27
27
|
cycleJob(): Promise<string>;
|
|
28
28
|
getCurrentJob(): string;
|
|
29
|
+
/**
|
|
30
|
+
* Runs an executor-style top-level call (private/public call, utility execution) with last-call tracking.
|
|
31
|
+
*/
|
|
32
|
+
withTopLevelCallTracking<T>(work: () => Promise<{
|
|
33
|
+
result: T;
|
|
34
|
+
txHash?: Fr;
|
|
35
|
+
}>): Promise<T>;
|
|
36
|
+
/**
|
|
37
|
+
* Captures a raw offchain effect payload for consumption from test environment. Called by the `emit_offchain_effect`
|
|
38
|
+
* oracle handler whenever a contract function emits an offchain message, at any call depth.
|
|
39
|
+
*/
|
|
40
|
+
recordOffchainEffect(data: Fr[]): void;
|
|
41
|
+
/**
|
|
42
|
+
* Returns the raw offchain effect payloads emitted by the last top-level call. Each payload follows the protocol
|
|
43
|
+
* convention documented on `OFFCHAIN_MESSAGE_IDENTIFIER`, i.e. `[identifier, recipient, ...ciphertext]`. Decoding into
|
|
44
|
+
* `OffchainMessage` structs happens on the Noir side of the test helper. Marks the buffer as queried so the
|
|
45
|
+
* unqueried-messages warning doesn't fire on the next reset.
|
|
46
|
+
*/
|
|
47
|
+
getLastCallOffchainEffects(): {
|
|
48
|
+
effects: Fr[][];
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Returns the context of the last top-level call: its tx hash (`Fr.ZERO` if the call was tx-less) and the anchor
|
|
52
|
+
* block timestamp captured at the start of the call. Does *not* mark the buffer as queried — context reads are
|
|
53
|
+
* metadata, not effect consumption.
|
|
54
|
+
*/
|
|
55
|
+
getLastCallContext(): {
|
|
56
|
+
txHash: Fr;
|
|
57
|
+
anchorBlockTimestamp: bigint;
|
|
58
|
+
};
|
|
29
59
|
}
|
|
30
60
|
/**
|
|
31
61
|
* A `TXESession` corresponds to a Noir `#[test]` function, and handles all of its oracle calls, stores test-specific
|
|
@@ -50,10 +80,10 @@ export declare class TXESession implements TXESessionStateHandler {
|
|
|
50
80
|
private chainId;
|
|
51
81
|
private version;
|
|
52
82
|
private nextBlockTimestamp;
|
|
53
|
-
private contractSyncService;
|
|
54
83
|
private state;
|
|
55
84
|
private authwits;
|
|
56
|
-
|
|
85
|
+
private lastCallInfo;
|
|
86
|
+
constructor(logger: Logger, stateMachine: TXEStateMachine, oracleHandler: IUtilityExecutionOracle | IPrivateExecutionOracle | IAvmExecutionOracle | ITxeExecutionOracle, contractStore: ContractStore, noteStore: NoteStore, keyStore: KeyStore, addressStore: AddressStore, accountStore: TXEAccountStore, senderTaggingStore: SenderTaggingStore, recipientTaggingStore: RecipientTaggingStore, senderAddressBookStore: SenderAddressBookStore, capsuleStore: CapsuleStore, privateEventStore: PrivateEventStore, jobCoordinator: JobCoordinator, currentJobId: string, chainId: Fr, version: Fr, nextBlockTimestamp: bigint);
|
|
57
87
|
static init(contractStore: ContractStore): Promise<TXESession>;
|
|
58
88
|
/**
|
|
59
89
|
* Processes an oracle function invoked by the Noir test associated to this session.
|
|
@@ -65,6 +95,20 @@ export declare class TXESession implements TXESessionStateHandler {
|
|
|
65
95
|
getCurrentJob(): string;
|
|
66
96
|
/** Commits the current job and begins a new one. Returns the new job ID. */
|
|
67
97
|
cycleJob(): Promise<string>;
|
|
98
|
+
private resetLastCall;
|
|
99
|
+
recordOffchainEffect(data: Fr[]): void;
|
|
100
|
+
private setLastCallContext;
|
|
101
|
+
withTopLevelCallTracking<T>(work: () => Promise<{
|
|
102
|
+
result: T;
|
|
103
|
+
txHash?: Fr;
|
|
104
|
+
}>): Promise<T>;
|
|
105
|
+
getLastCallOffchainEffects(): {
|
|
106
|
+
effects: Fr[][];
|
|
107
|
+
};
|
|
108
|
+
getLastCallContext(): {
|
|
109
|
+
txHash: Fr;
|
|
110
|
+
anchorBlockTimestamp: bigint;
|
|
111
|
+
};
|
|
68
112
|
enterTopLevelState(): Promise<void>;
|
|
69
113
|
enterPrivateState(contractAddress?: AztecAddress, anchorBlockNumber?: BlockNumber): Promise<PrivateContextInputs>;
|
|
70
114
|
enterPublicState(contractAddress?: AztecAddress): Promise<void>;
|
|
@@ -76,4 +120,4 @@ export declare class TXESession implements TXESessionStateHandler {
|
|
|
76
120
|
private utilityExecutorForContractSync;
|
|
77
121
|
}
|
|
78
122
|
export {};
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhlX3Nlc3Npb24uZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90eGVfc2Vzc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFNUMsT0FBTyxFQUNMLFlBQVksRUFHWixZQUFZLEVBQ1osYUFBYSxFQUNiLGNBQWMsRUFFZCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLHFCQUFxQixFQUNyQixzQkFBc0IsRUFDdEIsa0JBQWtCLEVBQ25CLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUlMLEtBQUssdUJBQXVCLEVBQzVCLEtBQUssdUJBQXVCLEVBSTdCLE1BQU0sc0JBQXNCLENBQUM7QUFXOUIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBTzVELE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHdkYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXBELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUF5QzlELEtBQUssV0FBVyxDQUFDLENBQUMsSUFBSTtLQUNuQixDQUFDLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FB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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,EACL,YAAY,EAGZ,YAAY,EACZ,aAAa,EACb,
|
|
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 { AddressStore, AnchorBlockStore, CapsuleService, CapsuleStore,
|
|
6
|
+
import { AddressStore, AnchorBlockStore, CapsuleService, CapsuleStore, JobCoordinator, NoteService, NoteStore, PrivateEventStore, RecipientTaggingStore, SenderAddressBookStore, SenderTaggingStore } from '@aztec/pxe/server';
|
|
7
7
|
import { ExecutionNoteCache, ExecutionTaggingIndexCache, HashedValuesCache, Oracle, PrivateExecutionOracle, UtilityExecutionOracle } from '@aztec/pxe/simulator';
|
|
8
8
|
import { ExecutionError, WASMSimulator, createSimulationError, extractCallStack, resolveAssertionMessageFromError, toACVMWitness } from '@aztec/simulator/client';
|
|
9
9
|
import { FunctionSelector, FunctionType } from '@aztec/stdlib/abi';
|
|
@@ -11,7 +11,7 @@ import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
|
11
11
|
import { GasSettings } from '@aztec/stdlib/gas';
|
|
12
12
|
import { computeProtocolNullifier } from '@aztec/stdlib/hash';
|
|
13
13
|
import { makeGlobalVariables } from '@aztec/stdlib/testing';
|
|
14
|
-
import { CallContext, TxContext } from '@aztec/stdlib/tx';
|
|
14
|
+
import { CallContext, OFFCHAIN_MESSAGE_IDENTIFIER, TxContext } from '@aztec/stdlib/tx';
|
|
15
15
|
import { z } from 'zod';
|
|
16
16
|
import { DEFAULT_ADDRESS } from './constants.js';
|
|
17
17
|
import { TXEOraclePublicContext } from './oracle/txe_oracle_public_context.js';
|
|
@@ -22,6 +22,14 @@ import { TXEStateMachine } from './state_machine/index.js';
|
|
|
22
22
|
import { TXEAccountStore } from './util/txe_account_store.js';
|
|
23
23
|
import { getSingleTxBlockRequestHash, insertTxEffectIntoWorldTrees, makeTXEBlock } from './utils/block_creation.js';
|
|
24
24
|
import { makeTxEffect } from './utils/tx_effect_creation.js';
|
|
25
|
+
function emptyLastCallState() {
|
|
26
|
+
return {
|
|
27
|
+
offchainEffects: [],
|
|
28
|
+
queried: false,
|
|
29
|
+
txHash: Fr.ZERO,
|
|
30
|
+
anchorBlockTimestamp: 0n
|
|
31
|
+
};
|
|
32
|
+
}
|
|
25
33
|
/**
|
|
26
34
|
* A `TXESession` corresponds to a Noir `#[test]` function, and handles all of its oracle calls, stores test-specific
|
|
27
35
|
* state, etc., independent of all other tests running in parallel.
|
|
@@ -44,10 +52,10 @@ import { makeTxEffect } from './utils/tx_effect_creation.js';
|
|
|
44
52
|
chainId;
|
|
45
53
|
version;
|
|
46
54
|
nextBlockTimestamp;
|
|
47
|
-
contractSyncService;
|
|
48
55
|
state;
|
|
49
56
|
authwits;
|
|
50
|
-
|
|
57
|
+
lastCallInfo;
|
|
58
|
+
constructor(logger, stateMachine, oracleHandler, contractStore, noteStore, keyStore, addressStore, accountStore, senderTaggingStore, recipientTaggingStore, senderAddressBookStore, capsuleStore, privateEventStore, jobCoordinator, currentJobId, chainId, version, nextBlockTimestamp){
|
|
51
59
|
this.logger = logger;
|
|
52
60
|
this.stateMachine = stateMachine;
|
|
53
61
|
this.oracleHandler = oracleHandler;
|
|
@@ -66,11 +74,11 @@ import { makeTxEffect } from './utils/tx_effect_creation.js';
|
|
|
66
74
|
this.chainId = chainId;
|
|
67
75
|
this.version = version;
|
|
68
76
|
this.nextBlockTimestamp = nextBlockTimestamp;
|
|
69
|
-
this.contractSyncService = contractSyncService;
|
|
70
77
|
this.state = {
|
|
71
78
|
name: 'TOP_LEVEL'
|
|
72
79
|
};
|
|
73
80
|
this.authwits = new Map();
|
|
81
|
+
this.lastCallInfo = emptyLastCallState();
|
|
74
82
|
}
|
|
75
83
|
static async init(contractStore) {
|
|
76
84
|
const store = await openTmpStore('txe-session');
|
|
@@ -100,10 +108,9 @@ import { makeTxEffect } from './utils/tx_effect_creation.js';
|
|
|
100
108
|
const chainId = new Fr(await stateMachine.node.getChainId());
|
|
101
109
|
const initialJobId = jobCoordinator.beginJob();
|
|
102
110
|
const logger = createLogger('txe:session');
|
|
103
|
-
const
|
|
104
|
-
const topLevelOracleHandler = new TXEOracleTopLevelContext(stateMachine, contractStore, noteStore, keyStore, addressStore, accountStore, senderTaggingStore, recipientTaggingStore, senderAddressBookStore, capsuleStore, privateEventStore, nextBlockTimestamp, version, chainId, new Map(), contractSyncService);
|
|
111
|
+
const topLevelOracleHandler = new TXEOracleTopLevelContext(stateMachine, contractStore, noteStore, keyStore, addressStore, accountStore, senderTaggingStore, recipientTaggingStore, senderAddressBookStore, capsuleStore, privateEventStore, nextBlockTimestamp, version, chainId, new Map());
|
|
105
112
|
await topLevelOracleHandler.advanceBlocksBy(1);
|
|
106
|
-
return new TXESession(logger, stateMachine, topLevelOracleHandler, contractStore, noteStore, keyStore, addressStore, accountStore, senderTaggingStore, recipientTaggingStore, senderAddressBookStore, capsuleStore, privateEventStore, jobCoordinator, initialJobId, version, chainId, nextBlockTimestamp
|
|
113
|
+
return new TXESession(logger, stateMachine, topLevelOracleHandler, contractStore, noteStore, keyStore, addressStore, accountStore, senderTaggingStore, recipientTaggingStore, senderAddressBookStore, capsuleStore, privateEventStore, jobCoordinator, initialJobId, version, chainId, nextBlockTimestamp);
|
|
107
114
|
}
|
|
108
115
|
/**
|
|
109
116
|
* Processes an oracle function invoked by the Noir test associated to this session.
|
|
@@ -134,6 +141,42 @@ import { makeTxEffect } from './utils/tx_effect_creation.js';
|
|
|
134
141
|
this.currentJobId = this.jobCoordinator.beginJob();
|
|
135
142
|
return this.currentJobId;
|
|
136
143
|
}
|
|
144
|
+
resetLastCall() {
|
|
145
|
+
const notQueriedMessageCount = this.lastCallInfo.queried ? 0 : this.lastCallInfo.offchainEffects.filter((payload)=>payload[0]?.equals(OFFCHAIN_MESSAGE_IDENTIFIER)).length;
|
|
146
|
+
if (notQueriedMessageCount > 0) {
|
|
147
|
+
this.logger.warn(`Dropping ${notQueriedMessageCount} unqueried offchain message(s) from the previous top-level call. ` + `To deliver them, call \`env.offchain_messages()\` and forward the result to the recipient contract's ` + `\`offchain_receive\` utility before issuing another top-level call. To intentionally discard, assign ` + `to \`let _ = env.offchain_messages()\` to silence this warning.`);
|
|
148
|
+
}
|
|
149
|
+
this.lastCallInfo = emptyLastCallState();
|
|
150
|
+
}
|
|
151
|
+
recordOffchainEffect(data) {
|
|
152
|
+
this.lastCallInfo.offchainEffects.push(data);
|
|
153
|
+
}
|
|
154
|
+
setLastCallContext(txHash, anchorBlockTimestamp) {
|
|
155
|
+
this.lastCallInfo.txHash = txHash;
|
|
156
|
+
this.lastCallInfo.anchorBlockTimestamp = anchorBlockTimestamp;
|
|
157
|
+
}
|
|
158
|
+
async withTopLevelCallTracking(work) {
|
|
159
|
+
this.resetLastCall();
|
|
160
|
+
// Capture the anchor *before* `work` runs: private/public executor calls mine a new block as a
|
|
161
|
+
// side effect, and that block's timestamp should not be attributed to this call's anchor.
|
|
162
|
+
const anchorBlockTimestamp = (await this.stateMachine.node.getBlockHeader('latest')).globalVariables.timestamp;
|
|
163
|
+
const { result, txHash } = await work();
|
|
164
|
+
this.setLastCallContext(txHash ?? Fr.ZERO, anchorBlockTimestamp);
|
|
165
|
+
return result;
|
|
166
|
+
}
|
|
167
|
+
getLastCallOffchainEffects() {
|
|
168
|
+
this.lastCallInfo.queried = true;
|
|
169
|
+
return {
|
|
170
|
+
effects: this.lastCallInfo.offchainEffects
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
getLastCallContext() {
|
|
174
|
+
const { txHash, anchorBlockTimestamp } = this.lastCallInfo;
|
|
175
|
+
return {
|
|
176
|
+
txHash,
|
|
177
|
+
anchorBlockTimestamp
|
|
178
|
+
};
|
|
179
|
+
}
|
|
137
180
|
async enterTopLevelState() {
|
|
138
181
|
switch(this.state.name){
|
|
139
182
|
case 'PRIVATE':
|
|
@@ -162,7 +205,7 @@ import { makeTxEffect } from './utils/tx_effect_creation.js';
|
|
|
162
205
|
}
|
|
163
206
|
// Commit all staged stores from the job that was just completed, then begin a new job
|
|
164
207
|
await this.cycleJob();
|
|
165
|
-
this.oracleHandler = new TXEOracleTopLevelContext(this.stateMachine, this.contractStore, this.noteStore, this.keyStore, this.addressStore, this.accountStore, this.senderTaggingStore, this.recipientTaggingStore, this.senderAddressBookStore, this.capsuleStore, this.privateEventStore, this.nextBlockTimestamp, this.version, this.chainId, this.authwits
|
|
208
|
+
this.oracleHandler = new TXEOracleTopLevelContext(this.stateMachine, this.contractStore, this.noteStore, this.keyStore, this.addressStore, this.accountStore, this.senderTaggingStore, this.recipientTaggingStore, this.senderAddressBookStore, this.capsuleStore, this.privateEventStore, this.nextBlockTimestamp, this.version, this.chainId, this.authwits);
|
|
166
209
|
this.state = {
|
|
167
210
|
name: 'TOP_LEVEL'
|
|
168
211
|
};
|
|
@@ -170,6 +213,7 @@ import { makeTxEffect } from './utils/tx_effect_creation.js';
|
|
|
170
213
|
}
|
|
171
214
|
async enterPrivateState(contractAddress = DEFAULT_ADDRESS, anchorBlockNumber) {
|
|
172
215
|
this.exitTopLevelState();
|
|
216
|
+
this.resetLastCall();
|
|
173
217
|
// Private execution has two associated block numbers: the anchor block (i.e. the historical block that is used to
|
|
174
218
|
// build the proof), and the *next* block, i.e. the one we'll create once the execution ends, and which will contain
|
|
175
219
|
// a single transaction with the effects of what was done in the test.
|
|
@@ -209,9 +253,11 @@ import { makeTxEffect } from './utils/tx_effect_creation.js';
|
|
|
209
253
|
capsuleService: new CapsuleService(this.capsuleStore, await this.keyStore.getAccounts()),
|
|
210
254
|
privateEventStore: this.privateEventStore,
|
|
211
255
|
contractSyncService: this.stateMachine.contractSyncService,
|
|
256
|
+
l2TipsStore: this.stateMachine.node,
|
|
212
257
|
jobId: this.currentJobId,
|
|
213
258
|
scopes: await this.keyStore.getAccounts(),
|
|
214
|
-
messageContextService: this.stateMachine.messageContextService
|
|
259
|
+
messageContextService: this.stateMachine.messageContextService,
|
|
260
|
+
simulator: new WASMSimulator()
|
|
215
261
|
});
|
|
216
262
|
// We store the note and tagging index caches fed into the PrivateExecutionOracle (along with some other auxiliary
|
|
217
263
|
// data) in order to refer to it later, mimicking the way this object is used by the ContractFunctionSimulator. The
|
|
@@ -225,15 +271,19 @@ import { makeTxEffect } from './utils/tx_effect_creation.js';
|
|
|
225
271
|
taggingIndexCache
|
|
226
272
|
};
|
|
227
273
|
this.logger.debug(`Entered state ${this.state.name}`);
|
|
274
|
+
// Record the *resolved* anchor's timestamp — if the caller pinned the anchor to a past block
|
|
275
|
+
// via `anchorBlockNumber`, "latest" would be the wrong anchor for offchain-message semantics.
|
|
276
|
+
this.setLastCallContext(Fr.ZERO, anchorBlock.globalVariables.timestamp);
|
|
228
277
|
return this.oracleHandler.getPrivateContextInputs();
|
|
229
278
|
}
|
|
230
279
|
async enterPublicState(contractAddress) {
|
|
231
280
|
this.exitTopLevelState();
|
|
281
|
+
this.resetLastCall();
|
|
232
282
|
// The PublicContext will create a block with a single transaction in it, containing the effects of what was done in
|
|
233
283
|
// the test. The block therefore gets the *next* block number and timestamp.
|
|
234
|
-
const
|
|
284
|
+
const latestHeader = await this.stateMachine.node.getBlockHeader('latest');
|
|
235
285
|
const globalVariables = makeGlobalVariables(undefined, {
|
|
236
|
-
blockNumber: BlockNumber(
|
|
286
|
+
blockNumber: BlockNumber(latestHeader.globalVariables.blockNumber + 1),
|
|
237
287
|
timestamp: this.nextBlockTimestamp,
|
|
238
288
|
version: this.version,
|
|
239
289
|
chainId: this.chainId
|
|
@@ -243,9 +293,12 @@ import { makeTxEffect } from './utils/tx_effect_creation.js';
|
|
|
243
293
|
name: 'PUBLIC'
|
|
244
294
|
};
|
|
245
295
|
this.logger.debug(`Entered state ${this.state.name}`);
|
|
296
|
+
// Public state is anchored at the latest block.
|
|
297
|
+
this.setLastCallContext(Fr.ZERO, latestHeader.globalVariables.timestamp);
|
|
246
298
|
}
|
|
247
299
|
async enterUtilityState(contractAddress = DEFAULT_ADDRESS) {
|
|
248
300
|
this.exitTopLevelState();
|
|
301
|
+
this.resetLastCall();
|
|
249
302
|
const anchorBlockHeader = await this.stateMachine.anchorBlockStore.getBlockHeader();
|
|
250
303
|
// There is no automatic message discovery and contract-driven syncing process in inlined private or utility
|
|
251
304
|
// contexts, which means that known nullifiers are also not searched for, since it is during the tagging sync that
|
|
@@ -268,14 +321,18 @@ import { makeTxEffect } from './utils/tx_effect_creation.js';
|
|
|
268
321
|
capsuleService: new CapsuleService(this.capsuleStore, await this.keyStore.getAccounts()),
|
|
269
322
|
privateEventStore: this.privateEventStore,
|
|
270
323
|
messageContextService: this.stateMachine.messageContextService,
|
|
271
|
-
contractSyncService: this.contractSyncService,
|
|
324
|
+
contractSyncService: this.stateMachine.contractSyncService,
|
|
325
|
+
l2TipsStore: this.stateMachine.node,
|
|
272
326
|
jobId: this.currentJobId,
|
|
273
|
-
scopes: await this.keyStore.getAccounts()
|
|
327
|
+
scopes: await this.keyStore.getAccounts(),
|
|
328
|
+
simulator: new WASMSimulator()
|
|
274
329
|
});
|
|
275
330
|
this.state = {
|
|
276
331
|
name: 'UTILITY'
|
|
277
332
|
};
|
|
278
333
|
this.logger.debug(`Entered state ${this.state.name}`);
|
|
334
|
+
// Utility state anchors at whatever the anchor block store is pointing to (tracked as latest).
|
|
335
|
+
this.setLastCallContext(Fr.ZERO, anchorBlockHeader.globalVariables.timestamp);
|
|
279
336
|
}
|
|
280
337
|
exitTopLevelState() {
|
|
281
338
|
if (this.state.name != 'TOP_LEVEL') {
|
|
@@ -334,6 +391,7 @@ import { makeTxEffect } from './utils/tx_effect_creation.js';
|
|
|
334
391
|
throw new Error(`Cannot run ${entryPointArtifact.functionType} function as utility`);
|
|
335
392
|
}
|
|
336
393
|
try {
|
|
394
|
+
const simulator = new WASMSimulator();
|
|
337
395
|
const oracle = new UtilityExecutionOracle({
|
|
338
396
|
contractAddress: call.to,
|
|
339
397
|
authWitnesses: [],
|
|
@@ -349,11 +407,13 @@ import { makeTxEffect } from './utils/tx_effect_creation.js';
|
|
|
349
407
|
capsuleService: new CapsuleService(this.capsuleStore, scopes),
|
|
350
408
|
privateEventStore: this.privateEventStore,
|
|
351
409
|
messageContextService: this.stateMachine.messageContextService,
|
|
352
|
-
contractSyncService: this.contractSyncService,
|
|
410
|
+
contractSyncService: this.stateMachine.contractSyncService,
|
|
411
|
+
l2TipsStore: this.stateMachine.node,
|
|
353
412
|
jobId: this.currentJobId,
|
|
354
|
-
scopes
|
|
413
|
+
scopes,
|
|
414
|
+
simulator
|
|
355
415
|
});
|
|
356
|
-
await
|
|
416
|
+
await simulator.executeUserCircuit(toACVMWitness(0, call.args), entryPointArtifact, new Oracle(oracle).toACIRCallback()).catch((err)=>{
|
|
357
417
|
err.message = resolveAssertionMessageFromError(err, entryPointArtifact);
|
|
358
418
|
throw new ExecutionError(err.message, {
|
|
359
419
|
contractAddress: call.to,
|
package/dest/util/encoding.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { Fr } from '@aztec/foundation/curves/bn254';
|
|
|
2
2
|
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
3
3
|
import { type ContractArtifact } from '@aztec/stdlib/abi';
|
|
4
4
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
5
|
+
import { BlockHash } from '@aztec/stdlib/block';
|
|
5
6
|
import { type ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
6
7
|
import { z } from 'zod';
|
|
7
8
|
export type ForeignCallSingle = string;
|
|
@@ -12,6 +13,7 @@ export type ForeignCallResult = {
|
|
|
12
13
|
};
|
|
13
14
|
export declare function fromSingle(obj: ForeignCallSingle): Fr;
|
|
14
15
|
export declare function addressFromSingle(obj: ForeignCallSingle): AztecAddress;
|
|
16
|
+
export declare function blockHashFromSingle(obj: ForeignCallSingle): BlockHash;
|
|
15
17
|
export declare function fromArray(obj: ForeignCallArray): Fr[];
|
|
16
18
|
/**
|
|
17
19
|
* Converts an array of Noir unsigned integers to a single tightly-packed buffer.
|
|
@@ -785,4 +787,4 @@ export declare const ForeignCallResultSchema: z.ZodObject<{
|
|
|
785
787
|
}, {
|
|
786
788
|
values: (string | string[])[];
|
|
787
789
|
}>;
|
|
788
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
790
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jb2RpbmcuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL2VuY29kaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVoRSxPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBMEIsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxLQUFLLDJCQUEyQixFQUFxQyxNQUFNLHdCQUF3QixDQUFDO0FBRTdHLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsTUFBTSxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQztBQUV2QyxNQUFNLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxFQUFFLENBQUM7QUFFeEMsTUFBTSxNQUFNLGVBQWUsR0FBRyxDQUFDLGlCQUFpQixHQUFHLGdCQUFnQixHQUFHLGdCQUFnQixHQUFHLDJCQUEyQixDQUFDLEVBQUUsQ0FBQztBQUV4SCxNQUFNLE1BQU0saUJBQWlCLEdBQUc7SUFDOUIsTUFBTSxFQUFFLENBQUMsaUJBQWlCLEdBQUcsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO0NBQ2xELENBQUM7QUFFRix3QkFBZ0IsVUFBVSxDQUFDLEdBQUcsRUFBRSxpQkFBaUIsTUFFaEQ7QUFFRCx3QkFBZ0IsaUJBQWlCLENBQUMsR0FBRyxFQUFFLGlCQUFpQixnQkFFdkQ7QUFFRCx3QkFBZ0IsbUJBQW1CLENBQUMsR0FBRyxFQUFFLGlCQUFpQixhQUV6RDtBQUVELHdCQUFnQixTQUFTLENBQUMsR0FBRyxFQUFFLGdCQUFnQixRQUU5QztBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0IsYUFBYSxDQUFDLEdBQUcsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxHQUFHLE1BQU0sQ0FNaEY7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILHdCQUFnQixrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxNQUFNLEdBQUcsTUFBTSxDQU9wSDtBQUlELHdCQUFnQixRQUFRLENBQ3RCLEtBQUssRUFBRSxZQUFZLEdBQUcsVUFBVSxHQUFHLEVBQUUsR0FBRyxNQUFNLEdBQUcsT0FBTyxHQUFHLE1BQU0sR0FBRyxNQUFNLEdBQ3pFLGlCQUFpQixDQVluQjtBQUVELHdCQUFnQixPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLGdCQUFnQixDQUVwRDtBQUVELHdCQUFnQixlQUFlLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUscUJBRS9DO0FBRUQsd0JBQWdCLGVBQWUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLGdCQUFnQixDQUVoRTtBQUVEOzs7Ozs7O0dBT0c7QUFDSCx3QkFBZ0IsaUJBQWlCLENBQy9CLFdBQVcsRUFBRSxnQkFBZ0IsRUFDN0IsTUFBTSxFQUFFLE1BQU0sR0FDYixDQUFDLGdCQUFnQixFQUFFLGlCQUFpQixDQUFDLENBWXZDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsd0JBQWdCLGlDQUFpQyxDQUMvQyxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsRUFDL0IsTUFBTSxFQUFFLE1BQU0sRUFDZCxpQkFBaUIsRUFBRSxNQUFNLEdBQ3hCLENBQUMsZ0JBQWdCLEVBQUUsaUJBQWlCLENBQUMsQ0FxQnZDO0FBRUQsd0JBQWdCLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixHQUFHLGdCQUFnQixDQUFDLEVBQUU7O0VBRWhGO0FBRUQsZUFBTyxNQUFNLHVCQUF1QixhQUFhLENBQUM7QUFFbEQsZUFBTyxNQUFNLHNCQUFzQixpQ0FBc0IsQ0FBQztBQUUxRCxlQUFPLE1BQU0scUJBQXFCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztjQUVqQyxDQUFDO0FBRUYsZUFBTyxNQUFNLHVCQUF1Qjs7Ozs7O0VBRWxDLENBQUMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../../src/util/encoding.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../../src/util/encoding.ts"],"names":[],"mappings":"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"}
|
package/dest/util/encoding.js
CHANGED
|
@@ -2,6 +2,7 @@ import { Fr } from '@aztec/foundation/curves/bn254';
|
|
|
2
2
|
import { hexToBuffer } from '@aztec/foundation/string';
|
|
3
3
|
import { ContractArtifactSchema } from '@aztec/stdlib/abi';
|
|
4
4
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
5
|
+
import { BlockHash } from '@aztec/stdlib/block';
|
|
5
6
|
import { ContractInstanceWithAddressSchema } from '@aztec/stdlib/contract';
|
|
6
7
|
import { z } from 'zod';
|
|
7
8
|
export function fromSingle(obj) {
|
|
@@ -10,6 +11,9 @@ export function fromSingle(obj) {
|
|
|
10
11
|
export function addressFromSingle(obj) {
|
|
11
12
|
return new AztecAddress(fromSingle(obj));
|
|
12
13
|
}
|
|
14
|
+
export function blockHashFromSingle(obj) {
|
|
15
|
+
return new BlockHash(fromSingle(obj));
|
|
16
|
+
}
|
|
13
17
|
export function fromArray(obj) {
|
|
14
18
|
return obj.map((str)=>Fr.fromBuffer(hexToBuffer(str)));
|
|
15
19
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/txe",
|
|
3
|
-
"version": "0.0.1-commit.
|
|
3
|
+
"version": "0.0.1-commit.e5a3663dd",
|
|
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": "0.0.1-commit.
|
|
65
|
-
"@aztec/archiver": "0.0.1-commit.
|
|
66
|
-
"@aztec/aztec-node": "0.0.1-commit.
|
|
67
|
-
"@aztec/aztec.js": "0.0.1-commit.
|
|
68
|
-
"@aztec/bb-prover": "0.0.1-commit.
|
|
69
|
-
"@aztec/constants": "0.0.1-commit.
|
|
70
|
-
"@aztec/foundation": "0.0.1-commit.
|
|
71
|
-
"@aztec/key-store": "0.0.1-commit.
|
|
72
|
-
"@aztec/kv-store": "0.0.1-commit.
|
|
73
|
-
"@aztec/protocol-contracts": "0.0.1-commit.
|
|
74
|
-
"@aztec/pxe": "0.0.1-commit.
|
|
75
|
-
"@aztec/simulator": "0.0.1-commit.
|
|
76
|
-
"@aztec/stdlib": "0.0.1-commit.
|
|
77
|
-
"@aztec/world-state": "0.0.1-commit.
|
|
64
|
+
"@aztec/accounts": "0.0.1-commit.e5a3663dd",
|
|
65
|
+
"@aztec/archiver": "0.0.1-commit.e5a3663dd",
|
|
66
|
+
"@aztec/aztec-node": "0.0.1-commit.e5a3663dd",
|
|
67
|
+
"@aztec/aztec.js": "0.0.1-commit.e5a3663dd",
|
|
68
|
+
"@aztec/bb-prover": "0.0.1-commit.e5a3663dd",
|
|
69
|
+
"@aztec/constants": "0.0.1-commit.e5a3663dd",
|
|
70
|
+
"@aztec/foundation": "0.0.1-commit.e5a3663dd",
|
|
71
|
+
"@aztec/key-store": "0.0.1-commit.e5a3663dd",
|
|
72
|
+
"@aztec/kv-store": "0.0.1-commit.e5a3663dd",
|
|
73
|
+
"@aztec/protocol-contracts": "0.0.1-commit.e5a3663dd",
|
|
74
|
+
"@aztec/pxe": "0.0.1-commit.e5a3663dd",
|
|
75
|
+
"@aztec/simulator": "0.0.1-commit.e5a3663dd",
|
|
76
|
+
"@aztec/stdlib": "0.0.1-commit.e5a3663dd",
|
|
77
|
+
"@aztec/world-state": "0.0.1-commit.e5a3663dd",
|
|
78
78
|
"zod": "^3.23.8"
|
|
79
79
|
},
|
|
80
80
|
"devDependencies": {
|
package/src/oracle/interfaces.ts
CHANGED
|
@@ -6,6 +6,7 @@ import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
|
6
6
|
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
7
7
|
import type { EventSelector, FunctionSelector } from '@aztec/stdlib/abi';
|
|
8
8
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
9
|
+
import type { PrivateLog } from '@aztec/stdlib/logs';
|
|
9
10
|
import type { UInt64 } from '@aztec/stdlib/types';
|
|
10
11
|
|
|
11
12
|
// These interfaces complement the ones defined in PXE, and combined with those contain the full list of oracles used by
|
|
@@ -58,6 +59,7 @@ export interface ITxeExecutionOracle {
|
|
|
58
59
|
txHash: TxHash;
|
|
59
60
|
noteHashes: Fr[];
|
|
60
61
|
nullifiers: Fr[];
|
|
62
|
+
privateLogs: PrivateLog[];
|
|
61
63
|
}>;
|
|
62
64
|
getPrivateEvents(selector: EventSelector, contractAddress: AztecAddress, scope: AztecAddress): Promise<Fr[][]>;
|
|
63
65
|
privateCallNewFlow(
|
|
@@ -68,7 +70,7 @@ export interface ITxeExecutionOracle {
|
|
|
68
70
|
argsHash: Fr,
|
|
69
71
|
isStaticCall: boolean,
|
|
70
72
|
jobId: string,
|
|
71
|
-
): Promise<Fr[]>;
|
|
73
|
+
): Promise<{ returnValues: Fr[]; offchainEffects: Fr[][] }>;
|
|
72
74
|
executeUtilityFunction(
|
|
73
75
|
targetContractAddress: AztecAddress,
|
|
74
76
|
functionSelector: FunctionSelector,
|