starkfi 0.1.0 → 0.3.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 (240) hide show
  1. package/LICENSE +1 -1
  2. package/MCP.md +292 -0
  3. package/README.md +424 -54
  4. package/dist/commands/auth/login.js +2 -2
  5. package/dist/commands/auth/login.js.map +1 -1
  6. package/dist/commands/auth/verify.d.ts.map +1 -1
  7. package/dist/commands/auth/verify.js +2 -2
  8. package/dist/commands/auth/verify.js.map +1 -1
  9. package/dist/commands/batch/batch.d.ts +3 -0
  10. package/dist/commands/batch/batch.d.ts.map +1 -0
  11. package/dist/commands/batch/batch.js +155 -0
  12. package/dist/commands/batch/batch.js.map +1 -0
  13. package/dist/commands/chain/tx-status.js +2 -2
  14. package/dist/commands/chain/tx-status.js.map +1 -1
  15. package/dist/commands/config/config.d.ts.map +1 -1
  16. package/dist/commands/config/config.js +23 -34
  17. package/dist/commands/config/config.js.map +1 -1
  18. package/dist/commands/lending/lending.d.ts +1 -0
  19. package/dist/commands/lending/lending.d.ts.map +1 -1
  20. package/dist/commands/lending/lending.js +197 -51
  21. package/dist/commands/lending/lending.js.map +1 -1
  22. package/dist/commands/portfolio/portfolio.d.ts +3 -0
  23. package/dist/commands/portfolio/portfolio.d.ts.map +1 -0
  24. package/dist/commands/portfolio/portfolio.js +76 -0
  25. package/dist/commands/portfolio/portfolio.js.map +1 -0
  26. package/dist/commands/staking/staking.d.ts +1 -1
  27. package/dist/commands/staking/staking.d.ts.map +1 -1
  28. package/dist/commands/staking/staking.js +144 -61
  29. package/dist/commands/staking/staking.js.map +1 -1
  30. package/dist/commands/trade/multi-swap.d.ts +3 -0
  31. package/dist/commands/trade/multi-swap.d.ts.map +1 -0
  32. package/dist/commands/trade/multi-swap.js +141 -0
  33. package/dist/commands/trade/multi-swap.js.map +1 -0
  34. package/dist/commands/trade/status.js +2 -2
  35. package/dist/commands/trade/status.js.map +1 -1
  36. package/dist/commands/trade/swap.d.ts.map +1 -1
  37. package/dist/commands/trade/swap.js +48 -12
  38. package/dist/commands/trade/swap.js.map +1 -1
  39. package/dist/commands/wallet/balance.d.ts.map +1 -1
  40. package/dist/commands/wallet/balance.js +20 -3
  41. package/dist/commands/wallet/balance.js.map +1 -1
  42. package/dist/commands/wallet/deploy.d.ts.map +1 -1
  43. package/dist/commands/wallet/deploy.js +2 -1
  44. package/dist/commands/wallet/deploy.js.map +1 -1
  45. package/dist/commands/wallet/send.d.ts.map +1 -1
  46. package/dist/commands/wallet/send.js +46 -9
  47. package/dist/commands/wallet/send.js.map +1 -1
  48. package/dist/index.js +162 -9
  49. package/dist/index.js.map +1 -1
  50. package/dist/lib/banner.d.ts +6 -0
  51. package/dist/lib/banner.d.ts.map +1 -0
  52. package/dist/lib/banner.js +78 -0
  53. package/dist/lib/banner.js.map +1 -0
  54. package/dist/lib/concurrency.d.ts +2 -0
  55. package/dist/lib/concurrency.d.ts.map +1 -0
  56. package/dist/lib/concurrency.js +21 -0
  57. package/dist/lib/concurrency.js.map +1 -0
  58. package/dist/lib/config.d.ts +0 -11
  59. package/dist/lib/config.d.ts.map +1 -1
  60. package/dist/lib/config.js +0 -20
  61. package/dist/lib/config.js.map +1 -1
  62. package/dist/lib/errors.d.ts +2 -0
  63. package/dist/lib/errors.d.ts.map +1 -1
  64. package/dist/lib/errors.js +2 -0
  65. package/dist/lib/errors.js.map +1 -1
  66. package/dist/lib/fetch.d.ts +4 -0
  67. package/dist/lib/fetch.d.ts.map +1 -0
  68. package/dist/lib/fetch.js +13 -0
  69. package/dist/lib/fetch.js.map +1 -0
  70. package/dist/lib/format.d.ts +12 -2
  71. package/dist/lib/format.d.ts.map +1 -1
  72. package/dist/lib/format.js +86 -23
  73. package/dist/lib/format.js.map +1 -1
  74. package/dist/lib/retry.d.ts +8 -0
  75. package/dist/lib/retry.d.ts.map +1 -0
  76. package/dist/lib/retry.js +25 -0
  77. package/dist/lib/retry.js.map +1 -0
  78. package/dist/lib/types.d.ts +6 -0
  79. package/dist/lib/types.d.ts.map +1 -0
  80. package/dist/lib/types.js +2 -0
  81. package/dist/lib/types.js.map +1 -0
  82. package/dist/lib/validation.d.ts +0 -12
  83. package/dist/lib/validation.d.ts.map +1 -1
  84. package/dist/lib/validation.js +1 -23
  85. package/dist/lib/validation.js.map +1 -1
  86. package/dist/mcp/handlers/batch.d.ts +13 -0
  87. package/dist/mcp/handlers/batch.d.ts.map +1 -0
  88. package/dist/mcp/handlers/batch.js +33 -0
  89. package/dist/mcp/handlers/batch.js.map +1 -0
  90. package/dist/mcp/handlers/config.d.ts +1 -1
  91. package/dist/mcp/handlers/config.d.ts.map +1 -1
  92. package/dist/mcp/handlers/config.js +11 -12
  93. package/dist/mcp/handlers/config.js.map +1 -1
  94. package/dist/mcp/handlers/index.d.ts +3 -0
  95. package/dist/mcp/handlers/index.d.ts.map +1 -1
  96. package/dist/mcp/handlers/index.js +3 -0
  97. package/dist/mcp/handlers/index.js.map +1 -1
  98. package/dist/mcp/handlers/lending.d.ts +12 -1
  99. package/dist/mcp/handlers/lending.d.ts.map +1 -1
  100. package/dist/mcp/handlers/lending.js +67 -23
  101. package/dist/mcp/handlers/lending.js.map +1 -1
  102. package/dist/mcp/handlers/multi-swap.d.ts +27 -0
  103. package/dist/mcp/handlers/multi-swap.d.ts.map +1 -0
  104. package/dist/mcp/handlers/multi-swap.js +73 -0
  105. package/dist/mcp/handlers/multi-swap.js.map +1 -0
  106. package/dist/mcp/handlers/portfolio.d.ts +7 -0
  107. package/dist/mcp/handlers/portfolio.d.ts.map +1 -0
  108. package/dist/mcp/handlers/portfolio.js +11 -0
  109. package/dist/mcp/handlers/portfolio.js.map +1 -0
  110. package/dist/mcp/handlers/staking.d.ts +13 -1
  111. package/dist/mcp/handlers/staking.d.ts.map +1 -1
  112. package/dist/mcp/handlers/staking.js +18 -5
  113. package/dist/mcp/handlers/staking.js.map +1 -1
  114. package/dist/mcp/handlers/trade.d.ts +1 -0
  115. package/dist/mcp/handlers/trade.d.ts.map +1 -1
  116. package/dist/mcp/handlers/trade.js +27 -13
  117. package/dist/mcp/handlers/trade.js.map +1 -1
  118. package/dist/mcp/handlers/wallet.d.ts +1 -0
  119. package/dist/mcp/handlers/wallet.d.ts.map +1 -1
  120. package/dist/mcp/handlers/wallet.js +24 -5
  121. package/dist/mcp/handlers/wallet.js.map +1 -1
  122. package/dist/mcp/server.d.ts.map +1 -1
  123. package/dist/mcp/server.js +45 -4
  124. package/dist/mcp/server.js.map +1 -1
  125. package/dist/mcp/tools/auth.d.ts +3 -0
  126. package/dist/mcp/tools/auth.d.ts.map +1 -0
  127. package/dist/mcp/tools/auth.js +17 -0
  128. package/dist/mcp/tools/auth.js.map +1 -0
  129. package/dist/mcp/tools/error-handling.d.ts +12 -0
  130. package/dist/mcp/tools/error-handling.d.ts.map +1 -0
  131. package/dist/mcp/tools/error-handling.js +28 -0
  132. package/dist/mcp/tools/error-handling.js.map +1 -0
  133. package/dist/mcp/tools/index.d.ts +11 -0
  134. package/dist/mcp/tools/index.d.ts.map +1 -0
  135. package/dist/mcp/tools/index.js +19 -0
  136. package/dist/mcp/tools/index.js.map +1 -0
  137. package/dist/mcp/tools/lending.d.ts +3 -0
  138. package/dist/mcp/tools/lending.d.ts.map +1 -0
  139. package/dist/mcp/tools/lending.js +71 -0
  140. package/dist/mcp/tools/lending.js.map +1 -0
  141. package/dist/mcp/tools/staking.d.ts +3 -0
  142. package/dist/mcp/tools/staking.d.ts.map +1 -0
  143. package/dist/mcp/tools/staking.js +50 -0
  144. package/dist/mcp/tools/staking.js.map +1 -0
  145. package/dist/mcp/tools/trade.d.ts +3 -0
  146. package/dist/mcp/tools/trade.d.ts.map +1 -0
  147. package/dist/mcp/tools/trade.js +63 -0
  148. package/dist/mcp/tools/trade.js.map +1 -0
  149. package/dist/mcp/tools/wallet.d.ts +3 -0
  150. package/dist/mcp/tools/wallet.d.ts.map +1 -0
  151. package/dist/mcp/tools/wallet.js +27 -0
  152. package/dist/mcp/tools/wallet.js.map +1 -0
  153. package/dist/mcp/tools.d.ts.map +1 -1
  154. package/dist/mcp/tools.js +125 -41
  155. package/dist/mcp/tools.js.map +1 -1
  156. package/dist/services/api/client.d.ts +0 -12
  157. package/dist/services/api/client.d.ts.map +1 -1
  158. package/dist/services/api/client.js +7 -16
  159. package/dist/services/api/client.js.map +1 -1
  160. package/dist/services/auth/session.d.ts +1 -7
  161. package/dist/services/auth/session.d.ts.map +1 -1
  162. package/dist/services/auth/session.js +21 -0
  163. package/dist/services/auth/session.js.map +1 -1
  164. package/dist/services/batch/batch.d.ts +35 -0
  165. package/dist/services/batch/batch.d.ts.map +1 -0
  166. package/dist/services/batch/batch.js +110 -0
  167. package/dist/services/batch/batch.js.map +1 -0
  168. package/dist/services/config/config.d.ts +3 -0
  169. package/dist/services/config/config.d.ts.map +1 -1
  170. package/dist/services/config/config.js +30 -1
  171. package/dist/services/config/config.js.map +1 -1
  172. package/dist/services/fibrous/config.d.ts +4 -0
  173. package/dist/services/fibrous/config.d.ts.map +1 -0
  174. package/dist/services/fibrous/config.js +4 -0
  175. package/dist/services/fibrous/config.js.map +1 -0
  176. package/dist/services/fibrous/health.js +1 -1
  177. package/dist/services/fibrous/health.js.map +1 -1
  178. package/dist/services/fibrous/route.d.ts +15 -6
  179. package/dist/services/fibrous/route.d.ts.map +1 -1
  180. package/dist/services/fibrous/route.js +64 -3
  181. package/dist/services/fibrous/route.js.map +1 -1
  182. package/dist/services/portfolio/portfolio.d.ts +31 -0
  183. package/dist/services/portfolio/portfolio.d.ts.map +1 -0
  184. package/dist/services/portfolio/portfolio.js +104 -0
  185. package/dist/services/portfolio/portfolio.js.map +1 -0
  186. package/dist/services/simulate/simulate.d.ts +10 -0
  187. package/dist/services/simulate/simulate.d.ts.map +1 -0
  188. package/dist/services/simulate/simulate.js +57 -0
  189. package/dist/services/simulate/simulate.js.map +1 -0
  190. package/dist/services/staking/staking.d.ts +9 -30
  191. package/dist/services/staking/staking.d.ts.map +1 -1
  192. package/dist/services/staking/staking.js +44 -52
  193. package/dist/services/staking/staking.js.map +1 -1
  194. package/dist/services/starkzap/client.d.ts +2 -1
  195. package/dist/services/starkzap/client.d.ts.map +1 -1
  196. package/dist/services/starkzap/client.js +39 -21
  197. package/dist/services/starkzap/client.js.map +1 -1
  198. package/dist/services/starkzap/config.d.ts +6 -0
  199. package/dist/services/starkzap/config.d.ts.map +1 -0
  200. package/dist/services/starkzap/config.js +13 -0
  201. package/dist/services/starkzap/config.js.map +1 -0
  202. package/dist/services/tokens/balances.d.ts.map +1 -1
  203. package/dist/services/tokens/balances.js +8 -8
  204. package/dist/services/tokens/balances.js.map +1 -1
  205. package/dist/services/tokens/tokens.d.ts +2 -3
  206. package/dist/services/tokens/tokens.d.ts.map +1 -1
  207. package/dist/services/tokens/tokens.js +3 -8
  208. package/dist/services/tokens/tokens.js.map +1 -1
  209. package/dist/services/vesu/api.d.ts +28 -0
  210. package/dist/services/vesu/api.d.ts.map +1 -0
  211. package/dist/services/vesu/api.js +91 -0
  212. package/dist/services/vesu/api.js.map +1 -0
  213. package/dist/services/vesu/config.d.ts +9 -0
  214. package/dist/services/vesu/config.d.ts.map +1 -0
  215. package/dist/services/vesu/config.js +32 -0
  216. package/dist/services/vesu/config.js.map +1 -0
  217. package/dist/services/vesu/index.d.ts +2 -0
  218. package/dist/services/vesu/index.d.ts.map +1 -1
  219. package/dist/services/vesu/index.js +2 -0
  220. package/dist/services/vesu/index.js.map +1 -1
  221. package/dist/services/vesu/lending.d.ts +9 -5
  222. package/dist/services/vesu/lending.d.ts.map +1 -1
  223. package/dist/services/vesu/lending.js +176 -60
  224. package/dist/services/vesu/lending.js.map +1 -1
  225. package/dist/services/vesu/pools.d.ts +6 -12
  226. package/dist/services/vesu/pools.d.ts.map +1 -1
  227. package/dist/services/vesu/pools.js +11 -31
  228. package/dist/services/vesu/pools.js.map +1 -1
  229. package/package.json +88 -82
  230. package/skills/README.md +59 -0
  231. package/skills/authenticate-wallet/SKILL.md +119 -0
  232. package/skills/balance/SKILL.md +80 -0
  233. package/skills/batch/SKILL.md +118 -0
  234. package/skills/config/SKILL.md +144 -0
  235. package/skills/lending/SKILL.md +209 -0
  236. package/skills/multi-swap/SKILL.md +95 -0
  237. package/skills/portfolio/SKILL.md +82 -0
  238. package/skills/send/SKILL.md +82 -0
  239. package/skills/staking/SKILL.md +188 -0
  240. package/skills/trade/SKILL.md +92 -0
