@aztec/cli-wallet 5.0.0-nightly.20260411 → 5.0.0-nightly.20260412
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.
|
@@ -28,8 +28,9 @@ export declare class CLIFeeArgs {
|
|
|
28
28
|
private gasSettings;
|
|
29
29
|
constructor(estimateOnly: boolean, paymentMethod: (wallet: Wallet, feePayer: AztecAddress, gasSettings: GasSettings) => Promise<FeePaymentMethod | undefined>, gasSettings: Partial<FieldsOf<GasSettings>>);
|
|
30
30
|
toUserFeeOptions(node: AztecNode, wallet: Wallet, from: AztecAddress): Promise<ParsedFeeOptions>;
|
|
31
|
+
private getMinFees;
|
|
31
32
|
static parse(args: RawCliFeeArgs, log: LogFn, db?: WalletDB): CLIFeeArgs;
|
|
32
33
|
static getOptions(): Option[];
|
|
33
34
|
}
|
|
34
35
|
export declare function printGasEstimates(feeOpts: FeeOptions, gasEstimates: Pick<GasSettings, 'gasLimits' | 'teardownGasLimits'>, log: LogFn): void;
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL29wdGlvbnMvZmVlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXJELE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQU8sT0FBTyxFQUFFLFdBQVcsRUFBcUIsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRixPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVoRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRW5DLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBSTNELE1BQU0sTUFBTSxhQUFhLEdBQUc7SUFDMUIsZUFBZSxFQUFFLE9BQU8sQ0FBQztJQUN6QixTQUFTLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDbkIsT0FBTyxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2pCLGFBQWEsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUN2QixxQkFBcUIsQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUNoQyxDQUFDO0FBRUYsTUFBTSxNQUFNLGdCQUFnQixHQUFHO0lBQzdCLGFBQWEsQ0FBQyxFQUFFLGdCQUFnQixDQUFDO0lBQ2pDLFdBQVcsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztDQUM5QyxDQUFDO0FBeURGLHdCQUFnQixzQkFBc0IsV0FHckM7QUEwQkQsd0JBQWdCLGtCQUFrQixDQUNoQyxPQUFPLEVBQUUsTUFBTSxFQUNmLEdBQUcsRUFBRSxLQUFLLEVBQ1YsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUNiLFlBQVksQ0FBQyxFQUFFLE9BQU8sR0FDckIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsS0FBSyxPQUFPLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLENBcUZ6RztBQXlCRCx3QkFBZ0IsWUFBWSxDQUFDLE9BQU8sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQWtCckQ7QUFDRCxxQkFBYSxVQUFVO0lBRVosWUFBWSxFQUFFLE9BQU87SUFDNUIsT0FBTyxDQUFDLGFBQWE7SUFLckIsT0FBTyxDQUFDLFdBQVc7SUFQckIsWUFDUyxZQUFZLEVBQUUsT0FBTyxFQUNwQixhQUFhLEVBQUUsQ0FDckIsTUFBTSxFQUFFLE1BQU0sRUFDZCxRQUFRLEVBQUUsWUFBWSxFQUN0QixXQUFXLEVBQUUsV0FBVyxLQUNyQixPQUFPLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLEVBQ2xDLFdBQVcsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQ2pEO0lBRUUsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxZQUFZLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBU3JHO1lBTWEsVUFBVTtJQWlCeEIsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsUUFBUSxHQUFHLFVBQVUsQ0FPdkU7SUFFRCxNQUFNLENBQUMsVUFBVSxhQUVoQjtDQUNGO0FBSUQsd0JBQWdCLGlCQUFpQixDQUMvQixPQUFPLEVBQUUsVUFBVSxFQUNuQixZQUFZLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXLEdBQUcsbUJBQW1CLENBQUMsRUFDbEUsR0FBRyxFQUFFLEtBQUssUUFJWCJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fees.d.ts","sourceRoot":"","sources":["../../../src/utils/options/fees.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAO,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"fees.d.ts","sourceRoot":"","sources":["../../../src/utils/options/fees.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAO,OAAO,EAAE,WAAW,EAAqB,MAAM,mBAAmB,CAAC;AACjF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAI3D,MAAM,MAAM,aAAa,GAAG;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,CAAC,EAAE,gBAAgB,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;CAC9C,CAAC;AAyDF,wBAAgB,sBAAsB,WAGrC;AA0BD,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,KAAK,EACV,EAAE,CAAC,EAAE,QAAQ,EACb,YAAY,CAAC,EAAE,OAAO,GACrB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,KAAK,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAqFzG;AAyBD,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAkBrD;AACD,qBAAa,UAAU;IAEZ,YAAY,EAAE,OAAO;IAC5B,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,WAAW;IAPrB,YACS,YAAY,EAAE,OAAO,EACpB,aAAa,EAAE,CACrB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,WAAW,KACrB,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,EAClC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,EACjD;IAEE,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,CASrG;YAMa,UAAU;IAiBxB,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,UAAU,CAOvE;IAED,MAAM,CAAC,UAAU,aAEhB;CACF;AAID,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,UAAU,EACnB,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,mBAAmB,CAAC,EAClE,GAAG,EAAE,KAAK,QAIX"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
2
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
3
|
-
import { Gas, GasFees, GasSettings } from '@aztec/stdlib/gas';
|
|
3
|
+
import { Gas, GasFees, GasSettings, ManaUsageEstimate } from '@aztec/stdlib/gas';
|
|
4
4
|
import { Option } from 'commander';
|
|
5
5
|
import { MIN_FEE_PADDING } from '../constants.js';
|
|
6
6
|
import { aliasedAddressParser } from './options.js';
|
|
@@ -192,7 +192,8 @@ export class CLIFeeArgs {
|
|
|
192
192
|
this.gasSettings = gasSettings;
|
|
193
193
|
}
|
|
194
194
|
async toUserFeeOptions(node, wallet, from) {
|
|
195
|
-
const
|
|
195
|
+
const minFees = await this.getMinFees(node);
|
|
196
|
+
const maxFeesPerGas = minFees.mul(1 + MIN_FEE_PADDING);
|
|
196
197
|
const gasSettings = GasSettings.fallback({
|
|
197
198
|
...this.gasSettings,
|
|
198
199
|
maxFeesPerGas
|
|
@@ -203,6 +204,25 @@ export class CLIFeeArgs {
|
|
|
203
204
|
gasSettings
|
|
204
205
|
};
|
|
205
206
|
}
|
|
207
|
+
/**
|
|
208
|
+
* Returns the worst-case min fee across predicted future slots.
|
|
209
|
+
* Falls back to getCurrentMinFees if the node doesn't support getPredictedMinFees.
|
|
210
|
+
*/ async getMinFees(node) {
|
|
211
|
+
try {
|
|
212
|
+
const predicted = await node.getPredictedMinFees(ManaUsageEstimate.Limit);
|
|
213
|
+
if (predicted.length === 0) {
|
|
214
|
+
return node.getCurrentMinFees();
|
|
215
|
+
}
|
|
216
|
+
return predicted.reduce((worst, fees)=>fees.feePerL2Gas > worst.feePerL2Gas ? fees : worst);
|
|
217
|
+
} catch (err) {
|
|
218
|
+
// Fallback for old nodes that don't support getPredictedMinFees.
|
|
219
|
+
// Only fall back on method-not-found errors (JSON-RPC code -32601); rethrow others.
|
|
220
|
+
if (err?.cause?.code === -32601 || err?.message?.includes('Method not found')) {
|
|
221
|
+
return node.getCurrentMinFees();
|
|
222
|
+
}
|
|
223
|
+
throw err;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
206
226
|
static parse(args, log, db) {
|
|
207
227
|
const estimateOnly = !!args.estimateGasOnly;
|
|
208
228
|
return new CLIFeeArgs(estimateOnly, parsePaymentMethod(args.payment ?? 'method=fee_juice', log, db, estimateOnly), parseGasSettings(args));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/cli-wallet",
|
|
3
|
-
"version": "5.0.0-nightly.
|
|
3
|
+
"version": "5.0.0-nightly.20260412",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/cmds/index.js",
|
|
@@ -67,19 +67,19 @@
|
|
|
67
67
|
]
|
|
68
68
|
},
|
|
69
69
|
"dependencies": {
|
|
70
|
-
"@aztec/accounts": "5.0.0-nightly.
|
|
71
|
-
"@aztec/aztec.js": "5.0.0-nightly.
|
|
72
|
-
"@aztec/bb.js": "5.0.0-nightly.
|
|
73
|
-
"@aztec/cli": "5.0.0-nightly.
|
|
74
|
-
"@aztec/entrypoints": "5.0.0-nightly.
|
|
75
|
-
"@aztec/ethereum": "5.0.0-nightly.
|
|
76
|
-
"@aztec/foundation": "5.0.0-nightly.
|
|
77
|
-
"@aztec/kv-store": "5.0.0-nightly.
|
|
78
|
-
"@aztec/noir-contracts.js": "5.0.0-nightly.
|
|
79
|
-
"@aztec/noir-noirc_abi": "5.0.0-nightly.
|
|
80
|
-
"@aztec/pxe": "5.0.0-nightly.
|
|
81
|
-
"@aztec/stdlib": "5.0.0-nightly.
|
|
82
|
-
"@aztec/wallet-sdk": "5.0.0-nightly.
|
|
70
|
+
"@aztec/accounts": "5.0.0-nightly.20260412",
|
|
71
|
+
"@aztec/aztec.js": "5.0.0-nightly.20260412",
|
|
72
|
+
"@aztec/bb.js": "5.0.0-nightly.20260412",
|
|
73
|
+
"@aztec/cli": "5.0.0-nightly.20260412",
|
|
74
|
+
"@aztec/entrypoints": "5.0.0-nightly.20260412",
|
|
75
|
+
"@aztec/ethereum": "5.0.0-nightly.20260412",
|
|
76
|
+
"@aztec/foundation": "5.0.0-nightly.20260412",
|
|
77
|
+
"@aztec/kv-store": "5.0.0-nightly.20260412",
|
|
78
|
+
"@aztec/noir-contracts.js": "5.0.0-nightly.20260412",
|
|
79
|
+
"@aztec/noir-noirc_abi": "5.0.0-nightly.20260412",
|
|
80
|
+
"@aztec/pxe": "5.0.0-nightly.20260412",
|
|
81
|
+
"@aztec/stdlib": "5.0.0-nightly.20260412",
|
|
82
|
+
"@aztec/wallet-sdk": "5.0.0-nightly.20260412",
|
|
83
83
|
"commander": "^12.1.0",
|
|
84
84
|
"inquirer": "^10.1.8",
|
|
85
85
|
"source-map-support": "^0.5.21",
|
|
@@ -5,7 +5,7 @@ import { Fr } from '@aztec/foundation/curves/bn254';
|
|
|
5
5
|
import type { LogFn } from '@aztec/foundation/log';
|
|
6
6
|
import type { FieldsOf } from '@aztec/foundation/types';
|
|
7
7
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
8
|
-
import { Gas, GasFees, GasSettings } from '@aztec/stdlib/gas';
|
|
8
|
+
import { Gas, GasFees, GasSettings, ManaUsageEstimate } from '@aztec/stdlib/gas';
|
|
9
9
|
import type { FeeOptions } from '@aztec/wallet-sdk/base-wallet';
|
|
10
10
|
|
|
11
11
|
import { Option } from 'commander';
|
|
@@ -257,7 +257,8 @@ export class CLIFeeArgs {
|
|
|
257
257
|
) {}
|
|
258
258
|
|
|
259
259
|
async toUserFeeOptions(node: AztecNode, wallet: Wallet, from: AztecAddress): Promise<ParsedFeeOptions> {
|
|
260
|
-
const
|
|
260
|
+
const minFees = await this.getMinFees(node);
|
|
261
|
+
const maxFeesPerGas = minFees.mul(1 + MIN_FEE_PADDING);
|
|
261
262
|
const gasSettings = GasSettings.fallback({ ...this.gasSettings, maxFeesPerGas });
|
|
262
263
|
const paymentMethod = await this.paymentMethod(wallet, from, gasSettings);
|
|
263
264
|
return {
|
|
@@ -266,6 +267,27 @@ export class CLIFeeArgs {
|
|
|
266
267
|
};
|
|
267
268
|
}
|
|
268
269
|
|
|
270
|
+
/**
|
|
271
|
+
* Returns the worst-case min fee across predicted future slots.
|
|
272
|
+
* Falls back to getCurrentMinFees if the node doesn't support getPredictedMinFees.
|
|
273
|
+
*/
|
|
274
|
+
private async getMinFees(node: AztecNode): Promise<GasFees> {
|
|
275
|
+
try {
|
|
276
|
+
const predicted = await node.getPredictedMinFees(ManaUsageEstimate.Limit);
|
|
277
|
+
if (predicted.length === 0) {
|
|
278
|
+
return node.getCurrentMinFees();
|
|
279
|
+
}
|
|
280
|
+
return predicted.reduce((worst, fees) => (fees.feePerL2Gas > worst.feePerL2Gas ? fees : worst));
|
|
281
|
+
} catch (err: any) {
|
|
282
|
+
// Fallback for old nodes that don't support getPredictedMinFees.
|
|
283
|
+
// Only fall back on method-not-found errors (JSON-RPC code -32601); rethrow others.
|
|
284
|
+
if (err?.cause?.code === -32601 || err?.message?.includes('Method not found')) {
|
|
285
|
+
return node.getCurrentMinFees();
|
|
286
|
+
}
|
|
287
|
+
throw err;
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
|
|
269
291
|
static parse(args: RawCliFeeArgs, log: LogFn, db?: WalletDB): CLIFeeArgs {
|
|
270
292
|
const estimateOnly = !!args.estimateGasOnly;
|
|
271
293
|
return new CLIFeeArgs(
|