starkfi 0.1.0 → 0.3.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/LICENSE +1 -1
- package/MCP.md +292 -0
- package/README.md +424 -54
- package/dist/commands/auth/login.js +2 -2
- package/dist/commands/auth/login.js.map +1 -1
- package/dist/commands/auth/verify.d.ts.map +1 -1
- package/dist/commands/auth/verify.js +2 -2
- package/dist/commands/auth/verify.js.map +1 -1
- package/dist/commands/batch/batch.d.ts +3 -0
- package/dist/commands/batch/batch.d.ts.map +1 -0
- package/dist/commands/batch/batch.js +155 -0
- package/dist/commands/batch/batch.js.map +1 -0
- package/dist/commands/chain/tx-status.js +2 -2
- package/dist/commands/chain/tx-status.js.map +1 -1
- package/dist/commands/config/config.d.ts.map +1 -1
- package/dist/commands/config/config.js +23 -34
- package/dist/commands/config/config.js.map +1 -1
- package/dist/commands/lending/lending.d.ts +1 -0
- package/dist/commands/lending/lending.d.ts.map +1 -1
- package/dist/commands/lending/lending.js +197 -51
- package/dist/commands/lending/lending.js.map +1 -1
- package/dist/commands/portfolio/portfolio.d.ts +3 -0
- package/dist/commands/portfolio/portfolio.d.ts.map +1 -0
- package/dist/commands/portfolio/portfolio.js +76 -0
- package/dist/commands/portfolio/portfolio.js.map +1 -0
- package/dist/commands/staking/staking.d.ts +1 -1
- package/dist/commands/staking/staking.d.ts.map +1 -1
- package/dist/commands/staking/staking.js +144 -61
- package/dist/commands/staking/staking.js.map +1 -1
- package/dist/commands/trade/multi-swap.d.ts +3 -0
- package/dist/commands/trade/multi-swap.d.ts.map +1 -0
- package/dist/commands/trade/multi-swap.js +141 -0
- package/dist/commands/trade/multi-swap.js.map +1 -0
- package/dist/commands/trade/status.js +2 -2
- package/dist/commands/trade/status.js.map +1 -1
- package/dist/commands/trade/swap.d.ts.map +1 -1
- package/dist/commands/trade/swap.js +48 -12
- package/dist/commands/trade/swap.js.map +1 -1
- package/dist/commands/wallet/balance.d.ts.map +1 -1
- package/dist/commands/wallet/balance.js +20 -3
- package/dist/commands/wallet/balance.js.map +1 -1
- package/dist/commands/wallet/deploy.d.ts.map +1 -1
- package/dist/commands/wallet/deploy.js +2 -1
- package/dist/commands/wallet/deploy.js.map +1 -1
- package/dist/commands/wallet/send.d.ts.map +1 -1
- package/dist/commands/wallet/send.js +46 -9
- package/dist/commands/wallet/send.js.map +1 -1
- package/dist/index.js +162 -9
- package/dist/index.js.map +1 -1
- package/dist/lib/banner.d.ts +6 -0
- package/dist/lib/banner.d.ts.map +1 -0
- package/dist/lib/banner.js +78 -0
- package/dist/lib/banner.js.map +1 -0
- package/dist/lib/concurrency.d.ts +2 -0
- package/dist/lib/concurrency.d.ts.map +1 -0
- package/dist/lib/concurrency.js +21 -0
- package/dist/lib/concurrency.js.map +1 -0
- package/dist/lib/config.d.ts +0 -11
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +0 -20
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/errors.d.ts +2 -0
- package/dist/lib/errors.d.ts.map +1 -1
- package/dist/lib/errors.js +2 -0
- package/dist/lib/errors.js.map +1 -1
- package/dist/lib/fetch.d.ts +4 -0
- package/dist/lib/fetch.d.ts.map +1 -0
- package/dist/lib/fetch.js +13 -0
- package/dist/lib/fetch.js.map +1 -0
- package/dist/lib/format.d.ts +12 -2
- package/dist/lib/format.d.ts.map +1 -1
- package/dist/lib/format.js +86 -23
- package/dist/lib/format.js.map +1 -1
- package/dist/lib/retry.d.ts +8 -0
- package/dist/lib/retry.d.ts.map +1 -0
- package/dist/lib/retry.js +25 -0
- package/dist/lib/retry.js.map +1 -0
- package/dist/lib/types.d.ts +6 -0
- package/dist/lib/types.d.ts.map +1 -0
- package/dist/lib/types.js +2 -0
- package/dist/lib/types.js.map +1 -0
- package/dist/lib/validation.d.ts +0 -12
- package/dist/lib/validation.d.ts.map +1 -1
- package/dist/lib/validation.js +1 -23
- package/dist/lib/validation.js.map +1 -1
- package/dist/mcp/handlers/batch.d.ts +13 -0
- package/dist/mcp/handlers/batch.d.ts.map +1 -0
- package/dist/mcp/handlers/batch.js +33 -0
- package/dist/mcp/handlers/batch.js.map +1 -0
- package/dist/mcp/handlers/config.d.ts +1 -1
- package/dist/mcp/handlers/config.d.ts.map +1 -1
- package/dist/mcp/handlers/config.js +11 -12
- package/dist/mcp/handlers/config.js.map +1 -1
- package/dist/mcp/handlers/index.d.ts +3 -0
- package/dist/mcp/handlers/index.d.ts.map +1 -1
- package/dist/mcp/handlers/index.js +3 -0
- package/dist/mcp/handlers/index.js.map +1 -1
- package/dist/mcp/handlers/lending.d.ts +12 -1
- package/dist/mcp/handlers/lending.d.ts.map +1 -1
- package/dist/mcp/handlers/lending.js +67 -23
- package/dist/mcp/handlers/lending.js.map +1 -1
- package/dist/mcp/handlers/multi-swap.d.ts +27 -0
- package/dist/mcp/handlers/multi-swap.d.ts.map +1 -0
- package/dist/mcp/handlers/multi-swap.js +73 -0
- package/dist/mcp/handlers/multi-swap.js.map +1 -0
- package/dist/mcp/handlers/portfolio.d.ts +7 -0
- package/dist/mcp/handlers/portfolio.d.ts.map +1 -0
- package/dist/mcp/handlers/portfolio.js +11 -0
- package/dist/mcp/handlers/portfolio.js.map +1 -0
- package/dist/mcp/handlers/staking.d.ts +13 -1
- package/dist/mcp/handlers/staking.d.ts.map +1 -1
- package/dist/mcp/handlers/staking.js +18 -5
- package/dist/mcp/handlers/staking.js.map +1 -1
- package/dist/mcp/handlers/trade.d.ts +1 -0
- package/dist/mcp/handlers/trade.d.ts.map +1 -1
- package/dist/mcp/handlers/trade.js +27 -13
- package/dist/mcp/handlers/trade.js.map +1 -1
- package/dist/mcp/handlers/wallet.d.ts +1 -0
- package/dist/mcp/handlers/wallet.d.ts.map +1 -1
- package/dist/mcp/handlers/wallet.js +24 -5
- package/dist/mcp/handlers/wallet.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +45 -4
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/auth.d.ts +3 -0
- package/dist/mcp/tools/auth.d.ts.map +1 -0
- package/dist/mcp/tools/auth.js +17 -0
- package/dist/mcp/tools/auth.js.map +1 -0
- package/dist/mcp/tools/error-handling.d.ts +12 -0
- package/dist/mcp/tools/error-handling.d.ts.map +1 -0
- package/dist/mcp/tools/error-handling.js +28 -0
- package/dist/mcp/tools/error-handling.js.map +1 -0
- package/dist/mcp/tools/index.d.ts +11 -0
- package/dist/mcp/tools/index.d.ts.map +1 -0
- package/dist/mcp/tools/index.js +19 -0
- package/dist/mcp/tools/index.js.map +1 -0
- package/dist/mcp/tools/lending.d.ts +3 -0
- package/dist/mcp/tools/lending.d.ts.map +1 -0
- package/dist/mcp/tools/lending.js +71 -0
- package/dist/mcp/tools/lending.js.map +1 -0
- package/dist/mcp/tools/staking.d.ts +3 -0
- package/dist/mcp/tools/staking.d.ts.map +1 -0
- package/dist/mcp/tools/staking.js +50 -0
- package/dist/mcp/tools/staking.js.map +1 -0
- package/dist/mcp/tools/trade.d.ts +3 -0
- package/dist/mcp/tools/trade.d.ts.map +1 -0
- package/dist/mcp/tools/trade.js +63 -0
- package/dist/mcp/tools/trade.js.map +1 -0
- package/dist/mcp/tools/wallet.d.ts +3 -0
- package/dist/mcp/tools/wallet.d.ts.map +1 -0
- package/dist/mcp/tools/wallet.js +27 -0
- package/dist/mcp/tools/wallet.js.map +1 -0
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +125 -41
- package/dist/mcp/tools.js.map +1 -1
- package/dist/services/api/client.d.ts +0 -12
- package/dist/services/api/client.d.ts.map +1 -1
- package/dist/services/api/client.js +7 -16
- package/dist/services/api/client.js.map +1 -1
- package/dist/services/auth/session.d.ts +1 -7
- package/dist/services/auth/session.d.ts.map +1 -1
- package/dist/services/auth/session.js +21 -0
- package/dist/services/auth/session.js.map +1 -1
- package/dist/services/batch/batch.d.ts +35 -0
- package/dist/services/batch/batch.d.ts.map +1 -0
- package/dist/services/batch/batch.js +110 -0
- package/dist/services/batch/batch.js.map +1 -0
- package/dist/services/config/config.d.ts +3 -0
- package/dist/services/config/config.d.ts.map +1 -1
- package/dist/services/config/config.js +30 -1
- package/dist/services/config/config.js.map +1 -1
- package/dist/services/fibrous/config.d.ts +4 -0
- package/dist/services/fibrous/config.d.ts.map +1 -0
- package/dist/services/fibrous/config.js +4 -0
- package/dist/services/fibrous/config.js.map +1 -0
- package/dist/services/fibrous/health.js +1 -1
- package/dist/services/fibrous/health.js.map +1 -1
- package/dist/services/fibrous/route.d.ts +15 -6
- package/dist/services/fibrous/route.d.ts.map +1 -1
- package/dist/services/fibrous/route.js +64 -3
- package/dist/services/fibrous/route.js.map +1 -1
- package/dist/services/portfolio/portfolio.d.ts +31 -0
- package/dist/services/portfolio/portfolio.d.ts.map +1 -0
- package/dist/services/portfolio/portfolio.js +104 -0
- package/dist/services/portfolio/portfolio.js.map +1 -0
- package/dist/services/simulate/simulate.d.ts +10 -0
- package/dist/services/simulate/simulate.d.ts.map +1 -0
- package/dist/services/simulate/simulate.js +57 -0
- package/dist/services/simulate/simulate.js.map +1 -0
- package/dist/services/staking/staking.d.ts +9 -30
- package/dist/services/staking/staking.d.ts.map +1 -1
- package/dist/services/staking/staking.js +44 -52
- package/dist/services/staking/staking.js.map +1 -1
- package/dist/services/starkzap/client.d.ts +2 -1
- package/dist/services/starkzap/client.d.ts.map +1 -1
- package/dist/services/starkzap/client.js +39 -21
- package/dist/services/starkzap/client.js.map +1 -1
- package/dist/services/starkzap/config.d.ts +6 -0
- package/dist/services/starkzap/config.d.ts.map +1 -0
- package/dist/services/starkzap/config.js +13 -0
- package/dist/services/starkzap/config.js.map +1 -0
- package/dist/services/tokens/balances.d.ts.map +1 -1
- package/dist/services/tokens/balances.js +8 -8
- package/dist/services/tokens/balances.js.map +1 -1
- package/dist/services/tokens/tokens.d.ts +2 -3
- package/dist/services/tokens/tokens.d.ts.map +1 -1
- package/dist/services/tokens/tokens.js +3 -8
- package/dist/services/tokens/tokens.js.map +1 -1
- package/dist/services/vesu/api.d.ts +28 -0
- package/dist/services/vesu/api.d.ts.map +1 -0
- package/dist/services/vesu/api.js +91 -0
- package/dist/services/vesu/api.js.map +1 -0
- package/dist/services/vesu/config.d.ts +9 -0
- package/dist/services/vesu/config.d.ts.map +1 -0
- package/dist/services/vesu/config.js +32 -0
- package/dist/services/vesu/config.js.map +1 -0
- package/dist/services/vesu/index.d.ts +2 -0
- package/dist/services/vesu/index.d.ts.map +1 -1
- package/dist/services/vesu/index.js +2 -0
- package/dist/services/vesu/index.js.map +1 -1
- package/dist/services/vesu/lending.d.ts +9 -5
- package/dist/services/vesu/lending.d.ts.map +1 -1
- package/dist/services/vesu/lending.js +176 -60
- package/dist/services/vesu/lending.js.map +1 -1
- package/dist/services/vesu/pools.d.ts +6 -12
- package/dist/services/vesu/pools.d.ts.map +1 -1
- package/dist/services/vesu/pools.js +11 -31
- package/dist/services/vesu/pools.js.map +1 -1
- package/package.json +88 -82
- package/skills/README.md +59 -0
- package/skills/authenticate-wallet/SKILL.md +119 -0
- package/skills/balance/SKILL.md +80 -0
- package/skills/batch/SKILL.md +118 -0
- package/skills/config/SKILL.md +144 -0
- package/skills/lending/SKILL.md +209 -0
- package/skills/multi-swap/SKILL.md +95 -0
- package/skills/portfolio/SKILL.md +82 -0
- package/skills/send/SKILL.md +82 -0
- package/skills/staking/SKILL.md +188 -0
- package/skills/trade/SKILL.md +92 -0
package/README.md
CHANGED
|
@@ -1,83 +1,453 @@
|
|
|
1
|
-
|
|
1
|
+
<p align="center">
|
|
2
|
+
<a href="https://starkfi.app">
|
|
3
|
+
<img src="docs/favicon.svg" alt="StarkFi Logo" width="100" height="100"/>
|
|
4
|
+
</a>
|
|
5
|
+
</p>
|
|
2
6
|
|
|
3
|
-
|
|
4
|
-
Powered by [StarkZap](https://github.com/keep-starknet-strange/starkzap) SDK, [Fibrous](https://fibrous.finance) aggregation, and [AVNU](https://docs.avnu.fi) Paymaster.
|
|
7
|
+
<h1 align="center">StarkFi</h1>
|
|
5
8
|
|
|
6
|
-
|
|
9
|
+
<p align="center">
|
|
10
|
+
<strong>The Gas-Abstracted DeFi CLI & Agent.</strong><br>
|
|
11
|
+
<em>The AI-native DeFi toolkit for Starknet.</em><br>
|
|
12
|
+
A production-grade CLI and MCP server that gives both developers and AI agents full access to swaps, multi-swap, atomic batch transactions, staking, lending, portfolio management, and gasless transactions — all powered by the <a href="https://github.com/keep-starknet-strange/starkzap">Starkzap SDK</a>.
|
|
13
|
+
</p>
|
|
7
14
|
|
|
8
|
-
|
|
15
|
+
```bash
|
|
16
|
+
npx starkfi --help
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Why StarkFi?
|
|
22
|
+
|
|
23
|
+
Most DeFi tools are built for humans clicking buttons. StarkFi is built for **agents**.
|
|
24
|
+
|
|
25
|
+
- 🤖 **27 MCP tools** — Any AI assistant (Cursor, Claude, Antigravity) can execute DeFi operations autonomously
|
|
26
|
+
- ⚡ **Atomic Batching** — Combine swap + stake + lend + send into a single multicall transaction
|
|
27
|
+
- 💸 **Gas Abstraction Built-In** — Pay gas in STRK, ETH, USDC, USDT, or DAI via AVNU Paymaster, or let the developer sponsor gas entirely (gasfree mode)
|
|
28
|
+
- 📊 **Full Portfolio** — Unified view of balances, staking positions, and lending positions with USD values
|
|
29
|
+
- 🧪 **Simulate Everything** — Dry-run any transaction to estimate fees before broadcasting
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Architecture
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
┌──────────────────────────────────────────────────────────────────────┐
|
|
37
|
+
│ StarkFi │
|
|
38
|
+
│ │
|
|
39
|
+
│ ┌─────────────┐ ┌─────────────────────────────────────────┐ │
|
|
40
|
+
│ │ CLI (25+ │ │ MCP Server (27 tools) │ │
|
|
41
|
+
│ │ commands) │ │ AI agents connect via stdio transport │ │
|
|
42
|
+
│ └──────┬───────┘ └──────────────┬──────────────────────────┘ │
|
|
43
|
+
│ │ │ │
|
|
44
|
+
│ └────────────┬───────────────┘ │
|
|
45
|
+
│ ▼ │
|
|
46
|
+
│ ┌──────────────────────────────────────────────────────────────┐ │
|
|
47
|
+
│ │ Service Layer │ │
|
|
48
|
+
│ │ │ │
|
|
49
|
+
│ │ ┌─────────┐ ┌─────────┐ ┌──────┐ ┌─────────┐ │ │
|
|
50
|
+
│ │ │ Fibrous │ │ Staking │ │ Vesu │ │ Batch │ │ │
|
|
51
|
+
│ │ │ Swap │ │Lifecycle│ │ V2 │ │Multicall│ │ │
|
|
52
|
+
│ │ └────┬────┘ └────┬────┘ └──┬───┘ └────┬────┘ │ │
|
|
53
|
+
│ │ │ │ │ │ │ │
|
|
54
|
+
│ │ ┌────┴────────────┴──────────┴────────────┴────┐ │ │
|
|
55
|
+
│ │ │ Starkzap SDK (starkzap v1.0.0) │ │ │
|
|
56
|
+
│ │ │ Wallet · TxBuilder · Tokens · Paymaster │ │ │
|
|
57
|
+
│ │ └───────────────────┬───────────────────────────┘ │ │
|
|
58
|
+
│ └──────────────────────┼───────────────────────────────────────┘ │
|
|
59
|
+
│ ▼ │
|
|
60
|
+
│ ┌─────────────────────────────────────┐ ┌─────────────────────┐ │
|
|
61
|
+
│ │ Auth Server (Hono + Privy TEE) │ │ AVNU Paymaster │ │
|
|
62
|
+
│ │ Email OTP · Wallet · Sign · Gas │ │ Gas Abstraction │ │
|
|
63
|
+
│ └─────────────────────────────────────┘ └─────────────────────┘ │
|
|
64
|
+
└──────────────────────────────────────────────────────────────────────┘
|
|
65
|
+
│
|
|
66
|
+
▼
|
|
67
|
+
┌──────────────────┐
|
|
68
|
+
│ Starknet (L2) │
|
|
69
|
+
└──────────────────┘
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Starkzap Modules Used
|
|
75
|
+
|
|
76
|
+
StarkFi leverages **all core Starkzap modules**:
|
|
77
|
+
|
|
78
|
+
| Module | Usage in StarkFi |
|
|
79
|
+
| ------------------------------------ | ---------------------------------------------------------------------------------------------------------- |
|
|
80
|
+
| **Wallets** | `PrivySigner` + `ArgentXV050Preset` for email-based wallet management via Privy TEE |
|
|
81
|
+
| **Gasless Transactions (Paymaster)** | Paymaster integration with 5 gas tokens (STRK, ETH, USDC, USDT, DAI) + developer-sponsored gasfree mode |
|
|
82
|
+
| **Staking** | Multi-token staking lifecycle (STRK, WBTC, tBTC, SolvBTC, LBTC) — stake, claim, compound, unstake (2-step) |
|
|
83
|
+
| **TxBuilder** | Atomic multicall batching — combine swap + stake + supply + send in one transaction |
|
|
84
|
+
| **ERC-20 Tokens** | Token presets, balance queries, transfers, approvals |
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Features
|
|
89
|
+
|
|
90
|
+
### 🔄 Intelligent Swap Routing (Fibrous)
|
|
91
|
+
|
|
92
|
+
DEX-aggregated swaps with optimal routing. Single swaps, multi-swap (up to 3 pairs), and batch routing.
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
npx starkfi trade 100 USDC ETH --slippage 1
|
|
96
|
+
npx starkfi multi-swap "100 USDC>ETH, 50 USDT>ETH"
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### ⚛️ Atomic Transaction Batching
|
|
100
|
+
|
|
101
|
+
Bundle multiple DeFi operations into a single Starknet multicall. Minimum 2 operations.
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
npx starkfi batch \
|
|
105
|
+
--swap "100 USDC ETH" \
|
|
106
|
+
--stake "50 STRK karnot" \
|
|
107
|
+
--supply "200 USDC Prime" \
|
|
108
|
+
--send "10 STRK 0xAddr"
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### 🥩 Multi-Token Staking Lifecycle
|
|
112
|
+
|
|
113
|
+
Full staking lifecycle across multiple validators with STRK, WBTC, tBTC, SolvBTC, and LBTC support.
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
npx starkfi stake 100 -v karnot
|
|
117
|
+
npx starkfi rewards -v karnot --compound
|
|
118
|
+
npx starkfi unstake intent -v karnot -a 50
|
|
119
|
+
npx starkfi unstake exit -v karnot
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### 🏦 Lending & Borrowing (Vesu V2)
|
|
123
|
+
|
|
124
|
+
Supply collateral, borrow assets, monitor health factors, and atomically close positions.
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
npx starkfi lend-supply 100 -p Prime -t STRK
|
|
128
|
+
npx starkfi lend-borrow -p Prime \
|
|
129
|
+
--collateral-amount 200 --collateral-token STRK \
|
|
130
|
+
--borrow-amount 50 --borrow-token USDC
|
|
131
|
+
npx starkfi lend-status -p Prime --collateral-token STRK --borrow-token USDC
|
|
132
|
+
npx starkfi lend-close -p Prime --collateral-token STRK --borrow-token USDC
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### 💸 Gas Abstraction
|
|
136
|
+
|
|
137
|
+
All transactions are gasless by default. Users pay gas fees in their preferred ERC-20 token via Paymaster.
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
# Pay gas in USDC instead of STRK
|
|
141
|
+
npx starkfi config set-gas-token USDC
|
|
142
|
+
|
|
143
|
+
# Developer pays all gas (gasfree mode)
|
|
144
|
+
npx starkfi config set-gasfree on
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
| Mode | Who Pays | Gas Tokens | Description |
|
|
148
|
+
| --------------------- | --------- | -------------------------- | --------------------------------- |
|
|
149
|
+
| **Gasless** (default) | User | STRK, ETH, USDC, USDT, DAI | User pays in ERC-20 via Paymaster |
|
|
150
|
+
| **Gasfree** | Developer | — | Developer sponsors all gas |
|
|
151
|
+
|
|
152
|
+
### 🧪 Simulation / Dry-Run
|
|
153
|
+
|
|
154
|
+
Estimate fees and validate any transaction before broadcasting.
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
npx starkfi trade 100 USDC ETH --simulate
|
|
158
|
+
# → mode: SIMULATION, estimatedFee: 0.000142 ETH ($0.52), callCount: 4
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### 📊 Portfolio Dashboard
|
|
162
|
+
|
|
163
|
+
Consolidated view of all DeFi positions in one call.
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
npx starkfi portfolio
|
|
167
|
+
# → Token Balances (USD), Staking Positions, Lending Positions, Total Value
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## AI Integration (MCP)
|
|
173
|
+
|
|
174
|
+
StarkFi exposes **27 MCP tools** via stdio transport, enabling AI assistants to execute DeFi operations.
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
# Start the MCP server
|
|
178
|
+
npx starkfi mcp-start
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
### Tool Categories
|
|
182
|
+
|
|
183
|
+
| Category | Tools | Count |
|
|
184
|
+
| ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ----- |
|
|
185
|
+
| **Auth & Config** | `get_auth_status`, `config_action` | 2 |
|
|
186
|
+
| **Wallet** | `get_balance`, `get_portfolio`, `deploy_account`, `send_tokens`, `get_tx_status` | 5 |
|
|
187
|
+
| **Trade** | `get_swap_quote`, `swap_tokens`, `get_multi_swap_quote`, `multi_swap`, `batch_execute` | 5 |
|
|
188
|
+
| **Staking** | `list_validators`, `list_pools`, `get_staking_info`, `get_stake_status`, `stake_tokens`, `unstake_tokens`, `claim_rewards`, `compound_rewards` | 8 |
|
|
189
|
+
| **Lending** | `list_lending_pools`, `get_lending_position`, `supply_assets`, `withdraw_assets`, `borrow_assets`, `repay_debt`, `close_position` | 7 |
|
|
190
|
+
|
|
191
|
+
### Example — AI Agent Workflow
|
|
192
|
+
|
|
193
|
+
```
|
|
194
|
+
User: "Swap 100 USDC to STRK and stake half on Karnot"
|
|
195
|
+
|
|
196
|
+
Agent:
|
|
197
|
+
1. get_swap_quote(amount: "100", from: "USDC", to: "STRK") → 500 STRK
|
|
198
|
+
2. swap_tokens(amount: "100", from: "USDC", to: "STRK") → txHash: 0x...
|
|
199
|
+
3. stake_tokens(amount: "250", validator: "karnot", token: "STRK") → txHash: 0x...
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
### MCP Configuration
|
|
9
203
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
204
|
+
Add to your AI assistant's MCP config (Cursor, Claude, etc.):
|
|
205
|
+
|
|
206
|
+
```json
|
|
207
|
+
{
|
|
208
|
+
"mcpServers": {
|
|
209
|
+
"starkfi": {
|
|
210
|
+
"command": "npx",
|
|
211
|
+
"args": ["-y", "starkfi", "mcp-start"]
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
For the complete tool registry and schemas, see [MCP Documentation](MCP.md).
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## Agent Skills
|
|
222
|
+
|
|
223
|
+
StarkFi ships with **10 agent skills** — structured instruction sets that teach AI coding assistants how to use StarkFi without custom prompting.
|
|
224
|
+
|
|
225
|
+
| Category | Skills |
|
|
226
|
+
| ---------------- | ------------------------------------------------------------ |
|
|
227
|
+
| **Auth** | `authenticate-wallet` |
|
|
228
|
+
| **Wallet Data** | `balance`, `portfolio` |
|
|
229
|
+
| **Transactions** | `send`, `trade`, `multi-swap`, `batch`, `staking`, `lending` |
|
|
230
|
+
| **Utility** | `config` |
|
|
231
|
+
|
|
232
|
+
```bash
|
|
233
|
+
# Install skills for your AI assistant
|
|
234
|
+
npx skills add ahmetenesdur/starkfi
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
See [Skills Documentation](skills/README.md) for details.
|
|
238
|
+
|
|
239
|
+
---
|
|
15
240
|
|
|
16
241
|
## Quick Start
|
|
17
242
|
|
|
18
|
-
###
|
|
243
|
+
### Prerequisites
|
|
244
|
+
|
|
245
|
+
- **Node.js** v18+
|
|
246
|
+
- **StarkFi Auth Server** running (required for Privy email OTP and Paymaster proxy)
|
|
247
|
+
|
|
248
|
+
### 1. Authenticate
|
|
19
249
|
|
|
20
250
|
```bash
|
|
21
|
-
# Via Email OTP (requires starkfi-server)
|
|
22
251
|
npx starkfi auth login user@example.com
|
|
23
|
-
npx starkfi auth verify user@example.com <
|
|
252
|
+
npx starkfi auth verify user@example.com <OTP_CODE>
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
### 2. Deploy Account
|
|
24
256
|
|
|
25
|
-
|
|
26
|
-
npx starkfi
|
|
257
|
+
```bash
|
|
258
|
+
npx starkfi deploy
|
|
27
259
|
```
|
|
28
260
|
|
|
29
|
-
###
|
|
261
|
+
### 3. Check Balance
|
|
30
262
|
|
|
31
263
|
```bash
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
npx starkfi
|
|
264
|
+
npx starkfi balance
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
### 4. Start Trading
|
|
268
|
+
|
|
269
|
+
```bash
|
|
270
|
+
npx starkfi trade 10 STRK ETH --simulate # Preview first
|
|
271
|
+
npx starkfi trade 10 STRK ETH # Execute
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
---
|
|
275
|
+
|
|
276
|
+
## Command Reference
|
|
277
|
+
|
|
278
|
+
### Session & Wallet
|
|
279
|
+
|
|
280
|
+
| Command | Description |
|
|
281
|
+
| --------------------------------------------------------- | -------------------------------- |
|
|
282
|
+
| `auth login <email>` | Start email OTP authentication |
|
|
283
|
+
| `auth verify <email> <code>` | Complete authentication |
|
|
284
|
+
| `auth logout` | Terminate session |
|
|
285
|
+
| `status` | Check auth status and API health |
|
|
286
|
+
| `address` | Display Starknet address |
|
|
287
|
+
| `deploy` | Deploy smart account on-chain |
|
|
288
|
+
| `balance [--token <symbol>] [--json]` | Query token balances |
|
|
289
|
+
| `send <amount> <token> <recipient> [--simulate] [--json]` | Transfer tokens |
|
|
290
|
+
| `portfolio [--json]` | Full DeFi portfolio |
|
|
291
|
+
|
|
292
|
+
### Trading (Fibrous)
|
|
293
|
+
|
|
294
|
+
| Command | Description |
|
|
295
|
+
| ------------------------------------------------------------------- | --------------------------- |
|
|
296
|
+
| `trade <amount> <from> <to> [--slippage <%>] [--simulate] [--json]` | Swap tokens |
|
|
297
|
+
| `multi-swap "<pairs>" [--slippage <%>] [--simulate] [--json]` | Multi-pair swap (2-3 pairs) |
|
|
298
|
+
|
|
299
|
+
### Batching (Multicall)
|
|
300
|
+
|
|
301
|
+
| Command | Description |
|
|
302
|
+
| --------------------------------------------------------------------------- | ---------------------------- |
|
|
303
|
+
| `batch [--simulate] --swap "..." --stake "..." --supply "..." --send "..."` | Atomic multicall (min 2 ops) |
|
|
304
|
+
|
|
305
|
+
### Staking
|
|
306
|
+
|
|
307
|
+
| Command | Description |
|
|
308
|
+
| ----------------------------------------------------------------------------- | ---------------------- |
|
|
309
|
+
| `validators [--json]` | List active validators |
|
|
310
|
+
| `pools <validator> [--json]` | Show delegation pools |
|
|
311
|
+
| `stake <amount> --validator <name> [--token <symbol>] [--simulate]` | Stake tokens |
|
|
312
|
+
| `stake-status [validator] [--json]` | Staking dashboard |
|
|
313
|
+
| `rewards --validator <name> [--token <symbol>] <--claim\|--compound>` | Manage rewards |
|
|
314
|
+
| `unstake <intent\|exit> --validator <name> [--token <symbol>] [--amount <n>]` | Unstake (2-step) |
|
|
315
|
+
|
|
316
|
+
### Lending (Vesu V2)
|
|
317
|
+
|
|
318
|
+
| Command | Description |
|
|
319
|
+
| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------- |
|
|
320
|
+
| `lend-pools [name]` | List lending pools |
|
|
321
|
+
| `lend-supply <amount> -p <pool> -t <token>` | Supply assets |
|
|
322
|
+
| `lend-withdraw <amount> -p <pool> -t <token>` | Withdraw assets |
|
|
323
|
+
| `lend-borrow -p <pool> --collateral-amount <n> --collateral-token <t> --borrow-amount <n> --borrow-token <t> [--use-supplied]` | Borrow |
|
|
324
|
+
| `lend-repay <amount> -p <pool> -t <token> --collateral-token <t>` | Repay debt |
|
|
325
|
+
| `lend-status -p <pool> --collateral-token <t> [--borrow-token <t>]` | Position status |
|
|
326
|
+
| `lend-close -p <pool> --collateral-token <t> --borrow-token <t>` | Close position atomically |
|
|
327
|
+
|
|
328
|
+
### Configuration
|
|
39
329
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
330
|
+
| Command | Description |
|
|
331
|
+
| --------------------------------------- | ------------------------------ |
|
|
332
|
+
| `config list` | Show current configuration |
|
|
333
|
+
| `config set-rpc <url>` | Set custom RPC endpoint |
|
|
334
|
+
| `config get-rpc` | Show current RPC |
|
|
335
|
+
| `config set-network <mainnet\|sepolia>` | Switch network |
|
|
336
|
+
| `config set-gas-token <token\|reset>` | Set gas payment token |
|
|
337
|
+
| `config set-gasfree <on\|off>` | Toggle developer-sponsored gas |
|
|
338
|
+
| `tx-status <hash>` | Check transaction status |
|
|
44
339
|
|
|
45
|
-
|
|
46
|
-
npx starkfi validators # List all validators
|
|
47
|
-
npx starkfi pools <validator> # List delegation pools
|
|
48
|
-
npx starkfi staking-stats # Full staking dashboard
|
|
49
|
-
npx starkfi stake <amount> --pool <pool> # Stake tokens
|
|
50
|
-
npx starkfi rewards --pool <pool> [--claim|--compound] # Manage rewards
|
|
51
|
-
npx starkfi unstake <intent|exit> --pool <pool> [--amount <amount>] # Unstake
|
|
340
|
+
---
|
|
52
341
|
|
|
53
|
-
|
|
54
|
-
npx starkfi tx-status <hash> # Check tx receipt
|
|
55
|
-
npx starkfi config list # View configuration
|
|
56
|
-
npx starkfi config set-rpc <url> # Set custom RPC
|
|
57
|
-
npx starkfi config set-network <network> # Set network (mainnet/sepolia)
|
|
58
|
-
npx starkfi config set-gasfree <on|off> # Toggle AVNU-sponsored gas
|
|
59
|
-
npx starkfi config set-gas-token <token|off> # Pay gas in ERC-20 (USDC, etc)
|
|
342
|
+
## Auth Server
|
|
60
343
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
344
|
+
StarkFi includes a dedicated **authentication server** (`server/`) built for secure, non-custodial wallet management.
|
|
345
|
+
|
|
346
|
+
### Route Groups
|
|
347
|
+
|
|
348
|
+
| Route | Purpose |
|
|
349
|
+
| ------------ | ------------------------------------------------- |
|
|
350
|
+
| `/auth` | Email OTP login and verification via Privy |
|
|
351
|
+
| `/wallet` | Wallet creation and address retrieval |
|
|
352
|
+
| `/sign` | Transaction signing via Privy TEE (non-custodial) |
|
|
353
|
+
| `/paymaster` | Paymaster proxy for gas abstraction |
|
|
354
|
+
|
|
355
|
+
### Security
|
|
356
|
+
|
|
357
|
+
- **CORS** with configurable allowlist (`ALLOWED_ORIGINS`)
|
|
358
|
+
- **Secure headers** via `hono/secure-headers`
|
|
359
|
+
- **Body size limit** (1MB)
|
|
360
|
+
- **Request ID tracking** for observability
|
|
361
|
+
- **Graceful shutdown** (SIGTERM/SIGINT with 5s force-kill)
|
|
362
|
+
|
|
363
|
+
See [`server/README.md`](server/README.md) for setup instructions.
|
|
364
|
+
|
|
365
|
+
---
|
|
366
|
+
|
|
367
|
+
## Tech Stack
|
|
368
|
+
|
|
369
|
+
| Layer | Technology |
|
|
370
|
+
| --------------- | -------------------------------------------------------------------------------- |
|
|
371
|
+
| **Core SDK** | [Starkzap](https://github.com/keep-starknet-strange/starkzap) v1.0.0 |
|
|
372
|
+
| **CLI** | [Commander.js](https://github.com/tj/commander.js) v14.0.3 |
|
|
373
|
+
| **MCP** | [@modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/sdk) v1.27.1 |
|
|
374
|
+
| **Schema** | [Zod](https://zod.dev/) v4.3.6 |
|
|
375
|
+
| **Auth Server** | [Hono](https://hono.dev/) v4.12.2 + [Privy TEE](https://privy.io/) |
|
|
376
|
+
| **DEX Routing** | [Fibrous](https://fibrous.finance/) Aggregator |
|
|
377
|
+
| **Lending** | [Vesu](https://vesu.io/) V2 Protocol |
|
|
378
|
+
| **Gas** | [AVNU](https://avnu.fi/) Paymaster |
|
|
379
|
+
|
|
380
|
+
---
|
|
381
|
+
|
|
382
|
+
## Error Handling
|
|
383
|
+
|
|
384
|
+
StarkFi implements a robust error handling system with a custom `StarkfiError` class and **26 specific error codes** organized by domain:
|
|
385
|
+
|
|
386
|
+
| Domain | Error Codes |
|
|
387
|
+
| -------------- | --------------------------------------------------------------------------------- |
|
|
388
|
+
| **Auth** | `SESSION_EXPIRED`, `SESSION_NOT_FOUND`, `AUTH_FAILED`, `UNAUTHORIZED` |
|
|
389
|
+
| **Wallet** | `WALLET_NOT_FOUND`, `WALLET_NOT_DEPLOYED`, `INSUFFICIENT_BALANCE` |
|
|
390
|
+
| **Network** | `NETWORK_ERROR`, `RPC_ERROR`, `API_ERROR`, `TX_FAILED`, `TX_REVERTED` |
|
|
391
|
+
| **Validation** | `INVALID_ADDRESS`, `INVALID_AMOUNT`, `INVALID_TOKEN`, `INVALID_CONFIG` |
|
|
392
|
+
| **DeFi** | `SWAP_FAILED`, `STAKING_FAILED`, `LENDING_FAILED`, `POOL_NOT_FOUND` |
|
|
393
|
+
| **System** | `CONFIG_ERROR`, `SDK_ERROR`, `UNKNOWN_ERROR`, `SIMULATION_FAILED`, `BATCH_FAILED` |
|
|
394
|
+
|
|
395
|
+
All network operations include **automatic retry with exponential backoff** (500ms base, max 2 retries). Parallel operations use a **sliding-window concurrency pool** to prevent RPC rate-limiting.
|
|
396
|
+
|
|
397
|
+
---
|
|
398
|
+
|
|
399
|
+
## Development
|
|
400
|
+
|
|
401
|
+
### Setup
|
|
402
|
+
|
|
403
|
+
```bash
|
|
404
|
+
git clone https://github.com/ahmetenesdur/starkfi.git
|
|
405
|
+
cd starkfi
|
|
406
|
+
pnpm install
|
|
69
407
|
```
|
|
70
408
|
|
|
71
|
-
|
|
409
|
+
### Build
|
|
72
410
|
|
|
73
|
-
|
|
411
|
+
```bash
|
|
412
|
+
pnpm build # Compile TypeScript → dist/
|
|
413
|
+
```
|
|
414
|
+
|
|
415
|
+
### Dev Mode
|
|
74
416
|
|
|
75
417
|
```bash
|
|
76
|
-
|
|
418
|
+
pnpm dev -- --help # Run with tsx (hot-reload)
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
### Lint & Format
|
|
422
|
+
|
|
423
|
+
```bash
|
|
424
|
+
pnpm lint # ESLint
|
|
425
|
+
pnpm format # Prettier
|
|
77
426
|
```
|
|
78
427
|
|
|
79
|
-
|
|
428
|
+
### Auth Server
|
|
429
|
+
|
|
430
|
+
```bash
|
|
431
|
+
cd server
|
|
432
|
+
pnpm install
|
|
433
|
+
cp .env.example .env # Configure environment
|
|
434
|
+
pnpm dev
|
|
435
|
+
```
|
|
436
|
+
|
|
437
|
+
---
|
|
438
|
+
|
|
439
|
+
## Contributing
|
|
440
|
+
|
|
441
|
+
Contributions are welcome! Here's how to get started:
|
|
442
|
+
|
|
443
|
+
1. **Fork** the repository and create a feature branch
|
|
444
|
+
2. **Install** dependencies: `pnpm install`
|
|
445
|
+
3. **Make** your changes following the existing code style (TypeScript strict mode, ESLint + Prettier)
|
|
446
|
+
4. **Build** and verify: `pnpm build && pnpm lint`
|
|
447
|
+
5. **Submit** a pull request with a clear description
|
|
448
|
+
|
|
449
|
+
For bug reports and feature requests, please [open an issue](https://github.com/ahmetenesdur/starkfi/issues).
|
|
80
450
|
|
|
81
451
|
## License
|
|
82
452
|
|
|
83
|
-
MIT
|
|
453
|
+
[MIT](LICENSE) — ahmetenesdur
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { apiLogin } from "../../services/api/client.js";
|
|
2
|
-
import { createSpinner, success } from "../../lib/format.js";
|
|
2
|
+
import { createSpinner, success, formatError } from "../../lib/format.js";
|
|
3
3
|
import { getOrCreateAuthCommand } from "../../lib/command.js";
|
|
4
4
|
export function registerLoginCommand(program) {
|
|
5
5
|
const authCmd = getOrCreateAuthCommand(program);
|
|
@@ -15,7 +15,7 @@ export function registerLoginCommand(program) {
|
|
|
15
15
|
console.log(`Run: starkfi auth verify ${email} <code>`);
|
|
16
16
|
}
|
|
17
17
|
catch (error) {
|
|
18
|
-
console.error(
|
|
18
|
+
console.error(formatError(error));
|
|
19
19
|
process.exit(1);
|
|
20
20
|
}
|
|
21
21
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/commands/auth/login.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/commands/auth/login.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACpD,MAAM,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAEhD,OAAO;SACL,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,mDAAmD,CAAC;SAChE,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,EAAE;QAC/B,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC,KAAK,EAAE,CAAC;YAExD,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;YAEtB,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,qBAAqB,KAAK,iBAAiB,CAAC,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,4BAA4B,KAAK,SAAS,CAAC,CAAC;QACzD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACF,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/verify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/verify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuE5D"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { apiVerify } from "../../services/api/client.js";
|
|
2
2
|
import { saveSession } from "../../services/auth/session.js";
|
|
3
|
-
import { createSpinner, success, formatResult } from "../../lib/format.js";
|
|
3
|
+
import { createSpinner, success, formatResult, formatError } from "../../lib/format.js";
|
|
4
4
|
import { STARKFI_API_URL_DEFAULT } from "../../lib/config.js";
|
|
5
5
|
import { createSDK, connectWallet, resolveFeeModeConfig } from "../../services/starkzap/client.js";
|
|
6
6
|
import { ConfigService } from "../../services/config/config.js";
|
|
@@ -56,7 +56,7 @@ export function registerVerifyCommand(program) {
|
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
catch (error) {
|
|
59
|
-
console.error(
|
|
59
|
+
console.error(formatError(error));
|
|
60
60
|
process.exit(1);
|
|
61
61
|
}
|
|
62
62
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../src/commands/auth/verify.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../src/commands/auth/verify.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch.d.ts","sourceRoot":"","sources":["../../../src/commands/batch/batch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6EzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+G3D"}
|