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
package/README.md CHANGED
@@ -68,14 +68,15 @@ awal trade $1 usdc pol --chain polygon
68
68
  - `awal bazaar list` - List X402 payment services
69
69
  - `awal bazaar search <query>` - Search bazaar resources by keyword
70
70
  - `--network <network>` - Filter by chain (base, base-sepolia, polygon, solana, solana-devnet)
71
- - `--scheme <scheme>` - Filter by payment scheme: `exact` or `upto`
71
+ - `--scheme <scheme>` - Filter by payment scheme: `exact`, `upto`, `batch-settlement`, or `auth-capture`
72
72
  - `--max-price <usd>` - Maximum price in USD (e.g. `0.01`)
73
73
  - `--asset <address>` - Filter by payment asset address
74
74
  - `--pay-to <address>` - Filter by recipient wallet address
75
75
  - `--extensions <type>` - Filter by extension type (e.g. `outputSchema`, `bazaar`)
76
76
  - `-k, --top <n>` - Max results, 1–20 (default: 20)
77
77
  - `awal bazaar details <url>` - Get service details
78
- - `awal pay <baseURL> <path>` - Make X402 payment request
78
+ - `awal x402 pay <url>` - Make X402 payment request
79
+ - `--scheme <scheme>` - Prefer a payment scheme: `exact`, `upto`, `batch-settlement`, or `auth-capture`
79
80
  - `awal discover <baseURL> <path>` - Discover payment requirements
80
81
 
81
82
  ## Options
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBpC,wBAAgB,aAAa,IAAI,OAAO,CAoBvC"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBpC,wBAAgB,aAAa,IAAI,OAAO,CAqBvC"}
package/dist/cli.js CHANGED
@@ -9,6 +9,7 @@ import { createAuthCommand } from './commands/auth.js';
9
9
  import { createRevokeCommand } from './commands/revoke.js';
10
10
  import { createSendCommand } from './commands/send.js';
11
11
  import { createTradeCommand } from './commands/trade.js';
12
+ import { createLogoutCommand } from './commands/logout.js';
12
13
  import { createQuitCommand } from './commands/quit.js';
13
14
  import { createTelemetryCommand } from './commands/telemetry.js';
14
15
  import { createPersistenceCommand } from './commands/persistence.js';
