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

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 (78) hide show
  1. package/README.md +2 -2
  2. package/dest/bin/index.d.ts +2 -1
  3. package/dest/bin/index.js +20 -10
  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 +44 -15
  13. package/dest/cmds/create_account.d.ts +4 -3
  14. package/dest/cmds/create_account.d.ts.map +1 -1
  15. package/dest/cmds/create_account.js +32 -18
  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 +1 -1
  19. package/dest/cmds/deploy.d.ts.map +1 -1
  20. package/dest/cmds/deploy.js +50 -24
  21. package/dest/cmds/deploy_account.d.ts +1 -1
  22. package/dest/cmds/deploy_account.d.ts.map +1 -1
  23. package/dest/cmds/deploy_account.js +31 -17
  24. package/dest/cmds/import_test_accounts.d.ts +1 -1
  25. package/dest/cmds/index.d.ts +1 -1
  26. package/dest/cmds/index.js +3 -3
  27. package/dest/cmds/profile.d.ts +1 -1
  28. package/dest/cmds/profile.js +1 -1
  29. package/dest/cmds/register_contract.d.ts +1 -1
  30. package/dest/cmds/register_sender.d.ts +1 -1
  31. package/dest/cmds/send.d.ts +2 -2
  32. package/dest/cmds/send.d.ts.map +1 -1
  33. package/dest/cmds/send.js +33 -18
  34. package/dest/cmds/simulate.d.ts +1 -1
  35. package/dest/cmds/simulate.d.ts.map +1 -1
  36. package/dest/cmds/simulate.js +4 -4
  37. package/dest/storage/wallet_db.d.ts +5 -5
  38. package/dest/storage/wallet_db.d.ts.map +1 -1
  39. package/dest/storage/wallet_db.js +47 -32
  40. package/dest/utils/authorizations.d.ts +1 -1
  41. package/dest/utils/cli_wallet_and_node_wrapper.d.ts +1 -1
  42. package/dest/utils/cli_wallet_and_node_wrapper.d.ts.map +1 -1
  43. package/dest/utils/constants.d.ts +4 -0
  44. package/dest/utils/constants.d.ts.map +1 -0
  45. package/dest/utils/constants.js +7 -0
  46. package/dest/utils/ecdsa.d.ts +1 -1
  47. package/dest/utils/options/fees.d.ts +3 -2
  48. package/dest/utils/options/fees.d.ts.map +1 -1
  49. package/dest/utils/options/fees.js +5 -3
  50. package/dest/utils/options/index.d.ts +1 -1
  51. package/dest/utils/options/options.d.ts +1 -1
  52. package/dest/utils/options/options.js +1 -1
  53. package/dest/utils/profiling.d.ts +1 -1
  54. package/dest/utils/profiling.d.ts.map +1 -1
  55. package/dest/utils/profiling.js +9 -1
  56. package/dest/utils/wallet.d.ts +15 -10
  57. package/dest/utils/wallet.d.ts.map +1 -1
  58. package/dest/utils/wallet.js +68 -47
  59. package/package.json +17 -14
  60. package/src/bin/index.ts +18 -12
  61. package/src/cmds/authorize_action.ts +2 -2
  62. package/src/cmds/bridge_fee_juice.ts +3 -2
  63. package/src/cmds/check_tx.ts +50 -21
  64. package/src/cmds/create_account.ts +32 -20
  65. package/src/cmds/create_authwit.ts +1 -1
  66. package/src/cmds/deploy.ts +45 -23
  67. package/src/cmds/deploy_account.ts +29 -18
  68. package/src/cmds/index.ts +4 -4
  69. package/src/cmds/profile.ts +1 -1
  70. package/src/cmds/send.ts +27 -12
  71. package/src/cmds/simulate.ts +5 -8
  72. package/src/storage/wallet_db.ts +51 -38
  73. package/src/utils/cli_wallet_and_node_wrapper.ts +1 -1
  74. package/src/utils/constants.ts +4 -0
  75. package/src/utils/options/fees.ts +11 -4
  76. package/src/utils/options/options.ts +1 -1
  77. package/src/utils/profiling.ts +15 -1
  78. package/src/utils/wallet.ts +83 -62
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';
@@ -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);
@@ -17,7 +17,10 @@ async function inspectTx(wallet, aztecNode, txHash, log) {
17
17
  ]);
