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
@@ -0,0 +1,32 @@
1
+ export const VESU_API_BASE = "https://api.vesu.xyz";
2
+ export const POOL_FACTORY_ADDRESS = "0x03760f903a37948f97302736f89ce30290e45f441559325026842b7a6fb388c0";
3
+ // Pool addresses: https://docs.vesu.xyz/developers/contract-addresses
4
+ export const V2_POOLS = [
5
+ {
6
+ name: "Prime",
7
+ address: "0x0451fe483d5921a2919ddd81d0de6696669bccdacd859f72a4fba7656b97c3b5",
8
+ },
9
+ {
10
+ name: "Re7 USDC Core",
11
+ address: "0x03976cac265a12609934089004df458ea29c776d77da423c96dc761d09d24124",
12
+ },
13
+ {
14
+ name: "Re7 USDC Prime",
15
+ address: "0x02eef0c13b10b487ea5916b54c0a7f98ec43fb3048f60fdeedaf5b08f6f88aaf",
16
+ },
17
+ {
18
+ name: "Re7 USDC Frontier",
19
+ address: "0x05c03e7e0ccfe79c634782388eb1e6ed4e8e2a013ab0fcc055140805e46261bd",
20
+ },
21
+ {
22
+ name: "Re7 xBTC",
23
+ address: "0x03a8416bf20d036df5b1cf3447630a2e1cb04685f6b0c3a70ed7fb1473548ecf",
24
+ },
25
+ {
26
+ name: "Re7 USDC Stable Core",
27
+ address: "0x073702fce24aba36da1eac539bd4bae62d4d6a76747b7cdd3e016da754d7a135",
28
+ },
29
+ ];
30
+ // AmountDenomination enum values for calldata encoding.
31
+ export const DENOMINATION_ASSETS = 1;
32
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/services/vesu/config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG,sBAAsB,CAAC;AAEpD,MAAM,CAAC,MAAM,oBAAoB,GAChC,oEAAoE,CAAC;AAOtE,sEAAsE;AACtE,MAAM,CAAC,MAAM,QAAQ,GAAyB;IAC7C;QACC,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,oEAAoE;KAC7E;IACD;QACC,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,oEAAoE;KAC7E;IACD;QACC,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,oEAAoE;KAC7E;IACD;QACC,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,oEAAoE;KAC7E;IACD;QACC,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,oEAAoE;KAC7E;IACD;QACC,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE,oEAAoE;KAC7E;CACQ,CAAC;AAEX,wDAAwD;AACxD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC"}
@@ -1,3 +1,5 @@
1
+ export * from "./config.js";
2
+ export * from "./api.js";
1
3
  export * from "./pools.js";
2
4
  export * from "./lending.js";
3
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/vesu/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/vesu/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC"}
@@ -1,3 +1,5 @@
1
+ export * from "./config.js";
2
+ export * from "./api.js";
1
3
  export * from "./pools.js";
2
4
  export * from "./lending.js";
3
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/vesu/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/vesu/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC"}
@@ -1,17 +1,24 @@
1
+ import { type Token } from "starkzap";
1
2
  import type { StarkZapWallet } from "../starkzap/client.js";
2
3
  export interface LendingPosition {
3
4
  collateralAsset: string;
4
5
  debtAsset: string;
5
6
  collateralAmount: string;
6
7
  debtAmount: string;
8
+ healthFactor?: number;
9
+ riskLevel?: "SAFE" | "WARNING" | "DANGER" | "UNKNOWN";
7
10
  }
8
11
  export interface TxResult {
9
12
  hash: string;
10
13
  explorerUrl: string;
11
14
  }
15
+ export declare function splitU256(value: bigint): [string, string];
12
16
  export declare function supply(wallet: StarkZapWallet, poolAddress: string, tokenSymbol: string, amount: string): Promise<TxResult>;
13
17
  export declare function withdraw(wallet: StarkZapWallet, poolAddress: string, tokenSymbol: string, amount: string): Promise<TxResult>;
14
- export declare function borrow(wallet: StarkZapWallet, poolAddress: string, collateralTokenSymbol: string, collateralAmount: string, debtTokenSymbol: string, debtAmount: string): Promise<TxResult>;
18
+ export declare function borrow(wallet: StarkZapWallet, poolAddress: string, collateralTokenSymbol: string, collateralAmount: string, debtTokenSymbol: string, debtAmount: string, useSupplied?: boolean): Promise<TxResult>;
15
19
  export declare function repay(wallet: StarkZapWallet, poolAddress: string, collateralTokenSymbol: string, debtTokenSymbol: string, repayAmount: string): Promise<TxResult>;
