@aztec/cli-wallet 0.0.1-commit.d3ec352c → 0.0.1-commit.d58ff9d0

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 (73) hide show
  1. package/dest/bin/index.js +1 -1
  2. package/dest/cmds/authorize_action.d.ts +2 -2
  3. package/dest/cmds/authorize_action.d.ts.map +1 -1
  4. package/dest/cmds/authorize_action.js +4 -2
  5. package/dest/cmds/bridge_fee_juice.d.ts +2 -2
  6. package/dest/cmds/bridge_fee_juice.d.ts.map +1 -1
  7. package/dest/cmds/bridge_fee_juice.js +3 -2
  8. package/dest/cmds/check_tx.d.ts +1 -1
  9. package/dest/cmds/check_tx.d.ts.map +1 -1
  10. package/dest/cmds/check_tx.js +57 -25
  11. package/dest/cmds/create_account.d.ts +9 -5
  12. package/dest/cmds/create_account.d.ts.map +1 -1
  13. package/dest/cmds/create_account.js +65 -32
  14. package/dest/cmds/create_authwit.d.ts +2 -2
  15. package/dest/cmds/create_authwit.d.ts.map +1 -1
  16. package/dest/cmds/deploy.d.ts +5 -4
  17. package/dest/cmds/deploy.d.ts.map +1 -1
  18. package/dest/cmds/deploy.js +65 -36
  19. package/dest/cmds/deploy_account.d.ts +4 -3
  20. package/dest/cmds/deploy_account.d.ts.map +1 -1
  21. package/dest/cmds/deploy_account.js +39 -25
  22. package/dest/cmds/get_fee_juice_balance.d.ts +5 -0
  23. package/dest/cmds/get_fee_juice_balance.d.ts.map +1 -0
  24. package/dest/cmds/get_fee_juice_balance.js +27 -0
  25. package/dest/cmds/import_test_accounts.d.ts +1 -1
  26. package/dest/cmds/import_test_accounts.d.ts.map +1 -1
  27. package/dest/cmds/import_test_accounts.js +2 -1
  28. package/dest/cmds/index.d.ts +1 -1
  29. package/dest/cmds/index.d.ts.map +1 -1
  30. package/dest/cmds/index.js +37 -20
  31. package/dest/cmds/send.d.ts +5 -4
  32. package/dest/cmds/send.d.ts.map +1 -1
  33. package/dest/cmds/send.js +33 -20
  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 -3
  37. package/dest/storage/wallet_db.d.ts +14 -6
  38. package/dest/storage/wallet_db.d.ts.map +1 -1
  39. package/dest/storage/wallet_db.js +75 -32
  40. package/dest/utils/constants.d.ts +4 -0
  41. package/dest/utils/constants.d.ts.map +1 -0
  42. package/dest/utils/constants.js +8 -0
  43. package/dest/utils/options/fees.d.ts +3 -2
  44. package/dest/utils/options/fees.d.ts.map +1 -1
  45. package/dest/utils/options/fees.js +38 -12
  46. package/dest/utils/options/options.d.ts +2 -2
  47. package/dest/utils/options/options.d.ts.map +1 -1
  48. package/dest/utils/options/options.js +6 -6
  49. package/dest/utils/profiling.d.ts +1 -1
  50. package/dest/utils/profiling.d.ts.map +1 -1
  51. package/dest/utils/profiling.js +9 -1
  52. package/dest/utils/wallet.d.ts +40 -12
  53. package/dest/utils/wallet.d.ts.map +1 -1
  54. package/dest/utils/wallet.js +194 -104
  55. package/package.json +17 -16
  56. package/src/bin/index.ts +1 -1
  57. package/src/cmds/authorize_action.ts +1 -1
  58. package/src/cmds/bridge_fee_juice.ts +3 -2
  59. package/src/cmds/check_tx.ts +63 -31
  60. package/src/cmds/create_account.ts +70 -37
  61. package/src/cmds/deploy.ts +64 -37
  62. package/src/cmds/deploy_account.ts +40 -21
  63. package/src/cmds/get_fee_juice_balance.ts +37 -0
  64. package/src/cmds/import_test_accounts.ts +12 -1
  65. package/src/cmds/index.ts +73 -17
  66. package/src/cmds/send.ts +33 -13
  67. package/src/cmds/simulate.ts +5 -7
  68. package/src/storage/wallet_db.ts +88 -39
  69. package/src/utils/constants.ts +10 -0
  70. package/src/utils/options/fees.ts +44 -12
  71. package/src/utils/options/options.ts +6 -6
  72. package/src/utils/profiling.ts +15 -1
  73. package/src/utils/wallet.ts +241 -130
package/dest/cmds/send.js CHANGED
@@ -1,8 +1,10 @@
1
- import { Contract } from '@aztec/aztec.js/contracts';
1
+ import { Contract, NO_WAIT } from '@aztec/aztec.js/contracts';
2
+ import { waitForTx } from '@aztec/aztec.js/node';
2
3
  import { prepTx } from '@aztec/cli/utils';
4
+ import { TxStatus } from '@aztec/stdlib/tx';
3
5
  import { DEFAULT_TX_TIMEOUT_S } from '../utils/cli_wallet_and_node_wrapper.js';
4
6
  import { printProfileResult } from '../utils/profiling.js';
