@kasarlabs/vesu-mcp 0.1.2 → 0.1.4

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 (84) hide show
  1. package/build/index.js +86 -6
  2. package/build/index.js.map +1 -1
  3. package/build/interfaces/index.d.ts +661 -8
  4. package/build/interfaces/index.js +57 -1
  5. package/build/interfaces/index.js.map +1 -1
  6. package/build/lib/abis/ekuboCore.d.ts +92 -0
  7. package/build/lib/abis/ekuboCore.js +1341 -0
  8. package/build/lib/abis/ekuboCore.js.map +1 -0
  9. package/build/lib/abis/multiplyAbi.d.ts +245 -0
  10. package/build/lib/abis/multiplyAbi.js +341 -0
  11. package/build/lib/abis/multiplyAbi.js.map +1 -0
  12. package/build/lib/abis/poolAbi.d.ts +289 -0
  13. package/build/lib/abis/poolAbi.js +402 -0
  14. package/build/lib/abis/poolAbi.js.map +1 -0
  15. package/build/lib/abis/routerAbi.d.ts +88 -0
  16. package/build/lib/abis/routerAbi.js +86 -0
  17. package/build/lib/abis/routerAbi.js.map +1 -0
  18. package/build/lib/constants/index.d.ts +9 -3
  19. package/build/lib/constants/index.js +8 -3
  20. package/build/lib/constants/index.js.map +1 -1
  21. package/build/lib/utils/contracts.d.ts +535 -89
  22. package/build/lib/utils/contracts.js +39 -5
  23. package/build/lib/utils/contracts.js.map +1 -1
  24. package/build/lib/utils/ekubo.d.ts +55 -0
  25. package/build/lib/utils/ekubo.js +81 -0
  26. package/build/lib/utils/ekubo.js.map +1 -0
  27. package/build/lib/utils/getEkuboQuote.d.ts +4 -0
  28. package/build/lib/utils/getEkuboQuote.js +116 -0
  29. package/build/lib/utils/getEkuboQuote.js.map +1 -0
  30. package/build/lib/utils/math.d.ts +8 -0
  31. package/build/lib/utils/math.js +22 -0
  32. package/build/lib/utils/math.js.map +1 -0
  33. package/build/lib/utils/multiplyCalls.d.ts +10 -0
  34. package/build/lib/utils/multiplyCalls.js +248 -0
  35. package/build/lib/utils/multiplyCalls.js.map +1 -0
  36. package/build/lib/utils/pools.d.ts +8 -0
  37. package/build/lib/utils/pools.js +72 -0
  38. package/build/lib/utils/pools.js.map +1 -0
  39. package/build/lib/utils/tokens.d.ts +6 -0
  40. package/build/lib/utils/tokens.js +23 -0
  41. package/build/lib/utils/tokens.js.map +1 -0
  42. package/build/schemas/index.d.ts +176 -0
  43. package/build/schemas/index.js +201 -1
  44. package/build/schemas/index.js.map +1 -1
  45. package/build/tools/read/getPools.d.ts +3 -0
  46. package/build/tools/read/getPools.js +57 -0
  47. package/build/tools/read/getPools.js.map +1 -0
  48. package/build/tools/read/getPositions.d.ts +3 -0
  49. package/build/tools/read/getPositions.js +43 -0
  50. package/build/tools/read/getPositions.js.map +1 -0
  51. package/build/tools/read/getTokens.d.ts +3 -0
  52. package/build/tools/read/getTokens.js +50 -0
  53. package/build/tools/read/getTokens.js.map +1 -0
  54. package/build/tools/write/deposit_borrow.d.ts +10 -0
  55. package/build/tools/write/deposit_borrow.js +312 -0
  56. package/build/tools/write/deposit_borrow.js.map +1 -0
  57. package/build/tools/write/deposit_earn.d.ts +10 -0
  58. package/build/tools/write/deposit_earn.js +82 -0
  59. package/build/tools/write/deposit_earn.js.map +1 -0
  60. package/build/tools/write/deposit_multiply.d.ts +10 -0
  61. package/build/tools/write/deposit_multiply.js +140 -0
  62. package/build/tools/write/deposit_multiply.js.map +1 -0
  63. package/build/tools/write/repay_borrow.d.ts +10 -0
  64. package/build/tools/write/repay_borrow.js +358 -0
  65. package/build/tools/write/repay_borrow.js.map +1 -0
  66. package/build/tools/write/update_multiply.d.ts +10 -0
  67. package/build/tools/write/update_multiply.js +264 -0
  68. package/build/tools/write/update_multiply.js.map +1 -0
  69. package/build/tools/write/withdraw_earn.d.ts +10 -0
  70. package/build/tools/write/withdraw_earn.js +116 -0
  71. package/build/tools/write/withdraw_earn.js.map +1 -0
  72. package/build/tools/write/withdraw_multiply.d.ts +9 -0
  73. package/build/tools/write/withdraw_multiply.js +187 -0
  74. package/build/tools/write/withdraw_multiply.js.map +1 -0
  75. package/package.json +6 -5
  76. package/build/lib/abis/erc20Abi.d.ts +0 -89
  77. package/build/lib/abis/erc20Abi.js +0 -128
  78. package/build/lib/abis/erc20Abi.js.map +0 -1
  79. package/build/tools/depositService.d.ts +0 -19
  80. package/build/tools/depositService.js +0 -117
  81. package/build/tools/depositService.js.map +0 -1
  82. package/build/tools/withdrawService.d.ts +0 -20
  83. package/build/tools/withdrawService.js +0 -122
  84. package/build/tools/withdrawService.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deposit_multiply.js","sourceRoot":"","sources":["../../../src/tools/write/deposit_multiply.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { RepayBorrowParams, RepayBorrowResult } from '../../interfaces/index.js';
