@aztec/cli-wallet 0.0.1-commit.b655e406 → 0.0.1-commit.b8a057fa

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 (86) hide show
  1. package/README.md +2 -2
  2. package/dest/bin/index.d.ts +2 -1
  3. package/dest/bin/index.js +21 -11
  4. package/dest/cmds/authorize_action.d.ts +2 -2
  5. package/dest/cmds/authorize_action.d.ts.map +1 -1
  6. package/dest/cmds/authorize_action.js +5 -3
  7. package/dest/cmds/bridge_fee_juice.d.ts +2 -2
  8. package/dest/cmds/bridge_fee_juice.d.ts.map +1 -1
  9. package/dest/cmds/bridge_fee_juice.js +3 -2
  10. package/dest/cmds/check_tx.d.ts +1 -1
  11. package/dest/cmds/check_tx.d.ts.map +1 -1
  12. package/dest/cmds/check_tx.js +57 -26
  13. package/dest/cmds/create_account.d.ts +7 -5
  14. package/dest/cmds/create_account.d.ts.map +1 -1
  15. package/dest/cmds/create_account.js +47 -31
  16. package/dest/cmds/create_authwit.d.ts +1 -1
  17. package/dest/cmds/create_authwit.js +1 -1
  18. package/dest/cmds/deploy.d.ts +5 -4
  19. package/dest/cmds/deploy.d.ts.map +1 -1
  20. package/dest/cmds/deploy.js +65 -36
  21. package/dest/cmds/deploy_account.d.ts +4 -3
  22. package/dest/cmds/deploy_account.d.ts.map +1 -1
  23. package/dest/cmds/deploy_account.js +38 -24
  24. package/dest/cmds/get_fee_juice_balance.d.ts +5 -0
  25. package/dest/cmds/get_fee_juice_balance.d.ts.map +1 -0
  26. package/dest/cmds/get_fee_juice_balance.js +27 -0
  27. package/dest/cmds/import_test_accounts.d.ts +1 -1
  28. package/dest/cmds/import_test_accounts.d.ts.map +1 -1
  29. package/dest/cmds/import_test_accounts.js +1 -1
  30. package/dest/cmds/index.d.ts +1 -1
  31. package/dest/cmds/index.d.ts.map +1 -1
  32. package/dest/cmds/index.js +33 -17
  33. package/dest/cmds/profile.d.ts +1 -1
  34. package/dest/cmds/profile.js +1 -1
  35. package/dest/cmds/register_contract.d.ts +1 -1
  36. package/dest/cmds/register_sender.d.ts +1 -1
  37. package/dest/cmds/send.d.ts +5 -4
  38. package/dest/cmds/send.d.ts.map +1 -1
  39. package/dest/cmds/send.js +34 -21
  40. package/dest/cmds/simulate.d.ts +1 -1
  41. package/dest/cmds/simulate.d.ts.map +1 -1
  42. package/dest/cmds/simulate.js +5 -4
  43. package/dest/storage/wallet_db.d.ts +10 -5
  44. package/dest/storage/wallet_db.d.ts.map +1 -1
  45. package/dest/storage/wallet_db.js +61 -32
  46. package/dest/utils/authorizations.d.ts +1 -1
  47. package/dest/utils/cli_wallet_and_node_wrapper.d.ts +1 -1
  48. package/dest/utils/cli_wallet_and_node_wrapper.d.ts.map +1 -1
  49. package/dest/utils/constants.d.ts +4 -0
  50. package/dest/utils/constants.d.ts.map +1 -0
  51. package/dest/utils/constants.js +8 -0
  52. package/dest/utils/ecdsa.d.ts +1 -1
  53. package/dest/utils/options/fees.d.ts +5 -3
  54. package/dest/utils/options/fees.d.ts.map +1 -1
  55. package/dest/utils/options/fees.js +38 -12
  56. package/dest/utils/options/index.d.ts +1 -1
  57. package/dest/utils/options/options.d.ts +1 -1
  58. package/dest/utils/options/options.js +1 -1
  59. package/dest/utils/profiling.d.ts +1 -1
  60. package/dest/utils/profiling.d.ts.map +1 -1
  61. package/dest/utils/profiling.js +9 -1
  62. package/dest/utils/wallet.d.ts +30 -12
  63. package/dest/utils/wallet.d.ts.map +1 -1
  64. package/dest/utils/wallet.js +154 -68
  65. package/package.json +19 -15
  66. package/src/bin/index.ts +19 -13
  67. package/src/cmds/authorize_action.ts +2 -2
  68. package/src/cmds/bridge_fee_juice.ts +3 -2
  69. package/src/cmds/check_tx.ts +65 -34
  70. package/src/cmds/create_account.ts +51 -28
  71. package/src/cmds/create_authwit.ts +1 -1
  72. package/src/cmds/deploy.ts +64 -37
  73. package/src/cmds/deploy_account.ts +39 -20
  74. package/src/cmds/get_fee_juice_balance.ts +37 -0
  75. package/src/cmds/import_test_accounts.ts +5 -1
  76. package/src/cmds/index.ts +63 -9
  77. package/src/cmds/profile.ts +1 -1
  78. package/src/cmds/send.ts +34 -14
  79. package/src/cmds/simulate.ts +6 -8
  80. package/src/storage/wallet_db.ts +65 -38
  81. package/src/utils/cli_wallet_and_node_wrapper.ts +1 -1
  82. package/src/utils/constants.ts +10 -0
  83. package/src/utils/options/fees.ts +46 -13
  84. package/src/utils/options/options.ts +1 -1
  85. package/src/utils/profiling.ts +15 -1
  86. package/src/utils/wallet.ts +170 -79
package/README.md CHANGED
@@ -8,11 +8,11 @@
8
8
  anvil --host 127.0.0.1 --port 8545
