@aztec/cli-wallet 0.0.0-test.1 → 0.0.1-commit.0208eb9

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 (111) hide show
  1. package/README.md +30 -0
  2. package/dest/bin/index.d.ts +2 -1
  3. package/dest/bin/index.js +58 -26
  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 +11 -5
  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 +10 -8
  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 +147 -6
  13. package/dest/cmds/create_account.d.ts +9 -7
  14. package/dest/cmds/create_account.d.ts.map +1 -1
  15. package/dest/cmds/create_account.js +61 -36
  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 +98 -58
  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 +60 -37
  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 +83 -115
  31. package/dest/cmds/profile.d.ts +8 -0
  32. package/dest/cmds/profile.d.ts.map +1 -0
  33. package/dest/cmds/profile.js +28 -0
  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 +20 -7
  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 +51 -28
  42. package/dest/cmds/simulate.d.ts +7 -3
  43. package/dest/cmds/simulate.d.ts.map +1 -1
  44. package/dest/cmds/simulate.js +26 -20
  45. package/dest/storage/wallet_db.d.ts +7 -19
  46. package/dest/storage/wallet_db.d.ts.map +1 -1
  47. package/dest/storage/wallet_db.js +49 -55
  48. package/dest/utils/authorizations.d.ts +6 -0
  49. package/dest/utils/authorizations.d.ts.map +1 -0
  50. package/dest/utils/authorizations.js +28 -0
  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/constants.d.ts +4 -0
  55. package/dest/utils/constants.d.ts.map +1 -0
  56. package/dest/utils/constants.js +7 -0
  57. package/dest/utils/ecdsa.d.ts +1 -3
  58. package/dest/utils/ecdsa.d.ts.map +1 -1
  59. package/dest/utils/options/fees.d.ts +22 -28
  60. package/dest/utils/options/fees.d.ts.map +1 -1
  61. package/dest/utils/options/fees.js +86 -145
  62. package/dest/utils/options/index.d.ts +1 -1
  63. package/dest/utils/options/options.d.ts +9 -5
  64. package/dest/utils/options/options.d.ts.map +1 -1
  65. package/dest/utils/options/options.js +26 -14
  66. package/dest/utils/profiling.d.ts +5 -0
  67. package/dest/utils/profiling.d.ts.map +1 -0
  68. package/dest/utils/profiling.js +68 -0
  69. package/dest/utils/wallet.d.ts +35 -0
  70. package/dest/utils/wallet.d.ts.map +1 -0
  71. package/dest/utils/wallet.js +204 -0
  72. package/package.json +29 -22
  73. package/src/bin/index.ts +63 -33
  74. package/src/cmds/authorize_action.ts +16 -5
  75. package/src/cmds/bridge_fee_juice.ts +16 -12
  76. package/src/cmds/check_tx.ts +180 -5
  77. package/src/cmds/create_account.ts +72 -42
  78. package/src/cmds/create_authwit.ts +9 -5
  79. package/src/cmds/deploy.ts +103 -67
  80. package/src/cmds/deploy_account.ts +72 -37
  81. package/src/cmds/import_test_accounts.ts +7 -11
  82. package/src/cmds/index.ts +256 -220
  83. package/src/cmds/profile.ts +48 -0
  84. package/src/cmds/register_contract.ts +28 -5
  85. package/src/cmds/register_sender.ts +3 -2
  86. package/src/cmds/send.ts +51 -25
  87. package/src/cmds/simulate.ts +37 -24
  88. package/src/storage/wallet_db.ts +53 -68
  89. package/src/utils/authorizations.ts +51 -0
  90. package/src/utils/cli_wallet_and_node_wrapper.ts +35 -0
  91. package/src/utils/constants.ts +4 -0
  92. package/src/utils/options/fees.ts +136 -207
  93. package/src/utils/options/options.ts +41 -19
  94. package/src/utils/profiling.ts +172 -0
  95. package/src/utils/wallet.ts +283 -0
  96. package/dest/cmds/add_authwit.d.ts +0 -4
  97. package/dest/cmds/add_authwit.d.ts.map +0 -1
  98. package/dest/cmds/add_authwit.js +0 -4
  99. package/dest/cmds/cancel_tx.d.ts +0 -11
  100. package/dest/cmds/cancel_tx.d.ts.map +0 -1
  101. package/dest/cmds/cancel_tx.js +0 -38
  102. package/dest/utils/accounts.d.ts +0 -11
  103. package/dest/utils/accounts.d.ts.map +0 -1
  104. package/dest/utils/accounts.js +0 -87
  105. package/dest/utils/pxe_wrapper.d.ts +0 -10
  106. package/dest/utils/pxe_wrapper.d.ts.map +0 -1
  107. package/dest/utils/pxe_wrapper.js +0 -21
  108. package/src/cmds/add_authwit.ts +0 -13
  109. package/src/cmds/cancel_tx.ts +0 -62
  110. package/src/utils/accounts.ts +0 -102
  111. package/src/utils/pxe_wrapper.ts +0 -26