@@ -0,0 +1,155 @@
1
+ import { requireSession } from "../../services/auth/session.js";
2
+ import { initSDKAndWallet } from "../../services/starkzap/client.js";
3
+ import { buildBatch } from "../../services/batch/batch.js";
4
+ import { simulateTransaction } from "../../services/simulate/simulate.js";
5
+ import { createSpinner, formatResult, formatError } from "../../lib/format.js";
6
+ import { ErrorCode, StarkfiError } from "../../lib/errors.js";
7
+ /** Collect repeatable options into array. */
8
+ function collect(value, previous) {
9
+ return previous.concat([value]);
10
+ }
11
+ /** Parse "100 USDC ETH" into a typed BatchOperation. */
12
+ function parseOperation(type, raw) {
13
+ const parts = raw.trim().split(/\s+/);
14
+ switch (type) {
15
+ case "swap": {
16
+ if (parts.length < 3) {
17
+ throw new StarkfiError(ErrorCode.INVALID_AMOUNT, `Invalid --swap format: "${raw}". Expected: "100 USDC ETH"`);
18
+ }
19
+ return {
20
+ type: "swap",
21
+ params: { amount: parts[0], from_token: parts[1], to_token: parts[2] },
22
+ };
23
+ }
24
+ case "stake": {
25
+ if (parts.length < 2) {
26
+ throw new StarkfiError(ErrorCode.INVALID_AMOUNT, `Invalid --stake format: "${raw}". Expected: "50 STRK karnot" or "50 STRK 0xPool"`);
27
+ }
28
+ const target = parts[2];
29
+ const isAddress = target?.startsWith("0x");
30
+ return {
31
+ type: "stake",
32
+ params: {
33
+ amount: parts[0],
34
+ token: parts[1],
35
+ ...(isAddress ? { pool: target } : { validator: target }),
36
+ },
37
+ };
38
+ }
39
+ case "supply": {
40
+ if (parts.length < 3) {
41
+ throw new StarkfiError(ErrorCode.INVALID_AMOUNT, `Invalid --supply format: "${raw}". Expected: "200 USDC 0xPool"`);
42
+ }
43
+ return {
44
+ type: "supply",
45
+ params: { amount: parts[0], token: parts[1], pool: parts[2] },
46
+ };
47
+ }
48
+ case "send": {
49
+ if (parts.length < 3) {
50
+ throw new StarkfiError(ErrorCode.INVALID_AMOUNT, `Invalid --send format: "${raw}". Expected: "10 STRK 0x04a3..."`);
51
+ }
52
+ return {
53
+ type: "send",
54
+ params: { amount: parts[0], token: parts[1], to: parts[2] },
55
+ };
56
+ }
57
+ default:
58
+ throw new StarkfiError(ErrorCode.INVALID_CONFIG, `Unknown operation type: ${type}`);
59
+ }
60
+ }
61
+ export function registerBatchCommand(program) {
62
+ program
63
+ .command("batch")
64
+ .description("Execute multiple DeFi operations in a single Starknet transaction (multicall)")
65
+ .option("--swap <args>", 'Swap tokens: "100 USDC ETH" (repeatable)', collect, [])
66
+ .option("--stake <args>", 'Stake tokens: "50 STRK karnot" (repeatable)', collect, [])
67
+ .option("--supply <args>", 'Supply to Vesu: "200 USDC 0xPool" (repeatable)', collect, [])
68
+ .option("--send <args>", 'Send tokens: "10 STRK 0xAddr" (repeatable)', collect, [])
69
+ .option("--simulate", "Estimate fees and validate without executing")
70
+ .option("--json", "Output raw JSON")
71
+ .addHelpText("after", `
72
+ Examples:
73
+ $ starkfi batch --swap "0.1 ETH USDC" --stake "50 STRK karnot"
74
+ $ starkfi batch --swap "100 USDC ETH" --supply "200 USDC 0xABC" --simulate
75
+
76
+ Flag formats:
77
+ --swap "<amount> <from> <to>" e.g. "0.5 ETH USDC"
78
+ --stake "<amount> <token> <validator>" e.g. "50 STRK karnot"
79
+ --supply "<amount> <token> <pool>" e.g. "200 USDC 0xABC..."
80
+ --send "<amount> <token> <address>" e.g. "10 STRK 0x04a3..."
81
+
82
+ Minimum 2 operations required. Each flag can be repeated.`)
83
+ .action(async (opts) => {
84
+ const spinner = createSpinner("Preparing batch...").start();
85
+ try {
86
+ const operations = [
87
+ ...opts.swap.map((s) => parseOperation("swap", s)),
88
+ ...opts.stake.map((s) => parseOperation("stake", s)),
89
+ ...opts.supply.map((s) => parseOperation("supply", s)),
90
+ ...opts.send.map((s) => parseOperation("send", s)),
91
+ ];
92
+ if (operations.length < 2) {
93
+ throw new StarkfiError(ErrorCode.INVALID_AMOUNT, "Batch requires at least 2 operations. Provide multiple --swap/--stake/--supply/--send options.");
94
+ }
95
+ const session = requireSession();
96
+ const { wallet } = await initSDKAndWallet(session);
97
+ await wallet.ensureReady({ deploy: "if_needed" });
98
+ spinner.text = "Building batch transaction...";
99
+ const { builder, summary } = await buildBatch(wallet, session, operations);
100
+ spinner.stop();
101
+ console.log("\n Batch Operations:\n");
102
+ summary.forEach((s, i) => console.log(` ${i + 1}. ${s}`));
103
+ console.log();
104
+ if (opts.simulate) {
105
+ spinner.start();
106
+ spinner.text = "Simulating batch...";
107
+ const sim = await simulateTransaction(builder);
108
+ if (sim.success) {
109
+ spinner.succeed("Simulation complete");
110
+ }
111
+ else {
112
+ spinner.fail("Simulation failed");
113
+ }
114
+ const simResult = {
115
+ mode: "SIMULATION (no TX sent)",
116
+ operations: operations.length,
117
+ estimatedFee: sim.estimatedFee,
118
+ estimatedFeeUsd: sim.estimatedFeeUsd,
119
+ calls: sim.callCount,
120
+ ...(sim.revertReason ? { revertReason: sim.revertReason } : {}),
121
+ };
122
+ if (opts.json) {
123
+ console.log(JSON.stringify(simResult, null, 2));
124
+ }
125
+ else {
126
+ console.log(formatResult(simResult));
127
+ }
128
+ return;
129
+ }
130
+ spinner.start();
131
+ spinner.text = "Executing batch...";
132
+ const tx = await builder.send();
133
+ spinner.text = "Waiting for confirmation...";
134
+ await tx.wait();
135
+ spinner.succeed("Batch confirmed");
136
+ const txResult = {
137
+ operations: operations.length,
138
+ txHash: tx.hash,
139
+ explorer: tx.explorerUrl,
140
+ };
141
+ if (opts.json) {
142
+ console.log(JSON.stringify(txResult, null, 2));
143
+ }
144
+ else {
145
+ console.log(formatResult(txResult));
146
+ }
147
+ }
148
+ catch (error) {
149
+ spinner.fail("Batch failed");
150
+ console.error(formatError(error));
151
+ process.exit(1);
152
+ }
153
+ });
154
+ }
155
+ //# sourceMappingURL=batch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch.js","sourceRoot":"","sources":["../../../src/commands/batch/batch.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { requireSession } from "../../services/auth/session.js";
2
2
  import { createSDK } from "../../services/starkzap/client.js";