5
- export async function send(wallet, node, from, functionName, functionArgsIn, contractArtifactPath, contractAddress, wait, cancellable, feeOpts, authWitnesses, verbose, log) {
7
+ export async function send(wallet, node, from, functionName, functionArgsIn, contractArtifactPath, contractAddress, wait, cancellable, feeOpts, authWitnesses, waitForStatus, verbose, log) {
6
8
  const { functionArgs, contractArtifact } = await prepTx(contractArtifactPath, functionName, functionArgsIn, log);
7
9
  const contract = Contract.at(contractAddress, contractArtifact, wallet);
8
10
  const call = contract.methods[functionName](...functionArgs);
@@ -15,46 +17,57 @@ export async function send(wallet, node, from, functionName, functionArgsIn, con
15
17
  from,
16
18
  authWitnesses
17
19
  };
18
- const { estimatedGas, stats } = await call.simulate({
20
+ const localStart = performance.now();
21
+ const sim = await call.simulate({
19
22
  ...sendOptions,
20
- fee: {
21
- ...sendOptions.fee,
22
- estimateGas: true
23
- }
23
+ includeMetadata: true
24
24
  });
25
+ // includeMetadata: true guarantees these fields are present
26
+ const estimatedGas = await wallet.estimateGasLimits(sim.gasUsed);
27
+ const stats = sim.stats;
25
28
  if (feeOpts.estimateOnly) {
26
29
  return;
27
30
  }
28
- const tx = call.send({
31
+ if (verbose) {
32
+ printProfileResult(stats, log);
33
+ }
34
+ const { txHash } = await call.send({
29
35
  ...sendOptions,
30
36
  fee: {
31
37
  ...sendOptions.fee,
32
38
  gasSettings: estimatedGas
33
- }
39
+ },
40
+ wait: NO_WAIT
34
41
  });
35
- if (verbose) {
36
- printProfileResult(stats, log);
37
- }
38
- const txHash = await tx.getTxHash();
42
+ const localTimeMs = performance.now() - localStart;
39
43
  log(`\nTransaction hash: ${txHash.toString()}`);
40
44
  if (wait) {
41
45
  try {
42
- await tx.wait({
43
- timeout: DEFAULT_TX_TIMEOUT_S
46
+ const nodeStart = performance.now();
47
+ const receipt = await waitForTx(node, txHash, {
48
+ timeout: DEFAULT_TX_TIMEOUT_S,
49
+ waitForStatus
44
50
  });
45
- log('Transaction has been mined');
46
- const receipt = await tx.getReceipt();
51
+ const nodeTimeMs = performance.now() - nodeStart;
52
+ const statusLabel = waitForStatus === TxStatus.PROPOSED ? 'proposed' : 'checkpointed';
53
+ log(`Transaction has been ${statusLabel}`);
47
54
  log(` Tx fee: ${receipt.transactionFee}`);
48
55
  log(` Status: ${receipt.status}`);
49
56
  log(` Block number: ${receipt.blockNumber}`);
50
57
  log(` Block hash: ${receipt.blockHash?.toString()}`);
58
+ log(` Local processing time: ${(localTimeMs / 1000).toFixed(1)}s`);
59
+ log(` Node inclusion time: ${(nodeTimeMs / 1000).toFixed(1)}s`);
60
+ return {
61
+ txHash
62
+ };
51
63
  } catch (err) {
52
64
  log(`Transaction failed\n ${err.message}`);
65
+ throw err;
53
66
  }
54
67
  } else {
55
68
  log('Transaction pending. Check status with check-tx');
69
+ return {
70
+ txHash
71
+ };
56
72
  }
57
- return {
58
- txHash
59
- };
60
73
  }
@@ -5,4 +5,4 @@ import type { LogFn } from '@aztec/foundation/log';
5
5
  import type { CLIFeeArgs } from '../utils/options/fees.js';
6
6
  import type { CLIWallet } from '../utils/wallet.js';
7
7
  export declare function simulate(wallet: CLIWallet, node: AztecNode, from: AztecAddress, functionName: string, functionArgsIn: any[], contractArtifactPath: string, contractAddress: AztecAddress, feeOpts: CLIFeeArgs, authWitnesses: AuthWitness[], verbose: boolean, log: LogFn): Promise<void>;
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltdWxhdGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbWRzL3NpbXVsYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU1RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV0RCxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUtuRCxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUzRCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVwRCx3QkFBc0IsUUFBUSxDQUM1QixNQUFNLEVBQUUsU0FBUyxFQUNqQixJQUFJLEVBQUUsU0FBUyxFQUNmLElBQUksRUFBRSxZQUFZLEVBQ2xCLFlBQVksRUFBRSxNQUFNLEVBQ3BCLGNBQWMsRUFBRSxHQUFHLEVBQUUsRUFDckIsb0JBQW9CLEVBQUUsTUFBTSxFQUM1QixlQUFlLEVBQUUsWUFBWSxFQUM3QixPQUFPLEVBQUUsVUFBVSxFQUNuQixhQUFhLEVBQUUsV0FBVyxFQUFFLEVBQzVCLE9BQU8sRUFBRSxPQUFPLEVBQ2hCLEdBQUcsRUFBRSxLQUFLLGlCQWdDWCJ9
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltdWxhdGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbWRzL3NpbXVsYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU1RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV0RCxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUtuRCxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUzRCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVwRCx3QkFBc0IsUUFBUSxDQUM1QixNQUFNLEVBQUUsU0FBUyxFQUNqQixJQUFJLEVBQUUsU0FBUyxFQUNmLElBQUksRUFBRSxZQUFZLEVBQ2xCLFlBQVksRUFBRSxNQUFNLEVBQ3BCLGNBQWMsRUFBRSxHQUFHLEVBQUUsRUFDckIsb0JBQW9CLEVBQUUsTUFBTSxFQUM1QixlQUFlLEVBQUUsWUFBWSxFQUM3QixPQUFPLEVBQUUsVUFBVSxFQUNuQixhQUFhLEVBQUUsV0FBVyxFQUFFLEVBQzVCLE9BQU8sRUFBRSxPQUFPLEVBQ2hCLEdBQUcsRUFBRSxLQUFLLGlCQThCWCJ9
@@ -1 +1 @@
1
- {"version":3,"file":"simulate.d.ts","sourceRoot":"","sources":["../../src/cmds/simulate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAKnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,YAAY,EAClB,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,GAAG,EAAE,EACrB,oBAAoB,EAAE,MAAM,EAC5B,eAAe,EAAE,YAAY,EAC7B,OAAO,EAAE,UAAU,EACnB,aAAa,EAAE,WAAW,EAAE,EAC5B,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,KAAK,iBAgCX"}
1
+ {"version":3,"file":"simulate.d.ts","sourceRoot":"","sources":["../../src/cmds/simulate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAKnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,YAAY,EAClB,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,GAAG,EAAE,EACrB,oBAAoB,EAAE,MAAM,EAC5B,eAAe,EAAE,YAAY,EAC7B,OAAO,EAAE,UAAU,EACnB,aAAa,EAAE,WAAW,EAAE,EAC5B,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,KAAK,iBA8BX"}
@@ -20,11 +20,12 @@ export async function simulate(wallet, node, from, functionName, functionArgsIn,
20
20
  if (verbose) {
21
21
  await printAuthorizations(simulationResult.offchainEffects, async (address)=>{
22
22
  const metadata = await wallet.getContractMetadata(address);
23
- if (!metadata.contractInstance) {
23
+ if (!metadata.instance) {
24
24
  return undefined;
25
25
  }
26
- const classMetadata = await wallet.getContractClassMetadata(metadata.contractInstance.currentContractClassId, true);
27
- return classMetadata.artifact;
26
+ const classId = metadata.updatedContractClassId ?? metadata.instance.originalContractClassId;
27
+ const artifact = await wallet.getContractArtifact(classId);
28
+ return artifact;
28
29
  }, log);
29
30
  printProfileResult(simulationResult.stats, log);
30
31
  }
@@ -1,10 +1,11 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
+ import { GrumpkinScalar } from '@aztec/foundation/curves/grumpkin';
2
3
  import type { LogFn } from '@aztec/foundation/log';
3
4
  import type { AztecAsyncKVStore } from '@aztec/kv-store';
4
5
  import type { AuthWitness } from '@aztec/stdlib/auth-witness';
5
6
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
6
7
  import type { TxHash } from '@aztec/stdlib/tx';
7
- import type { AccountType } from '../utils/wallet.js';
8
+ import type { AccountType } from '../utils/constants.js';
8
9
  export declare const Aliases: readonly ["accounts", "contracts", "artifacts", "secrets", "transactions", "authwits"];
9
10
  export type AliasType = (typeof Aliases)[number];
10
11
  export declare class WalletDB {
@@ -20,9 +21,15 @@ export declare class WalletDB {
20
21
  secret: string;
21
22
  leafIndex: bigint;
22
23
  }>;
23
- storeAccount(address: AztecAddress, { type, secretKey, salt, alias, publicKey }: {
24
+ peekBridgedFeeJuice(recipient: AztecAddress, log: LogFn): Promise<{
25
+ amount: bigint;
26
+ secret: string;
27
+ leafIndex: bigint;
28
+ }>;
29
+ storeAccount(address: AztecAddress, { type, signingKey, secretKey, salt, alias, publicKey }: {
24
30
  type: AccountType;
25
- secretKey: Fr;
31
+ signingKey?: GrumpkinScalar;
32
+ secretKey?: Fr;
26
33
  salt: Fr;
27
34
  alias: string | undefined;
28
35
  publicKey: string | undefined;
@@ -44,10 +51,11 @@ export declare class WalletDB {
44
51
  retrieveAccountMetadata(aliasOrAddress: AztecAddress | string, metadataKey: string): Promise<Buffer<ArrayBufferLike>>;
45
52
  retrieveAccount(address: AztecAddress | string): Promise<{
46
53
  address: string | AztecAddress;
54
+ signingKey: import("@aztec/foundation/curves/bn254").Fq | undefined;
47
55
  secretKey: Fr;
48
56
  salt: Fr;
49
- type: "ecdsasecp256k1" | "ecdsasecp256r1" | "ecdsasecp256r1ssh" | "schnorr";
57
+ type: "ecdsasecp256k1" | "ecdsasecp256r1" | "ecdsasecp256r1ssh" | "schnorr" | "schnorr_initializerless";
50
58
  }>;
51
59
  storeAlias(type: AliasType, key: string, value: Buffer, log: LogFn): Promise<void>;
52
60
  }
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0X2RiLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RvcmFnZS93YWxsZXRfZGIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlDLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFpQixNQUFNLGlCQUFpQixDQUFDO0FBQ3hFLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRy9DLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXRELGVBQU8sTUFBTSxPQUFPLHdGQUF5RixDQUFDO0FBQzlHLE1BQU0sTUFBTSxTQUFTLEdBQUcsQ0FBQyxPQUFPLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBRWpELHFCQUFhLFFBQVE7O0lBS25CLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFXO0lBRWxDLE9BQU8sQ0FBQyxVQUFVLENBQTZCO0lBRS9DLE1BQU0sQ0FBQyxXQUFXLGFBTWpCO0lBRUssSUFBSSxDQUFDLEtBQUssRUFBRSxpQkFBaUIsaUJBTWxDO1lBRWEsaUJBQWlCO0lBSXpCLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssaUJBUzNHO0lBRUssa0JBQWtCLENBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsS0FBSzs7OztPQVkzRDtJQUVLLFlBQVksQ0FDaEIsT0FBTyxFQUFFLFlBQVksRUFDckIsRUFDRSxJQUFJLEVBQ0osU0FBUyxFQUNULElBQUksRUFDSixLQUFLLEVBQ0wsU0FBUyxFQUNWLEVBQUU7UUFBRSxJQUFJLEVBQUUsV0FBVyxDQUFDO1FBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztRQUFDLElBQUksRUFBRSxFQUFFLENBQUM7UUFBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQztRQUFDLFNBQVMsRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFBO0tBQUUsRUFDM0csR0FBRyxFQUFFLEtBQUssaUJBZ0JYO0lBRUssV0FBVyxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyxpQkFLakU7SUFFSyxhQUFhLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxpQkFXMUY7SUFFSyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxpQkFRdEU7SUFFSyxPQUFPLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUFFLE1BQU0sRUFBRSxNQUFNLENBQUE7S0FBRSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxpQkFRdkU7SUFFRCxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsTUFBTSxVQU0zQjtJQUVNLHNCQUFzQixDQUFDLEdBQUcsRUFBRSxNQUFNLFVBWXhDO0lBRUssYUFBYSxDQUFDLEdBQUcsRUFBRSxNQUFNLG1CQVc5QjtJQUVLLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTOzs7U0FXakM7SUFFSyxvQkFBb0IsQ0FBQyxjQUFjLEVBQUUsWUFBWSxHQUFHLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUd0RztJQUVLLHVCQUF1QixDQUFDLGNBQWMsRUFBRSxZQUFZLEdBQUcsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLG9DQU92RjtJQUVLLGVBQWUsQ0FBQyxPQUFPLEVBQUUsWUFBWSxHQUFHLE1BQU07Ozs7O09BU25EO0lBRUssVUFBVSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLGlCQU12RTtDQUNGIn0=
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0X2RiLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RvcmFnZS93YWxsZXRfZGIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBaUIsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUvQyxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUd6RCxlQUFPLE1BQU0sT0FBTyx3RkFBeUYsQ0FBQztBQUM5RyxNQUFNLE1BQU0sU0FBUyxHQUFHLENBQUMsT0FBTyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUVqRCxxQkFBYSxRQUFROztJQU1uQixPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBVztJQUVsQyxPQUFPLENBQUMsVUFBVSxDQUE2QjtJQUUvQyxNQUFNLENBQUMsV0FBVyxhQU1qQjtJQUVLLElBQUksQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLGlCQU9sQztZQUVhLGlCQUFpQjtJQUl6QixtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLGlCQVkzRztJQUVLLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLEtBQUs7Ozs7T0FZM0Q7SUFFSyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxLQUFLOzs7O09BWTVEO0lBRUssWUFBWSxDQUNoQixPQUFPLEVBQUUsWUFBWSxFQUNyQixFQUNFLElBQUksRUFDSixVQUFVLEVBQ1YsU0FBUyxFQUNULElBQUksRUFDSixLQUFLLEVBQ0wsU0FBUyxFQUNWLEVBQUU7UUFDRCxJQUFJLEVBQUUsV0FBVyxDQUFDO1FBQ2xCLFVBQVUsQ0FBQyxFQUFFLGNBQWMsQ0FBQztRQUM1QixTQUFTLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDZixJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ1QsS0FBSyxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7UUFDMUIsU0FBUyxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7S0FDL0IsRUFDRCxHQUFHLEVBQUUsS0FBSyxpQkErQlg7SUFFSyxXQUFXLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLGlCQUtqRTtJQUVLLGFBQWEsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLGlCQVkxRjtJQUVLLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLGlCQVN0RTtJQUVLLE9BQU8sQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQTtLQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLGlCQVN2RTtJQUVELGdCQUFnQixDQUFDLEdBQUcsRUFBRSxNQUFNLFVBTTNCO0lBRU0sc0JBQXNCLENBQUMsR0FBRyxFQUFFLE1BQU0sVUFZeEM7SUFFSyxhQUFhLENBQUMsR0FBRyxFQUFFLE1BQU0sbUJBVzlCO0lBRUssV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVM7OztTQVdqQztJQUVLLG9CQUFvQixDQUFDLGNBQWMsRUFBRSxZQUFZLEdBQUcsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBR3RHO0lBRUssdUJBQXVCLENBQUMsY0FBYyxFQUFFLFlBQVksR0FBRyxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0NBT3ZGO0lBRUssZUFBZSxDQUFDLE9BQU8sRUFBRSxZQUFZLEdBQUcsTUFBTTs7Ozs7O09BWW5EO0lBRUssVUFBVSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLGlCQU12RTtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"wallet_db.d.ts","sourceRoot":"","sources":["../../src/storage/wallet_db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,iBAAiB,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,eAAO,MAAM,OAAO,wFAAyF,CAAC;AAC9G,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjD,qBAAa,QAAQ;;IAKnB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAW;IAElC,OAAO,CAAC,UAAU,CAA6B;IAE/C,MAAM,CAAC,WAAW,aAMjB;IAEK,IAAI,CAAC,KAAK,EAAE,iBAAiB,iBAMlC;YAEa,iBAAiB;IAIzB,mBAAmB,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,iBAS3G;IAEK,kBAAkB,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,EAAE,KAAK;;;;OAY3D;IAEK,YAAY,CAChB,OAAO,EAAE,YAAY,EACrB,EACE,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,KAAK,EACL,SAAS,EACV,EAAE;QAAE,IAAI,EAAE,WAAW,CAAC;QAAC,SAAS,EAAE,EAAE,CAAC;QAAC,IAAI,EAAE,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,EAC3G,GAAG,EAAE,KAAK,iBAgBX;IAEK,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,iBAKjE;IAEK,aAAa,CAAC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,MAAM,iBAW1F;IAEK,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,MAAM,iBAQtE;IAEK,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,MAAM,iBAQvE;IAED,gBAAgB,CAAC,GAAG,EAAE,MAAM,UAM3B;IAEM,sBAAsB,CAAC,GAAG,EAAE,MAAM,UAYxC;IAEK,aAAa,CAAC,GAAG,EAAE,MAAM,mBAW9B;IAEK,WAAW,CAAC,IAAI,CAAC,EAAE,SAAS;;;SAWjC;IAEK,oBAAoB,CAAC,cAAc,EAAE,YAAY,GAAG,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,iBAGtG;IAEK,uBAAuB,CAAC,cAAc,EAAE,YAAY,GAAG,MAAM,EAAE,WAAW,EAAE,MAAM,oCAOvF;IAEK,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM;;;;;OASnD;IAEK,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,iBAMvE;CACF"}
1
+ {"version":3,"file":"wallet_db.d.ts","sourceRoot":"","sources":["../../src/storage/wallet_db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,iBAAiB,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGzD,eAAO,MAAM,OAAO,wFAAyF,CAAC;AAC9G,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjD,qBAAa,QAAQ;;IAMnB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAW;IAElC,OAAO,CAAC,UAAU,CAA6B;IAE/C,MAAM,CAAC,WAAW,aAMjB;IAEK,IAAI,CAAC,KAAK,EAAE,iBAAiB,iBAOlC;YAEa,iBAAiB;IAIzB,mBAAmB,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,iBAY3G;IAEK,kBAAkB,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,EAAE,KAAK;;;;OAY3D;IAEK,mBAAmB,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,EAAE,KAAK;;;;OAY5D;IAEK,YAAY,CAChB,OAAO,EAAE,YAAY,EACrB,EACE,IAAI,EACJ,UAAU,EACV,SAAS,EACT,IAAI,EACJ,KAAK,EACL,SAAS,EACV,EAAE;QACD,IAAI,EAAE,WAAW,CAAC;QAClB,UAAU,CAAC,EAAE,cAAc,CAAC;QAC5B,SAAS,CAAC,EAAE,EAAE,CAAC;QACf,IAAI,EAAE,EAAE,CAAC;QACT,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;QAC1B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;KAC/B,EACD,GAAG,EAAE,KAAK,iBA+BX;IAEK,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,iBAKjE;IAEK,aAAa,CAAC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,MAAM,iBAY1F;IAEK,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,MAAM,iBAStE;IAEK,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,MAAM,iBASvE;IAED,gBAAgB,CAAC,GAAG,EAAE,MAAM,UAM3B;IAEM,sBAAsB,CAAC,GAAG,EAAE,MAAM,UAYxC;IAEK,aAAa,CAAC,GAAG,EAAE,MAAM,mBAW9B;IAEK,WAAW,CAAC,IAAI,CAAC,EAAE,SAAS;;;SAWjC;IAEK,oBAAoB,CAAC,cAAc,EAAE,YAAY,GAAG,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,iBAGtG;IAEK,uBAAuB,CAAC,cAAc,EAAE,YAAY,GAAG,MAAM,EAAE,WAAW,EAAE,MAAM,oCAOvF;IAEK,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM;;;;;;OAYnD;IAEK,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,iBAMvE;CACF"}
@@ -1,4 +1,5 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
+ import { GrumpkinScalar } from '@aztec/foundation/curves/grumpkin';
2
3
  import { extractECDSAPublicKeyFromBase64String } from '../utils/ecdsa.js';
3
4
  export const Aliases = [
4
5
  'accounts',
@@ -9,6 +10,7 @@ export const Aliases = [
9
10
  'authwits'
10
11
  ];
11
12
  export class WalletDB {
13
+ #store;
12
14
  #accounts;
13
15
  #aliases;
14
16
  #bridgedFeeJuice;
@@ -21,6 +23,7 @@ export class WalletDB {
21
23
  return WalletDB.instance;
22
24
  }
23
25
  async init(store) {
26
+ this.#store = store;
24
27
  this.#accounts = store.openMap('accounts');
25
28
  this.#aliases = store.openMap('aliases');
26
29
  this.#bridgedFeeJuice = store.openMap('bridgedFeeJuice');
@@ -33,13 +36,15 @@ export class WalletDB {
33
36
  ]));
34
37
  }
35
38
  async pushBridgedFeeJuice(recipient, secret, amount, leafIndex, log) {
36
- let stackPointer = (await this.#bridgedFeeJuice.getAsync(`${recipient.toString()}:stackPointer`))?.readInt8() || 0;
37
- stackPointer++;
38
- await this.#bridgedFeeJuice.set(`${recipient.toString()}:${stackPointer}`, Buffer.from(`${amount.toString()}:${secret.toString()}:${leafIndex.toString()}`));
39
- await this.#bridgedFeeJuice.set(`${recipient.toString()}:stackPointer`, Buffer.from([
40
- stackPointer
41
- ]));
42
- log(`Pushed ${amount} fee juice for recipient ${recipient.toString()}. Stack pointer ${stackPointer}`);
39
+ await this.#store.transactionAsync(async ()=>{
40
+ let stackPointer = (await this.#bridgedFeeJuice.getAsync(`${recipient.toString()}:stackPointer`))?.readInt8() || 0;
41
+ stackPointer++;
42
+ await this.#bridgedFeeJuice.set(`${recipient.toString()}:${stackPointer}`, Buffer.from(`${amount.toString()}:${secret.toString()}:${leafIndex.toString()}`));
43
+ await this.#bridgedFeeJuice.set(`${recipient.toString()}:stackPointer`, Buffer.from([
44
+ stackPointer
45
+ ]));
46
+ log(`Pushed ${amount} fee juice for recipient ${recipient.toString()}. Stack pointer ${stackPointer}`);
47
+ });
43
48
  }
44
49
  async popBridgedFeeJuice(recipient, log) {
45
50
  let stackPointer = (await this.#bridgedFeeJuice.getAsync(`${recipient.toString()}:stackPointer`))?.readInt8() || 0;
@@ -58,18 +63,46 @@ export class WalletDB {
58
63
  leafIndex: BigInt(leafIndexStr)
59
64
  };
60
65
  }
61
- async storeAccount(address, { type, secretKey, salt, alias, publicKey }, log) {
62
- if (alias) {
63
- await this.#aliases.set(`accounts:${alias}`, Buffer.from(address.toString()));
66
+ async peekBridgedFeeJuice(recipient, log) {
67
+ const stackPointer = (await this.#bridgedFeeJuice.getAsync(`${recipient.toString()}:stackPointer`))?.readInt8() || 0;
68
+ const result = await this.#bridgedFeeJuice.getAsync(`${recipient.toString()}:${stackPointer}`);
69
+ if (!result) {
70
+ throw new Error(`No stored fee juice available for recipient ${recipient.toString()}. Please provide claim amount and secret. Stack pointer ${stackPointer}`);
71
+ }
72
+ const [amountStr, secretStr, leafIndexStr] = result.toString().split(':');
73
+ log(`Peeked ${amountStr} fee juice for recipient ${recipient.toString()}. Stack pointer ${stackPointer}`);
74
+ return {
75
+ amount: BigInt(amountStr),
76
+ secret: secretStr,
77
+ leafIndex: BigInt(leafIndexStr)
78
+ };
79
+ }
80
+ async storeAccount(address, { type, signingKey, secretKey, salt, alias, publicKey }, log) {
81
+ // Even though the privacy secret key is sometimes derived from the signing key, we store it in the database
82
+ // regardless as that is not always the case. Local-key accounts also store their signing key, while external-key
83
+ // accounts such as SSH store only the privacy secret.
84
+ if (!secretKey) {
85
+ throw new Error('Cannot store account without a secret key');
64
86
  }
65
- await this.#accounts.set(`${address.toString()}:type`, Buffer.from(type));
66
- await this.#accounts.set(`${address.toString()}:sk`, secretKey.toBuffer());
67
- await this.#accounts.set(`${address.toString()}:salt`, salt.toBuffer());
87
+ let publicSigningKey;
68
88
  if (type === 'ecdsasecp256r1ssh' && publicKey) {
69
- const publicSigningKey = extractECDSAPublicKeyFromBase64String(publicKey);
70
- await this.storeAccountMetadata(address, 'publicSigningKey', publicSigningKey);
89
+ publicSigningKey = extractECDSAPublicKeyFromBase64String(publicKey);
71
90
  }
72
- await this.#aliases.set('accounts:last', Buffer.from(address.toString()));
91
+ await this.#store.transactionAsync(async ()=>{
92
+ if (alias) {
93
+ await this.#aliases.set(`accounts:${alias}`, Buffer.from(address.toString()));
94
+ }
95
+ await this.#accounts.set(`${address.toString()}:type`, Buffer.from(type));
96
+ await this.#accounts.set(`${address.toString()}:sk`, secretKey.toBuffer());
97
+ if (signingKey) {
98
+ await this.#accounts.set(`${address.toString()}:signing`, signingKey.toBuffer());
99
+ }
100
+ await this.#accounts.set(`${address.toString()}:salt`, salt.toBuffer());
101
+ if (publicSigningKey) {
102
+ await this.#accounts.set(`${address.toString()}:publicSigningKey`, publicSigningKey);
103
+ }
104
+ await this.#aliases.set('accounts:last', Buffer.from(address.toString()));
105
+ });
73
106
  log(`Account stored in database with alias${alias ? `es last & ${alias}` : ' last'}`);
74
107
  await this.refreshAliasCache();
75
108
  }
@@ -79,29 +112,35 @@ export class WalletDB {
79
112
  await this.refreshAliasCache();
80
113
  }
81
114
  async storeContract(address, artifactPath, log, alias) {
82
- if (alias) {
83
- await this.#aliases.set(`contracts:${alias}`, Buffer.from(address.toString()));
84
- await this.#aliases.set(`artifacts:${alias}`, Buffer.from(artifactPath));
85
- }
86
- await this.#aliases.set(`contracts:last`, Buffer.from(address.toString()));
87
- await this.#aliases.set(`artifacts:last`, Buffer.from(artifactPath));
88
- await this.#aliases.set(`artifacts:${address.toString()}`, Buffer.from(artifactPath));
115
+ await this.#store.transactionAsync(async ()=>{
116
+ if (alias) {
117
+ await this.#aliases.set(`contracts:${alias}`, Buffer.from(address.toString()));
118
+ await this.#aliases.set(`artifacts:${alias}`, Buffer.from(artifactPath));
119
+ }
120
+ await this.#aliases.set(`contracts:last`, Buffer.from(address.toString()));
121
+ await this.#aliases.set(`artifacts:last`, Buffer.from(artifactPath));
122
+ await this.#aliases.set(`artifacts:${address.toString()}`, Buffer.from(artifactPath));
123
+ });
89
124
  log(`Contract stored in database with alias${alias ? `es last & ${alias}` : ' last'}`);
90
125
  await this.refreshAliasCache();
91
126
  }
92
127
  async storeAuthwitness(authWit, log, alias) {
93
- if (alias) {
94
- await this.#aliases.set(`authwits:${alias}`, Buffer.from(authWit.toString()));
95
- }
96
- await this.#aliases.set(`authwits:last`, Buffer.from(authWit.toString()));
128
+ await this.#store.transactionAsync(async ()=>{
129
+ if (alias) {
130
+ await this.#aliases.set(`authwits:${alias}`, Buffer.from(authWit.toString()));
131
+ }
132
+ await this.#aliases.set(`authwits:last`, Buffer.from(authWit.toString()));
133
+ });
97
134
  log(`Authorization witness stored in database with alias${alias ? `es last & ${alias}` : ' last'}`);
98
135
  await this.refreshAliasCache();
99
136
  }
100
137
  async storeTx({ txHash }, log, alias) {
101
- if (alias) {
102
- await this.#aliases.set(`transactions:${alias}`, Buffer.from(txHash.toString()));
103
- }
104
- await this.#aliases.set(`transactions:last`, Buffer.from(txHash.toString()));
138
+ await this.#store.transactionAsync(async ()=>{
139
+ if (alias) {
140
+ await this.#aliases.set(`transactions:${alias}`, Buffer.from(txHash.toString()));
141
+ }
142
+ await this.#aliases.set(`transactions:last`, Buffer.from(txHash.toString()));
143
+ });
105
144
  log(`Transaction hash stored in database with alias${alias ? `es last & ${alias}` : ' last'}`);
106
145
  await this.refreshAliasCache();
107
146
  }
@@ -169,11 +208,15 @@ export class WalletDB {
169
208
  if (!secretKeyBuffer) {
170
209
  throw new Error(`Could not find ${address}:sk. Account "${address.toString}" does not exist on this wallet.`);
171
210
  }
211
+ const signingKeyBuffer = await this.#accounts.getAsync(`${address.toString()}:signing`);
172
212
  const secretKey = Fr.fromBuffer(secretKeyBuffer);
213
+ // External-key accounts (e.g. SSH) store no signing key.
214
+ const signingKey = signingKeyBuffer ? GrumpkinScalar.fromBuffer(signingKeyBuffer) : undefined;
173
215
  const salt = Fr.fromBuffer(await this.#accounts.getAsync(`${address.toString()}:salt`));
174
216
  const type = (await this.#accounts.getAsync(`${address.toString()}:type`)).toString('utf8');
175
217
  return {
176
218
  address,
219
+ signingKey,
177
220
  secretKey,
178
221
  salt,
179
222
  type
@@ -0,0 +1,4 @@
1
+ export declare const MIN_FEE_PADDING = 0.5;
2
+ export declare const AccountTypes: readonly ["schnorr", "schnorr_initializerless", "ecdsasecp256r1", "ecdsasecp256r1ssh", "ecdsasecp256k1"];
3
+ export type AccountType = (typeof AccountTypes)[number];
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGVBQU8sTUFBTSxlQUFlLE1BQU0sQ0FBQztBQUVuQyxlQUFPLE1BQU0sWUFBWSwwR0FNZixDQUFDO0FBQ1gsTUFBTSxNQUFNLFdBQVcsR0FBRyxDQUFDLE9BQU8sWUFBWSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,MAAM,CAAC;AAEnC,eAAO,MAAM,YAAY,0GAMf,CAAC;AACX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ export const MIN_FEE_PADDING = 0.5;
2
+ export const AccountTypes = [
3
+ 'schnorr',
4
+ 'schnorr_initializerless',
5
+ 'ecdsasecp256r1',
6
+ 'ecdsasecp256r1ssh',
7
+ 'ecdsasecp256k1'
8
+ ];
@@ -20,7 +20,7 @@ export type ParsedFeeOptions = {
20
20
  gasSettings?: Partial<FieldsOf<GasSettings>>;
21
21
  };
22
22
  export declare function getPaymentMethodOption(): Option;
23
- export declare function parsePaymentMethod(payment: string, log: LogFn, db?: WalletDB): (wallet: Wallet, from: AztecAddress, gasSettings: GasSettings) => Promise<FeePaymentMethod | undefined>;
23
+ export declare function parsePaymentMethod(payment: string, log: LogFn, db?: WalletDB, estimateOnly?: boolean): (wallet: Wallet, from: AztecAddress, gasSettings: GasSettings) => Promise<FeePaymentMethod | undefined>;
24
24
  export declare function parseGasFees(gasFees: string): GasFees;
25
25
  export declare class CLIFeeArgs {
26
26
  estimateOnly: boolean;
@@ -28,8 +28,9 @@ export declare class CLIFeeArgs {
28
28
  private gasSettings;
29
29
  constructor(estimateOnly: boolean, paymentMethod: (wallet: Wallet, feePayer: AztecAddress, gasSettings: GasSettings) => Promise<FeePaymentMethod | undefined>, gasSettings: Partial<FieldsOf<GasSettings>>);
30
30
  toUserFeeOptions(node: AztecNode, wallet: Wallet, from: AztecAddress): Promise<ParsedFeeOptions>;
31
+ private getMinFees;
31
32
  static parse(args: RawCliFeeArgs, log: LogFn, db?: WalletDB): CLIFeeArgs;
32
33
  static getOptions(): Option[];
33
34
  }
34
35
  export declare function printGasEstimates(feeOpts: FeeOptions, gasEstimates: Pick<GasSettings, 'gasLimits' | 'teardownGasLimits'>, log: LogFn): void;
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL29wdGlvbnMvZmVlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXJELE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQU8sT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRWhFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFbkMsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFJM0QsTUFBTSxNQUFNLGFBQWEsR0FBRztJQUMxQixlQUFlLEVBQUUsT0FBTyxDQUFDO0lBQ3pCLFNBQVMsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNuQixPQUFPLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDakIsYUFBYSxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ3ZCLHFCQUFxQixDQUFDLEVBQUUsTUFBTSxDQUFDO0NBQ2hDLENBQUM7QUFFRixNQUFNLE1BQU0sZ0JBQWdCLEdBQUc7SUFDN0IsYUFBYSxDQUFDLEVBQUUsZ0JBQWdCLENBQUM7SUFDakMsV0FBVyxDQUFDLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0NBQzlDLENBQUM7QUF5REYsd0JBQWdCLHNCQUFzQixXQUdyQztBQTBCRCx3QkFBZ0Isa0JBQWtCLENBQ2hDLE9BQU8sRUFBRSxNQUFNLEVBQ2YsR0FBRyxFQUFFLEtBQUssRUFDVixFQUFFLENBQUMsRUFBRSxRQUFRLEdBQ1osQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsS0FBSyxPQUFPLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLENBK0V6RztBQXlCRCx3QkFBZ0IsWUFBWSxDQUFDLE9BQU8sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQWtCckQ7QUFDRCxxQkFBYSxVQUFVO0lBRVosWUFBWSxFQUFFLE9BQU87SUFDNUIsT0FBTyxDQUFDLGFBQWE7SUFLckIsT0FBTyxDQUFDLFdBQVc7SUFQckIsWUFDUyxZQUFZLEVBQUUsT0FBTyxFQUNwQixhQUFhLEVBQUUsQ0FDckIsTUFBTSxFQUFFLE1BQU0sRUFDZCxRQUFRLEVBQUUsWUFBWSxFQUN0QixXQUFXLEVBQUUsV0FBVyxLQUNyQixPQUFPLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLEVBQ2xDLFdBQVcsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQ2pEO0lBRUUsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxZQUFZLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBUXJHO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsUUFBUSxHQUFHLFVBQVUsQ0FNdkU7SUFFRCxNQUFNLENBQUMsVUFBVSxhQUVoQjtDQUNGO0FBSUQsd0JBQWdCLGlCQUFpQixDQUMvQixPQUFPLEVBQUUsVUFBVSxFQUNuQixZQUFZLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXLEdBQUcsbUJBQW1CLENBQUMsRUFDbEUsR0FBRyxFQUFFLEtBQUssUUFJWCJ9
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL29wdGlvbnMvZmVlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXJELE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQU8sT0FBTyxFQUFFLFdBQVcsRUFBcUIsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRixPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVoRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRW5DLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBSTNELE1BQU0sTUFBTSxhQUFhLEdBQUc7SUFDMUIsZUFBZSxFQUFFLE9BQU8sQ0FBQztJQUN6QixTQUFTLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDbkIsT0FBTyxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2pCLGFBQWEsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUN2QixxQkFBcUIsQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUNoQyxDQUFDO0FBRUYsTUFBTSxNQUFNLGdCQUFnQixHQUFHO0lBQzdCLGFBQWEsQ0FBQyxFQUFFLGdCQUFnQixDQUFDO0lBQ2pDLFdBQVcsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztDQUM5QyxDQUFDO0FBeURGLHdCQUFnQixzQkFBc0IsV0FHckM7QUEwQkQsd0JBQWdCLGtCQUFrQixDQUNoQyxPQUFPLEVBQUUsTUFBTSxFQUNmLEdBQUcsRUFBRSxLQUFLLEVBQ1YsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUNiLFlBQVksQ0FBQyxFQUFFLE9BQU8sR0FDckIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsS0FBSyxPQUFPLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLENBcUZ6RztBQXlCRCx3QkFBZ0IsWUFBWSxDQUFDLE9BQU8sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQWtCckQ7QUFDRCxxQkFBYSxVQUFVO0lBRVosWUFBWSxFQUFFLE9BQU87SUFDNUIsT0FBTyxDQUFDLGFBQWE7SUFLckIsT0FBTyxDQUFDLFdBQVc7SUFQckIsWUFDUyxZQUFZLEVBQUUsT0FBTyxFQUNwQixhQUFhLEVBQUUsQ0FDckIsTUFBTSxFQUFFLE1BQU0sRUFDZCxRQUFRLEVBQUUsWUFBWSxFQUN0QixXQUFXLEVBQUUsV0FBVyxLQUNyQixPQUFPLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLEVBQ2xDLFdBQVcsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQ2pEO0lBRUUsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxZQUFZLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBV3JHO1lBTWEsVUFBVTtJQWlCeEIsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsUUFBUSxHQUFHLFVBQVUsQ0FPdkU7SUFFRCxNQUFNLENBQUMsVUFBVSxhQUVoQjtDQUNGO0FBSUQsd0JBQWdCLGlCQUFpQixDQUMvQixPQUFPLEVBQUUsVUFBVSxFQUNuQixZQUFZLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXLEdBQUcsbUJBQW1CLENBQUMsRUFDbEUsR0FBRyxFQUFFLEtBQUssUUFJWCJ9
@@ -1 +1 @@
1
- {"version":3,"file":"fees.d.ts","sourceRoot":"","sources":["../../../src/utils/options/fees.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAO,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAI3D,MAAM,MAAM,aAAa,GAAG;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,CAAC,EAAE,gBAAgB,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;CAC9C,CAAC;AAyDF,wBAAgB,sBAAsB,WAGrC;AA0BD,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,KAAK,EACV,EAAE,CAAC,EAAE,QAAQ,GACZ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,KAAK,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CA+EzG;AAyBD,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAkBrD;AACD,qBAAa,UAAU;IAEZ,YAAY,EAAE,OAAO;IAC5B,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,WAAW;IAPrB,YACS,YAAY,EAAE,OAAO,EACpB,aAAa,EAAE,CACrB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,WAAW,KACrB,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,EAClC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,EACjD;IAEE,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAQrG;IAED,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,UAAU,CAMvE;IAED,MAAM,CAAC,UAAU,aAEhB;CACF;AAID,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,UAAU,EACnB,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,mBAAmB,CAAC,EAClE,GAAG,EAAE,KAAK,QAIX"}
1
+ {"version":3,"file":"fees.d.ts","sourceRoot":"","sources":["../../../src/utils/options/fees.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAO,OAAO,EAAE,WAAW,EAAqB,MAAM,mBAAmB,CAAC;AACjF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAI3D,MAAM,MAAM,aAAa,GAAG;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,CAAC,EAAE,gBAAgB,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;CAC9C,CAAC;AAyDF,wBAAgB,sBAAsB,WAGrC;AA0BD,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,KAAK,EACV,EAAE,CAAC,EAAE,QAAQ,EACb,YAAY,CAAC,EAAE,OAAO,GACrB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,KAAK,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAqFzG;AAyBD,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAkBrD;AACD,qBAAa,UAAU;IAEZ,YAAY,EAAE,OAAO;IAC5B,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,WAAW;IAPrB,YACS,YAAY,EAAE,OAAO,EACpB,aAAa,EAAE,CACrB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,WAAW,KACrB,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,EAClC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,EACjD;IAEE,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAWrG;YAMa,UAAU;IAiBxB,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,UAAU,CAOvE;IAED,MAAM,CAAC,UAAU,aAEhB;CACF;AAID,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,UAAU,EACnB,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,mBAAmB,CAAC,EAClE,GAAG,EAAE,KAAK,QAIX"}
@@ -1,8 +1,8 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
3
- import { Gas, GasFees, GasSettings } from '@aztec/stdlib/gas';
3
+ import { Gas, GasFees, GasSettings, ManaUsageEstimate } from '@aztec/stdlib/gas';
4
4
  import { Option } from 'commander';
5
- import { BASE_FEE_PADDING } from '../wallet.js';
5
+ import { MIN_FEE_PADDING } from '../constants.js';
6
6
  import { aliasedAddressParser } from './options.js';
7
7
  function printOptionParams(params) {
8
8
  const paramsWithDescription = Object.keys(params).filter((name)=>params[name].description);
@@ -70,7 +70,7 @@ function parseGasSettings(args) {
70
70
  maxPriorityFeesPerGas
71
71
  };
72
72
  }
73
- export function parsePaymentMethod(payment, log, db) {
73
+ export function parsePaymentMethod(payment, log, db, estimateOnly) {
74
74
  const parsed = payment.split(',').reduce((acc, item)=>{
75
75
  const [dimension, value] = item.split('=');
76
76
  acc[dimension] = value ?? 1;
@@ -86,7 +86,7 @@ export function parsePaymentMethod(payment, log, db) {
86
86
  if (!parsed.asset) {
87
87
  throw new Error('Missing "asset" in payment option');
88
88
  }
89
- return AztecAddress.fromString(parsed.asset);
89
+ return AztecAddress.fromStringUnsafe(parsed.asset);
90
90
  };
91
91
  return async (wallet, from, gasSettings)=>{
92
92
  switch(parsed.method){
@@ -95,15 +95,15 @@ export function parsePaymentMethod(payment, log, db) {
95
95
  if (parsed.claim || parsed.claimSecret && parsed.claimAmount && parsed.messageLeafIndex) {
96
96
  let claimAmount, claimSecret, messageLeafIndex;
97
97
  if (parsed.claim && db) {
98
- ({ amount: claimAmount, secret: claimSecret, leafIndex: messageLeafIndex } = await db.popBridgedFeeJuice(from, log));
98
+ ({ amount: claimAmount, secret: claimSecret, leafIndex: messageLeafIndex } = estimateOnly ? await db.peekBridgedFeeJuice(from, log) : await db.popBridgedFeeJuice(from, log));
99
99
  } else {
100
100
  ({ claimAmount, claimSecret, messageLeafIndex } = parsed);
101
101
  }
102
102
  log(`Using Fee Juice for fee payments with claim for ${claimAmount} tokens`);
103
103
  const { FeeJuicePaymentMethodWithClaim } = await import('@aztec/aztec.js/fee');
104
104
  return new FeeJuicePaymentMethodWithClaim(from, {
105
- claimAmount: (typeof claimAmount === 'string' ? Fr.fromHexString(claimAmount) : new Fr(claimAmount)).toBigInt(),
106
- claimSecret: Fr.fromHexString(claimSecret),
105
+ claimAmount: (typeof claimAmount === 'string' ? Fr.fromString(claimAmount) : new Fr(claimAmount)).toBigInt(),
106
+ claimSecret: typeof claimSecret === 'string' ? Fr.fromString(claimSecret) : claimSecret,
107
107
  messageLeafIndex: BigInt(messageLeafIndex)
108
108
  });
109
109
  } else {
@@ -115,6 +115,7 @@ export function parsePaymentMethod(payment, log, db) {
115
115
  {
116
116
  const fpc = getFpc();
117
117
  const asset = getAsset();
118
+ log(`WARNING: fpc-public is deprecated and will not work on mainnet alpha. Use fee_juice or fpc-sponsored instead.`);
118
119
  log(`Using public fee payment with asset ${asset} via paymaster ${fpc}`);
119
120
  const { PublicFeePaymentMethod } = await import('@aztec/aztec.js/fee');
120
121
  return new PublicFeePaymentMethod(fpc, from, wallet, gasSettings);
@@ -123,6 +124,7 @@ export function parsePaymentMethod(payment, log, db) {
123
124
  {
124
125
  const fpc = getFpc();
125
126
  const asset = getAsset();
127
+ log(`WARNING: fpc-private is deprecated and will not work on mainnet alpha. Use fee_juice or fpc-sponsored instead.`);
126
128
  log(`Using private fee payment with asset ${asset} via paymaster ${fpc}`);
127
129
  const { PrivateFeePaymentMethod } = await import('@aztec/aztec.js/fee');
128
130
  return new PrivateFeePaymentMethod(fpc, from, wallet, gasSettings);
@@ -190,9 +192,13 @@ export class CLIFeeArgs {
190
192
  this.gasSettings = gasSettings;
191
193
  }
192
194
  async toUserFeeOptions(node, wallet, from) {
193
- const maxFeesPerGas = (await node.getCurrentBaseFees()).mul(1 + BASE_FEE_PADDING);
194
- const gasSettings = GasSettings.default({
195
+ const minFees = await this.getMinFees(node);
196
+ const maxFeesPerGas = minFees.mul(1 + MIN_FEE_PADDING);
197
+ const { txsLimits } = await node.getNodeInfo();
198
+ const gasLimits = this.gasSettings.gasLimits ?? Gas.from(txsLimits.gas);
199
+ const gasSettings = GasSettings.fallback({
195
200
  ...this.gasSettings,
201
+ gasLimits,
196
202
  maxFeesPerGas
197
203
  });
198
204
  const paymentMethod = await this.paymentMethod(wallet, from, gasSettings);
@@ -201,8 +207,28 @@ export class CLIFeeArgs {
201
207
  gasSettings
202
208
  };
203
209
  }
210
+ /**
211
+ * Returns the worst-case min fee across predicted future slots.
212
+ * Falls back to getCurrentMinFees if the node doesn't support getPredictedMinFees.
213
+ */ async getMinFees(node) {
214
+ try {
215
+ const predicted = await node.getPredictedMinFees(ManaUsageEstimate.Limit);
216
+ if (predicted.length === 0) {
217
+ return node.getCurrentMinFees();
218
+ }
219
+ return predicted.reduce((worst, fees)=>fees.feePerL2Gas > worst.feePerL2Gas ? fees : worst);
220
+ } catch (err) {
221
+ // Fallback for old nodes that don't support getPredictedMinFees.
222
+ // Only fall back on method-not-found errors (JSON-RPC code -32601); rethrow others.
223
+ if (err?.cause?.code === -32601 || err?.message?.includes('Method not found')) {
224
+ return node.getCurrentMinFees();
225
+ }
226
+ throw err;
227
+ }
228
+ }
204
229
  static parse(args, log, db) {
205
- return new CLIFeeArgs(!!args.estimateGasOnly, parsePaymentMethod(args.payment ?? 'method=fee_juice', log, db), parseGasSettings(args));
230
+ const estimateOnly = !!args.estimateGasOnly;
231
+ return new CLIFeeArgs(estimateOnly, parsePaymentMethod(args.payment ?? 'method=fee_juice', log, db, estimateOnly), parseGasSettings(args));
206
232
  }
207
233
  static getOptions() {
208
234
  return getFeeOptions();
@@ -217,7 +243,7 @@ function formatGasEstimate(estimate) {
217
243
  return `da=${estimate.gasLimits.daGas},l2=${estimate.gasLimits.l2Gas},teardownDA=${estimate.teardownGasLimits.daGas},teardownL2=${estimate.teardownGasLimits.l2Gas}`;
218
244
  }
219
245
  function getEstimatedCost(estimate, maxFeesPerGas) {
220
- return GasSettings.default({
246
+ return GasSettings.fallback({
221
247
  ...estimate,
222
248
  maxFeesPerGas
223
249
  }).getFeeLimit().toBigInt();
@@ -8,7 +8,7 @@ export declare function integerArgParser(value: string, argName: string, min?: n
8
8
  export declare function aliasedTxHashParser(txHash: string, db?: WalletDB): TxHash;
9
9
  export declare function aliasedAuthWitParser(witnesses: string, db?: WalletDB): AuthWitness[];
10
10
  export declare function aliasedAddressParser(defaultPrefix: AliasType, address: string, db?: WalletDB): AztecAddress;
11
- export declare function aliasedSecretKeyParser(sk: string, db?: WalletDB): import("../../../../foundation/dest/fields/fields.js").Fr;
11
+ export declare function aliasedSigningKeyParser(sk: string, db?: WalletDB): import("@aztec/foundation/schemas").Fq;
12
12
  export declare function createAliasOption(description: string, hide: boolean): Option;
13
13
  export declare function createAccountOption(description: string, hide: boolean, db?: WalletDB): Option;
14
14
  export declare function createAuthwitnessOption(description: string, hide: boolean, db?: WalletDB): Option;
@@ -21,4 +21,4 @@ export declare function artifactPathParser(filePath: string, db?: WalletDB): Pro
21
21
  export declare function artifactPathFromPromiseOrAlias(artifactPathPromise: Promise<string>, contractAddress: AztecAddress, db?: WalletDB): Promise<string>;
22
22
  export declare function createArtifactOption(db?: WalletDB): Option;
23
23
  export declare function cleanupAuthWitnesses(authWitnesses: AuthWitness[] | undefined): AuthWitness[];
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL29wdGlvbnMvb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHbkMsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBS3RFLGVBQU8sTUFBTSxvQkFBb0Isd0tBQ3NJLENBQUM7QUFFeEssd0JBQWdCLGdCQUFnQixDQUM5QixLQUFLLEVBQUUsTUFBTSxFQUNiLE9BQU8sRUFBRSxNQUFNLEVBQ2YsR0FBRyxTQUEwQixFQUM3QixHQUFHLFNBQTBCLFVBVTlCO0FBRUQsd0JBQWdCLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUUsUUFBUSxHQUFHLE1BQU0sQ0FRekU7QUFFRCx3QkFBZ0Isb0JBQW9CLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxRQUFRLGlCQVlwRTtBQUVELHdCQUFnQixvQkFBb0IsQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUUsUUFBUSxnQkFRNUY7QUFFRCx3QkFBZ0Isc0JBQXNCLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxRQUFRLDZEQVEvRDtBQUVELHdCQUFnQixpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLFVBRW5FO0FBRUQsd0JBQWdCLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsRUFBRSxRQUFRLFVBSXBGO0FBRUQsd0JBQWdCLHVCQUF1QixDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsRUFBRSxRQUFRLFVBSXhGO0FBRUQsd0JBQWdCLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxPQUFPLFVBTWxEO0FBRUQsd0JBQWdCLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUUsUUFBUSxVQVFyRTtBQUVELHdCQUFnQiwyQkFBMkIsQ0FBQyxFQUFFLENBQUMsRUFBRSxRQUFRLFVBSXhEO0FBRUQsd0JBQWdCLGtDQUFrQyxXQUtqRDtBQUVELHdCQUFnQixtQkFBbUIsV0FLbEM7QUFFRCx3QkFBZ0Isa0JBQWtCLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxRQUFRLG1CQWFqRTtBQUVELHdCQUFzQiw4QkFBOEIsQ0FDbEQsbUJBQW1CLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUNwQyxlQUFlLEVBQUUsWUFBWSxFQUM3QixFQUFFLENBQUMsRUFBRSxRQUFRLG1CQVdkO0FBRUQsd0JBQWdCLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxFQUFFLFFBQVEsVUFJakQ7QUE2QkQsd0JBQWdCLG9CQUFvQixDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsR0FBRyxTQUFTLEdBQUcsV0FBVyxFQUFFLENBRTVGIn0=
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL29wdGlvbnMvb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHbkMsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBS3RFLGVBQU8sTUFBTSxvQkFBb0Isd0tBQ3NJLENBQUM7QUFFeEssd0JBQWdCLGdCQUFnQixDQUM5QixLQUFLLEVBQUUsTUFBTSxFQUNiLE9BQU8sRUFBRSxNQUFNLEVBQ2YsR0FBRyxTQUEwQixFQUM3QixHQUFHLFNBQTBCLFVBVTlCO0FBRUQsd0JBQWdCLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUUsUUFBUSxHQUFHLE1BQU0sQ0FRekU7QUFFRCx3QkFBZ0Isb0JBQW9CLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxRQUFRLGlCQVlwRTtBQUVELHdCQUFnQixvQkFBb0IsQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUUsUUFBUSxnQkFRNUY7QUFFRCx3QkFBZ0IsdUJBQXVCLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxRQUFRLDBDQVFoRTtBQUVELHdCQUFnQixpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLFVBRW5FO0FBRUQsd0JBQWdCLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsRUFBRSxRQUFRLFVBSXBGO0FBRUQsd0JBQWdCLHVCQUF1QixDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsRUFBRSxRQUFRLFVBSXhGO0FBRUQsd0JBQWdCLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxPQUFPLFVBTWxEO0FBRUQsd0JBQWdCLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUUsUUFBUSxVQVFyRTtBQUVELHdCQUFnQiwyQkFBMkIsQ0FBQyxFQUFFLENBQUMsRUFBRSxRQUFRLFVBSXhEO0FBRUQsd0JBQWdCLGtDQUFrQyxXQUtqRDtBQUVELHdCQUFnQixtQkFBbUIsV0FLbEM7QUFFRCx3QkFBZ0Isa0JBQWtCLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxRQUFRLG1CQWFqRTtBQUVELHdCQUFzQiw4QkFBOEIsQ0FDbEQsbUJBQW1CLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUNwQyxlQUFlLEVBQUUsWUFBWSxFQUM3QixFQUFFLENBQUMsRUFBRSxRQUFRLG1CQVdkO0FBRUQsd0JBQWdCLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxFQUFFLFFBQVEsVUFJakQ7QUE2QkQsd0JBQWdCLG9CQUFvQixDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsR0FBRyxTQUFTLEdBQUcsV0FBVyxFQUFFLENBRTVGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/utils/options/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGnC,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAKtE,eAAO,MAAM,oBAAoB,wKACsI,CAAC;AAExK,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,GAAG,SAA0B,EAC7B,GAAG,SAA0B,UAU9B;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAQzE;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,iBAYpE;AAED,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,gBAQ5F;AAED,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,6DAQ/D;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,UAEnE;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,QAAQ,UAIpF;AAED,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,QAAQ,UAIxF;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,OAAO,UAMlD;AAED,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,QAAQ,UAQrE;AAED,wBAAgB,2BAA2B,CAAC,EAAE,CAAC,EAAE,QAAQ,UAIxD;AAED,wBAAgB,kCAAkC,WAKjD;AAED,wBAAgB,mBAAmB,WAKlC;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,mBAajE;AAED,wBAAsB,8BAA8B,CAClD,mBAAmB,EAAE,OAAO,CAAC,MAAM,CAAC,EACpC,eAAe,EAAE,YAAY,EAC7B,EAAE,CAAC,EAAE,QAAQ,mBAWd;AAED,wBAAgB,oBAAoB,CAAC,EAAE,CAAC,EAAE,QAAQ,UAIjD;AA6BD,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,WAAW,EAAE,GAAG,SAAS,GAAG,WAAW,EAAE,CAE5F"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/utils/options/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGnC,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAKtE,eAAO,MAAM,oBAAoB,wKACsI,CAAC;AAExK,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,GAAG,SAA0B,EAC7B,GAAG,SAA0B,UAU9B;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAQzE;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,iBAYpE;AAED,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,gBAQ5F;AAED,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,0CAQhE;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,UAEnE;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,QAAQ,UAIpF;AAED,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,QAAQ,UAIxF;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,OAAO,UAMlD;AAED,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,QAAQ,UAQrE;AAED,wBAAgB,2BAA2B,CAAC,EAAE,CAAC,EAAE,QAAQ,UAIxD;AAED,wBAAgB,kCAAkC,WAKjD;AAED,wBAAgB,mBAAmB,WAKlC;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,mBAajE;AAED,wBAAsB,8BAA8B,CAClD,mBAAmB,EAAE,OAAO,CAAC,MAAM,CAAC,EACpC,eAAe,EAAE,YAAY,EAC7B,EAAE,CAAC,EAAE,QAAQ,mBAWd;AAED,wBAAgB,oBAAoB,CAAC,EAAE,CAAC,EAAE,QAAQ,UAIjD;AA6BD,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,WAAW,EAAE,GAAG,SAAS,GAAG,WAAW,EAAE,CAE5F"}
@@ -1,8 +1,8 @@
1
- import { parseAztecAddress, parseSecretKey, parseTxHash } from '@aztec/cli/utils';
1
+ import { parseAztecAddress, parseSigningKey, parseTxHash } from '@aztec/cli/utils';
2
2
  import { AuthWitness } from '@aztec/stdlib/auth-witness';
3
3
  import { Option } from 'commander';
4
4
  import { readdir, stat } from 'fs/promises';
5
- import { AccountTypes } from '../wallet.js';
5
+ import { AccountTypes } from '../constants.js';
6
6
  const TARGET_DIR = 'target';
7
7
  export const ARTIFACT_DESCRIPTION = "Path to a compiled Aztec contract's artifact in JSON format. If executed inside a nargo workspace, a package and contract name can be specified as package@contract";
8
8
  export function integerArgParser(value, argName, min = Number.MIN_SAFE_INTEGER, max = Number.MAX_SAFE_INTEGER) {
@@ -45,13 +45,13 @@ export function aliasedAddressParser(defaultPrefix, address, db) {
45
45
  return parseAztecAddress(rawAddress);
46
46
  }
47
47
  }
48
- export function aliasedSecretKeyParser(sk, db) {
48
+ export function aliasedSigningKeyParser(sk, db) {
49
49
  if (sk.startsWith('0x')) {
50
- return parseSecretKey(sk);
50
+ return parseSigningKey(sk);
51
51
  } else {
52
- const prefixed = `${sk.startsWith('accounts') ? '' : 'accounts'}:${sk.endsWith(':sk') ? sk : `${sk}:sk`}`;
52
+ const prefixed = `${sk.startsWith('accounts') ? '' : 'accounts'}:${sk.endsWith(':signing') ? sk : `${sk}:signing`}`;
53
53
  const rawSk = db ? db.tryRetrieveAlias(prefixed) : sk;
54
- return parseSecretKey(rawSk);
54
+ return parseSigningKey(rawSk);
55
55
  }
56
56
  }
57
57
  export function createAliasOption(description, hide) {
@@ -2,4 +2,4 @@ import type { LogFn } from '@aztec/foundation/log';
2
2
  import type { PrivateExecutionStep } from '@aztec/stdlib/kernel';
3
3
  import type { ProvingStats, SimulationStats } from '@aztec/stdlib/tx';
4
4
  export declare function printProfileResult(stats: ProvingStats | SimulationStats, log: LogFn, printOracles?: boolean, executionSteps?: PrivateExecutionStep[]): void;
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsaW5nLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvcHJvZmlsaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sS0FBSyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakUsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFrQixlQUFlLEVBQXFCLE1BQU0sa0JBQWtCLENBQUM7QUFVekcsd0JBQWdCLGtCQUFrQixDQUNoQyxLQUFLLEVBQUUsWUFBWSxHQUFHLGVBQWUsRUFDckMsR0FBRyxFQUFFLEtBQUssRUFDVixZQUFZLEdBQUUsT0FBZSxFQUM3QixjQUFjLENBQUMsRUFBRSxvQkFBb0IsRUFBRSxRQTZJeEMifQ==
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsaW5nLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvcHJvZmlsaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sS0FBSyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakUsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFrQixlQUFlLEVBQXFCLE1BQU0sa0JBQWtCLENBQUM7QUFVekcsd0JBQWdCLGtCQUFrQixDQUNoQyxLQUFLLEVBQUUsWUFBWSxHQUFHLGVBQWUsRUFDckMsR0FBRyxFQUFFLEtBQUssRUFDVixZQUFZLEdBQUUsT0FBZSxFQUM3QixjQUFjLENBQUMsRUFBRSxvQkFBb0IsRUFBRSxRQTJKeEMifQ==