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.
Files changed (195) hide show
  1. package/MCP.md +70 -0
  2. package/README.md +120 -58
  3. package/dist/commands/auth/login.js +2 -2
  4. package/dist/commands/auth/login.js.map +1 -1
  5. package/dist/commands/auth/verify.d.ts.map +1 -1
  6. package/dist/commands/auth/verify.js +2 -2
  7. package/dist/commands/auth/verify.js.map +1 -1
  8. package/dist/commands/batch/batch.d.ts +3 -0
  9. package/dist/commands/batch/batch.d.ts.map +1 -0
  10. package/dist/commands/batch/batch.js +143 -0
  11. package/dist/commands/batch/batch.js.map +1 -0
  12. package/dist/commands/chain/tx-status.js +2 -2
  13. package/dist/commands/chain/tx-status.js.map +1 -1
  14. package/dist/commands/config/config.d.ts.map +1 -1
  15. package/dist/commands/config/config.js +14 -31
  16. package/dist/commands/config/config.js.map +1 -1
  17. package/dist/commands/lending/lending.d.ts +1 -0
  18. package/dist/commands/lending/lending.d.ts.map +1 -1
  19. package/dist/commands/lending/lending.js +187 -48
  20. package/dist/commands/lending/lending.js.map +1 -1
  21. package/dist/commands/portfolio/portfolio.d.ts +3 -0
  22. package/dist/commands/portfolio/portfolio.d.ts.map +1 -0
  23. package/dist/commands/portfolio/portfolio.js +76 -0
  24. package/dist/commands/portfolio/portfolio.js.map +1 -0
  25. package/dist/commands/staking/staking.d.ts +1 -1
  26. package/dist/commands/staking/staking.d.ts.map +1 -1
  27. package/dist/commands/staking/staking.js +142 -61
  28. package/dist/commands/staking/staking.js.map +1 -1
  29. package/dist/commands/trade/multi-swap.d.ts +3 -0
  30. package/dist/commands/trade/multi-swap.d.ts.map +1 -0
  31. package/dist/commands/trade/multi-swap.js +140 -0
  32. package/dist/commands/trade/multi-swap.js.map +1 -0
  33. package/dist/commands/trade/status.js +2 -2
  34. package/dist/commands/trade/status.js.map +1 -1
  35. package/dist/commands/trade/swap.d.ts.map +1 -1
  36. package/dist/commands/trade/swap.js +45 -10
  37. package/dist/commands/trade/swap.js.map +1 -1
  38. package/dist/commands/wallet/balance.d.ts.map +1 -1
  39. package/dist/commands/wallet/balance.js +19 -2
  40. package/dist/commands/wallet/balance.js.map +1 -1
  41. package/dist/commands/wallet/deploy.d.ts.map +1 -1
  42. package/dist/commands/wallet/deploy.js +2 -1
  43. package/dist/commands/wallet/deploy.js.map +1 -1
  44. package/dist/commands/wallet/send.d.ts.map +1 -1
  45. package/dist/commands/wallet/send.js +45 -8
  46. package/dist/commands/wallet/send.js.map +1 -1
  47. package/dist/index.js +22 -7
  48. package/dist/index.js.map +1 -1
  49. package/dist/lib/banner.d.ts +6 -0
  50. package/dist/lib/banner.d.ts.map +1 -0
  51. package/dist/lib/banner.js +78 -0
  52. package/dist/lib/banner.js.map +1 -0
  53. package/dist/lib/config.d.ts +0 -11
  54. package/dist/lib/config.d.ts.map +1 -1
  55. package/dist/lib/config.js +0 -20
  56. package/dist/lib/config.js.map +1 -1
  57. package/dist/lib/errors.d.ts +2 -0
  58. package/dist/lib/errors.d.ts.map +1 -1
  59. package/dist/lib/errors.js +2 -0
  60. package/dist/lib/errors.js.map +1 -1
  61. package/dist/lib/format.d.ts +43 -2
  62. package/dist/lib/format.d.ts.map +1 -1
  63. package/dist/lib/format.js +51 -5
  64. package/dist/lib/format.js.map +1 -1
  65. package/dist/lib/retry.d.ts +15 -0
  66. package/dist/lib/retry.d.ts.map +1 -0
  67. package/dist/lib/retry.js +29 -0
  68. package/dist/lib/retry.js.map +1 -0
  69. package/dist/lib/validation.d.ts +0 -12
  70. package/dist/lib/validation.d.ts.map +1 -1
  71. package/dist/lib/validation.js +1 -23
  72. package/dist/lib/validation.js.map +1 -1
  73. package/dist/mcp/handlers/batch.d.ts +13 -0
  74. package/dist/mcp/handlers/batch.d.ts.map +1 -0
  75. package/dist/mcp/handlers/batch.js +33 -0
  76. package/dist/mcp/handlers/batch.js.map +1 -0
  77. package/dist/mcp/handlers/config.d.ts +1 -1
  78. package/dist/mcp/handlers/config.d.ts.map +1 -1
  79. package/dist/mcp/handlers/config.js +11 -12
  80. package/dist/mcp/handlers/config.js.map +1 -1
  81. package/dist/mcp/handlers/index.d.ts +3 -0
  82. package/dist/mcp/handlers/index.d.ts.map +1 -1
  83. package/dist/mcp/handlers/index.js +3 -0
  84. package/dist/mcp/handlers/index.js.map +1 -1
  85. package/dist/mcp/handlers/lending.d.ts +12 -1
  86. package/dist/mcp/handlers/lending.d.ts.map +1 -1
  87. package/dist/mcp/handlers/lending.js +67 -23
  88. package/dist/mcp/handlers/lending.js.map +1 -1
  89. package/dist/mcp/handlers/multi-swap.d.ts +27 -0
  90. package/dist/mcp/handlers/multi-swap.d.ts.map +1 -0
  91. package/dist/mcp/handlers/multi-swap.js +73 -0
  92. package/dist/mcp/handlers/multi-swap.js.map +1 -0
  93. package/dist/mcp/handlers/portfolio.d.ts +7 -0
  94. package/dist/mcp/handlers/portfolio.d.ts.map +1 -0
  95. package/dist/mcp/handlers/portfolio.js +11 -0
  96. package/dist/mcp/handlers/portfolio.js.map +1 -0
  97. package/dist/mcp/handlers/staking.d.ts +13 -1
  98. package/dist/mcp/handlers/staking.d.ts.map +1 -1
  99. package/dist/mcp/handlers/staking.js +18 -5
  100. package/dist/mcp/handlers/staking.js.map +1 -1
  101. package/dist/mcp/handlers/trade.d.ts +1 -0
  102. package/dist/mcp/handlers/trade.d.ts.map +1 -1
  103. package/dist/mcp/handlers/trade.js +23 -9
  104. package/dist/mcp/handlers/trade.js.map +1 -1
  105. package/dist/mcp/handlers/wallet.d.ts +1 -0
  106. package/dist/mcp/handlers/wallet.d.ts.map +1 -1
  107. package/dist/mcp/handlers/wallet.js +16 -1
  108. package/dist/mcp/handlers/wallet.js.map +1 -1
  109. package/dist/mcp/tools.d.ts.map +1 -1
  110. package/dist/mcp/tools.js +102 -33
  111. package/dist/mcp/tools.js.map +1 -1
  112. package/dist/services/api/client.d.ts +0 -12
  113. package/dist/services/api/client.d.ts.map +1 -1
  114. package/dist/services/api/client.js +3 -8
  115. package/dist/services/api/client.js.map +1 -1
  116. package/dist/services/auth/session.d.ts +1 -7
  117. package/dist/services/auth/session.d.ts.map +1 -1
  118. package/dist/services/auth/session.js +20 -0
  119. package/dist/services/auth/session.js.map +1 -1
  120. package/dist/services/batch/batch.d.ts +36 -0
  121. package/dist/services/batch/batch.d.ts.map +1 -0
  122. package/dist/services/batch/batch.js +111 -0
  123. package/dist/services/batch/batch.js.map +1 -0
  124. package/dist/services/config/config.d.ts +4 -0
  125. package/dist/services/config/config.d.ts.map +1 -1
  126. package/dist/services/config/config.js +31 -1
  127. package/dist/services/config/config.js.map +1 -1
  128. package/dist/services/fibrous/config.d.ts +4 -0
  129. package/dist/services/fibrous/config.d.ts.map +1 -0
  130. package/dist/services/fibrous/config.js +4 -0
  131. package/dist/services/fibrous/config.js.map +1 -0
  132. package/dist/services/fibrous/health.js +1 -1
  133. package/dist/services/fibrous/health.js.map +1 -1
  134. package/dist/services/fibrous/route.d.ts +19 -6
  135. package/dist/services/fibrous/route.d.ts.map +1 -1
  136. package/dist/services/fibrous/route.js +64 -3
  137. package/dist/services/fibrous/route.js.map +1 -1
  138. package/dist/services/portfolio/portfolio.d.ts +35 -0
  139. package/dist/services/portfolio/portfolio.d.ts.map +1 -0
  140. package/dist/services/portfolio/portfolio.js +106 -0
  141. package/dist/services/portfolio/portfolio.js.map +1 -0
  142. package/dist/services/simulate/simulate.d.ts +18 -0
  143. package/dist/services/simulate/simulate.d.ts.map +1 -0
  144. package/dist/services/simulate/simulate.js +61 -0
  145. package/dist/services/simulate/simulate.js.map +1 -0
  146. package/dist/services/staking/staking.d.ts +5 -13
  147. package/dist/services/staking/staking.d.ts.map +1 -1
  148. package/dist/services/staking/staking.js +44 -52
  149. package/dist/services/staking/staking.js.map +1 -1
  150. package/dist/services/starkzap/client.d.ts.map +1 -1
  151. package/dist/services/starkzap/client.js +38 -18
  152. package/dist/services/starkzap/client.js.map +1 -1
  153. package/dist/services/starkzap/config.d.ts +6 -0
  154. package/dist/services/starkzap/config.d.ts.map +1 -0
  155. package/dist/services/starkzap/config.js +13 -0
  156. package/dist/services/starkzap/config.js.map +1 -0
  157. package/dist/services/tokens/balances.d.ts.map +1 -1
  158. package/dist/services/tokens/balances.js +26 -14
  159. package/dist/services/tokens/balances.js.map +1 -1
  160. package/dist/services/tokens/tokens.d.ts +2 -3
  161. package/dist/services/tokens/tokens.d.ts.map +1 -1
  162. package/dist/services/tokens/tokens.js +3 -8
  163. package/dist/services/tokens/tokens.js.map +1 -1
  164. package/dist/services/vesu/api.d.ts +28 -0
  165. package/dist/services/vesu/api.d.ts.map +1 -0
  166. package/dist/services/vesu/api.js +97 -0
  167. package/dist/services/vesu/api.js.map +1 -0
  168. package/dist/services/vesu/config.d.ts +9 -0
  169. package/dist/services/vesu/config.d.ts.map +1 -0
  170. package/dist/services/vesu/config.js +32 -0
  171. package/dist/services/vesu/config.js.map +1 -0
  172. package/dist/services/vesu/index.d.ts +2 -0
  173. package/dist/services/vesu/index.d.ts.map +1 -1
  174. package/dist/services/vesu/index.js +2 -0
  175. package/dist/services/vesu/index.js.map +1 -1
  176. package/dist/services/vesu/lending.d.ts +8 -1
  177. package/dist/services/vesu/lending.d.ts.map +1 -1
  178. package/dist/services/vesu/lending.js +171 -52
  179. package/dist/services/vesu/lending.js.map +1 -1
  180. package/dist/services/vesu/pools.d.ts +5 -11
  181. package/dist/services/vesu/pools.d.ts.map +1 -1
  182. package/dist/services/vesu/pools.js +11 -31
  183. package/dist/services/vesu/pools.js.map +1 -1
  184. package/package.json +88 -82
  185. package/skills/README.md +63 -0
  186. package/skills/authenticate-wallet/SKILL.md +119 -0
  187. package/skills/balance/SKILL.md +80 -0
  188. package/skills/batch/SKILL.md +118 -0
  189. package/skills/config/SKILL.md +144 -0
  190. package/skills/lending/SKILL.md +209 -0
  191. package/skills/multi-swap/SKILL.md +95 -0
  192. package/skills/portfolio/SKILL.md +82 -0
  193. package/skills/send/SKILL.md +82 -0
  194. package/skills/staking/SKILL.md +188 -0
  195. package/skills/trade/SKILL.md +92 -0
