@darksol/terminal 0.4.2 → 0.4.3
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 +27 -2
- package/package.json +1 -1
- package/src/cli.js +6 -1
- package/src/trading/swap.js +28 -0
- package/src/ui/banner.js +9 -20
package/README.md
CHANGED
|
@@ -30,15 +30,30 @@ darksol
|
|
|
30
30
|
# Create a wallet (AES-256-GCM encrypted)
|
|
31
31
|
darksol wallet create main
|
|
32
32
|
|
|
33
|
-
# Check balance
|
|
33
|
+
# Check balance + multi-chain portfolio
|
|
34
34
|
darksol wallet balance
|
|
35
|
+
darksol portfolio
|
|
35
36
|
|
|
36
|
-
#
|
|
37
|
+
# Token prices & live monitoring
|
|
38
|
+
darksol price ETH AERO VIRTUAL
|
|
39
|
+
darksol watch AERO --above 2.0
|
|
40
|
+
|
|
41
|
+
# Gas estimates
|
|
42
|
+
darksol gas base
|
|
43
|
+
|
|
44
|
+
# Swap tokens (Uniswap V3 with slippage protection)
|
|
37
45
|
darksol trade swap -i ETH -o USDC -a 0.1
|
|
38
46
|
|
|
39
47
|
# AI trading assistant
|
|
40
48
|
darksol ai chat
|
|
41
49
|
|
|
50
|
+
# Agent email
|
|
51
|
+
darksol mail setup
|
|
52
|
+
darksol mail send --to user@example.com --subject "Hello"
|
|
53
|
+
|
|
54
|
+
# Web terminal in browser
|
|
55
|
+
darksol serve
|
|
56
|
+
|
|
42
57
|
# Start agent signer for OpenClaw
|
|
43
58
|
darksol agent start main
|
|
44
59
|
```
|
|
@@ -58,6 +73,16 @@ darksol agent start main
|
|
|
58
73
|
| `market` | Market intel, top movers, token analysis | x402 micropayments |
|
|
59
74
|
| `oracle` | On-chain random number oracle | $0.05–$0.25 |
|
|
60
75
|
| `casino` | The Clawsino — on-chain betting | $1 flat bets |
|
|
76
|
+
| `portfolio` | Multi-chain balance view (5 EVM chains) | Free |
|
|
77
|
+
| `gas` | Gas prices & cost estimates | Free |
|
|
78
|
+
| `price` | Quick token price check (DexScreener) | Free |
|
|
79
|
+
| `watch` | Live price monitoring with alerts | Free |
|
|
80
|
+
| `history` | Transaction history via block explorers | Free |
|
|
81
|
+
| `mail` | AgentMail — email for AI agents | Free tier |
|
|
82
|
+
| `serve` | Web terminal in browser (xterm.js) | Free |
|
|
83
|
+
| `facilitator` | x402 payment facilitator | Free |
|
|
84
|
+
| `cards` | Prepaid Visa/MC cards | Service fees |
|
|
85
|
+
| `builders` | ERC-8021 builder code directory | Free |
|
|
61
86
|
| `cards` | Crypto → prepaid Visa/MC (no KYC) | 3% markup |
|
|
62
87
|
| `builders` | ERC-8021 builder leaderboard | Free |
|
|
63
88
|
| `facilitator` | x402 payment verification & settlement | Free |
|
package/package.json
CHANGED
package/src/cli.js
CHANGED
|
@@ -26,6 +26,9 @@ import { parseIntent, startChat, adviseStrategy, analyzeToken, executeIntent } f
|
|
|
26
26
|
import { startAgentSigner, showAgentDocs } from './wallet/agent-signer.js';
|
|
27
27
|
import { listSkills, installSkill, skillInfo, uninstallSkill } from './services/skills.js';
|
|
28
28
|
import { runSetupWizard, checkFirstRun } from './setup/wizard.js';
|
|
29
|
+
import { createRequire } from 'module';
|
|
30
|
+
const require = createRequire(import.meta.url);
|
|
31
|
+
const { version: PKG_VERSION } = require('../package.json');
|
|
29
32
|
|
|
30
33
|
export function cli(argv) {
|
|
31
34
|
const program = new Command();
|
|
@@ -33,7 +36,7 @@ export function cli(argv) {
|
|
|
33
36
|
program
|
|
34
37
|
.name('darksol')
|
|
35
38
|
.description(theme.gold('DARKSOL Terminal') + theme.dim(' — Ghost in the machine with teeth 🌑'))
|
|
36
|
-
.version(
|
|
39
|
+
.version(PKG_VERSION)
|
|
37
40
|
;
|
|
38
41
|
|
|
39
42
|
// ═══════════════════════════════════════
|
|
@@ -721,6 +724,8 @@ export function cli(argv) {
|
|
|
721
724
|
['Output', cfg.output],
|
|
722
725
|
['Slippage', `${cfg.slippage}%`],
|
|
723
726
|
['Gas Multiplier', `${cfg.gasMultiplier}x`],
|
|
727
|
+
['Mail', cfg.mailEmail || theme.dim('(not set)')],
|
|
728
|
+
['Version', PKG_VERSION],
|
|
724
729
|
['Config File', configPath()],
|
|
725
730
|
]);
|
|
726
731
|
console.log('');
|
package/src/trading/swap.js
CHANGED
|
@@ -18,6 +18,12 @@ const ROUTERS = {
|
|
|
18
18
|
arbitrum: {
|
|
19
19
|
uniswapV3: '0xE592427A0AEce92De3Edee1F18E0157C05861564',
|
|
20
20
|
},
|
|
21
|
+
optimism: {
|
|
22
|
+
uniswapV3: '0xE592427A0AEce92De3Edee1F18E0157C05861564',
|
|
23
|
+
},
|
|
24
|
+
polygon: {
|
|
25
|
+
uniswapV3: '0xE592427A0AEce92De3Edee1F18E0157C05861564',
|
|
26
|
+
},
|
|
21
27
|
};
|
|
22
28
|
|
|
23
29
|
// Common token addresses per chain
|
|
@@ -38,6 +44,26 @@ const TOKENS = {
|
|
|
38
44
|
USDT: '0xdAC17F958D2ee523a2206206994597C13D831ec7',
|
|
39
45
|
DAI: '0x6B175474E89094C44Da98b954EedeAC495271d0F',
|
|
40
46
|
},
|
|
47
|
+
arbitrum: {
|
|
48
|
+
ETH: ethers.ZeroAddress,
|
|
49
|
+
WETH: '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1',
|
|
50
|
+
USDC: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831',
|
|
51
|
+
USDT: '0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9',
|
|
52
|
+
ARB: '0x912CE59144191C1204E64559FE8253a0e49E6548',
|
|
53
|
+
},
|
|
54
|
+
optimism: {
|
|
55
|
+
ETH: ethers.ZeroAddress,
|
|
56
|
+
WETH: '0x4200000000000000000000000000000000000006',
|
|
57
|
+
USDC: '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85',
|
|
58
|
+
OP: '0x4200000000000000000000000000000000000042',
|
|
59
|
+
},
|
|
60
|
+
polygon: {
|
|
61
|
+
ETH: ethers.ZeroAddress,
|
|
62
|
+
WETH: '0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619',
|
|
63
|
+
WMATIC: '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270',
|
|
64
|
+
USDC: '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359',
|
|
65
|
+
USDT: '0xc2132D05D31c914a87C6611C10748AEb04B58e8F',
|
|
66
|
+
},
|
|
41
67
|
};
|
|
42
68
|
|
|
43
69
|
// ERC20 ABI for approvals and balance checks
|
|
@@ -66,6 +92,8 @@ const QUOTERS = {
|
|
|
66
92
|
base: '0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a',
|
|
67
93
|
ethereum: '0x61fFE014bA17989E743c5F6cB21bF9697530B21e',
|
|
68
94
|
arbitrum: '0x61fFE014bA17989E743c5F6cB21bF9697530B21e',
|
|
95
|
+
optimism: '0x61fFE014bA17989E743c5F6cB21bF9697530B21e',
|
|
96
|
+
polygon: '0x61fFE014bA17989E743c5F6cB21bF9697530B21e',
|
|
69
97
|
};
|
|
70
98
|
|
|
71
99
|
// Resolve token symbol to address
|
package/src/ui/banner.js
CHANGED
|
@@ -2,6 +2,9 @@ import figlet from 'figlet';
|
|
|
2
2
|
import gradient from 'gradient-string';
|
|
3
3
|
import chalk from 'chalk';
|
|
4
4
|
import { theme } from './theme.js';
|
|
5
|
+
import { createRequire } from 'module';
|
|
6
|
+
const require = createRequire(import.meta.url);
|
|
7
|
+
const { version } = require('../../package.json');
|
|
5
8
|
|
|
6
9
|
const darksol_gradient = gradient(['#B8860B', '#FFD700', '#FFF8DC', '#FFD700', '#B8860B']);
|
|
7
10
|
|
|
@@ -11,6 +14,9 @@ export function showBanner(opts = {}) {
|
|
|
11
14
|
horizontalLayout: 'fitted',
|
|
12
15
|
});
|
|
13
16
|
|
|
17
|
+
const vStr = `v${version}`;
|
|
18
|
+
const pad = ' '.repeat(Math.max(0, 48 - vStr.length));
|
|
19
|
+
|
|
14
20
|
console.log('');
|
|
15
21
|
console.log(darksol_gradient(banner));
|
|
16
22
|
console.log('');
|
|
@@ -26,8 +32,8 @@ export function showBanner(opts = {}) {
|
|
|
26
32
|
);
|
|
27
33
|
console.log(
|
|
28
34
|
theme.dim(' ║ ') +
|
|
29
|
-
theme.subtle(
|
|
30
|
-
theme.dim(
|
|
35
|
+
theme.subtle(` ${vStr}`) +
|
|
36
|
+
theme.dim(pad) +
|
|
31
37
|
theme.gold('🌑') +
|
|
32
38
|
theme.dim(' ║')
|
|
33
39
|
);
|
|
@@ -44,7 +50,7 @@ export function showBanner(opts = {}) {
|
|
|
44
50
|
|
|
45
51
|
export function showMiniBanner() {
|
|
46
52
|
console.log('');
|
|
47
|
-
console.log(theme.gold.bold(' 🌑 DARKSOL TERMINAL') + theme.dim(
|
|
53
|
+
console.log(theme.gold.bold(' 🌑 DARKSOL TERMINAL') + theme.dim(` v${version}`));
|
|
48
54
|
console.log(theme.dim(' ─────────────────────────────'));
|
|
49
55
|
console.log('');
|
|
50
56
|
}
|
|
@@ -58,20 +64,3 @@ export function showSection(title) {
|
|
|
58
64
|
export function showDivider() {
|
|
59
65
|
console.log(theme.dim(' ' + '─'.repeat(50)));
|
|
60
66
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|