@aztec/cli-wallet 4.0.0-nightly.20250907 → 4.0.0-nightly.20260108

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.
Files changed (99) hide show
  1. package/README.md +30 -0
  2. package/dest/bin/index.d.ts +1 -1
  3. package/dest/bin/index.js +38 -23
  4. package/dest/cmds/authorize_action.d.ts +4 -3
  5. package/dest/cmds/authorize_action.d.ts.map +1 -1
  6. package/dest/cmds/authorize_action.js +6 -7
  7. package/dest/cmds/bridge_fee_juice.d.ts +4 -4
  8. package/dest/cmds/bridge_fee_juice.d.ts.map +1 -1
  9. package/dest/cmds/bridge_fee_juice.js +9 -7
  10. package/dest/cmds/check_tx.d.ts +5 -3
  11. package/dest/cmds/check_tx.d.ts.map +1 -1
  12. package/dest/cmds/check_tx.js +144 -6
  13. package/dest/cmds/create_account.d.ts +7 -6
  14. package/dest/cmds/create_account.d.ts.map +1 -1
  15. package/dest/cmds/create_account.js +36 -48
  16. package/dest/cmds/create_authwit.d.ts +4 -3
  17. package/dest/cmds/create_authwit.d.ts.map +1 -1
  18. package/dest/cmds/create_authwit.js +6 -6
  19. package/dest/cmds/deploy.d.ts +7 -4
  20. package/dest/cmds/deploy.d.ts.map +1 -1
  21. package/dest/cmds/deploy.js +57 -46
  22. package/dest/cmds/deploy_account.d.ts +6 -8
  23. package/dest/cmds/deploy_account.d.ts.map +1 -1
  24. package/dest/cmds/deploy_account.js +36 -51
  25. package/dest/cmds/import_test_accounts.d.ts +3 -3
  26. package/dest/cmds/import_test_accounts.d.ts.map +1 -1
  27. package/dest/cmds/import_test_accounts.js +6 -9
  28. package/dest/cmds/index.d.ts +3 -3
  29. package/dest/cmds/index.d.ts.map +1 -1
  30. package/dest/cmds/index.js +73 -112
  31. package/dest/cmds/profile.d.ts +7 -4
  32. package/dest/cmds/profile.d.ts.map +1 -1
  33. package/dest/cmds/profile.js +9 -4
  34. package/dest/cmds/register_contract.d.ts +7 -3
  35. package/dest/cmds/register_contract.d.ts.map +1 -1
  36. package/dest/cmds/register_contract.js +5 -6
  37. package/dest/cmds/register_sender.d.ts +4 -3
  38. package/dest/cmds/register_sender.d.ts.map +1 -1
  39. package/dest/cmds/send.d.ts +8 -9
  40. package/dest/cmds/send.d.ts.map +1 -1
  41. package/dest/cmds/send.js +27 -24
  42. package/dest/cmds/simulate.d.ts +7 -4
  43. package/dest/cmds/simulate.d.ts.map +1 -1
  44. package/dest/cmds/simulate.js +9 -4
  45. package/dest/storage/wallet_db.d.ts +6 -16
  46. package/dest/storage/wallet_db.d.ts.map +1 -1
  47. package/dest/storage/wallet_db.js +2 -23
  48. package/dest/utils/authorizations.d.ts +3 -2
  49. package/dest/utils/authorizations.d.ts.map +1 -1
  50. package/dest/utils/authorizations.js +1 -1
  51. package/dest/utils/cli_wallet_and_node_wrapper.d.ts +12 -0
  52. package/dest/utils/cli_wallet_and_node_wrapper.d.ts.map +1 -0
  53. package/dest/utils/cli_wallet_and_node_wrapper.js +25 -0
  54. package/dest/utils/ecdsa.d.ts +1 -1
  55. package/dest/utils/options/fees.d.ts +22 -28
  56. package/dest/utils/options/fees.d.ts.map +1 -1
  57. package/dest/utils/options/fees.js +66 -133
  58. package/dest/utils/options/index.d.ts +1 -1
  59. package/dest/utils/options/options.d.ts +4 -3
  60. package/dest/utils/options/options.d.ts.map +1 -1
  61. package/dest/utils/options/options.js +1 -1
  62. package/dest/utils/profiling.d.ts +1 -1
  63. package/dest/utils/wallet.d.ts +36 -0
  64. package/dest/utils/wallet.d.ts.map +1 -0
  65. package/dest/utils/wallet.js +195 -0
  66. package/package.json +17 -14
  67. package/src/bin/index.ts +38 -31
  68. package/src/cmds/authorize_action.ts +14 -6
  69. package/src/cmds/bridge_fee_juice.ts +15 -11
  70. package/src/cmds/check_tx.ts +181 -5
  71. package/src/cmds/create_account.ts +43 -53
  72. package/src/cmds/create_authwit.ts +9 -5
  73. package/src/cmds/deploy.ts +58 -56
  74. package/src/cmds/deploy_account.ts +43 -51
  75. package/src/cmds/import_test_accounts.ts +7 -11
  76. package/src/cmds/index.ts +120 -206
  77. package/src/cmds/profile.ts +14 -6
  78. package/src/cmds/register_contract.ts +9 -11
  79. package/src/cmds/register_sender.ts +3 -2
  80. package/src/cmds/send.ts +22 -32
  81. package/src/cmds/simulate.ts +14 -6
  82. package/src/storage/wallet_db.ts +3 -31
  83. package/src/utils/authorizations.ts +3 -1
  84. package/src/utils/cli_wallet_and_node_wrapper.ts +35 -0
  85. package/src/utils/options/fees.ts +88 -178
  86. package/src/utils/options/options.ts +3 -2
  87. package/src/utils/wallet.ts +266 -0
  88. package/dest/cmds/cancel_tx.d.ts +0 -11
  89. package/dest/cmds/cancel_tx.d.ts.map +0 -1
  90. package/dest/cmds/cancel_tx.js +0 -43
  91. package/dest/utils/accounts.d.ts +0 -9
  92. package/dest/utils/accounts.d.ts.map +0 -1
  93. package/dest/utils/accounts.js +0 -61
  94. package/dest/utils/pxe_wrapper.d.ts +0 -12
  95. package/dest/utils/pxe_wrapper.d.ts.map +0 -1
  96. package/dest/utils/pxe_wrapper.js +0 -26
  97. package/src/cmds/cancel_tx.ts +0 -66
  98. package/src/utils/accounts.ts +0 -77
  99. package/src/utils/pxe_wrapper.ts +0 -32
