@aztec/cli-wallet 0.0.1-commit.f504929 → 0.0.1-commit.f5d02921e

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 (41) hide show
  1. package/dest/cmds/check_tx.d.ts +1 -1
  2. package/dest/cmds/check_tx.d.ts.map +1 -1
  3. package/dest/cmds/check_tx.js +34 -8
  4. package/dest/cmds/create_account.d.ts +4 -3
  5. package/dest/cmds/create_account.d.ts.map +1 -1
  6. package/dest/cmds/create_account.js +24 -21
  7. package/dest/cmds/deploy.d.ts +4 -3
  8. package/dest/cmds/deploy.d.ts.map +1 -1
  9. package/dest/cmds/deploy.js +24 -23
  10. package/dest/cmds/deploy_account.d.ts +4 -3
  11. package/dest/cmds/deploy_account.d.ts.map +1 -1
  12. package/dest/cmds/deploy_account.js +19 -16
  13. package/dest/cmds/get_fee_juice_balance.d.ts +5 -0
  14. package/dest/cmds/get_fee_juice_balance.d.ts.map +1 -0
  15. package/dest/cmds/get_fee_juice_balance.js +27 -0
  16. package/dest/cmds/index.d.ts +1 -1
  17. package/dest/cmds/index.d.ts.map +1 -1
  18. package/dest/cmds/index.js +30 -14
  19. package/dest/cmds/send.d.ts +4 -3
  20. package/dest/cmds/send.d.ts.map +1 -1
  21. package/dest/cmds/send.js +23 -22
  22. package/dest/storage/wallet_db.d.ts +6 -1
  23. package/dest/storage/wallet_db.d.ts.map +1 -1
  24. package/dest/storage/wallet_db.js +14 -0
  25. package/dest/utils/options/fees.d.ts +2 -2
  26. package/dest/utils/options/fees.d.ts.map +1 -1
  27. package/dest/utils/options/fees.js +8 -5
  28. package/dest/utils/wallet.d.ts +5 -5
  29. package/dest/utils/wallet.d.ts.map +1 -1
  30. package/dest/utils/wallet.js +29 -28
  31. package/package.json +14 -14
  32. package/src/cmds/check_tx.ts +40 -9
  33. package/src/cmds/create_account.ts +25 -16
  34. package/src/cmds/deploy.ts +21 -15
  35. package/src/cmds/deploy_account.ts +19 -11
  36. package/src/cmds/get_fee_juice_balance.ts +37 -0
  37. package/src/cmds/index.ts +56 -3
  38. package/src/cmds/send.ts +20 -15
  39. package/src/storage/wallet_db.ts +14 -0
  40. package/src/utils/options/fees.ts +13 -5
  41. package/src/utils/wallet.ts +38 -48
@@ -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=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tfdHguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbWRzL2NoZWNrX3R4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXRELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSW5ELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBELHdCQUFzQixPQUFPLENBQzNCLE1BQU0sRUFBRSxTQUFTLEVBQ2pCLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsVUFBVSxFQUFFLE9BQU8sRUFDbkIsR0FBRyxFQUFFLEtBQUssOERBUVgifQ==
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);
@@ -112,17 +112,22 @@ function toFriendlyAddress(address, artifactMap) {
112
112
  }
113
113
  async function getKnownNullifiers(wallet, artifactMap) {
114
114
  const knownContracts = await wallet.getContracts();
115
- const deployerAddress = ProtocolContractAddress.ContractInstanceRegistry;
116
- 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
+ ]);
117
119
  const initNullifiers = {};
118
120
  const deployNullifiers = {};
119
121
  const classNullifiers = {};
120
- for (const contract of knownContracts){
121
- initNullifiers[(await siloNullifier(contract, contract.toField())).toString()] = contract;
122
- 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;
123
128
  }
