awal 2.10.0 → 2.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/README.md +3 -2
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +2 -0
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/__tests__/address.test.d.ts +2 -0
  6. package/dist/commands/__tests__/address.test.d.ts.map +1 -0
  7. package/dist/commands/__tests__/address.test.js +90 -0
  8. package/dist/commands/__tests__/address.test.js.map +1 -0
  9. package/dist/commands/__tests__/balance.test.js +30 -1
  10. package/dist/commands/__tests__/balance.test.js.map +1 -1
  11. package/dist/commands/__tests__/pay.test.d.ts +2 -0
  12. package/dist/commands/__tests__/pay.test.d.ts.map +1 -0
  13. package/dist/commands/__tests__/pay.test.js +69 -0
  14. package/dist/commands/__tests__/pay.test.js.map +1 -0
  15. package/dist/commands/__tests__/trade.test.js +3 -0
  16. package/dist/commands/__tests__/trade.test.js.map +1 -1
  17. package/dist/commands/address.d.ts.map +1 -1
  18. package/dist/commands/address.js +27 -8
  19. package/dist/commands/address.js.map +1 -1
  20. package/dist/commands/auth.d.ts.map +1 -1
  21. package/dist/commands/auth.js +60 -11
  22. package/dist/commands/auth.js.map +1 -1
  23. package/dist/commands/balance.d.ts.map +1 -1
  24. package/dist/commands/balance.js +12 -4
  25. package/dist/commands/balance.js.map +1 -1
  26. package/dist/commands/bazaar.d.ts.map +1 -1
  27. package/dist/commands/bazaar.js +31 -15
  28. package/dist/commands/bazaar.js.map +1 -1
  29. package/dist/commands/details.d.ts.map +1 -1
  30. package/dist/commands/details.js +14 -6
  31. package/dist/commands/details.js.map +1 -1
  32. package/dist/commands/logout.d.ts +3 -0
  33. package/dist/commands/logout.d.ts.map +1 -0
  34. package/dist/commands/logout.js +52 -0
  35. package/dist/commands/logout.js.map +1 -0
  36. package/dist/commands/pay.d.ts.map +1 -1
  37. package/dist/commands/pay.js +72 -15
  38. package/dist/commands/pay.js.map +1 -1
  39. package/dist/commands/quit.d.ts.map +1 -1
  40. package/dist/commands/quit.js +15 -12
  41. package/dist/commands/quit.js.map +1 -1
  42. package/dist/commands/revoke.d.ts.map +1 -1
  43. package/dist/commands/revoke.js +28 -12
  44. package/dist/commands/revoke.js.map +1 -1
  45. package/dist/commands/send.d.ts.map +1 -1
  46. package/dist/commands/send.js +65 -24
  47. package/dist/commands/send.js.map +1 -1
  48. package/dist/commands/status.d.ts.map +1 -1
  49. package/dist/commands/status.js +11 -4
  50. package/dist/commands/status.js.map +1 -1
  51. package/dist/commands/trade.d.ts.map +1 -1
  52. package/dist/commands/trade.js +74 -23
  53. package/dist/commands/trade.js.map +1 -1
  54. package/dist/constants.d.ts +4 -0
  55. package/dist/constants.d.ts.map +1 -1
  56. package/dist/constants.js +10 -0
  57. package/dist/constants.js.map +1 -1
  58. package/dist/utils/__tests__/cliError.test.d.ts +2 -0
  59. package/dist/utils/__tests__/cliError.test.d.ts.map +1 -0
  60. package/dist/utils/__tests__/cliError.test.js +192 -0
  61. package/dist/utils/__tests__/cliError.test.js.map +1 -0
  62. package/dist/utils/chainValidation.d.ts +5 -0
  63. package/dist/utils/chainValidation.d.ts.map +1 -1
  64. package/dist/utils/chainValidation.js +12 -1
  65. package/dist/utils/chainValidation.js.map +1 -1
  66. package/dist/utils/cliError.d.ts +41 -0
  67. package/dist/utils/cliError.d.ts.map +1 -0
  68. package/dist/utils/cliError.js +46 -0
  69. package/dist/utils/cliError.js.map +1 -0
  70. package/dist/utils/errorCodes.d.ts +39 -0
  71. package/dist/utils/errorCodes.d.ts.map +1 -0
  72. package/dist/utils/errorCodes.js +42 -0
  73. package/dist/utils/errorCodes.js.map +1 -0
  74. package/dist/utils/logging.d.ts +12 -0
  75. package/dist/utils/logging.d.ts.map +1 -0
  76. package/dist/utils/logging.js +22 -0
  77. package/dist/utils/logging.js.map +1 -0
  78. package/dist/utils/serverManager.js +1 -1
  79. package/dist/utils/x402Schemes.d.ts +5 -0
  80. package/dist/utils/x402Schemes.d.ts.map +1 -0
  81. package/dist/utils/x402Schemes.js +11 -0
  82. package/dist/utils/x402Schemes.js.map +1 -0
  83. package/package.json +3 -3
  84. package/server-bundle/bundle-electron.js +45 -45
  85. package/server-bundle/package.json +1 -1
  86. package/server-bundle/preload.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"revoke.d.ts","sourceRoot":"","sources":["../../src/commands/revoke.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBpC,wBAAgB,mBAAmB,IAAI,OAAO,CAgE7C"}
