awal 2.2.0 → 2.8.0
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.
- package/README.md +16 -3
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +10 -5
- package/dist/cli.js.map +1 -1
- package/dist/commands/__tests__/balance.test.d.ts +2 -0
- package/dist/commands/__tests__/balance.test.d.ts.map +1 -0
- package/dist/commands/__tests__/balance.test.js +245 -0
- package/dist/commands/__tests__/balance.test.js.map +1 -0
- package/dist/commands/__tests__/telemetry.test.d.ts +2 -0
- package/dist/commands/__tests__/telemetry.test.d.ts.map +1 -0
- package/dist/commands/__tests__/telemetry.test.js +79 -0
- package/dist/commands/__tests__/telemetry.test.js.map +1 -0
- package/dist/commands/__tests__/trade.test.d.ts +2 -0
- package/dist/commands/__tests__/trade.test.d.ts.map +1 -0
- package/dist/commands/__tests__/trade.test.js +147 -0
- package/dist/commands/__tests__/trade.test.js.map +1 -0
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +48 -5
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/balance.d.ts +16 -0
- package/dist/commands/balance.d.ts.map +1 -1
- package/dist/commands/balance.js +53 -22
- package/dist/commands/balance.js.map +1 -1
- package/dist/commands/bazaar.d.ts.map +1 -1
- package/dist/commands/bazaar.js +51 -22
- package/dist/commands/bazaar.js.map +1 -1
- package/dist/commands/persistence.d.ts +3 -0
- package/dist/commands/persistence.d.ts.map +1 -0
- package/dist/commands/persistence.js +75 -0
- package/dist/commands/persistence.js.map +1 -0
- package/dist/commands/quit.d.ts +3 -0
- package/dist/commands/quit.d.ts.map +1 -0
- package/dist/commands/quit.js +91 -0
- package/dist/commands/quit.js.map +1 -0
- package/dist/commands/send.d.ts.map +1 -1
- package/dist/commands/send.js +23 -14
- package/dist/commands/send.js.map +1 -1
- package/dist/commands/telemetry.d.ts +3 -0
- package/dist/commands/telemetry.d.ts.map +1 -0
- package/dist/commands/telemetry.js +41 -0
- package/dist/commands/telemetry.js.map +1 -0
- package/dist/commands/trade.d.ts +13 -0
- package/dist/commands/trade.d.ts.map +1 -1
- package/dist/commands/trade.js +22 -20
- package/dist/commands/trade.js.map +1 -1
- package/dist/constants.d.ts +11 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +22 -0
- package/dist/constants.js.map +1 -0
- package/dist/formatters/output.d.ts +3 -2
- package/dist/formatters/output.d.ts.map +1 -1
- package/dist/formatters/output.js +13 -6
- package/dist/formatters/output.js.map +1 -1
- package/dist/index.js +0 -0
- package/dist/ipcClient.d.ts.map +1 -1
- package/dist/ipcClient.js +4 -3
- package/dist/ipcClient.js.map +1 -1
- package/dist/utils/chainValidation.d.ts +11 -0
- package/dist/utils/chainValidation.d.ts.map +1 -0
- package/dist/utils/chainValidation.js +29 -0
- package/dist/utils/chainValidation.js.map +1 -0
- package/dist/utils/configManager.d.ts +9 -0
- package/dist/utils/configManager.d.ts.map +1 -0
- package/dist/utils/configManager.js +46 -0
- package/dist/utils/configManager.js.map +1 -0
- package/dist/utils/errors.d.ts +4 -0
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +14 -10
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/parseAmount.d.ts +11 -1
- package/dist/utils/parseAmount.d.ts.map +1 -1
- package/dist/utils/parseAmount.js +36 -1
- package/dist/utils/parseAmount.js.map +1 -1
- package/dist/utils/serverManager.js +1 -1
- package/package.json +15 -6
- package/server-bundle/bundle-electron.js +43 -42
- package/server-bundle/package.json +1 -1
- package/server-bundle/preload.js +1 -1
- package/dist/commands/discover.d.ts +0 -3
- package/dist/commands/discover.d.ts.map +0 -1
- package/dist/commands/discover.js +0 -76
- package/dist/commands/discover.js.map +0 -1
- package/dist/utils/bazaarCache.d.ts +0 -36
- package/dist/utils/bazaarCache.d.ts.map +0 -1
- package/dist/utils/bazaarCache.js +0 -246
- package/dist/utils/bazaarCache.js.map +0 -1
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chain validation utilities for the AWAL CLI.
|
|
3
|
+
*/
|
|
4
|
+
export declare function isSolanaChain(chain?: string): boolean;
|
|
5
|
+
export declare function isPolygonChain(chain?: string): boolean;
|
|
6
|
+
/**
|
|
7
|
+
* Checks whether an asset is supported on the given chain.
|
|
8
|
+
* Returns an error message if incompatible, or undefined if valid.
|
|
9
|
+
*/
|
|
10
|
+
export declare function validateAssetChain(asset: string, chain: string): string | undefined;
|
|
11
|
+
//# sourceMappingURL=chainValidation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chainValidation.d.ts","sourceRoot":"","sources":["../../src/utils/chainValidation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,wBAAgB,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAGrD;AAED,wBAAgB,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAGtD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAWnF"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chain validation utilities for the AWAL CLI.
|
|
3
|
+
*/
|
|
4
|
+
import { SOLANA_CHAINS, POLYGON_CHAINS } from '../constants.js';
|
|
5
|
+
export function isSolanaChain(chain) {
|
|
6
|
+
if (!chain)
|
|
7
|
+
return false;
|
|
8
|
+
return SOLANA_CHAINS.has(chain) || chain.startsWith('solana:');
|
|
9
|
+
}
|
|
10
|
+
export function isPolygonChain(chain) {
|
|
11
|
+
if (!chain)
|
|
12
|
+
return false;
|
|
13
|
+
return POLYGON_CHAINS.has(chain);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Checks whether an asset is supported on the given chain.
|
|
17
|
+
* Returns an error message if incompatible, or undefined if valid.
|
|
18
|
+
*/
|
|
19
|
+
export function validateAssetChain(asset, chain) {
|
|
20
|
+
const solana = isSolanaChain(chain);
|
|
21
|
+
if (asset === 'SOL' && !solana) {
|
|
22
|
+
return 'SOL can only be sent on Solana chains (--chain solana)';
|
|
23
|
+
}
|
|
24
|
+
if (asset === 'ETH' && solana) {
|
|
25
|
+
return 'ETH can only be sent on EVM chains (--chain base)';
|
|
26
|
+
}
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=chainValidation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chainValidation.js","sourceRoot":"","sources":["../../src/utils/chainValidation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEhE,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,OAAO,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,OAAO,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAa,EAAE,KAAa;IAC7D,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAEpC,IAAI,KAAK,KAAK,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;QAC/B,OAAO,wDAAwD,CAAC;IAClE,CAAC;IACD,IAAI,KAAK,KAAK,KAAK,IAAI,MAAM,EAAE,CAAC;QAC9B,OAAO,mDAAmD,CAAC;IAC7D,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
interface AwalConfig {
|
|
2
|
+
persistence: boolean;
|
|
3
|
+
telemetryDisabled: boolean;
|
|
4
|
+
}
|
|
5
|
+
export declare function readConfig(): AwalConfig;
|
|
6
|
+
export declare function setPersistence(enabled: boolean): void;
|
|
7
|
+
export declare function setTelemetry(disabled: boolean): void;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=configManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configManager.d.ts","sourceRoot":"","sources":["../../src/utils/configManager.ts"],"names":[],"mappings":"AAMA,UAAU,UAAU;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAWD,wBAAgB,UAAU,IAAI,UAAU,CAcvC;AAaD,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAIrD;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAIpD"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import envPaths from 'env-paths';
|
|
2
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
|
|
3
|
+
import * as path from 'path';
|
|
4
|
+
const paths = envPaths('awal');
|
|
5
|
+
const DEFAULT_CONFIG = {
|
|
6
|
+
persistence: true,
|
|
7
|
+
telemetryDisabled: false,
|
|
8
|
+
};
|
|
9
|
+
function getConfigPath() {
|
|
10
|
+
return path.join(paths.data, 'config.json');
|
|
11
|
+
}
|
|
12
|
+
export function readConfig() {
|
|
13
|
+
const configPath = getConfigPath();
|
|
14
|
+
try {
|
|
15
|
+
if (existsSync(configPath)) {
|
|
16
|
+
const data = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
17
|
+
return {
|
|
18
|
+
...DEFAULT_CONFIG,
|
|
19
|
+
...data,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
// Invalid config file, return defaults
|
|
25
|
+
}
|
|
26
|
+
return { ...DEFAULT_CONFIG };
|
|
27
|
+
}
|
|
28
|
+
function writeConfig(config) {
|
|
29
|
+
const configPath = getConfigPath();
|
|
30
|
+
const dir = path.dirname(configPath);
|
|
31
|
+
if (!existsSync(dir)) {
|
|
32
|
+
mkdirSync(dir, { recursive: true, mode: 0o700 });
|
|
33
|
+
}
|
|
34
|
+
writeFileSync(configPath, JSON.stringify(config, null, 2) + '\n', { mode: 0o600 });
|
|
35
|
+
}
|
|
36
|
+
export function setPersistence(enabled) {
|
|
37
|
+
const config = readConfig();
|
|
38
|
+
config.persistence = enabled;
|
|
39
|
+
writeConfig(config);
|
|
40
|
+
}
|
|
41
|
+
export function setTelemetry(disabled) {
|
|
42
|
+
const config = readConfig();
|
|
43
|
+
config.telemetryDisabled = disabled;
|
|
44
|
+
writeConfig(config);
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=configManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configManager.js","sourceRoot":"","sources":["../../src/utils/configManager.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;AAO/B,MAAM,cAAc,GAAe;IACjC,WAAW,EAAE,IAAI;IACjB,iBAAiB,EAAE,KAAK;CACzB,CAAC;AAEF,SAAS,aAAa;IACpB,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,IAAI,CAAC;QACH,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;YAC3D,OAAO;gBACL,GAAG,cAAc;gBACjB,GAAG,IAAI;aACR,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,uCAAuC;IACzC,CAAC;IACD,OAAO,EAAE,GAAG,cAAc,EAAE,CAAC;AAC/B,CAAC;AAED,SAAS,WAAW,CAAC,MAAkB;IACrC,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAErC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACrF,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC;IAC7B,WAAW,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,QAAiB;IAC5C,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,CAAC,iBAAiB,GAAG,QAAQ,CAAC;IACpC,WAAW,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC"}
|
package/dist/utils/errors.d.ts
CHANGED
|
@@ -13,6 +13,10 @@ export declare class IpcTimeoutError extends Error {
|
|
|
13
13
|
constructor(channel: string, timeoutMs: number);
|
|
14
14
|
getDisplayMessage(): string;
|
|
15
15
|
}
|
|
16
|
+
export declare class WalletError extends Error {
|
|
17
|
+
constructor(message: string);
|
|
18
|
+
getDisplayMessage(): string;
|
|
19
|
+
}
|
|
16
20
|
export declare class IpcBridgeError extends Error {
|
|
17
21
|
constructor(message: string);
|
|
18
22
|
getDisplayMessage(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,qBAAa,qBAAsB,SAAQ,KAAK;;IAM9C,iBAAiB,IAAI,MAAM;CAO5B;AAED,qBAAa,iBAAkB,SAAQ,KAAK;gBAC9B,OAAO,SAA4B;IAK/C,iBAAiB,IAAI,MAAM;CAW5B;AAED,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAK9C,iBAAiB,IAAI,MAAM;CAO5B;AAED,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM;IAK3B,iBAAiB,IAAI,MAAM;CAK5B;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,qBAAa,qBAAsB,SAAQ,KAAK;;IAM9C,iBAAiB,IAAI,MAAM;CAO5B;AAED,qBAAa,iBAAkB,SAAQ,KAAK;gBAC9B,OAAO,SAA4B;IAK/C,iBAAiB,IAAI,MAAM;CAW5B;AAED,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAK9C,iBAAiB,IAAI,MAAM;CAO5B;AAED,qBAAa,WAAY,SAAQ,KAAK;gBACxB,OAAO,EAAE,MAAM;IAK3B,iBAAiB,IAAI,MAAM;CAG5B;AAED,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM;IAK3B,iBAAiB,IAAI,MAAM;CAK5B;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAclD"}
|
package/dist/utils/errors.js
CHANGED
|
@@ -44,6 +44,15 @@ Try:
|
|
|
44
44
|
2. Restart the wallet and try again`;
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
|
+
export class WalletError extends Error {
|
|
48
|
+
constructor(message) {
|
|
49
|
+
super(message);
|
|
50
|
+
this.name = 'WalletError';
|
|
51
|
+
}
|
|
52
|
+
getDisplayMessage() {
|
|
53
|
+
return this.message;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
47
56
|
export class IpcBridgeError extends Error {
|
|
48
57
|
constructor(message) {
|
|
49
58
|
super(message);
|
|
@@ -56,16 +65,11 @@ This may indicate a configuration issue. Try restarting the wallet.`;
|
|
|
56
65
|
}
|
|
57
66
|
}
|
|
58
67
|
export function formatError(error) {
|
|
59
|
-
if (error instanceof WalletNotRunningError
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
}
|
|
65
|
-
if (error instanceof IpcTimeoutError) {
|
|
66
|
-
return error.getDisplayMessage();
|
|
67
|
-
}
|
|
68
|
-
if (error instanceof IpcBridgeError) {
|
|
68
|
+
if (error instanceof WalletNotRunningError ||
|
|
69
|
+
error instanceof AuthRequiredError ||
|
|
70
|
+
error instanceof IpcTimeoutError ||
|
|
71
|
+
error instanceof WalletError ||
|
|
72
|
+
error instanceof IpcBridgeError) {
|
|
69
73
|
return error.getDisplayMessage();
|
|
70
74
|
}
|
|
71
75
|
if (error instanceof Error) {
|
package/dist/utils/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9C;QACE,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;IAED,iBAAiB;QACf,OAAO;;;;gBAIK,CAAC;IACf,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC1C,YAAY,OAAO,GAAG,yBAAyB;QAC7C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;IAED,iBAAiB;QACf,OAAO;;;;;;;;mBAQQ,CAAC;IAClB,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxC,YAAY,OAAe,EAAE,SAAiB;QAC5C,KAAK,CAAC,2BAA2B,OAAO,WAAW,SAAS,IAAI,CAAC,CAAC;QAClE,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;IAED,iBAAiB;QACf,OAAO;;;;sCAI2B,CAAC;IACrC,CAAC;CACF;AAED,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9C;QACE,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;IAED,iBAAiB;QACf,OAAO;;;;gBAIK,CAAC;IACf,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC1C,YAAY,OAAO,GAAG,yBAAyB;QAC7C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;IAED,iBAAiB;QACf,OAAO;;;;;;;;mBAQQ,CAAC;IAClB,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxC,YAAY,OAAe,EAAE,SAAiB;QAC5C,KAAK,CAAC,2BAA2B,OAAO,WAAW,SAAS,IAAI,CAAC,CAAC;QAClE,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;IAED,iBAAiB;QACf,OAAO;;;;sCAI2B,CAAC;IACrC,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,KAAK;IACpC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,KAAK;IACvC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;IAED,iBAAiB;QACf,OAAO,+BAA+B,IAAI,CAAC,OAAO;;oEAEc,CAAC;IACnE,CAAC;CACF;AAED,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,IACE,KAAK,YAAY,qBAAqB;QACtC,KAAK,YAAY,iBAAiB;QAClC,KAAK,YAAY,eAAe;QAChC,KAAK,YAAY,WAAW;QAC5B,KAAK,YAAY,cAAc,EAC/B,CAAC;QACD,OAAO,KAAK,CAAC,iBAAiB,EAAE,CAAC;IACnC,CAAC;IACD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC;IACD,OAAO,kBAAkB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AAC3C,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Amount parsing utilities for CLI commands
|
|
2
|
+
* Amount parsing and formatting utilities for CLI commands
|
|
3
3
|
*/
|
|
4
4
|
/**
|
|
5
5
|
* Parses an amount string that can be in various formats:
|
|
@@ -11,4 +11,14 @@
|
|
|
11
11
|
* @returns Amount in USDC atomic units (6 decimals)
|
|
12
12
|
*/
|
|
13
13
|
export declare function parseUsdcAmount(amountStr: string): string;
|
|
14
|
+
/**
|
|
15
|
+
* Parse an amount string to atomic units for the given asset.
|
|
16
|
+
* USDC uses parseUsdcAmount (handles "$1.00" format).
|
|
17
|
+
* ETH/SOL use viem's parseUnits with their respective decimals.
|
|
18
|
+
*/
|
|
19
|
+
export declare function parseAmountForAsset(amount: string, asset: string): string;
|
|
20
|
+
/**
|
|
21
|
+
* Format atomic units back to a human-readable string for the given asset.
|
|
22
|
+
*/
|
|
23
|
+
export declare function formatAmount(atomicAmount: string, asset: string): string;
|
|
14
24
|
//# sourceMappingURL=parseAmount.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseAmount.d.ts","sourceRoot":"","sources":["../../src/utils/parseAmount.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"parseAmount.d.ts","sourceRoot":"","sources":["../../src/utils/parseAmount.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAqBzD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAkBzE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAOxE"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Amount parsing utilities for CLI commands
|
|
2
|
+
* Amount parsing and formatting utilities for CLI commands
|
|
3
3
|
*/
|
|
4
|
+
import { parseUnits } from 'viem';
|
|
5
|
+
import { ASSET_DECIMALS } from '../constants.js';
|
|
6
|
+
import { formatUsdcAmount } from '../formatters/output.js';
|
|
4
7
|
/**
|
|
5
8
|
* Parses an amount string that can be in various formats:
|
|
6
9
|
* - "$0.01" or "$1.00" - Dollar format
|
|
@@ -28,4 +31,36 @@ export function parseUsdcAmount(amountStr) {
|
|
|
28
31
|
const atomicUnits = Math.floor(num * 1_000_000);
|
|
29
32
|
return atomicUnits.toString();
|
|
30
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Parse an amount string to atomic units for the given asset.
|
|
36
|
+
* USDC uses parseUsdcAmount (handles "$1.00" format).
|
|
37
|
+
* ETH/SOL use viem's parseUnits with their respective decimals.
|
|
38
|
+
*/
|
|
39
|
+
export function parseAmountForAsset(amount, asset) {
|
|
40
|
+
if (asset === 'USDC') {
|
|
41
|
+
return parseUsdcAmount(amount);
|
|
42
|
+
}
|
|
43
|
+
const decimals = ASSET_DECIMALS[asset];
|
|
44
|
+
if (!decimals) {
|
|
45
|
+
throw new Error(`Unsupported asset: ${asset}. Supported: USDC, ETH, POL, SOL`);
|
|
46
|
+
}
|
|
47
|
+
// Strip $ prefix if present
|
|
48
|
+
const cleaned = amount.replace(/^\$/, '').trim();
|
|
49
|
+
const num = parseFloat(cleaned);
|
|
50
|
+
if (isNaN(num) || num <= 0) {
|
|
51
|
+
throw new Error(`Invalid amount: ${amount}. Must be a positive number.`);
|
|
52
|
+
}
|
|
53
|
+
return parseUnits(cleaned, decimals).toString();
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Format atomic units back to a human-readable string for the given asset.
|
|
57
|
+
*/
|
|
58
|
+
export function formatAmount(atomicAmount, asset) {
|
|
59
|
+
if (asset === 'USDC') {
|
|
60
|
+
return formatUsdcAmount(atomicAmount);
|
|
61
|
+
}
|
|
62
|
+
const decimals = ASSET_DECIMALS[asset] || 18;
|
|
63
|
+
const value = Number(atomicAmount) / 10 ** decimals;
|
|
64
|
+
return `${value} ${asset}`;
|
|
65
|
+
}
|
|
31
66
|
//# sourceMappingURL=parseAmount.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseAmount.js","sourceRoot":"","sources":["../../src/utils/parseAmount.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,SAAiB;IAC/C,6BAA6B;IAC7B,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAEpD,kBAAkB;IAClB,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IAEhC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,mBAAmB,SAAS,8BAA8B,CAAC,CAAC;IAC9E,CAAC;IAED,+EAA+E;IAC/E,4DAA4D;IAC5D,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC;QACvC,iCAAiC;QACjC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;IACpC,CAAC;IAED,iDAAiD;IACjD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC;IAChD,OAAO,WAAW,CAAC,QAAQ,EAAE,CAAC;AAChC,CAAC"}
|
|
1
|
+
{"version":3,"file":"parseAmount.js","sourceRoot":"","sources":["../../src/utils/parseAmount.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAElC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,SAAiB;IAC/C,6BAA6B;IAC7B,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAEpD,kBAAkB;IAClB,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IAEhC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,mBAAmB,SAAS,8BAA8B,CAAC,CAAC;IAC9E,CAAC;IAED,+EAA+E;IAC/E,4DAA4D;IAC5D,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC;QACvC,iCAAiC;QACjC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;IACpC,CAAC;IAED,iDAAiD;IACjD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC;IAChD,OAAO,WAAW,CAAC,QAAQ,EAAE,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc,EAAE,KAAa;IAC/D,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,kCAAkC,CAAC,CAAC;IACjF,CAAC;IAED,4BAA4B;IAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACjD,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IAChC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,8BAA8B,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,YAAoB,EAAE,KAAa;IAC9D,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,OAAO,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACxC,CAAC;IACD,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,QAAQ,CAAC;IACpD,OAAO,GAAG,KAAK,IAAI,KAAK,EAAE,CAAC;AAC7B,CAAC"}
|
|
@@ -6,7 +6,7 @@ import { fileURLToPath } from 'url';
|
|
|
6
6
|
import { getPrimaryProcessPid } from './processCheck.js';
|
|
7
7
|
const paths = envPaths('awal');
|
|
8
8
|
// This will be updated by the build script
|
|
9
|
-
const BUNDLE_VERSION = '2.
|
|
9
|
+
const BUNDLE_VERSION = '2.8.0';
|
|
10
10
|
function getServerPaths() {
|
|
11
11
|
const dataDir = paths.data;
|
|
12
12
|
const bundleDir = path.join(dataDir, 'server');
|
package/package.json
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "awal",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.8.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Coinbase Wallet CLI for payments and crypto",
|
|
6
|
-
"bin":
|
|
7
|
-
"awal": "dist/index.js"
|
|
8
|
-
},
|
|
6
|
+
"bin": "dist/index.js",
|
|
9
7
|
"files": [
|
|
10
8
|
"dist/",
|
|
11
9
|
"server-bundle/"
|
|
@@ -15,8 +13,9 @@
|
|
|
15
13
|
"dev": "tsx src/index.ts",
|
|
16
14
|
"start": "node dist/index.js",
|
|
17
15
|
"typecheck": "tsc --noEmit",
|
|
18
|
-
"lint": "eslint src --ext .ts",
|
|
19
|
-
"format": "prettier --write src/**/*.ts"
|
|
16
|
+
"lint": "eslint -c .eslintrc.cjs src --ext .ts",
|
|
17
|
+
"format": "prettier --write src/**/*.ts",
|
|
18
|
+
"test": "jest --config jest.config.cjs"
|
|
20
19
|
},
|
|
21
20
|
"dependencies": {
|
|
22
21
|
"@x402/core": "^2.4.0",
|
|
@@ -29,7 +28,17 @@
|
|
|
29
28
|
"zod": "^3.23.8"
|
|
30
29
|
},
|
|
31
30
|
"devDependencies": {
|
|
31
|
+
"@babel/core": "^7.24.0",
|
|
32
|
+
"@babel/preset-env": "^7.24.0",
|
|
33
|
+
"@babel/preset-typescript": "^7.24.0",
|
|
34
|
+
"@cbhq/jest-preset": "*",
|
|
35
|
+
"@types/jest": "^29.5.0",
|
|
32
36
|
"@types/node": "^20.17.57",
|
|
37
|
+
"@typescript-eslint/eslint-plugin": "^7.18.0",
|
|
38
|
+
"@typescript-eslint/parser": "^7.18.0",
|
|
39
|
+
"babel-jest": "^29.7.0",
|
|
40
|
+
"eslint": "^8.57.1",
|
|
41
|
+
"jest": "^29.5.0",
|
|
33
42
|
"tsx": "^4.20.3",
|
|
34
43
|
"typescript": "5.8.3"
|
|
35
44
|
},
|