starkfi 0.3.4 → 0.4.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 (310) hide show
  1. package/dist/index.js +289 -197
  2. package/package.json +16 -18
  3. package/dist/commands/auth/import.d.ts +0 -3
  4. package/dist/commands/auth/import.d.ts.map +0 -1
  5. package/dist/commands/auth/import.js +0 -56
  6. package/dist/commands/auth/import.js.map +0 -1
  7. package/dist/commands/auth/login.d.ts +0 -3
  8. package/dist/commands/auth/login.d.ts.map +0 -1
  9. package/dist/commands/auth/login.js +0 -24
  10. package/dist/commands/auth/login.js.map +0 -1
  11. package/dist/commands/auth/logout.d.ts +0 -3
  12. package/dist/commands/auth/logout.d.ts.map +0 -1
  13. package/dist/commands/auth/logout.js +0 -14
  14. package/dist/commands/auth/logout.js.map +0 -1
  15. package/dist/commands/auth/verify.d.ts +0 -3
  16. package/dist/commands/auth/verify.d.ts.map +0 -1
  17. package/dist/commands/auth/verify.js +0 -64
  18. package/dist/commands/auth/verify.js.map +0 -1
  19. package/dist/commands/batch/batch.d.ts +0 -3
  20. package/dist/commands/batch/batch.d.ts.map +0 -1
  21. package/dist/commands/batch/batch.js +0 -146
  22. package/dist/commands/batch/batch.js.map +0 -1
  23. package/dist/commands/chain/tx-status.d.ts +0 -3
  24. package/dist/commands/chain/tx-status.d.ts.map +0 -1
  25. package/dist/commands/chain/tx-status.js +0 -34
  26. package/dist/commands/chain/tx-status.js.map +0 -1
  27. package/dist/commands/config/config.d.ts +0 -3
  28. package/dist/commands/config/config.d.ts.map +0 -1
  29. package/dist/commands/config/config.js +0 -114
  30. package/dist/commands/config/config.js.map +0 -1
  31. package/dist/commands/lending/lending.d.ts +0 -9
  32. package/dist/commands/lending/lending.d.ts.map +0 -1
  33. package/dist/commands/lending/lending.js +0 -382
  34. package/dist/commands/lending/lending.js.map +0 -1
  35. package/dist/commands/portfolio/portfolio.d.ts +0 -3
  36. package/dist/commands/portfolio/portfolio.d.ts.map +0 -1
  37. package/dist/commands/portfolio/portfolio.js +0 -90
  38. package/dist/commands/portfolio/portfolio.js.map +0 -1
  39. package/dist/commands/staking/staking.d.ts +0 -8
  40. package/dist/commands/staking/staking.d.ts.map +0 -1
  41. package/dist/commands/staking/staking.js +0 -376
  42. package/dist/commands/staking/staking.js.map +0 -1
  43. package/dist/commands/system/status.d.ts +0 -3
  44. package/dist/commands/system/status.d.ts.map +0 -1
  45. package/dist/commands/system/status.js +0 -41
  46. package/dist/commands/system/status.js.map +0 -1
  47. package/dist/commands/trade/multi-swap.d.ts +0 -3
  48. package/dist/commands/trade/multi-swap.d.ts.map +0 -1
  49. package/dist/commands/trade/multi-swap.js +0 -132
  50. package/dist/commands/trade/multi-swap.js.map +0 -1
  51. package/dist/commands/trade/status.d.ts +0 -3
  52. package/dist/commands/trade/status.d.ts.map +0 -1
  53. package/dist/commands/trade/status.js +0 -41
  54. package/dist/commands/trade/status.js.map +0 -1
  55. package/dist/commands/trade/swap.d.ts +0 -3
  56. package/dist/commands/trade/swap.d.ts.map +0 -1
  57. package/dist/commands/trade/swap.js +0 -92
  58. package/dist/commands/trade/swap.js.map +0 -1
  59. package/dist/commands/wallet/address.d.ts +0 -3
  60. package/dist/commands/wallet/address.d.ts.map +0 -1
  61. package/dist/commands/wallet/address.js +0 -20
  62. package/dist/commands/wallet/address.js.map +0 -1
  63. package/dist/commands/wallet/balance.d.ts +0 -3
  64. package/dist/commands/wallet/balance.d.ts.map +0 -1
  65. package/dist/commands/wallet/balance.js +0 -64
  66. package/dist/commands/wallet/balance.js.map +0 -1
  67. package/dist/commands/wallet/deploy.d.ts +0 -3
  68. package/dist/commands/wallet/deploy.d.ts.map +0 -1
  69. package/dist/commands/wallet/deploy.js +0 -68
  70. package/dist/commands/wallet/deploy.js.map +0 -1
  71. package/dist/commands/wallet/send.d.ts +0 -3
  72. package/dist/commands/wallet/send.d.ts.map +0 -1
  73. package/dist/commands/wallet/send.js +0 -79
  74. package/dist/commands/wallet/send.js.map +0 -1
  75. package/dist/index.d.ts +0 -3
  76. package/dist/index.d.ts.map +0 -1
  77. package/dist/index.js.map +0 -1
  78. package/dist/lib/banner.d.ts +0 -6
  79. package/dist/lib/banner.d.ts.map +0 -1
  80. package/dist/lib/banner.js +0 -78
  81. package/dist/lib/banner.js.map +0 -1
  82. package/dist/lib/brand.d.ts +0 -5
  83. package/dist/lib/brand.d.ts.map +0 -1
  84. package/dist/lib/brand.js +0 -15
  85. package/dist/lib/brand.js.map +0 -1
  86. package/dist/lib/cache.d.ts +0 -3
  87. package/dist/lib/cache.d.ts.map +0 -1
  88. package/dist/lib/cache.js +0 -33
  89. package/dist/lib/cache.js.map +0 -1
  90. package/dist/lib/cli-helpers.d.ts +0 -8
  91. package/dist/lib/cli-helpers.d.ts.map +0 -1
  92. package/dist/lib/cli-helpers.js +0 -20
  93. package/dist/lib/cli-helpers.js.map +0 -1
  94. package/dist/lib/command.d.ts +0 -3
  95. package/dist/lib/command.d.ts.map +0 -1
  96. package/dist/lib/command.js +0 -6
  97. package/dist/lib/command.js.map +0 -1
  98. package/dist/lib/concurrency.d.ts +0 -2
  99. package/dist/lib/concurrency.d.ts.map +0 -1
  100. package/dist/lib/concurrency.js +0 -21
  101. package/dist/lib/concurrency.js.map +0 -1
  102. package/dist/lib/config.d.ts +0 -5
  103. package/dist/lib/config.d.ts.map +0 -1
  104. package/dist/lib/config.js +0 -10
  105. package/dist/lib/config.js.map +0 -1
  106. package/dist/lib/errors.d.ts +0 -41
  107. package/dist/lib/errors.d.ts.map +0 -1
  108. package/dist/lib/errors.js +0 -47
  109. package/dist/lib/errors.js.map +0 -1
  110. package/dist/lib/fetch.d.ts +0 -4
  111. package/dist/lib/fetch.d.ts.map +0 -1
  112. package/dist/lib/fetch.js +0 -13
  113. package/dist/lib/fetch.js.map +0 -1
  114. package/dist/lib/format.d.ts +0 -21
  115. package/dist/lib/format.d.ts.map +0 -1
  116. package/dist/lib/format.js +0 -122
  117. package/dist/lib/format.js.map +0 -1
  118. package/dist/lib/parse-starknet-error.d.ts +0 -2
  119. package/dist/lib/parse-starknet-error.d.ts.map +0 -1
  120. package/dist/lib/parse-starknet-error.js +0 -81
  121. package/dist/lib/parse-starknet-error.js.map +0 -1
  122. package/dist/lib/retry.d.ts +0 -8
  123. package/dist/lib/retry.d.ts.map +0 -1
  124. package/dist/lib/retry.js +0 -25
  125. package/dist/lib/retry.js.map +0 -1
  126. package/dist/lib/types.d.ts +0 -6
  127. package/dist/lib/types.d.ts.map +0 -1
  128. package/dist/lib/types.js +0 -2
  129. package/dist/lib/types.js.map +0 -1
  130. package/dist/lib/validation.d.ts +0 -2
  131. package/dist/lib/validation.d.ts.map +0 -1
  132. package/dist/lib/validation.js +0 -6
  133. package/dist/lib/validation.js.map +0 -1
  134. package/dist/mcp/handlers/auth.d.ts +0 -7
  135. package/dist/mcp/handlers/auth.d.ts.map +0 -1
  136. package/dist/mcp/handlers/auth.js +0 -22
  137. package/dist/mcp/handlers/auth.js.map +0 -1
  138. package/dist/mcp/handlers/batch.d.ts +0 -13
  139. package/dist/mcp/handlers/batch.d.ts.map +0 -1
  140. package/dist/mcp/handlers/batch.js +0 -26
  141. package/dist/mcp/handlers/batch.js.map +0 -1
  142. package/dist/mcp/handlers/config.d.ts +0 -10
  143. package/dist/mcp/handlers/config.d.ts.map +0 -1
  144. package/dist/mcp/handlers/config.js +0 -82
  145. package/dist/mcp/handlers/config.js.map +0 -1
  146. package/dist/mcp/handlers/context.d.ts +0 -10
  147. package/dist/mcp/handlers/context.d.ts.map +0 -1
  148. package/dist/mcp/handlers/context.js +0 -16
  149. package/dist/mcp/handlers/context.js.map +0 -1
  150. package/dist/mcp/handlers/index.d.ts +0 -11
  151. package/dist/mcp/handlers/index.d.ts.map +0 -1
  152. package/dist/mcp/handlers/index.js +0 -11
  153. package/dist/mcp/handlers/index.js.map +0 -1
  154. package/dist/mcp/handlers/lending.d.ts +0 -73
  155. package/dist/mcp/handlers/lending.d.ts.map +0 -1
  156. package/dist/mcp/handlers/lending.js +0 -134
  157. package/dist/mcp/handlers/lending.js.map +0 -1
  158. package/dist/mcp/handlers/multi-swap.d.ts +0 -27
  159. package/dist/mcp/handlers/multi-swap.d.ts.map +0 -1
  160. package/dist/mcp/handlers/multi-swap.js +0 -65
  161. package/dist/mcp/handlers/multi-swap.js.map +0 -1
  162. package/dist/mcp/handlers/portfolio.d.ts +0 -7
  163. package/dist/mcp/handlers/portfolio.d.ts.map +0 -1
  164. package/dist/mcp/handlers/portfolio.js +0 -10
  165. package/dist/mcp/handlers/portfolio.js.map +0 -1
  166. package/dist/mcp/handlers/staking.d.ts +0 -68
  167. package/dist/mcp/handlers/staking.d.ts.map +0 -1
  168. package/dist/mcp/handlers/staking.js +0 -119
  169. package/dist/mcp/handlers/staking.js.map +0 -1
  170. package/dist/mcp/handlers/trade.d.ts +0 -23
  171. package/dist/mcp/handlers/trade.d.ts.map +0 -1
  172. package/dist/mcp/handlers/trade.js +0 -63
  173. package/dist/mcp/handlers/trade.js.map +0 -1
  174. package/dist/mcp/handlers/utils.d.ts +0 -20
  175. package/dist/mcp/handlers/utils.d.ts.map +0 -1
  176. package/dist/mcp/handlers/utils.js +0 -21
  177. package/dist/mcp/handlers/utils.js.map +0 -1
  178. package/dist/mcp/handlers/wallet.d.ts +0 -34
  179. package/dist/mcp/handlers/wallet.d.ts.map +0 -1
  180. package/dist/mcp/handlers/wallet.js +0 -98
  181. package/dist/mcp/handlers/wallet.js.map +0 -1
  182. package/dist/mcp/handlers.d.ts +0 -108
  183. package/dist/mcp/handlers.d.ts.map +0 -1
  184. package/dist/mcp/handlers.js +0 -325
  185. package/dist/mcp/handlers.js.map +0 -1
  186. package/dist/mcp/server.d.ts +0 -2
  187. package/dist/mcp/server.d.ts.map +0 -1
  188. package/dist/mcp/server.js +0 -54
  189. package/dist/mcp/server.js.map +0 -1
  190. package/dist/mcp/tools/auth.d.ts +0 -3
  191. package/dist/mcp/tools/auth.d.ts.map +0 -1
  192. package/dist/mcp/tools/auth.js +0 -25
  193. package/dist/mcp/tools/auth.js.map +0 -1
  194. package/dist/mcp/tools/error-handling.d.ts +0 -12
  195. package/dist/mcp/tools/error-handling.d.ts.map +0 -1
  196. package/dist/mcp/tools/error-handling.js +0 -22
  197. package/dist/mcp/tools/error-handling.js.map +0 -1
  198. package/dist/mcp/tools/index.d.ts +0 -11
  199. package/dist/mcp/tools/index.d.ts.map +0 -1
  200. package/dist/mcp/tools/index.js +0 -19
  201. package/dist/mcp/tools/index.js.map +0 -1
  202. package/dist/mcp/tools/lending.d.ts +0 -3
  203. package/dist/mcp/tools/lending.d.ts.map +0 -1
  204. package/dist/mcp/tools/lending.js +0 -71
  205. package/dist/mcp/tools/lending.js.map +0 -1
  206. package/dist/mcp/tools/staking.d.ts +0 -3
  207. package/dist/mcp/tools/staking.d.ts.map +0 -1
  208. package/dist/mcp/tools/staking.js +0 -50
  209. package/dist/mcp/tools/staking.js.map +0 -1
  210. package/dist/mcp/tools/trade.d.ts +0 -3
  211. package/dist/mcp/tools/trade.d.ts.map +0 -1
  212. package/dist/mcp/tools/trade.js +0 -63
  213. package/dist/mcp/tools/trade.js.map +0 -1
  214. package/dist/mcp/tools/wallet.d.ts +0 -3
  215. package/dist/mcp/tools/wallet.d.ts.map +0 -1
  216. package/dist/mcp/tools/wallet.js +0 -27
  217. package/dist/mcp/tools/wallet.js.map +0 -1
  218. package/dist/mcp/tools.d.ts +0 -3
  219. package/dist/mcp/tools.d.ts.map +0 -1
  220. package/dist/mcp/tools.js +0 -240
  221. package/dist/mcp/tools.js.map +0 -1
  222. package/dist/services/api/client.d.ts +0 -14
  223. package/dist/services/api/client.d.ts.map +0 -1
  224. package/dist/services/api/client.js +0 -50
  225. package/dist/services/api/client.js.map +0 -1
  226. package/dist/services/auth/session.d.ts +0 -16
  227. package/dist/services/auth/session.d.ts.map +0 -1
  228. package/dist/services/auth/session.js +0 -57
  229. package/dist/services/auth/session.js.map +0 -1
  230. package/dist/services/batch/batch.d.ts +0 -35
  231. package/dist/services/batch/batch.d.ts.map +0 -1
  232. package/dist/services/batch/batch.js +0 -110
  233. package/dist/services/batch/batch.js.map +0 -1
  234. package/dist/services/config/config.d.ts +0 -24
  235. package/dist/services/config/config.d.ts.map +0 -1
  236. package/dist/services/config/config.js +0 -82
  237. package/dist/services/config/config.js.map +0 -1
  238. package/dist/services/fibrous/balances.d.ts +0 -8
  239. package/dist/services/fibrous/balances.d.ts.map +0 -1
  240. package/dist/services/fibrous/balances.js +0 -23
  241. package/dist/services/fibrous/balances.js.map +0 -1
  242. package/dist/services/fibrous/config.d.ts +0 -4
  243. package/dist/services/fibrous/config.d.ts.map +0 -1
  244. package/dist/services/fibrous/config.js +0 -4
  245. package/dist/services/fibrous/config.js.map +0 -1
  246. package/dist/services/fibrous/health.d.ts +0 -5
  247. package/dist/services/fibrous/health.d.ts.map +0 -1
  248. package/dist/services/fibrous/health.js +0 -24
  249. package/dist/services/fibrous/health.js.map +0 -1
  250. package/dist/services/fibrous/route.d.ts +0 -52
  251. package/dist/services/fibrous/route.d.ts.map +0 -1
  252. package/dist/services/fibrous/route.js +0 -127
  253. package/dist/services/fibrous/route.js.map +0 -1
  254. package/dist/services/fibrous/tokens.d.ts +0 -6
  255. package/dist/services/fibrous/tokens.d.ts.map +0 -1
  256. package/dist/services/fibrous/tokens.js +0 -34
  257. package/dist/services/fibrous/tokens.js.map +0 -1
  258. package/dist/services/portfolio/portfolio.d.ts +0 -33
  259. package/dist/services/portfolio/portfolio.d.ts.map +0 -1
  260. package/dist/services/portfolio/portfolio.js +0 -101
  261. package/dist/services/portfolio/portfolio.js.map +0 -1
  262. package/dist/services/simulate/simulate.d.ts +0 -10
  263. package/dist/services/simulate/simulate.d.ts.map +0 -1
  264. package/dist/services/simulate/simulate.js +0 -58
  265. package/dist/services/simulate/simulate.js.map +0 -1
  266. package/dist/services/staking/staking.d.ts +0 -49
  267. package/dist/services/staking/staking.d.ts.map +0 -1
  268. package/dist/services/staking/staking.js +0 -175
  269. package/dist/services/staking/staking.js.map +0 -1
  270. package/dist/services/staking/validators.d.ts +0 -5
  271. package/dist/services/staking/validators.d.ts.map +0 -1
  272. package/dist/services/staking/validators.js +0 -14
  273. package/dist/services/staking/validators.js.map +0 -1
  274. package/dist/services/starkzap/client.d.ts +0 -19
  275. package/dist/services/starkzap/client.d.ts.map +0 -1
  276. package/dist/services/starkzap/client.js +0 -88
  277. package/dist/services/starkzap/client.js.map +0 -1
  278. package/dist/services/starkzap/config.d.ts +0 -6
  279. package/dist/services/starkzap/config.d.ts.map +0 -1
  280. package/dist/services/starkzap/config.js +0 -13
  281. package/dist/services/starkzap/config.js.map +0 -1
  282. package/dist/services/tokens/balances.d.ts +0 -8
  283. package/dist/services/tokens/balances.d.ts.map +0 -1
  284. package/dist/services/tokens/balances.js +0 -23
  285. package/dist/services/tokens/balances.js.map +0 -1
  286. package/dist/services/tokens/tokens.d.ts +0 -4
  287. package/dist/services/tokens/tokens.d.ts.map +0 -1
  288. package/dist/services/tokens/tokens.js +0 -27
  289. package/dist/services/tokens/tokens.js.map +0 -1
  290. package/dist/services/vesu/api.d.ts +0 -28
  291. package/dist/services/vesu/api.d.ts.map +0 -1
  292. package/dist/services/vesu/api.js +0 -91
  293. package/dist/services/vesu/api.js.map +0 -1
  294. package/dist/services/vesu/config.d.ts +0 -9
  295. package/dist/services/vesu/config.d.ts.map +0 -1
  296. package/dist/services/vesu/config.js +0 -32
  297. package/dist/services/vesu/config.js.map +0 -1
  298. package/dist/services/vesu/index.d.ts +0 -5
  299. package/dist/services/vesu/index.d.ts.map +0 -1
  300. package/dist/services/vesu/index.js +0 -5
  301. package/dist/services/vesu/index.js.map +0 -1
  302. package/dist/services/vesu/lending.d.ts +0 -21
  303. package/dist/services/vesu/lending.d.ts.map +0 -1
  304. package/dist/services/vesu/lending.js +0 -262
  305. package/dist/services/vesu/lending.js.map +0 -1
  306. package/dist/services/vesu/pools.d.ts +0 -11
  307. package/dist/services/vesu/pools.d.ts.map +0 -1
  308. package/dist/services/vesu/pools.js +0 -23
  309. package/dist/services/vesu/pools.js.map +0 -1
  310. package/scripts/patch-esm.mjs +0 -151