@@ -1,15 +1,15 @@
1
- import { Contract } from '@aztec/aztec.js';
1
+ import { Contract } from '@aztec/aztec.js/contracts';
2
2
  import { prepTx } from '@aztec/cli/utils';
3
- export async function createAuthwit(wallet, functionName, caller, functionArgsIn, contractArtifactPath, contractAddress, log) {
3
+ export async function createAuthwit(wallet, from, functionName, caller, functionArgsIn, contractArtifactPath, contractAddress, log) {
4
4
  const { functionArgs, contractArtifact, isPrivate } = await prepTx(contractArtifactPath, functionName, functionArgsIn, log);
5
5
  if (!isPrivate) {
6
6
  throw new Error('Cannot create an authwit for a public function. To allow a third party to call a public function, please authorize the action via the authorize-action command');
7
7
  }
8
- const contract = await Contract.at(contractAddress, contractArtifact, wallet);
9
- const action = contract.methods[functionName](...functionArgs);
10
- const witness = await wallet.createAuthWit({
8
+ const contract = Contract.at(contractAddress, contractArtifact, wallet);
9
+ const call = await contract.methods[functionName](...functionArgs).getFunctionCall();
10
+ const witness = await wallet.createAuthWit(from, {
11
11
  caller,
12
- action
12
+ call
13
13
  });
14
14
  log(`Created authorization witness for action ${functionName} on contract ${contractAddress} for caller ${caller}`);
15
15
  return witness;
@@ -1,6 +1,9 @@
1
- import { type AccountWalletWithSecretKey, Fr, type PXE } from '@aztec/aztec.js';
1
+ import { AztecAddress } from '@aztec/aztec.js/addresses';
2
+ import { Fr } from '@aztec/aztec.js/fields';
3
+ import type { AztecNode } from '@aztec/aztec.js/node';
2
4
  import type { LogFn, Logger } from '@aztec/foundation/log';
3
5
  import { PublicKeys } from '@aztec/stdlib/keys';
4
- import { type IFeeOpts } from '../utils/options/fees.js';
5
- export declare function deploy(client: PXE, wallet: AccountWalletWithSecretKey, artifactPath: string, json: boolean, publicKeys: PublicKeys | undefined, rawArgs: any[], salt: Fr | undefined, initializer: string | undefined, skipPublicDeployment: boolean, skipClassRegistration: boolean, skipInitialization: boolean | undefined, universalDeploy: boolean | undefined, wait: boolean, feeOpts: IFeeOpts, debugLogger: Logger, log: LogFn, logJson: (output: any) => void): Promise<import("@aztec/aztec.js").AztecAddress | undefined>;
6
- //# sourceMappingURL=deploy.d.ts.map
6
+ import { CLIFeeArgs } from '../utils/options/fees.js';
7
+ import type { CLIWallet } from '../utils/wallet.js';
8
+ export declare function deploy(wallet: CLIWallet, node: AztecNode, deployer: AztecAddress, artifactPath: string, json: boolean, publicKeys: PublicKeys | undefined, rawArgs: any[], salt: Fr | undefined, initializer: string | undefined, skipInstancePublication: boolean, skipClassPublication: boolean, skipInitialization: boolean | undefined, wait: boolean, feeOpts: CLIFeeArgs, verbose: boolean, timeout: number | undefined, debugLogger: Logger, log: LogFn): Promise<AztecAddress | undefined>;
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY21kcy9kZXBsb3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBSXpELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1QyxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV0RCxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV0RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVwRCx3QkFBc0IsTUFBTSxDQUMxQixNQUFNLEVBQUUsU0FBUyxFQUNqQixJQUFJLEVBQUUsU0FBUyxFQUNmLFFBQVEsRUFBRSxZQUFZLEVBQ3RCLFlBQVksRUFBRSxNQUFNLEVBQ3BCLElBQUksRUFBRSxPQUFPLEVBQ2IsVUFBVSxFQUFFLFVBQVUsR0FBRyxTQUFTLEVBQ2xDLE9BQU8sRUFBRSxHQUFHLEVBQUUsRUFDZCxJQUFJLEVBQUUsRUFBRSxHQUFHLFNBQVMsRUFDcEIsV0FBVyxFQUFFLE1BQU0sR0FBRyxTQUFTLEVBQy9CLHVCQUF1QixFQUFFLE9BQU8sRUFDaEMsb0JBQW9CLEVBQUUsT0FBTyxFQUM3QixrQkFBa0IsRUFBRSxPQUFPLEdBQUcsU0FBUyxFQUN2QyxJQUFJLEVBQUUsT0FBTyxFQUNiLE9BQU8sRUFBRSxVQUFVLEVBQ25CLE9BQU8sRUFBRSxPQUFPLEVBQ2hCLE9BQU8sb0JBQStCLEVBQ3RDLFdBQVcsRUFBRSxNQUFNLEVBQ25CLEdBQUcsRUFBRSxLQUFLLHFDQWtIWCJ9
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/cmds/deploy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,0BAA0B,EAAuC,EAAE,EAAE,KAAK,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAErH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAE,KAAK,QAAQ,EAAqB,MAAM,0BAA0B,CAAC;AAE5E,wBAAsB,MAAM,CAC1B,MAAM,EAAE,GAAG,EACX,MAAM,EAAE,0BAA0B,EAClC,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,OAAO,EACb,UAAU,EAAE,UAAU,GAAG,SAAS,EAClC,OAAO,EAAE,GAAG,EAAE,EACd,IAAI,EAAE,EAAE,GAAG,SAAS,EACpB,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,oBAAoB,EAAE,OAAO,EAC7B,qBAAqB,EAAE,OAAO,EAC9B,kBAAkB,EAAE,OAAO,GAAG,SAAS,EACvC,eAAe,EAAE,OAAO,GAAG,SAAS,EACpC,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,QAAQ,EACjB,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,KAAK,EACV,OAAO,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,+DAuF/B"}
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/cmds/deploy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAIzD,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,wBAAsB,MAAM,CAC1B,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,YAAY,EACtB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,OAAO,EACb,UAAU,EAAE,UAAU,GAAG,SAAS,EAClC,OAAO,EAAE,GAAG,EAAE,EACd,IAAI,EAAE,EAAE,GAAG,SAAS,EACpB,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,uBAAuB,EAAE,OAAO,EAChC,oBAAoB,EAAE,OAAO,EAC7B,kBAAkB,EAAE,OAAO,GAAG,SAAS,EACvC,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,OAAO,EAChB,OAAO,oBAA+B,EACtC,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,KAAK,qCAkHX"}
@@ -1,18 +1,20 @@
1
- import { ContractDeployer, Fr } from '@aztec/aztec.js';
2
- import { GITHUB_TAG_PREFIX, encodeArgs, getContractArtifact } from '@aztec/cli/utils';
3
- import { getInitializer } from '@aztec/stdlib/abi';
1
+ import { AztecAddress } from '@aztec/aztec.js/addresses';
2
+ import { NO_WAIT } from '@aztec/aztec.js/contracts';
3
+ import { ContractDeployer } from '@aztec/aztec.js/deployment';
4
+ import { Fr } from '@aztec/aztec.js/fields';
5
+ import { encodeArgs, getContractArtifact, prettyPrintJSON } from '@aztec/cli/utils';
6
+ import { getAllFunctionAbis, getInitializer } from '@aztec/stdlib/abi';
4
7
  import { PublicKeys } from '@aztec/stdlib/keys';
5
- import { printGasEstimates } from '../utils/options/fees.js';
6
- export async function deploy(client, wallet, artifactPath, json, publicKeys, rawArgs, salt, initializer, skipPublicDeployment, skipClassRegistration, skipInitialization, universalDeploy, wait, feeOpts, debugLogger, log, logJson) {
8
+ import { DEFAULT_TX_TIMEOUT_S } from '../utils/cli_wallet_and_node_wrapper.js';
9
+ import { printProfileResult } from '../utils/profiling.js';
10
+ export async function deploy(wallet, node, deployer, artifactPath, json, publicKeys, rawArgs, salt, initializer, skipInstancePublication, skipClassPublication, skipInitialization, wait, feeOpts, verbose, timeout = DEFAULT_TX_TIMEOUT_S, debugLogger, log) {
11
+ const out = {};
7
12
  salt ??= Fr.random();
8
13
  const contractArtifact = await getContractArtifact(artifactPath, log);
9
- const constructorArtifact = getInitializer(contractArtifact, initializer);
10
- const nodeInfo = await client.getNodeInfo();
11
- const expectedAztecNrVersion = `${GITHUB_TAG_PREFIX}-v${nodeInfo.nodeVersion}`;
12
- if (contractArtifact.aztecNrVersion && contractArtifact.aztecNrVersion !== expectedAztecNrVersion) {
13
- log(`\nWarning: Contract was compiled with a different version of Aztec.nr: ${contractArtifact.aztecNrVersion}. Consider updating Aztec.nr to ${expectedAztecNrVersion}\n`);
14
- }
15
- const deployer = new ContractDeployer(contractArtifact, wallet, publicKeys ?? PublicKeys.default(), initializer);
14
+ const hasInitializer = getAllFunctionAbis(contractArtifact).some((fn)=>fn.isInitializer);
15
+ const constructorArtifact = hasInitializer ? getInitializer(contractArtifact, initializer) : undefined;
16
+ // TODO(#12081): Add contractArtifact.noirVersion and check here (via Noir.lock)?
17
+ const contractDeployer = new ContractDeployer(contractArtifact, wallet, publicKeys ?? PublicKeys.default(), initializer);
16
18
  let args = [];
17
19
  if (rawArgs.length > 0) {
18
20
  if (!constructorArtifact) {
@@ -22,62 +24,100 @@ export async function deploy(client, wallet, artifactPath, json, publicKeys, raw
22
24
  args = encodeArgs(rawArgs, constructorArtifact.parameters);
23
25
  debugLogger.debug(`Encoded arguments: ${args.join(', ')}`);
24
26
  }
25
- const deploy = deployer.deploy(...args);
27
+ const deploy1 = contractDeployer.deploy(...args);
28
+ const { paymentMethod, gasSettings } = await feeOpts.toUserFeeOptions(node, wallet, deployer);
26
29
  const deployOpts = {
27
- ...await feeOpts.toSendOpts(wallet),
30
+ fee: {
31
+ gasSettings,
32
+ paymentMethod
33
+ },
34
+ from: deployer ?? AztecAddress.ZERO,
28
35
  contractAddressSalt: salt,
29
- universalDeploy,
30
- skipClassRegistration,
36
+ universalDeploy: !deployer,
37
+ skipClassPublication,
31
38
  skipInitialization,
32
- skipPublicDeployment
39
+ skipInstancePublication
33
40
  };
41
+ const { estimatedGas, stats } = await deploy1.simulate({
42
+ ...deployOpts,
43
+ fee: {
44
+ ...deployOpts.fee,
45
+ estimateGas: true
46
+ }
47
+ });
34
48
  if (feeOpts.estimateOnly) {
35
- const gas = await deploy.estimateGas(deployOpts);
36
- printGasEstimates(feeOpts, gas, log);
37
- return;
38
- }
39
- const tx = deploy.send(deployOpts);
40
- const txHash = await tx.getTxHash();
41
- debugLogger.debug(`Deploy tx sent with hash ${txHash}`);
42
- if (wait) {
43
- const deployed = await tx.wait();
44
- const { address, partialAddress, instance } = deployed.contract;
45
49
  if (json) {
46
- logJson({
47
- address: address.toString(),
48
- partialAddress: (await partialAddress).toString(),
49
- initializationHash: instance.initializationHash.toString(),
50
- salt: salt.toString(),
51
- transactionFee: deployed.transactionFee?.toString()
52
- });
53
- } else {
54
- log(`Contract deployed at ${address.toString()}`);
55
- log(`Contract partial address ${(await partialAddress).toString()}`);
56
- log(`Contract init hash ${instance.initializationHash.toString()}`);
57
- log(`Deployment tx hash: ${txHash.toString()}`);
58
- log(`Deployment salt: ${salt.toString()}`);
59
- log(`Deployment fee: ${deployed.transactionFee}`);
50
+ out.fee = {
51
+ gasLimits: {
52
+ da: estimatedGas.gasLimits.daGas,
53
+ l2: estimatedGas.gasLimits.l2Gas
54
+ },
55
+ teardownGasLimits: {
56
+ da: estimatedGas.teardownGasLimits.daGas,
57
+ l2: estimatedGas.teardownGasLimits
58
+ }
59
+ };
60
60
  }
61
61
  } else {
62
- const { address, partialAddress } = deploy;
63
- const instance = await deploy.getInstance();
64
- if (json) {
65
- logJson({
66
- address: address?.toString() ?? 'N/A',
67
- partialAddress: (await partialAddress)?.toString() ?? 'N/A',
68
- txHash: txHash.toString(),
69
- initializationHash: instance.initializationHash.toString(),
70
- salt: salt.toString(),
71
- deployer: instance.deployer.toString()
62
+ if (verbose) {
63
+ printProfileResult(stats, log);
64
+ }
65
+ const { address, partialAddress } = deploy1;
66
+ const instance = await deploy1.getInstance();
67
+ if (wait) {
68
+ const receipt = await deploy1.send({
69
+ ...deployOpts,
70
+ wait: {
71
+ timeout,
72
+ returnReceipt: true
73
+ }
72
74
  });
75
+ const txHash = receipt.txHash;
76
+ debugLogger.debug(`Deploy tx sent with hash ${txHash.toString()}`);
77
+ out.hash = txHash;
78
+ if (!json) {
79
+ log(`Contract deployed at ${address?.toString()}`);
80
+ log(`Contract partial address ${(await partialAddress)?.toString()}`);
81
+ log(`Contract init hash ${instance.initializationHash.toString()}`);
82
+ log(`Deployment tx hash: ${txHash.toString()}`);
83
+ log(`Deployment salt: ${salt.toString()}`);
84
+ log(`Deployer: ${instance.deployer.toString()}`);
85
+ log(`Transaction fee: ${receipt.transactionFee?.toString()}`);
86
+ } else {
87
+ out.contract = {
88
+ address: address?.toString(),
89
+ partialAddress: (await partialAddress)?.toString(),
90
+ initializationHash: instance.initializationHash.toString(),
91
+ salt: salt.toString(),
92
+ transactionFee: receipt.transactionFee?.toString()
93
+ };
94
+ }
73
95
  } else {
74
- log(`Contract deployed at ${address?.toString()}`);
75
- log(`Contract partial address ${(await partialAddress)?.toString()}`);
76
- log(`Contract init hash ${instance.initializationHash.toString()}`);
77
- log(`Deployment tx hash: ${txHash.toString()}`);
78
- log(`Deployment salt: ${salt.toString()}`);
79
- log(`Deployer: ${instance.deployer.toString()}`);
96
+ const txHash = await deploy1.send({
97
+ ...deployOpts,
98
+ wait: NO_WAIT
99
+ });
100
+ debugLogger.debug(`Deploy tx sent with hash ${txHash.toString()}`);
101
+ out.hash = txHash;
102
+ if (!json) {
103
+ log(`Contract deployed at ${address?.toString()}`);
104
+ log(`Contract partial address ${(await partialAddress)?.toString()}`);
105
+ log(`Contract init hash ${instance.initializationHash.toString()}`);
106
+ log(`Deployment tx hash: ${txHash.toString()}`);
107
+ log(`Deployment salt: ${salt.toString()}`);
108
+ log(`Deployer: ${instance.deployer.toString()}`);
109
+ } else {
110
+ out.contract = {
111
+ address: address?.toString(),
112
+ partialAddress: (await partialAddress)?.toString(),
113
+ initializationHash: instance.initializationHash.toString(),
114
+ salt: salt.toString()
115
+ };
116
+ }
80
117
  }
81
118
  }
82
- return deploy.address;
119
+ if (json) {
120
+ log(prettyPrintJSON(out));
121
+ }
122
+ return deploy1.address;
83
123
  }
@@ -1,9 +1,7 @@
1
- import type { AccountManager } from '@aztec/aztec.js';
1
+ import { AztecAddress } from '@aztec/aztec.js/addresses';
2
+ import type { AztecNode } from '@aztec/aztec.js/node';
2
3
  import type { LogFn, Logger } from '@aztec/foundation/log';
3
- import { type IFeeOpts } from '../utils/options/fees.js';
4
- export declare function deployAccount(account: AccountManager, wait: boolean, feeOpts: IFeeOpts, json: boolean, debugLogger: Logger, log: LogFn): Promise<{
5
- address: import("@aztec/aztec.js").AztecAddress;
6
- secretKey: import("@aztec/aztec.js").Fr;
7
- salt: import("@aztec/aztec.js").Fr;
8
- }>;
9
- //# sourceMappingURL=deploy_account.d.ts.map
4
+ import type { CLIFeeArgs } from '../utils/options/fees.js';
5
+ import type { CLIWallet } from '../utils/wallet.js';
6
+ export declare function deployAccount(wallet: CLIWallet, aztecNode: AztecNode, address: AztecAddress, wait: boolean, deployer: AztecAddress | undefined, registerClass: boolean, publicDeploy: boolean, skipInitialization: boolean, feeOpts: CLIFeeArgs, json: boolean, verbose: boolean, debugLogger: Logger, log: LogFn): Promise<void>;
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X2FjY291bnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbWRzL2RlcGxveV9hY2NvdW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUd0RCxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFJM0QsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFcEQsd0JBQXNCLGFBQWEsQ0FDakMsTUFBTSxFQUFFLFNBQVMsRUFDakIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsT0FBTyxFQUFFLFlBQVksRUFDckIsSUFBSSxFQUFFLE9BQU8sRUFDYixRQUFRLEVBQUUsWUFBWSxHQUFHLFNBQVMsRUFDbEMsYUFBYSxFQUFFLE9BQU8sRUFDdEIsWUFBWSxFQUFFLE9BQU8sRUFDckIsa0JBQWtCLEVBQUUsT0FBTyxFQUMzQixPQUFPLEVBQUUsVUFBVSxFQUNuQixJQUFJLEVBQUUsT0FBTyxFQUNiLE9BQU8sRUFBRSxPQUFPLEVBQ2hCLFdBQVcsRUFBRSxNQUFNLEVBQ25CLEdBQUcsRUFBRSxLQUFLLGlCQW9HWCJ9
@@ -1 +1 @@
1
- {"version":3,"file":"deploy_account.d.ts","sourceRoot":"","sources":["../../src/cmds/deploy_account.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAwB,MAAM,iBAAiB,CAAC;AAE5E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,KAAK,QAAQ,EAAqB,MAAM,0BAA0B,CAAC;AAE5E,wBAAsB,aAAa,CACjC,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,KAAK;;;;GA+EX"}
1
+ {"version":3,"file":"deploy_account.d.ts","sourceRoot":"","sources":["../../src/cmds/deploy_account.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAI3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,wBAAsB,aAAa,CACjC,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,YAAY,EACrB,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,YAAY,GAAG,SAAS,EAClC,aAAa,EAAE,OAAO,EACtB,YAAY,EAAE,OAAO,EACrB,kBAAkB,EAAE,OAAO,EAC3B,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,KAAK,iBAoGX"}
@@ -1,11 +1,13 @@
1
+ import { AztecAddress } from '@aztec/aztec.js/addresses';
2
+ import { NO_WAIT } from '@aztec/aztec.js/contracts';
1
3
  import { prettyPrintJSON } from '@aztec/cli/cli-utils';
2
- import { printGasEstimates } from '../utils/options/fees.js';
3
- export async function deployAccount(account, wait, feeOpts, json, debugLogger, log) {
4
+ import { DEFAULT_TX_TIMEOUT_S } from '../utils/cli_wallet_and_node_wrapper.js';
5
+ import { printProfileResult } from '../utils/profiling.js';
6
+ export async function deployAccount(wallet, aztecNode, address, wait, deployer, registerClass, publicDeploy, skipInitialization, feeOpts, json, verbose, debugLogger, log) {
4
7
  const out = {};
5
- const { address, partialAddress, publicKeys } = await account.getCompleteAddress();
6
- const { initializationHash, deployer, salt } = account.getInstance();
7
- const wallet = await account.getWallet();
8
- const secretKey = wallet.getSecretKey();
8
+ const account = await wallet.createOrRetrieveAccount(address);
9
+ const { partialAddress, publicKeys } = await account.getCompleteAddress();
10
+ const { initializationHash, salt } = account.getInstance();
9
11
  if (json) {
10
12
  out.address = address;
11
13
  out.partialAddress = partialAddress;
@@ -16,65 +18,86 @@ export async function deployAccount(account, wait, feeOpts, json, debugLogger, l
16
18
  log(`\nNew account:\n`);
17
19
  log(`Address: ${address.toString()}`);
18
20
  log(`Public key: ${publicKeys.toString()}`);
19
- if (secretKey) {
20
- log(`Secret key: ${secretKey.toString()}`);
21
- }
22
21
  log(`Partial address: ${partialAddress.toString()}`);
23
22
  log(`Salt: ${salt.toString()}`);
24
23
  log(`Init hash: ${initializationHash.toString()}`);
25
- log(`Deployer: ${deployer.toString()}`);
26
24
  }
27
- let tx;
25
+ let txHash;
28
26
  let txReceipt;
29
- const deployOpts = {
30
- ...await feeOpts.toDeployAccountOpts(wallet),
31
- skipInitialization: false
27
+ const { paymentMethod, gasSettings } = await feeOpts.toUserFeeOptions(aztecNode, wallet, address);
28
+ const delegatedDeployment = deployer && !account.address.equals(deployer);
29
+ const from = delegatedDeployment ? deployer : AztecAddress.ZERO;
30
+ const deployAccountOpts = {
31
+ skipClassPublication: !registerClass,
32
+ skipInstancePublication: !publicDeploy,
33
+ skipInitialization,
34
+ from,
35
+ fee: {
36
+ paymentMethod,
37
+ gasSettings
38
+ }
32
39
  };
40
+ const deployMethod = await account.getDeployMethod();
41
+ const { estimatedGas, stats } = await deployMethod.simulate({
42
+ ...deployAccountOpts,
43
+ fee: {
44
+ ...deployAccountOpts.fee,
45
+ estimateGas: true
46
+ }
47
+ });
33
48
  if (feeOpts.estimateOnly) {
34
- const gas = await (await account.getDeployMethod(deployOpts.deployWallet)).estimateGas(deployOpts);
35
49
  if (json) {
36
50
  out.fee = {
37
51
  gasLimits: {
38
- da: gas.gasLimits.daGas,
39
- l2: gas.gasLimits.l2Gas
52
+ da: estimatedGas.gasLimits.daGas,
53
+ l2: estimatedGas.gasLimits.l2Gas
40
54
  },
41
55
  teardownGasLimits: {
42
- da: gas.teardownGasLimits.daGas,
43
- l2: gas.teardownGasLimits
56
+ da: estimatedGas.teardownGasLimits.daGas,
57
+ l2: estimatedGas.teardownGasLimits
44
58
  }
45
59
  };
46
- } else {
47
- printGasEstimates(feeOpts, gas, log);
48
60
  }
49
61
  } else {
50
- tx = account.deploy(deployOpts);
51
- const txHash = await tx.getTxHash();
52
- debugLogger.debug(`Account contract tx sent with hash ${txHash}`);
53
- out.txHash = txHash;
54
- if (wait) {
55
- if (!json) {
56
- log(`\nWaiting for account contract deployment...`);
57
- }
58
- txReceipt = await tx.wait();
62
+ if (verbose) {
63
+ printProfileResult(stats, log);
64
+ }
65
+ if (!json) {
66
+ log(`\nWaiting for account contract deployment...`);
67
+ }
68
+ const result = await deployMethod.send({
69
+ ...deployAccountOpts,
70
+ fee: deployAccountOpts.fee ? {
71
+ ...deployAccountOpts.fee,
72
+ gasSettings: estimatedGas
73
+ } : undefined,
74
+ wait: wait ? {
75
+ timeout: DEFAULT_TX_TIMEOUT_S,
76
+ returnReceipt: true
77
+ } : NO_WAIT
78
+ });
79
+ const isReceipt = (data)=>'txHash' in data;
80
+ if (isReceipt(result)) {
81
+ txReceipt = result;
82
+ txHash = result.txHash;
59
83
  out.txReceipt = {
60
84
  status: txReceipt.status,
61
85
  transactionFee: txReceipt.transactionFee
62
86
  };
87
+ } else {
88
+ txHash = result;
63
89
  }
90
+ debugLogger.debug(`Account contract tx sent with hash ${txHash.toString()}`);
91
+ out.txHash = txHash;
64
92
  }
65
93
  if (json) {
66
94
  log(prettyPrintJSON(out));
67
95
  } else {
68
- if (tx) {
69
- log(`Deploy tx hash: ${await tx.getTxHash()}`);
96
+ if (txHash) {
97
+ log(`Deploy tx hash: ${txHash.toString()}`);
70
98
  }
71
99
  if (txReceipt) {
72
100
  log(`Deploy tx fee: ${txReceipt.transactionFee}`);
73
101
  }
74
102
  }
75
- return {
76
- address,
77
- secretKey,
78
- salt
79
- };
80
103
  }
@@ -1,5 +1,5 @@
1
- import { type PXE } from '@aztec/aztec.js';
2
1
  import type { LogFn } from '@aztec/foundation/log';
3
2
  import type { WalletDB } from '../storage/wallet_db.js';
4
- export declare function importTestAccounts(client: PXE, db: WalletDB, json: boolean, log: LogFn): Promise<void>;
5
- //# sourceMappingURL=import_test_accounts.d.ts.map
3
+ import type { CLIWallet } from '../utils/wallet.js';
4
+ export declare function importTestAccounts(wallet: CLIWallet, db: WalletDB, json: boolean, log: LogFn): Promise<void>;
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0X3Rlc3RfYWNjb3VudHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbWRzL2ltcG9ydF90ZXN0X2FjY291bnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRW5ELE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBELHdCQUFzQixrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxpQkFrQ2xHIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"import_test_accounts.d.ts","sourceRoot":"","sources":["../../src/cmds/import_test_accounts.ts"],"names":[],"mappings":"AAEA,OAAO,EAAM,KAAK,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,iBAsC5F"}
1
+ {"version":3,"file":"import_test_accounts.d.ts","sourceRoot":"","sources":["../../src/cmds/import_test_accounts.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,iBAkClG"}
@@ -1,17 +1,14 @@
1
- import { getSchnorrAccount } from '@aztec/accounts/schnorr';
2
- import { getInitialTestAccounts } from '@aztec/accounts/testing';
3
- import { Fr } 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
- export async function importTestAccounts(client, db, json, log) {
6
- const testAccounts = await getInitialTestAccounts();
7
- const accounts = await Promise.all(testAccounts.map(({ secret, signingKey, salt })=>getSchnorrAccount(client, secret, signingKey, salt)));
4
+ export async function importTestAccounts(wallet, db, json, log) {
5
+ const testAccounts = await getInitialTestAccountsData();
8
6
  const out = {};
9
- await Promise.all(accounts.map(async (account, i)=>{
7
+ await Promise.all(testAccounts.map(async (account, i)=>{
10
8
  const alias = `test${i}`;
11
9
  const secret = testAccounts[i].secret;
12
10
  const salt = new Fr(account.salt);
13
- const address = account.getAddress();
14
- await account.register();
11
+ const address = account.address;
15
12
  await db.storeAccount(address, {
16
13
  type: 'schnorr',
17
14
  secretKey: secret,
@@ -1,6 +1,6 @@
1
1
  import type { LogFn, Logger } from '@aztec/foundation/log';
2
2
  import { type Command } from 'commander';
3
3
  import type { WalletDB } from '../storage/wallet_db.js';
4
- import type { PXEWrapper } from '../utils/pxe_wrapper.js';
5
- export declare function injectCommands(program: Command, log: LogFn, debugLogger: Logger, db?: WalletDB, pxeWrapper?: PXEWrapper): Command;
6
- //# sourceMappingURL=index.d.ts.map
4
+ import type { CliWalletAndNodeWrapper } from '../utils/cli_wallet_and_node_wrapper.js';
5
+ export declare function injectCommands(program: Command, log: LogFn, debugLogger: Logger, walletAndNodeWrapper: CliWalletAndNodeWrapper, db: WalletDB): Command;
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbWRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWFBLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsS0FBSyxPQUFPLEVBQVUsTUFBTSxXQUFXLENBQUM7QUFHakQsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQXdCdkYsd0JBQWdCLGNBQWMsQ0FDNUIsT0FBTyxFQUFFLE9BQU8sRUFDaEIsR0FBRyxFQUFFLEtBQUssRUFDVixXQUFXLEVBQUUsTUFBTSxFQUNuQixvQkFBb0IsRUFBRSx1QkFBdUIsRUFDN0MsRUFBRSxFQUFFLFFBQVEsV0FvbkJiIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cmds/index.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAI3D,OAAO,EAAE,KAAK,OAAO,EAAU,MAAM,WAAW,CAAC;AAGjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAsBxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D,wBAAgB,cAAc,CAC5B,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,KAAK,EACV,WAAW,EAAE,MAAM,EACnB,EAAE,CAAC,EAAE,QAAQ,EACb,UAAU,CAAC,EAAE,UAAU,WA6kBxB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cmds/index.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,KAAK,OAAO,EAAU,MAAM,WAAW,CAAC;AAGjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAwBvF,wBAAgB,cAAc,CAC5B,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,KAAK,EACV,WAAW,EAAE,MAAM,EACnB,oBAAoB,EAAE,uBAAuB,EAC7C,EAAE,EAAE,QAAQ,WAonBb"}