124
- for (const artifact of Object.values(artifactMap)){
125
- classNullifiers[(await siloNullifier(classRegistryAddress, artifact.classId)).toString()] = `${artifact.name}Class<${artifact.classId}>`;
129
+ for (const { nullifier, label } of classResults){
130
+ classNullifiers[nullifier.toString()] = label;
126
131
  }
127
132
  return {
128
133
  initNullifiers,
@@ -130,6 +135,27 @@ async function getKnownNullifiers(wallet, artifactMap) {
130
135
  classNullifiers
131
136
  };
132
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
+ }
133
159
  async function getKnownArtifacts(wallet) {
134
160
  const knownContractAddresses = await wallet.getContracts();
135
161
  const knownContracts = (await Promise.all(knownContractAddresses.map((contractAddress)=>wallet.getContractMetadata(contractAddress)))).map((contractMetadata)=>contractMetadata.instance);
@@ -1,14 +1,15 @@
1
1
  import { AztecAddress } from '@aztec/aztec.js/addresses';
2
- import type { AztecNode } from '@aztec/aztec.js/node';
2
+ import { type AztecNode } from '@aztec/aztec.js/node';
3
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';
5
6
  import type { AccountType } from '../utils/constants.js';
6
7
  import { CLIFeeArgs } from '../utils/options/fees.js';
7
8
  import { CLIWallet } from '../utils/wallet.js';
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<{
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<{
9
10
  alias: string | undefined;
10
11
  address: AztecAddress;
11
12
  secretKey: Fr;
12
13
  salt: Fr;
13
14
  }>;
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlX2FjY291bnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbWRzL2NyZWF0ZV9hY2NvdW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUd0RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSTNELE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFL0Msd0JBQXNCLGFBQWEsQ0FDakMsTUFBTSxFQUFFLFNBQVMsRUFDakIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsV0FBVyxFQUFFLFdBQVcsRUFDeEIsU0FBUyxFQUFFLEVBQUUsR0FBRyxTQUFTLEVBQ3pCLFNBQVMsRUFBRSxNQUFNLEdBQUcsU0FBUyxFQUM3QixLQUFLLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFDekIsUUFBUSxFQUFFLFlBQVksR0FBRyxTQUFTLEVBQ2xDLFlBQVksRUFBRSxPQUFPLEVBQ3JCLGtCQUFrQixFQUFFLE9BQU8sRUFDM0IsWUFBWSxFQUFFLE9BQU8sRUFDckIsYUFBYSxFQUFFLE9BQU8sRUFDdEIsSUFBSSxFQUFFLE9BQU8sRUFDYixPQUFPLEVBQUUsVUFBVSxFQUNuQixJQUFJLEVBQUUsT0FBTyxFQUNiLE9BQU8sRUFBRSxPQUFPLEVBQ2hCLFdBQVcsRUFBRSxNQUFNLEVBQ25CLEdBQUcsRUFBRSxLQUFLOzs7OztHQTBIWCJ9
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlX2FjY291bnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbWRzL2NyZWF0ZV9hY2NvdW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsS0FBSyxTQUFTLEVBQWEsTUFBTSxzQkFBc0IsQ0FBQztBQUdqRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBK0IsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHekUsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXRELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUvQyx3QkFBc0IsYUFBYSxDQUNqQyxNQUFNLEVBQUUsU0FBUyxFQUNqQixTQUFTLEVBQUUsU0FBUyxFQUNwQixXQUFXLEVBQUUsV0FBVyxFQUN4QixTQUFTLEVBQUUsRUFBRSxHQUFHLFNBQVMsRUFDekIsSUFBSSxFQUFFLEVBQUUsR0FBRyxTQUFTLEVBQ3BCLFNBQVMsRUFBRSxNQUFNLEdBQUcsU0FBUyxFQUM3QixLQUFLLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFDekIsUUFBUSxFQUFFLFlBQVksR0FBRyxTQUFTLEVBQ2xDLFlBQVksRUFBRSxPQUFPLEVBQ3JCLGtCQUFrQixFQUFFLE9BQU8sRUFDM0IsWUFBWSxFQUFFLE9BQU8sRUFDckIsYUFBYSxFQUFFLE9BQU8sRUFDdEIsSUFBSSxFQUFFLE9BQU8sRUFDYixPQUFPLEVBQUUsVUFBVSxFQUNuQixhQUFhLEVBQUUsUUFBUSxFQUN2QixJQUFJLEVBQUUsT0FBTyxFQUNiLE9BQU8sRUFBRSxPQUFPLEVBQ2hCLFdBQVcsRUFBRSxNQUFNLEVBQ25CLEdBQUcsRUFBRSxLQUFLOzs7OztHQWdJWCJ9
@@ -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;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
+ {"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;;;;;GAgIX"}
@@ -1,13 +1,14 @@
1
- import { AztecAddress } from '@aztec/aztec.js/addresses';
1
+ import { NO_FROM } from '@aztec/aztec.js/account';
2
2
  import { NO_WAIT } from '@aztec/aztec.js/contracts';
3
+ import { waitForTx } from '@aztec/aztec.js/node';
3
4
  import { prettyPrintJSON } from '@aztec/cli/cli-utils';
4
5
  import { Fr } from '@aztec/foundation/curves/bn254';
5
6
  import { DEFAULT_TX_TIMEOUT_S } from '../utils/cli_wallet_and_node_wrapper.js';
6
7
  import { printProfileResult } from '../utils/profiling.js';
7
- 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) {
8
9
  secretKey ??= Fr.random();
9
- const account = await wallet.createOrRetrieveAccount(undefined /* address, we don't have it yet */ , secretKey, accountType, Fr.ZERO, publicKey);
10
- 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;
11
12
  const { address, publicKeys, partialAddress } = await account.getCompleteAddress();
12
13
  const out = {};
13
14
  if (json) {
@@ -17,7 +18,7 @@ export async function createAccount(wallet, aztecNode, accountType, secretKey, p
17
18
  out.secretKey = secretKey;
18
19
  }
19
20
  out.partialAddress = partialAddress;
20
- out.salt = salt;
21
+ out.salt = instanceSalt;
21
22
  out.initHash = account.getInstance().initializationHash;
22
23
  } else {
23
24
  log(`\nNew account:\n`);
@@ -27,7 +28,7 @@ export async function createAccount(wallet, aztecNode, accountType, secretKey, p
27
28
  log(`Secret key: ${secretKey.toString()}`);
28
29
  }
29
30
  log(`Partial address: ${partialAddress.toString()}`);
30
- log(`Salt: ${salt.toString()}`);
31
+ log(`Salt: ${instanceSalt.toString()}`);
31
32
  log(`Init hash: ${account.getInstance().initializationHash.toString()}`);
32
33
  }
33
34
  let txHash;
@@ -35,7 +36,7 @@ export async function createAccount(wallet, aztecNode, accountType, secretKey, p
35
36
  if (!registerOnly) {
36
37
  const { paymentMethod, gasSettings } = await feeOpts.toUserFeeOptions(aztecNode, wallet, address);
37
38
  const delegatedDeployment = deployer && !account.address.equals(deployer);
38
- const from = delegatedDeployment ? deployer : AztecAddress.ZERO;
39
+ const from = delegatedDeployment ? deployer : NO_FROM;
39
40
  const deployAccountOpts = {
40
41
  skipClassPublication: !registerClass,
41
42
  skipInstancePublication: !publicDeploy,
@@ -46,6 +47,7 @@ export async function createAccount(wallet, aztecNode, accountType, secretKey, p
46
47
  gasSettings
47
48
  }
48
49
  };
50
+ const localStart = performance.now();
49
51
  const deployMethod = await account.getDeployMethod();
50
52
  const sim = await deployMethod.simulate({
51
53
  ...deployAccountOpts,
@@ -84,25 +86,26 @@ export async function createAccount(wallet, aztecNode, accountType, secretKey, p
84
86
  gasSettings: estimatedGas
85
87
  } : undefined
86
88
  };
89
+ ({ txHash } = await deployMethod.send({
90
+ ...sendOpts,
91
+ wait: NO_WAIT
92
+ }));
93
+ const localTimeMs = performance.now() - localStart;
87
94
  if (wait) {
88
- const { receipt } = await deployMethod.send({
89
- ...sendOpts,
90
- wait: {
91
- timeout: DEFAULT_TX_TIMEOUT_S,
92
- returnReceipt: true
93
- }
95
+ const nodeStart = performance.now();
96
+ txReceipt = await waitForTx(aztecNode, txHash, {
97
+ timeout: DEFAULT_TX_TIMEOUT_S,
98
+ waitForStatus
94
99
  });
95
- txReceipt = receipt;
96
- txHash = receipt.txHash;
100
+ const nodeTimeMs = performance.now() - nodeStart;
97
101
  out.txReceipt = {
98
102
  status: txReceipt.status,
99
103
  transactionFee: txReceipt.transactionFee
100
104
  };
101
- } else {
102
- ({ txHash } = await deployMethod.send({
103
- ...sendOpts,
104
- wait: NO_WAIT
105
- }));
105
+ if (!json) {
106
+ log(` Local processing time: ${(localTimeMs / 1000).toFixed(1)}s`);
107
+ log(` Node inclusion time: ${(nodeTimeMs / 1000).toFixed(1)}s`);
108
+ }
106
109
  }
107
110
  debugLogger.debug(`Account contract tx sent with hash ${txHash.toString()}`);
108
111
  out.txHash = txHash;
@@ -122,6 +125,6 @@ export async function createAccount(wallet, aztecNode, accountType, secretKey, p
122
125
  alias,
123
126
  address,
124
127
  secretKey,
125
- salt
128
+ salt: instanceSalt
126
129
  };
127
130
  }
@@ -1,9 +1,10 @@
1
1
  import { 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=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY21kcy9kZXBsb3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBSXpELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1QyxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV0RCxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV0RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVwRCx3QkFBc0IsTUFBTSxDQUMxQixNQUFNLEVBQUUsU0FBUyxFQUNqQixJQUFJLEVBQUUsU0FBUyxFQUNmLFFBQVEsRUFBRSxZQUFZLEVBQ3RCLFlBQVksRUFBRSxNQUFNLEVBQ3BCLElBQUksRUFBRSxPQUFPLEVBQ2IsVUFBVSxFQUFFLFVBQVUsR0FBRyxTQUFTLEVBQ2xDLE9BQU8sRUFBRSxHQUFHLEVBQUUsRUFDZCxJQUFJLEVBQUUsRUFBRSxHQUFHLFNBQVMsRUFDcEIsV0FBVyxFQUFFLE1BQU0sR0FBRyxTQUFTLEVBQy9CLHVCQUF1QixFQUFFLE9BQU8sRUFDaEMsb0JBQW9CLEVBQUUsT0FBTyxFQUM3QixrQkFBa0IsRUFBRSxPQUFPLEdBQUcsU0FBUyxFQUN2QyxJQUFJLEVBQUUsT0FBTyxFQUNiLE9BQU8sRUFBRSxVQUFVLEVBQ25CLE9BQU8sRUFBRSxPQUFPLEVBQ2hCLE9BQU8sb0JBQStCLEVBQ3RDLFdBQVcsRUFBRSxNQUFNLEVBQ25CLEdBQUcsRUFBRSxLQUFLLHFDQXFIWCJ9
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): Promise<AztecAddress | undefined>;
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY21kcy9kZXBsb3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBSXpELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsS0FBSyxTQUFTLEVBQWEsTUFBTSxzQkFBc0IsQ0FBQztBQUVqRSxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBR2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV0RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVwRCx3QkFBc0IsTUFBTSxDQUMxQixNQUFNLEVBQUUsU0FBUyxFQUNqQixJQUFJLEVBQUUsU0FBUyxFQUNmLFFBQVEsRUFBRSxZQUFZLEVBQ3RCLFlBQVksRUFBRSxNQUFNLEVBQ3BCLElBQUksRUFBRSxPQUFPLEVBQ2IsVUFBVSxFQUFFLFVBQVUsR0FBRyxTQUFTLEVBQ2xDLE9BQU8sRUFBRSxHQUFHLEVBQUUsRUFDZCxJQUFJLEVBQUUsRUFBRSxHQUFHLFNBQVMsRUFDcEIsV0FBVyxFQUFFLE1BQU0sR0FBRyxTQUFTLEVBQy9CLHVCQUF1QixFQUFFLE9BQU8sRUFDaEMsb0JBQW9CLEVBQUUsT0FBTyxFQUM3QixrQkFBa0IsRUFBRSxPQUFPLEdBQUcsU0FBUyxFQUN2QyxJQUFJLEVBQUUsT0FBTyxFQUNiLE9BQU8sRUFBRSxVQUFVLEVBQ25CLGFBQWEsRUFBRSxRQUFRLEVBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQ2hCLE9BQU8sb0JBQStCLEVBQ3RDLFdBQVcsRUFBRSxNQUFNLEVBQ25CLEdBQUcsRUFBRSxLQUFLLHFDQXdIWCJ9
@@ -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;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
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/cmds/deploy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAIzD,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,qCAwHX"}
@@ -1,13 +1,14 @@
1
- import { AztecAddress } from '@aztec/aztec.js/addresses';
1
+ import { NO_FROM } from '@aztec/aztec.js/account';
2
2
  import { NO_WAIT } from '@aztec/aztec.js/contracts';
3
3
  import { ContractDeployer } from '@aztec/aztec.js/deployment';
4
4
  import { Fr } from '@aztec/aztec.js/fields';
5
+ import { waitForTx } from '@aztec/aztec.js/node';
5
6
  import { encodeArgs, getContractArtifact, prettyPrintJSON } from '@aztec/cli/utils';
6
7
  import { getAllFunctionAbis, getInitializer } from '@aztec/stdlib/abi';
7
8
  import { PublicKeys } from '@aztec/stdlib/keys';
8
9
  import { DEFAULT_TX_TIMEOUT_S } from '../utils/cli_wallet_and_node_wrapper.js';
9
10
  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
+ export async function deploy(wallet, node, deployer, artifactPath, json, publicKeys, rawArgs, salt, initializer, skipInstancePublication, skipClassPublication, skipInitialization, wait, feeOpts, waitForStatus, verbose, timeout = DEFAULT_TX_TIMEOUT_S, debugLogger, log) {
11
12
  const out = {};
12
13
  salt ??= Fr.random();
13
14
  const contractArtifact = await getContractArtifact(artifactPath, log);
@@ -24,21 +25,22 @@ export async function deploy(wallet, node, deployer, artifactPath, json, publicK
24
25
  args = encodeArgs(rawArgs, constructorArtifact.parameters);
25
26
  debugLogger.debug(`Encoded arguments: ${args.join(', ')}`);
26
27
  }
27
- const deploy1 = contractDeployer.deploy(...args);
28
+ const deployInteraction = contractDeployer.deploy(...args);
28
29
  const { paymentMethod, gasSettings } = await feeOpts.toUserFeeOptions(node, wallet, deployer);
29
30
  const deployOpts = {
30
31
  fee: {
31
32
  gasSettings,
32
33
  paymentMethod
33
34
  },
34
- from: deployer ?? AztecAddress.ZERO,
35
+ from: deployer ?? NO_FROM,
35
36
  contractAddressSalt: salt,
36
37
  universalDeploy: !deployer,
37
38
  skipClassPublication,
38
39
  skipInitialization,
39
40
  skipInstancePublication
40
41
  };
41
- const sim = await deploy1.simulate({
42
+ const localStart = performance.now();
43
+ const sim = await deployInteraction.simulate({
42
44
  ...deployOpts,
43
45
  fee: {
44
46
  ...deployOpts.fee,
@@ -65,19 +67,22 @@ export async function deploy(wallet, node, deployer, artifactPath, json, publicK
65
67
  if (verbose) {
66
68
  printProfileResult(stats, log);
67
69
  }
68
- const { address, partialAddress } = deploy1;
69
- const instance = await deploy1.getInstance();
70
+ const { address, partialAddress } = deployInteraction;
71
+ const instance = await deployInteraction.getInstance();
72
+ const { txHash } = await deployInteraction.send({
73
+ ...deployOpts,
74
+ wait: NO_WAIT
75
+ });
76
+ const localTimeMs = performance.now() - localStart;
77
+ debugLogger.debug(`Deploy tx sent with hash ${txHash.toString()}`);
78
+ out.hash = txHash;
70
79
  if (wait) {
71
- const { receipt } = await deploy1.send({
72
- ...deployOpts,
73
- wait: {
74
- timeout,
75
- returnReceipt: true
76
- }
80
+ const nodeStart = performance.now();
81
+ const receipt = await waitForTx(node, txHash, {
82
+ timeout,
83
+ waitForStatus
77
84
  });
78
- const txHash = receipt.txHash;
79
- debugLogger.debug(`Deploy tx sent with hash ${txHash.toString()}`);
80
- out.hash = txHash;
85
+ const nodeTimeMs = performance.now() - nodeStart;
81
86
  if (!json) {
82
87
  log(`Contract deployed at ${address?.toString()}`);
83
88
  log(`Contract partial address ${(await partialAddress)?.toString()}`);
@@ -86,6 +91,8 @@ export async function deploy(wallet, node, deployer, artifactPath, json, publicK
86
91
  log(`Deployment salt: ${salt.toString()}`);
87
92
  log(`Deployer: ${instance.deployer.toString()}`);
88
93
  log(`Transaction fee: ${receipt.transactionFee?.toString()}`);
94
+ log(` Local processing time: ${(localTimeMs / 1000).toFixed(1)}s`);
95
+ log(` Node inclusion time: ${(nodeTimeMs / 1000).toFixed(1)}s`);
89
96
  } else {
90
97
  out.contract = {
91
98
  address: address?.toString(),
@@ -96,12 +103,6 @@ export async function deploy(wallet, node, deployer, artifactPath, json, publicK
96
103
  };
97
104
  }
98
105
  } else {
99
- const { txHash } = await deploy1.send({
100
- ...deployOpts,
101
- wait: NO_WAIT
102
- });
103
- debugLogger.debug(`Deploy tx sent with hash ${txHash.toString()}`);
104
- out.hash = txHash;
105
106
  if (!json) {
106
107
  log(`Contract deployed at ${address?.toString()}`);
107
108
  log(`Contract partial address ${(await partialAddress)?.toString()}`);
@@ -122,5 +123,5 @@ export async function deploy(wallet, node, deployer, artifactPath, json, publicK
122
123
  if (json) {
123
124
  log(prettyPrintJSON(out));
124
125
  }
125
- return deploy1.address;
126
+ return deployInteraction.address;
126
127
  }
@@ -1,7 +1,8 @@
1
1
  import { AztecAddress } from '@aztec/aztec.js/addresses';
2
- import type { AztecNode } from '@aztec/aztec.js/node';
2
+ import { type AztecNode } from '@aztec/aztec.js/node';
3
3
  import type { LogFn, Logger } from '@aztec/foundation/log';
4
+ import type { TxStatus } from '@aztec/stdlib/tx';
4
5
  import type { CLIFeeArgs } from '../utils/options/fees.js';
5
6
  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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X2FjY291bnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbWRzL2RlcGxveV9hY2NvdW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUd0RCxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFJM0QsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFcEQsd0JBQXNCLGFBQWEsQ0FDakMsTUFBTSxFQUFFLFNBQVMsRUFDakIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsT0FBTyxFQUFFLFlBQVksRUFDckIsSUFBSSxFQUFFLE9BQU8sRUFDYixRQUFRLEVBQUUsWUFBWSxHQUFHLFNBQVMsRUFDbEMsYUFBYSxFQUFFLE9BQU8sRUFDdEIsWUFBWSxFQUFFLE9BQU8sRUFDckIsa0JBQWtCLEVBQUUsT0FBTyxFQUMzQixPQUFPLEVBQUUsVUFBVSxFQUNuQixJQUFJLEVBQUUsT0FBTyxFQUNiLE9BQU8sRUFBRSxPQUFPLEVBQ2hCLFdBQVcsRUFBRSxNQUFNLEVBQ25CLEdBQUcsRUFBRSxLQUFLLGlCQXlHWCJ9
7
+ export declare function deployAccount(wallet: CLIWallet, aztecNode: AztecNode, address: AztecAddress, wait: boolean, deployer: AztecAddress | undefined, registerClass: boolean, publicDeploy: boolean, skipInitialization: boolean, feeOpts: CLIFeeArgs, waitForStatus: TxStatus, json: boolean, verbose: boolean, debugLogger: Logger, log: LogFn): Promise<void>;
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X2FjY291bnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbWRzL2RlcGxveV9hY2NvdW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsS0FBSyxTQUFTLEVBQWEsTUFBTSxzQkFBc0IsQ0FBQztBQUdqRSxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxLQUFLLEVBQXFCLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBR3BFLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBELHdCQUFzQixhQUFhLENBQ2pDLE1BQU0sRUFBRSxTQUFTLEVBQ2pCLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLE9BQU8sRUFBRSxZQUFZLEVBQ3JCLElBQUksRUFBRSxPQUFPLEVBQ2IsUUFBUSxFQUFFLFlBQVksR0FBRyxTQUFTLEVBQ2xDLGFBQWEsRUFBRSxPQUFPLEVBQ3RCLFlBQVksRUFBRSxPQUFPLEVBQ3JCLGtCQUFrQixFQUFFLE9BQU8sRUFDM0IsT0FBTyxFQUFFLFVBQVUsRUFDbkIsYUFBYSxFQUFFLFFBQVEsRUFDdkIsSUFBSSxFQUFFLE9BQU8sRUFDYixPQUFPLEVBQUUsT0FBTyxFQUNoQixXQUFXLEVBQUUsTUFBTSxFQUNuQixHQUFHLEVBQUUsS0FBSyxpQkErR1gifQ==
@@ -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;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"}
1
+ {"version":3,"file":"deploy_account.d.ts","sourceRoot":"","sources":["../../src/cmds/deploy_account.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,sBAAsB,CAAC;AAGjE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAqB,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGpE,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,aAAa,EAAE,QAAQ,EACvB,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,KAAK,iBA+GX"}
@@ -1,9 +1,10 @@
1
- import { AztecAddress } from '@aztec/aztec.js/addresses';
1
+ import { NO_FROM } from '@aztec/aztec.js/account';
2
2
  import { NO_WAIT } from '@aztec/aztec.js/contracts';
3
+ import { waitForTx } from '@aztec/aztec.js/node';
3
4
  import { prettyPrintJSON } from '@aztec/cli/cli-utils';
4
5
  import { DEFAULT_TX_TIMEOUT_S } from '../utils/cli_wallet_and_node_wrapper.js';
5
6
  import { printProfileResult } from '../utils/profiling.js';
6
- export async function deployAccount(wallet, aztecNode, address, wait, deployer, registerClass, publicDeploy, skipInitialization, feeOpts, json, verbose, debugLogger, log) {
7
+ export async function deployAccount(wallet, aztecNode, address, wait, deployer, registerClass, publicDeploy, skipInitialization, feeOpts, waitForStatus, json, verbose, debugLogger, log) {
7
8
  const out = {};
8
9
  const account = await wallet.createOrRetrieveAccount(address);
9
10
  const { partialAddress, publicKeys } = await account.getCompleteAddress();
@@ -26,7 +27,7 @@ export async function deployAccount(wallet, aztecNode, address, wait, deployer,
26
27
  let txReceipt;
27
28
  const { paymentMethod, gasSettings } = await feeOpts.toUserFeeOptions(aztecNode, wallet, address);
28
29
  const delegatedDeployment = deployer && !account.address.equals(deployer);
29
- const from = delegatedDeployment ? deployer : AztecAddress.ZERO;
30
+ const from = delegatedDeployment ? deployer : NO_FROM;
30
31
  const deployAccountOpts = {
31
32
  skipClassPublication: !registerClass,
32
33
  skipInstancePublication: !publicDeploy,
@@ -37,6 +38,7 @@ export async function deployAccount(wallet, aztecNode, address, wait, deployer,
37
38
  gasSettings
38
39
  }
39
40
  };
41
+ const localStart = performance.now();
40
42
  const deployMethod = await account.getDeployMethod();
41
43
  const sim = await deployMethod.simulate({
42
44
  ...deployAccountOpts,
@@ -75,25 +77,26 @@ export async function deployAccount(wallet, aztecNode, address, wait, deployer,
75
77
  gasSettings: estimatedGas
76
78
  } : undefined
77
79
  };
80
+ ({ txHash } = await deployMethod.send({
81
+ ...sendOpts,
82
+ wait: NO_WAIT
83
+ }));
84
+ const localTimeMs = performance.now() - localStart;
78
85
  if (wait) {
79
- const { receipt } = await deployMethod.send({
80
- ...sendOpts,
81
- wait: {
82
- timeout: DEFAULT_TX_TIMEOUT_S,
83
- returnReceipt: true
84
- }
86
+ const nodeStart = performance.now();
87
+ txReceipt = await waitForTx(aztecNode, txHash, {
88
+ timeout: DEFAULT_TX_TIMEOUT_S,
89
+ waitForStatus
85
90
  });
86
- txReceipt = receipt;
87
- txHash = receipt.txHash;
91
+ const nodeTimeMs = performance.now() - nodeStart;
88
92
  out.txReceipt = {
89
93
  status: txReceipt.status,
90
94
  transactionFee: txReceipt.transactionFee
91
95
  };
92
- } else {
93
- ({ txHash } = await deployMethod.send({
94
- ...sendOpts,
95
- wait: NO_WAIT
96
- }));
96
+ if (!json) {
97
+ log(` Local processing time: ${(localTimeMs / 1000).toFixed(1)}s`);
98
+ log(` Node inclusion time: ${(nodeTimeMs / 1000).toFixed(1)}s`);
99
+ }
97
100
  }
98
101
  debugLogger.debug(`Account contract tx sent with hash ${txHash.toString()}`);
99
102
  out.txHash = txHash;
@@ -0,0 +1,5 @@
1
+ import type { AztecAddress } from '@aztec/aztec.js/addresses';
2
+ import type { AztecNode } from '@aztec/aztec.js/node';
3
+ import type { LogFn } from '@aztec/foundation/log';
4
+ export declare function getFeeJuiceBalanceCmd(node: AztecNode, address: AztecAddress, json: boolean, exact: boolean, log: LogFn): Promise<void>;
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0X2ZlZV9qdWljZV9iYWxhbmNlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY21kcy9nZXRfZmVlX2p1aWNlX2JhbGFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHdEQsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFtQm5ELHdCQUFzQixxQkFBcUIsQ0FDekMsSUFBSSxFQUFFLFNBQVMsRUFDZixPQUFPLEVBQUUsWUFBWSxFQUNyQixJQUFJLEVBQUUsT0FBTyxFQUNiLEtBQUssRUFBRSxPQUFPLEVBQ2QsR0FBRyxFQUFFLEtBQUssaUJBUVgifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get_fee_juice_balance.d.ts","sourceRoot":"","sources":["../../src/cmds/get_fee_juice_balance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAmBnD,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,YAAY,EACrB,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,KAAK,iBAQX"}
@@ -0,0 +1,27 @@
1
+ import { getFeeJuiceBalance } from '@aztec/aztec.js/utils';
2
+ import { prettyPrintJSON } from '@aztec/cli/cli-utils';
3
+ const FEE_JUICE_DECIMALS = 18;
4
+ const FEE_JUICE_UNIT = 10n ** BigInt(FEE_JUICE_DECIMALS);
5
+ /** Formats a raw FeeJuice balance (18 decimals) for human-readable display. */ function formatFeeJuice(raw, exact) {
6
+ const whole = raw / FEE_JUICE_UNIT;
7
+ const fractional = raw % FEE_JUICE_UNIT;
8
+ const fracStr = fractional.toString().padStart(FEE_JUICE_DECIMALS, '0');
9
+ if (exact) {
10
+ return `${whole}.${fracStr} FJ`;
11
+ }
12
+ if (fractional === 0n) {
13
+ return `${whole} FJ`;
14
+ }
15
+ return `${whole}.${fracStr.replace(/0+$/, '')} FJ`;
16
+ }
17
+ export async function getFeeJuiceBalanceCmd(node, address, json, exact, log) {
18
+ const balance = await getFeeJuiceBalance(address, node);
19
+ if (json) {
20
+ log(prettyPrintJSON({
21
+ address: address.toString(),
22
+ balance: balance.toString()
23
+ }));
24
+ } else {
25
+ log(`Fee Juice balance for ${address.toString()}: ${formatFeeJuice(balance, exact)}`);
26
+ }
27
+ }
@@ -3,4 +3,4 @@ import { type Command } from 'commander';
3
3
  import type { WalletDB } from '../storage/wallet_db.js';
4
4
  import type { CliWalletAndNodeWrapper } from '../utils/cli_wallet_and_node_wrapper.js';
5
5
  export declare function injectCommands(program: Command, log: LogFn, debugLogger: Logger, walletAndNodeWrapper: CliWalletAndNodeWrapper, db: WalletDB): Command;
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbWRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWFBLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsS0FBSyxPQUFPLEVBQVUsTUFBTSxXQUFXLENBQUM7QUFHakQsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQXdCdkYsd0JBQWdCLGNBQWMsQ0FDNUIsT0FBTyxFQUFFLE9BQU8sRUFDaEIsR0FBRyxFQUFFLEtBQUssRUFDVixXQUFXLEVBQUUsTUFBTSxFQUNuQixvQkFBb0IsRUFBRSx1QkFBdUIsRUFDN0MsRUFBRSxFQUFFLFFBQVEsV0FvbkJiIn0=
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbWRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWFBLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUczRCxPQUFPLEVBQUUsS0FBSyxPQUFPLEVBQVUsTUFBTSxXQUFXLENBQUM7QUFHakQsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQW1DdkYsd0JBQWdCLGNBQWMsQ0FDNUIsT0FBTyxFQUFFLE9BQU8sRUFDaEIsR0FBRyxFQUFFLEtBQUssRUFDVixXQUFXLEVBQUUsTUFBTSxFQUNuQixvQkFBb0IsRUFBRSx1QkFBdUIsRUFDN0MsRUFBRSxFQUFFLFFBQVEsV0E2cEJiIn0=
@@ -1 +1 @@
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"}
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;AAG3D,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;AAmCvF,wBAAgB,cAAc,CAC5B,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,KAAK,EACV,WAAW,EAAE,MAAM,EACnB,oBAAoB,EAAE,uBAAuB,EAC7C,EAAE,EAAE,QAAQ,WA6pBb"}