9
9
  ```
10
10
 
11
- 2) In another terminal, start the Aztec sandbox from `yarn-project/aztec`:
11
+ 2) In another terminal, start the Aztec local network from `yarn-project/aztec`:
12
12
 
13
13
  ```bash
14
14
  cd yarn-project/aztec
15
- NODE_NO_WARNINGS=1 ETHEREUM_HOSTS=http://127.0.0.1:8545 node ./dest/bin/index.js start --sandbox
15
+ NODE_NO_WARNINGS=1 ETHEREUM_HOSTS=http://127.0.0.1:8545 node ./dest/bin/index.js start --local-network
16
16
  ```
17
17
 
18
18
  3) Run the wallet tests from `yarn-project/cli-wallet/test`:
@@ -1,2 +1,3 @@
1
+ #!/usr/bin/env node
1
2
  export {};
2
- //# sourceMappingURL=index.d.ts.map
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iaW4vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
package/dest/bin/index.js CHANGED
@@ -1,16 +1,16 @@
1
+ #!/usr/bin/env node
1
2
  import { computeSecretHash } from '@aztec/aztec.js/crypto';
2
3
  import { Fr } from '@aztec/aztec.js/fields';
3
4
  import { createAztecNodeClient } from '@aztec/aztec.js/node';
4
5
  import { ProtocolContractAddress } from '@aztec/aztec.js/protocol';
6
+ import { BackendType, Barretenberg } from '@aztec/bb.js';
5
7
  import { LOCALHOST } from '@aztec/cli/cli-utils';
6
8
  import { createConsoleLogger, createLogger } from '@aztec/foundation/log';
7
9
  import { openStoreAt } from '@aztec/kv-store/lmdb-v2';
8
10
  import { getPackageVersion } from '@aztec/stdlib/update-checker';
9
11
  import { Argument, Command, Option } from 'commander';
10
- import { mkdirSync } from 'fs';
11
12
  import { homedir } from 'os';
12
- import { dirname, join, resolve } from 'path';
13
- import { fileURLToPath } from 'url';
13
+ import { join } from 'path';
14
14
  import { injectCommands } from '../cmds/index.js';
15
15
  import { Aliases, WalletDB } from '../storage/wallet_db.js';
16
16
  import { CliWalletAndNodeWrapper } from '../utils/cli_wallet_and_node_wrapper.js';
@@ -47,7 +47,7 @@ function injectInternalCommands(program, log, db) {
47
47
  return program;
48
48
  }
49
49
  /** CLI wallet main entrypoint */ async function main() {
50
- const walletVersion = getPackageVersion() ?? '0.0.0';
50
+ const walletVersion = getPackageVersion();
51
51
  const db = WalletDB.getInstance();
52
52
  const walletAndNodeWrapper = new CliWalletAndNodeWrapper();
53
53
  const program = new Command('wallet');
@@ -56,17 +56,26 @@ function injectInternalCommands(program, log, db) {
56
56
  'native',
57
57
  'none'
58
58
  ]).env('PXE_PROVER').default('native')).addOption(new Option('-n, --node-url <string>', 'URL of the Aztec node to connect to').env('AZTEC_NODE_URL').default(`http://${LOCALHOST}:8080`)).hook('preSubcommand', async (command)=>{
59
+ // Skip initialization if user is just requesting help
60
+ if (command.args.includes('--help') || command.args.includes('-h')) {
61
+ return;
62
+ }
59
63
  const { dataDir, nodeUrl, prover } = command.optsWithGlobals();
60
64
  const proverEnabled = prover !== 'none';
61
- const bbBinaryPath = prover === 'native' ? process.env.BB_BINARY_PATH ?? resolve(dirname(fileURLToPath(import.meta.url)), '../../../../barretenberg/cpp/build/bin/bb') : undefined;
62
- const bbWorkingDirectory = dataDir + '/bb';
63
- mkdirSync(bbWorkingDirectory, {
64
- recursive: true
65
- });
65
+ switch(prover){
66
+ case 'native':
67
+ await Barretenberg.initSingleton({
68
+ backend: BackendType.NativeUnixSocket
69
+ });
70
+ break;
71
+ case 'wasm':
72
+ await Barretenberg.initSingleton({
73
+ backend: BackendType.Wasm
74
+ });
75
+ break;
76
+ }
66
77
  const overridePXEConfig = {
67
78
  proverEnabled,
68
- bbBinaryPath: prover === 'native' ? bbBinaryPath : undefined,
69
- bbWorkingDirectory: prover === 'native' ? bbWorkingDirectory : undefined,
70
79
  dataDirectory: join(dataDir, 'pxe')
71
80
  };
72
81
  const node = createAztecNodeClient(nodeUrl);
@@ -89,6 +98,7 @@ function injectInternalCommands(program, log, db) {
89
98
  injectCommands(program, userLog, debugLogger, walletAndNodeWrapper, db);
90
99
  injectInternalCommands(program, userLog, db);
91
100
  await program.parseAsync(process.argv);
101
+ await Barretenberg.destroySingleton();
92
102
  }