2
+ import { onchainWrite, toolResult } from '@kasarlabs/ask-starknet-core';
3
+ export declare class RepayBorrowService {
4
+ private env;
5
+ private walletAddress;
6
+ constructor(env: onchainWrite, walletAddress: string);
7
+ repayBorrowTransaction(params: RepayBorrowParams, env: onchainWrite): Promise<RepayBorrowResult>;
8
+ }
9
+ export declare const createRepayBorrowService: (env: onchainWrite, walletAddress?: string) => RepayBorrowService;
10
+ export declare const repayBorrowPosition: (env: onchainWrite, params: RepayBorrowParams) => Promise<toolResult>;
@@ -0,0 +1,358 @@
1
+ import { Account, CairoCustomEnum, Contract } from 'starknet';
2
+ import { GENESIS_POOLID } from '../../lib/constants/index.js';
3
+ import { toI257, toHex } from '../../lib/utils/num.js';
4
+ import { addressSchema } from '../../interfaces/index.js';
5
+ import { getPool, getExtensionContractAddress, getSingletonAddress, } from '../../lib/utils/pools.js';
6
+ import { formatTokenAmount } from '../../lib/utils/tokens.js';
7
+ import { getPoolContract, getErc20Contract, } from '../../lib/utils/contracts.js';
8
+ import { VESU_API_URL } from '../../lib/constants/index.js';
9
+ import { singletonAbi } from '../../lib/abis/singletonAbi.js';
10
+ import { z } from 'zod';
11
+ export class RepayBorrowService {
12
+ constructor(env, walletAddress) {
13
+ this.env = env;
14
+ this.walletAddress = walletAddress;
15
+ }
16
+ async repayBorrowTransaction(params, env) {
17
+ try {
18
+ const account = new Account({
19
+ provider: this.env.provider,
20
+ address: this.walletAddress,
21
+ signer: this.env.account.signer,
22
+ });
23
+ const poolId = String(params.poolId || GENESIS_POOLID);
24
+ let pool;
25
+ try {
26
+ pool = await getPool(poolId);
27
+ }
28
+ catch (error) {
29
+ throw new Error(`Failed to get pool: ${error instanceof Error ? error.message : 'Unknown error'}`);
30
+ }
31
+ const extensionContractAddressRaw = getExtensionContractAddress(pool);
32
+ if (!extensionContractAddressRaw) {
33
+ throw new Error('Pool extension contract address not available');
34
+ }
35
+ const extensionContractAddressParse = addressSchema.safeParse(extensionContractAddressRaw);
36
+ if (!extensionContractAddressParse.success) {
37
+ throw new Error(`Invalid extension contract address: ${extensionContractAddressRaw}. ${extensionContractAddressParse.error.message}`);
38
+ }
39
+ const extensionContractAddress = extensionContractAddressParse.data;
40
+ let singletonAddress;
41
+ try {
42
+ const singletonAddressRaw = await getSingletonAddress(pool);
43
+ if (!singletonAddressRaw) {
44
+ throw new Error('Singleton address not available');
45
+ }
46
+ const singletonAddressHex = typeof singletonAddressRaw === 'bigint'
47
+ ? toHex(singletonAddressRaw)
48
+ : singletonAddressRaw;
49
+ const singletonAddressParse = addressSchema.safeParse(singletonAddressHex);
50
+ if (!singletonAddressParse.success) {
51
+ throw new Error(`Invalid singleton address: ${singletonAddressHex}. ${singletonAddressParse.error.message}`);
52
+ }
53
+ singletonAddress = singletonAddressParse.data;
54
+ }
55
+ catch (error) {
56
+ throw new Error(`Failed to get singleton address: ${error instanceof Error ? error.message : 'Unknown error'}`);
57
+ }
58
+ const collateralAsset = pool.assets.find((a) => a.symbol.toUpperCase() === params.collateralTokenSymbol.toUpperCase());
59
+ const debtAsset = pool.assets.find((a) => a.symbol.toUpperCase() === params.debtTokenSymbol.toUpperCase());
60
+ if (!collateralAsset) {
61
+ throw new Error('Collateral asset not found in pool');
62
+ }
63
+ if (!debtAsset) {
64
+ throw new Error('Debt asset not found in pool');
65
+ }
66
+ let debtAmount;
67
+ let collateralSharesValue;
68
+ let decimalsToUse = 18;
69
+ if (pool.protocolVersion === 'v2' || !params.repayAmount) {
70
+ try {
71
+ const queryParams = new URLSearchParams();
72
+ queryParams.append('walletAddress', account.address);
73
+ queryParams.append('type', 'borrow');
74
+ const response = await fetch(`${VESU_API_URL}/positions?${queryParams.toString()}`);
75
+ if (!response.ok) {
76
+ throw new Error(`API request failed with status ${response.status}`);
77
+ }
78
+ const data = await response.json();
79
+ const positionsSchema = z.object({
80
+ data: z.array(z
81
+ .object({
82
+ type: z.string(),
83
+ pool: z.object({
84
+ id: z.string(),
85
+ }),
86
+ collateral: z
87
+ .object({
88
+ symbol: z.string(),
89
+ })
90
+ .optional(),
91
+ debt: z
92
+ .object({
93
+ symbol: z.string(),
94
+ value: z.string(),
95
+ decimals: z.number(),
96
+ })
97
+ .optional(),
98
+ nominalDebt: z
99
+ .object({
100
+ value: z.string(),
101
+ decimals: z.number(),
102
+ })
103
+ .optional(),
104
+ collateralShares: z
105
+ .object({
106
+ value: z.string(),
107
+ })
108
+ .optional(),
109
+ })
110
+ .passthrough()),
111
+ });
112
+ const parsedData = positionsSchema.parse(data);
113
+ const positions = parsedData.data;
114
+ const matchingPosition = positions.find((position) => {
115
+ if (position.type !== 'borrow')
116
+ return false;
117
+ return (position.pool.id === poolId &&
118
+ position.collateral?.symbol.toUpperCase() ===
119
+ params.collateralTokenSymbol.toUpperCase() &&
120
+ position.debt?.symbol.toUpperCase() ===
121
+ params.debtTokenSymbol.toUpperCase());
122
+ });
123
+ if (!matchingPosition) {
124
+ throw new Error('No matching borrow position found');
125
+ }
126
+ if (pool.protocolVersion === 'v2') {
127
+ if (!matchingPosition.collateralShares ||
128
+ !matchingPosition.collateralShares.value) {
129
+ throw new Error('No collateralShares found in position');
130
+ }
131
+ collateralSharesValue = BigInt(matchingPosition.collateralShares.value);
132
+ if (!matchingPosition.nominalDebt) {
133
+ throw new Error('No nominalDebt found in position');
134
+ }
135
+ if (matchingPosition.nominalDebt.decimals === undefined) {
136
+ throw new Error('No nominalDebt.decimals found in position');
137
+ }
138
+ }
139
+ if (!params.repayAmount) {
140
+ if (pool.protocolVersion === 'v2') {
141
+ if (!matchingPosition.nominalDebt ||
142
+ !matchingPosition.nominalDebt.value ||
143
+ !matchingPosition.nominalDebt.decimals) {
144
+ throw new Error('No nominalDebt found in position');
145
+ }
146
+ debtAmount = BigInt(matchingPosition.nominalDebt.value);
147
+ decimalsToUse = matchingPosition.nominalDebt.decimals;
148
+ }
149
+ else {
150
+ if (!matchingPosition.debt || !matchingPosition.debt.value) {
151
+ throw new Error('No debt found in position');
152
+ }
153
+ decimalsToUse = debtAsset.decimals;
154
+ debtAmount = BigInt(matchingPosition.debt.value);
155
+ }
156
+ }
157
+ else {
158
+ decimalsToUse = debtAsset.decimals;
159
+ const formattedAmount = formatTokenAmount(params.repayAmount, decimalsToUse);
160
+ debtAmount = BigInt(formattedAmount);
161
+ }
162
+ }
163
+ catch (error) {
164
+ throw new Error(`Failed to get position data: ${error instanceof Error ? error.message : 'Unknown error'}`);
165
+ }
166
+ }
167
+ else {
168
+ decimalsToUse = debtAsset.decimals;
169
+ const formattedAmount = formatTokenAmount(params.repayAmount, decimalsToUse);
170
+ debtAmount = BigInt(formattedAmount);
171
+ }
172
+ if (debtAmount === 0n) {
173
+ throw new Error('Repay amount must be greater than zero');
174
+ }
175
+ const MAX_U256 = 2n ** 256n - 1n;
176
+ if (debtAmount > MAX_U256) {
177
+ throw new Error('Amount exceeds maximum u256 limit');
178
+ }
179
+ let debtTokenApproveCall;
180
+ try {
181
+ const approveToAddress = pool.protocolVersion === 'v2'
182
+ ? extensionContractAddress
183
+ : singletonAddress;
184
+ if (!approveToAddress) {
185
+ throw new Error('Approve address not available');
186
+ }
187
+ const tokenContract = getErc20Contract(debtAsset.address);
188
+ const approveAmount = (debtAmount * 110n) / 100n;
189
+ debtTokenApproveCall = tokenContract.populateTransaction.approve(approveToAddress, approveAmount);
190
+ }
191
+ catch (error) {
192
+ throw new Error(`Failed to approve token: ${error instanceof Error ? error.message : 'Unknown error'}`);
193
+ }
194
+ let modifyPositionParams;
195
+ let contractForTx;
196
+ if (pool.protocolVersion === 'v2') {
197
+ if (collateralSharesValue === undefined) {
198
+ throw new Error('collateralShares.value is required for v2 but was not found');
199
+ }
200
+ const typedPoolContract = getPoolContract(extensionContractAddress);
201
+ const poolContract = new Contract({
202
+ abi: typedPoolContract.abi,
203
+ address: extensionContractAddress,
204
+ providerOrAccount: env.provider,
205
+ });
206
+ contractForTx = poolContract;
207
+ const assetsEnum = new CairoCustomEnum({ Assets: {} });
208
+ const nativeEnum = new CairoCustomEnum({ Native: {} });
209
+ modifyPositionParams = {
210
+ collateral_asset: collateralAsset.address,
211
+ debt_asset: debtAsset.address,
212
+ user: account.address,
213
+ collateral: {
214
+ denomination: params.repayAmount ? assetsEnum : nativeEnum,
215
+ value: params.repayAmount
216
+ ? toI257(0n)
217
+ : toI257(-collateralSharesValue),
218
+ },
219
+ debt: {
220
+ denomination: params.repayAmount ? assetsEnum : nativeEnum,
221
+ value: toI257(-debtAmount),
222
+ },
223
+ };
224
+ }
225
+ else {
226
+ contractForTx = new Contract({
227
+ abi: singletonAbi,
228
+ address: singletonAddress,
229
+ providerOrAccount: env.provider,
230
+ });
231
+ const deltaEnum = new CairoCustomEnum({ Delta: {} });
232
+ const targetEnum = new CairoCustomEnum({ Target: {} });
233
+ const assetsEnum = new CairoCustomEnum({ Assets: {} });
234
+ modifyPositionParams = {
235
+ pool_id: String(poolId),
236
+ collateral_asset: collateralAsset.address,
237
+ debt_asset: debtAsset.address,
238
+ user: account.address,
239
+ collateral: {
240
+ amount_type: deltaEnum,
241
+ denomination: assetsEnum,
242
+ value: toI257(0n),
243
+ },
244
+ debt: {
245
+ amount_type: params.repayAmount ? deltaEnum : targetEnum,
246
+ denomination: assetsEnum,
247
+ value: toI257(params.repayAmount ? -debtAmount : 0n),
248
+ },
249
+ data: [],
250
+ };
251
+ }
252
+ let modifyPositionCall;
253
+ try {
254
+ modifyPositionCall =
255
+ await contractForTx.populateTransaction.modify_position(modifyPositionParams);
256
+ }
257
+ catch (error) {
258
+ throw new Error(`Failed to populate modify_position transaction: ${error instanceof Error ? error.message : 'Unknown error'}`);
259
+ }
260
+ const provider = env.provider;
261
+ const wallet = env.account;
262
+ const calls = [
263
+ {
264
+ contractAddress: debtTokenApproveCall.contractAddress,
265
+ entrypoint: debtTokenApproveCall.entrypoint,
266
+ calldata: debtTokenApproveCall.calldata,
267
+ },
268
+ {
269
+ contractAddress: modifyPositionCall.contractAddress,
270
+ entrypoint: modifyPositionCall.entrypoint,
271
+ calldata: modifyPositionCall.calldata,
272
+ },
273
+ ];
274
+ let tx;
275
+ try {
276
+ tx = await wallet.execute(calls);
277
+ }
278
+ catch (error) {
279
+ throw new Error(`Failed to execute transaction: ${error instanceof Error ? error.message : 'Unknown error'}`);
280
+ }
281
+ try {
282
+ await provider.waitForTransaction(tx.transaction_hash);
283
+ }
284
+ catch (error) {
285
+ throw new Error(`Failed to wait for transaction: ${error instanceof Error ? error.message : 'Unknown error'}`);
286
+ }
287
+ let repayAmountString;
288
+ if (params.repayAmount) {
289
+ repayAmountString = params.repayAmount;
290
+ }
291
+ else {
292
+ const divisor = 10n ** BigInt(decimalsToUse);
293
+ const wholePart = debtAmount / divisor;
294
+ const fractionalPart = debtAmount % divisor;
295
+ const fractionalStr = fractionalPart
296
+ .toString()
297
+ .padStart(decimalsToUse, '0')
298
+ .replace(/0+$/, '');
299
+ repayAmountString = fractionalStr
300
+ ? `${wholePart}.${fractionalStr}`
301
+ : wholePart.toString();
302
+ }
303
+ const result = {
304
+ status: 'success',
305
+ repayAmount: repayAmountString,
306
+ collateralSymbol: params.collateralTokenSymbol,
307
+ debtSymbol: params.debtTokenSymbol,
308
+ recipient_address: account.address,
309
+ transaction_hash: tx.transaction_hash,
310
+ };
311
+ return result;
312
+ }
313
+ catch (error) {
314
+ return {
315
+ status: 'failure',
316
+ error: error instanceof Error ? error.message : 'Unknown error',
317
+ };
318
+ }
319
+ }
320
+ }
321
+ export const createRepayBorrowService = (env, walletAddress) => {
322
+ if (!walletAddress) {
323
+ throw new Error('Wallet address not configured');
324
+ }
325
+ return new RepayBorrowService(env, walletAddress);
326
+ };
327
+ export const repayBorrowPosition = async (env, params) => {
328
+ const accountAddress = env.account?.address;
329
+ try {
330
+ const repayBorrowService = createRepayBorrowService(env, accountAddress);
331
+ const result = await repayBorrowService.repayBorrowTransaction(params, env);
332
+ if (result.status === 'success') {
333
+ return {
334
+ status: 'success',
335
+ data: {
336
+ repayAmount: result.repayAmount,
337
+ collateralSymbol: result.collateralSymbol,
338
+ debtSymbol: result.debtSymbol,
339
+ recipient_address: result.recipient_address,
340
+ transaction_hash: result.transaction_hash,
341
+ },
342
+ };
343
+ }
344
+ else {
345
+ return {
346
+ status: 'failure',
347
+ error: result.error || 'Unknown error',
348
+ };
349
+ }
350
+ }
351
+ catch (error) {
352
+ return {
353
+ status: 'failure',
354
+ error: error instanceof Error ? error.message : 'Unknown error',
355
+ };
356
+ }
357
+ };
358
+ //# sourceMappingURL=repay_borrow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repay_borrow.js","sourceRoot":"","sources":["../../../src/tools/write/repay_borrow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { UpdateMultiplyParams, UpdateMultiplyResult } from '../../interfaces/index.js';
2
+ import { onchainWrite, toolResult } from '@kasarlabs/ask-starknet-core';
3
+ export declare class UpdateMultiplyService {
4
+ private env;
5
+ private walletAddress;
6
+ constructor(env: onchainWrite, walletAddress: string);
7
+ updateMultiplyTransaction(params: UpdateMultiplyParams, env: onchainWrite): Promise<UpdateMultiplyResult>;
8
+ }
9
+ export declare const createUpdateMultiplyService: (env: onchainWrite, walletAddress?: string) => UpdateMultiplyService;
10
+ export declare const updateMultiplyPosition: (env: onchainWrite, params: UpdateMultiplyParams) => Promise<toolResult>;