@aztec/cli-wallet 0.0.0-test.1 → 0.0.1-commit.017a351
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/README.md +30 -0
- package/dest/bin/index.d.ts +2 -1
- package/dest/bin/index.js +58 -26
- package/dest/cmds/authorize_action.d.ts +4 -3
- package/dest/cmds/authorize_action.d.ts.map +1 -1
- package/dest/cmds/authorize_action.js +11 -5
- package/dest/cmds/bridge_fee_juice.d.ts +4 -4
- package/dest/cmds/bridge_fee_juice.d.ts.map +1 -1
- package/dest/cmds/bridge_fee_juice.js +10 -8
- package/dest/cmds/check_tx.d.ts +5 -3
- package/dest/cmds/check_tx.d.ts.map +1 -1
- package/dest/cmds/check_tx.js +174 -6
- package/dest/cmds/create_account.d.ts +10 -7
- package/dest/cmds/create_account.d.ts.map +1 -1
- package/dest/cmds/create_account.js +74 -38
- package/dest/cmds/create_authwit.d.ts +4 -3
- package/dest/cmds/create_authwit.d.ts.map +1 -1
- package/dest/cmds/create_authwit.js +6 -6
- package/dest/cmds/deploy.d.ts +8 -4
- package/dest/cmds/deploy.d.ts.map +1 -1
- package/dest/cmds/deploy.js +108 -59
- package/dest/cmds/deploy_account.d.ts +7 -8
- package/dest/cmds/deploy_account.d.ts.map +1 -1
- package/dest/cmds/deploy_account.js +70 -36
- package/dest/cmds/get_fee_juice_balance.d.ts +5 -0
- package/dest/cmds/get_fee_juice_balance.d.ts.map +1 -0
- package/dest/cmds/get_fee_juice_balance.js +27 -0
- package/dest/cmds/import_test_accounts.d.ts +3 -3
- package/dest/cmds/import_test_accounts.d.ts.map +1 -1
- package/dest/cmds/import_test_accounts.js +6 -9
- package/dest/cmds/index.d.ts +3 -3
- package/dest/cmds/index.d.ts.map +1 -1
- package/dest/cmds/index.js +99 -115
- package/dest/cmds/profile.d.ts +8 -0
- package/dest/cmds/profile.d.ts.map +1 -0
- package/dest/cmds/profile.js +28 -0
- package/dest/cmds/register_contract.d.ts +7 -3
- package/dest/cmds/register_contract.d.ts.map +1 -1
- package/dest/cmds/register_contract.js +20 -7
- package/dest/cmds/register_sender.d.ts +4 -3
- package/dest/cmds/register_sender.d.ts.map +1 -1
- package/dest/cmds/send.d.ts +9 -9
- package/dest/cmds/send.d.ts.map +1 -1
- package/dest/cmds/send.js +54 -27
- package/dest/cmds/simulate.d.ts +7 -3
- package/dest/cmds/simulate.d.ts.map +1 -1
- package/dest/cmds/simulate.js +26 -20
- package/dest/storage/wallet_db.d.ts +12 -19
- package/dest/storage/wallet_db.d.ts.map +1 -1
- package/dest/storage/wallet_db.js +63 -55
- package/dest/utils/authorizations.d.ts +6 -0
- package/dest/utils/authorizations.d.ts.map +1 -0
- package/dest/utils/authorizations.js +28 -0
- package/dest/utils/cli_wallet_and_node_wrapper.d.ts +12 -0
- package/dest/utils/cli_wallet_and_node_wrapper.d.ts.map +1 -0
- package/dest/utils/cli_wallet_and_node_wrapper.js +25 -0
- package/dest/utils/constants.d.ts +4 -0
- package/dest/utils/constants.d.ts.map +1 -0
- package/dest/utils/constants.js +7 -0
- package/dest/utils/ecdsa.d.ts +1 -3
- package/dest/utils/ecdsa.d.ts.map +1 -1
- package/dest/utils/options/fees.d.ts +23 -28
- package/dest/utils/options/fees.d.ts.map +1 -1
- package/dest/utils/options/fees.js +112 -148
- package/dest/utils/options/index.d.ts +1 -1
- package/dest/utils/options/options.d.ts +9 -5
- package/dest/utils/options/options.d.ts.map +1 -1
- package/dest/utils/options/options.js +26 -14
- package/dest/utils/profiling.d.ts +5 -0
- package/dest/utils/profiling.d.ts.map +1 -0
- package/dest/utils/profiling.js +68 -0
- package/dest/utils/wallet.d.ts +44 -0
- package/dest/utils/wallet.d.ts.map +1 -0
- package/dest/utils/wallet.js +263 -0
- package/package.json +31 -23
- package/src/bin/index.ts +63 -33
- package/src/cmds/authorize_action.ts +16 -5
- package/src/cmds/bridge_fee_juice.ts +16 -12
- package/src/cmds/check_tx.ts +212 -5
- package/src/cmds/create_account.ts +89 -45
- package/src/cmds/create_authwit.ts +9 -5
- package/src/cmds/deploy.ts +115 -71
- package/src/cmds/deploy_account.ts +84 -36
- package/src/cmds/get_fee_juice_balance.ts +37 -0
- package/src/cmds/import_test_accounts.ts +7 -11
- package/src/cmds/index.ts +312 -222
- package/src/cmds/profile.ts +48 -0
- package/src/cmds/register_contract.ts +28 -5
- package/src/cmds/register_sender.ts +3 -2
- package/src/cmds/send.ts +59 -25
- package/src/cmds/simulate.ts +37 -24
- package/src/storage/wallet_db.ts +67 -68
- package/src/utils/authorizations.ts +51 -0
- package/src/utils/cli_wallet_and_node_wrapper.ts +35 -0
- package/src/utils/constants.ts +4 -0
- package/src/utils/options/fees.ts +169 -210
- package/src/utils/options/options.ts +41 -19
- package/src/utils/profiling.ts +172 -0
- package/src/utils/wallet.ts +330 -0
- package/dest/cmds/add_authwit.d.ts +0 -4
- package/dest/cmds/add_authwit.d.ts.map +0 -1
- package/dest/cmds/add_authwit.js +0 -4
- package/dest/cmds/cancel_tx.d.ts +0 -11
- package/dest/cmds/cancel_tx.d.ts.map +0 -1
- package/dest/cmds/cancel_tx.js +0 -38
- package/dest/utils/accounts.d.ts +0 -11
- package/dest/utils/accounts.d.ts.map +0 -1
- package/dest/utils/accounts.js +0 -87
- package/dest/utils/pxe_wrapper.d.ts +0 -10
- package/dest/utils/pxe_wrapper.d.ts.map +0 -1
- package/dest/utils/pxe_wrapper.js +0 -21
- package/src/cmds/add_authwit.ts +0 -13
- package/src/cmds/cancel_tx.ts +0 -62
- package/src/utils/accounts.ts +0 -102
- package/src/utils/pxe_wrapper.ts +0 -26
|
@@ -1,41 +1,36 @@
|
|
|
1
|
-
import
|
|
1
|
+
import type { FeePaymentMethod } from '@aztec/aztec.js/fee';
|
|
2
|
+
import type { AztecNode } from '@aztec/aztec.js/node';
|
|
3
|
+
import type { Wallet } from '@aztec/aztec.js/wallet';
|
|
2
4
|
import type { LogFn } from '@aztec/foundation/log';
|
|
5
|
+
import type { FieldsOf } from '@aztec/foundation/types';
|
|
6
|
+
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
3
7
|
import { GasFees, GasSettings } from '@aztec/stdlib/gas';
|
|
8
|
+
import type { FeeOptions } from '@aztec/wallet-sdk/base-wallet';
|
|
4
9
|
import { Option } from 'commander';
|
|
5
10
|
import type { WalletDB } from '../../storage/wallet_db.js';
|
|
6
|
-
export type
|
|
11
|
+
export type RawCliFeeArgs = {
|
|
7
12
|
estimateGasOnly: boolean;
|
|
8
13
|
gasLimits?: string;
|
|
9
14
|
payment?: string;
|
|
10
15
|
maxFeesPerGas?: string;
|
|
11
16
|
maxPriorityFeesPerGas?: string;
|
|
12
|
-
estimateGas?: boolean;
|
|
13
17
|
};
|
|
14
|
-
export
|
|
15
|
-
|
|
16
|
-
gasSettings
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
export declare function
|
|
21
|
-
export declare class
|
|
18
|
+
export type ParsedFeeOptions = {
|
|
19
|
+
paymentMethod?: FeePaymentMethod;
|
|
20
|
+
gasSettings?: Partial<FieldsOf<GasSettings>>;
|
|
21
|
+
};
|
|
22
|
+
export declare function getPaymentMethodOption(): Option;
|
|
23
|
+
export declare function parsePaymentMethod(payment: string, log: LogFn, db?: WalletDB, estimateOnly?: boolean): (wallet: Wallet, from: AztecAddress, gasSettings: GasSettings) => Promise<FeePaymentMethod | undefined>;
|
|
24
|
+
export declare function parseGasFees(gasFees: string): GasFees;
|
|
25
|
+
export declare class CLIFeeArgs {
|
|
22
26
|
estimateOnly: boolean;
|
|
23
|
-
|
|
24
|
-
private
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
toDeployAccountOpts(sender: AccountWallet): Promise<DeployAccountOptions>;
|
|
30
|
-
static paymentMethodOption(): Option;
|
|
27
|
+
private paymentMethod;
|
|
28
|
+
private gasSettings;
|
|
29
|
+
constructor(estimateOnly: boolean, paymentMethod: (wallet: Wallet, feePayer: AztecAddress, gasSettings: GasSettings) => Promise<FeePaymentMethod | undefined>, gasSettings: Partial<FieldsOf<GasSettings>>);
|
|
30
|
+
toUserFeeOptions(node: AztecNode, wallet: Wallet, from: AztecAddress): Promise<ParsedFeeOptions>;
|
|
31
|
+
private getMinFees;
|
|
32
|
+
static parse(args: RawCliFeeArgs, log: LogFn, db?: WalletDB): CLIFeeArgs;
|
|
31
33
|
static getOptions(): Option[];
|
|
32
|
-
static fromCli(args: CliFeeArgs, pxe: PXE, log: LogFn, db?: WalletDB): Promise<FeeOpts>;
|
|
33
34
|
}
|
|
34
|
-
export declare
|
|
35
|
-
|
|
36
|
-
static getOptions(): Option[];
|
|
37
|
-
static fromCli(args: CliFeeArgs, pxe: PXE, log: LogFn, db?: WalletDB): Promise<FeeOptsWithFeePayer>;
|
|
38
|
-
}
|
|
39
|
-
export declare function parsePaymentMethod(payment: string, allowCustomFeePayer: boolean, log: LogFn, db?: WalletDB): (sender: AccountWallet) => Promise<FeePaymentMethod>;
|
|
40
|
-
export declare function parseGasFees(gasFees: string): GasFees;
|
|
41
|
-
//# sourceMappingURL=fees.d.ts.map
|
|
35
|
+
export declare function printGasEstimates(feeOpts: FeeOptions, gasEstimates: Pick<GasSettings, 'gasLimits' | 'teardownGasLimits'>, log: LogFn): void;
|
|
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,
|
|
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,33 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
1
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
2
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
4
|
-
import { Gas, GasFees, GasSettings } from '@aztec/stdlib/gas';
|
|
3
|
+
import { Gas, GasFees, GasSettings, ManaUsageEstimate } from '@aztec/stdlib/gas';
|
|
5
4
|
import { Option } from 'commander';
|
|
6
|
-
import {
|
|
5
|
+
import { MIN_FEE_PADDING } from '../constants.js';
|
|
7
6
|
import { aliasedAddressParser } from './options.js';
|
|
8
|
-
export function printGasEstimates(feeOpts, gasEstimates, log) {
|
|
9
|
-
log(`Estimated gas usage: ${formatGasEstimate(gasEstimates)}`);
|
|
10
|
-
log(`Maximum total tx fee: ${getEstimatedCost(gasEstimates, feeOpts.gasSettings.maxFeesPerGas)}`);
|
|
11
|
-
}
|
|
12
|
-
function formatGasEstimate(estimate) {
|
|
13
|
-
return `da=${estimate.gasLimits.daGas},l2=${estimate.gasLimits.l2Gas},teardownDA=${estimate.teardownGasLimits.daGas},teardownL2=${estimate.teardownGasLimits.l2Gas}`;
|
|
14
|
-
}
|
|
15
|
-
function getEstimatedCost(estimate, maxFeesPerGas) {
|
|
16
|
-
return GasSettings.default({
|
|
17
|
-
...estimate,
|
|
18
|
-
maxFeesPerGas
|
|
19
|
-
}).getFeeLimit().toBigInt();
|
|
20
|
-
}
|
|
21
|
-
async function parseGasSettings(args, pxe) {
|
|
22
|
-
const gasLimits = args.gasLimits ? parseGasLimits(args.gasLimits) : {};
|
|
23
|
-
const maxFeesPerGas = args.maxFeesPerGas ? parseGasFees(args.maxFeesPerGas) : await pxe.getCurrentBaseFees();
|
|
24
|
-
const maxPriorityFeesPerGas = args.maxPriorityFeesPerGas ? parseGasFees(args.maxPriorityFeesPerGas) : undefined;
|
|
25
|
-
return GasSettings.default({
|
|
26
|
-
...gasLimits,
|
|
27
|
-
maxFeesPerGas,
|
|
28
|
-
maxPriorityFeesPerGas
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
7
|
function printOptionParams(params) {
|
|
32
8
|
const paramsWithDescription = Object.keys(params).filter((name)=>params[name].description);
|
|
33
9
|
const maxParamWidth = paramsWithDescription.reduce((v, name)=>Math.max(v, name.length), 0);
|
|
@@ -36,25 +12,18 @@ function printOptionParams(params) {
|
|
|
36
12
|
`${indent(5)}${name}${indent(maxParamWidth - name.length)} ${params[name].description}`,
|
|
37
13
|
params[name].default ? `Default: ${params[name].default}` : ''
|
|
38
14
|
].join(' '));
|
|
39
|
-
return descriptionList.length ? `\n Parameters:\n${descriptionList.join('\n')}` : '';
|
|
15
|
+
return descriptionList.length ? `\n Parameters:\n${descriptionList.join('\n')}\nFormat: --payment ${Object.keys(params).slice(0, 3).map((name)=>`${name}=${params[name].type}`)} ${Object.keys(params).length > 3 ? '...' : ''}` : '';
|
|
40
16
|
}
|
|
41
|
-
function getFeePaymentMethodParams(
|
|
42
|
-
const feePayer = allowCustomFeePayer ? {
|
|
43
|
-
type: 'address',
|
|
44
|
-
description: 'The account paying the fee.'
|
|
45
|
-
} : undefined;
|
|
17
|
+
function getFeePaymentMethodParams() {
|
|
46
18
|
return {
|
|
47
19
|
method: {
|
|
48
20
|
type: 'name',
|
|
49
|
-
description: 'Valid values: "fee_juice", "fpc-public", "fpc-private"
|
|
21
|
+
description: 'Valid values: "fee_juice", "fpc-public", "fpc-private", "fpc-sponsored"',
|
|
50
22
|
default: 'fee_juice'
|
|
51
23
|
},
|
|
52
|
-
...feePayer ? {
|
|
53
|
-
feePayer
|
|
54
|
-
} : {},
|
|
55
24
|
asset: {
|
|
56
25
|
type: 'address',
|
|
57
|
-
description: 'The asset used for fee payment.
|
|
26
|
+
description: 'The asset used for fee payment. Required for "fpc-public" and "fpc-private".'
|
|
58
27
|
},
|
|
59
28
|
fpc: {
|
|
60
29
|
type: 'address',
|
|
@@ -75,165 +44,97 @@ function getFeePaymentMethodParams(allowCustomFeePayer) {
|
|
|
75
44
|
messageLeafIndex: {
|
|
76
45
|
type: 'bigint',
|
|
77
46
|
description: 'The index of the claim in the l1toL2Message tree.'
|
|
78
|
-
},
|
|
79
|
-
feeRecipient: {
|
|
80
|
-
type: 'string',
|
|
81
|
-
description: 'Recipient of the fee.'
|
|
82
47
|
}
|
|
83
48
|
};
|
|
84
49
|
}
|
|
85
|
-
function getPaymentMethodOption(
|
|
86
|
-
const params = getFeePaymentMethodParams(
|
|
87
|
-
|
|
88
|
-
return new Option(`--payment <${paramList.join(',')}>`, `Fee payment method and arguments.${printOptionParams(params)}`);
|
|
50
|
+
export function getPaymentMethodOption() {
|
|
51
|
+
const params = getFeePaymentMethodParams();
|
|
52
|
+
return new Option(`--payment <options>`, `Fee payment method and arguments.${printOptionParams(params)}`);
|
|
89
53
|
}
|
|
90
|
-
function getFeeOptions(
|
|
54
|
+
function getFeeOptions() {
|
|
91
55
|
return [
|
|
92
|
-
getPaymentMethodOption(
|
|
56
|
+
getPaymentMethodOption(),
|
|
93
57
|
new Option('--gas-limits <da=100,l2=100,teardownDA=10,teardownL2=10>', 'Gas limits for the tx.'),
|
|
94
58
|
new Option('--max-fees-per-gas <da=100,l2=100>', 'Maximum fees per gas unit for DA and L2 computation.'),
|
|
95
59
|
new Option('--max-priority-fees-per-gas <da=0,l2=0>', 'Maximum priority fees per gas unit for DA and L2 computation.'),
|
|
96
|
-
new Option('--no-estimate-gas', 'Whether to automatically estimate gas limits for the tx.'),
|
|
97
60
|
new Option('--estimate-gas-only', 'Only report gas estimation for the tx, do not send it.')
|
|
98
61
|
];
|
|
99
62
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
this.paymentMethodFactory = paymentMethodFactory;
|
|
110
|
-
this.getDeployWallet = getDeployWallet;
|
|
111
|
-
this.estimateGas = estimateGas;
|
|
112
|
-
}
|
|
113
|
-
async toSendOpts(sender) {
|
|
114
|
-
return {
|
|
115
|
-
fee: {
|
|
116
|
-
estimateGas: this.estimateGas,
|
|
117
|
-
gasSettings: this.gasSettings,
|
|
118
|
-
paymentMethod: await this.paymentMethodFactory(sender)
|
|
119
|
-
}
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
async toDeployAccountOpts(sender) {
|
|
123
|
-
const paymentMethod = await this.paymentMethodFactory(sender);
|
|
124
|
-
const deployWallet = await this.getDeployWallet(sender, paymentMethod);
|
|
125
|
-
return {
|
|
126
|
-
deployWallet,
|
|
127
|
-
fee: {
|
|
128
|
-
estimateGas: this.estimateGas,
|
|
129
|
-
gasSettings: this.gasSettings,
|
|
130
|
-
paymentMethod
|
|
131
|
-
}
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
static paymentMethodOption() {
|
|
135
|
-
return getPaymentMethodOption(false);
|
|
136
|
-
}
|
|
137
|
-
static getOptions() {
|
|
138
|
-
return getFeeOptions(false);
|
|
139
|
-
}
|
|
140
|
-
static async fromCli(args, pxe, log, db) {
|
|
141
|
-
const estimateOnly = args.estimateGasOnly;
|
|
142
|
-
const gasSettings = await parseGasSettings(args, pxe);
|
|
143
|
-
const defaultPaymentMethod = async (sender)=>{
|
|
144
|
-
const { FeeJuicePaymentMethod } = await import('@aztec/aztec.js/fee');
|
|
145
|
-
return new FeeJuicePaymentMethod(sender.getAddress());
|
|
146
|
-
};
|
|
147
|
-
const getDeployWallet = ()=>{
|
|
148
|
-
// Returns undefined. The sender's wallet will be used by default.
|
|
149
|
-
return Promise.resolve(undefined);
|
|
150
|
-
};
|
|
151
|
-
return new FeeOpts(estimateOnly, gasSettings, args.payment ? parsePaymentMethod(args.payment, false, log, db) : defaultPaymentMethod, getDeployWallet, !!args.estimateGas);
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
export class FeeOptsWithFeePayer extends FeeOpts {
|
|
155
|
-
static paymentMethodOption() {
|
|
156
|
-
return getPaymentMethodOption(true);
|
|
157
|
-
}
|
|
158
|
-
static getOptions() {
|
|
159
|
-
return getFeeOptions(true);
|
|
160
|
-
}
|
|
161
|
-
static async fromCli(args, pxe, log, db) {
|
|
162
|
-
const estimateOnly = args.estimateGasOnly;
|
|
163
|
-
const gasSettings = await parseGasSettings(args, pxe);
|
|
164
|
-
const defaultPaymentMethod = async (sender)=>{
|
|
165
|
-
const { FeeJuicePaymentMethod } = await import('@aztec/aztec.js/fee');
|
|
166
|
-
return new FeeJuicePaymentMethod(sender.getAddress());
|
|
167
|
-
};
|
|
168
|
-
const getDeployWallet = async (sender, paymentMethod)=>{
|
|
169
|
-
if (paymentMethod instanceof FeeJuicePaymentMethod) {
|
|
170
|
-
const feePayer = await paymentMethod.getFeePayer();
|
|
171
|
-
if (!sender.getAddress().equals(feePayer)) {
|
|
172
|
-
return (await createOrRetrieveAccount(pxe, feePayer, db)).getWallet();
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
return undefined;
|
|
176
|
-
};
|
|
177
|
-
return new FeeOptsWithFeePayer(estimateOnly, gasSettings, args.payment ? parsePaymentMethod(args.payment, true, log, db) : defaultPaymentMethod, getDeployWallet, !!args.estimateGas);
|
|
178
|
-
}
|
|
63
|
+
function parseGasSettings(args) {
|
|
64
|
+
const gasLimits = args.gasLimits ? parseGasLimits(args.gasLimits) : {};
|
|
65
|
+
const maxFeesPerGas = args.maxFeesPerGas ? parseGasFees(args.maxFeesPerGas) : undefined;
|
|
66
|
+
const maxPriorityFeesPerGas = args.maxPriorityFeesPerGas ? parseGasFees(args.maxPriorityFeesPerGas) : undefined;
|
|
67
|
+
return {
|
|
68
|
+
...gasLimits,
|
|
69
|
+
maxFeesPerGas,
|
|
70
|
+
maxPriorityFeesPerGas
|
|
71
|
+
};
|
|
179
72
|
}
|
|
180
|
-
export function parsePaymentMethod(payment,
|
|
73
|
+
export function parsePaymentMethod(payment, log, db, estimateOnly) {
|
|
181
74
|
const parsed = payment.split(',').reduce((acc, item)=>{
|
|
182
75
|
const [dimension, value] = item.split('=');
|
|
183
76
|
acc[dimension] = value ?? 1;
|
|
184
77
|
return acc;
|
|
185
78
|
}, {});
|
|
186
|
-
const
|
|
79
|
+
const getFpc = ()=>{
|
|
187
80
|
if (!parsed.fpc) {
|
|
188
81
|
throw new Error('Missing "fpc" in payment option');
|
|
189
82
|
}
|
|
83
|
+
return aliasedAddressParser('contracts', parsed.fpc, db);
|
|
84
|
+
};
|
|
85
|
+
const getAsset = ()=>{
|
|
190
86
|
if (!parsed.asset) {
|
|
191
87
|
throw new Error('Missing "asset" in payment option');
|
|
192
88
|
}
|
|
193
|
-
|
|
194
|
-
return [
|
|
195
|
-
AztecAddress.fromString(parsed.asset),
|
|
196
|
-
fpc
|
|
197
|
-
];
|
|
89
|
+
return AztecAddress.fromString(parsed.asset);
|
|
198
90
|
};
|
|
199
|
-
return async (
|
|
91
|
+
return async (wallet, from, gasSettings)=>{
|
|
200
92
|
switch(parsed.method){
|
|
201
93
|
case 'fee_juice':
|
|
202
94
|
{
|
|
203
95
|
if (parsed.claim || parsed.claimSecret && parsed.claimAmount && parsed.messageLeafIndex) {
|
|
204
96
|
let claimAmount, claimSecret, messageLeafIndex;
|
|
205
97
|
if (parsed.claim && db) {
|
|
206
|
-
({ amount: claimAmount, secret: claimSecret, leafIndex: messageLeafIndex } = await db.
|
|
98
|
+
({ amount: claimAmount, secret: claimSecret, leafIndex: messageLeafIndex } = estimateOnly ? await db.peekBridgedFeeJuice(from, log) : await db.popBridgedFeeJuice(from, log));
|
|
207
99
|
} else {
|
|
208
100
|
({ claimAmount, claimSecret, messageLeafIndex } = parsed);
|
|
209
101
|
}
|
|
210
102
|
log(`Using Fee Juice for fee payments with claim for ${claimAmount} tokens`);
|
|
211
103
|
const { FeeJuicePaymentMethodWithClaim } = await import('@aztec/aztec.js/fee');
|
|
212
|
-
return new FeeJuicePaymentMethodWithClaim(
|
|
213
|
-
claimAmount: (typeof claimAmount === 'string' ? Fr.
|
|
214
|
-
claimSecret: Fr.
|
|
104
|
+
return new FeeJuicePaymentMethodWithClaim(from, {
|
|
105
|
+
claimAmount: (typeof claimAmount === 'string' ? Fr.fromString(claimAmount) : new Fr(claimAmount)).toBigInt(),
|
|
106
|
+
claimSecret: typeof claimSecret === 'string' ? Fr.fromString(claimSecret) : claimSecret,
|
|
215
107
|
messageLeafIndex: BigInt(messageLeafIndex)
|
|
216
108
|
});
|
|
217
109
|
} else {
|
|
218
|
-
log(`Using Fee Juice for fee payment`);
|
|
219
|
-
|
|
220
|
-
const feePayer = parsed.feePayer && allowCustomFeePayer ? aliasedAddressParser('accounts', parsed.feePayer, db) : sender.getAddress();
|
|
221
|
-
return new FeeJuicePaymentMethod(feePayer);
|
|
110
|
+
log(`Using Fee Juice for fee payment with the balance of account ${from}`);
|
|
111
|
+
return;
|
|
222
112
|
}
|
|
223
113
|
}
|
|
224
114
|
case 'fpc-public':
|
|
225
115
|
{
|
|
226
|
-
const
|
|
116
|
+
const fpc = getFpc();
|
|
117
|
+
const asset = getAsset();
|
|
118
|
+
log(`WARNING: fpc-public is deprecated and will not work on mainnet alpha. Use fee_juice or fpc-sponsored instead.`);
|
|
227
119
|
log(`Using public fee payment with asset ${asset} via paymaster ${fpc}`);
|
|
228
120
|
const { PublicFeePaymentMethod } = await import('@aztec/aztec.js/fee');
|
|
229
|
-
return new PublicFeePaymentMethod(fpc,
|
|
121
|
+
return new PublicFeePaymentMethod(fpc, from, wallet, gasSettings);
|
|
230
122
|
}
|
|
231
123
|
case 'fpc-private':
|
|
232
124
|
{
|
|
233
|
-
const
|
|
125
|
+
const fpc = getFpc();
|
|
126
|
+
const asset = getAsset();
|
|
127
|
+
log(`WARNING: fpc-private is deprecated and will not work on mainnet alpha. Use fee_juice or fpc-sponsored instead.`);
|
|
234
128
|
log(`Using private fee payment with asset ${asset} via paymaster ${fpc}`);
|
|
235
129
|
const { PrivateFeePaymentMethod } = await import('@aztec/aztec.js/fee');
|
|
236
|
-
return new PrivateFeePaymentMethod(fpc,
|
|
130
|
+
return new PrivateFeePaymentMethod(fpc, from, wallet, gasSettings);
|
|
131
|
+
}
|
|
132
|
+
case 'fpc-sponsored':
|
|
133
|
+
{
|
|
134
|
+
const sponsor = getFpc();
|
|
135
|
+
log(`Using sponsored fee payment with sponsor ${sponsor}`);
|
|
136
|
+
const { SponsoredFeePaymentMethod } = await import('@aztec/aztec.js/fee/testing');
|
|
137
|
+
return new SponsoredFeePaymentMethod(sponsor);
|
|
237
138
|
}
|
|
238
139
|
case undefined:
|
|
239
140
|
throw new Error('Missing "method" in payment option');
|
|
@@ -281,3 +182,66 @@ export function parseGasFees(gasFees) {
|
|
|
281
182
|
}
|
|
282
183
|
return new GasFees(parsed.da, parsed.l2);
|
|
283
184
|
}
|
|
185
|
+
export class CLIFeeArgs {
|
|
186
|
+
estimateOnly;
|
|
187
|
+
paymentMethod;
|
|
188
|
+
gasSettings;
|
|
189
|
+
constructor(estimateOnly, paymentMethod, gasSettings){
|
|
190
|
+
this.estimateOnly = estimateOnly;
|
|
191
|
+
this.paymentMethod = paymentMethod;
|
|
192
|
+
this.gasSettings = gasSettings;
|
|
193
|
+
}
|
|
194
|
+
async toUserFeeOptions(node, wallet, from) {
|
|
195
|
+
const minFees = await this.getMinFees(node);
|
|
196
|
+
const maxFeesPerGas = minFees.mul(1 + MIN_FEE_PADDING);
|
|
197
|
+
const gasSettings = GasSettings.fallback({
|
|
198
|
+
...this.gasSettings,
|
|
199
|
+
maxFeesPerGas
|
|
200
|
+
});
|
|
201
|
+
const paymentMethod = await this.paymentMethod(wallet, from, gasSettings);
|
|
202
|
+
return {
|
|
203
|
+
paymentMethod,
|
|
204
|
+
gasSettings
|
|
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
|
+
}
|
|
226
|
+
static parse(args, log, db) {
|
|
227
|
+
const estimateOnly = !!args.estimateGasOnly;
|
|
228
|
+
return new CLIFeeArgs(estimateOnly, parsePaymentMethod(args.payment ?? 'method=fee_juice', log, db, estimateOnly), parseGasSettings(args));
|
|
229
|
+
}
|
|
230
|
+
static getOptions() {
|
|
231
|
+
return getFeeOptions();
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
// Printing
|
|
235
|
+
export function printGasEstimates(feeOpts, gasEstimates, log) {
|
|
236
|
+
log(`Estimated gas usage: ${formatGasEstimate(gasEstimates)}`);
|
|
237
|
+
log(`Maximum total tx fee: ${getEstimatedCost(gasEstimates, feeOpts.gasSettings.maxFeesPerGas)}`);
|
|
238
|
+
}
|
|
239
|
+
function formatGasEstimate(estimate) {
|
|
240
|
+
return `da=${estimate.gasLimits.daGas},l2=${estimate.gasLimits.l2Gas},teardownDA=${estimate.teardownGasLimits.daGas},teardownL2=${estimate.teardownGasLimits.l2Gas}`;
|
|
241
|
+
}
|
|
242
|
+
function getEstimatedCost(estimate, maxFeesPerGas) {
|
|
243
|
+
return GasSettings.fallback({
|
|
244
|
+
...estimate,
|
|
245
|
+
maxFeesPerGas
|
|
246
|
+
}).getFeeLimit().toBigInt();
|
|
247
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export * from './fees.js';
|
|
2
2
|
export * from './options.js';
|
|
3
|
-
//# sourceMappingURL=
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9vcHRpb25zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsY0FBYyxDQUFDIn0=
|
|
@@ -1,20 +1,24 @@
|
|
|
1
|
+
import { TxHash } from '@aztec/aztec.js/tx';
|
|
1
2
|
import { AuthWitness } from '@aztec/stdlib/auth-witness';
|
|
2
3
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
3
4
|
import { Option } from 'commander';
|
|
4
5
|
import type { AliasType, WalletDB } from '../../storage/wallet_db.js';
|
|
5
6
|
export declare const ARTIFACT_DESCRIPTION = "Path to a compiled Aztec contract's artifact in JSON format. If executed inside a nargo workspace, a package and contract name can be specified as package@contract";
|
|
6
7
|
export declare function integerArgParser(value: string, argName: string, min?: number, max?: number): number;
|
|
7
|
-
export declare function aliasedTxHashParser(txHash: string, db?: WalletDB):
|
|
8
|
-
export declare function aliasedAuthWitParser(
|
|
8
|
+
export declare function aliasedTxHashParser(txHash: string, db?: WalletDB): TxHash;
|
|
9
|
+
export declare function aliasedAuthWitParser(witnesses: string, db?: WalletDB): AuthWitness[];
|
|
9
10
|
export declare function aliasedAddressParser(defaultPrefix: AliasType, address: string, db?: WalletDB): AztecAddress;
|
|
10
|
-
export declare function aliasedSecretKeyParser(sk: string, db?: WalletDB): import("@aztec/
|
|
11
|
+
export declare function aliasedSecretKeyParser(sk: string, db?: WalletDB): import("@aztec/foundation/schemas").Fr;
|
|
11
12
|
export declare function createAliasOption(description: string, hide: boolean): Option;
|
|
12
13
|
export declare function createAccountOption(description: string, hide: boolean, db?: WalletDB): Option;
|
|
14
|
+
export declare function createAuthwitnessOption(description: string, hide: boolean, db?: WalletDB): Option;
|
|
13
15
|
export declare function createTypeOption(mandatory: boolean): Option;
|
|
14
16
|
export declare function createArgsOption(isConstructor: boolean, db?: WalletDB): Option;
|
|
15
17
|
export declare function createContractAddressOption(db?: WalletDB): Option;
|
|
18
|
+
export declare function createDebugExecutionStepsDirOption(): Option;
|
|
19
|
+
export declare function createVerboseOption(): Option;
|
|
16
20
|
export declare function artifactPathParser(filePath: string, db?: WalletDB): Promise<string>;
|
|
17
21
|
export declare function artifactPathFromPromiseOrAlias(artifactPathPromise: Promise<string>, contractAddress: AztecAddress, db?: WalletDB): Promise<string>;
|
|
18
22
|
export declare function createArtifactOption(db?: WalletDB): Option;
|
|
19
|
-
export declare function
|
|
20
|
-
//# sourceMappingURL=
|
|
23
|
+
export declare function cleanupAuthWitnesses(authWitnesses: AuthWitness[] | undefined): AuthWitness[];
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL29wdGlvbnMvb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHbkMsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBS3RFLGVBQU8sTUFBTSxvQkFBb0Isd0tBQ3NJLENBQUM7QUFFeEssd0JBQWdCLGdCQUFnQixDQUM5QixLQUFLLEVBQUUsTUFBTSxFQUNiLE9BQU8sRUFBRSxNQUFNLEVBQ2YsR0FBRyxTQUEwQixFQUM3QixHQUFHLFNBQTBCLFVBVTlCO0FBRUQsd0JBQWdCLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUUsUUFBUSxHQUFHLE1BQU0sQ0FRekU7QUFFRCx3QkFBZ0Isb0JBQW9CLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxRQUFRLGlCQVlwRTtBQUVELHdCQUFnQixvQkFBb0IsQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUUsUUFBUSxnQkFRNUY7QUFFRCx3QkFBZ0Isc0JBQXNCLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxRQUFRLDBDQVEvRDtBQUVELHdCQUFnQixpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLFVBRW5FO0FBRUQsd0JBQWdCLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsRUFBRSxRQUFRLFVBSXBGO0FBRUQsd0JBQWdCLHVCQUF1QixDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsRUFBRSxRQUFRLFVBSXhGO0FBRUQsd0JBQWdCLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxPQUFPLFVBTWxEO0FBRUQsd0JBQWdCLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUUsUUFBUSxVQVFyRTtBQUVELHdCQUFnQiwyQkFBMkIsQ0FBQyxFQUFFLENBQUMsRUFBRSxRQUFRLFVBSXhEO0FBRUQsd0JBQWdCLGtDQUFrQyxXQUtqRDtBQUVELHdCQUFnQixtQkFBbUIsV0FLbEM7QUFFRCx3QkFBZ0Isa0JBQWtCLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxRQUFRLG1CQWFqRTtBQUVELHdCQUFzQiw4QkFBOEIsQ0FDbEQsbUJBQW1CLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUNwQyxlQUFlLEVBQUUsWUFBWSxFQUM3QixFQUFFLENBQUMsRUFBRSxRQUFRLG1CQVdkO0FBRUQsd0JBQWdCLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxFQUFFLFFBQVEsVUFJakQ7QUE2QkQsd0JBQWdCLG9CQUFvQixDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsR0FBRyxTQUFTLEdBQUcsV0FBVyxFQUFFLENBRTVGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/utils/options/options.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/utils/options/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGnC,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAKtE,eAAO,MAAM,oBAAoB,wKACsI,CAAC;AAExK,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,GAAG,SAA0B,EAC7B,GAAG,SAA0B,UAU9B;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAQzE;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,iBAYpE;AAED,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,gBAQ5F;AAED,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,0CAQ/D;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,UAEnE;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,QAAQ,UAIpF;AAED,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,QAAQ,UAIxF;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,OAAO,UAMlD;AAED,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,QAAQ,UAQrE;AAED,wBAAgB,2BAA2B,CAAC,EAAE,CAAC,EAAE,QAAQ,UAIxD;AAED,wBAAgB,kCAAkC,WAKjD;AAED,wBAAgB,mBAAmB,WAKlC;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,mBAajE;AAED,wBAAsB,8BAA8B,CAClD,mBAAmB,EAAE,OAAO,CAAC,MAAM,CAAC,EACpC,eAAe,EAAE,YAAY,EAC7B,EAAE,CAAC,EAAE,QAAQ,mBAWd;AAED,wBAAgB,oBAAoB,CAAC,EAAE,CAAC,EAAE,QAAQ,UAIjD;AA6BD,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,WAAW,EAAE,GAAG,SAAS,GAAG,WAAW,EAAE,CAE5F"}
|
|
@@ -2,7 +2,7 @@ import { parseAztecAddress, parseSecretKey, parseTxHash } from '@aztec/cli/utils
|
|
|
2
2
|
import { AuthWitness } from '@aztec/stdlib/auth-witness';
|
|
3
3
|
import { Option } from 'commander';
|
|
4
4
|
import { readdir, stat } from 'fs/promises';
|
|
5
|
-
import { AccountTypes } from '../
|
|
5
|
+
import { AccountTypes } from '../constants.js';
|
|
6
6
|
const TARGET_DIR = 'target';
|
|
7
7
|
export const ARTIFACT_DESCRIPTION = "Path to a compiled Aztec contract's artifact in JSON format. If executed inside a nargo workspace, a package and contract name can be specified as package@contract";
|
|
8
8
|
export function integerArgParser(value, argName, min = Number.MIN_SAFE_INTEGER, max = Number.MAX_SAFE_INTEGER) {
|
|
@@ -18,20 +18,23 @@ export function integerArgParser(value, argName, min = Number.MIN_SAFE_INTEGER,
|
|
|
18
18
|
export function aliasedTxHashParser(txHash, db) {
|
|
19
19
|
try {
|
|
20
20
|
return parseTxHash(txHash);
|
|
21
|
-
} catch
|
|
21
|
+
} catch {
|
|
22
22
|
const prefixed = txHash.includes(':') ? txHash : `transactions:${txHash}`;
|
|
23
23
|
const rawTxHash = db ? db.tryRetrieveAlias(prefixed) : txHash;
|
|
24
24
|
return parseTxHash(rawTxHash);
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
-
export function aliasedAuthWitParser(
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
27
|
+
export function aliasedAuthWitParser(witnesses, db) {
|
|
28
|
+
const parsedWitnesses = witnesses.split(',').map((witness)=>{
|
|
29
|
+
try {
|
|
30
|
+
return AuthWitness.fromString(witness);
|
|
31
|
+
} catch {
|
|
32
|
+
const prefixed = witness.includes(':') ? witness : `authwits:${witness}`;
|
|
33
|
+
const rawAuthWitness = db ? db.tryRetrieveAlias(prefixed) : witness;
|
|
34
|
+
return AuthWitness.fromString(rawAuthWitness);
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
return parsedWitnesses;
|
|
35
38
|
}
|
|
36
39
|
export function aliasedAddressParser(defaultPrefix, address, db) {
|
|
37
40
|
if (address.startsWith('0x')) {
|
|
@@ -57,6 +60,9 @@ export function createAliasOption(description, hide) {
|
|
|
57
60
|
export function createAccountOption(description, hide, db) {
|
|
58
61
|
return new Option(`-f, --from <string>`, description).hideHelp(hide).argParser((address)=>aliasedAddressParser('accounts', address, db));
|
|
59
62
|
}
|
|
63
|
+
export function createAuthwitnessOption(description, hide, db) {
|
|
64
|
+
return new Option('-aw, --auth-witness <string,...>', description).hideHelp(hide).argParser((witness)=>aliasedAuthWitParser(witness, db));
|
|
65
|
+
}
|
|
60
66
|
export function createTypeOption(mandatory) {
|
|
61
67
|
return new Option('-t, --type <string>', 'Type of account to create').choices(AccountTypes).default('schnorr').conflicts('account-or-address').makeOptionMandatory(mandatory);
|
|
62
68
|
}
|
|
@@ -70,6 +76,12 @@ export function createArgsOption(isConstructor, db) {
|
|
|
70
76
|
export function createContractAddressOption(db) {
|
|
71
77
|
return new Option('-ca, --contract-address <address>', 'Aztec address of the contract.').argParser((address)=>aliasedAddressParser('contracts', address, db)).makeOptionMandatory(true);
|
|
72
78
|
}
|
|
79
|
+
export function createDebugExecutionStepsDirOption() {
|
|
80
|
+
return new Option('--debug-execution-steps-dir <address>', 'Directory to write execution step artifacts for bb profiling/debugging.').makeOptionMandatory(false);
|
|
81
|
+
}
|
|
82
|
+
export function createVerboseOption() {
|
|
83
|
+
return new Option('-v, --verbose', 'Provide timings on all executed operations (synching, simulating, proving)').default(false);
|
|
84
|
+
}
|
|
73
85
|
export function artifactPathParser(filePath, db) {
|
|
74
86
|
if (filePath.includes('@')) {
|
|
75
87
|
const [pkg, contractName] = filePath.split('@');
|
|
@@ -95,14 +107,11 @@ export async function artifactPathFromPromiseOrAlias(artifactPathPromise, contra
|
|
|
95
107
|
export function createArtifactOption(db) {
|
|
96
108
|
return new Option('-c, --contract-artifact <fileLocation>', ARTIFACT_DESCRIPTION).argParser((filePath)=>artifactPathParser(filePath, db)).makeOptionMandatory(false);
|
|
97
109
|
}
|
|
98
|
-
export function createProfileOption() {
|
|
99
|
-
return new Option('-p, --profile', 'Run the real prover and get the gate count for each function in the transaction.').default(false);
|
|
100
|
-
}
|
|
101
110
|
async function contractArtifactFromWorkspace(pkg, contractName) {
|
|
102
111
|
const cwd = process.cwd();
|
|
103
112
|
try {
|
|
104
113
|
await stat(`${cwd}/Nargo.toml`);
|
|
105
|
-
} catch
|
|
114
|
+
} catch {
|
|
106
115
|
throw new Error('Invalid contract artifact argument provided. To use this option, command should be called from a nargo workspace');
|
|
107
116
|
}
|
|
108
117
|
const filesInTarget = await readdir(`${cwd}/${TARGET_DIR}`);
|
|
@@ -120,3 +129,6 @@ async function contractArtifactFromWorkspace(pkg, contractName) {
|
|
|
120
129
|
}
|
|
121
130
|
return `${cwd}/${TARGET_DIR}/${bestMatch[0]}`;
|
|
122
131
|
}
|
|
132
|
+
export function cleanupAuthWitnesses(authWitnesses) {
|
|
133
|
+
return authWitnesses?.filter((w)=>w !== undefined) ?? [];
|
|
134
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { LogFn } from '@aztec/foundation/log';
|
|
2
|
+
import type { PrivateExecutionStep } from '@aztec/stdlib/kernel';
|
|
3
|
+
import type { ProvingStats, SimulationStats } from '@aztec/stdlib/tx';
|
|
4
|
+
export declare function printProfileResult(stats: ProvingStats | SimulationStats, log: LogFn, printOracles?: boolean, executionSteps?: PrivateExecutionStep[]): void;
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsaW5nLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvcHJvZmlsaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sS0FBSyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakUsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFrQixlQUFlLEVBQXFCLE1BQU0sa0JBQWtCLENBQUM7QUFVekcsd0JBQWdCLGtCQUFrQixDQUNoQyxLQUFLLEVBQUUsWUFBWSxHQUFHLGVBQWUsRUFDckMsR0FBRyxFQUFFLEtBQUssRUFDVixZQUFZLEdBQUUsT0FBZSxFQUM3QixjQUFjLENBQUMsRUFBRSxvQkFBb0IsRUFBRSxRQTJKeEMifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profiling.d.ts","sourceRoot":"","sources":["../../src/utils/profiling.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAkB,eAAe,EAAqB,MAAM,kBAAkB,CAAC;AAUzG,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,YAAY,GAAG,eAAe,EACrC,GAAG,EAAE,KAAK,EACV,YAAY,GAAE,OAAe,EAC7B,cAAc,CAAC,EAAE,oBAAoB,EAAE,QA2JxC"}
|