1
+ {"version":3,"file":"revoke.d.ts","sourceRoot":"","sources":["../../src/commands/revoke.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBpC,wBAAgB,mBAAmB,IAAI,OAAO,CA+E7C"}
@@ -3,8 +3,9 @@ import chalk from 'chalk';
3
3
  import ora from 'ora';
4
4
  import { sendIpcRequest } from '../ipcClient.js';
5
5
  import { requireAuth } from '../utils/authCheck.js';
6
- import { formatError } from '../utils/errors.js';
7
6
  import { formatJson, formatSuccess } from '../formatters/output.js';
7
+ import { cliError, cliErrorFromCatch } from '../utils/cliError.js';
8
+ import { CliErrorCode } from '../utils/errorCodes.js';
8
9
  import { isEthAddress } from '../utils/addressValidation.js';
9
10
  import { getExplorerLabel } from '../constants.js';
10
11
  export function createRevokeCommand() {
@@ -19,14 +20,22 @@ export function createRevokeCommand() {
19
20
  try {
20
21
  await requireAuth();
21
22
  if (!isEthAddress(tokenAddress)) {
22
- spinner.fail('Invalid token address');
23
- console.error(chalk.red(`tokenAddress must be a 0x-prefixed 20-byte hex address`));
24
- process.exit(1);
23
+ cliError({
24
+ spinner,
25
+ code: CliErrorCode.INVALID_ADDRESS,
26
+ message: 'tokenAddress must be a 0x-prefixed 20-byte hex address',
27
+ jsonMode: options.json,
28
+ spinnerText: 'Invalid token address',
29
+ });
25
30
  }
26
31
  if (!isEthAddress(spenderAddress)) {
27
- spinner.fail('Invalid spender address');
28
- console.error(chalk.red(`spenderAddress must be a 0x-prefixed 20-byte hex address`));
29
- process.exit(1);
32
+ cliError({
33
+ spinner,
34
+ code: CliErrorCode.INVALID_ADDRESS,
35
+ message: 'spenderAddress must be a 0x-prefixed 20-byte hex address',
36
+ jsonMode: options.json,
37
+ spinnerText: 'Invalid spender address',
38
+ });
30
39
  }
31
40
  spinner.text = `Revoking approval for ${spenderAddress} on ${tokenAddress}…`;
32
41
  const result = (await sendIpcRequest('revoke-token-approval', {
@@ -36,8 +45,11 @@ export function createRevokeCommand() {
36
45
  }));
37
46
  spinner.stop();
38
47
  if (!result.success || result.error) {
39
- console.error(chalk.red(`Revoke failed: ${result.error ?? 'unknown error'}`));
40
- process.exit(1);
48
+ cliError({
49
+ code: CliErrorCode.REVOKE_FAILED,
50
+ message: `Revoke failed: ${result.error ?? 'unknown error'}`,
51
+ jsonMode: options.json,
52
+ });
41
53
  }
42
54
  if (options.json) {
43
55
  console.log(formatJson(result));
@@ -53,9 +65,13 @@ export function createRevokeCommand() {
53
65
  }
54
66
  }
55
67
  catch (error) {
56
- spinner.fail('Revoke failed');
57
- console.error(chalk.red(formatError(error)));
58
- process.exit(1);
68
+ cliErrorFromCatch({
69
+ spinner,
70
+ code: CliErrorCode.REVOKE_FAILED,
71
+ error,
72
+ jsonMode: options.json,
73
+ spinnerText: 'Revoke failed',
74
+ });
59
75
  }
60
76
  });
61
77
  }
@@ -1 +1 @@
1
- {"version":3,"file":"revoke.js","sourceRoot":"","sources":["../../src/commands/revoke.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"revoke.js","sourceRoot":"","sources":["../../src/commands/revoke.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../src/commands/send.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyBpC,wBAAgB,iBAAiB,IAAI,OAAO,CAoI3C"}
1
+ {"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../src/commands/send.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2BpC,wBAAgB,iBAAiB,IAAI,OAAO,CAqK3C"}
@@ -4,13 +4,15 @@ import ora from 'ora';
4
4
  import { normalize } from 'viem/ens';
5
5
  import { sendIpcRequest } from '../ipcClient.js';
6
6
  import { requireAuth } from '../utils/authCheck.js';
7
- import { formatError } from '../utils/errors.js';
8
7
  import { formatJson, formatSuccess } from '../formatters/output.js';
8
+ import { cliError, cliErrorFromCatch } from '../utils/cliError.js';
9
+ import { CliErrorCode } from '../utils/errorCodes.js';
9
10
  import { isEthAddress, isEnsName, isSolanaAddress } from '../utils/addressValidation.js';
10
11
  import { parseAmountForAsset, formatAmount } from '../utils/parseAmount.js';
11
12
  import { isSolanaChain, validateAssetChain } from '../utils/chainValidation.js';
12
13
  import { getMainnetClient } from '../utils/viemClient.js';
13
14
  import { getExplorerLabel } from '../constants.js';
15
+ import { safeLogEvent } from '../utils/logging.js';
14
16
  export function createSendCommand() {
15
17
  return new Command('send')
16
18
  .description('Send tokens to an address')
@@ -29,9 +31,13 @@ export function createSendCommand() {
29
31
  // Validate asset/chain compatibility
30
32
  const chainError = validateAssetChain(asset, options.chain);
31
33
  if (chainError) {
32
- spinner.fail('Invalid configuration');
33
- console.error(chalk.red(chainError));
34
- process.exit(1);
34
+ cliError({
35
+ spinner,
36
+ code: CliErrorCode.INVALID_CHAIN_CONFIG,
37
+ message: chainError,
38
+ jsonMode: options.json,
39
+ spinnerText: 'Invalid configuration',
40
+ });
35
41
  }
36
42
  // Parse amount to atomic units
37
43
  let atomicAmount;
@@ -39,22 +45,34 @@ export function createSendCommand() {
39
45
  atomicAmount = parseAmountForAsset(amount, asset);
40
46
  }
41
47
  catch (error) {
42
- spinner.fail('Invalid amount');
43
- console.error(chalk.red(formatError(error)));
44
- process.exit(1);
48
+ cliErrorFromCatch({
49
+ spinner,
50
+ code: CliErrorCode.INVALID_AMOUNT,
51
+ error,
52
+ jsonMode: options.json,
53
+ spinnerText: 'Invalid amount',
54
+ });
45
55
  }
46
56
  // Validate recipient address format
47
57
  if (isSolana) {
48
58
  if (!isSolanaAddress(recipient)) {
49
- spinner.fail('Invalid recipient');
50
- console.error(chalk.red('Recipient must be a valid Solana address (Base58 encoded, 32-44 chars)'));
51
- process.exit(1);
59
+ cliError({
60
+ spinner,
61
+ code: CliErrorCode.INVALID_RECIPIENT,
62
+ message: 'Recipient must be a valid Solana address (Base58 encoded, 32-44 chars)',
63
+ jsonMode: options.json,
64
+ spinnerText: 'Invalid recipient',
65
+ });
52
66
  }
53
67
  }
54
68
  else if (!isEthAddress(recipient) && !isEnsName(recipient)) {
55
- spinner.fail('Invalid recipient');
56
- console.error(chalk.red('Recipient must be a valid Ethereum address (0x...) or ENS domain'));
57
- process.exit(1);
69
+ cliError({
70
+ spinner,
71
+ code: CliErrorCode.INVALID_RECIPIENT,
72
+ message: 'Recipient must be a valid Ethereum address (0x...) or ENS domain',
73
+ jsonMode: options.json,
74
+ spinnerText: 'Invalid recipient',
75
+ });
58
76
  }
59
77
  let resolvedRecipient = recipient;
60
78
  let ensName;
@@ -66,21 +84,30 @@ export function createSendCommand() {
66
84
  name: normalize(recipient),
67
85
  });
68
86
  if (!address) {
69
- spinner.fail('ENS resolution failed');
70
- console.error(chalk.red(`Could not resolve ENS name: ${recipient}. No address found.`));
71
- process.exit(1);
87
+ cliError({
88
+ spinner,
89
+ code: CliErrorCode.ENS_RESOLUTION_FAILED,
90
+ message: `Could not resolve ENS name: ${recipient}. No address found.`,
91
+ jsonMode: options.json,
92
+ spinnerText: 'ENS resolution failed',
93
+ });
72
94
  }
73
95
  resolvedRecipient = address;
74
96
  ensName = recipient;
75
97
  }
76
98
  catch (error) {
77
- spinner.fail('ENS resolution failed');
78
- console.error(chalk.red(`Failed to resolve ENS name "${recipient}": ${formatError(error)}`));
79
- process.exit(1);
99
+ cliErrorFromCatch({
100
+ spinner,
101
+ code: CliErrorCode.ENS_RESOLUTION_FAILED,
102
+ error,
103
+ jsonMode: options.json,
104
+ spinnerText: 'ENS resolution failed',
105
+ });
80
106
  }
81
107
  }
82
108
  const displayAmount = formatAmount(atomicAmount, asset);
83
109
  spinner.text = `Sending ${displayAmount} to ${ensName || resolvedRecipient}...`;
110
+ safeLogEvent('cli_send_initiated', { asset, chain: options.chain });
84
111
  const data = {
85
112
  recipient: resolvedRecipient,
86
113
  amountAtomic: atomicAmount,
@@ -90,9 +117,14 @@ export function createSendCommand() {
90
117
  const result = (await sendIpcRequest('send-transaction', data));
91
118
  spinner.stop();
92
119
  if (result.error) {
93
- console.error(chalk.red(`Transaction failed: ${result.error}`));
94
- process.exit(1);
120
+ safeLogEvent('cli_send_failed', { asset, chain: options.chain, error_type: 'unknown' });
121
+ cliError({
122
+ code: CliErrorCode.TRANSACTION_FAILED,
123
+ message: `Transaction failed: ${result.error}`,
124
+ jsonMode: options.json,
125
+ });
95
126
  }
127
+ safeLogEvent('cli_send_success', { asset, chain: result.chain });
96
128
  if (options.json) {
97
129
  console.log(formatJson(result));
98
130
  return;
@@ -114,9 +146,18 @@ export function createSendCommand() {
114
146
  }
115
147
  }
116
148
  catch (error) {
117
- spinner.fail('Transaction failed');
118
- console.error(chalk.red(formatError(error)));
119
- process.exit(1);
149
+ safeLogEvent('cli_send_failed', {
150
+ asset: (options.asset || 'USDC').toUpperCase(),
151
+ chain: options.chain,
152
+ error_type: 'unknown',
153
+ });
154
+ cliErrorFromCatch({
155
+ spinner,
156
+ code: CliErrorCode.TRANSACTION_FAILED,
157
+ error,
158
+ jsonMode: options.json,
159
+ spinnerText: 'Transaction failed',
160
+ });
120
161
  }
121
162
  });
122
163
  }
@@ -1 +1 @@
1
- {"version":3,"file":"send.js","sourceRoot":"","sources":["../../src/commands/send.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAanD,MAAM,UAAU,iBAAiB;IAC/B,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;SACvB,WAAW,CAAC,2BAA2B,CAAC;SACxC,QAAQ,CAAC,UAAU,EAAE,yDAAyD,CAAC;SAC/E,QAAQ,CAAC,aAAa,EAAE,oEAAoE,CAAC;SAC7F,MAAM,CACL,iBAAiB,EACjB,yFAAyF,EACzF,MAAM,CACP;SACA,MAAM,CAAC,iBAAiB,EAAE,yCAAyC,EAAE,MAAM,CAAC;SAC5E,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,SAAiB,EAAE,OAAO,EAAE,EAAE;QAC3D,MAAM,OAAO,GAAG,GAAG,CAAC,0BAA0B,CAAC,CAAC,KAAK,EAAE,CAAC;QAExD,IAAI,CAAC;YACH,6BAA6B;YAC7B,MAAM,WAAW,EAAE,CAAC;YAEpB,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YACtD,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAE9C,qCAAqC;YACrC,MAAM,UAAU,GAAG,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YAC5D,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;gBACtC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;gBACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,+BAA+B;YAC/B,IAAI,YAAoB,CAAC;YACzB,IAAI,CAAC;gBACH,YAAY,GAAG,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACpD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAC/B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,oCAAoC;YACpC,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;oBAChC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;oBAClC,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CAAC,wEAAwE,CAAC,CACpF,CAAC;oBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;iBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7D,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAClC,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAC9E,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,IAAI,iBAAiB,GAAG,SAAS,CAAC;YAClC,IAAI,OAA2B,CAAC;YAEhC,IAAI,CAAC,QAAQ,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;gBACtC,OAAO,CAAC,IAAI,GAAG,aAAa,SAAS,KAAK,CAAC;gBAC3C,IAAI,CAAC;oBACH,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;oBACzC,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,aAAa,CAAC;wBAChD,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC;qBAC3B,CAAC,CAAC;oBACH,IAAI,CAAC,OAAO,EAAE,CAAC;wBACb,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;wBACtC,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CAAC,+BAA+B,SAAS,qBAAqB,CAAC,CACzE,CAAC;wBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAClB,CAAC;oBACD,iBAAiB,GAAG,OAAO,CAAC;oBAC5B,OAAO,GAAG,SAAS,CAAC;gBACtB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;oBACtC,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CAAC,+BAA+B,SAAS,MAAM,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAC9E,CAAC;oBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;YAED,MAAM,aAAa,GAAG,YAAY,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;YACxD,OAAO,CAAC,IAAI,GAAG,WAAW,aAAa,OAAO,OAAO,IAAI,iBAAiB,KAAK,CAAC;YAEhF,MAAM,IAAI,GAAG;gBACX,SAAS,EAAE,iBAAiB;gBAC5B,YAAY,EAAE,YAAY;gBAC1B,KAAK;gBACL,KAAK,EAAE,OAAO,CAAC,KAAK;aACrB,CAAC;YAEF,MAAM,MAAM,GAAG,CAAC,MAAM,cAAc,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAA4B,CAAC;YAC3F,OAAO,CAAC,IAAI,EAAE,CAAC;YAEf,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;gBAChC,OAAO;YACT,CAAC;YAED,cAAc;YACd,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,qBAAqB,aAAa,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC/E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,iBAAiB,EAAE,CAAC,CAAC,CAAC;YACpE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,qBAAqB,aAAa,OAAO,SAAS,EAAE,CAAC,CAAC,CAAC;YACnF,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAElD,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;gBAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;YACpE,CAAC;YAED,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBAC5B,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,KAAK,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAC/E,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACnC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"send.js","sourceRoot":"","sources":["../../src/commands/send.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,mBAAmB,IAAI,OAAO,CA4F7C"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,wBAAgB,mBAAmB,IAAI,OAAO,CAkG7C"}
@@ -3,8 +3,10 @@ import chalk from 'chalk';
3
3
  import ora from 'ora';
4
4
  import { sendIpcRequest, setOnWalletStarting, setOnInstalling } from '../ipcClient.js';
5
5
  import { getPrimaryProcessPid } from '../utils/processCheck.js';
6
- import { formatError } from '../utils/errors.js';
7
6
  import { formatJson, formatKeyValue, formatSuccess, formatWarning } from '../formatters/output.js';
7
+ import { cliErrorFromCatch } from '../utils/cliError.js';
8
+ import { CliErrorCode } from '../utils/errorCodes.js';
9
+ import { safeLogEvent } from '../utils/logging.js';
8
10
  export function createStatusCommand() {
9
11
  return new Command('status')
10
12
  .description('Check wallet server health and authentication status')
@@ -36,6 +38,7 @@ export function createStatusCommand() {
36
38
  // Extract email if present (format: "Logged in as email@example.com")
37
39
  const emailMatch = resultString.match(/Logged in as ([^\s]+)/);
38
40
  const email = emailMatch ? emailMatch[1] : undefined;
41
+ safeLogEvent('cli_status_checked', { authenticated: isAuthenticated });
39
42
  if (options.json) {
40
43
  console.log(formatJson({
41
44
  server: {
@@ -79,9 +82,13 @@ Sign in using one of:
79
82
  }
80
83
  }
81
84
  catch (error) {
82
- spinner.fail('Failed to check status');
83
- console.error(chalk.red(formatError(error)));
84
- process.exit(1);
85
+ cliErrorFromCatch({
86
+ spinner,
87
+ code: CliErrorCode.STATUS_CHECK_FAILED,
88
+ error,
89
+ jsonMode: options.json,
90
+ spinnerText: 'Failed to check status',
91
+ });
85
92
  }
86
93
  });
87
94
  }
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"trade.d.ts","sourceRoot":"","sources":["../../src/commands/trade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAI/E,CAAC;AAEF;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,GACZ;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAsB7D;AA+CD,wBAAgB,kBAAkB,IAAI,OAAO,CA4H5C"}
1
+ {"version":3,"file":"trade.d.ts","sourceRoot":"","sources":["../../src/commands/trade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAI/E,CAAC;AAEF;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,GACZ;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAsB7D;AA+CD,wBAAgB,kBAAkB,IAAI,OAAO,CA2K5C"}
@@ -3,10 +3,12 @@ import chalk from 'chalk';
3
3
  import ora from 'ora';
4
4
  import { sendIpcRequest } from '../ipcClient.js';
5
5
  import { requireAuth } from '../utils/authCheck.js';
6
- import { formatError } from '../utils/errors.js';
7
6
  import { formatJson, formatSuccess, formatUsdcAmount } from '../formatters/output.js';
7
+ import { cliError, cliErrorFromCatch } from '../utils/cliError.js';
8
+ import { CliErrorCode } from '../utils/errorCodes.js';
8
9
  import { isEthAddress } from '../utils/addressValidation.js';
9
10
  import { getExplorerLabel } from '../constants.js';
11
+ import { safeLogEvent } from '../utils/logging.js';
10
12
  // Known token aliases for display formatting
11
13
  export const TOKEN_ALIASES = {
12
14
  usdc: { decimals: 6, display: 'USDC' },
@@ -85,42 +87,69 @@ export function createTradeCommand() {
85
87
  ].join('\n'))
86
88
  .action(async (amount, from, to, options) => {
87
89
  const spinner = ora('Preparing swap...').start();
90
+ let fromResolved = null;
91
+ let toResolved = null;
88
92
  try {
89
93
  // Check authentication first
90
94
  await requireAuth();
91
95
  // Resolve tokens for display (IPC handler resolves addresses/decimals from chain)
92
- const fromResolved = resolveTokenDisplay(from);
93
- const toResolved = resolveTokenDisplay(to);
96
+ fromResolved = resolveTokenDisplay(from);
97
+ toResolved = resolveTokenDisplay(to);
94
98
  if (!fromResolved) {
95
- spinner.fail('Invalid token');
96
- console.error(chalk.red(`Unknown token: ${from}. Use USDC, ETH, POL, or a valid 0x address.`));
97
- process.exit(1);
99
+ cliError({
100
+ spinner,
101
+ code: CliErrorCode.INVALID_TOKEN,
102
+ message: `Unknown token: ${from}. Use USDC, ETH, POL, or a valid 0x address.`,
103
+ jsonMode: options.json,
104
+ spinnerText: 'Invalid token',
105
+ });
98
106
  }
99
107
  if (!toResolved) {
100
- spinner.fail('Invalid token');
101
- console.error(chalk.red(`Unknown token: ${to}. Use USDC, ETH, POL, or a valid 0x address.`));
102
- process.exit(1);
108
+ cliError({
109
+ spinner,
110
+ code: CliErrorCode.INVALID_TOKEN,
111
+ message: `Unknown token: ${to}. Use USDC, ETH, POL, or a valid 0x address.`,
112
+ jsonMode: options.json,
113
+ spinnerText: 'Invalid token',
114
+ });
103
115
  }
104
116
  if (fromResolved.token.toLowerCase() === toResolved.token.toLowerCase()) {
105
- spinner.fail('Invalid swap');
106
- console.error(chalk.red('Cannot swap a token to itself.'));
107
- process.exit(1);
117
+ cliError({
118
+ spinner,
119
+ code: CliErrorCode.INVALID_SWAP,
120
+ message: 'Cannot swap a token to itself.',
121
+ jsonMode: options.json,
122
+ spinnerText: 'Invalid swap',
123
+ });
108
124
  }
109
125
  // Validate amount is a valid format
110
126
  const cleanedAmount = amount.replace(/^\$/, '').trim();
111
127
  if (!/^[\d.]+$/.test(cleanedAmount) || parseFloat(cleanedAmount) <= 0) {
112
- spinner.fail('Invalid amount');
113
- console.error(chalk.red(`Invalid amount: ${amount}. Must be a positive number.`));
114
- process.exit(1);
128
+ cliError({
129
+ spinner,
130
+ code: CliErrorCode.INVALID_AMOUNT,
131
+ message: `Invalid amount: ${amount}. Must be a positive number.`,
132
+ jsonMode: options.json,
133
+ spinnerText: 'Invalid amount',
134
+ });
115
135
  }
116
136
  // Parse slippage
117
137
  const slippageBps = parseInt(options.slippage, 10);
118
138
  if (isNaN(slippageBps) || slippageBps < 0 || slippageBps > 5000) {
119
- spinner.fail('Invalid slippage');
120
- console.error(chalk.red('Slippage must be between 0 and 5000 basis points (0-50%)'));
121
- process.exit(1);
139
+ cliError({
140
+ spinner,
141
+ code: CliErrorCode.INVALID_SLIPPAGE,
142
+ message: 'Slippage must be between 0 and 5000 basis points (0-50%)',
143
+ jsonMode: options.json,
144
+ spinnerText: 'Invalid slippage',
145
+ });
122
146
  }
123
147
  spinner.text = `Swapping ${formatAmountForDisplay(amount, fromResolved.display)} for ${toResolved.display}...`;
148
+ safeLogEvent('cli_trade_initiated', {
149
+ from_token: fromResolved.token,
150
+ to_token: toResolved.token,
151
+ chain: options.chain,
152
+ });
124
153
  // Pass token identifiers and human-readable amount to IPC handler
125
154
  // IPC handler will resolve addresses, fetch decimals, and convert to atomic
126
155
  const data = {
@@ -133,9 +162,22 @@ export function createTradeCommand() {
133
162
  const result = (await sendIpcRequest('execute-swap', data));
134
163
  spinner.stop();
135
164
  if (result.error || !result.success) {
136
- console.error(chalk.red(`Swap failed: ${result.error}`));
137
- process.exit(1);
165
+ safeLogEvent('cli_trade_failed', {
166
+ from_token: fromResolved.token,
167
+ to_token: toResolved.token,
168
+ chain: options.chain,
169
+ });
170
+ cliError({
171
+ code: CliErrorCode.SWAP_FAILED,
172
+ message: `Swap failed: ${result.error}`,
173
+ jsonMode: options.json,
174
+ });
138
175
  }
176
+ safeLogEvent('cli_trade_success', {
177
+ from_token: fromResolved.token,
178
+ to_token: toResolved.token,
179
+ chain: result.chain,
180
+ });
139
181
  if (options.json) {
140
182
  console.log(formatJson(result));
141
183
  return;
@@ -155,9 +197,18 @@ export function createTradeCommand() {
155
197
  }
156
198
  }
157
199
  catch (error) {
158
- spinner.fail('Swap failed');
159
- console.error(chalk.red(formatError(error)));
160
- process.exit(1);
200
+ safeLogEvent('cli_trade_failed', {
201
+ from_token: fromResolved?.token ?? 'unknown',
202
+ to_token: toResolved?.token ?? 'unknown',
203
+ chain: options.chain,
204
+ });
205
+ cliErrorFromCatch({
206
+ spinner,
207
+ code: CliErrorCode.SWAP_FAILED,
208
+ error,
209
+ jsonMode: options.json,
210
+ spinnerText: 'Swap failed',
211
+ });
161
212
  }
162
213
  });
163
214
  }
@@ -1 +1 @@
1
- {"version":3,"file":"trade.js","sourceRoot":"","sources":["../../src/commands/trade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trade.js","sourceRoot":"","sources":["../../src/commands/trade.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,13 @@
1
1
  /**
2
2
  * Shared constants for the AWAL CLI.
3
+ *
4
+ * @module constants
5
+ * @packageDocumentation
3
6
  */
4
7
  export declare const ASSET_DECIMALS: Record<string, number>;
5
8
  export declare const SOLANA_CHAINS: Set<string>;
6
9
  export declare const POLYGON_CHAINS: Set<string>;
10
+ export declare const SUPPORTED_CHAINS: Set<string>;
7
11
  /**
8
12
  * Returns the appropriate block explorer label for a given chain.
9
13
  */
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAKjD,CAAC;AAEF,eAAO,MAAM,aAAa,aAAuC,CAAC;AAElE,eAAO,MAAM,cAAc,aAAuB,CAAC;AAEnD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAItD"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAKjD,CAAC;AAEF,eAAO,MAAM,aAAa,aAAuC,CAAC;AAElE,eAAO,MAAM,cAAc,aAAuB,CAAC;AAEnD,eAAO,MAAM,gBAAgB,aAM3B,CAAC;AAEH;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAItD"}
package/dist/constants.js CHANGED
@@ -1,5 +1,8 @@
1
1
  /**
2
2
  * Shared constants for the AWAL CLI.
3
+ *
4
+ * @module constants
5
+ * @packageDocumentation
3
6
  */
4
7
  export const ASSET_DECIMALS = {
5
8
  USDC: 6,
@@ -9,6 +12,13 @@ export const ASSET_DECIMALS = {
9
12
  };
10
13
  export const SOLANA_CHAINS = new Set(['solana', 'solana-devnet']);
11
14
  export const POLYGON_CHAINS = new Set(['polygon']);
15
+ export const SUPPORTED_CHAINS = new Set([
16
+ 'base',
17
+ 'base-sepolia',
18
+ 'polygon',
19
+ 'solana',
20
+ 'solana-devnet',
21
+ ]);
12
22
  /**
13
23
  * Returns the appropriate block explorer label for a given chain.
14
24
  */
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,cAAc,GAA2B;IACpD,IAAI,EAAE,CAAC;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,CAAC;CACP,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC;AAElE,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AAEnD;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,iBAAiB,CAAC;IACvD,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,qBAAqB,CAAC;IAC5D,OAAO,kBAAkB,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,cAAc,GAA2B;IACpD,IAAI,EAAE,CAAC;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,CAAC;CACP,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC;AAElE,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AAEnD,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IACtC,MAAM;IACN,cAAc;IACd,SAAS;IACT,QAAQ;IACR,eAAe;CAChB,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,iBAAiB,CAAC;IACvD,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,qBAAqB,CAAC;IAC5D,OAAO,kBAAkB,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cliError.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cliError.test.d.ts","sourceRoot":"","sources":["../../../src/utils/__tests__/cliError.test.ts"],"names":[],"mappings":""}