18
18
  // Base tx data
19
19
  log(`Tx ${txHash.toString()}`);
20
- log(` Status: ${receipt.status} ${effectsInBlock ? `(${effectsInBlock.data.revertCode.getDescription()})` : ''}`);
20
+ log(` Status: ${receipt.status}`);
21
+ if (receipt.executionResult) {
22
+ log(` Execution result: ${receipt.executionResult}`);
23
+ }
21
24
  if (receipt.error) {
22
25
  log(` Error: ${receipt.error}`);
23
26
  }
@@ -64,7 +67,8 @@ async function inspectTx(wallet, aztecNode, txHash, log) {
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: 'ALL_SCOPES'
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,15 +135,36 @@ 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)))).map((contractMetadata)=>contractMetadata.instance);
133
162
  const classIds = [
134
163
  ...new Set(knownContracts.map((contract)=>contract?.currentContractClassId))
135
164
  ];
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
165
+ const knownArtifacts = (await Promise.all(classIds.map((classId)=>classId ? wallet.getContractArtifact(classId) : undefined))).map((artifact, index)=>artifact ? {
166
+ ...artifact,
167
+ classId: classIds[index]
139
168
  } : undefined);
140
169
  const map = {};
141
170
  for (const instance of knownContracts){
@@ -1,13 +1,14 @@
1
1
  import { AztecAddress } from '@aztec/aztec.js/addresses';
2
2
  import type { AztecNode } from '@aztec/aztec.js/node';
3
- import { Fr } from '@aztec/foundation/fields';
3
+ import { Fr } from '@aztec/foundation/curves/bn254';
4
4
  import type { LogFn, Logger } from '@aztec/foundation/log';
5
+ import type { AccountType } from '../utils/constants.js';
5
6
  import { CLIFeeArgs } from '../utils/options/fees.js';
6
- import { type AccountType, CLIWallet } from '../utils/wallet.js';
7
+ import { CLIWallet } from '../utils/wallet.js';
7
8
  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
9
  alias: string | undefined;
9
10
  address: AztecAddress;
10
11
  secretKey: Fr;
11
12
  salt: Fr;
12
13
  }>;
13
- //# sourceMappingURL=create_account.d.ts.map
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlX2FjY291bnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbWRzL2NyZWF0ZV9hY2NvdW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUd0RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSTNELE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFL0Msd0JBQXNCLGFBQWEsQ0FDakMsTUFBTSxFQUFFLFNBQVMsRUFDakIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsV0FBVyxFQUFFLFdBQVcsRUFDeEIsU0FBUyxFQUFFLEVBQUUsR0FBRyxTQUFTLEVBQ3pCLFNBQVMsRUFBRSxNQUFNLEdBQUcsU0FBUyxFQUM3QixLQUFLLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFDekIsUUFBUSxFQUFFLFlBQVksR0FBRyxTQUFTLEVBQ2xDLFlBQVksRUFBRSxPQUFPLEVBQ3JCLGtCQUFrQixFQUFFLE9BQU8sRUFDM0IsWUFBWSxFQUFFLE9BQU8sRUFDckIsYUFBYSxFQUFFLE9BQU8sRUFDdEIsSUFBSSxFQUFFLE9BQU8sRUFDYixPQUFPLEVBQUUsVUFBVSxFQUNuQixJQUFJLEVBQUUsT0FBTyxFQUNiLE9BQU8sRUFBRSxPQUFPLEVBQ2hCLFdBQVcsRUFBRSxNQUFNLEVBQ25CLEdBQUcsRUFBRSxLQUFLOzs7OztHQTBIWCJ9
@@ -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":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAI3D,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,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;;;;;GA0HX"}
@@ -1,6 +1,7 @@
1
1
  import { AztecAddress } from '@aztec/aztec.js/addresses';
2
+ import { NO_WAIT } from '@aztec/aztec.js/contracts';
2
3
  import { prettyPrintJSON } from '@aztec/cli/cli-utils';