20
+ export declare function closePosition(wallet: StarkZapWallet, poolAddress: string, collateralTokenSymbol: string, debtTokenSymbol: string): Promise<TxResult>;
16
21
  export declare function getPosition(wallet: StarkZapWallet, poolAddress: string, collateralTokenSymbol: string, debtTokenSymbol: string): Promise<LendingPosition | null>;
22
+ export declare function getVTokenAddress(wallet: StarkZapWallet, poolAddress: string, token: Token): Promise<string>;
23
+ export declare function getSuppliedBalance(wallet: StarkZapWallet, poolAddress: string, tokenSymbol: string): Promise<string | null>;
17
24
  //# sourceMappingURL=lending.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lending.d.ts","sourceRoot":"","sources":["../../../src/services/vesu/lending.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAI5D,MAAM,WAAW,eAAe;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACpB;AA2BD,wBAAsB,MAAM,CAC3B,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC,QAAQ,CAAC,CAmBnB;AAGD,wBAAsB,QAAQ,CAC7B,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC,QAAQ,CAAC,CAkBnB;AAGD,wBAAsB,MAAM,CAC3B,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,EACnB,qBAAqB,EAAE,MAAM,EAC7B,gBAAgB,EAAE,MAAM,EACxB,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,QAAQ,CAAC,CA4BnB;AAGD,wBAAsB,KAAK,CAC1B,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,EACnB,qBAAqB,EAAE,MAAM,EAC7B,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,GACjB,OAAO,CAAC,QAAQ,CAAC,CA2BnB;AAGD,wBAAsB,WAAW,CAChC,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,EACnB,qBAAqB,EAAE,MAAM,EAC7B,eAAe,EAAE,MAAM,GACrB,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAiCjC"}