3
3
  import { ConfigService } from "../../services/config/config.js";
4
- import { createSpinner, formatResult } from "../../lib/format.js";
4
+ import { createSpinner, formatResult, formatError } from "../../lib/format.js";
5
5
  import { explorerUrl } from "../../lib/config.js";
6
6
  export function registerTxStatusCommand(program) {
7
7
  program
@@ -31,7 +31,7 @@ export function registerTxStatusCommand(program) {
31
31
  }
32
32
  catch (error) {
33
33
  spinner.fail("Failed to get transaction status");
34
- console.error(error instanceof Error ? error.message : error);
34
+ console.error(formatError(error));
35
35
  process.exit(1);
36
36
  }
37
37
  });
@@ -1 +1 @@
1
- {"version":3,"file":"tx-status.js","sourceRoot":"","sources":["../../../src/commands/chain/tx-status.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACvD,OAAO;SACL,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,kCAAkC,CAAC;SAC/C,QAAQ,CAAC,QAAQ,EAAE,0BAA0B,CAAC;SAC9C,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;QAC9B,MAAM,OAAO,GAAG,aAAa,CAAC,yBAAyB,CAAC,CAAC,KAAK,EAAE,CAAC;QAEjE,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;YACjC,MAAM,aAAa,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;YAClD,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAuB,CAAC;YACjE,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAE/C,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;YAE3D,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;YAErC,MAAM,SAAS,GAAG,YAAY,IAAI,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAC/E,MAAM,WAAW,GAChB,cAAc,IAAI,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAEtE,OAAO,CAAC,GAAG,CACV,YAAY,CAAC;gBACZ,IAAI;gBACJ,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC;gBAC7C,SAAS;gBACT,WAAW;gBACX,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,QAAQ,EAAE,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC;aAC5C,CAAC,CACF,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;YACjD,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACF,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"tx-status.js","sourceRoot":"","sources":["../../../src/commands/chain/tx-status.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACvD,OAAO;SACL,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,kCAAkC,CAAC;SAC/C,QAAQ,CAAC,QAAQ,EAAE,0BAA0B,CAAC;SAC9C,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;QAC9B,MAAM,OAAO,GAAG,aAAa,CAAC,yBAAyB,CAAC,CAAC,KAAK,EAAE,CAAC;QAEjE,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;YACjC,MAAM,aAAa,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;YAClD,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAuB,CAAC;YACjE,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAE/C,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;YAE3D,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;YAErC,MAAM,SAAS,GAAG,YAAY,IAAI,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAC/E,MAAM,WAAW,GAChB,cAAc,IAAI,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAEtE,OAAO,CAAC,GAAG,CACV,YAAY,CAAC;gBACZ,IAAI;gBACJ,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC;gBAC7C,SAAS;gBACT,WAAW;gBACX,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,QAAQ,EAAE,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC;aAC5C,CAAC,CACF,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;YACjD,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 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/commands/config/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8I5D"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/commands/config/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2I5D"}
@@ -1,12 +1,13 @@
1
1
  import { ConfigService } from "../../services/config/config.js";
2
2
  import { success, formatResult, warn } from "../../lib/format.js";
3
- import { GASLESS_SUPPORTED_TOKENS } from "../../lib/config.js";
3
+ import { GASLESS_SUPPORTED_TOKENS } from "../../services/starkzap/config.js";
4
4
  export function registerConfigCommand(program) {
5
5
  const configCmd = program.command("config").description("Manage starkfi configuration");
6
6
  configCmd
7
7
  .command("set-rpc")
8
- .description("Set custom RPC URL for Starknet")
9
- .argument("<url>", "RPC URL")
8
+ .description("Set a custom RPC URL for Starknet")
9
+ .argument("<url>", "RPC endpoint URL")
10
+ .addHelpText("after", "\nExample:\n $ starkfi config set-rpc https://starknet-mainnet.g.alchemy.com/v2/<key>")
10
11
  .action((url) => {
11
12
  const configService = ConfigService.getInstance();
12
13
  configService.set("rpcUrl", url);
@@ -14,7 +15,8 @@ export function registerConfigCommand(program) {
14
15
  });
15
16
  configCmd
16
17
  .command("get-rpc")
17
- .description("Show current RPC URL")
18
+ .description("Show the current RPC URL")
19
+ .addHelpText("after", "\nExample:\n $ starkfi config get-rpc")
18
20
  .action(() => {
19
21
  const configService = ConfigService.getInstance();
20
22
  const rpcUrl = configService.get("rpcUrl");
@@ -26,6 +28,7 @@ export function registerConfigCommand(program) {
26
28
  .command("set-network")
27
29
  .description("Set default network (mainnet or sepolia)")
28
30
  .argument("<network>", "mainnet or sepolia")
31
+ .addHelpText("after", "\nExamples:\n $ starkfi config set-network mainnet\n $ starkfi config set-network sepolia")
29
32
  .action((network) => {
30
33
  if (!["mainnet", "sepolia"].includes(network)) {
31
34
  console.log(warn("Network must be 'mainnet' or 'sepolia'"));
@@ -35,11 +38,12 @@ export function registerConfigCommand(program) {
35
38
  configService.set("network", network);
36
39
  console.log(success(`Network set to: ${network}`));
37
40
  });
38
- // Gasfree mode: developer sponsors gas via AVNU API key
41
+ // Gasfree mode: developer sponsors gas via Paymaster API key
39
42
  configCmd
40
43
  .command("set-gasfree")
41
- .description("Enable/disable Gasfree mode — developer sponsors all gas costs via AVNU Paymaster")
44
+ .description("Enable/disable Gasfree mode — developer sponsors gas via Paymaster")
42
45
  .argument("<mode>", "on or off")
46
+ .addHelpText("after", "\nNote:\n Gasfree and Gasless modes are mutually exclusive.\n Enabling gasfree clears any gas token setting.\n\nExamples:\n $ starkfi config set-gasfree on\n $ starkfi config set-gasfree off")
43
47
  .action((mode) => {
44
48
  if (!["on", "off"].includes(mode)) {
45
49
  console.log(warn("Mode must be 'on' or 'off'"));
@@ -50,39 +54,23 @@ export function registerConfigCommand(program) {
50
54
  if (mode === "on") {
51
55
  // Gasfree and Gasless are mutually exclusive
52
56
  configService.delete("gasToken");
53
- console.log(success("Gasfree mode: on (developer sponsors gas via AVNU)"));
57
+ console.log(success("Gasfree mode: on (developer sponsors gas via Paymaster)"));
54
58
  }
55
59
  else {
56
- console.log(success("Gasfree mode: off"));
60
+ console.log(success("Gasfree mode: off — using gasless mode (default: STRK)"));
57
61
  }
58
62
  });
59
- // Kept as hidden alias for backwards compatibility
60
- configCmd
61
- .command("set-gasless", { hidden: true })
62
- .description("Alias for set-gasfree (deprecated)")
63
- .argument("<mode>", "on or off")
64
- .action((mode) => {
65
- if (!["on", "off"].includes(mode)) {
66
- console.log(warn("Mode must be 'on' or 'off'"));
67
- process.exit(1);
68
- }
69
- const configService = ConfigService.getInstance();
70
- configService.set("gasfreeMode", mode === "on");
71
- if (mode === "on")
72
- configService.delete("gasToken");
73
- console.log(warn("Hint: 'set-gasless' is deprecated. Use 'starkfi config set-gasfree' instead."));
74
- console.log(success(`Gasfree mode: ${mode}`));
75
- });
76
- // Gasless mode: user pays gas in a non-STRK token
63
+ // Gas token selection: default is STRK, user can switch to any supported token
77
64
  configCmd
78
65
  .command("set-gas-token")
79
- .description(`Set gas payment token for Gasless mode user pays gas in this token instead of STRK.\nSupported: ${GASLESS_SUPPORTED_TOKENS.join(", ")}\nUse 'off' to disable Gasless mode.`)
80
- .argument("<token>", `Token symbol or 'off'. Supported: ${GASLESS_SUPPORTED_TOKENS.join(", ")}`)
66
+ .description(`Set gas payment token via Paymaster (default: STRK, supported: ${GASLESS_SUPPORTED_TOKENS.join(", ")})`)
67
+ .argument("<token>", `Token symbol or 'reset' (supported: ${GASLESS_SUPPORTED_TOKENS.join(", ")})`)
68
+ .addHelpText("after", `\nExamples:\n $ starkfi config set-gas-token ETH\n $ starkfi config set-gas-token USDC\n $ starkfi config set-gas-token reset # revert to STRK`)
81
69
  .action((token) => {
82
70
  const configService = ConfigService.getInstance();
83
- if (token.toLowerCase() === "off") {
71
+ if (["off", "reset", "default"].includes(token.toLowerCase())) {
84
72
  configService.delete("gasToken");
85
- console.log(success("Gasless mode disabled — reverting to default STRK gas"));
73
+ console.log(success("Gas token reset to default: STRK"));
86
74
  return;
87
75
  }
88
76
  const upper = token.toUpperCase();
@@ -93,11 +81,12 @@ export function registerConfigCommand(program) {
93
81
  // Gasless and Gasfree are mutually exclusive
94
82
  configService.delete("gasfreeMode");
95
83
  configService.set("gasToken", upper);
96
- console.log(success(`Gasless mode: on — gas will be paid in ${upper} (no STRK needed)`));
84
+ console.log(success(`Gas token set to: ${upper} — gas will be paid in ${upper} via Paymaster`));
97
85
  });
98
86
  configCmd
99
87
  .command("list")
100
88
  .description("Show all configuration settings")
89
+ .addHelpText("after", "\nExample:\n $ starkfi config list")
101
90
  .action(() => {
102
91
  const configService = ConfigService.getInstance();
103
92
  const all = configService.getAll();
@@ -108,11 +97,11 @@ export function registerConfigCommand(program) {
108
97
  // Human-readable fee mode summary
109
98
  const gasfreeMode = all.gasfreeMode === true;
110
99
  const gasToken = all.gasToken;
111
- let feeModeSummary = "default (pays STRK)";
100
+ let feeModeSummary = "gasless (pays STRK via Paymaster)";
112
101
  if (gasfreeMode)
113
- feeModeSummary = "gasfree (developer-sponsored via AVNU)";
102
+ feeModeSummary = "gasfree (developer-sponsored via Paymaster)";
114
103
  else if (gasToken)
115
- feeModeSummary = `gasless (user pays in ${gasToken})`;
104
+ feeModeSummary = `gasless (pays ${gasToken} via Paymaster)`;
116
105
  console.log(formatResult({
117
106
  ...all,
118
107
  feeMode: feeModeSummary,
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/commands/config/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/commands/config/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAE7E,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACrD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,8BAA8B,CAAC,CAAC;IAExF,SAAS;SACP,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,mCAAmC,CAAC;SAChD,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;SACrC,WAAW,CACX,OAAO,EACP,wFAAwF,CACxF;SACA,MAAM,CAAC,CAAC,GAAW,EAAE,EAAE;QACvB,MAAM,aAAa,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;QAClD,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,mBAAmB,GAAG,EAAE,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEJ,SAAS;SACP,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,0BAA0B,CAAC;SACvC,WAAW,CAAC,OAAO,EAAE,wCAAwC,CAAC;SAC9D,MAAM,CAAC,GAAG,EAAE;QACZ,MAAM,aAAa,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;QAClD,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAuB,CAAC;QACjE,OAAO,CAAC,GAAG,CACV,YAAY,CAAC;YACZ,MAAM,EAAE,MAAM,IAAI,2BAA2B;SAC7C,CAAC,CACF,CAAC;IACH,CAAC,CAAC,CAAC;IAEJ,SAAS;SACP,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,0CAA0C,CAAC;SACvD,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;SAC3C,WAAW,CACX,OAAO,EACP,6FAA6F,CAC7F;SACA,MAAM,CAAC,CAAC,OAAe,EAAE,EAAE;QAC3B,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC,CAAC;YAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;QACD,MAAM,aAAa,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;QAClD,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,mBAAmB,OAAO,EAAE,CAAC,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEJ,6DAA6D;IAC7D,SAAS;SACP,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,oEAAoE,CAAC;SACjF,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;SAC/B,WAAW,CACX,OAAO,EACP,oMAAoM,CACpM;SACA,MAAM,CAAC,CAAC,IAAY,EAAE,EAAE;QACxB,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;QACD,MAAM,aAAa,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;QAClD,aAAa,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,KAAK,IAAI,CAAC,CAAC;QAChD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACnB,6CAA6C;YAC7C,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,yDAAyD,CAAC,CAAC,CAAC;QACjF,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,wDAAwD,CAAC,CAAC,CAAC;QAChF,CAAC;IACF,CAAC,CAAC,CAAC;IAEJ,+EAA+E;IAC/E,SAAS;SACP,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CACX,kEAAkE,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACxG;SACA,QAAQ,CACR,SAAS,EACT,uCAAuC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC7E;SACA,WAAW,CACX,OAAO,EACP,sJAAsJ,CACtJ;SACA,MAAM,CAAC,CAAC,KAAa,EAAE,EAAE;QACzB,MAAM,aAAa,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;QAClD,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAC/D,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC,CAAC;YACzD,OAAO;QACR,CAAC;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QAClC,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/C,OAAO,CAAC,GAAG,CACV,IAAI,CACH,sBAAsB,KAAK,iBAAiB,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACjF,CACD,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;QACD,6CAA6C;QAC7C,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACpC,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CACV,OAAO,CAAC,qBAAqB,KAAK,0BAA0B,KAAK,gBAAgB,CAAC,CAClF,CAAC;IACH,CAAC,CAAC,CAAC;IAEJ,SAAS;SACP,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,iCAAiC,CAAC;SAC9C,WAAW,CAAC,OAAO,EAAE,qCAAqC,CAAC;SAC3D,MAAM,CAAC,GAAG,EAAE;QACZ,MAAM,aAAa,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;QAClD,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;QAEnC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;YACvD,OAAO;QACR,CAAC;QAED,kCAAkC;QAClC,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,KAAK,IAAI,CAAC;QAC7C,MAAM,QAAQ,GAAG,GAAG,CAAC,QAA8B,CAAC;QACpD,IAAI,cAAc,GAAG,mCAAmC,CAAC;QACzD,IAAI,WAAW;YAAE,cAAc,GAAG,6CAA6C,CAAC;aAC3E,IAAI,QAAQ;YAAE,cAAc,GAAG,iBAAiB,QAAQ,iBAAiB,CAAC;QAE/E,OAAO,CAAC,GAAG,CACV,YAAY,CAAC;YACZ,GAAI,GAA+B;YACnC,OAAO,EAAE,cAAc;SACvB,CAAC,CACF,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -4,5 +4,6 @@ export declare function registerLendSupplyCommand(program: Command): void;
4
4
  export declare function registerLendWithdrawCommand(program: Command): void;
5
5
  export declare function registerLendBorrowCommand(program: Command): void;
6
6
  export declare function registerLendRepayCommand(program: Command): void;
7
+ export declare function registerLendCloseCommand(program: Command): void;
7
8
  export declare function registerLendStatusCommand(program: Command): void;
8
9
  //# sourceMappingURL=lending.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lending.d.ts","sourceRoot":"","sources":["../../../src/commands/lending/lending.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAczC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuC/D;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoChE;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyClE;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmDhE;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8C/D;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4ChE"}
1
+ {"version":3,"file":"lending.d.ts","sourceRoot":"","sources":["../../../src/commands/lending/lending.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0CzC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmH/D;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyChE;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyClE;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0EhE;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8C/D;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8C/D;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4FhE"}