93
103
  main().catch((err)=>{
94
104
  debugLogger.error(`Error in command execution`);
@@ -1,5 +1,5 @@
1
1
  import type { AztecAddress } from '@aztec/aztec.js/addresses';
2
2
  import type { Wallet } from '@aztec/aztec.js/wallet';
3
3
  import type { LogFn } from '@aztec/foundation/log';
4
- export declare function authorizeAction(wallet: Wallet, from: AztecAddress, functionName: string, caller: AztecAddress, functionArgsIn: any[], contractArtifactPath: string, contractAddress: AztecAddress, log: LogFn): Promise<import("@aztec/foundation/types").FieldsOf<import("@aztec/aztec.js/tx").TxReceipt>>;
5
- //# sourceMappingURL=authorize_action.d.ts.map
4
+ export declare function authorizeAction(wallet: Wallet, from: AztecAddress, functionName: string, caller: AztecAddress, functionArgsIn: any[], contractArtifactPath: string, contractAddress: AztecAddress, log: LogFn): Promise<import("@aztec/aztec.js/contracts").TxSendResultMined<import("@aztec/stdlib/tx").TxReceipt>>;
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXplX2FjdGlvbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NtZHMvYXV0aG9yaXplX2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUc5RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVyRCxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUluRCx3QkFBc0IsZUFBZSxDQUNuQyxNQUFNLEVBQUUsTUFBTSxFQUNkLElBQUksRUFBRSxZQUFZLEVBQ2xCLFlBQVksRUFBRSxNQUFNLEVBQ3BCLE1BQU0sRUFBRSxZQUFZLEVBQ3BCLGNBQWMsRUFBRSxHQUFHLEVBQUUsRUFDckIsb0JBQW9CLEVBQUUsTUFBTSxFQUM1QixlQUFlLEVBQUUsWUFBWSxFQUM3QixHQUFHLEVBQUUsS0FBSyx3R0E2QlgifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"authorize_action.d.ts","sourceRoot":"","sources":["../../src/cmds/authorize_action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAInD,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,YAAY,EAClB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,YAAY,EACpB,cAAc,EAAE,GAAG,EAAE,EACrB,oBAAoB,EAAE,MAAM,EAC5B,eAAe,EAAE,YAAY,EAC7B,GAAG,EAAE,KAAK,+FA6BX"}
1
+ {"version":3,"file":"authorize_action.d.ts","sourceRoot":"","sources":["../../src/cmds/authorize_action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAInD,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,YAAY,EAClB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,YAAY,EACpB,cAAc,EAAE,GAAG,EAAE,EACrB,oBAAoB,EAAE,MAAM,EAC5B,eAAe,EAAE,YAAY,EAC7B,GAAG,EAAE,KAAK,wGA6BX"}
@@ -7,14 +7,16 @@ export async function authorizeAction(wallet, from, functionName, caller, functi
7
7
  if (isPrivate) {
8
8
  throw new Error('Cannot authorize private function. To allow a third party to call a private function, please create an authorization witness via the create-authwit command');
9
9
  }
10
- const contract = await Contract.at(contractAddress, contractArtifact, wallet);
10
+ const contract = Contract.at(contractAddress, contractArtifact, wallet);
11
11
  const action = contract.methods[functionName](...functionArgs);
12
12
  const setAuthwitnessInteraction = await SetPublicAuthwitContractInteraction.create(wallet, from, {
13
13
  caller,
14
14
  action
15
15
  }, true);
16
- const witness = await setAuthwitnessInteraction.send().wait({
17
- timeout: DEFAULT_TX_TIMEOUT_S
16
+ const witness = await setAuthwitnessInteraction.send({
17
+ wait: {
18
+ timeout: DEFAULT_TX_TIMEOUT_S
19
+ }
18
20
  });
19
21
  log(`Authorized action ${functionName} on contract ${contractAddress} for caller ${caller}`);
20
22
  return witness;
@@ -1,6 +1,6 @@
1
1
  import type { AztecNode } from '@aztec/aztec.js/node';
2
- import { Fr } from '@aztec/foundation/fields';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
3
  import type { LogFn, Logger } from '@aztec/foundation/log';
4
4
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
5
5
  export declare function bridgeL1FeeJuice(amount: bigint, recipient: AztecAddress, node: AztecNode, l1RpcUrls: string[], chainId: number, privateKey: string | undefined, mnemonic: string, mint: boolean, json: boolean, wait: boolean, interval: number | undefined, log: LogFn, debugLogger: Logger): Promise<readonly [Fr, bigint]>;
6
- //# sourceMappingURL=bridge_fee_juice.d.ts.map
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZGdlX2ZlZV9qdWljZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NtZHMvYnJpZGdlX2ZlZV9qdWljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUt0RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBR2hFLHdCQUFzQixnQkFBZ0IsQ0FDcEMsTUFBTSxFQUFFLE1BQU0sRUFDZCxTQUFTLEVBQUUsWUFBWSxFQUN2QixJQUFJLEVBQUUsU0FBUyxFQUNmLFNBQVMsRUFBRSxNQUFNLEVBQUUsRUFDbkIsT0FBTyxFQUFFLE1BQU0sRUFDZixVQUFVLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFDOUIsUUFBUSxFQUFFLE1BQU0sRUFDaEIsSUFBSSxFQUFFLE9BQU8sRUFDYixJQUFJLEVBQUUsT0FBTyxFQUNiLElBQUksRUFBRSxPQUFPLEVBQ2IsUUFBUSxvQkFBUyxFQUNqQixHQUFHLEVBQUUsS0FBSyxFQUNWLFdBQVcsRUFBRSxNQUFNLGtDQW1FcEIifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"bridge_fee_juice.d.ts","sourceRoot":"","sources":["../../src/cmds/bridge_fee_juice.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAItD,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAGhE,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,YAAY,EACvB,IAAI,EAAE,SAAS,EACf,SAAS,EAAE,MAAM,EAAE,EACnB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,OAAO,EACb,QAAQ,oBAAS,EACjB,GAAG,EAAE,KAAK,EACV,WAAW,EAAE,MAAM,kCAmEpB"}
1
+ {"version":3,"file":"bridge_fee_juice.d.ts","sourceRoot":"","sources":["../../src/cmds/bridge_fee_juice.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAKtD,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAGhE,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,YAAY,EACvB,IAAI,EAAE,SAAS,EACf,SAAS,EAAE,MAAM,EAAE,EACnB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,OAAO,EACb,QAAQ,oBAAS,EACjB,GAAG,EAAE,KAAK,EACV,WAAW,EAAE,MAAM,kCAmEpB"}
@@ -1,8 +1,9 @@
1
1
  import { L1FeeJuicePortalManager } from '@aztec/aztec.js/ethereum';
2
2
  import { ProtocolContractAddress } from '@aztec/aztec.js/protocol';
3
3
  import { prettyPrintJSON } from '@aztec/cli/utils';
4
- import { createEthereumChain, createExtendedL1Client } from '@aztec/ethereum';
5
- import { Fr } from '@aztec/foundation/fields';
4
+ import { createEthereumChain } from '@aztec/ethereum/chain';
5
+ import { createExtendedL1Client } from '@aztec/ethereum/client';
6
+ import { Fr } from '@aztec/foundation/curves/bn254';
6
7
  import { getNonNullifiedL1ToL2MessageWitness } from '@aztec/stdlib/messaging';
7
8
  export async function bridgeL1FeeJuice(amount, recipient, node, l1RpcUrls, chainId, privateKey, mnemonic, mint, json, wait, interval = 60_000, log, debugLogger) {
8
9
  // Prepare L1 client
@@ -3,4 +3,4 @@ import type { TxHash } from '@aztec/aztec.js/tx';
3
3
  import type { LogFn } from '@aztec/foundation/log';
4
4
  import type { CLIWallet } from '../utils/wallet.js';
5
5
  export declare function checkTx(wallet: CLIWallet, aztecNode: AztecNode, txHash: TxHash, statusOnly: boolean, log: LogFn): Promise<import("@aztec/aztec.js/tx").TxStatus | undefined>;
6
- //# sourceMappingURL=check_tx.d.ts.map
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tfdHguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbWRzL2NoZWNrX3R4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXRELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBUW5ELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBELHdCQUFzQixPQUFPLENBQzNCLE1BQU0sRUFBRSxTQUFTLEVBQ2pCLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsVUFBVSxFQUFFLE9BQU8sRUFDbkIsR0FBRyxFQUFFLEtBQUssOERBUVgifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"check_tx.d.ts","sourceRoot":"","sources":["../../src/cmds/check_tx.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAInD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,wBAAsB,OAAO,CAC3B,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,OAAO,EACnB,GAAG,EAAE,KAAK,8DAQX"}
1
+ {"version":3,"file":"check_tx.d.ts","sourceRoot":"","sources":["../../src/cmds/check_tx.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAQnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,wBAAsB,OAAO,CAC3B,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,OAAO,EACnB,GAAG,EAAE,KAAK,8DAQX"}
@@ -1,5 +1,5 @@
1
1
  import { ProtocolContractAddress } from '@aztec/aztec.js/protocol';
2
- import { siloNullifier } from '@aztec/stdlib/hash';
2
+ import { computeSiloedPrivateInitializationNullifier, computeSiloedPublicInitializationNullifier, siloNullifier } from '@aztec/stdlib/hash';
3
3
  export async function checkTx(wallet, aztecNode, txHash, statusOnly, log) {
4
4
  if (statusOnly) {
5
5
  const receipt = await aztecNode.getTxReceipt(txHash);
@@ -11,20 +11,22 @@ export async function checkTx(wallet, aztecNode, txHash, statusOnly, log) {
11
11
  // The rest of the code here was copied over here from CLI because in CLI I needed to prune the inspect function of the PXE
12
12
  // dependency when dropping PXE JSON RPC Server.
13
13
  async function inspectTx(wallet, aztecNode, txHash, log) {
14
- const [receipt, effectsInBlock] = await Promise.all([
15
- aztecNode.getTxReceipt(txHash),
16
- aztecNode.getTxEffect(txHash)
17
- ]);
14
+ const receipt = await aztecNode.getTxReceipt(txHash, {
15
+ includeTxEffect: true
16
+ });
18
17
  // Base tx data
19
18
  log(`Tx ${txHash.toString()}`);
20
- log(` Status: ${receipt.status} ${effectsInBlock ? `(${effectsInBlock.data.revertCode.getDescription()})` : ''}`);
19
+ log(` Status: ${receipt.status}`);
20
+ if (receipt.executionResult) {
21
+ log(` Execution result: ${receipt.executionResult}`);
22
+ }
21
23
  if (receipt.error) {
22
24
  log(` Error: ${receipt.error}`);
23
25
  }
24
- if (!effectsInBlock) {
26
+ if (!receipt.isMined() || !receipt.txEffect) {
25
27
  return;
26
28
  }
27
- const effects = effectsInBlock.data;
29
+ const effects = receipt.txEffect;
28
30
  const artifactMap = await getKnownArtifacts(wallet);
29
31
  log(` Block: ${receipt.blockNumber} (${receipt.blockHash?.toString()})`);
30
32
  if (receipt.transactionFee) {
@@ -58,13 +60,15 @@ async function inspectTx(wallet, aztecNode, txHash, log) {
58
60
  // Nullifiers
59
61
  const nullifierCount = effects.nullifiers.length;
60
62
  const { deployNullifiers, initNullifiers, classNullifiers } = await getKnownNullifiers(wallet, artifactMap);
63
+ const accounts = (await wallet.getAccounts()).map((a)=>a.item);
61
64
  if (nullifierCount > 0) {
62
65
  log(' Nullifiers:');
63
66
  for (const nullifier of effects.nullifiers){
64
67
  const deployed = deployNullifiers[nullifier.toString()];
65
68
  const note = deployed ? (await wallet.getNotes({
66
69
  siloedNullifier: nullifier,
67
- contractAddress: deployed
70
+ contractAddress: deployed,
71
+ scopes: accounts
68
72
  }))[0] : undefined;
69
73
  const initialized = initNullifiers[nullifier.toString()];
70
74
  const registered = classNullifiers[nullifier.toString()];
@@ -95,7 +99,6 @@ function inspectNote(note, artifactMap, log, text = 'Note') {
95
99
  const artifact = artifactMap[note.contractAddress.toString()];
96
100
  const contract = artifact?.name ?? note.contractAddress.toString();
97
101
  log(` ${text} at ${contract}`);
98
- log(` Recipient: ${toFriendlyAddress(note.recipient, artifactMap)}`);
99
102
  for (const field of note.note.items){
100
103
  log(` ${field.toString()}`);
101
104
  }
@@ -109,17 +112,22 @@ function toFriendlyAddress(address, artifactMap) {
109
112
  }
110
113
  async function getKnownNullifiers(wallet, artifactMap) {
111
114
  const knownContracts = await wallet.getContracts();
112
- const deployerAddress = ProtocolContractAddress.ContractInstanceRegistry;
113
- const classRegistryAddress = ProtocolContractAddress.ContractClassRegistry;
115
+ const [contractResults, classResults] = await Promise.all([
116
+ Promise.all(knownContracts.map((contract)=>getContractNullifiers(wallet, contract))),
117
+ Promise.all(Object.values(artifactMap).map((artifact)=>getClassNullifier(artifact)))
118
+ ]);
114
119
  const initNullifiers = {};
115
120
  const deployNullifiers = {};
116
121
  const classNullifiers = {};
117
- for (const contract of knownContracts){
118
- initNullifiers[(await siloNullifier(contract, contract.toField())).toString()] = contract;
119
- deployNullifiers[(await siloNullifier(deployerAddress, contract.toField())).toString()] = contract;
122
+ for (const { contract, deployNullifier, privateInitNullifier, publicInitNullifier } of contractResults){
123
+ deployNullifiers[deployNullifier.toString()] = contract;
124
+ if (privateInitNullifier) {
125
+ initNullifiers[privateInitNullifier.toString()] = contract;
126
+ }
127
+ initNullifiers[publicInitNullifier.toString()] = contract;
120
128
  }
121
- for (const artifact of Object.values(artifactMap)){
122
- classNullifiers[(await siloNullifier(classRegistryAddress, artifact.classId)).toString()] = `${artifact.name}Class<${artifact.classId}>`;
129
+ for (const { nullifier, label } of classResults){
130
+ classNullifiers[nullifier.toString()] = label;
123
131
  }
124
132
  return {
125
133
  initNullifiers,
@@ -127,22 +135,45 @@ async function getKnownNullifiers(wallet, artifactMap) {
127
135
  classNullifiers
128
136
  };
129
137
  }
138
+ async function getContractNullifiers(wallet, contract) {
139
+ const deployerAddress = ProtocolContractAddress.ContractInstanceRegistry;
140
+ const deployNullifier = await siloNullifier(deployerAddress, contract.toField());
141
+ const metadata = await wallet.getContractMetadata(contract);
142
+ const privateInitNullifier = metadata.instance ? await computeSiloedPrivateInitializationNullifier(contract, metadata.instance.initializationHash) : undefined;
143
+ const publicInitNullifier = await computeSiloedPublicInitializationNullifier(contract);
144
+ return {
145
+ contract,
146
+ deployNullifier,
147
+ privateInitNullifier,
148
+ publicInitNullifier
149
+ };
150
+ }
151
+ async function getClassNullifier(artifact) {
152
+ const classRegistryAddress = ProtocolContractAddress.ContractClassRegistry;
153
+ const nullifier = await siloNullifier(classRegistryAddress, artifact.classId);
154
+ return {
155
+ nullifier,
156
+ label: `${artifact.name}Class<${artifact.classId}>`
157
+ };
158
+ }
130
159
  async function getKnownArtifacts(wallet) {
131
160
  const knownContractAddresses = await wallet.getContracts();
132
- const knownContracts = (await Promise.all(knownContractAddresses.map((contractAddress)=>wallet.getContractMetadata(contractAddress)))).map((contractMetadata)=>contractMetadata.contractInstance);
161
+ const knownContracts = await Promise.all(knownContractAddresses.map((contractAddress)=>wallet.getContractMetadata(contractAddress)));
162
+ const classIdFor = (metadata)=>metadata.updatedContractClassId ?? metadata.instance?.originalContractClassId;
133
163
  const classIds = [
134
- ...new Set(knownContracts.map((contract)=>contract?.currentContractClassId))
164
+ ...new Set(knownContracts.map(classIdFor))
135
165
  ];
136
- const knownArtifacts = (await Promise.all(classIds.map((classId)=>classId ? wallet.getContractClassMetadata(classId) : undefined))).map((contractClassMetadata)=>contractClassMetadata ? {
137
- ...contractClassMetadata.artifact,
138
- classId: contractClassMetadata.contractClass?.id
166
+ const knownArtifacts = (await Promise.all(classIds.map((classId)=>classId ? wallet.getContractArtifact(classId) : undefined))).map((artifact, index)=>artifact ? {
167
+ ...artifact,
168
+ classId: classIds[index]
139
169
  } : undefined);
140
170
  const map = {};
141
- for (const instance of knownContracts){
142
- if (instance) {
143
- const artifact = knownArtifacts.find((a)=>a?.classId?.equals(instance.currentContractClassId));
171
+ for (const metadata of knownContracts){
172
+ const classId = classIdFor(metadata);
173
+ if (metadata.instance && classId) {
174
+ const artifact = knownArtifacts.find((a)=>a?.classId?.equals(classId));
144
175
  if (artifact) {
145
- map[instance.address.toString()] = artifact;
176
+ map[metadata.instance.address.toString()] = artifact;
146
177
  }
147
178
  }
148
179
  }
@@ -1,13 +1,15 @@
1
1
  import { AztecAddress } from '@aztec/aztec.js/addresses';
2
- import type { AztecNode } from '@aztec/aztec.js/node';
3
- import { Fr } from '@aztec/foundation/fields';
2
+ import { type AztecNode } from '@aztec/aztec.js/node';
3
+ import { Fr } from '@aztec/foundation/curves/bn254';
4
4
  import type { LogFn, Logger } from '@aztec/foundation/log';
5
+ import { TxStatus } from '@aztec/stdlib/tx';
6
+ import type { AccountType } from '../utils/constants.js';
5
7
  import { CLIFeeArgs } from '../utils/options/fees.js';
6
- import { type AccountType, CLIWallet } from '../utils/wallet.js';
7
- export declare function createAccount(wallet: CLIWallet, aztecNode: AztecNode, accountType: AccountType, secretKey: Fr | undefined, publicKey: string | undefined, alias: string | undefined, deployer: AztecAddress | undefined, registerOnly: boolean, skipInitialization: boolean, publicDeploy: boolean, registerClass: boolean, wait: boolean, feeOpts: CLIFeeArgs, json: boolean, verbose: boolean, debugLogger: Logger, log: LogFn): Promise<{
8
+ import { CLIWallet } from '../utils/wallet.js';
9
+ export declare function createAccount(wallet: CLIWallet, aztecNode: AztecNode, accountType: AccountType, secretKey: Fr | undefined, salt: Fr | undefined, publicKey: string | undefined, alias: string | undefined, deployer: AztecAddress | undefined, registerOnly: boolean, skipInitialization: boolean, publicDeploy: boolean, registerClass: boolean, wait: boolean, feeOpts: CLIFeeArgs, waitForStatus: TxStatus, json: boolean, verbose: boolean, debugLogger: Logger, log: LogFn): Promise<{
8
10
  alias: string | undefined;
9
11
  address: AztecAddress;
10
12
  secretKey: Fr;
11
13
  salt: Fr;
12
14
  }>;
13
- //# sourceMappingURL=create_account.d.ts.map
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlX2FjY291bnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbWRzL2NyZWF0ZV9hY2NvdW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsS0FBSyxTQUFTLEVBQWEsTUFBTSxzQkFBc0IsQ0FBQztBQUdqRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBK0IsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHekUsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXRELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUvQyx3QkFBc0IsYUFBYSxDQUNqQyxNQUFNLEVBQUUsU0FBUyxFQUNqQixTQUFTLEVBQUUsU0FBUyxFQUNwQixXQUFXLEVBQUUsV0FBVyxFQUN4QixTQUFTLEVBQUUsRUFBRSxHQUFHLFNBQVMsRUFDekIsSUFBSSxFQUFFLEVBQUUsR0FBRyxTQUFTLEVBQ3BCLFNBQVMsRUFBRSxNQUFNLEdBQUcsU0FBUyxFQUM3QixLQUFLLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFDekIsUUFBUSxFQUFFLFlBQVksR0FBRyxTQUFTLEVBQ2xDLFlBQVksRUFBRSxPQUFPLEVBQ3JCLGtCQUFrQixFQUFFLE9BQU8sRUFDM0IsWUFBWSxFQUFFLE9BQU8sRUFDckIsYUFBYSxFQUFFLE9BQU8sRUFDdEIsSUFBSSxFQUFFLE9BQU8sRUFDYixPQUFPLEVBQUUsVUFBVSxFQUNuQixhQUFhLEVBQUUsUUFBUSxFQUN2QixJQUFJLEVBQUUsT0FBTyxFQUNiLE9BQU8sRUFBRSxPQUFPLEVBQ2hCLFdBQVcsRUFBRSxNQUFNLEVBQ25CLEdBQUcsRUFBRSxLQUFLOzs7OztHQWtJWCJ9
@@ -1 +1 @@
1
- {"version":3,"file":"create_account.d.ts","sourceRoot":"","sources":["../../src/cmds/create_account.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAG3D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,EAAE,KAAK,WAAW,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEjE,wBAAsB,aAAa,CACjC,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,EAAE,GAAG,SAAS,EACzB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,QAAQ,EAAE,YAAY,GAAG,SAAS,EAClC,YAAY,EAAE,OAAO,EACrB,kBAAkB,EAAE,OAAO,EAC3B,YAAY,EAAE,OAAO,EACrB,aAAa,EAAE,OAAO,EACtB,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,KAAK;;;;;GAiHX"}
1
+ {"version":3,"file":"create_account.d.ts","sourceRoot":"","sources":["../../src/cmds/create_account.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,sBAAsB,CAAC;AAGjE,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAA+B,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,wBAAsB,aAAa,CACjC,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,EAAE,GAAG,SAAS,EACzB,IAAI,EAAE,EAAE,GAAG,SAAS,EACpB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,QAAQ,EAAE,YAAY,GAAG,SAAS,EAClC,YAAY,EAAE,OAAO,EACrB,kBAAkB,EAAE,OAAO,EAC3B,YAAY,EAAE,OAAO,EACrB,aAAa,EAAE,OAAO,EACtB,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,UAAU,EACnB,aAAa,EAAE,QAAQ,EACvB,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,KAAK;;;;;GAkIX"}
@@ -1,12 +1,14 @@
1
- import { AztecAddress } from '@aztec/aztec.js/addresses';
1
+ import { NO_FROM } from '@aztec/aztec.js/account';
2
+ import { NO_WAIT } from '@aztec/aztec.js/contracts';
3
+ import { waitForTx } from '@aztec/aztec.js/node';
2
4
  import { prettyPrintJSON } from '@aztec/cli/cli-utils';
3
- import { Fr } from '@aztec/foundation/fields';
5
+ import { Fr } from '@aztec/foundation/curves/bn254';
4
6
  import { DEFAULT_TX_TIMEOUT_S } from '../utils/cli_wallet_and_node_wrapper.js';
5
7
  import { printProfileResult } from '../utils/profiling.js';
6
- export async function createAccount(wallet, aztecNode, accountType, secretKey, publicKey, alias, deployer, registerOnly, skipInitialization, publicDeploy, registerClass, wait, feeOpts, json, verbose, debugLogger, log) {
8
+ export async function createAccount(wallet, aztecNode, accountType, secretKey, salt, publicKey, alias, deployer, registerOnly, skipInitialization, publicDeploy, registerClass, wait, feeOpts, waitForStatus, json, verbose, debugLogger, log) {
7
9
  secretKey ??= Fr.random();
8
- const account = await wallet.createOrRetrieveAccount(undefined /* address, we don't have it yet */ , secretKey, accountType, Fr.ZERO, publicKey);
9
- const { salt } = account.getInstance();
10
+ const account = await wallet.createOrRetrieveAccount(undefined /* address, we don't have it yet */ , secretKey, accountType, salt, publicKey);
11
+ const instanceSalt = account.getInstance().salt;
10
12
  const { address, publicKeys, partialAddress } = await account.getCompleteAddress();
11
13
  const out = {};
12
14
  if (json) {
@@ -16,7 +18,7 @@ export async function createAccount(wallet, aztecNode, accountType, secretKey, p
16
18
  out.secretKey = secretKey;
17
19
  }
18
20
  out.partialAddress = partialAddress;
19
- out.salt = salt;
21
+ out.salt = instanceSalt;
20
22
  out.initHash = account.getInstance().initializationHash;
21
23
  } else {
22
24
  log(`\nNew account:\n`);
@@ -26,15 +28,17 @@ export async function createAccount(wallet, aztecNode, accountType, secretKey, p
26
28
  log(`Secret key: ${secretKey.toString()}`);
27
29
  }
28
30
  log(`Partial address: ${partialAddress.toString()}`);
29
- log(`Salt: ${salt.toString()}`);
31
+ log(`Salt: ${instanceSalt.toString()}`);
30
32
  log(`Init hash: ${account.getInstance().initializationHash.toString()}`);
31
33
  }
32
- let tx;
34
+ let txHash;
33
35
  let txReceipt;
34
- if (!registerOnly) {
36
+ // Initializerless accounts have no deployment tx — creating one only registers it locally — so there is
37
+ // nothing to deploy on-chain.
38
+ if (!registerOnly && accountType !== 'schnorr_initializerless') {
35
39
  const { paymentMethod, gasSettings } = await feeOpts.toUserFeeOptions(aztecNode, wallet, address);
36
40
  const delegatedDeployment = deployer && !account.address.equals(deployer);
37
- const from = delegatedDeployment ? deployer : AztecAddress.ZERO;
41
+ const from = delegatedDeployment ? deployer : NO_FROM;
38
42
  const deployAccountOpts = {
39
43
  skipClassPublication: !registerClass,
40
44
  skipInstancePublication: !publicDeploy,
@@ -45,14 +49,15 @@ export async function createAccount(wallet, aztecNode, accountType, secretKey, p
45
49
  gasSettings
46
50
  }
47
51
  };
52
+ const localStart = performance.now();
48
53
  const deployMethod = await account.getDeployMethod();
49
- const { estimatedGas, stats } = await deployMethod.simulate({
54
+ const sim = await deployMethod.simulate({
50
55
  ...deployAccountOpts,
51
- fee: {
52
- ...deployAccountOpts.fee,
53
- estimateGas: true
54
- }
56
+ includeMetadata: true
55
57
  });
58
+ // includeMetadata: true guarantees these fields are present
59
+ const estimatedGas = await wallet.estimateGasLimits(sim.gasUsed);
60
+ const stats = sim.stats;
56
61
  if (feeOpts.estimateOnly) {
57
62
  if (json) {
58
63
  out.fee = {
@@ -67,38 +72,49 @@ export async function createAccount(wallet, aztecNode, accountType, secretKey, p
67
72
  };
68
73
  }
69
74
  } else {
70
- tx = deployMethod.send({
75
+ if (verbose) {
76
+ printProfileResult(stats, log);
77
+ }
78
+ if (!json) {
79
+ log(`\nWaiting for account contract deployment...`);
80
+ }
81
+ const sendOpts = {
71
82
  ...deployAccountOpts,
72
83
  fee: deployAccountOpts.fee ? {
73
84
  ...deployAccountOpts.fee,
74
85
  gasSettings: estimatedGas
75
86
  } : undefined
76
- });
77
- if (verbose) {
78
- printProfileResult(stats, log);
79
- }
80
- const txHash = await tx.getTxHash();
81
- debugLogger.debug(`Account contract tx sent with hash ${txHash.toString()}`);
82
- out.txHash = txHash;
87
+ };
88
+ ({ txHash } = await deployMethod.send({
89
+ ...sendOpts,
90
+ wait: NO_WAIT
91
+ }));
92
+ const localTimeMs = performance.now() - localStart;
83
93
  if (wait) {
84
- if (!json) {
85
- log(`\nWaiting for account contract deployment...`);
86
- }
87
- txReceipt = await tx.wait({
88
- timeout: DEFAULT_TX_TIMEOUT_S
94
+ const nodeStart = performance.now();
95
+ txReceipt = await waitForTx(aztecNode, txHash, {
96
+ timeout: DEFAULT_TX_TIMEOUT_S,
97
+ waitForStatus
89
98
  });
99
+ const nodeTimeMs = performance.now() - nodeStart;
90
100
  out.txReceipt = {
91
101
  status: txReceipt.status,
92
102
  transactionFee: txReceipt.transactionFee
93
103
  };
104
+ if (!json) {
105
+ log(` Local processing time: ${(localTimeMs / 1000).toFixed(1)}s`);
106
+ log(` Node inclusion time: ${(nodeTimeMs / 1000).toFixed(1)}s`);
107
+ }
94
108
  }
109
+ debugLogger.debug(`Account contract tx sent with hash ${txHash.toString()}`);
110
+ out.txHash = txHash;
95
111
  }
96
112
  }
97
113
  if (json) {
98
114
  log(prettyPrintJSON(out));
99
115
  } else {
100
- if (tx) {
101
- log(`Deploy tx hash: ${(await tx.getTxHash()).toString()}`);
116
+ if (txHash) {
117
+ log(`Deploy tx hash: ${txHash.toString()}`);
102
118
  }
103
119
  if (txReceipt) {
104
120
  log(`Deploy tx fee: ${txReceipt.transactionFee}`);
@@ -108,6 +124,6 @@ export async function createAccount(wallet, aztecNode, accountType, secretKey, p
108
124
  alias,
109
125
  address,
110
126
  secretKey,
111
- salt
127
+ salt: instanceSalt
112
128
  };
113
129
  }
@@ -2,4 +2,4 @@ import type { AztecAddress } from '@aztec/aztec.js/addresses';
2
2
  import type { LogFn } from '@aztec/foundation/log';
3
3
  import type { CLIWallet } from '../utils/wallet.js';
4
4
  export declare function createAuthwit(wallet: CLIWallet, from: AztecAddress, functionName: string, caller: AztecAddress, functionArgsIn: any[], contractArtifactPath: string, contractAddress: AztecAddress, log: LogFn): Promise<import("@aztec/stdlib/auth-witness").AuthWitness>;
5
- //# sourceMappingURL=create_authwit.d.ts.map
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlX2F1dGh3aXQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbWRzL2NyZWF0ZV9hdXRod2l0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRzlELE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRW5ELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBELHdCQUFzQixhQUFhLENBQ2pDLE1BQU0sRUFBRSxTQUFTLEVBQ2pCLElBQUksRUFBRSxZQUFZLEVBQ2xCLFlBQVksRUFBRSxNQUFNLEVBQ3BCLE1BQU0sRUFBRSxZQUFZLEVBQ3BCLGNBQWMsRUFBRSxHQUFHLEVBQUUsRUFDckIsb0JBQW9CLEVBQUUsTUFBTSxFQUM1QixlQUFlLEVBQUUsWUFBWSxFQUM3QixHQUFHLEVBQUUsS0FBSyw2REF1QlgifQ==
@@ -5,7 +5,7 @@ export async function createAuthwit(wallet, from, functionName, caller, function
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);
8
+ const contract = Contract.at(contractAddress, contractArtifact, wallet);
9
9
  const call = await contract.methods[functionName](...functionArgs).getFunctionCall();
10
10
  const witness = await wallet.createAuthWit(from, {
11
11
  caller,
@@ -1,9 +1,10 @@
1
- import { AztecAddress } from '@aztec/aztec.js/addresses';
1
+ import type { AztecAddress } from '@aztec/aztec.js/addresses';
2
2
  import { Fr } from '@aztec/aztec.js/fields';
3
- import type { AztecNode } from '@aztec/aztec.js/node';
3
+ import { type AztecNode } from '@aztec/aztec.js/node';
4
4
  import type { LogFn, Logger } from '@aztec/foundation/log';
5
5
  import { PublicKeys } from '@aztec/stdlib/keys';
6
+ import type { TxStatus } from '@aztec/stdlib/tx';
6
7
  import { CLIFeeArgs } from '../utils/options/fees.js';
7
8
  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=deploy.d.ts.map
9
+ 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, waitForStatus: TxStatus, verbose: boolean, timeout: number | undefined, debugLogger: Logger, log: LogFn, universal?: boolean): Promise<AztecAddress>;
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY21kcy9kZXBsb3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFJOUQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVDLE9BQU8sRUFBRSxLQUFLLFNBQVMsRUFBYSxNQUFNLHNCQUFzQixDQUFDO0FBRWpFLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXRELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBELHdCQUFzQixNQUFNLENBQzFCLE1BQU0sRUFBRSxTQUFTLEVBQ2pCLElBQUksRUFBRSxTQUFTLEVBQ2YsUUFBUSxFQUFFLFlBQVksRUFDdEIsWUFBWSxFQUFFLE1BQU0sRUFDcEIsSUFBSSxFQUFFLE9BQU8sRUFDYixVQUFVLEVBQUUsVUFBVSxHQUFHLFNBQVMsRUFDbEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxFQUNkLElBQUksRUFBRSxFQUFFLEdBQUcsU0FBUyxFQUNwQixXQUFXLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFDL0IsdUJBQXVCLEVBQUUsT0FBTyxFQUNoQyxvQkFBb0IsRUFBRSxPQUFPLEVBQzdCLGtCQUFrQixFQUFFLE9BQU8sR0FBRyxTQUFTLEVBQ3ZDLElBQUksRUFBRSxPQUFPLEVBQ2IsT0FBTyxFQUFFLFVBQVUsRUFDbkIsYUFBYSxFQUFFLFFBQVEsRUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFDaEIsT0FBTyxvQkFBK0IsRUFDdEMsV0FBVyxFQUFFLE1BQU0sRUFDbkIsR0FBRyxFQUFFLEtBQUssRUFDVixTQUFTLENBQUMsRUFBRSxPQUFPLHlCQXNIcEIifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/cmds/deploy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,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,EAAE,MAAM,YAAuB,EACtC,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,KAAK,qCAgGX"}
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/cmds/deploy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAI9D,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAC5C,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,sBAAsB,CAAC;AAEjE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGjD,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,aAAa,EAAE,QAAQ,EACvB,OAAO,EAAE,OAAO,EAChB,OAAO,oBAA+B,EACtC,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,KAAK,EACV,SAAS,CAAC,EAAE,OAAO,yBAsHpB"}