1
+ {"version":3,"file":"lending.d.ts","sourceRoot":"","sources":["../../../src/services/vesu/lending.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,KAAK,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAO5D,MAAM,WAAW,eAAe;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;CACtD;AAED,MAAM,WAAW,QAAQ;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAIzD;AAYD,wBAAsB,MAAM,CAC3B,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC,QAAQ,CAAC,CAgCnB;AAED,wBAAsB,QAAQ,CAC7B,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC,QAAQ,CAAC,CAkBnB;AAED,wBAAsB,MAAM,CAC3B,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,EACnB,qBAAqB,EAAE,MAAM,EAC7B,gBAAgB,EAAE,MAAM,EACxB,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,EAClB,WAAW,UAAQ,GACjB,OAAO,CAAC,QAAQ,CAAC,CA6DnB;AAED,wBAAsB,KAAK,CAC1B,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,EACnB,qBAAqB,EAAE,MAAM,EAC7B,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,GACjB,OAAO,CAAC,QAAQ,CAAC,CA2BnB;AAED,wBAAsB,aAAa,CAClC,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,EACnB,qBAAqB,EAAE,MAAM,EAC7B,eAAe,EAAE,MAAM,GACrB,OAAO,CAAC,QAAQ,CAAC,CAoCnB;AAED,wBAAsB,WAAW,CAChC,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,EACnB,qBAAqB,EAAE,MAAM,EAC7B,eAAe,EAAE,MAAM,GACrB,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAyEjC;AAED,wBAAsB,gBAAgB,CACrC,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,KAAK,GACV,OAAO,CAAC,MAAM,CAAC,CAgBjB;AAED,wBAAsB,kBAAkB,CACvC,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA+BxB"}
@@ -1,45 +1,47 @@
1
1
  import { Amount, fromAddress } from "starkzap";
2
2
  import { resolveToken } from "../tokens/tokens.js";
3
3
  import { ErrorCode, StarkfiError } from "../../lib/errors.js";
4
- // AmountDenomination::Assets = 1
5
- const DENOMINATION_ASSETS = 1;
6
- const POOL_FACTORY_ADDRESS = "0x05d1b22e63dc47c8b3b7d19a38e8fb3977069099f8dabb72bd0e5ff1f0b18e6c";
7
- // Vesu Amount struct: { denomination: enum, value: i257 }
8
- // i257 (mag: u256(low128, high128), sign: bool) → 4 felts total.
4
+ import { POOL_FACTORY_ADDRESS, DENOMINATION_ASSETS } from "./config.js";
5
+ import { getTokenUsdPrice } from "../fibrous/route.js";
6
+ import { fetchPool } from "./api.js";
7
+ export function splitU256(value) {
8
+ const low = value & ((1n << 128n) - 1n);
9
+ const high = value >> 128n;
10
+ return [`0x${low.toString(16)}`, `0x${high.toString(16)}`];
11
+ }
9
12
  function encodeVesuAmount(denomination, value) {
10
13
  const isNegative = value < 0n;
11
14
  const mag = isNegative ? -value : value;
12
- const low = mag & ((1n << 128n) - 1n);
13
- const high = mag >> 128n;
14
- return [
15
- `0x${denomination.toString(16)}`,
16
- `0x${low.toString(16)}`,
17
- `0x${high.toString(16)}`,
18
- isNegative ? "0x1" : "0x0",
19
- ];
15
+ return [`0x${denomination.toString(16)}`, ...splitU256(mag), isNegative ? "0x1" : "0x0"];
20
16
  }
21
17
  function encodeZeroAmount() {
22
18
  return encodeVesuAmount(DENOMINATION_ASSETS, 0n);
23
19
  }
24
- // Supply via vToken ERC-4626: approve + vToken.deposit(assets, receiver)
25
20
  export async function supply(wallet, poolAddress, tokenSymbol, amount) {
26
21
  const token = await resolveToken(tokenSymbol);
27
22
  const parsedAmount = Amount.parse(amount, token);
28
- const vTokenAddress = await getVTokenAddress(wallet, poolAddress, token);
29
23
  const userAddress = wallet.address.toString();
24
+ // Proactive Dust Limit Check
25
+ const usdPrice = await getTokenUsdPrice(token);
26
+ if (usdPrice > 0) {
27
+ const usdValue = parseFloat(amount) * usdPrice;
28
+ if (usdValue < 10.0) {
29
+ throw new StarkfiError(ErrorCode.LENDING_FAILED, `Amount is too small (dust limit). Minimum equivalent of ~$10 is required by Vesu. Current value: ~$${usdValue.toFixed(2)}`);
30
+ }
31
+ }
32
+ const vTokenAddress = await getVTokenAddress(wallet, poolAddress, token);
30
33
  const tx = await wallet
31
34
  .tx()
32
35
  .approve(token, fromAddress(vTokenAddress), parsedAmount)
33
36
  .add({
34
37
  contractAddress: fromAddress(vTokenAddress),
35
38
  entrypoint: "deposit",
36
- calldata: [parsedAmount.toBase().toString(), "0", userAddress],
39
+ calldata: [...splitU256(parsedAmount.toBase()), userAddress],
37
40
  })
38
41
  .send();
39
42
  await tx.wait();
40
43
  return { hash: tx.hash, explorerUrl: tx.explorerUrl };
41
44
  }
42
- // Withdraw via vToken ERC-4626: vToken.withdraw(assets, receiver, owner)
43
45
  export async function withdraw(wallet, poolAddress, tokenSymbol, amount) {
44
46
  const token = await resolveToken(tokenSymbol);
45
47
  const parsedAmount = Amount.parse(amount, token);
@@ -50,19 +52,33 @@ export async function withdraw(wallet, poolAddress, tokenSymbol, amount) {
50
52
  .add({
51
53
  contractAddress: fromAddress(vTokenAddress),
52
54
  entrypoint: "withdraw",
53
- calldata: [parsedAmount.toBase().toString(), "0", userAddress, userAddress],
55
+ calldata: [...splitU256(parsedAmount.toBase()), userAddress, userAddress],
54
56
  })
55
57
  .send();
56
58
  await tx.wait();
57
59
  return { hash: tx.hash, explorerUrl: tx.explorerUrl };
58
60
  }
59
- // Borrow via pool.manage_position: approve collateral + positive collateral & positive debt.
60
- export async function borrow(wallet, poolAddress, collateralTokenSymbol, collateralAmount, debtTokenSymbol, debtAmount) {
61
+ export async function borrow(wallet, poolAddress, collateralTokenSymbol, collateralAmount, debtTokenSymbol, debtAmount, useSupplied = false) {
61
62
  const collateralToken = await resolveToken(collateralTokenSymbol);
62
63
  const debtToken = await resolveToken(debtTokenSymbol);
63
64
  const parsedCollateral = Amount.parse(collateralAmount, collateralToken);
64
65
  const parsedDebt = Amount.parse(debtAmount, debtToken);
65
66
  const userAddress = wallet.address.toString();
67
+ // Proactive Dust Limit Check
68
+ const collateralUsdPrice = await getTokenUsdPrice(collateralToken);
69
+ if (collateralUsdPrice > 0) {
70
+ const collateralUsdValue = parseFloat(collateralAmount) * collateralUsdPrice;
71
+ if (collateralUsdValue < 10.0) {
72
+ throw new StarkfiError(ErrorCode.LENDING_FAILED, `dusty-collateral-balance: Collateral amount is too small. Minimum equivalent of ~$10 is required by Vesu. Current value: ~$${collateralUsdValue.toFixed(2)}`);
73
+ }
74
+ }
75
+ const debtUsdPrice = await getTokenUsdPrice(debtToken);
76
+ if (debtUsdPrice > 0) {
77
+ const debtUsdValue = parseFloat(debtAmount) * debtUsdPrice;
78
+ if (debtUsdValue < 10.0) {
79
+ throw new StarkfiError(ErrorCode.LENDING_FAILED, `dusty-debt-balance: Borrow amount is too small. Minimum equivalent of ~$10 is required by Vesu. Current value: ~$${debtUsdValue.toFixed(2)}`);
80
+ }
81
+ }
66
82
  const calldata = [
67
83
  collateralToken.address.toString(),
68
84
  debtToken.address.toString(),
@@ -70,19 +86,26 @@ export async function borrow(wallet, poolAddress, collateralTokenSymbol, collate
70
86
  ...encodeVesuAmount(DENOMINATION_ASSETS, parsedCollateral.toBase()),
71
87
  ...encodeVesuAmount(DENOMINATION_ASSETS, parsedDebt.toBase()),
72
88
  ];
73
- const tx = await wallet
74
- .tx()
89
+ let txBuilder = wallet.tx();
90
+ if (useSupplied) {
91
+ const vTokenAddress = await getVTokenAddress(wallet, poolAddress, collateralToken);
92
+ txBuilder = txBuilder.add({
93
+ contractAddress: fromAddress(vTokenAddress),
94
+ entrypoint: "withdraw",
95
+ calldata: [parsedCollateral.toBase().toString(), userAddress, userAddress],
96
+ });
97
+ }
98
+ const tx = await txBuilder
75
99
  .approve(collateralToken, fromAddress(poolAddress), parsedCollateral)
76
100
  .add({
77
101
  contractAddress: fromAddress(poolAddress),
78
- entrypoint: "manage_position",
102
+ entrypoint: "modify_position",
79
103
  calldata,
80
104
  })
81
105
  .send();
82
106
  await tx.wait();
83
107
  return { hash: tx.hash, explorerUrl: tx.explorerUrl };
84
108
  }
85
- // Repay via pool.manage_position: approve debt token + zero collateral & negative debt.
86
109
  export async function repay(wallet, poolAddress, collateralTokenSymbol, debtTokenSymbol, repayAmount) {
87
110
  const collateralToken = await resolveToken(collateralTokenSymbol);
88
111
  const debtToken = await resolveToken(debtTokenSymbol);
@@ -100,48 +123,115 @@ export async function repay(wallet, poolAddress, collateralTokenSymbol, debtToke
100
123
  .approve(debtToken, fromAddress(poolAddress), parsedRepay)
101
124
  .add({
102
125
  contractAddress: fromAddress(poolAddress),
103
- entrypoint: "manage_position",
126
+ entrypoint: "modify_position",
127
+ calldata,
128
+ })
129
+ .send();
130
+ await tx.wait();
131
+ return { hash: tx.hash, explorerUrl: tx.explorerUrl };
132
+ }
133
+ export async function closePosition(wallet, poolAddress, collateralTokenSymbol, debtTokenSymbol) {
134
+ const position = await getPosition(wallet, poolAddress, collateralTokenSymbol, debtTokenSymbol);
135
+ if (!position) {
136
+ throw new StarkfiError(ErrorCode.LENDING_FAILED, "No active position found to close.");
137
+ }
138
+ const collateralToken = await resolveToken(collateralTokenSymbol);
139
+ const debtToken = await resolveToken(debtTokenSymbol);
140
+ const parsedCollateral = Amount.parse(position.collateralAmount, collateralToken);
141
+ const parsedDebt = Amount.parse(position.debtAmount, debtToken);
142
+ const userAddress = wallet.address.toString();
143
+ const calldata = [
144
+ collateralToken.address.toString(),
145
+ debtToken.address.toString(),
146
+ userAddress,
147
+ ...encodeVesuAmount(DENOMINATION_ASSETS, -parsedCollateral.toBase()),
148
+ ...encodeVesuAmount(DENOMINATION_ASSETS, -parsedDebt.toBase()),
149
+ ];
150
+ const tx = await wallet
151
+ .tx()
152
+ // We only need to approve the debt token for repayment, withdrawing collateral doesn't need allowance
153
+ .approve(debtToken, fromAddress(poolAddress), parsedDebt)
154
+ .add({
155
+ contractAddress: fromAddress(poolAddress),
156
+ entrypoint: "modify_position",
104
157
  calldata,
105
158
  })
106
159
  .send();
107
160
  await tx.wait();
108
161
  return { hash: tx.hash, explorerUrl: tx.explorerUrl };
109
162
  }
110
- // Query pool.position(collateral, debt, user) → extract last 4 felts as u256 pair.
111
163
  export async function getPosition(wallet, poolAddress, collateralTokenSymbol, debtTokenSymbol) {
112
164
  const collateralToken = await resolveToken(collateralTokenSymbol);
113
165
  const debtToken = await resolveToken(debtTokenSymbol);
114
166
  const userAddress = wallet.address.toString();
115
- const result = await wallet.callContract({
116
- contractAddress: poolAddress,
117
- entrypoint: "position",
118
- calldata: [collateralToken.address.toString(), debtToken.address.toString(), userAddress],
119
- });
120
- const feltCount = result.length;
121
- if (feltCount < 4)
122
- return null;
123
- const collLow = BigInt(result[feltCount - 4]);
124
- const collHigh = BigInt(result[feltCount - 3]);
125
- const debtLow = BigInt(result[feltCount - 2]);
126
- const debtHigh = BigInt(result[feltCount - 1]);
127
- const collateralRaw = collLow + (collHigh << 128n);
128
- const debtRaw = debtLow + (debtHigh << 128n);
129
- if (collateralRaw === 0n && debtRaw === 0n)
167
+ try {
168
+ const result = await wallet.callContract({
169
+ contractAddress: poolAddress,
170
+ entrypoint: "position",
171
+ calldata: [
172
+ collateralToken.address.toString(),
173
+ debtToken.address.toString(),
174
+ userAddress,
175
+ ],
176
+ });
177
+ if (result.length < 8)
178
+ return null;
179
+ const collateralRaw = BigInt(result[4]) + (BigInt(result[5]) << 128n);
180
+ const debtRaw = BigInt(result[6]) + (BigInt(result[7]) << 128n);
181
+ if (collateralRaw === 0n && debtRaw === 0n)
182
+ return null;
183
+ const collFormatted = Amount.fromRaw(collateralRaw, collateralToken).toFormatted(true);
184
+ const debtFormatted = Amount.fromRaw(debtRaw, debtToken).toFormatted(true);
185
+ // Calculate Health Factor
186
+ let healthFactor;
187
+ let riskLevel = "UNKNOWN";
188
+ try {
189
+ const poolData = await fetchPool(poolAddress);
190
+ const pair = poolData.pairs.find((p) => p.collateralAddress === collateralToken.address.toString() &&
191
+ p.debtAddress === debtToken.address.toString());
192
+ if (pair) {
193
+ const collUsdPrice = await getTokenUsdPrice(collateralToken);
194
+ const debtUsdPrice = await getTokenUsdPrice(debtToken);
195
+ if (collUsdPrice > 0 && debtUsdPrice > 0) {
196
+ const collUsdValue = parseFloat(collFormatted) * collUsdPrice;
197
+ const debtUsdValue = parseFloat(debtFormatted) * debtUsdPrice;
198
+ const maxBorrowUsd = collUsdValue * pair.maxLTV;
199
+ if (debtUsdValue > 0) {
200
+ healthFactor = maxBorrowUsd / debtUsdValue;
201
+ if (healthFactor > 1.5)
202
+ riskLevel = "SAFE";
203
+ else if (healthFactor > 1.1)
204
+ riskLevel = "WARNING";
205
+ else
206
+ riskLevel = "DANGER";
207
+ }
208
+ else {
209
+ healthFactor = Infinity; // No debt = infinitely safe
210
+ riskLevel = "SAFE";
211
+ }
212
+ }
213
+ }
214
+ }
215
+ catch {
216
+ // Ignore if API or pricing fails, return basic position
217
+ }
218
+ return {
219
+ collateralAsset: collateralTokenSymbol.toUpperCase(),
220
+ debtAsset: debtTokenSymbol.toUpperCase(),
221
+ collateralAmount: collFormatted,
222
+ debtAmount: debtFormatted,
223
+ healthFactor,
224
+ riskLevel,
225
+ };
226
+ }
227
+ catch {
130
228
  return null;
131
- const collFormatted = Amount.fromRaw(collateralRaw, collateralToken).toFormatted(true);
132
- const debtFormatted = Amount.fromRaw(debtRaw, debtToken).toFormatted(true);
133
- return {
134
- collateralAsset: collateralTokenSymbol.toUpperCase(),
135
- debtAsset: debtTokenSymbol.toUpperCase(),
136
- collateralAmount: collFormatted,
137
- debtAmount: debtFormatted,
138
- };
229
+ }
139
230
  }
140
- // Queries PoolFactory for vToken address of a pool+asset pair.
141
- async function getVTokenAddress(wallet, poolAddress, token) {
231
+ export async function getVTokenAddress(wallet, poolAddress, token) {
142
232
  const result = await wallet.callContract({
143
233
  contractAddress: POOL_FACTORY_ADDRESS,
144
- entrypoint: "v_token",
234
+ entrypoint: "v_token_for_asset",
145
235
  calldata: [poolAddress, token.address.toString()],
146
236
  });
147
237
  if (!result || result.length === 0 || result[0] === "0x0") {
@@ -150,4 +240,33 @@ async function getVTokenAddress(wallet, poolAddress, token) {
150
240
  }
151
241
  return result[0];
152
242
  }
243
+ export async function getSuppliedBalance(wallet, poolAddress, tokenSymbol) {
244
+ const token = await resolveToken(tokenSymbol);
245
+ const userAddress = wallet.address.toString();
246
+ try {
247
+ const vTokenAddress = await getVTokenAddress(wallet, poolAddress, token);
248
+ const balResult = await wallet.callContract({
249
+ contractAddress: vTokenAddress,
250
+ entrypoint: "balance_of",
251
+ calldata: [userAddress],
252
+ });
253
+ if (!balResult || balResult.length === 0)
254
+ return null;
255
+ const sharesRaw = BigInt(balResult[0]) + (BigInt(balResult[1] || "0x0") << 128n);
256
+ if (sharesRaw === 0n)
257
+ return "0";
258
+ const convertResult = await wallet.callContract({
259
+ contractAddress: vTokenAddress,
260
+ entrypoint: "convert_to_assets",
261
+ calldata: [...splitU256(sharesRaw)],
262
+ });
263
+ if (!convertResult || convertResult.length === 0)
264
+ return null;
265
+ const assetsRaw = BigInt(convertResult[0]) + (BigInt(convertResult[1] || "0x0") << 128n);
266
+ return Amount.fromRaw(assetsRaw, token).toFormatted(true);
267
+ }
268
+ catch {
269
+ return null;
270
+ }
271
+ }
153
272
  //# sourceMappingURL=lending.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lending.js","sourceRoot":"","sources":["../../../src/services/vesu/lending.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAc,MAAM,UAAU,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAc9D,iCAAiC;AACjC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B,MAAM,oBAAoB,GAAG,oEAAoE,CAAC;AAElG,0DAA0D;AAC1D,mEAAmE;AACnE,SAAS,gBAAgB,CAAC,YAAoB,EAAE,KAAa;IAC5D,MAAM,UAAU,GAAG,KAAK,GAAG,EAAE,CAAC;IAC9B,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IACxC,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC;IACzB,OAAO;QACN,KAAK,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;QAChC,KAAK,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;QACvB,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;QACxB,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;KAC1B,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB;IACxB,OAAO,gBAAgB,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,yEAAyE;AACzE,MAAM,CAAC,KAAK,UAAU,MAAM,CAC3B,MAAsB,EACtB,WAAmB,EACnB,WAAmB,EACnB,MAAc;IAEd,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACjD,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IACzE,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAE9C,MAAM,EAAE,GAAG,MAAM,MAAM;SACrB,EAAE,EAAE;SACJ,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC;SACxD,GAAG,CAAC;QACJ,eAAe,EAAE,WAAW,CAAC,aAAa,CAAC;QAC3C,UAAU,EAAE,SAAS;QACrB,QAAQ,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,WAAW,CAAC;KAC9D,CAAC;SACD,IAAI,EAAE,CAAC;IAET,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAEhB,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC;AACvD,CAAC;AAED,yEAAyE;AACzE,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC7B,MAAsB,EACtB,WAAmB,EACnB,WAAmB,EACnB,MAAc;IAEd,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACjD,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IACzE,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAE9C,MAAM,EAAE,GAAG,MAAM,MAAM;SACrB,EAAE,EAAE;SACJ,GAAG,CAAC;QACJ,eAAe,EAAE,WAAW,CAAC,aAAa,CAAC;QAC3C,UAAU,EAAE,UAAU;QACtB,QAAQ,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,CAAC;KAC3E,CAAC;SACD,IAAI,EAAE,CAAC;IAET,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAEhB,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC;AACvD,CAAC;AAED,6FAA6F;AAC7F,MAAM,CAAC,KAAK,UAAU,MAAM,CAC3B,MAAsB,EACtB,WAAmB,EACnB,qBAA6B,EAC7B,gBAAwB,EACxB,eAAuB,EACvB,UAAkB;IAElB,MAAM,eAAe,GAAG,MAAM,YAAY,CAAC,qBAAqB,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,eAAe,CAAC,CAAC;IACtD,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;IACzE,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAE9C,MAAM,QAAQ,GAAG;QAChB,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE;QAClC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE;QAC5B,WAAW;QACX,GAAG,gBAAgB,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,MAAM,EAAE,CAAC;QACnE,GAAG,gBAAgB,CAAC,mBAAmB,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;KAC7D,CAAC;IAEF,MAAM,EAAE,GAAG,MAAM,MAAM;SACrB,EAAE,EAAE;SACJ,OAAO,CAAC,eAAe,EAAE,WAAW,CAAC,WAAW,CAAC,EAAE,gBAAgB,CAAC;SACpE,GAAG,CAAC;QACJ,eAAe,EAAE,WAAW,CAAC,WAAW,CAAC;QACzC,UAAU,EAAE,iBAAiB;QAC7B,QAAQ;KACR,CAAC;SACD,IAAI,EAAE,CAAC;IAET,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAEhB,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC;AACvD,CAAC;AAED,wFAAwF;AACxF,MAAM,CAAC,KAAK,UAAU,KAAK,CAC1B,MAAsB,EACtB,WAAmB,EACnB,qBAA6B,EAC7B,eAAuB,EACvB,WAAmB;IAEnB,MAAM,eAAe,GAAG,MAAM,YAAY,CAAC,qBAAqB,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,eAAe,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAE9C,MAAM,QAAQ,GAAG;QAChB,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE;QAClC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE;QAC5B,WAAW;QACX,GAAG,gBAAgB,EAAE;QACrB,GAAG,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;KAC/D,CAAC;IAEF,MAAM,EAAE,GAAG,MAAM,MAAM;SACrB,EAAE,EAAE;SACJ,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;SACzD,GAAG,CAAC;QACJ,eAAe,EAAE,WAAW,CAAC,WAAW,CAAC;QACzC,UAAU,EAAE,iBAAiB;QAC7B,QAAQ;KACR,CAAC;SACD,IAAI,EAAE,CAAC;IAET,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAEhB,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC;AACvD,CAAC;AAED,mFAAmF;AACnF,MAAM,CAAC,KAAK,UAAU,WAAW,CAChC,MAAsB,EACtB,WAAmB,EACnB,qBAA6B,EAC7B,eAAuB;IAEvB,MAAM,eAAe,GAAG,MAAM,YAAY,CAAC,qBAAqB,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,eAAe,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAE9C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;QACxC,eAAe,EAAE,WAAW;QAC5B,UAAU,EAAE,UAAU;QACtB,QAAQ,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,WAAW,CAAC;KACzF,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;IAChC,IAAI,SAAS,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAE/B,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAE,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAE,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAE,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAE,CAAC,CAAC;IAEhD,MAAM,aAAa,GAAG,OAAO,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC;IAE7C,IAAI,aAAa,KAAK,EAAE,IAAI,OAAO,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAExD,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACvF,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAE3E,OAAO;QACN,eAAe,EAAE,qBAAqB,CAAC,WAAW,EAAE;QACpD,SAAS,EAAE,eAAe,CAAC,WAAW,EAAE;QACxC,gBAAgB,EAAE,aAAa;QAC/B,UAAU,EAAE,aAAa;KACzB,CAAC;AACH,CAAC;AAED,+DAA+D;AAC/D,KAAK,UAAU,gBAAgB,CAC9B,MAAsB,EACtB,WAAmB,EACnB,KAAY;IAEZ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;QACxC,eAAe,EAAE,oBAAoB;QACrC,UAAU,EAAE,SAAS;QACrB,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;KACjD,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;QAC3D,MAAM,IAAI,YAAY,CACrB,SAAS,CAAC,cAAc,EACxB,uBAAuB,KAAK,CAAC,MAAM,YAAY,WAAW,IAAI;YAC7D,+CAA+C,CAChD,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,CAAC,CAAE,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"lending.js","sourceRoot":"","sources":["../../../src/services/vesu/lending.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,7 @@
1
- export interface VesuPool {
2
- name: string;
3
- poolContract: string;
4
- pairs: {
5
- collateral: string;
6
- debt: string;
7
- }[];
8
- }
1
+ import { type PoolEntry } from "./config.js";
2
+ import { type VesuPoolData } from "./api.js";
3
+ export type { VesuPoolData } from "./api.js";
9
4
  type Network = "mainnet" | "sepolia";
10
- export declare function getVesuPools(network: Network): VesuPool[];
11
- export declare function findVesuPool(query: string, network: Network): VesuPool | null;
12
- export {};
5
+ export declare function getVesuPools(network: Network): Promise<VesuPoolData[]>;
6
+ export declare function findPoolEntry(query: string, network: Network): PoolEntry | null;
13
7
  //# sourceMappingURL=pools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pools.d.ts","sourceRoot":"","sources":["../../../src/services/vesu/pools.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,QAAQ;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC9C;AA2BD,KAAK,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AAErC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,EAAE,CAEzD;AAGD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG,IAAI,CAS7E"}
1
+ {"version":3,"file":"pools.d.ts","sourceRoot":"","sources":["../../../src/services/vesu/pools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AAE5D,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,KAAK,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AAErC,wBAAsB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAG5E;AAGD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAS/E"}
@@ -1,35 +1,15 @@
1
- // Curated Vesu V2 pool registry — mirrors the staking validators.ts pattern.
2
- // Pool addresses sourced from https://docs.vesu.xyz/developers/contract-addresses
3
- const mainnetPools = [
4
- {
5
- name: "Genesis",
6
- poolContract: "0x04dc0aba5cd1eb9e2e8e1cd615e5e1d3e97aab44c1585a8243a75c4bde4de806",
7
- pairs: [
8
- { collateral: "ETH", debt: "USDC" },
9
- { collateral: "ETH", debt: "USDT" },
10
- { collateral: "STRK", debt: "USDC" },
11
- { collateral: "STRK", debt: "USDT" },
12
- { collateral: "STRK", debt: "ETH" },
13
- ],
14
- },
15
- {
16
- name: "Re7 Labs",
17
- poolContract: "0x05e74e13095c20746947990ab359bd3e2a3a9e19e44e5e247dc58e57e0480a66",
18
- pairs: [
19
- { collateral: "ETH", debt: "USDC" },
20
- { collateral: "STRK", debt: "USDC" },
21
- { collateral: "STRK", debt: "ETH" },
22
- ],
23
- },
24
- ];
25
- const sepoliaPools = [];
26
- export function getVesuPools(network) {
27
- return network === "mainnet" ? mainnetPools : sepoliaPools;
1
+ import { V2_POOLS } from "./config.js";
2
+ import { fetchAllPools } from "./api.js";
3
+ export async function getVesuPools(network) {
4
+ if (network !== "mainnet")
5
+ return [];
6
+ return fetchAllPools();
28
7
  }
29
- // Resolve pool by display name (case-insensitive prefix) or contract address.
30
- export function findVesuPool(query, network) {
31
- const pools = getVesuPools(network);
8
+ // Resolve by display name (case-insensitive prefix) or contract address.
9
+ export function findPoolEntry(query, network) {
10
+ if (network !== "mainnet")
11
+ return null;
32
12
  const lower = query.toLowerCase();
33
- return (pools.find((p) => p.poolContract.toLowerCase() === lower || p.name.toLowerCase().startsWith(lower)) ?? null);
13
+ return (V2_POOLS.find((p) => p.address.toLowerCase() === lower || p.name.toLowerCase().startsWith(lower)) ?? null);
34
14
  }
35
15
  //# sourceMappingURL=pools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pools.js","sourceRoot":"","sources":["../../../src/services/vesu/pools.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,kFAAkF;AAQlF,MAAM,YAAY,GAAe;IAChC;QACC,IAAI,EAAE,SAAS;QACf,YAAY,EAAE,oEAAoE;QAClF,KAAK,EAAE;YACN,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE;YACnC,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE;YACnC,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;YACpC,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;YACpC,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE;SACnC;KACD;IACD;QACC,IAAI,EAAE,UAAU;QAChB,YAAY,EAAE,oEAAoE;QAClF,KAAK,EAAE;YACN,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE;YACnC,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;YACpC,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE;SACnC;KACD;CACD,CAAC;AAEF,MAAM,YAAY,GAAe,EAAE,CAAC;AAIpC,MAAM,UAAU,YAAY,CAAC,OAAgB;IAC5C,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;AAC5D,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,YAAY,CAAC,KAAa,EAAE,OAAgB;IAC3D,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAElC,OAAO,CACN,KAAK,CAAC,IAAI,CACT,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CACvF,IAAI,IAAI,CACT,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"pools.js","sourceRoot":"","sources":["../../../src/services/vesu/pools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAkB,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,aAAa,EAAqB,MAAM,UAAU,CAAC;AAM5D,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAgB;IAClD,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACrC,OAAO,aAAa,EAAE,CAAC;AACxB,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,aAAa,CAAC,KAAa,EAAE,OAAgB;IAC5D,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAEvC,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAClC,OAAO,CACN,QAAQ,CAAC,IAAI,CACZ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAClF,IAAI,IAAI,CACT,CAAC;AACH,CAAC"}