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
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { handleGetSwapQuote, handleSwapTokens, handleGetMultiSwapQuote, handleMultiSwap, handleBatchExecute, } from "../handlers/index.js";
|
|
3
|
+
import { withErrorHandling } from "./error-handling.js";
|
|
4
|
+
export function registerTradeTools(server) {
|
|
5
|
+
server.tool("get_swap_quote", "Get an expected output and route from Fibrous *without* executing the swap. ALWAYS use this BEFORE calling swap_tokens so the user can review the expected output amount and slippage.", {
|
|
6
|
+
amount: z.string().describe("Amount to swap in (e.g. '0.1', '100')"),
|
|
7
|
+
from_token: z.string().describe("Source token symbol to sell (e.g. 'ETH', 'USDC')"),
|
|
8
|
+
to_token: z.string().describe("Destination token symbol to buy (e.g. 'STRK', 'DAI')"),
|
|
9
|
+
}, { readOnlyHint: true, destructiveHint: false }, withErrorHandling(handleGetSwapQuote));
|
|
10
|
+
server.tool("swap_tokens", "Execute a token swap on Starknet using Fibrous aggregation. Finds optimal route and executes. Set simulate=true to estimate fees without executing. ONLY call this after showing the user a quote via get_swap_quote.", {
|
|
11
|
+
amount: z.string().describe("Amount to swap in (e.g. '0.1', '100')"),
|
|
12
|
+
from_token: z.string().describe("Source token symbol to sell (e.g. 'ETH', 'STRK')"),
|
|
13
|
+
to_token: z.string().describe("Destination token symbol to buy (e.g. 'USDC', 'DAI')"),
|
|
14
|
+
slippage: z.number().optional().describe("Slippage tolerance % (default: 1)"),
|
|
15
|
+
simulate: z
|
|
16
|
+
.boolean()
|
|
17
|
+
.optional()
|
|
18
|
+
.describe("Set true to simulate only — estimates fees without sending a transaction"),
|
|
19
|
+
}, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleSwapTokens));
|
|
20
|
+
const swapItemSchema = z.object({
|
|
21
|
+
amount: z.string().describe("Amount to swap in (e.g. '100', '0.5')"),
|
|
22
|
+
from_token: z.string().describe("Source token symbol (e.g. 'USDC', 'ETH')"),
|
|
23
|
+
to_token: z.string().describe("Destination token symbol (e.g. 'ETH', 'STRK')"),
|
|
24
|
+
});
|
|
25
|
+
server.tool("get_multi_swap_quote", "Get quotes for multiple token swaps at once (2-3 pairs). Uses Fibrous batch routing for optimal rates.", {
|
|
26
|
+
swaps: z
|
|
27
|
+
.array(swapItemSchema)
|
|
28
|
+
.min(2)
|
|
29
|
+
.max(3)
|
|
30
|
+
.describe("Array of swap pairs (2-3 items)"),
|
|
31
|
+
}, { readOnlyHint: true, destructiveHint: false }, withErrorHandling(handleGetMultiSwapQuote));
|
|
32
|
+
server.tool("multi_swap", "Execute multiple token swaps in a single transaction (2-3 pairs). Uses Fibrous batch routing. Call get_multi_swap_quote first to preview.", {
|
|
33
|
+
swaps: z
|
|
34
|
+
.array(swapItemSchema)
|
|
35
|
+
.min(2)
|
|
36
|
+
.max(3)
|
|
37
|
+
.describe("Array of swap pairs (2-3 items)"),
|
|
38
|
+
slippage: z.number().optional().describe("Slippage tolerance % (default: 1)"),
|
|
39
|
+
simulate: z
|
|
40
|
+
.boolean()
|
|
41
|
+
.optional()
|
|
42
|
+
.describe("Set true to simulate only — estimates fees without executing"),
|
|
43
|
+
}, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleMultiSwap));
|
|
44
|
+
server.tool("batch_execute", "Execute multiple DeFi operations in a single Starknet transaction (multicall). Supports: swap, stake, supply, send. Requires at least 2 operations.", {
|
|
45
|
+
operations: z
|
|
46
|
+
.array(z.object({
|
|
47
|
+
type: z
|
|
48
|
+
.enum(["swap", "stake", "supply", "send"])
|
|
49
|
+
.describe("Operation type"),
|
|
50
|
+
params: z
|
|
51
|
+
.record(z.string(), z.string())
|
|
52
|
+
.describe("Operation params. swap: {amount, from_token, to_token}. stake: {amount, token?, pool? or validator?}. supply: {amount, token, pool}. send: {amount, token, to}."),
|
|
53
|
+
}))
|
|
54
|
+
.min(2)
|
|
55
|
+
.describe("Array of operations to batch (min 2)"),
|
|
56
|
+
simulate: z
|
|
57
|
+
.boolean()
|
|
58
|
+
.optional()
|
|
59
|
+
.describe("Set true to simulate only — estimates fees without executing"),
|
|
60
|
+
}, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleBatchExecute));
|
|
61
|
+
return 5;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=trade.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trade.js","sourceRoot":"","sources":["../../../src/mcp/tools/trade.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/wallet.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAUzE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CA6D7D"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { handleGetTxStatus, handleGetBalance, handleDeployAccount, handleSendTokens, handleGetPortfolio, } from "../handlers/index.js";
|
|
3
|
+
import { withErrorHandling } from "./error-handling.js";
|
|
4
|
+
export function registerWalletTools(server) {
|
|
5
|
+
server.tool("get_tx_status", "Check Starknet transaction status by hash. Use this to verify if a recently submitted transaction has been accepted on L2 or L1.", {
|
|
6
|
+
hash: z.string().describe("Transaction hash (0x...)"),
|
|
7
|
+
}, { readOnlyHint: true, destructiveHint: false }, withErrorHandling(handleGetTxStatus));
|
|
8
|
+
server.tool("get_balance", "Get native token and ERC-20 token balances on Starknet for the authorized user.", {
|
|
9
|
+
token: z
|
|
10
|
+
.string()
|
|
11
|
+
.optional()
|
|
12
|
+
.describe("Specific token symbol (e.g. 'STRK', 'ETH', 'USDC'). Omit to fetch all balances."),
|
|
13
|
+
}, { readOnlyHint: true, destructiveHint: false }, withErrorHandling(handleGetBalance));
|
|
14
|
+
server.tool("deploy_account", "Deploy the Starknet smart contract account on-chain. Required once before sending transactions. Safe to call multiple times (idempotent) — returns status if already deployed.", {}, { readOnlyHint: false, destructiveHint: true, idempotentHint: true }, withErrorHandling(handleDeployAccount));
|
|
15
|
+
server.tool("send_tokens", "Transfer tokens to a recipient on Starknet. Set simulate=true to estimate fees without executing.", {
|
|
16
|
+
amount: z.string().describe("Amount to send (e.g. '0.1', '100')"),
|
|
17
|
+
token: z.string().describe("Token symbol (e.g. 'STRK', 'ETH', 'USDC')"),
|
|
18
|
+
recipient: z.string().describe("Recipient Starknet address (0x...)"),
|
|
19
|
+
simulate: z
|
|
20
|
+
.boolean()
|
|
21
|
+
.optional()
|
|
22
|
+
.describe("Set true to simulate only — estimates fees without sending a transaction"),
|
|
23
|
+
}, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleSendTokens));
|
|
24
|
+
server.tool("get_portfolio", "Get complete DeFi portfolio overview: all token balances (with USD values), staking positions, and lending positions in one call.", {}, { readOnlyHint: true, destructiveHint: false }, withErrorHandling(handleGetPortfolio));
|
|
25
|
+
return 5;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=wallet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../../src/mcp/tools/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACN,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,UAAU,mBAAmB,CAAC,MAAiB;IACpD,MAAM,CAAC,IAAI,CACV,eAAe,EACf,kIAAkI,EAClI;QACC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;KACrD,EACD,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,EAC9C,iBAAiB,CAAC,iBAAiB,CAAC,CACpC,CAAC;IAEF,MAAM,CAAC,IAAI,CACV,aAAa,EACb,iFAAiF,EACjF;QACC,KAAK,EAAE,CAAC;aACN,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACR,iFAAiF,CACjF;KACF,EACD,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,EAC9C,iBAAiB,CAAC,gBAAgB,CAAC,CACnC,CAAC;IAEF,MAAM,CAAC,IAAI,CACV,gBAAgB,EAChB,gLAAgL,EAChL,EAAE,EACF,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,EACpE,iBAAiB,CAAC,mBAAmB,CAAC,CACtC,CAAC;IAEF,MAAM,CAAC,IAAI,CACV,aAAa,EACb,mGAAmG,EACnG;QACC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;QACjE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;QACvE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;QACpE,QAAQ,EAAE,CAAC;aACT,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CACR,0EAA0E,CAC1E;KACF,EACD,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,EACrE,iBAAiB,CAAC,gBAAgB,CAAC,CACnC,CAAC;IAEF,MAAM,CAAC,IAAI,CACV,eAAe,EACf,mIAAmI,EACnI,EAAE,EACF,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,EAC9C,iBAAiB,CAAC,kBAAkB,CAAC,CACrC,CAAC;IAEF,OAAO,CAAC,CAAC;AACV,CAAC"}
|
package/dist/mcp/tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAoezE,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAMrD"}
|
package/dist/mcp/tools.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { handleGetAuthStatus, handleGetBalance, handleDeployAccount, handleGetSwapQuote, handleSwapTokens, handleSendTokens, handleGetTxStatus, handleStakeTokens, handleUnstakeTokens, handleGetStakingInfo,
|
|
2
|
+
import { handleGetAuthStatus, handleGetBalance, handleDeployAccount, handleGetSwapQuote, handleSwapTokens, handleSendTokens, handleGetTxStatus, handleStakeTokens, handleUnstakeTokens, handleGetStakingInfo, handleGetStakeStatus, handleListPools, handleListValidators, handleClaimRewards, handleCompoundRewards, handleConfigAction, handleListLendingPools, handleGetLendingPosition, handleSupplyAssets, handleWithdrawAssets, handleBorrowAssets, handleRepayDebt, handleClosePosition, handleGetPortfolio, handleGetMultiSwapQuote, handleMultiSwap, handleBatchExecute, } from "./handlers/index.js";
|
|
3
3
|
import { StarkfiError } from "../lib/errors.js";
|
|
4
|
-
// Standardised error handling wrapper for all MCP tools.
|
|
5
4
|
function withErrorHandling(fn) {
|
|
6
5
|
return async (...args) => {
|
|
7
6
|
try {
|
|
@@ -28,13 +27,22 @@ function withErrorHandling(fn) {
|
|
|
28
27
|
}
|
|
29
28
|
};
|
|
30
29
|
}
|
|
31
|
-
|
|
32
|
-
// --- Auth & Generic Info ---
|
|
30
|
+
function registerAuthAndConfigTools(server) {
|
|
33
31
|
server.tool("get_auth_status", "Check authentication status and Fibrous API health on Starknet. Use this to verify the user's active wallet.", {}, { readOnlyHint: true, destructiveHint: false }, withErrorHandling(handleGetAuthStatus));
|
|
32
|
+
server.tool("config_action", "View and modify starkfi global configuration such as active network, RPC URL, and Gas Payment mechanisms.", {
|
|
33
|
+
action: z
|
|
34
|
+
.enum(["list", "set-rpc", "get-rpc", "set-network", "set-gasfree", "set-gas-token"])
|
|
35
|
+
.describe("list: view all. set-gasfree: dev pays gas using paymaster credits. set-gas-token: user pays gas in ERC20 token instead of STRK."),
|
|
36
|
+
value: z
|
|
37
|
+
.string()
|
|
38
|
+
.optional()
|
|
39
|
+
.describe("set-gasfree: 'on'/'off'. set-gas-token: symbol 'USDC'/'ETH' or 'off'. set-rpc: URL string. set-network: 'mainnet'/'sepolia'."),
|
|
40
|
+
}, { readOnlyHint: false, destructiveHint: false }, withErrorHandling(handleConfigAction));
|
|
41
|
+
}
|
|
42
|
+
function registerWalletTools(server) {
|
|
34
43
|
server.tool("get_tx_status", "Check Starknet transaction status by hash. Use this to verify if a recently submitted transaction has been accepted on L2 or L1.", {
|
|
35
44
|
hash: z.string().describe("Transaction hash (0x...)"),
|
|
36
45
|
}, { readOnlyHint: true, destructiveHint: false }, withErrorHandling(handleGetTxStatus));
|
|
37
|
-
// --- Wallet & Assets ---
|
|
38
46
|
server.tool("get_balance", "Get native token and ERC-20 token balances on Starknet for the authorized user.", {
|
|
39
47
|
token: z
|
|
40
48
|
.string()
|
|
@@ -42,24 +50,76 @@ export function registerTools(server) {
|
|
|
42
50
|
.describe("Specific token symbol (e.g. 'STRK', 'ETH', 'USDC'). Omit to fetch all balances."),
|
|
43
51
|
}, { readOnlyHint: true, destructiveHint: false }, withErrorHandling(handleGetBalance));
|
|
44
52
|
server.tool("deploy_account", "Deploy the Starknet smart contract account on-chain. Required once before sending transactions. Safe to call multiple times (idempotent) — returns status if already deployed.", {}, { readOnlyHint: false, destructiveHint: true, idempotentHint: true }, withErrorHandling(handleDeployAccount));
|
|
45
|
-
server.tool("send_tokens", "Transfer tokens to a recipient on Starknet.
|
|
53
|
+
server.tool("send_tokens", "Transfer tokens to a recipient on Starknet. Set simulate=true to estimate fees without executing.", {
|
|
46
54
|
amount: z.string().describe("Amount to send (e.g. '0.1', '100')"),
|
|
47
55
|
token: z.string().describe("Token symbol (e.g. 'STRK', 'ETH', 'USDC')"),
|
|
48
56
|
recipient: z.string().describe("Recipient Starknet address (0x...)"),
|
|
57
|
+
simulate: z
|
|
58
|
+
.boolean()
|
|
59
|
+
.optional()
|
|
60
|
+
.describe("Set true to simulate only — estimates fees without sending a transaction"),
|
|
49
61
|
}, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleSendTokens));
|
|
50
|
-
|
|
62
|
+
server.tool("get_portfolio", "Get complete DeFi portfolio overview: all token balances (with USD values), staking positions, and lending positions in one call.", {}, { readOnlyHint: true, destructiveHint: false }, withErrorHandling(handleGetPortfolio));
|
|
63
|
+
}
|
|
64
|
+
function registerTradeTools(server) {
|
|
51
65
|
server.tool("get_swap_quote", "Get an expected output and route from Fibrous *without* executing the swap. ALWAYS use this BEFORE calling swap_tokens so the user can review the expected output amount and slippage.", {
|
|
52
66
|
amount: z.string().describe("Amount to swap in (e.g. '0.1', '100')"),
|
|
53
67
|
from_token: z.string().describe("Source token symbol to sell (e.g. 'ETH', 'USDC')"),
|
|
54
68
|
to_token: z.string().describe("Destination token symbol to buy (e.g. 'STRK', 'DAI')"),
|
|
55
69
|
}, { readOnlyHint: true, destructiveHint: false }, withErrorHandling(handleGetSwapQuote));
|
|
56
|
-
server.tool("swap_tokens", "Execute a token swap on Starknet using Fibrous aggregation. Finds optimal route and
|
|
70
|
+
server.tool("swap_tokens", "Execute a token swap on Starknet using Fibrous aggregation. Finds optimal route and executes. Set simulate=true to estimate fees without executing. ONLY call this after showing the user a quote via get_swap_quote.", {
|
|
57
71
|
amount: z.string().describe("Amount to swap in (e.g. '0.1', '100')"),
|
|
58
72
|
from_token: z.string().describe("Source token symbol to sell (e.g. 'ETH', 'STRK')"),
|
|
59
73
|
to_token: z.string().describe("Destination token symbol to buy (e.g. 'USDC', 'DAI')"),
|
|
60
|
-
slippage: z.number().optional().describe("Slippage tolerance % (default:
|
|
74
|
+
slippage: z.number().optional().describe("Slippage tolerance % (default: 1)"),
|
|
75
|
+
simulate: z
|
|
76
|
+
.boolean()
|
|
77
|
+
.optional()
|
|
78
|
+
.describe("Set true to simulate only — estimates fees without sending a transaction"),
|
|
61
79
|
}, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleSwapTokens));
|
|
62
|
-
|
|
80
|
+
const swapItemSchema = z.object({
|
|
81
|
+
amount: z.string().describe("Amount to swap in (e.g. '100', '0.5')"),
|
|
82
|
+
from_token: z.string().describe("Source token symbol (e.g. 'USDC', 'ETH')"),
|
|
83
|
+
to_token: z.string().describe("Destination token symbol (e.g. 'ETH', 'STRK')"),
|
|
84
|
+
});
|
|
85
|
+
server.tool("get_multi_swap_quote", "Get quotes for multiple token swaps at once (2-3 pairs). Uses Fibrous batch routing for optimal rates.", {
|
|
86
|
+
swaps: z
|
|
87
|
+
.array(swapItemSchema)
|
|
88
|
+
.min(2)
|
|
89
|
+
.max(3)
|
|
90
|
+
.describe("Array of swap pairs (2-3 items)"),
|
|
91
|
+
}, { readOnlyHint: true, destructiveHint: false }, withErrorHandling(handleGetMultiSwapQuote));
|
|
92
|
+
server.tool("multi_swap", "Execute multiple token swaps in a single transaction (2-3 pairs). Uses Fibrous batch routing. Call get_multi_swap_quote first to preview.", {
|
|
93
|
+
swaps: z
|
|
94
|
+
.array(swapItemSchema)
|
|
95
|
+
.min(2)
|
|
96
|
+
.max(3)
|
|
97
|
+
.describe("Array of swap pairs (2-3 items)"),
|
|
98
|
+
slippage: z.number().optional().describe("Slippage tolerance % (default: 1)"),
|
|
99
|
+
simulate: z
|
|
100
|
+
.boolean()
|
|
101
|
+
.optional()
|
|
102
|
+
.describe("Set true to simulate only — estimates fees without executing"),
|
|
103
|
+
}, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleMultiSwap));
|
|
104
|
+
server.tool("batch_execute", "Execute multiple DeFi operations in a single Starknet transaction (multicall). Supports: swap, stake, supply, send. Requires at least 2 operations.", {
|
|
105
|
+
operations: z
|
|
106
|
+
.array(z.object({
|
|
107
|
+
type: z
|
|
108
|
+
.enum(["swap", "stake", "supply", "send"])
|
|
109
|
+
.describe("Operation type"),
|
|
110
|
+
params: z
|
|
111
|
+
.record(z.string(), z.string())
|
|
112
|
+
.describe("Operation params. swap: {amount, from_token, to_token}. stake: {amount, token?, pool? or validator?}. supply: {amount, token, pool}. send: {amount, token, to}."),
|
|
113
|
+
}))
|
|
114
|
+
.min(2)
|
|
115
|
+
.describe("Array of operations to batch (min 2)"),
|
|
116
|
+
simulate: z
|
|
117
|
+
.boolean()
|
|
118
|
+
.optional()
|
|
119
|
+
.describe("Set true to simulate only — estimates fees without executing"),
|
|
120
|
+
}, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleBatchExecute));
|
|
121
|
+
}
|
|
122
|
+
function registerStakingTools(server) {
|
|
63
123
|
server.tool("list_validators", "List all known Starknet staking validators. Use this FIRST to see available validators and their names before trying to find pools.", {}, { readOnlyHint: true, destructiveHint: false }, withErrorHandling(handleListValidators));
|
|
64
124
|
server.tool("list_pools", "List delegation pools for a specific validator. Look up a validator name via list_validators first.", {
|
|
65
125
|
validator: z
|
|
@@ -69,12 +129,21 @@ export function registerTools(server) {
|
|
|
69
129
|
server.tool("get_staking_info", "Get staking position info (staked balance, unclaimed rewards, total balance, commission, unpooling cooldown) for a specific pool contract.", {
|
|
70
130
|
pool: z.string().describe("Staking pool contract address (0x...)"),
|
|
71
131
|
}, { readOnlyHint: true, destructiveHint: false }, withErrorHandling(handleGetStakingInfo));
|
|
72
|
-
server.tool("
|
|
73
|
-
|
|
74
|
-
|
|
132
|
+
server.tool("get_stake_status", "Scan ALL known validators and pools to return a consolidated staking dashboard with total staked, total rewards, total value, and per-pool breakdown. Use this to give the user a full picture of their staking portfolio.", {
|
|
133
|
+
validator: z
|
|
134
|
+
.string()
|
|
135
|
+
.optional()
|
|
136
|
+
.describe("Optional validator name or staker address to strictly filter results."),
|
|
137
|
+
}, { readOnlyHint: true, destructiveHint: false }, withErrorHandling(handleGetStakeStatus));
|
|
138
|
+
server.tool("stake_tokens", "Stake tokens in a delegation pool on Starknet. Smart stake: auto-detects whether the user needs to enter the pool or just add to an existing delegation. Supports STRK, WBTC, tBTC, SolvBTC, LBTC.", {
|
|
139
|
+
amount: z.string().describe("Amount to stake (e.g. '100', '0.01')"),
|
|
75
140
|
pool: z.string().describe("Staking pool contract address (0x...)"),
|
|
141
|
+
token: z
|
|
142
|
+
.string()
|
|
143
|
+
.optional()
|
|
144
|
+
.describe("Token symbol to stake (default: STRK). Supported: STRK, WBTC, tBTC, SolvBTC, LBTC"),
|
|
76
145
|
}, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleStakeTokens));
|
|
77
|
-
server.tool("unstake_tokens", "Unstake
|
|
146
|
+
server.tool("unstake_tokens", "Unstake tokens from a pool. Unstaking is a TWO-STEP process: 1. call with action='intent', 2. wait for cooldown, 3. call with action='exit' to complete withdrawal.", {
|
|
78
147
|
action: z
|
|
79
148
|
.enum(["intent", "exit"])
|
|
80
149
|
.describe("'intent' strictly starts the unstaking process, 'exit' completes withdrawal after cooldown."),
|
|
@@ -82,30 +151,20 @@ export function registerTools(server) {
|
|
|
82
151
|
amount: z
|
|
83
152
|
.string()
|
|
84
153
|
.optional()
|
|
85
|
-
.describe("Amount
|
|
154
|
+
.describe("Amount to unstake (ONLY required when action='intent')"),
|
|
155
|
+
token: z
|
|
156
|
+
.string()
|
|
157
|
+
.optional()
|
|
158
|
+
.describe("Token symbol (default: STRK). Must match the pool's token."),
|
|
86
159
|
}, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleUnstakeTokens));
|
|
160
|
+
server.tool("claim_rewards", "Extract earned rewards from a staking pool to the user's wallet.", {
|
|
161
|
+
pool: z.string().describe("Staking pool contract address (0x...)"),
|
|
162
|
+
}, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleClaimRewards));
|
|
87
163
|
server.tool("compound_rewards", "Atomically claim staking rewards and re-stake them recursively into the same pool in a single transaction (compound interest).", {
|
|
88
164
|
pool: z.string().describe("Staking pool contract address (0x...)"),
|
|
89
165
|
}, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleCompoundRewards));
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
action: z
|
|
93
|
-
.enum([
|
|
94
|
-
"list",
|
|
95
|
-
"set-rpc",
|
|
96
|
-
"get-rpc",
|
|
97
|
-
"set-network",
|
|
98
|
-
"set-gasfree",
|
|
99
|
-
"set-gas-token",
|
|
100
|
-
"set-gasless",
|
|
101
|
-
])
|
|
102
|
-
.describe("list: view all. set-gasfree: dev pays gas using AVNU credits. set-gas-token: user pays gas in ERC20 token instead of STRK."),
|
|
103
|
-
value: z
|
|
104
|
-
.string()
|
|
105
|
-
.optional()
|
|
106
|
-
.describe("set-gasfree: 'on'/'off'. set-gas-token: symbol 'USDC'/'ETH' or 'off'. set-rpc: URL string. set-network: 'mainnet'/'sepolia'."),
|
|
107
|
-
}, { readOnlyHint: false, destructiveHint: false }, withErrorHandling(handleConfigAction));
|
|
108
|
-
// --- Lending (Vesu V2) ---
|
|
166
|
+
}
|
|
167
|
+
function registerLendingTools(server) {
|
|
109
168
|
server.tool("list_lending_pools", "List available Vesu V2 lending pools on Starknet with their supported collateral/debt pairs. Use this FIRST to discover available pools before supplying, borrowing, or checking positions.", {
|
|
110
169
|
name: z
|
|
111
170
|
.string()
|
|
@@ -115,42 +174,67 @@ export function registerTools(server) {
|
|
|
115
174
|
server.tool("get_lending_position", "Get the user's lending position (supplied collateral and outstanding debt) in a specific Vesu pool.", {
|
|
116
175
|
pool: z
|
|
117
176
|
.string()
|
|
118
|
-
.describe("Pool name (e.g. '
|
|
177
|
+
.describe("Pool name (e.g. 'Prime', 'Re7') or contract address (0x...)"),
|
|
119
178
|
collateral_token: z.string().describe("Collateral token symbol (e.g. 'ETH', 'STRK')"),
|
|
120
|
-
|
|
179
|
+
borrow_token: z
|
|
180
|
+
.string()
|
|
181
|
+
.optional()
|
|
182
|
+
.describe("Borrow token symbol (e.g. 'USDC', 'USDT')"),
|
|
121
183
|
}, { readOnlyHint: true, destructiveHint: false }, withErrorHandling(handleGetLendingPosition));
|
|
122
184
|
server.tool("supply_assets", "Supply (lend) tokens into a Vesu V2 pool to earn interest. The tokens are deposited into the pool's ERC-4626 vToken vault.", {
|
|
123
185
|
pool: z
|
|
124
186
|
.string()
|
|
125
|
-
.describe("Pool name (e.g. '
|
|
187
|
+
.describe("Pool name (e.g. 'Prime', 'Re7') or contract address (0x...)"),
|
|
126
188
|
amount: z.string().describe("Amount to supply (e.g. '100', '0.5')"),
|
|
127
189
|
token: z.string().describe("Token symbol to supply (e.g. 'STRK', 'ETH', 'USDC')"),
|
|
128
190
|
}, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleSupplyAssets));
|
|
129
191
|
server.tool("withdraw_assets", "Withdraw previously supplied tokens from a Vesu V2 lending pool.", {
|
|
130
192
|
pool: z
|
|
131
193
|
.string()
|
|
132
|
-
.describe("Pool name (e.g. '
|
|
194
|
+
.describe("Pool name (e.g. 'Prime', 'Re7') or contract address (0x...)"),
|
|
133
195
|
amount: z.string().describe("Amount to withdraw (e.g. '100', '0.5')"),
|
|
134
196
|
token: z.string().describe("Token symbol to withdraw (e.g. 'STRK', 'ETH', 'USDC')"),
|
|
135
197
|
}, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleWithdrawAssets));
|
|
136
198
|
server.tool("borrow_assets", "Borrow tokens from a Vesu V2 pool by supplying collateral. Atomically deposits collateral and borrows the debt asset in a single transaction.", {
|
|
137
199
|
pool: z
|
|
138
200
|
.string()
|
|
139
|
-
.describe("Pool name (e.g. '
|
|
201
|
+
.describe("Pool name (e.g. 'Prime', 'Re7') or contract address (0x...)"),
|
|
140
202
|
collateral_amount: z.string().describe("Collateral amount to deposit (e.g. '1000')"),
|
|
141
203
|
collateral_token: z.string().describe("Collateral token symbol (e.g. 'STRK', 'ETH')"),
|
|
142
204
|
borrow_amount: z.string().describe("Amount to borrow (e.g. '100')"),
|
|
143
205
|
borrow_token: z.string().describe("Token to borrow (e.g. 'USDC', 'USDT')"),
|
|
206
|
+
use_supplied: z
|
|
207
|
+
.boolean()
|
|
208
|
+
.optional()
|
|
209
|
+
.describe("Set to true to use previously supplied yield tokens as collateral via Multicall instead of transferring fresh tokens from wallet."),
|
|
144
210
|
}, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleBorrowAssets));
|
|
145
211
|
server.tool("repay_debt", "Repay borrowed tokens on an existing Vesu V2 lending position. Approves and repays the specified amount of debt.", {
|
|
146
212
|
pool: z
|
|
147
213
|
.string()
|
|
148
|
-
.describe("Pool name (e.g. '
|
|
214
|
+
.describe("Pool name (e.g. 'Prime', 'Re7') or contract address (0x...)"),
|
|
149
215
|
amount: z.string().describe("Amount to repay (e.g. '50', '100')"),
|
|
150
|
-
token: z.string().describe("
|
|
216
|
+
token: z.string().describe("Token to repay (e.g. 'USDC', 'USDT')"),
|
|
151
217
|
collateral_token: z
|
|
152
218
|
.string()
|
|
153
219
|
.describe("Collateral token of the position (e.g. 'ETH', 'STRK'). Needed to identify the position."),
|
|
154
220
|
}, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleRepayDebt));
|
|
221
|
+
server.tool("close_position", "Atomically close an active Vesu V2 lending position. Repays all outstanding debt and withdraws all collateral in a single transaction.", {
|
|
222
|
+
pool: z
|
|
223
|
+
.string()
|
|
224
|
+
.describe("Pool name (e.g. 'Prime', 'Re7') or contract address (0x...)"),
|
|
225
|
+
collateral_token: z
|
|
226
|
+
.string()
|
|
227
|
+
.describe("Collateral token symbol of the position (e.g. 'STRK', 'ETH')"),
|
|
228
|
+
debt_token: z
|
|
229
|
+
.string()
|
|
230
|
+
.describe("Borrowed token symbol of the position (e.g. 'USDC', 'USDT')"),
|
|
231
|
+
}, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleClosePosition));
|
|
232
|
+
}
|
|
233
|
+
export function registerTools(server) {
|
|
234
|
+
registerAuthAndConfigTools(server);
|
|
235
|
+
registerWalletTools(server);
|
|
236
|
+
registerTradeTools(server);
|
|
237
|
+
registerStakingTools(server);
|
|
238
|
+
registerLendingTools(server);
|
|
155
239
|
}
|
|
156
240
|
//# sourceMappingURL=tools.js.map
|
package/dist/mcp/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACN,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,GACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,yDAAyD;AACzD,SAAS,iBAAiB,CAGxB,EAAK;IACN,OAAO,KAAK,EACX,GAAG,IAAmB,EACmC,EAAE;QAC3D,IAAI,CAAC;YACJ,OAAO,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,cAAc,GAAG,KAAK,YAAY,YAAY,CAAC;YACrD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAEvE,OAAO;gBACN,OAAO,EAAE;oBACR;wBACC,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CACnB;4BACC,OAAO,EAAE,KAAK;4BACd,KAAK,EAAE,OAAO;4BACd,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe;4BACnD,GAAG,CAAC,cAAc,IAAI,KAAK,CAAC,OAAO;gCAClC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE;gCAC5B,CAAC,CAAC,EAAE,CAAC;yBACN,EACD,IAAI,EACJ,CAAC,CACD;qBACD;iBACD;aACD,CAAC;QACH,CAAC;IACF,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAiB;IAC9C,8BAA8B;IAE9B,MAAM,CAAC,IAAI,CACV,iBAAiB,EACjB,8GAA8G,EAC9G,EAAE,EACF,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,EAC9C,iBAAiB,CAAC,mBAAmB,CAAC,CACtC,CAAC;IAEF,MAAM,CAAC,IAAI,CACV,eAAe,EACf,kIAAkI,EAClI;QACC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;KACrD,EACD,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,EAC9C,iBAAiB,CAAC,iBAAiB,CAAC,CACpC,CAAC;IAEF,0BAA0B;IAE1B,MAAM,CAAC,IAAI,CACV,aAAa,EACb,iFAAiF,EACjF;QACC,KAAK,EAAE,CAAC;aACN,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACR,iFAAiF,CACjF;KACF,EACD,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,EAC9C,iBAAiB,CAAC,gBAAgB,CAAC,CACnC,CAAC;IAEF,MAAM,CAAC,IAAI,CACV,gBAAgB,EAChB,gLAAgL,EAChL,EAAE,EACF,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,EACpE,iBAAiB,CAAC,mBAAmB,CAAC,CACtC,CAAC;IAEF,MAAM,CAAC,IAAI,CACV,aAAa,EACb,2HAA2H,EAC3H;QACC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;QACjE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;QACvE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;KACpE,EACD,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,EACrE,iBAAiB,CAAC,gBAAgB,CAAC,CACnC,CAAC;IAEF,gCAAgC;IAEhC,MAAM,CAAC,IAAI,CACV,gBAAgB,EAChB,wLAAwL,EACxL;QACC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;QACpE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;QACnF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;KACrF,EACD,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,EAC9C,iBAAiB,CAAC,kBAAkB,CAAC,CACrC,CAAC;IAEF,MAAM,CAAC,IAAI,CACV,aAAa,EACb,mLAAmL,EACnL;QACC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;QACpE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;QACnF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;QACrF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;KAC/E,EACD,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,EACrE,iBAAiB,CAAC,gBAAgB,CAAC,CACnC,CAAC;IAEF,kBAAkB;IAElB,MAAM,CAAC,IAAI,CACV,iBAAiB,EACjB,qIAAqI,EACrI,EAAE,EACF,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,EAC9C,iBAAiB,CAAC,oBAAoB,CAAC,CACvC,CAAC;IAEF,MAAM,CAAC,IAAI,CACV,YAAY,EACZ,qGAAqG,EACrG;QACC,SAAS,EAAE,CAAC;aACV,MAAM,EAAE;aACR,QAAQ,CACR,wFAAwF,CACxF;KACF,EACD,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,EAC9C,iBAAiB,CAAC,eAAe,CAAC,CAClC,CAAC;IAEF,MAAM,CAAC,IAAI,CACV,kBAAkB,EAClB,4IAA4I,EAC5I;QACC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;KAClE,EACD,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,EAC9C,iBAAiB,CAAC,oBAAoB,CAAC,CACvC,CAAC;IAEF,MAAM,CAAC,IAAI,CACV,sBAAsB,EACtB,4NAA4N,EAC5N,EAAE,EACF,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,EAC9C,iBAAiB,CAAC,wBAAwB,CAAC,CAC3C,CAAC;IAEF,MAAM,CAAC,IAAI,CACV,cAAc,EACd,wJAAwJ,EACxJ;QACC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QACnE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;KAClE,EACD,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,EACrE,iBAAiB,CAAC,iBAAiB,CAAC,CACpC,CAAC;IAEF,MAAM,CAAC,IAAI,CACV,gBAAgB,EAChB,mKAAmK,EACnK;QACC,MAAM,EAAE,CAAC;aACP,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;aACxB,QAAQ,CACR,6FAA6F,CAC7F;QACF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;QAClE,MAAM,EAAE,CAAC;aACP,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,wEAAwE,CAAC;KACpF,EACD,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,EACrE,iBAAiB,CAAC,mBAAmB,CAAC,CACtC,CAAC;IAEF,MAAM,CAAC,IAAI,CACV,kBAAkB,EAClB,gIAAgI,EAChI;QACC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;KAClE,EACD,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,EACrE,iBAAiB,CAAC,qBAAqB,CAAC,CACxC,CAAC;IAEF,6BAA6B;IAE7B,MAAM,CAAC,IAAI,CACV,eAAe,EACf,2GAA2G,EAC3G;QACC,MAAM,EAAE,CAAC;aACP,IAAI,CAAC;YACL,MAAM;YACN,SAAS;YACT,SAAS;YACT,aAAa;YACb,aAAa;YACb,eAAe;YACf,aAAa;SACb,CAAC;aACD,QAAQ,CACR,4HAA4H,CAC5H;QACF,KAAK,EAAE,CAAC;aACN,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACR,8HAA8H,CAC9H;KACF,EACD,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,EAC/C,iBAAiB,CAAC,kBAAkB,CAAC,CACrC,CAAC;IAEF,4BAA4B;IAE5B,MAAM,CAAC,IAAI,CACV,oBAAoB,EACpB,6LAA6L,EAC7L;QACC,IAAI,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,yDAAyD,CAAC;KACrE,EACD,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,EAC9C,iBAAiB,CAAC,sBAAsB,CAAC,CACzC,CAAC;IAEF,MAAM,CAAC,IAAI,CACV,sBAAsB,EACtB,qGAAqG,EACrG;QACC,IAAI,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,CAAC,+DAA+D,CAAC;QAC3E,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;QACrF,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;KAC1E,EACD,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,EAC9C,iBAAiB,CAAC,wBAAwB,CAAC,CAC3C,CAAC;IAEF,MAAM,CAAC,IAAI,CACV,eAAe,EACf,4HAA4H,EAC5H;QACC,IAAI,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,CAAC,+DAA+D,CAAC;QAC3E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QACnE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;KACjF,EACD,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,EACrE,iBAAiB,CAAC,kBAAkB,CAAC,CACrC,CAAC;IAEF,MAAM,CAAC,IAAI,CACV,iBAAiB,EACjB,kEAAkE,EAClE;QACC,IAAI,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,CAAC,+DAA+D,CAAC;QAC3E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;QACrE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;KACnF,EACD,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,EACrE,iBAAiB,CAAC,oBAAoB,CAAC,CACvC,CAAC;IAEF,MAAM,CAAC,IAAI,CACV,eAAe,EACf,+IAA+I,EAC/I;QACC,IAAI,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,CAAC,+DAA+D,CAAC;QAC3E,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;QACpF,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;QACrF,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QACnE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;KAC1E,EACD,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,EACrE,iBAAiB,CAAC,kBAAkB,CAAC,CACrC,CAAC;IAEF,MAAM,CAAC,IAAI,CACV,YAAY,EACZ,kHAAkH,EAClH;QACC,IAAI,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,CAAC,+DAA+D,CAAC;QAC3E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;QACjE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;QACvE,gBAAgB,EAAE,CAAC;aACjB,MAAM,EAAE;aACR,QAAQ,CACR,yFAAyF,CACzF;KACF,EACD,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,EACrE,iBAAiB,CAAC,eAAe,CAAC,CAClC,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,16 +11,4 @@ export interface VerifyResponse {
|
|
|
11
11
|
isExisting: boolean;
|
|
12
12
|
}
|
|
13
13
|
export declare function apiVerify(email: string, code: string): Promise<VerifyResponse>;
|
|
14
|
-
export declare function apiFindWallet(email: string, token: string): Promise<{
|
|
15
|
-
wallet: {
|
|
16
|
-
id: string;
|
|
17
|
-
address: string;
|
|
18
|
-
} | null;
|
|
19
|
-
}>;
|
|
20
|
-
export declare function apiCreateWallet(token: string, userId?: string): Promise<{
|
|
21
|
-
wallet: {
|
|
22
|
-
id: string;
|
|
23
|
-
address: string;
|
|
24
|
-
};
|
|
25
|
-
}>;
|
|
26
14
|
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/services/api/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/services/api/client.ts"],"names":[],"mappings":"AAwEA,wBAAsB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAE5F;AAED,MAAM,WAAW,cAAc;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;CACpB;AAED,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAEpF"}
|
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
import { ErrorCode, StarkfiError } from "../../lib/errors.js";
|
|
2
|
+
import { withRetry } from "../../lib/retry.js";
|
|
2
3
|
import { STARKFI_API_URL_DEFAULT } from "../../lib/config.js";
|
|
3
|
-
|
|
4
|
+
import { fetchWithTimeout } from "../../lib/fetch.js";
|
|
5
|
+
const API_REQUEST_TIMEOUT_MS = 30_000;
|
|
4
6
|
function getBaseUrl() {
|
|
5
7
|
return process.env.STARKFI_API_URL ?? STARKFI_API_URL_DEFAULT;
|
|
6
8
|
}
|
|
7
9
|
async function request(path, body, options) {
|
|
8
10
|
const url = `${getBaseUrl()}${path}`;
|
|
9
|
-
const timeout = options?.timeoutMs ??
|
|
11
|
+
const timeout = options?.timeoutMs ?? API_REQUEST_TIMEOUT_MS;
|
|
10
12
|
const headers = {
|
|
11
13
|
"Content-Type": "application/json",
|
|
12
14
|
};
|
|
13
15
|
if (options?.token) {
|
|
14
16
|
headers.Authorization = `Bearer ${options.token}`;
|
|
15
17
|
}
|
|
16
|
-
const controller = new AbortController();
|
|
17
|
-
const timer = setTimeout(() => controller.abort(), timeout);
|
|
18
18
|
try {
|
|
19
|
-
const res = await
|
|
19
|
+
const res = await withRetry(() => fetchWithTimeout(url, {
|
|
20
20
|
method: "POST",
|
|
21
21
|
headers,
|
|
22
22
|
body: JSON.stringify(body),
|
|
23
|
-
|
|
24
|
-
});
|
|
23
|
+
timeoutMs: timeout,
|
|
24
|
+
}), { retryOnCodes: [ErrorCode.NETWORK_ERROR] });
|
|
25
25
|
if (!res.ok) {
|
|
26
26
|
const errorBody = await res
|
|
27
27
|
.json()
|
|
@@ -40,9 +40,6 @@ async function request(path, body, options) {
|
|
|
40
40
|
}
|
|
41
41
|
throw new StarkfiError(ErrorCode.NETWORK_ERROR, `Failed to connect to starkfi-server at ${getBaseUrl()}. Is the server running?`);
|
|
42
42
|
}
|
|
43
|
-
finally {
|
|
44
|
-
clearTimeout(timer);
|
|
45
|
-
}
|
|
46
43
|
}
|
|
47
44
|
export async function apiLogin(email) {
|
|
48
45
|
return request("/auth/login", { email });
|
|
@@ -50,10 +47,4 @@ export async function apiLogin(email) {
|
|
|
50
47
|
export async function apiVerify(email, code) {
|
|
51
48
|
return request("/auth/verify", { email, code });
|
|
52
49
|
}
|
|
53
|
-
export async function apiFindWallet(email, token) {
|
|
54
|
-
return request("/wallet/find", { email }, { token });
|
|
55
|
-
}
|
|
56
|
-
export async function apiCreateWallet(token, userId) {
|
|
57
|
-
return request("/wallet/create", { userId }, { token });
|
|
58
|
-
}
|
|
59
50
|
//# sourceMappingURL=client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/services/api/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/services/api/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,sBAAsB,GAAG,MAAM,CAAC;AAEtC,SAAS,UAAU;IAClB,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,uBAAuB,CAAC;AAC/D,CAAC;AAOD,KAAK,UAAU,OAAO,CACrB,IAAY,EACZ,IAA6B,EAC7B,OAAoB;IAEpB,MAAM,GAAG,GAAG,GAAG,UAAU,EAAE,GAAG,IAAI,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,OAAO,EAAE,SAAS,IAAI,sBAAsB,CAAC;IAE7D,MAAM,OAAO,GAA2B;QACvC,cAAc,EAAE,kBAAkB;KAClC,CAAC;IAEF,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;QACpB,OAAO,CAAC,aAAa,GAAG,UAAU,OAAO,CAAC,KAAK,EAAE,CAAC;IACnD,CAAC;IAED,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,MAAM,SAAS,CAC1B,GAAG,EAAE,CACJ,gBAAgB,CAAC,GAAG,EAAE;YACrB,MAAM,EAAE,MAAM;YACd,OAAO;YACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1B,SAAS,EAAE,OAAO;SAClB,CAAC,EACH,EAAE,YAAY,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAC3C,CAAC;QAEF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,SAAS,GAAG,MAAM,GAAG;iBACzB,IAAI,EAAE;iBACN,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;YACxD,MAAM,GAAG,GACP,SAA8C,EAAE,KAAK,EAAE,OAAO;gBAC/D,cAAc,GAAG,CAAC,MAAM,GAAG,CAAC;YAC7B,MAAM,IAAI,YAAY,CAAC,SAAS,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;QACtD,CAAC;QAED,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAM,CAAC;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAI,KAAK,YAAY,YAAY;YAAE,MAAM,KAAK,CAAC;QAE/C,IAAI,KAAK,YAAY,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAClE,MAAM,IAAI,YAAY,CACrB,SAAS,CAAC,aAAa,EACvB,cAAc,IAAI,oBAAoB,OAAO,GAAG,IAAI,+BAA+B,CACnF,CAAC;QACH,CAAC;QAED,MAAM,IAAI,YAAY,CACrB,SAAS,CAAC,aAAa,EACvB,0CAA0C,UAAU,EAAE,0BAA0B,CAChF,CAAC;IACH,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,KAAa;IAC3C,OAAO,OAAO,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AAC1C,CAAC;AAWD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,KAAa,EAAE,IAAY;IAC1D,OAAO,OAAO,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACjD,CAAC"}
|
|
@@ -8,13 +8,7 @@ export interface PrivySession {
|
|
|
8
8
|
token: string;
|
|
9
9
|
serverUrl: string;
|
|
10
10
|
}
|
|
11
|
-
export
|
|
12
|
-
type: "local";
|
|
13
|
-
network: "mainnet" | "sepolia";
|
|
14
|
-
address: string;
|
|
15
|
-
privateKey: string;
|
|
16
|
-
}
|
|
17
|
-
export type Session = PrivySession | LocalSession;
|
|
11
|
+
export type Session = PrivySession;
|
|
18
12
|
export declare function loadSession(): Session | null;
|
|
19
13
|
export declare function saveSession(session: Session): void;
|
|
20
14
|
export declare function clearSession(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/services/auth/session.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,SAAS,GAAG,SAAS,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/services/auth/session.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,SAAS,GAAG,SAAS,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,OAAO,GAAG,YAAY,CAAC;AAInC,wBAAgB,WAAW,IAAI,OAAO,GAAG,IAAI,CAS5C;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAMlD;AAED,wBAAgB,YAAY,IAAI,IAAI,CAInC;AAqBD,wBAAgB,cAAc,IAAI,OAAO,CAkBxC"}
|
|
@@ -26,11 +26,32 @@ export function clearSession() {
|
|
|
26
26
|
unlinkSync(SESSION_FILE);
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
+
// Decode JWT payload (no signature verification — client-side expiry check only).
|
|
30
|
+
function isSessionExpired(token) {
|
|
31
|
+
try {
|
|
32
|
+
const parts = token.split(".");
|
|
33
|
+
if (parts.length !== 3 || !parts[1])
|
|
34
|
+
return false;
|
|
35
|
+
const payload = JSON.parse(Buffer.from(parts[1], "base64url").toString());
|
|
36
|
+
if (!payload.exp)
|
|
37
|
+
return false;
|
|
38
|
+
// Buffer before actual expiry to avoid mid-request failures
|
|
39
|
+
const SESSION_EXPIRY_BUFFER_SECONDS = 300;
|
|
40
|
+
return Date.now() >= (payload.exp - SESSION_EXPIRY_BUFFER_SECONDS) * 1000;
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
29
46
|
export function requireSession() {
|
|
30
47
|
const session = loadSession();
|
|
31
48
|
if (!session) {
|
|
32
49
|
throw new StarkfiError(ErrorCode.AUTH_REQUIRED, "Not authenticated. Run 'starkfi auth login <email>' or 'starkfi auth import' first.");
|
|
33
50
|
}
|
|
51
|
+
if (isSessionExpired(session.token)) {
|
|
52
|
+
clearSession();
|
|
53
|
+
throw new StarkfiError(ErrorCode.SESSION_EXPIRED, "Session expired. Please re-authenticate with 'starkfi auth login <email>'");
|
|
54
|
+
}
|
|
34
55
|
return session;
|
|
35
56
|
}
|
|
36
57
|
//# sourceMappingURL=session.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/services/auth/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACzF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/services/auth/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACzF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAe9D,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;AAEpD,MAAM,UAAU,WAAW;IAC1B,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,OAAO,IAAI,CAAC;IAE3C,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAgB;IAC3C,MAAM,GAAG,GAAG,QAAQ,CAAC;IACrB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACtB,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACrC,CAAC;IACD,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,YAAY;IAC3B,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,UAAU,CAAC,YAAY,CAAC,CAAC;IAC1B,CAAC;AACF,CAAC;AAED,kFAAkF;AAClF,SAAS,gBAAgB,CAAC,KAAa;IACtC,IAAI,CAAC;QACJ,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAElD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,QAAQ,EAAE,CAEvE,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,GAAG;YAAE,OAAO,KAAK,CAAC;QAE/B,4DAA4D;QAC5D,MAAM,6BAA6B,GAAG,GAAG,CAAC;QAC1C,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,6BAA6B,CAAC,GAAG,IAAI,CAAC;IAC3E,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAED,MAAM,UAAU,cAAc;IAC7B,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;IAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,MAAM,IAAI,YAAY,CACrB,SAAS,CAAC,aAAa,EACvB,qFAAqF,CACrF,CAAC;IACH,CAAC;IAED,IAAI,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,YAAY,EAAE,CAAC;QACf,MAAM,IAAI,YAAY,CACrB,SAAS,CAAC,eAAe,EACzB,2EAA2E,CAC3E,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AAChB,CAAC"}
|