3
- import { Fr } from '@aztec/foundation/fields';
4
+ import { Fr } from '@aztec/foundation/curves/bn254';
4
5
  import { DEFAULT_TX_TIMEOUT_S } from '../utils/cli_wallet_and_node_wrapper.js';
5
6
  import { printProfileResult } from '../utils/profiling.js';
6
7
  export async function createAccount(wallet, aztecNode, accountType, secretKey, publicKey, alias, deployer, registerOnly, skipInitialization, publicDeploy, registerClass, wait, feeOpts, json, verbose, debugLogger, log) {
@@ -29,7 +30,7 @@ export async function createAccount(wallet, aztecNode, accountType, secretKey, p
29
30
  log(`Salt: ${salt.toString()}`);
30
31
  log(`Init hash: ${account.getInstance().initializationHash.toString()}`);
31
32
  }
32
- let tx;
33
+ let txHash;
33
34
  let txReceipt;
34
35
  if (!registerOnly) {
35
36
  const { paymentMethod, gasSettings } = await feeOpts.toUserFeeOptions(aztecNode, wallet, address);
@@ -46,13 +47,16 @@ export async function createAccount(wallet, aztecNode, accountType, secretKey, p
46
47
  }
47
48
  };
48
49
  const deployMethod = await account.getDeployMethod();
49
- const { estimatedGas, stats } = await deployMethod.simulate({
50
+ const sim = await deployMethod.simulate({
50
51
  ...deployAccountOpts,
51
52
  fee: {
52
53
  ...deployAccountOpts.fee,
53
54
  estimateGas: true
54
55
  }
55
56
  });
57
+ // estimateGas: true guarantees these fields are present
58
+ const estimatedGas = sim.estimatedGas;
59
+ const stats = sim.stats;
56
60
  if (feeOpts.estimateOnly) {
57
61
  if (json) {
58
62
  out.fee = {
@@ -67,38 +71,48 @@ export async function createAccount(wallet, aztecNode, accountType, secretKey, p
67
71
  };
68
72
  }
69
73
  } else {
70
- tx = deployMethod.send({
74
+ if (verbose) {
75
+ printProfileResult(stats, log);
76
+ }
77
+ if (!json) {
78
+ log(`\nWaiting for account contract deployment...`);
79
+ }
80
+ const sendOpts = {
71
81
  ...deployAccountOpts,
72
82
  fee: deployAccountOpts.fee ? {
73
83
  ...deployAccountOpts.fee,
74
84
  gasSettings: estimatedGas
75
85
  } : 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;
86
+ };
83
87
  if (wait) {
84
- if (!json) {
85
- log(`\nWaiting for account contract deployment...`);
86
- }
87
- txReceipt = await tx.wait({
88
- timeout: DEFAULT_TX_TIMEOUT_S
88
+ const { receipt } = await deployMethod.send({
89
+ ...sendOpts,
90
+ wait: {
91
+ timeout: DEFAULT_TX_TIMEOUT_S,
92
+ returnReceipt: true
93
+ }
89
94
  });
95
+ txReceipt = receipt;
96
+ txHash = receipt.txHash;
90
97
  out.txReceipt = {
91
98
  status: txReceipt.status,
92
99
  transactionFee: txReceipt.transactionFee
93
100
  };
101
+ } else {
102
+ ({ txHash } = await deployMethod.send({
103
+ ...sendOpts,
104
+ wait: NO_WAIT
105
+ }));
94
106
  }
107
+ debugLogger.debug(`Account contract tx sent with hash ${txHash.toString()}`);
108
+ out.txHash = txHash;
95
109
  }
96
110
  }
97
111
  if (json) {
98
112
  log(prettyPrintJSON(out));
99
113
  } else {
100
- if (tx) {
101
- log(`Deploy tx hash: ${(await tx.getTxHash()).toString()}`);
114
+ if (txHash) {
115
+ log(`Deploy tx hash: ${txHash.toString()}`);
102
116
  }
103
117
  if (txReceipt) {
104
118
  log(`Deploy tx fee: ${txReceipt.transactionFee}`);
@@ -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,
@@ -6,4 +6,4 @@ import { PublicKeys } from '@aztec/stdlib/keys';
6
6
  import { CLIFeeArgs } from '../utils/options/fees.js';
7
7
  import type { CLIWallet } from '../utils/wallet.js';
8
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
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY21kcy9kZXBsb3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBSXpELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1QyxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV0RCxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV0RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVwRCx3QkFBc0IsTUFBTSxDQUMxQixNQUFNLEVBQUUsU0FBUyxFQUNqQixJQUFJLEVBQUUsU0FBUyxFQUNmLFFBQVEsRUFBRSxZQUFZLEVBQ3RCLFlBQVksRUFBRSxNQUFNLEVBQ3BCLElBQUksRUFBRSxPQUFPLEVBQ2IsVUFBVSxFQUFFLFVBQVUsR0FBRyxTQUFTLEVBQ2xDLE9BQU8sRUFBRSxHQUFHLEVBQUUsRUFDZCxJQUFJLEVBQUUsRUFBRSxHQUFHLFNBQVMsRUFDcEIsV0FBVyxFQUFFLE1BQU0sR0FBRyxTQUFTLEVBQy9CLHVCQUF1QixFQUFFLE9BQU8sRUFDaEMsb0JBQW9CLEVBQUUsT0FBTyxFQUM3QixrQkFBa0IsRUFBRSxPQUFPLEdBQUcsU0FBUyxFQUN2QyxJQUFJLEVBQUUsT0FBTyxFQUNiLE9BQU8sRUFBRSxVQUFVLEVBQ25CLE9BQU8sRUFBRSxPQUFPLEVBQ2hCLE9BQU8sb0JBQStCLEVBQ3RDLFdBQVcsRUFBRSxNQUFNLEVBQ25CLEdBQUcsRUFBRSxLQUFLLHFDQXFIWCJ9
@@ -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":"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,qCAqHX"}
@@ -1,4 +1,5 @@
1
1
  import { AztecAddress } from '@aztec/aztec.js/addresses';
2
+ import { NO_WAIT } from '@aztec/aztec.js/contracts';
2
3
  import { ContractDeployer } from '@aztec/aztec.js/deployment';
3
4
  import { Fr } from '@aztec/aztec.js/fields';
4
5
  import { encodeArgs, getContractArtifact, prettyPrintJSON } from '@aztec/cli/utils';
@@ -37,13 +38,16 @@ export async function deploy(wallet, node, deployer, artifactPath, json, publicK
37
38
  skipInitialization,
38
39
  skipInstancePublication
39
40
  };
40
- const { estimatedGas, stats } = await deploy1.simulate({
41
+ const sim = await deploy1.simulate({
41
42
  ...deployOpts,
42
43
  fee: {
43
44
  ...deployOpts.fee,
44
45
  estimateGas: true
45
46
  }
46
47
  });
48
+ // estimateGas: true guarantees these fields are present
49
+ const estimatedGas = sim.estimatedGas;
50
+ const stats = sim.stats;
47
51
  if (feeOpts.estimateOnly) {
48
52
  if (json) {
49
53
  out.fee = {
@@ -58,38 +62,60 @@ export async function deploy(wallet, node, deployer, artifactPath, json, publicK
58
62
  };
59
63
  }
60
64
  } else {
61
- const tx = deploy1.send(deployOpts);
62
65
  if (verbose) {
63
66
  printProfileResult(stats, log);
64
67
  }
65
- const txHash = await tx.getTxHash();
66
- debugLogger.debug(`Deploy tx sent with hash ${txHash.toString()}`);
67
- out.hash = txHash;
68
68
  const { address, partialAddress } = deploy1;
69
69
  const instance = await deploy1.getInstance();
70
- if (!json) {
71
- log(`Contract deployed at ${address?.toString()}`);
72
- log(`Contract partial address ${(await partialAddress)?.toString()}`);
73
- log(`Contract init hash ${instance.initializationHash.toString()}`);
74
- log(`Deployment tx hash: ${txHash.toString()}`);
75
- log(`Deployment salt: ${salt.toString()}`);
76
- log(`Deployer: ${instance.deployer.toString()}`);
77
- } else {
78
- out.contract = {
79
- address: address?.toString(),
80
- partialAddress: (await partialAddress)?.toString(),
81
- initializationHash: instance.initializationHash.toString(),
82
- salt: salt.toString()
83
- };
84
- }
85
70
  if (wait) {
86
- const deployed = await tx.wait({
87
- timeout
71
+ const { receipt } = await deploy1.send({
72
+ ...deployOpts,
73
+ wait: {
74
+ timeout,
75
+ returnReceipt: true
76
+ }
77
+ });
78
+ const txHash = receipt.txHash;
79
+ debugLogger.debug(`Deploy tx sent with hash ${txHash.toString()}`);
80
+ out.hash = txHash;
81
+ if (!json) {
82
+ log(`Contract deployed at ${address?.toString()}`);
83
+ log(`Contract partial address ${(await partialAddress)?.toString()}`);
84
+ log(`Contract init hash ${instance.initializationHash.toString()}`);
85
+ log(`Deployment tx hash: ${txHash.toString()}`);
86
+ log(`Deployment salt: ${salt.toString()}`);
87
+ log(`Deployer: ${instance.deployer.toString()}`);
88
+ log(`Transaction fee: ${receipt.transactionFee?.toString()}`);
89
+ } else {
90
+ out.contract = {
91
+ address: address?.toString(),
92
+ partialAddress: (await partialAddress)?.toString(),
93
+ initializationHash: instance.initializationHash.toString(),
94
+ salt: salt.toString(),
95
+ transactionFee: receipt.transactionFee?.toString()
96
+ };
97
+ }
98
+ } else {
99
+ const { txHash } = await deploy1.send({
100
+ ...deployOpts,
101
+ wait: NO_WAIT
88
102
  });
103
+ debugLogger.debug(`Deploy tx sent with hash ${txHash.toString()}`);
104
+ out.hash = txHash;
89
105
  if (!json) {
90
- log(`Transaction fee: ${deployed.transactionFee?.toString()}`);
106
+ log(`Contract deployed at ${address?.toString()}`);
107
+ log(`Contract partial address ${(await partialAddress)?.toString()}`);
108
+ log(`Contract init hash ${instance.initializationHash.toString()}`);
109
+ log(`Deployment tx hash: ${txHash.toString()}`);
110
+ log(`Deployment salt: ${salt.toString()}`);
111
+ log(`Deployer: ${instance.deployer.toString()}`);
91
112
  } else {
92
- out.contract.transactionFee = deployed.transactionFee?.toString();
113
+ out.contract = {
114
+ address: address?.toString(),
115
+ partialAddress: (await partialAddress)?.toString(),
116
+ initializationHash: instance.initializationHash.toString(),
117
+ salt: salt.toString()
118
+ };
93
119
  }
94
120
  }
95
121
  }
@@ -4,4 +4,4 @@ import type { LogFn, Logger } from '@aztec/foundation/log';
4
4
  import type { CLIFeeArgs } from '../utils/options/fees.js';
5
5
  import type { CLIWallet } from '../utils/wallet.js';
6
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=deploy_account.d.ts.map
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X2FjY291bnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbWRzL2RlcGxveV9hY2NvdW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUd0RCxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFJM0QsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFcEQsd0JBQXNCLGFBQWEsQ0FDakMsTUFBTSxFQUFFLFNBQVMsRUFDakIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsT0FBTyxFQUFFLFlBQVksRUFDckIsSUFBSSxFQUFFLE9BQU8sRUFDYixRQUFRLEVBQUUsWUFBWSxHQUFHLFNBQVMsRUFDbEMsYUFBYSxFQUFFLE9BQU8sRUFDdEIsWUFBWSxFQUFFLE9BQU8sRUFDckIsa0JBQWtCLEVBQUUsT0FBTyxFQUMzQixPQUFPLEVBQUUsVUFBVSxFQUNuQixJQUFJLEVBQUUsT0FBTyxFQUNiLE9BQU8sRUFBRSxPQUFPLEVBQ2hCLFdBQVcsRUFBRSxNQUFNLEVBQ25CLEdBQUcsRUFBRSxLQUFLLGlCQXlHWCJ9
@@ -1 +1 @@
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;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAG3D,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,iBAgGX"}
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,iBAyGX"}