@@ -1,6 +1,6 @@
1
1
  import { ConfigService } from "../../services/config/config.js";
2
2
  import { success, formatResult, warn } from "../../lib/format.js";
3
- import { GASLESS_SUPPORTED_TOKENS } from "../../lib/config.js";
3
+ import { GASLESS_SUPPORTED_TOKENS } from "../../services/starkzap/config.js";
4
4
  export function registerConfigCommand(program) {
5
5
  const configCmd = program.command("config").description("Manage starkfi configuration");
6
6
  configCmd
@@ -35,10 +35,10 @@ export function registerConfigCommand(program) {
35
35
  configService.set("network", network);
36
36
  console.log(success(`Network set to: ${network}`));
37
37
  });
38
- // Gasfree mode: developer sponsors gas via AVNU API key
38
+ // Gasfree mode: developer sponsors gas via Paymaster API key
39
39
  configCmd
40
40
  .command("set-gasfree")
41
- .description("Enable/disable Gasfree mode — developer sponsors all gas costs via AVNU Paymaster")
41
+ .description("Enable/disable Gasfree mode — developer sponsors all gas costs via Paymaster")
42
42
  .argument("<mode>", "on or off")
43
43
  .action((mode) => {
44
44
  if (!["on", "off"].includes(mode)) {
@@ -50,39 +50,22 @@ export function registerConfigCommand(program) {
50
50
  if (mode === "on") {
51
51
  // Gasfree and Gasless are mutually exclusive
52
52
  configService.delete("gasToken");
53
- console.log(success("Gasfree mode: on (developer sponsors gas via AVNU)"));
53
+ console.log(success("Gasfree mode: on (developer sponsors gas via Paymaster)"));
54
54
  }
55
55
  else {
56
- console.log(success("Gasfree mode: off"));
56
+ console.log(success("Gasfree mode: off — using gasless mode (default: STRK)"));
57
57
  }
58
58
  });
59
- // Kept as hidden alias for backwards compatibility
60
- configCmd
61
- .command("set-gasless", { hidden: true })
62
- .description("Alias for set-gasfree (deprecated)")
63
- .argument("<mode>", "on or off")
64
- .action((mode) => {
65
- if (!["on", "off"].includes(mode)) {
66
- console.log(warn("Mode must be 'on' or 'off'"));
67
- process.exit(1);
68
- }
69
- const configService = ConfigService.getInstance();
70
- configService.set("gasfreeMode", mode === "on");
71
- if (mode === "on")
72
- configService.delete("gasToken");
73
- console.log(warn("Hint: 'set-gasless' is deprecated. Use 'starkfi config set-gasfree' instead."));
74
- console.log(success(`Gasfree mode: ${mode}`));
75
- });
76
- // Gasless mode: user pays gas in a non-STRK token
59
+ // Gas token selection: default is STRK, user can switch to any supported token
77
60
  configCmd
78
61
  .command("set-gas-token")
79
- .description(`Set gas payment token for Gasless mode — user pays gas in this token instead of STRK.\nSupported: ${GASLESS_SUPPORTED_TOKENS.join(", ")}\nUse 'off' to disable Gasless mode.`)
80
- .argument("<token>", `Token symbol or 'off'. Supported: ${GASLESS_SUPPORTED_TOKENS.join(", ")}`)
62
+ .description(`Set gas payment token via Paymaster.\nDefault: STRK. Supported: ${GASLESS_SUPPORTED_TOKENS.join(", ")}\nUse 'reset' to revert to STRK.`)
63
+ .argument("<token>", `Token symbol or 'reset'. Supported: ${GASLESS_SUPPORTED_TOKENS.join(", ")}`)
81
64
  .action((token) => {
82
65
  const configService = ConfigService.getInstance();
83
- if (token.toLowerCase() === "off") {
66
+ if (["off", "reset", "default"].includes(token.toLowerCase())) {
84
67
  configService.delete("gasToken");
85
- console.log(success("Gasless mode disabled — reverting to default STRK gas"));
68
+ console.log(success("Gas token reset to default: STRK"));
86
69
  return;
87
70
  }
88
71
  const upper = token.toUpperCase();
@@ -93,7 +76,7 @@ export function registerConfigCommand(program) {
93
76
  // Gasless and Gasfree are mutually exclusive
94
77
  configService.delete("gasfreeMode");
95
78
  configService.set("gasToken", upper);
96
- console.log(success(`Gasless mode: on — gas will be paid in ${upper} (no STRK needed)`));
79
+ console.log(success(`Gas token set to: ${upper} — gas will be paid in ${upper} via Paymaster`));
97
80
  });
98
81
  configCmd
99
82
  .command("list")
@@ -108,11 +91,11 @@ export function registerConfigCommand(program) {
108
91
  // Human-readable fee mode summary
109
92
  const gasfreeMode = all.gasfreeMode === true;
110
93
  const gasToken = all.gasToken;
111
- let feeModeSummary = "default (pays STRK)";
94
+ let feeModeSummary = "gasless (pays STRK via Paymaster)";
112
95
  if (gasfreeMode)
113
- feeModeSummary = "gasfree (developer-sponsored via AVNU)";
96
+ feeModeSummary = "gasfree (developer-sponsored via Paymaster)";
114
97
  else if (gasToken)
115
- feeModeSummary = `gasless (user pays in ${gasToken})`;
98
+ feeModeSummary = `gasless (pays ${gasToken} via Paymaster)`;
116
99
  console.log(formatResult({
117
100
  ...all,
118
101
  feeMode: feeModeSummary,
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/commands/config/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/commands/config/config.ts"],"names":[],"mappings":"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"}
@@ -4,5 +4,6 @@ export declare function registerLendSupplyCommand(program: Command): void;
4
4
  export declare function registerLendWithdrawCommand(program: Command): void;
5
5
  export declare function registerLendBorrowCommand(program: Command): void;
6
6
  export declare function registerLendRepayCommand(program: Command): void;
7
+ export declare function registerLendCloseCommand(program: Command): void;
7
8
  export declare function registerLendStatusCommand(program: Command): void;
8
9
  //# sourceMappingURL=lending.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lending.d.ts","sourceRoot":"","sources":["../../../src/commands/lending/lending.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAczC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuC/D;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoChE;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyClE;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmDhE;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8C/D;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4ChE"}
1
+ {"version":3,"file":"lending.d.ts","sourceRoot":"","sources":["../../../src/commands/lending/lending.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqCzC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+G/D;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqChE;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqClE;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsEhE;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0C/D;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0C/D;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwFhE"}
@@ -1,25 +1,40 @@
1
1
  import { requireSession } from "../../services/auth/session.js";
2
2
  import { initSDKAndWallet } from "../../services/starkzap/client.js";
3
3
  import * as lendingService from "../../services/vesu/lending.js";
4
- import { getVesuPools, findVesuPool } from "../../services/vesu/pools.js";
4
+ import chalk from "chalk";
5
+ import { getVesuPools, findPoolEntry } from "../../services/vesu/pools.js";
5
6
  import { createSpinner, formatResult, formatTable } from "../../lib/format.js";
6
7
  import { validateAddress } from "../../lib/validation.js";
7
8
  function resolvePoolAddress(poolQuery, network) {
8
- const found = findVesuPool(poolQuery, network);
9
+ const found = findPoolEntry(poolQuery, network);
9
10
  if (found)
10
- return found.poolContract;
11
- return validateAddress(poolQuery);
11
+ return { address: found.address, name: found.name };
12
+ return { address: validateAddress(poolQuery), name: null };
13
+ }
14
+ function handleLendingError(error) {
15
+ const msg = error instanceof Error ? error.message : String(error);
16
+ if (msg.includes("dusty-collateral-balance")) {
17
+ console.error(chalk.red("Error:"), "The collateral amount is below the pool's minimum dollar value limit (dust limit). Please increase the amount.");
18
+ }
19
+ else if (msg.includes("dusty-debt-balance")) {
20
+ console.error(chalk.red("Error:"), "The borrow amount is below the pool's minimum dollar value limit (dust limit). Please increase the amount.");
21
+ }
22
+ else {
23
+ console.error(msg);
24
+ }
25
+ process.exit(1);
12
26
  }
13
27
  export function registerLendPoolsCommand(program) {
14
28
  program
15
29
  .command("lend-pools")
16
30
  .description("List available Vesu V2 lending pools")
17
- .argument("[name]", "Filter pools by name (partial match)")
18
- .action(async (name) => {
31
+ .argument("[name]", "Filter pools by name (partial match, shows details)")
32
+ .option("--json", "Output raw JSON")
33
+ .action(async (name, opts) => {
19
34
  const spinner = createSpinner("Fetching Vesu pools...").start();
20
35
  try {
21
36
  const session = requireSession();
22
- let pools = getVesuPools(session.network);
37
+ let pools = await getVesuPools(session.network);
23
38
  if (name) {
24
39
  const lower = name.toLowerCase();
25
40
  pools = pools.filter((p) => p.name.toLowerCase().includes(lower));
@@ -29,11 +44,65 @@ export function registerLendPoolsCommand(program) {
29
44
  return;
30
45
  }
31
46
  spinner.succeed(`Found ${pools.length} pool(s)`);
32
- console.log(formatTable(["Name", "Pool Address", "Pairs"], pools.map((p) => [
47
+ if (opts.json) {
48
+ console.log(JSON.stringify({
49
+ pools: pools.map((p) => ({
50
+ name: p.name,
51
+ version: p.protocolVersion,
52
+ address: p.address,
53
+ assets: p.assets,
54
+ pairs: p.pairs,
55
+ })),
56
+ }, null, 2));
57
+ return;
58
+ }
59
+ if (name && pools.length <= 2) {
60
+ for (const pool of pools) {
61
+ console.log("");
62
+ console.log(chalk.bold.cyan(` ${pool.name}`) +
63
+ chalk.dim(` (${pool.protocolVersion})`));
64
+ console.log(chalk.gray(` ${pool.address}`));
65
+ if (pool.assets.length > 0) {
66
+ console.log("");
67
+ console.log(chalk.bold(" Assets:"));
68
+ for (const a of pool.assets) {
69
+ const borrowLabel = a.canBeBorrowed
70
+ ? chalk.green("borrowable")
71
+ : chalk.dim("supply-only");
72
+ console.log(` ${chalk.white(a.symbol.padEnd(12))} ` +
73
+ `${chalk.gray("Supply APY")} ${chalk.yellow(a.supplyApy.padEnd(8))} ` +
74
+ `${chalk.gray("Borrow APR")} ${chalk.yellow(a.borrowApr.padEnd(8))} ` +
75
+ `${borrowLabel}`);
76
+ }
77
+ }
78
+ if (pool.pairs.length > 0) {
79
+ console.log("");
80
+ console.log(chalk.bold(` Pairs (${pool.pairs.length}):`));
81
+ const pairStrs = pool.pairs.map((p) => `${p.collateralSymbol}/${p.debtSymbol}`);
82
+ const lines = [];
83
+ let current = " ";
84
+ for (const pair of pairStrs) {
85
+ if (current.length + pair.length + 2 > 80 && current.trim()) {
86
+ lines.push(current);
87
+ current = " ";
88
+ }
89
+ current += (current.trim() ? ", " : "") + pair;
90
+ }
91
+ if (current.trim())
92
+ lines.push(current);
93
+ console.log(chalk.white(lines.join("\n")));
94
+ }
95
+ }
96
+ console.log("");
97
+ return;
98
+ }
99
+ console.log(formatTable(["Name", "Version", "Assets", "Pairs"], pools.map((p) => [
33
100
  p.name,
34
- p.poolContract,
35
- p.pairs.map((pair) => `${pair.collateral}/${pair.debt}`).join(", "),
101
+ p.protocolVersion,
102
+ String(p.assets.length),
103
+ String(p.pairs.length),
36
104
  ])));
105
+ console.log(chalk.dim("\n Tip: Use lend-pools <name> to see pool details and APY rates."));
37
106
  }
38
107
  catch (error) {
39
108
  spinner.fail("Failed to list pools");
@@ -47,7 +116,7 @@ export function registerLendSupplyCommand(program) {
47
116
  .command("lend-supply")
48
117
  .description("Supply assets into a Vesu V2 lending pool")
49
118
  .argument("<amount>", "Amount to supply")
50
- .requiredOption("-p, --pool <name|address>", "Pool name (e.g. 'Genesis') or contract address")
119
+ .requiredOption("-p, --pool <name|address>", "Pool name (e.g. 'Prime') or contract address")
51
120
  .requiredOption("-t, --token <symbol>", "Token symbol (e.g. 'STRK', 'ETH', 'USDC')")
52
121
  .action(async (amount, opts) => {
53
122
  const spinner = createSpinner(`Supplying ${amount} ${opts.token}...`).start();
@@ -55,20 +124,19 @@ export function registerLendSupplyCommand(program) {
55
124
  const session = requireSession();
56
125
  const { wallet } = await initSDKAndWallet(session);
57
126
  await wallet.ensureReady({ deploy: "if_needed" });
58
- const poolAddress = resolvePoolAddress(opts.pool, session.network);
59
- const result = await lendingService.supply(wallet, poolAddress, opts.token, amount);
127
+ const pool = resolvePoolAddress(opts.pool, session.network);
128
+ const result = await lendingService.supply(wallet, pool.address, opts.token, amount);
60
129
  spinner.succeed("Supply confirmed");
61
130
  console.log(formatResult({
62
131
  amount: `${amount} ${opts.token.toUpperCase()}`,
63
- pool: poolAddress,
132
+ pool: pool.name ?? pool.address,
64
133
  txHash: result.hash,
65
134
  explorer: result.explorerUrl,
66
135
  }));
67
136
  }
68
137
  catch (error) {
69
138
  spinner.fail("Supply failed");
70
- console.error(error instanceof Error ? error.message : error);
71
- process.exit(1);
139
+ handleLendingError(error);
72
140
  }
73
141
  });
74
142
  }
@@ -77,7 +145,7 @@ export function registerLendWithdrawCommand(program) {
77
145
  .command("lend-withdraw")
78
146
  .description("Withdraw supplied assets from a Vesu V2 lending pool")
79
147
  .argument("<amount>", "Amount to withdraw")
80
- .requiredOption("-p, --pool <name|address>", "Pool name (e.g. 'Genesis') or contract address")
148
+ .requiredOption("-p, --pool <name|address>", "Pool name (e.g. 'Prime') or contract address")
81
149
  .requiredOption("-t, --token <symbol>", "Token symbol (e.g. 'STRK', 'ETH', 'USDC')")
82
150
  .action(async (amount, opts) => {
83
151
  const spinner = createSpinner(`Withdrawing ${amount} ${opts.token}...`).start();
@@ -85,20 +153,19 @@ export function registerLendWithdrawCommand(program) {
85
153
  const session = requireSession();
86
154
  const { wallet } = await initSDKAndWallet(session);
87
155
  await wallet.ensureReady({ deploy: "if_needed" });
88
- const poolAddress = resolvePoolAddress(opts.pool, session.network);
89
- const result = await lendingService.withdraw(wallet, poolAddress, opts.token, amount);
156
+ const pool = resolvePoolAddress(opts.pool, session.network);
157
+ const result = await lendingService.withdraw(wallet, pool.address, opts.token, amount);
90
158
  spinner.succeed("Withdrawal confirmed");
91
159
  console.log(formatResult({
92
160
  amount: `${amount} ${opts.token.toUpperCase()}`,
93
- pool: poolAddress,
161
+ pool: pool.name ?? pool.address,
94
162
  txHash: result.hash,
95
163
  explorer: result.explorerUrl,
96
164
  }));
97
165
  }
98
166
  catch (error) {
99
167
  spinner.fail("Withdrawal failed");
100
- console.error(error instanceof Error ? error.message : error);
101
- process.exit(1);
168
+ handleLendingError(error);
102
169
  }
103
170
  });
104
171
  }
@@ -106,32 +173,42 @@ export function registerLendBorrowCommand(program) {
106
173
  program
107
174
  .command("lend-borrow")
108
175
  .description("Borrow assets from a Vesu V2 lending pool (requires collateral)")
109
- .requiredOption("-p, --pool <name|address>", "Pool name (e.g. 'Genesis') or contract address")
176
+ .requiredOption("-p, --pool <name|address>", "Pool name (e.g. 'Prime') or contract address")
110
177
  .requiredOption("--collateral-amount <n>", "Collateral amount to supply")
111
178
  .requiredOption("--collateral-token <symbol>", "Collateral token symbol (e.g. 'ETH', 'STRK')")
112
179
  .requiredOption("--borrow-amount <n>", "Amount to borrow")
113
180
  .requiredOption("--borrow-token <symbol>", "Token to borrow (e.g. 'USDC', 'USDT')")
181
+ .option("--use-supplied", "Use your previously supplied yield tokens as collateral instead of transferring from wallet")
114
182
  .action(async (opts) => {
115
183
  const spinner = createSpinner(`Borrowing ${opts.borrowAmount} ${opts.borrowToken}...`).start();
116
184
  try {
117
185
  const session = requireSession();
118
186
  const { wallet } = await initSDKAndWallet(session);
119
187
  await wallet.ensureReady({ deploy: "if_needed" });
120
- const poolAddress = resolvePoolAddress(opts.pool, session.network);
121
- const result = await lendingService.borrow(wallet, poolAddress, opts.collateralToken, opts.collateralAmount, opts.borrowToken, opts.borrowAmount);
188
+ const pool = resolvePoolAddress(opts.pool, session.network);
189
+ let useSupplied = false;
190
+ if (opts.useSupplied) {
191
+ spinner.text = "Checking supplied yield balance...";
192
+ const balance = await lendingService.getSuppliedBalance(wallet, pool.address, opts.collateralToken);
193
+ if (!balance || parseFloat(balance) < parseFloat(opts.collateralAmount)) {
194
+ throw new Error(`Insufficient supplied balance. You have ${balance || "0"} ${opts.collateralToken} supplied, but want to use ${opts.collateralAmount} as collateral.`);
195
+ }
196
+ useSupplied = true;
197
+ spinner.text = `Borrowing ${opts.borrowAmount} ${opts.borrowToken}...`;
198
+ }
199
+ const result = await lendingService.borrow(wallet, pool.address, opts.collateralToken, opts.collateralAmount, opts.borrowToken, opts.borrowAmount, useSupplied);
122
200
  spinner.succeed("Borrow confirmed");
123
201
  console.log(formatResult({
124
202
  collateral: `${opts.collateralAmount} ${opts.collateralToken.toUpperCase()}`,
125
203
  borrowed: `${opts.borrowAmount} ${opts.borrowToken.toUpperCase()}`,
126
- pool: poolAddress,
204
+ pool: pool.name ?? pool.address,
127
205
  txHash: result.hash,
128
206
  explorer: result.explorerUrl,
129
207
  }));
130
208
  }
131
209
  catch (error) {
132
210
  spinner.fail("Borrow failed");
133
- console.error(error instanceof Error ? error.message : error);
134
- process.exit(1);
211
+ handleLendingError(error);
135
212
  }
136
213
  });
137
214
  }
@@ -140,8 +217,8 @@ export function registerLendRepayCommand(program) {
140
217
  .command("lend-repay")
141
218
  .description("Repay borrowed assets on a Vesu V2 lending pool")
142
219
  .argument("<amount>", "Amount to repay")
143
- .requiredOption("-p, --pool <name|address>", "Pool name (e.g. 'Genesis') or contract address")
144
- .requiredOption("-t, --token <symbol>", "Debt token symbol (e.g. 'USDC', 'USDT')")
220
+ .requiredOption("-p, --pool <name|address>", "Pool name (e.g. 'Prime') or contract address")
221
+ .requiredOption("-t, --token <symbol>", "Token to repay (e.g. 'USDC', 'USDT')")
145
222
  .requiredOption("--collateral-token <symbol>", "Collateral token of the position (e.g. 'ETH', 'STRK')")
146
223
  .action(async (amount, opts) => {
147
224
  const spinner = createSpinner(`Repaying ${amount} ${opts.token}...`).start();
@@ -149,47 +226,109 @@ export function registerLendRepayCommand(program) {
149
226
  const session = requireSession();
150
227
  const { wallet } = await initSDKAndWallet(session);
151
228
  await wallet.ensureReady({ deploy: "if_needed" });
152
- const poolAddress = resolvePoolAddress(opts.pool, session.network);
153
- const result = await lendingService.repay(wallet, poolAddress, opts.collateralToken, opts.token, amount);
229
+ const pool = resolvePoolAddress(opts.pool, session.network);
230
+ const result = await lendingService.repay(wallet, pool.address, opts.collateralToken, opts.token, amount);
154
231
  spinner.succeed("Repayment confirmed");
155
232
  console.log(formatResult({
156
233
  repaid: `${amount} ${opts.token.toUpperCase()}`,
157
- pool: poolAddress,
234
+ pool: pool.name ?? pool.address,
158
235
  txHash: result.hash,
159
236
  explorer: result.explorerUrl,
160
237
  }));
161
238
  }
162
239
  catch (error) {
163
240
  spinner.fail("Repayment failed");
164
- console.error(error instanceof Error ? error.message : error);
165
- process.exit(1);
241
+ handleLendingError(error);
242
+ }
243
+ });
244
+ }
245
+ export function registerLendCloseCommand(program) {
246
+ program
247
+ .command("lend-close")
248
+ .description("Atomically repay all debt and withdraw all collateral from a Vesu V2 position")
249
+ .requiredOption("-p, --pool <name|address>", "Pool name (e.g. 'Prime') or contract address")
250
+ .requiredOption("--collateral-token <symbol>", "Collateral token symbol (e.g. 'ETH', 'STRK')")
251
+ .requiredOption("--borrow-token <symbol>", "Borrowed token symbol (e.g. 'USDC', 'USDT')")
252
+ .action(async (opts) => {
253
+ const spinner = createSpinner("Closing position...").start();
254
+ try {
255
+ const session = requireSession();
256
+ const { wallet } = await initSDKAndWallet(session);
257
+ await wallet.ensureReady({ deploy: "if_needed" });
258
+ const pool = resolvePoolAddress(opts.pool, session.network);
259
+ const result = await lendingService.closePosition(wallet, pool.address, opts.collateralToken, opts.borrowToken);
260
+ spinner.succeed("Position closed successfully");
261
+ console.log(formatResult({
262
+ status: "Closed",
263
+ pool: pool.name ?? pool.address,
264
+ txHash: result.hash,
265
+ explorer: result.explorerUrl,
266
+ }));
267
+ }
268
+ catch (error) {
269
+ spinner.fail("Failed to close position");
270
+ handleLendingError(error);
166
271
  }
167
272
  });
168
273
  }
169
274
  export function registerLendStatusCommand(program) {
170
275
  program
171
276
  .command("lend-status")
172
- .description("View your lending position in a Vesu V2 pool")
173
- .requiredOption("-p, --pool <name|address>", "Pool name (e.g. 'Genesis') or contract address")
174
- .requiredOption("--collateral-token <symbol>", "Collateral token (e.g. 'ETH', 'STRK')")
175
- .requiredOption("--debt-token <symbol>", "Debt token (e.g. 'USDC', 'USDT')")
277
+ .description("View your lending position and supplied assets in a Vesu V2 pool")
278
+ .requiredOption("-p, --pool <name|address>", "Pool name (e.g. 'Prime') or contract address")
279
+ .requiredOption("--collateral-token <symbol>", "Token supplied to vToken and/or Pool (e.g. 'ETH', 'STRK')")
280
+ .option("--borrow-token <symbol>", "Borrow token (e.g. 'USDC', 'USDT'), required to see debt position")
176
281
  .action(async (opts) => {
177
282
  const spinner = createSpinner("Fetching lending position...").start();
178
283
  try {
179
284
  const session = requireSession();
180
285
  const { wallet } = await initSDKAndWallet(session);
181
- const poolAddress = resolvePoolAddress(opts.pool, session.network);
182
- const position = await lendingService.getPosition(wallet, poolAddress, opts.collateralToken, opts.debtToken);
183
- if (!position) {
184
- spinner.info("No active position found in this pool");
286
+ const pool = resolvePoolAddress(opts.pool, session.network);
287
+ const suppliedBalance = await lendingService.getSuppliedBalance(wallet, pool.address, opts.collateralToken);
288
+ let position = null;
289
+ if (opts.borrowToken) {
290
+ position = await lendingService.getPosition(wallet, pool.address, opts.collateralToken, opts.borrowToken);
291
+ }
292
+ if (!position && (!suppliedBalance || suppliedBalance === "0.0")) {
293
+ spinner.info("No active position or supply found in this pool");
185
294
  return;
186
295
  }
187
296
  spinner.succeed("Position found");
188
- console.log(formatResult({
189
- pool: poolAddress,
190
- collateral: `${position.collateralAmount} ${position.collateralAsset}`,
191
- debt: `${position.debtAmount} ${position.debtAsset}`,
192
- }));
297
+ const resultObj = {
298
+ pool: pool.name ?? pool.address,
299
+ };
300
+ if (suppliedBalance && suppliedBalance !== "0.0") {
301
+ resultObj["suppliedYield"] =
302
+ `${suppliedBalance} ${opts.collateralToken.toUpperCase()}`;
303
+ }
304
+ if (position) {
305
+ resultObj["collateral"] =
306
+ `${position.collateralAmount} ${position.collateralAsset}`;
307
+ resultObj["debt"] = `${position.debtAmount} ${position.debtAsset}`;
308
+ if (position.healthFactor !== undefined) {
309
+ let hfStr = position.healthFactor === Infinity
310
+ ? "∞"
311
+ : position.healthFactor.toFixed(2);
312
+ let riskStrFormatted = position.riskLevel ?? "UNKNOWN";
313
+ if (position.riskLevel === "SAFE")
314
+ riskStrFormatted = chalk.green("SAFE");
315
+ else if (position.riskLevel === "WARNING")
316
+ riskStrFormatted = chalk.yellow("WARNING");
317
+ else if (position.riskLevel === "DANGER")
318
+ riskStrFormatted = chalk.red("DANGER");
319
+ if (position.healthFactor === Infinity)
320
+ hfStr = chalk.green(hfStr);
321
+ else if (position.healthFactor > 1.5)
322
+ hfStr = chalk.green(hfStr);
323
+ else if (position.healthFactor > 1.1)
324
+ hfStr = chalk.yellow(hfStr);
325
+ else
326
+ hfStr = chalk.red(hfStr);
327
+ resultObj["healthFactor"] = hfStr;
328
+ resultObj["riskLevel"] = riskStrFormatted;
329
+ }
330
+ }
331
+ console.log(formatResult(resultObj));
193
332
  }
194
333
  catch (error) {
195
334
  spinner.fail("Failed to fetch position");
@@ -1 +1 @@
1
- {"version":3,"file":"lending.js","sourceRoot":"","sources":["../../../src/commands/lending/lending.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lending.js","sourceRoot":"","sources":["../../../src/commands/lending/lending.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from "commander";
2
+ export declare function registerPortfolioCommand(program: Command): void;
3
+ //# sourceMappingURL=portfolio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portfolio.d.ts","sourceRoot":"","sources":["../../../src/commands/portfolio/portfolio.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+F/D"}