starkfi 0.1.0 → 0.2.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/MCP.md +70 -0
- package/README.md +120 -58
- 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 +143 -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 +14 -31
- 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 +187 -48
- 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 +142 -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 +140 -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 +45 -10
- 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 +19 -2
- 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 +45 -8
- package/dist/commands/wallet/send.js.map +1 -1
- package/dist/index.js +22 -7
- 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/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/format.d.ts +43 -2
- package/dist/lib/format.d.ts.map +1 -1
- package/dist/lib/format.js +51 -5
- package/dist/lib/format.js.map +1 -1
- package/dist/lib/retry.d.ts +15 -0
- package/dist/lib/retry.d.ts.map +1 -0
- package/dist/lib/retry.js +29 -0
- package/dist/lib/retry.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 +23 -9
- 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 +16 -1
- package/dist/mcp/handlers/wallet.js.map +1 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +102 -33
- 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 +3 -8
- 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 +20 -0
- package/dist/services/auth/session.js.map +1 -1
- package/dist/services/batch/batch.d.ts +36 -0
- package/dist/services/batch/batch.d.ts.map +1 -0
- package/dist/services/batch/batch.js +111 -0
- package/dist/services/batch/batch.js.map +1 -0
- package/dist/services/config/config.d.ts +4 -0
- package/dist/services/config/config.d.ts.map +1 -1
- package/dist/services/config/config.js +31 -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 +19 -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 +35 -0
- package/dist/services/portfolio/portfolio.d.ts.map +1 -0
- package/dist/services/portfolio/portfolio.js +106 -0
- package/dist/services/portfolio/portfolio.js.map +1 -0
- package/dist/services/simulate/simulate.d.ts +18 -0
- package/dist/services/simulate/simulate.d.ts.map +1 -0
- package/dist/services/simulate/simulate.js +61 -0
- package/dist/services/simulate/simulate.js.map +1 -0
- package/dist/services/staking/staking.d.ts +5 -13
- 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.map +1 -1
- package/dist/services/starkzap/client.js +38 -18
- 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 +26 -14
- 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 +97 -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 +8 -1
- package/dist/services/vesu/lending.d.ts.map +1 -1
- package/dist/services/vesu/lending.js +171 -52
- package/dist/services/vesu/lending.js.map +1 -1
- package/dist/services/vesu/pools.d.ts +5 -11
- 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 +63 -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
|
@@ -4,6 +4,7 @@ import { ConfigService } from "../../services/config/config.js";
|
|
|
4
4
|
import { getBalances } from "../../services/tokens/balances.js";
|
|
5
5
|
import { resolveToken } from "../../services/tokens/tokens.js";
|
|
6
6
|
import { Amount, fromAddress } from "starkzap";
|
|
7
|
+
import { simulateTransaction } from "../../services/simulate/simulate.js";
|
|
7
8
|
import { jsonResult } from "./utils.js";
|
|
8
9
|
export async function handleGetBalance(args) {
|
|
9
10
|
const session = requireSession();
|
|
@@ -54,7 +55,21 @@ export async function handleSendTokens(args) {
|
|
|
54
55
|
error: `Insufficient balance. You have: ${balance.toFormatted()}, attempting to send: ${amount.toFormatted()}`,
|
|
55
56
|
});
|
|
56
57
|
}
|
|
57
|
-
const
|
|
58
|
+
const builder = wallet.tx().transfer(token, [{ to: fromAddress(args.recipient), amount }]);
|
|
59
|
+
if (args.simulate) {
|
|
60
|
+
const sim = await simulateTransaction(builder);
|
|
61
|
+
return jsonResult({
|
|
62
|
+
success: sim.success,
|
|
63
|
+
mode: "SIMULATION (no TX sent)",
|
|
64
|
+
amount: `${args.amount} ${args.token.toUpperCase()}`,
|
|
65
|
+
to: args.recipient,
|
|
66
|
+
estimatedFee: sim.estimatedFee,
|
|
67
|
+
estimatedFeeUsd: sim.estimatedFeeUsd,
|
|
68
|
+
callCount: sim.callCount,
|
|
69
|
+
...(sim.revertReason ? { revertReason: sim.revertReason } : {}),
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
const tx = await builder.send();
|
|
58
73
|
await tx.wait();
|
|
59
74
|
return jsonResult({
|
|
60
75
|
success: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../../src/mcp/handlers/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAwB;IAC9D,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAEnD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAChB,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEjD,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACxD,OAAO,UAAU,CAAC;YACjB,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,OAAO,EAAE,aAAa,CAAC,MAAM,EAAE;SAC/B,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3C,OAAO,UAAU,CAAC;QACjB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,QAAQ;KACR,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACxC,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAEnD,MAAM,eAAe,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAElD,IAAI,CAAC,eAAe,EAAE,CAAC;QACtB,MAAM,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,UAAU,CAAC;QACjB,eAAe;QACf,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,OAAO,EAAE,eAAe;YACvB,CAAC,CAAC,gDAAgD;YAClD,CAAC,CAAC,mEAAmE;KACtE,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../../src/mcp/handlers/wallet.ts"],"names":[],"mappings":"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"}
|
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;AAmEzE,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAuZrD"}
|
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 {
|
|
@@ -29,12 +28,10 @@ function withErrorHandling(fn) {
|
|
|
29
28
|
};
|
|
30
29
|
}
|
|
31
30
|
export function registerTools(server) {
|
|
32
|
-
// --- Auth & Generic Info ---
|
|
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));
|
|
34
32
|
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
33
|
hash: z.string().describe("Transaction hash (0x...)"),
|
|
36
34
|
}, { readOnlyHint: true, destructiveHint: false }, withErrorHandling(handleGetTxStatus));
|
|
37
|
-
// --- Wallet & Assets ---
|
|
38
35
|
server.tool("get_balance", "Get native token and ERC-20 token balances on Starknet for the authorized user.", {
|
|
39
36
|
token: z
|
|
40
37
|
.string()
|
|
@@ -42,24 +39,72 @@ export function registerTools(server) {
|
|
|
42
39
|
.describe("Specific token symbol (e.g. 'STRK', 'ETH', 'USDC'). Omit to fetch all balances."),
|
|
43
40
|
}, { readOnlyHint: true, destructiveHint: false }, withErrorHandling(handleGetBalance));
|
|
44
41
|
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.
|
|
42
|
+
server.tool("send_tokens", "Transfer tokens to a recipient on Starknet. Set simulate=true to estimate fees without executing.", {
|
|
46
43
|
amount: z.string().describe("Amount to send (e.g. '0.1', '100')"),
|
|
47
44
|
token: z.string().describe("Token symbol (e.g. 'STRK', 'ETH', 'USDC')"),
|
|
48
45
|
recipient: z.string().describe("Recipient Starknet address (0x...)"),
|
|
46
|
+
simulate: z
|
|
47
|
+
.boolean()
|
|
48
|
+
.optional()
|
|
49
|
+
.describe("Set true to simulate only — estimates fees without sending a transaction"),
|
|
49
50
|
}, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleSendTokens));
|
|
50
|
-
|
|
51
|
+
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));
|
|
51
52
|
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
53
|
amount: z.string().describe("Amount to swap in (e.g. '0.1', '100')"),
|
|
53
54
|
from_token: z.string().describe("Source token symbol to sell (e.g. 'ETH', 'USDC')"),
|
|
54
55
|
to_token: z.string().describe("Destination token symbol to buy (e.g. 'STRK', 'DAI')"),
|
|
55
56
|
}, { readOnlyHint: true, destructiveHint: false }, withErrorHandling(handleGetSwapQuote));
|
|
56
|
-
server.tool("swap_tokens", "Execute a token swap on Starknet using Fibrous aggregation. Finds optimal route and
|
|
57
|
+
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
58
|
amount: z.string().describe("Amount to swap in (e.g. '0.1', '100')"),
|
|
58
59
|
from_token: z.string().describe("Source token symbol to sell (e.g. 'ETH', 'STRK')"),
|
|
59
60
|
to_token: z.string().describe("Destination token symbol to buy (e.g. 'USDC', 'DAI')"),
|
|
60
|
-
slippage: z.number().optional().describe("Slippage tolerance % (default:
|
|
61
|
+
slippage: z.number().optional().describe("Slippage tolerance % (default: 1)"),
|
|
62
|
+
simulate: z
|
|
63
|
+
.boolean()
|
|
64
|
+
.optional()
|
|
65
|
+
.describe("Set true to simulate only — estimates fees without sending a transaction"),
|
|
61
66
|
}, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleSwapTokens));
|
|
62
|
-
|
|
67
|
+
const swapItemSchema = z.object({
|
|
68
|
+
amount: z.string().describe("Amount to swap in (e.g. '100', '0.5')"),
|
|
69
|
+
from_token: z.string().describe("Source token symbol (e.g. 'USDC', 'ETH')"),
|
|
70
|
+
to_token: z.string().describe("Destination token symbol (e.g. 'ETH', 'STRK')"),
|
|
71
|
+
});
|
|
72
|
+
server.tool("get_multi_swap_quote", "Get quotes for multiple token swaps at once (2-3 pairs). Uses Fibrous batch routing for optimal rates.", {
|
|
73
|
+
swaps: z
|
|
74
|
+
.array(swapItemSchema)
|
|
75
|
+
.min(2)
|
|
76
|
+
.max(3)
|
|
77
|
+
.describe("Array of swap pairs (2-3 items)"),
|
|
78
|
+
}, { readOnlyHint: true, destructiveHint: false }, withErrorHandling(handleGetMultiSwapQuote));
|
|
79
|
+
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.", {
|
|
80
|
+
swaps: z
|
|
81
|
+
.array(swapItemSchema)
|
|
82
|
+
.min(2)
|
|
83
|
+
.max(3)
|
|
84
|
+
.describe("Array of swap pairs (2-3 items)"),
|
|
85
|
+
slippage: z.number().optional().describe("Slippage tolerance % (default: 1)"),
|
|
86
|
+
simulate: z
|
|
87
|
+
.boolean()
|
|
88
|
+
.optional()
|
|
89
|
+
.describe("Set true to simulate only — estimates fees without executing"),
|
|
90
|
+
}, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleMultiSwap));
|
|
91
|
+
server.tool("batch_execute", "Execute multiple DeFi operations in a single Starknet transaction (multicall). Supports: swap, stake, supply, send. Requires at least 2 operations.", {
|
|
92
|
+
operations: z
|
|
93
|
+
.array(z.object({
|
|
94
|
+
type: z
|
|
95
|
+
.enum(["swap", "stake", "supply", "send"])
|
|
96
|
+
.describe("Operation type"),
|
|
97
|
+
params: z
|
|
98
|
+
.record(z.string(), z.string())
|
|
99
|
+
.describe("Operation params. swap: {amount, from_token, to_token}. stake: {amount, token?, pool? or validator?}. supply: {amount, token, pool}. send: {amount, token, to}."),
|
|
100
|
+
}))
|
|
101
|
+
.min(2)
|
|
102
|
+
.describe("Array of operations to batch (min 2)"),
|
|
103
|
+
simulate: z
|
|
104
|
+
.boolean()
|
|
105
|
+
.optional()
|
|
106
|
+
.describe("Set true to simulate only — estimates fees without executing"),
|
|
107
|
+
}, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleBatchExecute));
|
|
63
108
|
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
109
|
server.tool("list_pools", "List delegation pools for a specific validator. Look up a validator name via list_validators first.", {
|
|
65
110
|
validator: z
|
|
@@ -69,12 +114,21 @@ export function registerTools(server) {
|
|
|
69
114
|
server.tool("get_staking_info", "Get staking position info (staked balance, unclaimed rewards, total balance, commission, unpooling cooldown) for a specific pool contract.", {
|
|
70
115
|
pool: z.string().describe("Staking pool contract address (0x...)"),
|
|
71
116
|
}, { readOnlyHint: true, destructiveHint: false }, withErrorHandling(handleGetStakingInfo));
|
|
72
|
-
server.tool("
|
|
73
|
-
|
|
74
|
-
|
|
117
|
+
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.", {
|
|
118
|
+
validator: z
|
|
119
|
+
.string()
|
|
120
|
+
.optional()
|
|
121
|
+
.describe("Optional validator name or staker address to strictly filter results."),
|
|
122
|
+
}, { readOnlyHint: true, destructiveHint: false }, withErrorHandling(handleGetStakeStatus));
|
|
123
|
+
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.", {
|
|
124
|
+
amount: z.string().describe("Amount to stake (e.g. '100', '0.01')"),
|
|
75
125
|
pool: z.string().describe("Staking pool contract address (0x...)"),
|
|
126
|
+
token: z
|
|
127
|
+
.string()
|
|
128
|
+
.optional()
|
|
129
|
+
.describe("Token symbol to stake (default: STRK). Supported: STRK, WBTC, tBTC, SolvBTC, LBTC"),
|
|
76
130
|
}, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleStakeTokens));
|
|
77
|
-
server.tool("unstake_tokens", "Unstake
|
|
131
|
+
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
132
|
action: z
|
|
79
133
|
.enum(["intent", "exit"])
|
|
80
134
|
.describe("'intent' strictly starts the unstaking process, 'exit' completes withdrawal after cooldown."),
|
|
@@ -82,30 +136,27 @@ export function registerTools(server) {
|
|
|
82
136
|
amount: z
|
|
83
137
|
.string()
|
|
84
138
|
.optional()
|
|
85
|
-
.describe("Amount
|
|
139
|
+
.describe("Amount to unstake (ONLY required when action='intent')"),
|
|
140
|
+
token: z
|
|
141
|
+
.string()
|
|
142
|
+
.optional()
|
|
143
|
+
.describe("Token symbol (default: STRK). Must match the pool's token."),
|
|
86
144
|
}, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleUnstakeTokens));
|
|
145
|
+
server.tool("claim_rewards", "Extract earned rewards from a staking pool to the user's wallet.", {
|
|
146
|
+
pool: z.string().describe("Staking pool contract address (0x...)"),
|
|
147
|
+
}, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleClaimRewards));
|
|
87
148
|
server.tool("compound_rewards", "Atomically claim staking rewards and re-stake them recursively into the same pool in a single transaction (compound interest).", {
|
|
88
149
|
pool: z.string().describe("Staking pool contract address (0x...)"),
|
|
89
150
|
}, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleCompoundRewards));
|
|
90
|
-
// --- Config / Utilities ---
|
|
91
151
|
server.tool("config_action", "View and modify starkfi global configuration such as active network, RPC URL, and Gas Payment mechanisms.", {
|
|
92
152
|
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."),
|
|
153
|
+
.enum(["list", "set-rpc", "get-rpc", "set-network", "set-gasfree", "set-gas-token"])
|
|
154
|
+
.describe("list: view all. set-gasfree: dev pays gas using paymaster credits. set-gas-token: user pays gas in ERC20 token instead of STRK."),
|
|
103
155
|
value: z
|
|
104
156
|
.string()
|
|
105
157
|
.optional()
|
|
106
158
|
.describe("set-gasfree: 'on'/'off'. set-gas-token: symbol 'USDC'/'ETH' or 'off'. set-rpc: URL string. set-network: 'mainnet'/'sepolia'."),
|
|
107
159
|
}, { readOnlyHint: false, destructiveHint: false }, withErrorHandling(handleConfigAction));
|
|
108
|
-
// --- Lending (Vesu V2) ---
|
|
109
160
|
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
161
|
name: z
|
|
111
162
|
.string()
|
|
@@ -115,42 +166,60 @@ export function registerTools(server) {
|
|
|
115
166
|
server.tool("get_lending_position", "Get the user's lending position (supplied collateral and outstanding debt) in a specific Vesu pool.", {
|
|
116
167
|
pool: z
|
|
117
168
|
.string()
|
|
118
|
-
.describe("Pool name (e.g. '
|
|
169
|
+
.describe("Pool name (e.g. 'Prime', 'Re7') or contract address (0x...)"),
|
|
119
170
|
collateral_token: z.string().describe("Collateral token symbol (e.g. 'ETH', 'STRK')"),
|
|
120
|
-
|
|
171
|
+
borrow_token: z
|
|
172
|
+
.string()
|
|
173
|
+
.optional()
|
|
174
|
+
.describe("Borrow token symbol (e.g. 'USDC', 'USDT')"),
|
|
121
175
|
}, { readOnlyHint: true, destructiveHint: false }, withErrorHandling(handleGetLendingPosition));
|
|
122
176
|
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
177
|
pool: z
|
|
124
178
|
.string()
|
|
125
|
-
.describe("Pool name (e.g. '
|
|
179
|
+
.describe("Pool name (e.g. 'Prime', 'Re7') or contract address (0x...)"),
|
|
126
180
|
amount: z.string().describe("Amount to supply (e.g. '100', '0.5')"),
|
|
127
181
|
token: z.string().describe("Token symbol to supply (e.g. 'STRK', 'ETH', 'USDC')"),
|
|
128
182
|
}, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleSupplyAssets));
|
|
129
183
|
server.tool("withdraw_assets", "Withdraw previously supplied tokens from a Vesu V2 lending pool.", {
|
|
130
184
|
pool: z
|
|
131
185
|
.string()
|
|
132
|
-
.describe("Pool name (e.g. '
|
|
186
|
+
.describe("Pool name (e.g. 'Prime', 'Re7') or contract address (0x...)"),
|
|
133
187
|
amount: z.string().describe("Amount to withdraw (e.g. '100', '0.5')"),
|
|
134
188
|
token: z.string().describe("Token symbol to withdraw (e.g. 'STRK', 'ETH', 'USDC')"),
|
|
135
189
|
}, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleWithdrawAssets));
|
|
136
190
|
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
191
|
pool: z
|
|
138
192
|
.string()
|
|
139
|
-
.describe("Pool name (e.g. '
|
|
193
|
+
.describe("Pool name (e.g. 'Prime', 'Re7') or contract address (0x...)"),
|
|
140
194
|
collateral_amount: z.string().describe("Collateral amount to deposit (e.g. '1000')"),
|
|
141
195
|
collateral_token: z.string().describe("Collateral token symbol (e.g. 'STRK', 'ETH')"),
|
|
142
196
|
borrow_amount: z.string().describe("Amount to borrow (e.g. '100')"),
|
|
143
197
|
borrow_token: z.string().describe("Token to borrow (e.g. 'USDC', 'USDT')"),
|
|
198
|
+
use_supplied: z
|
|
199
|
+
.boolean()
|
|
200
|
+
.optional()
|
|
201
|
+
.describe("Set to true to use previously supplied yield tokens as collateral via Multicall instead of transferring fresh tokens from wallet."),
|
|
144
202
|
}, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleBorrowAssets));
|
|
145
203
|
server.tool("repay_debt", "Repay borrowed tokens on an existing Vesu V2 lending position. Approves and repays the specified amount of debt.", {
|
|
146
204
|
pool: z
|
|
147
205
|
.string()
|
|
148
|
-
.describe("Pool name (e.g. '
|
|
206
|
+
.describe("Pool name (e.g. 'Prime', 'Re7') or contract address (0x...)"),
|
|
149
207
|
amount: z.string().describe("Amount to repay (e.g. '50', '100')"),
|
|
150
|
-
token: z.string().describe("
|
|
208
|
+
token: z.string().describe("Token to repay (e.g. 'USDC', 'USDT')"),
|
|
151
209
|
collateral_token: z
|
|
152
210
|
.string()
|
|
153
211
|
.describe("Collateral token of the position (e.g. 'ETH', 'STRK'). Needed to identify the position."),
|
|
154
212
|
}, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleRepayDebt));
|
|
213
|
+
server.tool("close_position", "Atomically close an active Vesu V2 lending position. Repays all outstanding debt and withdraws all collateral in a single transaction.", {
|
|
214
|
+
pool: z
|
|
215
|
+
.string()
|
|
216
|
+
.describe("Pool name (e.g. 'Prime', 'Re7') or contract address (0x...)"),
|
|
217
|
+
collateral_token: z
|
|
218
|
+
.string()
|
|
219
|
+
.describe("Collateral token symbol of the position (e.g. 'STRK', 'ETH')"),
|
|
220
|
+
debt_token: z
|
|
221
|
+
.string()
|
|
222
|
+
.describe("Borrowed token symbol of the position (e.g. 'USDC', 'USDT')"),
|
|
223
|
+
}, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleClosePosition));
|
|
155
224
|
}
|
|
156
225
|
//# 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":"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"}
|
|
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":"AA4EA,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,4 +1,5 @@
|
|
|
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
|
const REQUEST_TIMEOUT_MS = 30_000;
|
|
4
5
|
function getBaseUrl() {
|
|
@@ -16,12 +17,12 @@ async function request(path, body, options) {
|
|
|
16
17
|
const controller = new AbortController();
|
|
17
18
|
const timer = setTimeout(() => controller.abort(), timeout);
|
|
18
19
|
try {
|
|
19
|
-
const res = await fetch(url, {
|
|
20
|
+
const res = await withRetry(() => fetch(url, {
|
|
20
21
|
method: "POST",
|
|
21
22
|
headers,
|
|
22
23
|
body: JSON.stringify(body),
|
|
23
24
|
signal: controller.signal,
|
|
24
|
-
});
|
|
25
|
+
}), { retryOnCodes: [ErrorCode.NETWORK_ERROR] });
|
|
25
26
|
if (!res.ok) {
|
|
26
27
|
const errorBody = await res
|
|
27
28
|
.json()
|
|
@@ -50,10 +51,4 @@ export async function apiLogin(email) {
|
|
|
50
51
|
export async function apiVerify(email, code) {
|
|
51
52
|
return request("/auth/verify", { email, code });
|
|
52
53
|
}
|
|
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
54
|
//# 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;AAE9D,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAElC,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,kBAAkB,CAAC;IAEzD,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,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;IAE5D,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/services/api/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;AAoBD,wBAAgB,cAAc,IAAI,OAAO,CAkBxC"}
|
|
@@ -26,11 +26,31 @@ 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
|
+
// 5-minute buffer — catch sessions about to expire
|
|
39
|
+
return Date.now() >= (payload.exp - 300) * 1000;
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
29
45
|
export function requireSession() {
|
|
30
46
|
const session = loadSession();
|
|
31
47
|
if (!session) {
|
|
32
48
|
throw new StarkfiError(ErrorCode.AUTH_REQUIRED, "Not authenticated. Run 'starkfi auth login <email>' or 'starkfi auth import' first.");
|
|
33
49
|
}
|
|
50
|
+
if (isSessionExpired(session.token)) {
|
|
51
|
+
clearSession();
|
|
52
|
+
throw new StarkfiError(ErrorCode.SESSION_EXPIRED, "Session expired. Please re-authenticate with 'starkfi auth login <email>'");
|
|
53
|
+
}
|
|
34
54
|
return session;
|
|
35
55
|
}
|
|
36
56
|
//# 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,mDAAmD;QACnD,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;IACjD,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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { TxBuilder, Wallet } from "starkzap";
|
|
2
|
+
import type { Session } from "../auth/session.js";
|
|
3
|
+
export type BatchOperationType = "swap" | "stake" | "supply" | "send";
|
|
4
|
+
export interface BatchSwapParams {
|
|
5
|
+
amount: string;
|
|
6
|
+
from_token: string;
|
|
7
|
+
to_token: string;
|
|
8
|
+
slippage?: number;
|
|
9
|
+
}
|
|
10
|
+
export interface BatchStakeParams {
|
|
11
|
+
amount: string;
|
|
12
|
+
token?: string;
|
|
13
|
+
pool?: string;
|
|
14
|
+
validator?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface BatchSupplyParams {
|
|
17
|
+
amount: string;
|
|
18
|
+
token: string;
|
|
19
|
+
pool: string;
|
|
20
|
+
}
|
|
21
|
+
export interface BatchSendParams {
|
|
22
|
+
amount: string;
|
|
23
|
+
token: string;
|
|
24
|
+
to: string;
|
|
25
|
+
}
|
|
26
|
+
export type BatchParams = BatchSwapParams | BatchStakeParams | BatchSupplyParams | BatchSendParams | Record<string, string>;
|
|
27
|
+
export interface BatchOperation {
|
|
28
|
+
type: BatchOperationType;
|
|
29
|
+
params: BatchParams;
|
|
30
|
+
}
|
|
31
|
+
/** Resolve each operation and chain calls onto a shared TxBuilder. */
|
|
32
|
+
export declare function buildBatch(wallet: Wallet, session: Session, operations: BatchOperation[]): Promise<{
|
|
33
|
+
builder: TxBuilder;
|
|
34
|
+
summary: string[];
|
|
35
|
+
}>;
|
|
36
|
+
//# sourceMappingURL=batch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch.d.ts","sourceRoot":"","sources":["../../../src/services/batch/batch.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAWlD,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEtE,MAAM,WAAW,eAAe;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,eAAe;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;CACX;AAED,MAAM,MAAM,WAAW,GACpB,eAAe,GACf,gBAAgB,GAChB,iBAAiB,GACjB,eAAe,GACf,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE1B,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,WAAW,CAAC;CACpB;AAED,sEAAsE;AACtE,wBAAsB,UAAU,CAC/B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,cAAc,EAAE,GAC1B,OAAO,CAAC;IAAE,OAAO,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAmCpD"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { Amount, fromAddress } from "starkzap";
|
|
2
|
+
import { initSDKAndWallet } from "../starkzap/client.js";
|
|
3
|
+
import { resolveToken } from "../tokens/tokens.js";
|
|
4
|
+
import { getCalldata } from "../fibrous/route.js";
|
|
5
|
+
import { FIBROUS_ROUTER_ADDRESS } from "../fibrous/config.js";
|
|
6
|
+
import { getVTokenAddress, splitU256 } from "../vesu/lending.js";
|
|
7
|
+
import { findValidator } from "../staking/validators.js";
|
|
8
|
+
import { getValidatorPools, resolvePoolForToken } from "../staking/staking.js";
|
|
9
|
+
import { validateAddress } from "../../lib/validation.js";
|
|
10
|
+
import { ErrorCode, StarkfiError } from "../../lib/errors.js";
|
|
11
|
+
/** Resolve each operation and chain calls onto a shared TxBuilder. */
|
|
12
|
+
export async function buildBatch(wallet, session, operations) {
|
|
13
|
+
if (operations.length < 2) {
|
|
14
|
+
throw new StarkfiError(ErrorCode.INVALID_AMOUNT, "Batch requires at least 2 operations. Use individual commands for single operations.");
|
|
15
|
+
}
|
|
16
|
+
const builder = wallet.tx();
|
|
17
|
+
const summary = [];
|
|
18
|
+
for (const op of operations) {
|
|
19
|
+
switch (op.type) {
|
|
20
|
+
case "swap":
|
|
21
|
+
await addSwapCalls(builder, op.params, session);
|
|
22
|
+
break;
|
|
23
|
+
case "stake":
|
|
24
|
+
await addStakeCalls(builder, op.params, wallet, session);
|
|
25
|
+
break;
|
|
26
|
+
case "supply":
|
|
27
|
+
await addSupplyCalls(builder, op.params, wallet);
|
|
28
|
+
break;
|
|
29
|
+
case "send":
|
|
30
|
+
await addSendCalls(builder, op.params);
|
|
31
|
+
break;
|
|
32
|
+
default:
|
|
33
|
+
throw new StarkfiError(ErrorCode.INVALID_CONFIG, `Unknown batch operation type: ${String(op.type)}`);
|
|
34
|
+
}
|
|
35
|
+
summary.push(formatOpSummary(op));
|
|
36
|
+
}
|
|
37
|
+
return { builder, summary };
|
|
38
|
+
}
|
|
39
|
+
async function addSwapCalls(builder, params, session) {
|
|
40
|
+
const tokenIn = await resolveToken(params.from_token);
|
|
41
|
+
const tokenOut = await resolveToken(params.to_token);
|
|
42
|
+
const parsedAmount = Amount.parse(params.amount, tokenIn);
|
|
43
|
+
const rawAmount = parsedAmount.toBase().toString();
|
|
44
|
+
const cd = await getCalldata(tokenIn, tokenOut, rawAmount, params.slippage ?? 1, session.address);
|
|
45
|
+
builder.approve(tokenIn, fromAddress(FIBROUS_ROUTER_ADDRESS), parsedAmount).add({
|
|
46
|
+
contractAddress: FIBROUS_ROUTER_ADDRESS,
|
|
47
|
+
entrypoint: "swap",
|
|
48
|
+
calldata: cd.calldata,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
async function addStakeCalls(builder, params, wallet, session) {
|
|
52
|
+
const tokenSymbol = (params.token ?? "STRK").toUpperCase();
|
|
53
|
+
const token = await resolveToken(tokenSymbol);
|
|
54
|
+
const parsedAmount = Amount.parse(params.amount, token);
|
|
55
|
+
let poolAddress = params.pool;
|
|
56
|
+
if (!poolAddress && params.validator) {
|
|
57
|
+
const { sdk } = await initSDKAndWallet(session);
|
|
58
|
+
const validator = findValidator(params.validator, session.network);
|
|
59
|
+
if (!validator) {
|
|
60
|
+
throw new StarkfiError(ErrorCode.VALIDATOR_NOT_FOUND, `Validator '${params.validator}' not found`);
|
|
61
|
+
}
|
|
62
|
+
const pools = await getValidatorPools(sdk, validator.stakerAddress.toString());
|
|
63
|
+
const matched = resolvePoolForToken(pools, tokenSymbol);
|
|
64
|
+
poolAddress = matched.poolContract;
|
|
65
|
+
}
|
|
66
|
+
if (!poolAddress) {
|
|
67
|
+
throw new StarkfiError(ErrorCode.INVALID_CONFIG, "Stake operation requires pool or validator");
|
|
68
|
+
}
|
|
69
|
+
builder.stake(fromAddress(validateAddress(poolAddress)), parsedAmount);
|
|
70
|
+
}
|
|
71
|
+
async function addSupplyCalls(builder, params, wallet) {
|
|
72
|
+
const token = await resolveToken(params.token);
|
|
73
|
+
const parsedAmount = Amount.parse(params.amount, token);
|
|
74
|
+
const userAddress = wallet.address.toString();
|
|
75
|
+
const vTokenAddress = await getVTokenAddress(wallet, params.pool, token);
|
|
76
|
+
builder.approve(token, fromAddress(vTokenAddress), parsedAmount).add({
|
|
77
|
+
contractAddress: fromAddress(vTokenAddress),
|
|
78
|
+
entrypoint: "deposit",
|
|
79
|
+
calldata: [...splitU256(parsedAmount.toBase()), userAddress],
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
async function addSendCalls(builder, params) {
|
|
83
|
+
const token = await resolveToken(params.token);
|
|
84
|
+
const parsedAmount = Amount.parse(params.amount, token);
|
|
85
|
+
const validatedTo = validateAddress(params.to);
|
|
86
|
+
builder.transfer(token, { to: fromAddress(validatedTo), amount: parsedAmount });
|
|
87
|
+
}
|
|
88
|
+
function formatOpSummary(op) {
|
|
89
|
+
const p = op.params;
|
|
90
|
+
switch (op.type) {
|
|
91
|
+
case "swap": {
|
|
92
|
+
const s = p;
|
|
93
|
+
return `swap ${s.amount} ${s.from_token.toUpperCase()} → ${s.to_token.toUpperCase()}`;
|
|
94
|
+
}
|
|
95
|
+
case "stake": {
|
|
96
|
+
const s = p;
|
|
97
|
+
return `stake ${s.amount} ${(s.token ?? "STRK").toUpperCase()}`;
|
|
98
|
+
}
|
|
99
|
+
case "supply": {
|
|
100
|
+
const s = p;
|
|
101
|
+
return `supply ${s.amount} ${s.token.toUpperCase()}`;
|
|
102
|
+
}
|
|
103
|
+
case "send": {
|
|
104
|
+
const s = p;
|
|
105
|
+
return `send ${s.amount} ${s.token.toUpperCase()} → ${s.to.slice(0, 10)}…`;
|
|
106
|
+
}
|
|
107
|
+
default:
|
|
108
|
+
return `${op.type}: ${JSON.stringify(p)}`;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=batch.js.map
|