@@ -24,6 +25,7 @@ export function createProgram() {
24
25
  program.addCommand(createShowCommand());
25
26
  program.addCommand(createX402Command());
26
27
  program.addCommand(createAuthCommand());
28
+ program.addCommand(createLogoutCommand());
27
29
  program.addCommand(createSendCommand());
28
30
  program.addCommand(createRevokeCommand(), { hidden: true });
29
31
  program.addCommand(createTradeCommand());
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAErE,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAE/E,MAAM,UAAU,aAAa;IAC3B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,6CAA6C,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEjG,eAAe;IACf,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAC3C,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAC3C,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,CAAC;IAC7C,OAAO,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC,CAAC;IAE/C,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAErE,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAE/E,MAAM,UAAU,aAAa;IAC3B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,6CAA6C,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEjG,eAAe;IACf,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAC3C,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAC3C,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,CAAC;IAC7C,OAAO,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC,CAAC;IAE/C,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=address.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address.test.d.ts","sourceRoot":"","sources":["../../../src/commands/__tests__/address.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,90 @@
1
+ jest.mock('ora', () => {
2
+ const spinner = { start: jest.fn(), stop: jest.fn(), fail: jest.fn() };
3
+ spinner.start.mockReturnValue(spinner);
4
+ return { __esModule: true, default: jest.fn(() => spinner) };
5
+ });
6
+ jest.mock('../../ipcClient.js', () => ({
7
+ sendIpcRequest: jest.fn(),
8
+ }));
9
+ jest.mock('../../utils/logging.js', () => ({
10
+ safeLogEvent: jest.fn(),
11
+ }));
12
+ import { sendIpcRequest } from '../../ipcClient.js';
13
+ import { createAddressCommand } from '../address.js';
14
+ const mockSendIpcRequest = sendIpcRequest;
15
+ describe('address command', () => {
16
+ let mockExit;
17
+ let mockConsoleLog;
18
+ let mockConsoleError;
19
+ beforeEach(() => {
20
+ jest.clearAllMocks();
21
+ mockExit = jest
22
+ .spyOn(process, 'exit')
23
+ .mockImplementation(((code) => {
24
+ throw new Error(`process.exit(${code})`);
25
+ }));
26
+ mockConsoleLog = jest.spyOn(console, 'log').mockImplementation(() => { });
27
+ mockConsoleError = jest.spyOn(console, 'error').mockImplementation(() => { });
28
+ });
29
+ afterEach(() => {
30
+ mockExit.mockRestore();
31
+ mockConsoleLog.mockRestore();
32
+ mockConsoleError.mockRestore();
33
+ });
34
+ it('rejects invalid chain with JSON error output', async () => {
35
+ const cmd = createAddressCommand();
36
+ await expect(cmd.parseAsync(['node', 'address', '--chain', 'nonsense', '--json'])).rejects.toThrow('process.exit(1)');
37
+ expect(mockExit).toHaveBeenCalledWith(1);
38
+ expect(mockConsoleLog).toHaveBeenCalled();
39
+ const output = mockConsoleLog.mock.calls[0][0];
40
+ const parsed = JSON.parse(output);
41
+ expect(parsed.success).toBe(false);
42
+ expect(parsed.error.code).toBe('INVALID_CHAIN_CONFIG');
43
+ expect(parsed.error.message).toContain('Invalid chain');
44
+ expect(parsed.error.message).toContain('nonsense');
45
+ expect(mockSendIpcRequest).not.toHaveBeenCalled();
46
+ });
47
+ it('rejects invalid chain with text error output', async () => {
48
+ const cmd = createAddressCommand();
49
+ await expect(cmd.parseAsync(['node', 'address', '--chain', 'nonsense'])).rejects.toThrow('process.exit(1)');
50
+ expect(mockExit).toHaveBeenCalledWith(1);
51
+ expect(mockConsoleError).toHaveBeenCalled();
52
+ expect(mockSendIpcRequest).not.toHaveBeenCalled();
53
+ });
54
+ it('accepts valid chain "base" and calls IPC', async () => {
55
+ mockSendIpcRequest.mockResolvedValue('0xTestAddress');
56
+ const cmd = createAddressCommand();
57
+ await cmd.parseAsync(['node', 'address', '--chain', 'base', '--json']);
58
+ expect(mockSendIpcRequest).toHaveBeenCalledWith('get-wallet-address', { chain: 'base' });
59
+ expect(mockExit).not.toHaveBeenCalled();
60
+ });
61
+ it('accepts valid chain "solana" and calls IPC', async () => {
62
+ mockSendIpcRequest.mockResolvedValue('SolanaTestAddress');
63
+ const cmd = createAddressCommand();
64
+ await cmd.parseAsync(['node', 'address', '--chain', 'solana', '--json']);
65
+ expect(mockSendIpcRequest).toHaveBeenCalledWith('get-wallet-address', { chain: 'solana' });
66
+ expect(mockExit).not.toHaveBeenCalled();
67
+ });
68
+ it('returns multi-address when no chain specified', async () => {
69
+ mockSendIpcRequest.mockResolvedValue({ evm: '0xEVM', solana: 'SolAddr' });
70
+ const cmd = createAddressCommand();
71
+ await cmd.parseAsync(['node', 'address', '--json']);
72
+ expect(mockSendIpcRequest).toHaveBeenCalledWith('get-wallet-address', {});
73
+ expect(mockExit).not.toHaveBeenCalled();
74
+ const output = mockConsoleLog.mock.calls[0][0];
75
+ const parsed = JSON.parse(output);
76
+ expect(parsed.evm).toBe('0xEVM');
77
+ expect(parsed.solana).toBe('SolAddr');
78
+ });
79
+ it('returns single address with chain in JSON output', async () => {
80
+ mockSendIpcRequest.mockResolvedValue('0xTestAddress');
81
+ const cmd = createAddressCommand();
82
+ await cmd.parseAsync(['node', 'address', '--chain', 'polygon', '--json']);
83
+ expect(mockSendIpcRequest).toHaveBeenCalledWith('get-wallet-address', { chain: 'polygon' });
84
+ const output = mockConsoleLog.mock.calls[0][0];
85
+ const parsed = JSON.parse(output);
86
+ expect(parsed.address).toBe('0xTestAddress');
87
+ expect(parsed.chain).toBe('polygon');
88
+ });
89
+ });
90
+ //# sourceMappingURL=address.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address.test.js","sourceRoot":"","sources":["../../../src/commands/__tests__/address.test.ts"],"names":[],"mappings":"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"}
@@ -9,9 +9,12 @@ jest.mock('../../ipcClient.js', () => ({
9
9
  jest.mock('../../utils/authCheck.js', () => ({
10
10
  requireAuth: jest.fn(),
11
11
  }));
12
+ jest.mock('../../utils/logging.js', () => ({
13
+ safeLogEvent: jest.fn(),
14
+ }));
12
15
  import { sendIpcRequest } from '../../ipcClient.js';
13
16
  import { requireAuth } from '../../utils/authCheck.js';
14
- import { isSolanaChain, isPolygonChain } from '../../utils/chainValidation.js';
17
+ import { isSolanaChain, isPolygonChain, validateChain } from '../../utils/chainValidation.js';
15
18
  import { getDefaultAssetsForChain, getDefaultDecimals, filterDisplayAssets, createBalanceCommand, } from '../balance.js';
16
19
  const mockSendIpcRequest = sendIpcRequest;
17
20
  const mockRequireAuth = requireAuth;
@@ -58,6 +61,32 @@ describe('balance command', () => {
58
61
  expect(isPolygonChain(undefined)).toBe(false);
59
62
  });
60
63
  });
64
+ describe('validateChain', () => {
65
+ it('returns undefined for each valid chain', () => {
66
+ const validChains = ['base', 'base-sepolia', 'polygon', 'solana', 'solana-devnet'];
67
+ validChains.forEach((chain) => {
68
+ expect(validateChain(chain)).toBeUndefined();
69
+ });
70
+ });
71
+ it('returns error message for invalid chain', () => {
72
+ const error = validateChain('nonsense');
73
+ expect(error).toBeDefined();
74
+ expect(error).toContain('Invalid chain');
75
+ expect(error).toContain('nonsense');
76
+ });
77
+ it('is case-sensitive', () => {
78
+ expect(validateChain('Base')).toBeDefined();
79
+ expect(validateChain('Solana')).toBeDefined();
80
+ });
81
+ it('error message lists all valid chains', () => {
82
+ const error = validateChain('invalid');
83
+ expect(error).toContain('base');
84
+ expect(error).toContain('base-sepolia');
85
+ expect(error).toContain('polygon');
86
+ expect(error).toContain('solana');
87
+ expect(error).toContain('solana-devnet');
88
+ });
89
+ });
61
90
  describe('getDefaultAssetsForChain', () => {
62
91
  it('returns Solana assets for solana chain', () => {
63
92
  expect(getDefaultAssetsForChain('solana')).toEqual(['USDC', 'SOL']);
@@ -1 +1 @@
1
- {"version":3,"file":"balance.test.js","sourceRoot":"","sources":["../../../src/commands/__tests__/balance.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"balance.test.js","sourceRoot":"","sources":["../../../src/commands/__tests__/balance.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=pay.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pay.test.d.ts","sourceRoot":"","sources":["../../../src/commands/__tests__/pay.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,69 @@
1
+ jest.mock('ora', () => {
2
+ const spinner = { start: jest.fn(), stop: jest.fn(), fail: jest.fn(), text: '' };
3
+ spinner.start.mockReturnValue(spinner);
4
+ return { __esModule: true, default: jest.fn(() => spinner) };
5
+ });
6
+ jest.mock('../../ipcClient.js', () => ({
7
+ sendIpcRequest: jest.fn(),
8
+ }));
9
+ jest.mock('../../utils/authCheck.js', () => ({
10
+ requireAuth: jest.fn(),
11
+ }));
12
+ jest.mock('../../utils/logging.js', () => ({
13
+ safeLogEvent: jest.fn(),
14
+ }));
15
+ import { sendIpcRequest } from '../../ipcClient.js';
16
+ import { requireAuth } from '../../utils/authCheck.js';
17
+ import { createPayCommand } from '../pay.js';
18
+ const mockSendIpcRequest = sendIpcRequest;
19
+ const mockRequireAuth = requireAuth;
20
+ describe('pay command', () => {
21
+ let mockExit;
22
+ let mockConsoleLog;
23
+ let mockConsoleError;
24
+ beforeEach(() => {
25
+ jest.clearAllMocks();
26
+ mockRequireAuth.mockResolvedValue(undefined);
27
+ mockSendIpcRequest.mockResolvedValue({
28
+ status: 200,
29
+ statusText: 'OK',
30
+ data: { ok: true },
31
+ });
32
+ mockExit = jest.spyOn(process, 'exit').mockImplementation(((code) => {
33
+ throw new Error(`process.exit(${code})`);
34
+ }));
35
+ mockConsoleLog = jest.spyOn(console, 'log').mockImplementation(() => { });
36
+ mockConsoleError = jest.spyOn(console, 'error').mockImplementation(() => { });
37
+ });
38
+ afterEach(() => {
39
+ mockExit.mockRestore();
40
+ mockConsoleLog.mockRestore();
41
+ mockConsoleError.mockRestore();
42
+ });
43
+ it('passes preferred scheme to the make-x402-request IPC payload', async () => {
44
+ const cmd = createPayCommand();
45
+ await cmd.parseAsync(['https://api.example.com/paid?foo=bar', '--scheme', 'batch-settlement'], {
46
+ from: 'user',
47
+ });
48
+ expect(mockSendIpcRequest).toHaveBeenCalledWith('make-x402-request', {
49
+ baseURL: 'https://api.example.com',
50
+ path: '/paid?foo=bar',
51
+ method: 'GET',
52
+ preferredScheme: 'batch-settlement',
53
+ });
54
+ });
55
+ it('rejects invalid scheme before sending an IPC request', async () => {
56
+ const cmd = createPayCommand();
57
+ await expect(cmd.parseAsync(['https://api.example.com/paid', '--scheme', 'deposit', '--json'], {
58
+ from: 'user',
59
+ })).rejects.toThrow('process.exit(1)');
60
+ expect(mockExit).toHaveBeenCalledWith(1);
61
+ expect(mockSendIpcRequest).not.toHaveBeenCalled();
62
+ const output = mockConsoleLog.mock.calls[0][0];
63
+ const parsed = JSON.parse(output);
64
+ expect(parsed.success).toBe(false);
65
+ expect(parsed.error.code).toBe('INVALID_SCHEME');
66
+ expect(parsed.error.message).toContain('--scheme must be one of "exact", "upto", "batch-settlement", "auth-capture"');
67
+ });
68
+ });
69
+ //# sourceMappingURL=pay.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pay.test.js","sourceRoot":"","sources":["../../../src/commands/__tests__/pay.test.ts"],"names":[],"mappings":"AAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE;IACpB,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IACjF,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IACvC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;AAC/D,CAAC,CAAC,CAAC;AACH,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC;IACrC,cAAc,EAAE,IAAI,CAAC,EAAE,EAAE;CAC1B,CAAC,CAAC,CAAC;AACJ,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3C,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE;CACvB,CAAC,CAAC,CAAC;AACJ,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE,CAAC,CAAC;IACzC,YAAY,EAAE,IAAI,CAAC,EAAE,EAAE;CACxB,CAAC,CAAC,CAAC;AAEJ,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,kBAAkB,GAAG,cAA4D,CAAC;AACxF,MAAM,eAAe,GAAG,WAAsD,CAAC;AAE/E,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,IAAI,QAA0B,CAAC;IAC/B,IAAI,cAAgC,CAAC;IACrC,IAAI,gBAAkC,CAAC;IAEvC,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,eAAe,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC7C,kBAAkB,CAAC,iBAAiB,CAAC;YACnC,MAAM,EAAE,GAAG;YACX,UAAU,EAAE,IAAI;YAChB,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE;SACnB,CAAC,CAAC;QACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAa,EAAE,EAAE;YAC3E,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,GAAG,CAAC,CAAC;QAC3C,CAAC,CAAgB,CAAC,CAAC;QACnB,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACzE,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,WAAW,EAAE,CAAC;QACvB,cAAc,CAAC,WAAW,EAAE,CAAC;QAC7B,gBAAgB,CAAC,WAAW,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAC;QAE/B,MAAM,GAAG,CAAC,UAAU,CAAC,CAAC,sCAAsC,EAAE,UAAU,EAAE,kBAAkB,CAAC,EAAE;YAC7F,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;QAEH,MAAM,CAAC,kBAAkB,CAAC,CAAC,oBAAoB,CAAC,mBAAmB,EAAE;YACnE,OAAO,EAAE,yBAAyB;YAClC,IAAI,EAAE,eAAe;YACrB,MAAM,EAAE,KAAK;YACb,eAAe,EAAE,kBAAkB;SACpC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAC;QAE/B,MAAM,MAAM,CACV,GAAG,CAAC,UAAU,CAAC,CAAC,8BAA8B,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE;YAChF,IAAI,EAAE,MAAM;SACb,CAAC,CACH,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAErC,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAElD,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,CACpC,6EAA6E,CAC9E,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -9,6 +9,9 @@ jest.mock('../../ipcClient.js', () => ({
9
9
  jest.mock('../../utils/authCheck.js', () => ({
10
10
  requireAuth: jest.fn(),
11
11
  }));
12
+ jest.mock('../../utils/logging.js', () => ({
13
+ safeLogEvent: jest.fn(),
14
+ }));
12
15
  import { sendIpcRequest } from '../../ipcClient.js';
13
16
  import { requireAuth } from '../../utils/authCheck.js';
14
17
  import { TOKEN_ALIASES, resolveTokenDisplay, createTradeCommand } from '../trade.js';
@@ -1 +1 @@
1
- {"version":3,"file":"trade.test.js","sourceRoot":"","sources":["../../../src/commands/__tests__/trade.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trade.test.js","sourceRoot":"","sources":["../../../src/commands/__tests__/trade.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../src/commands/address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,wBAAgB,oBAAoB,IAAI,OAAO,CA6D9C"}
1
+ {"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../src/commands/address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAepC,wBAAgB,oBAAoB,IAAI,OAAO,CA8E9C"}
@@ -2,8 +2,11 @@ import { Command } from 'commander';
2
2
  import chalk from 'chalk';
3
3
  import ora from 'ora';
4
4
  import { sendIpcRequest } from '../ipcClient.js';
5
- import { AuthRequiredError, formatError, WalletRefreshingError } from '../utils/errors.js';
5
+ import { AuthRequiredError, WalletRefreshingError } from '../utils/errors.js';
6
+ import { validateChain } from '../utils/chainValidation.js';
6
7
  import { formatJson } from '../formatters/output.js';
8
+ import { cliError, cliErrorFromCatch } from '../utils/cliError.js';
9
+ import { CliErrorCode } from '../utils/errorCodes.js';
7
10
  export function createAddressCommand() {
8
11
  return new Command('address')
9
12
  .description('Get wallet address (returns both EVM and Solana by default)')
@@ -14,6 +17,16 @@ export function createAddressCommand() {
14
17
  try {
15
18
  const data = {};
16
19
  if (options.chain) {
20
+ const chainError = validateChain(options.chain);
21
+ if (chainError) {
22
+ cliError({
23
+ spinner,
24
+ code: CliErrorCode.INVALID_CHAIN_CONFIG,
25
+ message: chainError,
26
+ jsonMode: options.json,
27
+ spinnerText: 'Invalid chain',
28
+ });
29
+ }
17
30
  data.chain = options.chain;
18
31
  }
19
32
  let result;
@@ -53,18 +66,24 @@ export function createAddressCommand() {
53
66
  }
54
67
  }
55
68
  catch (error) {
56
- spinner.fail('Failed to fetch address');
57
69
  const msg = error instanceof Error ? error.message : '';
70
+ let code = CliErrorCode.ADDRESS_FETCH_FAILED;
71
+ let errorObj = error;
58
72
  if (msg.includes('refreshing')) {
59
- console.error(chalk.yellow(formatError(new WalletRefreshingError())));
73
+ code = CliErrorCode.WALLET_REFRESHING;
74
+ errorObj = new WalletRefreshingError();
60
75
  }
61
76
  else if (msg.includes('not signed in') || msg.includes('Authentication required')) {
62
- console.error(chalk.red(formatError(new AuthRequiredError())));
63
- }
64
- else {
65
- console.error(chalk.red(formatError(error)));
77
+ code = CliErrorCode.AUTH_REQUIRED;
78
+ errorObj = new AuthRequiredError();
66
79
  }
67
- process.exit(1);
80
+ cliErrorFromCatch({
81
+ spinner,
82
+ code,
83
+ error: errorObj,
84
+ jsonMode: options.json,
85
+ spinnerText: 'Failed to fetch address',
86
+ });
68
87
  }
69
88
  });
70
89
  }
@@ -1 +1 @@
1
- {"version":3,"file":"address.js","sourceRoot":"","sources":["../../src/commands/address.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"address.js","sourceRoot":"","sources":["../../src/commands/address.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA+CpC,wBAAgB,iBAAiB,IAAI,OAAO,CA0F3C"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkDpC,wBAAgB,iBAAiB,IAAI,OAAO,CA8I3C"}
@@ -5,8 +5,11 @@ import envPaths from 'env-paths';
5
5
  import { existsSync, mkdirSync, readFileSync, writeFileSync, unlinkSync } from 'fs';
6
6
  import * as path from 'path';
7
7
  import { sendIpcRequest } from '../ipcClient.js';
8
- import { formatError, WalletError } from '../utils/errors.js';
8
+ import { WalletError } from '../utils/errors.js';
9
9
  import { formatJson, formatSuccess, formatInfo } from '../formatters/output.js';
10
+ import { cliError, cliErrorFromCatch } from '../utils/cliError.js';
11
+ import { CliErrorCode } from '../utils/errorCodes.js';
12
+ import { safeLogEvent } from '../utils/logging.js';
10
13
  const paths = envPaths('awal');
11
14
  const FLOW_ID_FILE = path.join(paths.data, 'pending-auth-flow.json');
12
15
  function saveFlowId(flowId) {
@@ -47,6 +50,7 @@ export function createAuthCommand() {
47
50
  .action(async (email, options) => {
48
51
  const spinner = ora('Sending verification code...').start();
49
52
  try {
53
+ safeLogEvent('cli_auth_login_initiated');
50
54
  const result = (await sendIpcRequest('sign-in-with-email', { email }));
51
55
  spinner.stop();
52
56
  saveFlowId(result.flowId);
@@ -65,9 +69,13 @@ export function createAuthCommand() {
65
69
  console.log(chalk.dim(error.message));
66
70
  return;
67
71
  }
68
- spinner.fail('Failed to send verification code');
69
- console.error(chalk.red(formatError(error)));
70
- process.exit(1);
72
+ cliErrorFromCatch({
73
+ spinner,
74
+ code: CliErrorCode.AUTH_LOGIN_FAILED,
75
+ error,
76
+ jsonMode: options.json,
77
+ spinnerText: 'Failed to send verification code',
78
+ });
71
79
  }
72
80
  });
73
81
  auth
@@ -78,19 +86,26 @@ export function createAuthCommand() {
78
86
  .action(async (otp, options) => {
79
87
  // Validate OTP format
80
88
  if (!/^\d{6}$/.test(otp)) {
81
- console.error(chalk.red('OTP must be exactly 6 digits'));
82
- process.exit(1);
89
+ cliError({
90
+ code: CliErrorCode.INVALID_OTP,
91
+ message: 'OTP must be exactly 6 digits',
92
+ jsonMode: options.json,
93
+ });
83
94
  }
84
95
  const flowId = loadFlowId();
85
96
  if (!flowId) {
86
- console.error(chalk.red('No flow ID found. Please run `npx awal auth login <email>` first.'));
87
- process.exit(1);
97
+ cliError({
98
+ code: CliErrorCode.AUTH_FLOW_MISSING,
99
+ message: 'No flow ID found. Please run `npx awal auth login <email>` first.',
100
+ jsonMode: options.json,
101
+ });
88
102
  }
89
103
  const spinner = ora('Verifying code...').start();
90
104
  try {
91
105
  // The wallet returns a success message string on success, throws on failure
92
106
  const result = await sendIpcRequest('verify-email-otp', { flowId, otp });
93
107
  spinner.succeed('Authentication successful!');
108
+ safeLogEvent('cli_auth_otp_success');
94
109
  clearFlowId();
95
110
  if (options.json) {
96
111
  // Normalize to object format for JSON output
@@ -107,9 +122,43 @@ export function createAuthCommand() {
107
122
  console.log(chalk.cyan(' npx awal address'));
108
123
  }
109
124
  catch (error) {
110
- spinner.fail('Verification failed');
111
- console.error(chalk.red(formatError(error)));
112
- process.exit(1);
125
+ safeLogEvent('cli_auth_otp_failed');
126
+ cliErrorFromCatch({
127
+ spinner,
128
+ code: CliErrorCode.AUTH_VERIFY_FAILED,
129
+ error,
130
+ jsonMode: options.json,
131
+ spinnerText: 'Verification failed',
132
+ });
133
+ }
134
+ });
135
+ auth
136
+ .command('logout')
137
+ .description('Sign out of the wallet and clear the authenticated session')
138
+ .option('--json', 'Output as JSON')
139
+ .action(async (options) => {
140
+ const spinner = ora('Signing out...').start();
141
+ try {
142
+ safeLogEvent('cli_auth_logout_initiated');
143
+ const result = (await sendIpcRequest('sign-out', {}));
144
+ spinner.stop();
145
+ // Clean up any pending auth flow file
146
+ clearFlowId();
147
+ safeLogEvent('cli_auth_logout_success');
148
+ if (options.json) {
149
+ console.log(formatJson(result));
150
+ return;
151
+ }
152
+ console.log(formatSuccess(result.message));
153
+ }
154
+ catch (error) {
155
+ cliErrorFromCatch({
156
+ spinner,
157
+ code: CliErrorCode.AUTH_LOGOUT_FAILED,
158
+ error,
159
+ jsonMode: options.json,
160
+ spinnerText: 'Sign out failed',
161
+ });
113
162
  }
114
163
  });
115
164
  return auth;