starkfi 0.1.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 (191) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +83 -0
  3. package/dist/commands/auth/import.d.ts +3 -0
  4. package/dist/commands/auth/import.d.ts.map +1 -0
  5. package/dist/commands/auth/import.js +56 -0
  6. package/dist/commands/auth/import.js.map +1 -0
  7. package/dist/commands/auth/login.d.ts +3 -0
  8. package/dist/commands/auth/login.d.ts.map +1 -0
  9. package/dist/commands/auth/login.js +23 -0
  10. package/dist/commands/auth/login.js.map +1 -0
  11. package/dist/commands/auth/logout.d.ts +3 -0
  12. package/dist/commands/auth/logout.d.ts.map +1 -0
  13. package/dist/commands/auth/logout.js +14 -0
  14. package/dist/commands/auth/logout.js.map +1 -0
  15. package/dist/commands/auth/verify.d.ts +3 -0
  16. package/dist/commands/auth/verify.d.ts.map +1 -0
  17. package/dist/commands/auth/verify.js +64 -0
  18. package/dist/commands/auth/verify.js.map +1 -0
  19. package/dist/commands/chain/tx-status.d.ts +3 -0
  20. package/dist/commands/chain/tx-status.d.ts.map +1 -0
  21. package/dist/commands/chain/tx-status.js +39 -0
  22. package/dist/commands/chain/tx-status.js.map +1 -0
  23. package/dist/commands/config/config.d.ts +3 -0
  24. package/dist/commands/config/config.d.ts.map +1 -0
  25. package/dist/commands/config/config.js +122 -0
  26. package/dist/commands/config/config.js.map +1 -0
  27. package/dist/commands/lending/lending.d.ts +8 -0
  28. package/dist/commands/lending/lending.d.ts.map +1 -0
  29. package/dist/commands/lending/lending.js +201 -0
  30. package/dist/commands/lending/lending.js.map +1 -0
  31. package/dist/commands/staking/staking.d.ts +8 -0
  32. package/dist/commands/staking/staking.d.ts.map +1 -0
  33. package/dist/commands/staking/staking.js +272 -0
  34. package/dist/commands/staking/staking.js.map +1 -0
  35. package/dist/commands/trade/status.d.ts +3 -0
  36. package/dist/commands/trade/status.d.ts.map +1 -0
  37. package/dist/commands/trade/status.js +41 -0
  38. package/dist/commands/trade/status.js.map +1 -0
  39. package/dist/commands/trade/swap.d.ts +3 -0
  40. package/dist/commands/trade/swap.d.ts.map +1 -0
  41. package/dist/commands/trade/swap.js +65 -0
  42. package/dist/commands/trade/swap.js.map +1 -0
  43. package/dist/commands/wallet/address.d.ts +3 -0
  44. package/dist/commands/wallet/address.d.ts.map +1 -0
  45. package/dist/commands/wallet/address.js +20 -0
  46. package/dist/commands/wallet/address.js.map +1 -0
  47. package/dist/commands/wallet/balance.d.ts +3 -0
  48. package/dist/commands/wallet/balance.d.ts.map +1 -0
  49. package/dist/commands/wallet/balance.js +46 -0
  50. package/dist/commands/wallet/balance.js.map +1 -0
  51. package/dist/commands/wallet/deploy.d.ts +3 -0
  52. package/dist/commands/wallet/deploy.d.ts.map +1 -0
  53. package/dist/commands/wallet/deploy.js +73 -0
  54. package/dist/commands/wallet/deploy.js.map +1 -0
  55. package/dist/commands/wallet/send.d.ts +3 -0
  56. package/dist/commands/wallet/send.d.ts.map +1 -0
  57. package/dist/commands/wallet/send.js +51 -0
  58. package/dist/commands/wallet/send.js.map +1 -0
  59. package/dist/index.d.ts +3 -0
  60. package/dist/index.d.ts.map +1 -0
  61. package/dist/index.js +62 -0
  62. package/dist/index.js.map +1 -0
  63. package/dist/lib/cache.d.ts +3 -0
  64. package/dist/lib/cache.d.ts.map +1 -0
  65. package/dist/lib/cache.js +33 -0
  66. package/dist/lib/cache.js.map +1 -0
  67. package/dist/lib/command.d.ts +3 -0
  68. package/dist/lib/command.d.ts.map +1 -0
  69. package/dist/lib/command.js +6 -0
  70. package/dist/lib/command.js.map +1 -0
  71. package/dist/lib/config.d.ts +16 -0
  72. package/dist/lib/config.d.ts.map +1 -0
  73. package/dist/lib/config.js +30 -0
  74. package/dist/lib/config.js.map +1 -0
  75. package/dist/lib/errors.d.ts +39 -0
  76. package/dist/lib/errors.d.ts.map +1 -0
  77. package/dist/lib/errors.js +45 -0
  78. package/dist/lib/errors.js.map +1 -0
  79. package/dist/lib/format.d.ts +10 -0
  80. package/dist/lib/format.d.ts.map +1 -0
  81. package/dist/lib/format.js +45 -0
  82. package/dist/lib/format.js.map +1 -0
  83. package/dist/lib/validation.d.ts +14 -0
  84. package/dist/lib/validation.d.ts.map +1 -0
  85. package/dist/lib/validation.js +28 -0
  86. package/dist/lib/validation.js.map +1 -0
  87. package/dist/mcp/handlers/auth.d.ts +7 -0
  88. package/dist/mcp/handlers/auth.d.ts.map +1 -0
  89. package/dist/mcp/handlers/auth.js +22 -0
  90. package/dist/mcp/handlers/auth.js.map +1 -0
  91. package/dist/mcp/handlers/config.d.ts +10 -0
  92. package/dist/mcp/handlers/config.d.ts.map +1 -0
  93. package/dist/mcp/handlers/config.js +79 -0
  94. package/dist/mcp/handlers/config.js.map +1 -0
  95. package/dist/mcp/handlers/index.d.ts +7 -0
  96. package/dist/mcp/handlers/index.d.ts.map +1 -0
  97. package/dist/mcp/handlers/index.js +7 -0
  98. package/dist/mcp/handlers/index.js.map +1 -0
  99. package/dist/mcp/handlers/lending.d.ts +62 -0
  100. package/dist/mcp/handlers/lending.d.ts.map +1 -0
  101. package/dist/mcp/handlers/lending.js +101 -0
  102. package/dist/mcp/handlers/lending.js.map +1 -0
  103. package/dist/mcp/handlers/staking.d.ts +56 -0
  104. package/dist/mcp/handlers/staking.d.ts.map +1 -0
  105. package/dist/mcp/handlers/staking.js +110 -0
  106. package/dist/mcp/handlers/staking.js.map +1 -0
  107. package/dist/mcp/handlers/trade.d.ts +22 -0
  108. package/dist/mcp/handlers/trade.d.ts.map +1 -0
  109. package/dist/mcp/handlers/trade.js +57 -0
  110. package/dist/mcp/handlers/trade.js.map +1 -0
  111. package/dist/mcp/handlers/utils.d.ts +13 -0
  112. package/dist/mcp/handlers/utils.d.ts.map +1 -0
  113. package/dist/mcp/handlers/utils.js +7 -0
  114. package/dist/mcp/handlers/utils.js.map +1 -0
  115. package/dist/mcp/handlers/wallet.d.ts +33 -0
  116. package/dist/mcp/handlers/wallet.d.ts.map +1 -0
  117. package/dist/mcp/handlers/wallet.js +83 -0
  118. package/dist/mcp/handlers/wallet.js.map +1 -0
  119. package/dist/mcp/handlers.d.ts +108 -0
  120. package/dist/mcp/handlers.d.ts.map +1 -0
  121. package/dist/mcp/handlers.js +325 -0
  122. package/dist/mcp/handlers.js.map +1 -0
  123. package/dist/mcp/server.d.ts +2 -0
  124. package/dist/mcp/server.d.ts.map +1 -0
  125. package/dist/mcp/server.js +13 -0
  126. package/dist/mcp/server.js.map +1 -0
  127. package/dist/mcp/tools.d.ts +3 -0
  128. package/dist/mcp/tools.d.ts.map +1 -0
  129. package/dist/mcp/tools.js +156 -0
  130. package/dist/mcp/tools.js.map +1 -0
  131. package/dist/services/api/client.d.ts +26 -0
  132. package/dist/services/api/client.d.ts.map +1 -0
  133. package/dist/services/api/client.js +59 -0
  134. package/dist/services/api/client.js.map +1 -0
  135. package/dist/services/auth/session.d.ts +22 -0
  136. package/dist/services/auth/session.d.ts.map +1 -0
  137. package/dist/services/auth/session.js +36 -0
  138. package/dist/services/auth/session.js.map +1 -0
  139. package/dist/services/config/config.d.ts +20 -0
  140. package/dist/services/config/config.d.ts.map +1 -0
  141. package/dist/services/config/config.js +49 -0
  142. package/dist/services/config/config.js.map +1 -0
  143. package/dist/services/fibrous/balances.d.ts +8 -0
  144. package/dist/services/fibrous/balances.d.ts.map +1 -0
  145. package/dist/services/fibrous/balances.js +23 -0
  146. package/dist/services/fibrous/balances.js.map +1 -0
  147. package/dist/services/fibrous/health.d.ts +5 -0
  148. package/dist/services/fibrous/health.d.ts.map +1 -0
  149. package/dist/services/fibrous/health.js +24 -0
  150. package/dist/services/fibrous/health.js.map +1 -0
  151. package/dist/services/fibrous/route.d.ts +42 -0
  152. package/dist/services/fibrous/route.d.ts.map +1 -0
  153. package/dist/services/fibrous/route.js +41 -0
  154. package/dist/services/fibrous/route.js.map +1 -0
  155. package/dist/services/fibrous/tokens.d.ts +6 -0
  156. package/dist/services/fibrous/tokens.d.ts.map +1 -0
  157. package/dist/services/fibrous/tokens.js +34 -0
  158. package/dist/services/fibrous/tokens.js.map +1 -0
  159. package/dist/services/staking/staking.d.ts +70 -0
  160. package/dist/services/staking/staking.d.ts.map +1 -0
  161. package/dist/services/staking/staking.js +170 -0
  162. package/dist/services/staking/staking.js.map +1 -0
  163. package/dist/services/staking/validators.d.ts +6 -0
  164. package/dist/services/staking/validators.d.ts.map +1 -0
  165. package/dist/services/staking/validators.js +14 -0
  166. package/dist/services/staking/validators.js.map +1 -0
  167. package/dist/services/starkzap/client.d.ts +18 -0
  168. package/dist/services/starkzap/client.d.ts.map +1 -0
  169. package/dist/services/starkzap/client.js +65 -0
  170. package/dist/services/starkzap/client.js.map +1 -0
  171. package/dist/services/tokens/balances.d.ts +8 -0
  172. package/dist/services/tokens/balances.d.ts.map +1 -0
  173. package/dist/services/tokens/balances.js +23 -0
  174. package/dist/services/tokens/balances.js.map +1 -0
  175. package/dist/services/tokens/tokens.d.ts +5 -0
  176. package/dist/services/tokens/tokens.d.ts.map +1 -0
  177. package/dist/services/tokens/tokens.js +24 -0
  178. package/dist/services/tokens/tokens.js.map +1 -0
  179. package/dist/services/vesu/index.d.ts +3 -0
  180. package/dist/services/vesu/index.d.ts.map +1 -0
  181. package/dist/services/vesu/index.js +3 -0
  182. package/dist/services/vesu/index.js.map +1 -0
  183. package/dist/services/vesu/lending.d.ts +17 -0
  184. package/dist/services/vesu/lending.d.ts.map +1 -0
  185. package/dist/services/vesu/lending.js +153 -0
  186. package/dist/services/vesu/lending.js.map +1 -0
  187. package/dist/services/vesu/pools.d.ts +13 -0
  188. package/dist/services/vesu/pools.d.ts.map +1 -0
  189. package/dist/services/vesu/pools.js +35 -0
  190. package/dist/services/vesu/pools.js.map +1 -0
  191. package/package.json +83 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"staking.js","sourceRoot":"","sources":["../../../src/services/staking/staking.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { type Validator } from "starkzap";
2
+ type Network = "mainnet" | "sepolia";
3
+ export declare function getValidators(network: Network): Validator[];
4
+ export declare function findValidator(query: string, network: Network): Validator | null;
5
+ export {};
6
+ //# sourceMappingURL=validators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../../src/services/staking/validators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAEhF,KAAK,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AAGrC,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,EAAE,CAG3D;AAGD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAW/E"}
@@ -0,0 +1,14 @@
1
+ import { mainnetValidators, sepoliaValidators } from "starkzap";
2
+ // Returns all validator presets for the given network.
3
+ export function getValidators(network) {
4
+ const presets = network === "mainnet" ? mainnetValidators : sepoliaValidators;
5
+ return Object.values(presets);
6
+ }
7
+ // Resolves a validator by display name (case-insensitive prefix) or raw staker address.
8
+ export function findValidator(query, network) {
9
+ const validators = getValidators(network);
10
+ const lower = query.toLowerCase();
11
+ return (validators.find((v) => v.stakerAddress.toString().toLowerCase() === lower ||
12
+ v.name.toLowerCase().startsWith(lower)) ?? null);
13
+ }
14
+ //# sourceMappingURL=validators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validators.js","sourceRoot":"","sources":["../../../src/services/staking/validators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAkB,MAAM,UAAU,CAAC;AAIhF,uDAAuD;AACvD,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC7C,MAAM,OAAO,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAC9E,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,aAAa,CAAC,KAAa,EAAE,OAAgB;IAC5D,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAElC,OAAO,CACN,UAAU,CAAC,IAAI,CACd,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,KAAK;QAClD,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CACvC,IAAI,IAAI,CACT,CAAC;AACH,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { Wallet } from "starkzap";
2
+ import { StarkZap, type FeeMode } from "starkzap";
3
+ import type { Session } from "../auth/session.js";
4
+ export type StarkZapWallet = Wallet;
5
+ export declare function resolveFeeModeConfig(gasfreeMode: boolean, gasToken: string | undefined): {
6
+ feeMode: FeeMode;
7
+ gasTokenAddress: string | undefined;
8
+ needsPaymaster: boolean;
9
+ };
10
+ export declare function createSDK(network?: "mainnet" | "sepolia", rpcUrl?: string, needsPaymaster?: boolean, paymasterUrl?: string): StarkZap;
11
+ export declare function connectWallet(sdk: StarkZap, session: Session): Promise<Wallet>;
12
+ export interface SDKAndWallet {
13
+ sdk: StarkZap;
14
+ wallet: Wallet;
15
+ gasTokenAddress: string | undefined;
16
+ }
17
+ export declare function initSDKAndWallet(session: Session): Promise<SDKAndWallet>;
18
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/services/starkzap/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,QAAQ,EAA+C,KAAK,OAAO,EAAE,MAAM,UAAU,CAAC;AAC/F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAQlD,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC;AAGpC,wBAAgB,oBAAoB,CACnC,WAAW,EAAE,OAAO,EACpB,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC1B;IACF,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,cAAc,EAAE,OAAO,CAAC;CACxB,CAYA;AAID,wBAAgB,SAAS,CACxB,OAAO,GAAE,SAAS,GAAG,SAAqB,EAC1C,MAAM,CAAC,EAAE,MAAM,EACf,cAAc,UAAQ,EACtB,YAAY,CAAC,EAAE,MAAM,GACnB,QAAQ,CAYV;AAED,wBAAsB,aAAa,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAwBpF;AAED,MAAM,WAAW,YAAY;IAC5B,GAAG,EAAE,QAAQ,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IAEf,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAiB9E"}
@@ -0,0 +1,65 @@
1
+ import { StarkZap, StarkSigner, PrivySigner, ArgentXV050Preset } from "starkzap";
2
+ import { ConfigService } from "../config/config.js";
3
+ import { AVNU_PAYMASTER_URL, AVNU_PAYMASTER_SEPOLIA_URL, GAS_TOKEN_ADDRESSES, } from "../../lib/config.js";
4
+ // Fee mode priority: gasfreeMode (sponsored) → gasToken (gasless) → default (user pays STRK)
5
+ export function resolveFeeModeConfig(gasfreeMode, gasToken) {
6
+ if (gasfreeMode) {
7
+ return { feeMode: "sponsored", gasTokenAddress: undefined, needsPaymaster: true };
8
+ }
9
+ if (gasToken) {
10
+ const gasTokenAddress = GAS_TOKEN_ADDRESSES[gasToken.toUpperCase()];
11
+ if (gasTokenAddress) {
12
+ // user_pays at wallet connect-level; gasToken is injected at execute-time
13
+ return { feeMode: "user_pays", gasTokenAddress, needsPaymaster: true };
14
+ }
15
+ }
16
+ return { feeMode: "user_pays", gasTokenAddress: undefined, needsPaymaster: false };
17
+ }
18
+ let sdkInstance = null;
19
+ export function createSDK(network = "mainnet", rpcUrl, needsPaymaster = false, paymasterUrl) {
20
+ const config = { network };
21
+ if (rpcUrl)
22
+ config.rpcUrl = rpcUrl;
23
+ if (needsPaymaster) {
24
+ const defaultUrl = network === "sepolia" ? AVNU_PAYMASTER_SEPOLIA_URL : AVNU_PAYMASTER_URL;
25
+ config.paymaster = { nodeUrl: paymasterUrl ?? defaultUrl };
26
+ }
27
+ sdkInstance = new StarkZap(config);
28
+ return sdkInstance;
29
+ }
30
+ export async function connectWallet(sdk, session) {
31
+ const configService = ConfigService.getInstance();
32
+ const gasfreeMode = configService.get("gasfreeMode") === true;
33
+ const gasToken = configService.get("gasToken");
34
+ const { feeMode } = resolveFeeModeConfig(gasfreeMode, gasToken);
35
+ if (session.type === "local") {
36
+ return sdk.connectWallet({
37
+ account: { signer: new StarkSigner(session.privateKey) },
38
+ feeMode,
39
+ });
40
+ }
41
+ const signer = new PrivySigner({
42
+ walletId: session.walletId,
43
+ publicKey: session.publicKey,
44
+ serverUrl: session.serverUrl,
45
+ headers: { Authorization: `Bearer ${session.token}` },
46
+ });
47
+ return sdk.connectWallet({
48
+ account: { signer, accountClass: ArgentXV050Preset },
49
+ feeMode,
50
+ });
51
+ }
52
+ export async function initSDKAndWallet(session) {
53
+ const configService = ConfigService.getInstance();
54
+ const rpcUrl = configService.get("rpcUrl");
55
+ const gasfreeMode = configService.get("gasfreeMode") === true;
56
+ const gasToken = configService.get("gasToken");
57
+ const { gasTokenAddress, needsPaymaster } = resolveFeeModeConfig(gasfreeMode, gasToken);
58
+ const paymasterUrl = session.type === "privy" && session.serverUrl
59
+ ? session.serverUrl.replace("/sign/hash", "/paymaster")
60
+ : undefined;
61
+ const sdk = createSDK(session.network, rpcUrl, needsPaymaster, paymasterUrl);
62
+ const wallet = await connectWallet(sdk, session);
63
+ return { sdk, wallet, gasTokenAddress };
64
+ }
65
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/services/starkzap/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { WalletInterface } from "starkzap";
2
+ export interface TokenBalance {
3
+ symbol: string;
4
+ name: string;
5
+ balance: string;
6
+ }
7
+ export declare function getBalances(wallet: WalletInterface): Promise<TokenBalance[]>;
8
+ //# sourceMappingURL=balances.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"balances.d.ts","sourceRoot":"","sources":["../../../src/services/tokens/balances.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAGhD,MAAM,WAAW,YAAY;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,WAAW,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAsBlF"}
@@ -0,0 +1,23 @@
1
+ import { fetchTokens } from "./tokens.js";
2
+ export async function getBalances(wallet) {
3
+ const tokens = await fetchTokens();
4
+ const results = [];
5
+ const balancePromises = tokens.map(async (token) => {
6
+ try {
7
+ const amount = await wallet.balanceOf(token);
8
+ if (amount.isPositive()) {
9
+ results.push({
10
+ symbol: token.symbol,
11
+ name: token.name,
12
+ balance: amount.toUnit(),
13
+ });
14
+ }
15
+ }
16
+ catch {
17
+ // Silently fail for individual token checks that might error due to contract issues.
18
+ }
19
+ });
20
+ await Promise.all(balancePromises);
21
+ return results;
22
+ }
23
+ //# sourceMappingURL=balances.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"balances.js","sourceRoot":"","sources":["../../../src/services/tokens/balances.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAQ1C,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAuB;IACxD,MAAM,MAAM,GAAG,MAAM,WAAW,EAAE,CAAC;IACnC,MAAM,OAAO,GAAmB,EAAE,CAAC;IAEnC,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAClD,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC7C,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;gBACzB,OAAO,CAAC,IAAI,CAAC;oBACZ,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;iBACxB,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAAC,MAAM,CAAC;YACR,qFAAqF;QACtF,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAEnC,OAAO,OAAO,CAAC;AAChB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { type Token } from "starkzap";
2
+ export declare function fetchTokens(): Promise<Token[]>;
3
+ export declare function resolveToken(symbol: string): Promise<Token>;
4
+ export declare function resolveTokenByAddress(address: string): Promise<Token | null>;
5
+ //# sourceMappingURL=tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../src/services/tokens/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,KAAK,EAAE,MAAM,UAAU,CAAC;AAG3D,wBAAsB,WAAW,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAIpD;AAED,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAiBjE;AAED,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAGlF"}
@@ -0,0 +1,24 @@
1
+ import { ChainId, getPresets } from "starkzap";
2
+ import { ErrorCode, StarkfiError } from "../../lib/errors.js";
3
+ export async function fetchTokens() {
4
+ // getPresets returns a Record<string, Token>. We convert it to an array.
5
+ const presetTokens = getPresets(ChainId.MAINNET);
6
+ return Object.values(presetTokens);
7
+ }
8
+ export async function resolveToken(symbol) {
9
+ const tokens = await fetchTokens();
10
+ const upperSymbol = symbol.toUpperCase();
11
+ const token = tokens.find((t) => t.symbol.toUpperCase() === upperSymbol);
12
+ if (!token) {
13
+ throw new StarkfiError(ErrorCode.NO_ROUTE_FOUND, `Token not found: ${symbol}. Available tokens: ${tokens
14
+ .slice(0, 15)
15
+ .map((t) => t.symbol)
16
+ .join(", ")}...`);
17
+ }
18
+ return token;
19
+ }
20
+ export async function resolveTokenByAddress(address) {
21
+ const tokens = await fetchTokens();
22
+ return tokens.find((t) => t.address.toLowerCase() === address.toLowerCase()) ?? null;
23
+ }
24
+ //# sourceMappingURL=tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../src/services/tokens/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAc,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAE9D,MAAM,CAAC,KAAK,UAAU,WAAW;IAChC,yEAAyE;IACzE,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACjD,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAc;IAChD,MAAM,MAAM,GAAG,MAAM,WAAW,EAAE,CAAC;IACnC,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAEzC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,CAAC;IAEzE,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,MAAM,IAAI,YAAY,CACrB,SAAS,CAAC,cAAc,EACxB,oBAAoB,MAAM,uBAAuB,MAAM;aACrD,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;aACZ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;aACpB,IAAI,CAAC,IAAI,CAAC,KAAK,CACjB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,OAAe;IAC1D,MAAM,MAAM,GAAG,MAAM,WAAW,EAAE,CAAC;IACnC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,CAAC;AACtF,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./pools.js";
2
+ export * from "./lending.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,3 @@
1
+ export * from "./pools.js";
2
+ export * from "./lending.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/vesu/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { StarkZapWallet } from "../starkzap/client.js";
2
+ export interface LendingPosition {
3
+ collateralAsset: string;
4
+ debtAsset: string;
5
+ collateralAmount: string;
6
+ debtAmount: string;
7
+ }
8
+ export interface TxResult {
9
+ hash: string;
10
+ explorerUrl: string;
11
+ }
12
+ export declare function supply(wallet: StarkZapWallet, poolAddress: string, tokenSymbol: string, amount: string): Promise<TxResult>;
13
+ 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>;
15
+ export declare function repay(wallet: StarkZapWallet, poolAddress: string, collateralTokenSymbol: string, debtTokenSymbol: string, repayAmount: string): Promise<TxResult>;
16
+ export declare function getPosition(wallet: StarkZapWallet, poolAddress: string, collateralTokenSymbol: string, debtTokenSymbol: string): Promise<LendingPosition | null>;
17
+ //# sourceMappingURL=lending.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,153 @@
1
+ import { Amount, fromAddress } from "starkzap";
2
+ import { resolveToken } from "../tokens/tokens.js";
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.
9
+ function encodeVesuAmount(denomination, value) {
10
+ const isNegative = value < 0n;
11
+ 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
+ ];
20
+ }
21
+ function encodeZeroAmount() {
22
+ return encodeVesuAmount(DENOMINATION_ASSETS, 0n);
23
+ }
24
+ // Supply via vToken ERC-4626: approve + vToken.deposit(assets, receiver)
25
+ export async function supply(wallet, poolAddress, tokenSymbol, amount) {
26
+ const token = await resolveToken(tokenSymbol);
27
+ const parsedAmount = Amount.parse(amount, token);
28
+ const vTokenAddress = await getVTokenAddress(wallet, poolAddress, token);
29
+ const userAddress = wallet.address.toString();
30
+ const tx = await wallet
31
+ .tx()
32
+ .approve(token, fromAddress(vTokenAddress), parsedAmount)
33
+ .add({
34
+ contractAddress: fromAddress(vTokenAddress),
35
+ entrypoint: "deposit",
36
+ calldata: [parsedAmount.toBase().toString(), "0", userAddress],
37
+ })
38
+ .send();
39
+ await tx.wait();
40
+ return { hash: tx.hash, explorerUrl: tx.explorerUrl };
41
+ }
42
+ // Withdraw via vToken ERC-4626: vToken.withdraw(assets, receiver, owner)
43
+ export async function withdraw(wallet, poolAddress, tokenSymbol, amount) {
44
+ const token = await resolveToken(tokenSymbol);
45
+ const parsedAmount = Amount.parse(amount, token);
46
+ const vTokenAddress = await getVTokenAddress(wallet, poolAddress, token);
47
+ const userAddress = wallet.address.toString();
48
+ const tx = await wallet
49
+ .tx()
50
+ .add({
51
+ contractAddress: fromAddress(vTokenAddress),
52
+ entrypoint: "withdraw",
53
+ calldata: [parsedAmount.toBase().toString(), "0", userAddress, userAddress],
54
+ })
55
+ .send();
56
+ await tx.wait();
57
+ return { hash: tx.hash, explorerUrl: tx.explorerUrl };
58
+ }
59
+ // Borrow via pool.manage_position: approve collateral + positive collateral & positive debt.
60
+ export async function borrow(wallet, poolAddress, collateralTokenSymbol, collateralAmount, debtTokenSymbol, debtAmount) {
61
+ const collateralToken = await resolveToken(collateralTokenSymbol);
62
+ const debtToken = await resolveToken(debtTokenSymbol);
63
+ const parsedCollateral = Amount.parse(collateralAmount, collateralToken);
64
+ const parsedDebt = Amount.parse(debtAmount, debtToken);
65
+ const userAddress = wallet.address.toString();
66
+ const calldata = [
67
+ collateralToken.address.toString(),
68
+ debtToken.address.toString(),
69
+ userAddress,
70
+ ...encodeVesuAmount(DENOMINATION_ASSETS, parsedCollateral.toBase()),
71
+ ...encodeVesuAmount(DENOMINATION_ASSETS, parsedDebt.toBase()),
72
+ ];
73
+ const tx = await wallet
74
+ .tx()
75
+ .approve(collateralToken, fromAddress(poolAddress), parsedCollateral)
76
+ .add({
77
+ contractAddress: fromAddress(poolAddress),
78
+ entrypoint: "manage_position",
79
+ calldata,
80
+ })
81
+ .send();
82
+ await tx.wait();
83
+ return { hash: tx.hash, explorerUrl: tx.explorerUrl };
84
+ }
85
+ // Repay via pool.manage_position: approve debt token + zero collateral & negative debt.
86
+ export async function repay(wallet, poolAddress, collateralTokenSymbol, debtTokenSymbol, repayAmount) {
87
+ const collateralToken = await resolveToken(collateralTokenSymbol);
88
+ const debtToken = await resolveToken(debtTokenSymbol);
89
+ const parsedRepay = Amount.parse(repayAmount, debtToken);
90
+ const userAddress = wallet.address.toString();
91
+ const calldata = [
92
+ collateralToken.address.toString(),
93
+ debtToken.address.toString(),
94
+ userAddress,
95
+ ...encodeZeroAmount(),
96
+ ...encodeVesuAmount(DENOMINATION_ASSETS, -parsedRepay.toBase()),
97
+ ];
98
+ const tx = await wallet
99
+ .tx()
100
+ .approve(debtToken, fromAddress(poolAddress), parsedRepay)
101
+ .add({
102
+ contractAddress: fromAddress(poolAddress),
103
+ entrypoint: "manage_position",
104
+ calldata,
105
+ })
106
+ .send();
107
+ await tx.wait();
108
+ return { hash: tx.hash, explorerUrl: tx.explorerUrl };
109
+ }
110
+ // Query pool.position(collateral, debt, user) → extract last 4 felts as u256 pair.
111
+ export async function getPosition(wallet, poolAddress, collateralTokenSymbol, debtTokenSymbol) {
112
+ const collateralToken = await resolveToken(collateralTokenSymbol);
113
+ const debtToken = await resolveToken(debtTokenSymbol);
114
+ 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)
130
+ 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
+ };
139
+ }
140
+ // Queries PoolFactory for vToken address of a pool+asset pair.
141
+ async function getVTokenAddress(wallet, poolAddress, token) {
142
+ const result = await wallet.callContract({
143
+ contractAddress: POOL_FACTORY_ADDRESS,
144
+ entrypoint: "v_token",
145
+ calldata: [poolAddress, token.address.toString()],
146
+ });
147
+ if (!result || result.length === 0 || result[0] === "0x0") {
148
+ throw new StarkfiError(ErrorCode.LENDING_FAILED, `No vToken found for ${token.symbol} in pool ${poolAddress}. ` +
149
+ `This asset may not be supported by this pool.`);
150
+ }
151
+ return result[0];
152
+ }
153
+ //# sourceMappingURL=lending.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lending.js","sourceRoot":"","sources":["../../../src/services/vesu/lending.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export interface VesuPool {
2
+ name: string;
3
+ poolContract: string;
4
+ pairs: {
5
+ collateral: string;
6
+ debt: string;
7
+ }[];
8
+ }
9
+ 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 {};
13
+ //# sourceMappingURL=pools.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,35 @@
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;
28
+ }
29
+ // Resolve pool by display name (case-insensitive prefix) or contract address.
30
+ export function findVesuPool(query, network) {
31
+ const pools = getVesuPools(network);
32
+ const lower = query.toLowerCase();
33
+ return (pools.find((p) => p.poolContract.toLowerCase() === lower || p.name.toLowerCase().startsWith(lower)) ?? null);
34
+ }
35
+ //# sourceMappingURL=pools.js.map
@@ -0,0 +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"}
package/package.json ADDED
@@ -0,0 +1,83 @@
1
+ {
2
+ "name": "starkfi",
3
+ "version": "0.1.0",
4
+ "description": "Starknet DeFi CLI + MCP Server — Token swaps, staking, lending, gasless transactions",
5
+ "type": "module",
6
+ "bin": {
7
+ "starkfi": "./dist/index.js"
8
+ },
9
+ "main": "./dist/index.js",
10
+ "exports": {
11
+ ".": {
12
+ "import": "./dist/index.js",
13
+ "types": "./dist/index.d.ts"
14
+ }
15
+ },
16
+ "files": [
17
+ "dist",
18
+ "README.md",
19
+ "LICENSE"
20
+ ],
21
+ "keywords": [
22
+ "starknet",
23
+ "defi",
24
+ "cli",
25
+ "mcp",
26
+ "mcp-server",
27
+ "starkzap",
28
+ "swap",
29
+ "staking",
30
+ "lending",
31
+ "vesu",
32
+ "fibrous",
33
+ "web3",
34
+ "l2"
35
+ ],
36
+ "author": "ahmetenesdur",
37
+ "license": "MIT",
38
+ "repository": {
39
+ "type": "git",
40
+ "url": "git+https://github.com/ahmetenesdur/starkfi.git"
41
+ },
42
+ "bugs": {
43
+ "url": "https://github.com/ahmetenesdur/starkfi/issues"
44
+ },
45
+ "homepage": "https://github.com/ahmetenesdur/starkfi#readme",
46
+ "engines": {
47
+ "node": ">=18"
48
+ },
49
+ "dependencies": {
50
+ "@modelcontextprotocol/sdk": "^1.27.1",
51
+ "chalk": "^5.6.2",
52
+ "commander": "^14.0.3",
53
+ "env-paths": "^3.0.0",
54
+ "inquirer": "^13.3.0",
55
+ "ora": "^9.3.0",
56
+ "starknet": "^9.2.1",
57
+ "starkzap": "^1.0.0",
58
+ "zod": "^4.3.6"
59
+ },
60
+ "devDependencies": {
61
+ "@eslint/js": "^10.0.1",
62
+ "@types/node": "^22.19.11",
63
+ "eslint": "^10.0.2",
64
+ "eslint-config-prettier": "^10.1.8",
65
+ "globals": "^17.3.0",
66
+ "jiti": "^2.6.1",
67
+ "prettier": "^3.8.1",
68
+ "tsx": "^4.21.0",
69
+ "typescript": "^5.9.3",
70
+ "typescript-eslint": "^8.56.1"
71
+ },
72
+ "scripts": {
73
+ "build": "tsc",
74
+ "dev": "node --import tsx/esm src/index.ts",
75
+ "typecheck": "tsc --noEmit",
76
+ "lint": "eslint src/",
77
+ "lint:fix": "eslint src/ --fix",
78
+ "format": "prettier --write src/",
79
+ "format:check": "prettier --check src/",
80
+ "start": "node dist/index.js",
81
+ "mcp-start": "node dist/index.js mcp-start"
82
+ }
83
+ }