@@ -1,376 +0,0 @@
1
- import { Amount, fromAddress } from "starkzap";
2
- import { requireSession } from "../../services/auth/session.js";
3
- import { initSDKAndWallet } from "../../services/starkzap/client.js";
4
- import * as stakingService from "../../services/staking/staking.js";
5
- import { getValidators, findValidator } from "../../services/staking/validators.js";
6
- import { createSpinner, formatResult, formatTable, formatError } from "../../lib/format.js";
7
- import { validateAddress } from "../../lib/validation.js";
8
- import { resolveToken } from "../../services/tokens/tokens.js";
9
- import { simulateTransaction } from "../../services/simulate/simulate.js";
10
- export function registerStakeCommand(program) {
11
- program
12
- .command("stake")
13
- .description("Stake tokens in a delegation pool (smart stake: enter or add)")
14
- .argument("<amount>", "Amount to stake")
15
- .option("-p, --pool <address>", "Staking pool contract address")
16
- .option("-v, --validator <name>", "Validator name or staker address (auto-finds pool by token)")
17
- .option("-t, --token <symbol>", "Token to stake (default: STRK)", "STRK")
18
- .option("--simulate", "Estimate fees and validate without executing")
19
- .addHelpText("after", "\nExamples:\n $ starkfi stake 10 STRK -v karnot\n $ starkfi stake 50 STRK -v fibrous --simulate\n $ starkfi stake 100 STRK -p 0x04a3...")
20
- .action(async (amount, opts) => {
21
- if (!opts.pool && !opts.validator) {
22
- console.error("Provide --pool <address> or --validator <name>");
23
- process.exit(1);
24
- }
25
- const tokenSymbol = opts.token.toUpperCase();
26
- const spinner = createSpinner(`Staking ${tokenSymbol}...`).start();
27
- try {
28
- const session = requireSession();
29
- const { sdk, wallet } = await initSDKAndWallet(session);
30
- await wallet.ensureReady({ deploy: "if_needed" });
31
- let poolAddress = opts.pool;
32
- if (!poolAddress) {
33
- const validator = findValidator(opts.validator, session.network);
34
- if (!validator) {
35
- spinner.fail(`Validator '${opts.validator}' not found`);
36
- process.exit(1);
37
- }
38
- const pools = await stakingService.getValidatorPools(sdk, validator.stakerAddress.toString());
39
- const matched = stakingService.resolvePoolForToken(pools, tokenSymbol);
40
- poolAddress = matched.poolContract;
41
- }
42
- else {
43
- poolAddress = validateAddress(poolAddress);
44
- }
45
- if (opts.simulate) {
46
- spinner.text = "Simulating stake...";
47
- const token = resolveToken(tokenSymbol);
48
- const parsedAmount = Amount.parse(amount, token);
49
- const builder = wallet.tx().stake(fromAddress(poolAddress), parsedAmount);
50
- const sim = await simulateTransaction(builder);
51
- if (sim.success) {
52
- spinner.succeed("Simulation complete");
53
- }
54
- else {
55
- spinner.fail("Simulation failed");
56
- }
57
- console.log(formatResult({
58
- mode: "SIMULATION (no TX sent)",
59
- amount: `${amount} ${tokenSymbol}`,
60
- pool: poolAddress,
61
- estimatedFee: sim.estimatedFee,
62
- estimatedFeeUsd: sim.estimatedFeeUsd,
63
- calls: sim.callCount,
64
- ...(sim.revertReason ? { revertReason: sim.revertReason } : {}),
65
- }));
66
- return;
67
- }
68
- const result = await stakingService.stake(wallet, poolAddress, amount, tokenSymbol);
69
- spinner.succeed("Staking confirmed");
70
- console.log(formatResult({
71
- amount: `${amount} ${tokenSymbol}`,
72
- pool: poolAddress,
73
- txHash: result.hash,
74
- explorer: result.explorerUrl,
75
- }));
76
- }
77
- catch (error) {
78
- spinner.fail("Staking failed");
79
- console.error(formatError(error));
80
- process.exit(1);
81
- }
82
- });
83
- }
84
- export function registerUnstakeCommand(program) {
85
- program
86
- .command("unstake")
87
- .description("Unstake tokens (2-step: intent → exit after cooldown)")
88
- .argument("<action>", "'intent' to declare exit or 'exit' to complete withdrawal")
89
- .option("-p, --pool <address>", "Pool contract address")
90
- .option("-v, --validator <name>", "Validator name (use with --token to find pool)")
91
- .option("-t, --token <symbol>", "Token symbol (default: STRK)", "STRK")
92
- .option("-a, --amount <amount>", "Amount to unstake (required for intent)")
93
- .addHelpText("after", "\nNote: Unstaking is a 2-step process with a cooldown period.\n\nExamples:\n $ starkfi unstake intent -v karnot -a 10\n $ starkfi unstake exit -v karnot")
94
- .action(async (action, opts) => {
95
- if (!opts.pool && !opts.validator) {
96
- console.error("Provide --pool <address> or --validator <name>");
97
- process.exit(1);
98
- }
99
- const tokenSymbol = opts.token.toUpperCase();
100
- const spinner = createSpinner("Processing unstake...").start();
101
- try {
102
- const session = requireSession();
103
- const { sdk, wallet } = await initSDKAndWallet(session);
104
- await wallet.ensureReady({ deploy: "if_needed" });
105
- let poolAddress;
106
- if (opts.pool) {
107
- poolAddress = validateAddress(opts.pool);
108
- }
109
- else {
110
- const validator = findValidator(opts.validator, session.network);
111
- if (!validator) {
112
- spinner.fail(`Validator '${opts.validator}' not found`);
113
- process.exit(1);
114
- }
115
- const pools = await stakingService.getValidatorPools(sdk, validator.stakerAddress.toString());
116
- const matched = stakingService.resolvePoolForToken(pools, tokenSymbol);
117
- poolAddress = matched.poolContract;
118
- }
119
- if (action === "intent") {
120
- if (!opts.amount) {
121
- spinner.fail("Amount is required for exit intent");
122
- process.exit(1);
123
- }
124
- const result = await stakingService.exitPoolIntent(wallet, poolAddress, opts.amount, tokenSymbol);
125
- spinner.succeed("Exit intent declared");
126
- console.log(formatResult({
127
- action: "exit_intent",
128
- amount: `${opts.amount} ${tokenSymbol}`,
129
- txHash: result.hash,
130
- explorer: result.explorerUrl,
131
- note: "Wait for cooldown, then run: starkfi unstake exit --validator <name>",
132
- }));
133
- }
134
- else if (action === "exit") {
135
- const result = await stakingService.exitPool(wallet, poolAddress);
136
- spinner.succeed("Exit complete");
137
- console.log(formatResult({
138
- action: "exit_complete",
139
- txHash: result.hash,
140
- explorer: result.explorerUrl,
141
- }));
142
- }
143
- else {
144
- spinner.fail("Action must be 'intent' or 'exit'");
145
- process.exit(1);
146
- }
147
- }
148
- catch (error) {
149
- spinner.fail("Unstake failed");
150
- console.error(formatError(error));
151
- process.exit(1);
152
- }
153
- });
154
- }
155
- export function registerRewardsCommand(program) {
156
- program
157
- .command("rewards")
158
- .description("Claim or compound accumulated staking rewards")
159
- .option("--validator <nameOrAddress>", "Validator name (e.g., Fibrous) or address")
160
- .option("--pool <address>", "Specific staking pool address")
161
- .option("-t, --token <symbol>", "Token symbol (default: STRK)", "STRK")
162
- .option("--claim", "Claim rewards currently available in the pool")
163
- .option("--compound", "Claim and immediately restake rewards")
164
- .addHelpText("after", "\nExamples:\n $ starkfi rewards --claim -v karnot\n $ starkfi rewards --compound -v fibrous\n $ starkfi rewards --claim --pool 0x04a3...")
165
- .action(async (opts) => {
166
- if (!opts.claim && !opts.compound) {
167
- console.error("\n Provide --claim or --compound. Use 'starkfi stake-status' to view positions.\n");
168
- process.exit(1);
169
- }
170
- if (!opts.pool && !opts.validator) {
171
- console.error("Provide --pool <address> or --validator <name>");
172
- process.exit(1);
173
- }
174
- const tokenSymbol = opts.token.toUpperCase();
175
- const spinner = createSpinner("Fetching staking info...").start();
176
- try {
177
- const session = requireSession();
178
- const { sdk, wallet } = await initSDKAndWallet(session);
179
- let poolAddress;
180
- if (opts.pool) {
181
- poolAddress = validateAddress(opts.pool);
182
- }
183
- else {
184
- const validator = findValidator(opts.validator, session.network);
185
- if (!validator) {
186
- spinner.fail(`Validator '${opts.validator}' not found`);
187
- process.exit(1);
188
- }
189
- const pools = await stakingService.getValidatorPools(sdk, validator.stakerAddress.toString());
190
- const matched = stakingService.resolvePoolForToken(pools, tokenSymbol);
191
- poolAddress = matched.poolContract;
192
- }
193
- if (opts.compound) {
194
- await wallet.ensureReady({ deploy: "if_needed" });
195
- spinner.text = "Compounding rewards...";
196
- const result = await stakingService.compoundRewards(wallet, poolAddress);
197
- spinner.succeed("Rewards compounded");
198
- console.log(formatResult({
199
- compounded: result.compounded,
200
- txHash: result.hash,
201
- explorer: result.explorerUrl,
202
- }));
203
- return;
204
- }
205
- if (opts.claim) {
206
- await wallet.ensureReady({ deploy: "if_needed" });
207
- spinner.text = "Claiming rewards...";
208
- const result = await stakingService.claimRewards(wallet, poolAddress);
209
- spinner.succeed("Rewards claimed");
210
- console.log(formatResult({
211
- txHash: result.hash,
212
- explorer: result.explorerUrl,
213
- }));
214
- return;
215
- }
216
- }
217
- catch (error) {
218
- spinner.fail("Failed to fetch staking info");
219
- console.error(formatError(error));
220
- process.exit(1);
221
- }
222
- });
223
- }
224
- export function registerPoolsCommand(program) {
225
- program
226
- .command("pools")
227
- .description("List staking pools for a validator (by name or address)")
228
- .argument("<validator>", "Validator name (e.g. 'Karnot') or staker address")
229
- .option("--json", "Output raw JSON")
230
- .addHelpText("after", "\nExamples:\n $ starkfi pools karnot\n $ starkfi pools fibrous --json\n $ starkfi pools 0x04a3...")
231
- .action(async (validator, opts) => {
232
- const spinner = createSpinner("Fetching pools...").start();
233
- try {
234
- const session = requireSession();
235
- const { sdk, wallet } = await initSDKAndWallet(session);
236
- const found = findValidator(validator, session.network);
237
- const stakerAddress = found
238
- ? found.stakerAddress.toString()
239
- : validateAddress(validator);
240
- const pools = await stakingService.getValidatorPools(sdk, stakerAddress, wallet);
241
- spinner.stop();
242
- if (pools.length === 0) {
243
- console.log(" No pools found for this validator.\n");
244
- return;
245
- }
246
- const validatorLabel = found ? `${found.name} (${stakerAddress})` : stakerAddress;
247
- if (opts.json) {
248
- console.log(JSON.stringify({
249
- validator: validatorLabel,
250
- pools: pools.map((p) => ({
251
- address: p.poolContract,
252
- token: p.tokenSymbol,
253
- amount: p.amount,
254
- commission: p.commission,
255
- })),
256
- }, null, 2));
257
- return;
258
- }
259
- console.log(`\n Validator: ${validatorLabel}\n`);
260
- console.log(formatTable(["Pool Address", "Token", "Amount", "Commission"], pools.map((p) => [
261
- p.poolContract,
262
- p.tokenSymbol,
263
- p.amount,
264
- p.commission !== undefined ? `${p.commission}%` : "N/A",
265
- ])));
266
- console.log();
267
- }
268
- catch (error) {
269
- spinner.fail("Failed to fetch pools");
270
- console.error(formatError(error));
271
- process.exit(1);
272
- }
273
- });
274
- }
275
- export function registerValidatorsCommand(program) {
276
- program
277
- .command("validators")
278
- .description("List all known Starknet staking validators")
279
- .option("--json", "Output raw JSON")
280
- .addHelpText("after", "\nExamples:\n $ starkfi validators\n $ starkfi validators --json")
281
- .action(async (opts) => {
282
- const spinner = createSpinner("Loading validators...").start();
283
- try {
284
- const session = requireSession();
285
- const validators = getValidators(session.network);
286
- spinner.stop();
287
- if (opts.json) {
288
- console.log(JSON.stringify({
289
- network: session.network,
290
- validators: validators.map((v) => ({
291
- name: v.name,
292
- stakerAddress: v.stakerAddress.toString(),
293
- })),
294
- }, null, 2));
295
- return;
296
- }
297
- console.log(`\n Validators on ${session.network} (${validators.length} total)\n`);
298
- console.log(formatTable(["Name", "Staker Address"], validators.map((v) => [v.name, v.stakerAddress.toString()])));
299
- console.log();
300
- }
301
- catch (error) {
302
- spinner.fail("Failed to load validators");
303
- console.error(formatError(error));
304
- process.exit(1);
305
- }
306
- });
307
- }
308
- export function registerStakeStatusCommand(program) {
309
- program
310
- .command("stake-status")
311
- .description("Show a consolidated staking dashboard across validators and pools")
312
- .argument("[validator]", "Optional validator name to filter results (e.g. Fibrous)")
313
- .option("--json", "Output raw JSON")
314
- .action(async (validatorTarget, opts) => {
315
- const spinner = createSpinner("Scanning staking positions...").start();
316
- try {
317
- const session = requireSession();
318
- const { sdk, wallet } = await initSDKAndWallet(session);
319
- const overview = await stakingService.getStakingOverview(sdk, wallet, session.network, session.address, validatorTarget);
320
- spinner.stop();
321
- if (overview.positions.length === 0) {
322
- console.log("\n No active staking positions found.\n");
323
- return;
324
- }
325
- if (opts.json) {
326
- console.log(JSON.stringify({
327
- network: overview.network,
328
- positions: overview.positions,
329
- }, null, 2));
330
- return;
331
- }
332
- console.log(formatResult({
333
- network: overview.network,
334
- positions: overview.positions.length,
335
- }));
336
- console.log();
337
- const hasUnpooling = overview.positions.some((p) => p.unpooling !== `${p.token} 0`);
338
- const headers = hasUnpooling
339
- ? [
340
- "Validator",
341
- "Token",
342
- "Pool",
343
- "Staked",
344
- "Rewards",
345
- "Total",
346
- "Unpooling",
347
- "Cooldown",
348
- "Commission",
349
- ]
350
- : ["Validator", "Token", "Pool", "Staked", "Rewards", "Total", "Commission"];
351
- const rows = overview.positions.map((p) => {
352
- const base = [
353
- p.validator,
354
- p.token,
355
- p.pool.slice(0, 10) + "…",
356
- p.staked,
357
- p.rewards,
358
- p.total,
359
- ];
360
- if (hasUnpooling) {
361
- base.push(p.unpooling, p.cooldownEndsAt ? new Date(p.cooldownEndsAt).toLocaleDateString() : "—");
362
- }
363
- base.push(p.commission);
364
- return base;
365
- });
366
- console.log(formatTable(headers, rows));
367
- console.log();
368
- }
369
- catch (error) {
370
- spinner.fail("Failed to fetch staking stats");
371
- console.error(formatError(error));
372
- process.exit(1);
373
- }
374
- });
375
- }
376
- //# sourceMappingURL=staking.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"staking.js","sourceRoot":"","sources":["../../../src/commands/staking/staking.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,KAAK,cAAc,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAE1E,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACpD,OAAO;SACL,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,+DAA+D,CAAC;SAC5E,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;SACvC,MAAM,CAAC,sBAAsB,EAAE,+BAA+B,CAAC;SAC/D,MAAM,CACN,wBAAwB,EACxB,6DAA6D,CAC7D;SACA,MAAM,CAAC,sBAAsB,EAAE,gCAAgC,EAAE,MAAM,CAAC;SACxE,MAAM,CAAC,YAAY,EAAE,8CAA8C,CAAC;SACpE,WAAW,CACX,OAAO,EACP,4IAA4I,CAC5I;SACA,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,IAAI,EAAE,EAAE;QACtC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACnC,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;YAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,aAAa,CAAC,WAAW,WAAW,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;QAEnE,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;YACjC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAExD,MAAM,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;YAElD,IAAI,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;YAE5B,IAAI,CAAC,WAAW,EAAE,CAAC;gBAClB,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;gBACjE,IAAI,CAAC,SAAS,EAAE,CAAC;oBAChB,OAAO,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS,aAAa,CAAC,CAAC;oBACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACjB,CAAC;gBACD,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,iBAAiB,CACnD,GAAG,EACH,SAAS,CAAC,aAAa,CAAC,QAAQ,EAAE,CAClC,CAAC;gBACF,MAAM,OAAO,GAAG,cAAc,CAAC,mBAAmB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;gBACvE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACP,WAAW,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;YAC5C,CAAC;YAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,OAAO,CAAC,IAAI,GAAG,qBAAqB,CAAC;gBACrC,MAAM,KAAK,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;gBACxC,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBACjD,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC,CAAC;gBAC1E,MAAM,GAAG,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;gBAE/C,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;oBACjB,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;gBACxC,CAAC;qBAAM,CAAC;oBACP,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBACnC,CAAC;gBAED,OAAO,CAAC,GAAG,CACV,YAAY,CAAC;oBACZ,IAAI,EAAE,yBAAyB;oBAC/B,MAAM,EAAE,GAAG,MAAM,IAAI,WAAW,EAAE;oBAClC,IAAI,EAAE,WAAW;oBACjB,YAAY,EAAE,GAAG,CAAC,YAAY;oBAC9B,eAAe,EAAE,GAAG,CAAC,eAAe;oBACpC,KAAK,EAAE,GAAG,CAAC,SAAS;oBACpB,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC/D,CAAC,CACF,CAAC;gBACF,OAAO;YACR,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YAEpF,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;YACrC,OAAO,CAAC,GAAG,CACV,YAAY,CAAC;gBACZ,MAAM,EAAE,GAAG,MAAM,IAAI,WAAW,EAAE;gBAClC,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,MAAM,CAAC,IAAI;gBACnB,QAAQ,EAAE,MAAM,CAAC,WAAW;aAC5B,CAAC,CACF,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC/B,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACF,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACtD,OAAO;SACL,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,uDAAuD,CAAC;SACpE,QAAQ,CAAC,UAAU,EAAE,2DAA2D,CAAC;SACjF,MAAM,CAAC,sBAAsB,EAAE,uBAAuB,CAAC;SACvD,MAAM,CAAC,wBAAwB,EAAE,gDAAgD,CAAC;SAClF,MAAM,CAAC,sBAAsB,EAAE,8BAA8B,EAAE,MAAM,CAAC;SACtE,MAAM,CAAC,uBAAuB,EAAE,yCAAyC,CAAC;SAC1E,WAAW,CACX,OAAO,EACP,4JAA4J,CAC5J;SACA,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,IAAI,EAAE,EAAE;QACtC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACnC,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;YAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,aAAa,CAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE,CAAC;QAE/D,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;YACjC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAExD,MAAM,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;YAElD,IAAI,WAAmB,CAAC;YAExB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACf,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACP,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;gBACjE,IAAI,CAAC,SAAS,EAAE,CAAC;oBAChB,OAAO,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS,aAAa,CAAC,CAAC;oBACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACjB,CAAC;gBACD,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,iBAAiB,CACnD,GAAG,EACH,SAAS,CAAC,aAAa,CAAC,QAAQ,EAAE,CAClC,CAAC;gBACF,MAAM,OAAO,GAAG,cAAc,CAAC,mBAAmB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;gBACvE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;YACpC,CAAC;YAED,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;oBAClB,OAAO,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;oBACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACjB,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,cAAc,CACjD,MAAM,EACN,WAAW,EACX,IAAI,CAAC,MAAM,EACX,WAAW,CACX,CAAC;gBAEF,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;gBACxC,OAAO,CAAC,GAAG,CACV,YAAY,CAAC;oBACZ,MAAM,EAAE,aAAa;oBACrB,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,IAAI,WAAW,EAAE;oBACvC,MAAM,EAAE,MAAM,CAAC,IAAI;oBACnB,QAAQ,EAAE,MAAM,CAAC,WAAW;oBAC5B,IAAI,EAAE,sEAAsE;iBAC5E,CAAC,CACF,CAAC;YACH,CAAC;iBAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;gBAElE,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;gBACjC,OAAO,CAAC,GAAG,CACV,YAAY,CAAC;oBACZ,MAAM,EAAE,eAAe;oBACvB,MAAM,EAAE,MAAM,CAAC,IAAI;oBACnB,QAAQ,EAAE,MAAM,CAAC,WAAW;iBAC5B,CAAC,CACF,CAAC;YACH,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;gBAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC/B,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACF,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACtD,OAAO;SACL,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,+CAA+C,CAAC;SAC5D,MAAM,CAAC,6BAA6B,EAAE,2CAA2C,CAAC;SAClF,MAAM,CAAC,kBAAkB,EAAE,+BAA+B,CAAC;SAC3D,MAAM,CAAC,sBAAsB,EAAE,8BAA8B,EAAE,MAAM,CAAC;SACtE,MAAM,CAAC,SAAS,EAAE,+CAA+C,CAAC;SAClE,MAAM,CAAC,YAAY,EAAE,uCAAuC,CAAC;SAC7D,WAAW,CACX,OAAO,EACP,6IAA6I,CAC7I;SACA,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnC,OAAO,CAAC,KAAK,CACZ,oFAAoF,CACpF,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACnC,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;YAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,aAAa,CAAC,0BAA0B,CAAC,CAAC,KAAK,EAAE,CAAC;QAElE,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;YACjC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAExD,IAAI,WAAmB,CAAC;YAExB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACf,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACP,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;gBACjE,IAAI,CAAC,SAAS,EAAE,CAAC;oBAChB,OAAO,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS,aAAa,CAAC,CAAC;oBACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACjB,CAAC;gBACD,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,iBAAiB,CACnD,GAAG,EACH,SAAS,CAAC,aAAa,CAAC,QAAQ,EAAE,CAClC,CAAC;gBACF,MAAM,OAAO,GAAG,cAAc,CAAC,mBAAmB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;gBACvE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;YACpC,CAAC;YAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,MAAM,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;gBAClD,OAAO,CAAC,IAAI,GAAG,wBAAwB,CAAC;gBACxC,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,eAAe,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;gBAEzE,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;gBACtC,OAAO,CAAC,GAAG,CACV,YAAY,CAAC;oBACZ,UAAU,EAAE,MAAM,CAAC,UAAU;oBAC7B,MAAM,EAAE,MAAM,CAAC,IAAI;oBACnB,QAAQ,EAAE,MAAM,CAAC,WAAW;iBAC5B,CAAC,CACF,CAAC;gBACF,OAAO;YACR,CAAC;YAED,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAChB,MAAM,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;gBAClD,OAAO,CAAC,IAAI,GAAG,qBAAqB,CAAC;gBACrC,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;gBAEtE,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;gBACnC,OAAO,CAAC,GAAG,CACV,YAAY,CAAC;oBACZ,MAAM,EAAE,MAAM,CAAC,IAAI;oBACnB,QAAQ,EAAE,MAAM,CAAC,WAAW;iBAC5B,CAAC,CACF,CAAC;gBACF,OAAO;YACR,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;YAC7C,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACF,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACpD,OAAO;SACL,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,yDAAyD,CAAC;SACtE,QAAQ,CAAC,aAAa,EAAE,kDAAkD,CAAC;SAC3E,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC;SACnC,WAAW,CACX,OAAO,EACP,sGAAsG,CACtG;SACA,MAAM,CAAC,KAAK,EAAE,SAAiB,EAAE,IAAI,EAAE,EAAE;QACzC,MAAM,OAAO,GAAG,aAAa,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC;QAE3D,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;YACjC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAExD,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACxD,MAAM,aAAa,GAAG,KAAK;gBAC1B,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE;gBAChC,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YAE9B,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,iBAAiB,CAAC,GAAG,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;YAEjF,OAAO,CAAC,IAAI,EAAE,CAAC;YAEf,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;gBACtD,OAAO;YACR,CAAC;YAED,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,aAAa,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC;YAElF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CACV,IAAI,CAAC,SAAS,CACb;oBACC,SAAS,EAAE,cAAc;oBACzB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBACxB,OAAO,EAAE,CAAC,CAAC,YAAY;wBACvB,KAAK,EAAE,CAAC,CAAC,WAAW;wBACpB,MAAM,EAAE,CAAC,CAAC,MAAM;wBAChB,UAAU,EAAE,CAAC,CAAC,UAAU;qBACxB,CAAC,CAAC;iBACH,EACD,IAAI,EACJ,CAAC,CACD,CACD,CAAC;gBACF,OAAO;YACR,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,kBAAkB,cAAc,IAAI,CAAC,CAAC;YAElD,OAAO,CAAC,GAAG,CACV,WAAW,CACV,CAAC,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,EACjD,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBAChB,CAAC,CAAC,YAAY;gBACd,CAAC,CAAC,WAAW;gBACb,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,KAAK;aACvD,CAAC,CACF,CACD,CAAC;YACF,OAAO,CAAC,GAAG,EAAE,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACtC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACF,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,OAAgB;IACzD,OAAO;SACL,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CAAC,4CAA4C,CAAC;SACzD,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC;SACnC,WAAW,CAAC,OAAO,EAAE,oEAAoE,CAAC;SAC1F,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,OAAO,GAAG,aAAa,CAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE,CAAC;QAE/D,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;YACjC,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAElD,OAAO,CAAC,IAAI,EAAE,CAAC;YAEf,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CACV,IAAI,CAAC,SAAS,CACb;oBACC,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAClC,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,aAAa,EAAE,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE;qBACzC,CAAC,CAAC;iBACH,EACD,IAAI,EACJ,CAAC,CACD,CACD,CAAC;gBACF,OAAO;YACR,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,qBAAqB,OAAO,CAAC,OAAO,KAAK,UAAU,CAAC,MAAM,WAAW,CAAC,CAAC;YAEnF,OAAO,CAAC,GAAG,CACV,WAAW,CACV,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAC1B,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,CAC3D,CACD,CAAC;YACF,OAAO,CAAC,GAAG,EAAE,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAC1C,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACF,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,OAAgB;IAC1D,OAAO;SACL,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CAAC,mEAAmE,CAAC;SAChF,QAAQ,CAAC,aAAa,EAAE,0DAA0D,CAAC;SACnF,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC;SACnC,MAAM,CAAC,KAAK,EAAE,eAAmC,EAAE,IAAI,EAAE,EAAE;QAC3D,MAAM,OAAO,GAAG,aAAa,CAAC,+BAA+B,CAAC,CAAC,KAAK,EAAE,CAAC;QAEvE,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;YACjC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAExD,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,kBAAkB,CACvD,GAAG,EACH,MAAM,EACN,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,OAAO,EACf,eAAe,CACf,CAAC;YAEF,OAAO,CAAC,IAAI,EAAE,CAAC;YAEf,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrC,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;gBACxD,OAAO;YACR,CAAC;YAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CACV,IAAI,CAAC,SAAS,CACb;oBACC,OAAO,EAAE,QAAQ,CAAC,OAAO;oBACzB,SAAS,EAAE,QAAQ,CAAC,SAAS;iBAC7B,EACD,IAAI,EACJ,CAAC,CACD,CACD,CAAC;gBACF,OAAO;YACR,CAAC;YAED,OAAO,CAAC,GAAG,CACV,YAAY,CAAC;gBACZ,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,MAAM;aACpC,CAAC,CACF,CAAC;YAEF,OAAO,CAAC,GAAG,EAAE,CAAC;YAEd,MAAM,YAAY,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;YAEpF,MAAM,OAAO,GAAG,YAAY;gBAC3B,CAAC,CAAC;oBACA,WAAW;oBACX,OAAO;oBACP,MAAM;oBACN,QAAQ;oBACR,SAAS;oBACT,OAAO;oBACP,WAAW;oBACX,UAAU;oBACV,YAAY;iBACZ;gBACF,CAAC,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YAE9E,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACzC,MAAM,IAAI,GAAG;oBACZ,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,KAAK;oBACP,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG;oBACzB,CAAC,CAAC,MAAM;oBACR,CAAC,CAAC,OAAO;oBACT,CAAC,CAAC,KAAK;iBACP,CAAC;gBACF,IAAI,YAAY,EAAE,CAAC;oBAClB,IAAI,CAAC,IAAI,CACR,CAAC,CAAC,SAAS,EACX,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,GAAG,CACxE,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;gBACxB,OAAO,IAAI,CAAC;YACb,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,EAAE,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;YAC9C,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACF,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { Command } from "commander";
2
- export declare function registerStatusCommand(program: Command): void;
3
- //# sourceMappingURL=status.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/commands/system/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuC5D"}
@@ -1,41 +0,0 @@
1
- import { loadSession } from "../../services/auth/session.js";
2
- import { checkFibrousHealth } from "../../services/fibrous/health.js";
3
- import { createSpinner, formatResult, success, warn, formatError } from "../../lib/format.js";
4
- export function registerStatusCommand(program) {
5
- program
6
- .command("status")
7
- .description("Check authentication status and Fibrous API health")
8
- .action(async () => {
9
- const spinner = createSpinner("Checking status...").start();
10
- try {
11
- const session = loadSession();
12
- const health = await checkFibrousHealth();
13
- spinner.stop();
14
- if (!session) {
15
- console.log(warn("Not authenticated"));
16
- console.log(" Run 'starkfi auth login' to connect a wallet.\n");
17
- }
18
- else {
19
- console.log(success("Authenticated"));
20
- console.log(formatResult({
21
- type: session.type,
22
- network: session.network,
23
- address: session.address,
24
- }));
25
- console.log();
26
- }
27
- if (health.ok) {
28
- console.log(success("Fibrous Starknet API: Online"));
29
- }
30
- else {
31
- console.log(warn(`Fibrous Starknet API: ${health.message}`));
32
- }
33
- }
34
- catch (error) {
35
- spinner.fail("Status check failed");
36
- console.error(formatError(error));
37
- process.exit(1);
38
- }
39
- });
40
- }
41
- //# sourceMappingURL=status.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/commands/system/status.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE9F,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACrD,OAAO;SACL,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,oDAAoD,CAAC;SACjE,MAAM,CAAC,KAAK,IAAI,EAAE;QAClB,MAAM,OAAO,GAAG,aAAa,CAAC,oBAAoB,CAAC,CAAC,KAAK,EAAE,CAAC;QAE5D,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,MAAM,kBAAkB,EAAE,CAAC;YAE1C,OAAO,CAAC,IAAI,EAAE,CAAC;YAEf,IAAI,CAAC,OAAO,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;gBACvC,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;YAClE,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;gBACtC,OAAO,CAAC,GAAG,CACV,YAAY,CAAC;oBACZ,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,OAAO,EAAE,OAAO,CAAC,OAAO;iBACxB,CAAC,CACF,CAAC;gBACF,OAAO,CAAC,GAAG,EAAE,CAAC;YACf,CAAC;YAED,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC,CAAC;YACtD,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,yBAAyB,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC9D,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACF,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { Command } from "commander";
2
- export declare function registerMultiSwapCommand(program: Command): void;
3
- //# sourceMappingURL=multi-swap.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"multi-swap.d.ts","sourceRoot":"","sources":["../../../src/commands/trade/multi-swap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8CzC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiI/D"}
@@ -1,132 +0,0 @@
1
- import { Amount, fromAddress } from "starkzap";
2
- import { requireSession } from "../../services/auth/session.js";
3
- import { initSDKAndWallet } from "../../services/starkzap/client.js";
4
- import { resolveToken } from "../../services/tokens/tokens.js";
5
- import { getCalldataBatch, getRouteBatch, } from "../../services/fibrous/route.js";
6
- import { FIBROUS_ROUTER_ADDRESS } from "../../services/fibrous/config.js";
7
- import { simulateTransaction } from "../../services/simulate/simulate.js";
8
- import { createSpinner, formatTable, formatError } from "../../lib/format.js";
9
- import { ErrorCode, StarkfiError } from "../../lib/errors.js";
10
- import { outputResult } from "../../lib/cli-helpers.js";
11
- // Parse "100 USDC>ETH, 50 USDC>STRK" into structured pairs.
12
- function parsePairs(input) {
13
- const segments = input.split(",").map((s) => s.trim());
14
- const parsed = [];
15
- for (const seg of segments) {
16
- const match = seg.match(/^([\d.]+)\s+(\w+)>(\w+)$/i);
17
- if (!match) {
18
- throw new StarkfiError(ErrorCode.INVALID_AMOUNT, `Invalid pair format: "${seg}". Expected: "100 USDC>ETH"`);
19
- }
20
- parsed.push({
21
- amount: match[1],
22
- fromToken: match[2].toUpperCase(),
23
- toToken: match[3].toUpperCase(),
24
- });
25
- }
26
- if (parsed.length < 2) {
27
- throw new StarkfiError(ErrorCode.INVALID_AMOUNT, "Multi-swap requires at least 2 pairs. Use regular swap for single pairs.");
28
- }
29
- return parsed;
30
- }
31
- export function registerMultiSwapCommand(program) {
32
- program
33
- .command("multi-swap")
34
- .description("Swap multiple token pairs in one transaction (max 3, via Fibrous batch)")
35
- .argument("<pairs>", 'Swap pairs (e.g. "100 USDC>ETH, 50 USDC>STRK")')
36
- .option("-s, --slippage <percent>", "Slippage tolerance %", "1")
37
- .option("--simulate", "Estimate fees and validate without executing")
38
- .option("--json", "Output raw JSON")
39
- .addHelpText("after", '\nExamples:\n $ starkfi multi-swap "100 USDC>ETH, 50 USDC>STRK"\n $ starkfi multi-swap "0.1 ETH>USDC, 0.05 ETH>STRK" --slippage 0.5\n $ starkfi multi-swap "100 USDC>ETH, 50 STRK>ETH" --simulate\n\nPair format: "<amount> <from>><to>" — separate pairs with commas.')
40
- .action(async (pairsInput, opts) => {
41
- const spinner = createSpinner("Parsing swap pairs...").start();
42
- try {
43
- const parsed = parsePairs(pairsInput);
44
- const session = requireSession();
45
- const { wallet } = await initSDKAndWallet(session);
46
- await wallet.ensureReady({ deploy: "if_needed" });
47
- spinner.text = "Resolving tokens...";
48
- const pairs = await Promise.all(parsed.map(async (p) => {
49
- const tokenIn = resolveToken(p.fromToken);
50
- const tokenOut = resolveToken(p.toToken);
51
- const parsedAmount = Amount.parse(p.amount, tokenIn);
52
- return {
53
- tokenIn,
54
- tokenOut,
55
- amount: parsedAmount.toBase().toString(),
56
- };
57
- }));
58
- spinner.text = "Finding optimal routes...";
59
- const routes = await getRouteBatch(pairs);
60
- spinner.stop();
61
- console.log();
62
- console.log(formatTable(["#", "Input", "Output", "Route"], routes.map((r, i) => {
63
- const outDec = r.outputToken?.decimals ?? pairs[i].tokenOut.decimals;
64
- const outSym = r.outputToken?.symbol ?? pairs[i].tokenOut.symbol;
65
- const outAmount = Amount.fromRaw(BigInt(r.outputAmount), {
66
- ...pairs[i].tokenOut,
67
- decimals: outDec,
68
- }).toUnit();
69
- return [
70
- `${i + 1}`,
71
- `${parsed[i].amount} ${parsed[i].fromToken}`,
72
- `~${outAmount} ${outSym}`,
73
- `${r.route?.length ?? 0} step(s)`,
74
- ];
75
- })));
76
- console.log();
77
- spinner.start();
78
- spinner.text = "Generating calldata...";
79
- const calldataResults = await getCalldataBatch(pairs, parseFloat(opts.slippage), session.address);
80
- const builder = wallet.tx();
81
- for (let i = 0; i < pairs.length; i++) {
82
- const pair = pairs[i];
83
- const cd = calldataResults[i];
84
- const parsedAmount = Amount.parse(parsed[i].amount, pair.tokenIn);
85
- builder
86
- .approve(pair.tokenIn, fromAddress(FIBROUS_ROUTER_ADDRESS), parsedAmount)
87
- .add({
88
- contractAddress: FIBROUS_ROUTER_ADDRESS,
89
- entrypoint: "swap",
90
- calldata: cd.calldata,
91
- });
92
- }
93
- if (opts.simulate) {
94
- spinner.text = "Simulating transaction...";
95
- const sim = await simulateTransaction(builder);
96
- if (sim.success) {
97
- spinner.succeed("Simulation complete");
98
- }
99
- else {
100
- spinner.fail("Simulation failed");
101
- }
102
- const simResult = {
103
- mode: "SIMULATION (no TX sent)",
104
- pairs: pairs.length,
105
- estimatedFee: sim.estimatedFee,
106
- estimatedFeeUsd: sim.estimatedFeeUsd,
107
- calls: sim.callCount,
108
- ...(sim.revertReason ? { revertReason: sim.revertReason } : {}),
109
- };
110
- outputResult(simResult, opts);
111
- return;
112
- }
113
- spinner.text = "Executing multi-swap...";
114
- const tx = await builder.send();
115
- spinner.text = "Waiting for confirmation...";
116
- await tx.wait();
117
- spinner.succeed("Multi-swap confirmed");
118
- const txResult = {
119
- pairs: pairs.length,
120
- txHash: tx.hash,
121
- explorer: tx.explorerUrl,
122
- };
123
- outputResult(txResult, opts);
124
- }
125
- catch (error) {
126
- spinner.fail("Multi-swap failed");
127
- console.error(formatError(error));
128
- process.exit(1);
129
- }
130
- });
131
- }
132
- //# sourceMappingURL=multi-swap.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"multi-swap.js","sourceRoot":"","sources":["../../../src/commands/trade/multi-swap.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { Command } from "commander";
2
- export declare function registerStatusCommand(program: Command): void;
3
- //# sourceMappingURL=status.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/commands/trade/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyC5D"}