@aztec/test-wallet 0.0.1-commit.d431d1c → 0.0.1-commit.e3c1de76
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/utils.d.ts +31 -6
- package/dest/utils.d.ts.map +1 -1
- package/dest/utils.js +28 -10
- package/dest/wallet/test_wallet.d.ts +17 -3
- package/dest/wallet/test_wallet.d.ts.map +1 -1
- package/dest/wallet/test_wallet.js +17 -0
- package/package.json +9 -9
- package/src/utils.ts +61 -16
- package/src/wallet/test_wallet.ts +25 -2
package/dest/utils.d.ts
CHANGED
|
@@ -1,14 +1,30 @@
|
|
|
1
1
|
import type { InitialAccountData } from '@aztec/accounts/testing';
|
|
2
2
|
import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
3
|
-
import { ContractFunctionInteraction, DeployMethod, type DeployOptions, type
|
|
4
|
-
import type
|
|
5
|
-
import { type OffchainEffect, type ProvingStats, Tx } from '@aztec/stdlib/tx';
|
|
3
|
+
import { ContractFunctionInteraction, DeployMethod, type DeployOptions, type NoWait, type SendInteractionOptions, type WaitOpts } from '@aztec/aztec.js/contracts';
|
|
4
|
+
import { type AztecNode } from '@aztec/aztec.js/node';
|
|
5
|
+
import { type OffchainEffect, type ProvingStats, Tx, TxHash, type TxReceipt } from '@aztec/stdlib/tx';
|
|
6
6
|
import type { BaseTestWallet } from './wallet/test_wallet.js';
|
|
7
|
+
/**
|
|
8
|
+
* Options for sending a proven transaction.
|
|
9
|
+
*/
|
|
10
|
+
export type ProvenTxSendOpts = {
|
|
11
|
+
/**
|
|
12
|
+
* Whether to wait for the transaction to be mined.
|
|
13
|
+
* - undefined (default): wait with default options and return TxReceipt
|
|
14
|
+
* - WaitOpts object: wait with custom options and return TxReceipt
|
|
15
|
+
* - NO_WAIT: return txHash immediately without waiting
|
|
16
|
+
*/
|
|
17
|
+
wait?: NoWait | WaitOpts;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Return type for ProvenTx.send based on wait option.
|
|
21
|
+
*/
|
|
22
|
+
export type ProvenTxSendReturn<T extends NoWait | WaitOpts | undefined> = T extends NoWait ? TxHash : TxReceipt;
|
|
7
23
|
/**
|
|
8
24
|
* Deploys the SchnorrAccount contracts backed by prefunded addresses
|
|
9
25
|
* at genesis. This can be directly used to pay for transactions in FeeJuice.
|
|
10
26
|
*/
|
|
11
|
-
export declare function deployFundedSchnorrAccounts(wallet: BaseTestWallet,
|
|
27
|
+
export declare function deployFundedSchnorrAccounts(wallet: BaseTestWallet, accountsData: InitialAccountData[], waitOptions?: WaitOpts): Promise<import("@aztec/aztec.js/wallet").AccountManager[]>;
|
|
12
28
|
/**
|
|
13
29
|
* Registers the initial local network accounts in the wallet.
|
|
14
30
|
* @param wallet - Test wallet to use to register the accounts.
|
|
@@ -26,7 +42,16 @@ export declare class ProvenTx extends Tx {
|
|
|
26
42
|
constructor(node: AztecNode, tx: Tx,
|
|
27
43
|
/** The offchain effects emitted during the execution of the transaction. */
|
|
28
44
|
offchainEffects: OffchainEffect[], stats?: ProvingStats | undefined);
|
|
29
|
-
|
|
45
|
+
/**
|
|
46
|
+
* Sends the transaction to the network.
|
|
47
|
+
* @param options - Send options including whether to wait.
|
|
48
|
+
* @returns The transaction receipt if waiting, or the transaction hash if not.
|
|
49
|
+
*/
|
|
50
|
+
send(options?: Omit<ProvenTxSendOpts, 'wait'>): Promise<TxReceipt>;
|
|
51
|
+
send<W extends ProvenTxSendOpts['wait']>(options: ProvenTxSendOpts & {
|
|
52
|
+
wait: W;
|
|
53
|
+
}): Promise<ProvenTxSendReturn<W>>;
|
|
54
|
+
private contextualizeError;
|
|
30
55
|
}
|
|
31
56
|
/**
|
|
32
57
|
* Helper function to prove an interaction via a TestWallet
|
|
@@ -36,4 +61,4 @@ export declare class ProvenTx extends Tx {
|
|
|
36
61
|
* @returns - A proven transaction ready do be sent to the network
|
|
37
62
|
*/
|
|
38
63
|
export declare function proveInteraction(wallet: BaseTestWallet, interaction: ContractFunctionInteraction | DeployMethod, options: SendInteractionOptions | DeployOptions): Promise<ProvenTx>;
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWxFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQ0wsMkJBQTJCLEVBQzNCLFlBQVksRUFDWixLQUFLLGFBQWEsRUFFbEIsS0FBSyxNQUFNLEVBQ1gsS0FBSyxzQkFBc0IsRUFDM0IsS0FBSyxRQUFRLEVBRWQsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsS0FBSyxTQUFTLEVBQWEsTUFBTSxzQkFBc0IsQ0FBQztBQUVqRSxPQUFPLEVBQUUsS0FBSyxjQUFjLEVBQUUsS0FBSyxZQUFZLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBSXRHLE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTlEOztHQUVHO0FBQ0gsTUFBTSxNQUFNLGdCQUFnQixHQUFHO0lBQzdCOzs7OztPQUtHO0lBQ0gsSUFBSSxDQUFDLEVBQUUsTUFBTSxHQUFHLFFBQVEsQ0FBQztDQUMxQixDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLE1BQU0sa0JBQWtCLENBQUMsQ0FBQyxTQUFTLE1BQU0sR0FBRyxRQUFRLEdBQUcsU0FBUyxJQUFJLENBQUMsU0FBUyxNQUFNLEdBQUcsTUFBTSxHQUFHLFNBQVMsQ0FBQztBQUVoSDs7O0dBR0c7QUFDSCx3QkFBc0IsMkJBQTJCLENBQy9DLE1BQU0sRUFBRSxjQUFjLEVBQ3RCLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxFQUNsQyxXQUFXLENBQUMsRUFBRSxRQUFRLDhEQWdCdkI7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQXNCLDJDQUEyQyxDQUFDLE1BQU0sRUFBRSxjQUFjLEdBQUcsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDLENBT2pIO0FBQ0Q7O0dBRUc7QUFDSCxxQkFBYSxRQUFTLFNBQVEsRUFBRTtJQUU1QixPQUFPLENBQUMsSUFBSTtJQUVaLDRFQUE0RTtJQUNyRSxlQUFlLEVBQUUsY0FBYyxFQUFFO0lBRWpDLEtBQUssQ0FBQztJQU5mLFlBQ1UsSUFBSSxFQUFFLFNBQVMsRUFDdkIsRUFBRSxFQUFFLEVBQUU7SUFDTiw0RUFBNEU7SUFDckUsZUFBZSxFQUFFLGNBQWMsRUFBRSxFQUVqQyxLQUFLLENBQUMsMEJBQWMsRUFHNUI7SUFFRDs7OztPQUlHO0lBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFbkUsSUFBSSxDQUFDLENBQUMsU0FBUyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEdBQUc7UUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0tBQUUsR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQWVsSCxPQUFPLENBQUMsa0JBQWtCO0NBVTNCO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsd0JBQXNCLGdCQUFnQixDQUNwQyxNQUFNLEVBQUUsY0FBYyxFQUN0QixXQUFXLEVBQUUsMkJBQTJCLEdBQUcsWUFBWSxFQUN2RCxPQUFPLEVBQUUsc0JBQXNCLEdBQUcsYUFBYSxxQkFTaEQifQ==
|
package/dest/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EACL,2BAA2B,EAC3B,YAAY,EACZ,KAAK,aAAa,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EACL,2BAA2B,EAC3B,YAAY,EACZ,KAAK,aAAa,EAElB,KAAK,MAAM,EACX,KAAK,sBAAsB,EAC3B,KAAK,QAAQ,EAEd,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,sBAAsB,CAAC;AAEjE,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAItG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,MAAM,GAAG,QAAQ,GAAG,SAAS,IAAI,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAEhH;;;GAGG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,cAAc,EACtB,YAAY,EAAE,kBAAkB,EAAE,EAClC,WAAW,CAAC,EAAE,QAAQ,8DAgBvB;AAED;;;;GAIG;AACH,wBAAsB,2CAA2C,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAOjH;AACD;;GAEG;AACH,qBAAa,QAAS,SAAQ,EAAE;IAE5B,OAAO,CAAC,IAAI;IAEZ,4EAA4E;IACrE,eAAe,EAAE,cAAc,EAAE;IAEjC,KAAK,CAAC;IANf,YACU,IAAI,EAAE,SAAS,EACvB,EAAE,EAAE,EAAE;IACN,4EAA4E;IACrE,eAAe,EAAE,cAAc,EAAE,EAEjC,KAAK,CAAC,0BAAc,EAG5B;IAED;;;;OAIG;IACH,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAEnE,IAAI,CAAC,CAAC,SAAS,gBAAgB,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,gBAAgB,GAAG;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;IAelH,OAAO,CAAC,kBAAkB;CAU3B;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,2BAA2B,GAAG,YAAY,EACvD,OAAO,EAAE,sBAAsB,GAAG,aAAa,qBAShD"}
|
package/dest/utils.js
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { getInitialTestAccountsData } from '@aztec/accounts/testing/lazy';
|
|
2
2
|
import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
3
|
-
import { DeployMethod,
|
|
3
|
+
import { DeployMethod, NO_WAIT, toSendOptions } from '@aztec/aztec.js/contracts';
|
|
4
|
+
import { waitForTx } from '@aztec/aztec.js/node';
|
|
5
|
+
import { SimulationError } from '@aztec/stdlib/errors';
|
|
4
6
|
import { Tx } from '@aztec/stdlib/tx';
|
|
7
|
+
import { inspect } from 'util';
|
|
5
8
|
/**
|
|
6
9
|
* Deploys the SchnorrAccount contracts backed by prefunded addresses
|
|
7
10
|
* at genesis. This can be directly used to pay for transactions in FeeJuice.
|
|
8
|
-
*/ export async function deployFundedSchnorrAccounts(wallet,
|
|
11
|
+
*/ export async function deployFundedSchnorrAccounts(wallet, accountsData, waitOptions) {
|
|
9
12
|
const accountManagers = [];
|
|
10
13
|
// Serial due to https://github.com/AztecProtocol/aztec-packages/issues/12045
|
|
11
14
|
for(let i = 0; i < accountsData.length; i++){
|
|
@@ -14,8 +17,9 @@ import { Tx } from '@aztec/stdlib/tx';
|
|
|
14
17
|
const deployMethod = await accountManager.getDeployMethod();
|
|
15
18
|
await deployMethod.send({
|
|
16
19
|
from: AztecAddress.ZERO,
|
|
17
|
-
skipClassPublication: i !== 0
|
|
18
|
-
|
|
20
|
+
skipClassPublication: i !== 0,
|
|
21
|
+
wait: waitOptions
|
|
22
|
+
});
|
|
19
23
|
accountManagers.push(accountManager);
|
|
20
24
|
}
|
|
21
25
|
return accountManagers;
|
|
@@ -40,12 +44,26 @@ import { Tx } from '@aztec/stdlib/tx';
|
|
|
40
44
|
stats){
|
|
41
45
|
super(tx.getTxHash(), tx.data, tx.chonkProof, tx.contractClassLogFields, tx.publicFunctionCalldata), this.node = node, this.offchainEffects = offchainEffects, this.stats = stats;
|
|
42
46
|
}
|
|
43
|
-
send() {
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
};
|
|
48
|
-
|
|
47
|
+
async send(options) {
|
|
48
|
+
const txHash = this.getTxHash();
|
|
49
|
+
await this.node.sendTx(this).catch((err)=>{
|
|
50
|
+
throw this.contextualizeError(err, inspect(this));
|
|
51
|
+
});
|
|
52
|
+
if (options?.wait === NO_WAIT) {
|
|
53
|
+
return txHash;
|
|
54
|
+
}
|
|
55
|
+
const waitOpts = typeof options?.wait === 'object' ? options.wait : undefined;
|
|
56
|
+
return await waitForTx(this.node, txHash, waitOpts);
|
|
57
|
+
}
|
|
58
|
+
contextualizeError(err, ...context) {
|
|
59
|
+
let contextStr = '';
|
|
60
|
+
if (context.length > 0) {
|
|
61
|
+
contextStr = `\nContext:\n${context.join('\n')}`;
|
|
62
|
+
}
|
|
63
|
+
if (err instanceof SimulationError) {
|
|
64
|
+
err.setAztecContext(contextStr);
|
|
65
|
+
}
|
|
66
|
+
return err;
|
|
49
67
|
}
|
|
50
68
|
}
|
|
51
69
|
/**
|
|
@@ -7,7 +7,7 @@ import { AuthWitness } from '@aztec/stdlib/auth-witness';
|
|
|
7
7
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
8
8
|
import type { ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
9
9
|
import type { NoteDao, NotesFilter } from '@aztec/stdlib/note';
|
|
10
|
-
import type { TxSimulationResult } from '@aztec/stdlib/tx';
|
|
10
|
+
import type { BlockHeader, TxHash, TxReceipt, TxSimulationResult } from '@aztec/stdlib/tx';
|
|
11
11
|
import { ExecutionPayload } from '@aztec/stdlib/tx';
|
|
12
12
|
import { BaseWallet } from '@aztec/wallet-sdk/base-wallet';
|
|
13
13
|
import { ProvenTx } from '../utils.js';
|
|
@@ -126,7 +126,14 @@ export declare abstract class BaseTestWallet extends BaseWallet {
|
|
|
126
126
|
* @param opts - The options to configure the interaction
|
|
127
127
|
* @returns - A proven tx ready to be sent to the network
|
|
128
128
|
*/
|
|
129
|
-
proveTx(exec: ExecutionPayload, opts: SendOptions): Promise<ProvenTx>;
|
|
129
|
+
proveTx(exec: ExecutionPayload, opts: Omit<SendOptions, 'wait'>): Promise<ProvenTx>;
|
|
130
|
+
/**
|
|
131
|
+
* Retrieves the transaction receipt for a given transaction hash.
|
|
132
|
+
* This is a passthrough to the underlying node, provided for convenience in testing.
|
|
133
|
+
* @param txHash - The hash of the transaction.
|
|
134
|
+
* @returns The transaction receipt.
|
|
135
|
+
*/
|
|
136
|
+
getTxReceipt(txHash: TxHash): Promise<TxReceipt>;
|
|
130
137
|
/**
|
|
131
138
|
* A debugging utility to get notes based on the provided filter.
|
|
132
139
|
*
|
|
@@ -139,6 +146,13 @@ export declare abstract class BaseTestWallet extends BaseWallet {
|
|
|
139
146
|
* @returns The requested notes.
|
|
140
147
|
*/
|
|
141
148
|
getNotes(filter: NotesFilter): Promise<NoteDao[]>;
|
|
149
|
+
/** Returns the block header up to which the wallet has synced. */
|
|
150
|
+
getSyncedBlockHeader(): Promise<BlockHeader>;
|
|
151
|
+
/**
|
|
152
|
+
* Triggers a sync of the wallet with the node to update the latest block header.
|
|
153
|
+
* Blocks until the sync is complete.
|
|
154
|
+
*/
|
|
155
|
+
sync(): Promise<void>;
|
|
142
156
|
/**
|
|
143
157
|
* Stops the internal job queue.
|
|
144
158
|
*
|
|
@@ -146,4 +160,4 @@ export declare abstract class BaseTestWallet extends BaseWallet {
|
|
|
146
160
|
*/
|
|
147
161
|
stop(): Promise<void>;
|
|
148
162
|
}
|
|
149
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
163
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF93YWxsZXQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93YWxsZXQvdGVzdF93YWxsZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsS0FBSyxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQXFCLE1BQU0seUJBQXlCLENBQUM7QUFDaEcsT0FBTyxFQUNMLEtBQUssVUFBVSxFQUNmLEtBQUsscUNBQXFDLEVBQzFDLEtBQUssZUFBZSxFQUNwQixtQ0FBbUMsRUFJcEMsTUFBTSwrQkFBK0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsY0FBYyxFQUFFLEtBQUssV0FBVyxFQUFFLEtBQUssZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFaEcsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sS0FBSyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUUsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQy9ELE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0YsT0FBTyxFQUFFLGdCQUFnQixFQUEwQixNQUFNLGtCQUFrQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUUzRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXZDOztHQUVHO0FBQ0gsTUFBTSxXQUFXLFdBQVc7SUFDMUI7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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test_wallet.d.ts","sourceRoot":"","sources":["../../src/wallet/test_wallet.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,eAAe,EAAqB,MAAM,yBAAyB,CAAC;AAChG,OAAO,EACL,KAAK,UAAU,EACf,KAAK,qCAAqC,EAC1C,KAAK,eAAe,EACpB,mCAAmC,EAIpC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEhG,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"test_wallet.d.ts","sourceRoot":"","sources":["../../src/wallet/test_wallet.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,eAAe,EAAqB,MAAM,yBAAyB,CAAC;AAChG,OAAO,EACL,KAAK,UAAU,EACf,KAAK,qCAAqC,EAC1C,KAAK,eAAe,EACpB,mCAAmC,EAIpC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEhG,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAA0B,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,MAAM,EAAE,EAAE,CAAC;IACX;;OAEG;IACH,IAAI,EAAE,EAAE,CAAC;IACT;;OAEG;IACH,QAAQ,EAAE,eAAe,CAAC;CAC3B;AAED;;;;GAIG;AACH,8BAAsB,cAAe,SAAQ,UAAU;IACrD,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAa;IAErD;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,oBAAoB,CAAS;IAErC,6DAA6D;IAC7D,0BAA0B,SAEzB;IAED,8DAA8D;IAC9D,2BAA2B,SAE1B;IAED,gBAAgB,CAAC,KAAK,CAAC,EAAE,MAAM,QAE9B;IAED,SAAS,CAAC,qBAAqB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAavE;IAED,WAAW;;;SAEV;IAED;;;;;;OAMG;IACG,aAAa,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,CAiBtE;IAED,QAAQ,CAAC,oBAAoB,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC9F,QAAQ,CAAC,mBAAmB,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAChG,QAAQ,CAAC,mBAAmB,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAEhG;;;;;;;;;;OAUG;IACH,cAAc,CACZ,UAAU,EAAE,YAAY,EACxB,MAAM,EAAE,eAAe,GAAG,UAAU,GAAG,qCAAqC,EAC5E,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC;QACT,yEAAyE;QACzE,gBAAgB,EAAE,OAAO,CAAC;QAC1B,wEAAwE;QACxE,eAAe,EAAE,OAAO,CAAC;KAC1B,CAAC,CAED;IAED;;;;;;OAMG;IACI,gBAAgB,CACrB,IAAI,EAAE,YAAY,EAClB,mBAAmB,EAAE,EAAE,GAAG,eAAe,GAAG,UAAU,GAAG,qCAAqC,EAC9F,UAAU,EAAE,OAAO,GAClB,OAAO,CAAC,mCAAmC,CAAC,CAE9C;IAED;;;;;;OAMG;IACmB,aAAa,CACjC,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,eAAe,GAAG,UAAU,GAAG,qCAAqC,GAC3E,OAAO,CAAC,WAAW,CAAC,CActB;IAED;;;;;OAKG;IACH,QAAQ,CAAC,qBAAqB,CAC5B,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,2BAA2B,CAAC;QAAC,QAAQ,EAAE,gBAAgB,CAAA;KAAE,CAAC,CAAC;IAErF,UAAU,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA6BhH;IAED;;;;;;;;OAQG;IACG,OAAO,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAUxF;IAED;;;;;OAKG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAE/C;IAED;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAEhD;IAED,kEAAkE;IAClE,oBAAoB,IAAI,OAAO,CAAC,WAAW,CAAC,CAE3C;IAED;;;OAGG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAEpB;IAED;;;;OAIG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAEpB;CACF"}
|
|
@@ -163,6 +163,14 @@ import { ProvenTx } from '../utils.js';
|
|
|
163
163
|
return new ProvenTx(this.aztecNode, await txProvingResult.toTx(), txProvingResult.getOffchainEffects(), txProvingResult.stats);
|
|
164
164
|
}
|
|
165
165
|
/**
|
|
166
|
+
* Retrieves the transaction receipt for a given transaction hash.
|
|
167
|
+
* This is a passthrough to the underlying node, provided for convenience in testing.
|
|
168
|
+
* @param txHash - The hash of the transaction.
|
|
169
|
+
* @returns The transaction receipt.
|
|
170
|
+
*/ getTxReceipt(txHash) {
|
|
171
|
+
return this.aztecNode.getTxReceipt(txHash);
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
166
174
|
* A debugging utility to get notes based on the provided filter.
|
|
167
175
|
*
|
|
168
176
|
* Note that this should not be used in production code because the structure of notes is considered to be
|
|
@@ -175,6 +183,15 @@ import { ProvenTx } from '../utils.js';
|
|
|
175
183
|
*/ getNotes(filter) {
|
|
176
184
|
return this.pxe.debug.getNotes(filter);
|
|
177
185
|
}
|
|
186
|
+
/** Returns the block header up to which the wallet has synced. */ getSyncedBlockHeader() {
|
|
187
|
+
return this.pxe.debug.getSyncedBlockHeader();
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Triggers a sync of the wallet with the node to update the latest block header.
|
|
191
|
+
* Blocks until the sync is complete.
|
|
192
|
+
*/ sync() {
|
|
193
|
+
return this.pxe.debug.sync();
|
|
194
|
+
}
|
|
178
195
|
/**
|
|
179
196
|
* Stops the internal job queue.
|
|
180
197
|
*
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/test-wallet",
|
|
3
3
|
"homepage": "https://github.com/AztecProtocol/aztec-packages/tree/master/yarn-project/test-wallet",
|
|
4
|
-
"version": "0.0.1-commit.
|
|
4
|
+
"version": "0.0.1-commit.e3c1de76",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
7
7
|
"./client/bundle": "./dest/bundle.js",
|
|
@@ -62,14 +62,14 @@
|
|
|
62
62
|
]
|
|
63
63
|
},
|
|
64
64
|
"dependencies": {
|
|
65
|
-
"@aztec/accounts": "0.0.1-commit.
|
|
66
|
-
"@aztec/aztec.js": "0.0.1-commit.
|
|
67
|
-
"@aztec/entrypoints": "0.0.1-commit.
|
|
68
|
-
"@aztec/foundation": "0.0.1-commit.
|
|
69
|
-
"@aztec/noir-contracts.js": "0.0.1-commit.
|
|
70
|
-
"@aztec/pxe": "0.0.1-commit.
|
|
71
|
-
"@aztec/stdlib": "0.0.1-commit.
|
|
72
|
-
"@aztec/wallet-sdk": "0.0.1-commit.
|
|
65
|
+
"@aztec/accounts": "0.0.1-commit.e3c1de76",
|
|
66
|
+
"@aztec/aztec.js": "0.0.1-commit.e3c1de76",
|
|
67
|
+
"@aztec/entrypoints": "0.0.1-commit.e3c1de76",
|
|
68
|
+
"@aztec/foundation": "0.0.1-commit.e3c1de76",
|
|
69
|
+
"@aztec/noir-contracts.js": "0.0.1-commit.e3c1de76",
|
|
70
|
+
"@aztec/pxe": "0.0.1-commit.e3c1de76",
|
|
71
|
+
"@aztec/stdlib": "0.0.1-commit.e3c1de76",
|
|
72
|
+
"@aztec/wallet-sdk": "0.0.1-commit.e3c1de76"
|
|
73
73
|
},
|
|
74
74
|
"devDependencies": {
|
|
75
75
|
"@jest/globals": "^30.0.0",
|
package/src/utils.ts
CHANGED
|
@@ -5,23 +5,44 @@ import {
|
|
|
5
5
|
ContractFunctionInteraction,
|
|
6
6
|
DeployMethod,
|
|
7
7
|
type DeployOptions,
|
|
8
|
+
NO_WAIT,
|
|
9
|
+
type NoWait,
|
|
8
10
|
type SendInteractionOptions,
|
|
9
|
-
SentTx,
|
|
10
11
|
type WaitOpts,
|
|
11
12
|
toSendOptions,
|
|
12
13
|
} from '@aztec/aztec.js/contracts';
|
|
13
|
-
import type
|
|
14
|
-
import {
|
|
14
|
+
import { type AztecNode, waitForTx } from '@aztec/aztec.js/node';
|
|
15
|
+
import { SimulationError } from '@aztec/stdlib/errors';
|
|
16
|
+
import { type OffchainEffect, type ProvingStats, Tx, TxHash, type TxReceipt } from '@aztec/stdlib/tx';
|
|
17
|
+
|
|
18
|
+
import { inspect } from 'util';
|
|
15
19
|
|
|
16
20
|
import type { BaseTestWallet } from './wallet/test_wallet.js';
|
|
17
21
|
|
|
22
|
+
/**
|
|
23
|
+
* Options for sending a proven transaction.
|
|
24
|
+
*/
|
|
25
|
+
export type ProvenTxSendOpts = {
|
|
26
|
+
/**
|
|
27
|
+
* Whether to wait for the transaction to be mined.
|
|
28
|
+
* - undefined (default): wait with default options and return TxReceipt
|
|
29
|
+
* - WaitOpts object: wait with custom options and return TxReceipt
|
|
30
|
+
* - NO_WAIT: return txHash immediately without waiting
|
|
31
|
+
*/
|
|
32
|
+
wait?: NoWait | WaitOpts;
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Return type for ProvenTx.send based on wait option.
|
|
37
|
+
*/
|
|
38
|
+
export type ProvenTxSendReturn<T extends NoWait | WaitOpts | undefined> = T extends NoWait ? TxHash : TxReceipt;
|
|
39
|
+
|
|
18
40
|
/**
|
|
19
41
|
* Deploys the SchnorrAccount contracts backed by prefunded addresses
|
|
20
42
|
* at genesis. This can be directly used to pay for transactions in FeeJuice.
|
|
21
43
|
*/
|
|
22
44
|
export async function deployFundedSchnorrAccounts(
|
|
23
45
|
wallet: BaseTestWallet,
|
|
24
|
-
aztecNode: AztecNode,
|
|
25
46
|
accountsData: InitialAccountData[],
|
|
26
47
|
waitOptions?: WaitOpts,
|
|
27
48
|
) {
|
|
@@ -31,12 +52,11 @@ export async function deployFundedSchnorrAccounts(
|
|
|
31
52
|
const { secret, salt, signingKey } = accountsData[i];
|
|
32
53
|
const accountManager = await wallet.createSchnorrAccount(secret, salt, signingKey);
|
|
33
54
|
const deployMethod = await accountManager.getDeployMethod();
|
|
34
|
-
await deployMethod
|
|
35
|
-
.
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
.wait(waitOptions);
|
|
55
|
+
await deployMethod.send({
|
|
56
|
+
from: AztecAddress.ZERO,
|
|
57
|
+
skipClassPublication: i !== 0, // Publish the contract class at most once.
|
|
58
|
+
wait: waitOptions,
|
|
59
|
+
});
|
|
40
60
|
accountManagers.push(accountManager);
|
|
41
61
|
}
|
|
42
62
|
return accountManagers;
|
|
@@ -70,12 +90,37 @@ export class ProvenTx extends Tx {
|
|
|
70
90
|
super(tx.getTxHash(), tx.data, tx.chonkProof, tx.contractClassLogFields, tx.publicFunctionCalldata);
|
|
71
91
|
}
|
|
72
92
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
93
|
+
/**
|
|
94
|
+
* Sends the transaction to the network.
|
|
95
|
+
* @param options - Send options including whether to wait.
|
|
96
|
+
* @returns The transaction receipt if waiting, or the transaction hash if not.
|
|
97
|
+
*/
|
|
98
|
+
send(options?: Omit<ProvenTxSendOpts, 'wait'>): Promise<TxReceipt>;
|
|
99
|
+
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
100
|
+
send<W extends ProvenTxSendOpts['wait']>(options: ProvenTxSendOpts & { wait: W }): Promise<ProvenTxSendReturn<W>>;
|
|
101
|
+
async send(options?: ProvenTxSendOpts): Promise<TxHash | TxReceipt> {
|
|
102
|
+
const txHash = this.getTxHash();
|
|
103
|
+
await this.node.sendTx(this).catch(err => {
|
|
104
|
+
throw this.contextualizeError(err, inspect(this));
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
if (options?.wait === NO_WAIT) {
|
|
108
|
+
return txHash;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
const waitOpts = typeof options?.wait === 'object' ? options.wait : undefined;
|
|
112
|
+
return await waitForTx(this.node, txHash, waitOpts);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
private contextualizeError(err: Error, ...context: string[]): Error {
|
|
116
|
+
let contextStr = '';
|
|
117
|
+
if (context.length > 0) {
|
|
118
|
+
contextStr = `\nContext:\n${context.join('\n')}`;
|
|
119
|
+
}
|
|
120
|
+
if (err instanceof SimulationError) {
|
|
121
|
+
err.setAztecContext(contextStr);
|
|
122
|
+
}
|
|
123
|
+
return err;
|
|
79
124
|
}
|
|
80
125
|
}
|
|
81
126
|
|
|
@@ -18,7 +18,7 @@ import { AuthWitness } from '@aztec/stdlib/auth-witness';
|
|
|
18
18
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
19
19
|
import type { ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
20
20
|
import type { NoteDao, NotesFilter } from '@aztec/stdlib/note';
|
|
21
|
-
import type { TxSimulationResult } from '@aztec/stdlib/tx';
|
|
21
|
+
import type { BlockHeader, TxHash, TxReceipt, TxSimulationResult } from '@aztec/stdlib/tx';
|
|
22
22
|
import { ExecutionPayload, mergeExecutionPayloads } from '@aztec/stdlib/tx';
|
|
23
23
|
import { BaseWallet } from '@aztec/wallet-sdk/base-wallet';
|
|
24
24
|
|
|
@@ -245,7 +245,7 @@ export abstract class BaseTestWallet extends BaseWallet {
|
|
|
245
245
|
* @param opts - The options to configure the interaction
|
|
246
246
|
* @returns - A proven tx ready to be sent to the network
|
|
247
247
|
*/
|
|
248
|
-
async proveTx(exec: ExecutionPayload, opts: SendOptions): Promise<ProvenTx> {
|
|
248
|
+
async proveTx(exec: ExecutionPayload, opts: Omit<SendOptions, 'wait'>): Promise<ProvenTx> {
|
|
249
249
|
const fee = await this.completeFeeOptions(opts.from, exec.feePayer, opts.fee?.gasSettings);
|
|
250
250
|
const txRequest = await this.createTxExecutionRequestFromPayloadAndFee(exec, opts.from, fee);
|
|
251
251
|
const txProvingResult = await this.pxe.proveTx(txRequest);
|
|
@@ -257,6 +257,16 @@ export abstract class BaseTestWallet extends BaseWallet {
|
|
|
257
257
|
);
|
|
258
258
|
}
|
|
259
259
|
|
|
260
|
+
/**
|
|
261
|
+
* Retrieves the transaction receipt for a given transaction hash.
|
|
262
|
+
* This is a passthrough to the underlying node, provided for convenience in testing.
|
|
263
|
+
* @param txHash - The hash of the transaction.
|
|
264
|
+
* @returns The transaction receipt.
|
|
265
|
+
*/
|
|
266
|
+
getTxReceipt(txHash: TxHash): Promise<TxReceipt> {
|
|
267
|
+
return this.aztecNode.getTxReceipt(txHash);
|
|
268
|
+
}
|
|
269
|
+
|
|
260
270
|
/**
|
|
261
271
|
* A debugging utility to get notes based on the provided filter.
|
|
262
272
|
*
|
|
@@ -272,6 +282,19 @@ export abstract class BaseTestWallet extends BaseWallet {
|
|
|
272
282
|
return this.pxe.debug.getNotes(filter);
|
|
273
283
|
}
|
|
274
284
|
|
|
285
|
+
/** Returns the block header up to which the wallet has synced. */
|
|
286
|
+
getSyncedBlockHeader(): Promise<BlockHeader> {
|
|
287
|
+
return this.pxe.debug.getSyncedBlockHeader();
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
/**
|
|
291
|
+
* Triggers a sync of the wallet with the node to update the latest block header.
|
|
292
|
+
* Blocks until the sync is complete.
|
|
293
|
+
*/
|
|
294
|
+
sync(): Promise<void> {
|
|
295
|
+
return this.pxe.debug.sync();
|
|
296
|
+
}
|
|
297
|
+
|
|
275
298
|
/**
|
|
276
299
|
* Stops the internal job queue.
|
|
277
300
|
*
|