@@ -1,27 +1,34 @@
1
- import { type AccountManager, AztecAddress, type DeployAccountOptions } from '@aztec/aztec.js';
1
+ import { AztecAddress } from '@aztec/aztec.js/addresses';
2
+ import type { AztecNode } from '@aztec/aztec.js/node';
3
+ import type { DeployAccountOptions } from '@aztec/aztec.js/wallet';
2
4
  import { prettyPrintJSON } from '@aztec/cli/cli-utils';
3
5
  import type { LogFn, Logger } from '@aztec/foundation/log';
4
6
 
5
- import { type IFeeOpts, printGasEstimates } from '../utils/options/fees.js';
7
+ import { DEFAULT_TX_TIMEOUT_S } from '../utils/cli_wallet_and_node_wrapper.js';
8
+ import type { CLIFeeArgs } from '../utils/options/fees.js';
6
9
  import { printProfileResult } from '../utils/profiling.js';
7
- import { DEFAULT_TX_TIMEOUT_S } from '../utils/pxe_wrapper.js';
10
+ import type { CLIWallet } from '../utils/wallet.js';
8
11
 
9
12
  export async function deployAccount(
10
- account: AccountManager,
13
+ wallet: CLIWallet,
14
+ aztecNode: AztecNode,
15
+ address: AztecAddress,
11
16
  wait: boolean,
17
+ deployer: AztecAddress | undefined,
12
18
  registerClass: boolean,
13
19
  publicDeploy: boolean,
14
- feeOpts: IFeeOpts,
20
+ skipInitialization: boolean,
21
+ feeOpts: CLIFeeArgs,
15
22
  json: boolean,
16
23
  verbose: boolean,
17
24
  debugLogger: Logger,
18
25
  log: LogFn,
19
26
  ) {
20
27
  const out: Record<string, any> = {};
21
- const { address, partialAddress, publicKeys } = await account.getCompleteAddress();
22
- const { initializationHash, deployer, salt } = account.getInstance();
23
- const wallet = await account.getWallet();
24
- const secretKey = wallet.getSecretKey();
28
+
29
+ const account = await wallet.createOrRetrieveAccount(address);
30
+ const { partialAddress, publicKeys } = await account.getCompleteAddress();
31
+ const { initializationHash, salt } = account.getInstance();
25
32
 
26
33
  if (json) {
27
34
  out.address = address;
@@ -33,71 +40,58 @@ export async function deployAccount(
33
40
  log(`\nNew account:\n`);
34
41
  log(`Address: ${address.toString()}`);
35
42
  log(`Public key: ${publicKeys.toString()}`);
36
- if (secretKey) {
37
- log(`Secret key: ${secretKey.toString()}`);
38
- }
39
43
  log(`Partial address: ${partialAddress.toString()}`);
40
44
  log(`Salt: ${salt.toString()}`);
41
45
  log(`Init hash: ${initializationHash.toString()}`);
42
- log(`Deployer: ${deployer.toString()}`);
43
46
  }
44
47
 
45
48
  let tx;
46
49
  let txReceipt;
50
+ const { paymentMethod, gasSettings } = await feeOpts.toUserFeeOptions(aztecNode, wallet, address);
47
51
 
48
- const deployOpts: DeployAccountOptions = {
49
- skipInstancePublication: !publicDeploy,
52
+ const delegatedDeployment = deployer && !account.address.equals(deployer);
53
+ const from = delegatedDeployment ? deployer : AztecAddress.ZERO;
54
+
55
+ const deployAccountOpts: DeployAccountOptions = {
50
56
  skipClassPublication: !registerClass,
51
- ...(await feeOpts.toDeployAccountOpts(wallet)),
57
+ skipInstancePublication: !publicDeploy,
58
+ skipInitialization,
59
+ from,
60
+ fee: { paymentMethod, gasSettings },
52
61
  };
53
62
 
54
- /*
55
- * This is usually handled by accountManager.deploy(), but we're accessing the lower
56
- * level method to get gas and timings. That means we have to replicate some of the logic here.
57
- * In case we're deploying our own account, we need to hijack the payment method for the fee,
58
- * wrapping it in the one that will make use of the freshly deployed account's
59
- * entrypoint. For reference, see aztec.js/src/account_manager.ts:deploy()
60
- * Also, salt and universalDeploy have to be explicitly provided
61
- */
62
- deployOpts.fee =
63
- !deployOpts?.deployWallet && deployOpts?.fee
64
- ? { ...deployOpts.fee, paymentMethod: await account.getSelfPaymentMethod(deployOpts.fee.paymentMethod) }
65
- : deployOpts?.fee;
66
-
67
- const deployMethod = await account.getDeployMethod(deployOpts.deployWallet);
63
+ const deployMethod = await account.getDeployMethod();
64
+ const { estimatedGas, stats } = await deployMethod.simulate({
65
+ ...deployAccountOpts,
66
+ fee: { ...deployAccountOpts.fee, estimateGas: true },
67
+ });
68
68
 
69
69
  if (feeOpts.estimateOnly) {
70
- const gas = await deployMethod.estimateGas({
71
- ...deployOpts,
72
- from: AztecAddress.ZERO,
73
- universalDeploy: true,
74
- contractAddressSalt: salt,
75
- });
76
70
  if (json) {
77
71
  out.fee = {
78
72
  gasLimits: {
79
- da: gas.gasLimits.daGas,
80
- l2: gas.gasLimits.l2Gas,
73
+ da: estimatedGas.gasLimits.daGas,
74
+ l2: estimatedGas.gasLimits.l2Gas,
81
75
  },
82
76
  teardownGasLimits: {
83
- da: gas.teardownGasLimits.daGas,
84
- l2: gas.teardownGasLimits,
77
+ da: estimatedGas.teardownGasLimits.daGas,
78
+ l2: estimatedGas.teardownGasLimits,
85
79
  },
86
80
  };
87
- } else {
88
- printGasEstimates(feeOpts, gas, log);
89
81
  }
90
82
  } else {
91
- const provenTx = await deployMethod.prove({
92
- ...deployOpts,
93
- from: AztecAddress.ZERO,
94
- universalDeploy: true,
95
- contractAddressSalt: salt,
83
+ tx = deployMethod.send({
84
+ ...deployAccountOpts,
85
+ fee: deployAccountOpts.fee
86
+ ? {
87
+ ...deployAccountOpts.fee,
88
+ gasSettings: estimatedGas,
89
+ }
90
+ : undefined,
96
91
  });
97
92
  if (verbose) {
98
- printProfileResult(provenTx.stats!, log);
93
+ printProfileResult(stats, log);
99
94
  }
100
- tx = provenTx.send();
101
95
 
102
96
  const txHash = await tx.getTxHash();
103
97
  debugLogger.debug(`Account contract tx sent with hash ${txHash.toString()}`);
@@ -124,6 +118,4 @@ export async function deployAccount(
124
118
  log(`Deploy tx fee: ${txReceipt.transactionFee}`);
125
119
  }
126
120
  }
127
-
128
- return { address, secretKey, salt };
129
121
  }
@@ -1,25 +1,21 @@
1
- import { getSchnorrAccount } from '@aztec/accounts/schnorr';
2
- import { getInitialTestAccounts } from '@aztec/accounts/testing';
3
- import { Fr, type PXE } from '@aztec/aztec.js';
1
+ import { getInitialTestAccountsData } from '@aztec/accounts/testing';
2
+ import { Fr } from '@aztec/aztec.js/fields';
4
3
  import { prettyPrintJSON } from '@aztec/cli/cli-utils';
5
4
  import type { LogFn } from '@aztec/foundation/log';
6
5
 
7
6
  import type { WalletDB } from '../storage/wallet_db.js';
7
+ import type { CLIWallet } from '../utils/wallet.js';
8
8
 
9
- export async function importTestAccounts(client: PXE, db: WalletDB, json: boolean, log: LogFn) {
10
- const testAccounts = await getInitialTestAccounts();
11
- const accounts = await Promise.all(
12
- testAccounts.map(({ secret, signingKey, salt }) => getSchnorrAccount(client, secret, signingKey, salt)),
13
- );
9
+ export async function importTestAccounts(wallet: CLIWallet, db: WalletDB, json: boolean, log: LogFn) {
10
+ const testAccounts = await getInitialTestAccountsData();
14
11
 
15
12
  const out: Record<string, any> = {};
16
13
  await Promise.all(
17
- accounts.map(async (account, i) => {
14
+ testAccounts.map(async (account, i) => {
18
15
  const alias = `test${i}`;
19
16
  const secret = testAccounts[i].secret;
20
17
  const salt = new Fr(account.salt);
21
- const address = account.getAddress();
22
- await account.register();
18
+ const address = account.address;
23
19
  await db.storeAccount(address, { type: 'schnorr', secretKey: secret, salt, alias, publicKey: undefined }, log);
24
20
 
25
21
  if (json) {