@kasarlabs/ekubo-mcp 0.1.4 → 0.1.5

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.
package/build/index.js CHANGED
@@ -3,12 +3,12 @@ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
3
3
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
4
4
  import dotenv from 'dotenv';
5
5
  import { registerToolsWithServer, getOnchainRead, getOnchainWrite, } from '@kasarlabs/ask-starknet-core';
6
- import { poolKeySchema, getTokenPriceSchema, swapTokensSchema, addLiquiditySchema, withdrawLiquiditySchema, transferPositionSchema, createPositionSchema, getPositionSchema, } from './schemas/index.js';
6
+ import { poolKeySchema, getTokenPriceSchema, swapTokensSchema, addLiquiditySchema, withdrawLiquiditySchema, transferPositionSchema, createPositionSchema, getPositionsSchema, } from './schemas/index.js';
7
7
  import { getPoolInfo } from './tools/read/getPoolInfo.js';
8
8
  import { getTokenPrice } from './tools/read/getTokenPrice.js';
9
9
  import { getPoolLiquidity } from './tools/read/getPoolLiquidity.js';
10
10
  import { getPoolFeesPerLiquidity } from './tools/read/getPoolFeesPerLiquidity.js';
11
- import { getPosition } from './tools/read/getPosition.js';
11
+ import { getPositions } from './tools/read/getPosition.js';
12
12
  import { swap } from './tools/write/swap.js';
13
13
  import { createPosition } from './tools/write/createPosition.js';
14
14
  import { addLiquidity } from './tools/write/addLiquidity.js';
@@ -57,12 +57,12 @@ const registerTools = (EkuboToolRegistry) => {
57
57
  },
58
58
  });
59
59
  EkuboToolRegistry.push({
60
- name: 'get_position',
61
- description: 'Get liquidity information for a specific Ekubo position. Returns the liquidity amount and fees per liquidity for the position.',
62
- schema: getPositionSchema,
60
+ name: 'get_positions',
61
+ description: 'Get liquidity information for Ekubo positions. Can fetch all positions for an owner, or a specific position by ID. Returns the liquidity amount and fees per liquidity for the position(s).',
62
+ schema: getPositionsSchema,
63
63
  execute: async (params) => {
64
64
  const onchainRead = getOnchainRead();
65
- return await getPosition(onchainRead, params);
65
+ return await getPositions(onchainRead, params);
66
66
  },
67
67
  });
68
68
  EkuboToolRegistry.push({
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAEL,uBAAuB,EACvB,cAAc,EACd,eAAe,GAChB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAErE,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;IAC3B,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,OAAO;CACjB,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,CAAC,iBAA4B,EAAE,EAAE;IACrD,iBAAiB,CAAC,IAAI,CAAC;QACrB,IAAI,EAAE,eAAe;QACrB,WAAW,EACT,qGAAqG;QACvG,MAAM,EAAE,aAAa;QACrB,OAAO,EAAE,KAAK,EAAE,MAAW,EAAE,EAAE;YAC7B,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;YACrC,OAAO,MAAM,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAChD,CAAC;KACF,CAAC,CAAC;IAEH,iBAAiB,CAAC,IAAI,CAAC;QACrB,IAAI,EAAE,iBAAiB;QACvB,WAAW,EACT,sGAAsG;QACxG,MAAM,EAAE,mBAAmB;QAC3B,OAAO,EAAE,KAAK,EAAE,MAAW,EAAE,EAAE;YAC7B,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;YACrC,OAAO,MAAM,aAAa,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAClD,CAAC;KACF,CAAC,CAAC;IAEH,iBAAiB,CAAC,IAAI,CAAC;QACrB,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EACT,yEAAyE;QAC3E,MAAM,EAAE,aAAa;QACrB,OAAO,EAAE,KAAK,EAAE,MAAW,EAAE,EAAE;YAC7B,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;YACrC,OAAO,MAAM,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACrD,CAAC;KACF,CAAC,CAAC;IAEH,iBAAiB,CAAC,IAAI,CAAC;QACrB,IAAI,EAAE,6BAA6B;QACnC,WAAW,EACT,2FAA2F;QAC7F,MAAM,EAAE,aAAa;QACrB,OAAO,EAAE,KAAK,EAAE,MAAW,EAAE,EAAE;YAC7B,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;YACrC,OAAO,MAAM,uBAAuB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC5D,CAAC;KACF,CAAC,CAAC;IAEH,iBAAiB,CAAC,IAAI,CAAC;QACrB,IAAI,EAAE,eAAe;QACrB,WAAW,EACT,6LAA6L;QAC/L,MAAM,EAAE,kBAAkB;QAC1B,OAAO,EAAE,KAAK,EAAE,MAAW,EAAE,EAAE;YAC7B,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;YACrC,OAAO,MAAM,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACjD,CAAC;KACF,CAAC,CAAC;IAGH,iBAAiB,CAAC,IAAI,CAAC;QACrB,IAAI,EAAE,MAAM;QACZ,WAAW,EACT,8bAA8b;QAChc,MAAM,EAAE,gBAAgB;QACxB,OAAO,EAAE,KAAK,EAAE,MAAW,EAAE,EAAE;YAC7B,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;YACvC,OAAO,MAAM,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAC1C,CAAC;KACF,CAAC,CAAC;IAEH,iBAAiB,CAAC,IAAI,CAAC;QACrB,IAAI,EAAE,iBAAiB;QACvB,WAAW,EACT,2IAA2I;QAC7I,MAAM,EAAE,oBAAoB;QAC5B,OAAO,EAAE,KAAK,EAAE,MAAW,EAAE,EAAE;YAC7B,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;YACvC,OAAO,MAAM,cAAc,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACpD,CAAC;KACF,CAAC,CAAC;IAEH,iBAAiB,CAAC,IAAI,CAAC;QACrB,IAAI,EAAE,eAAe;QACrB,WAAW,EACT,qHAAqH;QACvH,MAAM,EAAE,kBAAkB;QAC1B,OAAO,EAAE,KAAK,EAAE,MAAW,EAAE,EAAE;YAC7B,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;YACvC,OAAO,MAAM,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAClD,CAAC;KACF,CAAC,CAAC;IAEH,iBAAiB,CAAC,IAAI,CAAC;QACrB,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EACT,qHAAqH;QACvH,MAAM,EAAE,uBAAuB;QAC/B,OAAO,EAAE,KAAK,EAAE,MAAW,EAAE,EAAE;YAC7B,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;YACvC,OAAO,MAAM,iBAAiB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACvD,CAAC;KACF,CAAC,CAAC;IAEH,iBAAiB,CAAC,IAAI,CAAC;QACrB,IAAI,EAAE,mBAAmB;QACzB,WAAW,EACT,qHAAqH;QACvH,MAAM,EAAE,sBAAsB;QAC9B,OAAO,EAAE,KAAK,EAAE,MAAW,EAAE,EAAE;YAC7B,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;YACvC,OAAO,MAAM,gBAAgB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACtD,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,IAAI,EAAE;IAC7C,MAAM,KAAK,GAAc,EAAE,CAAC;IAC5B,aAAa,CAAC,KAAK,CAAC,CAAC;IACrB,MAAM,uBAAuB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAE7C,MAAM,oBAAoB,EAAE,CAAC;IAC7B,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;AAC9D,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;IAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -1 +1,2 @@
1
- export declare const EKUBO_API_URL = "https://starknet-mainnet-api.ekubo.org";
1
+ export declare const EKUBO_API_URL = "https://prod-api.ekubo.org";
2
+ export declare const STARKNET_CHAIN_ID = "23448594291968334";
@@ -1,2 +1,3 @@
1
- export const EKUBO_API_URL = 'https://starknet-mainnet-api.ekubo.org';
1
+ export const EKUBO_API_URL = 'https://prod-api.ekubo.org';
2
+ export const STARKNET_CHAIN_ID = '23448594291968334';
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/constants/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG,wCAAwC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/constants/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG,4BAA4B,CAAC;AAC1D,MAAM,CAAC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC"}
@@ -1,5 +1,42 @@
1
- export declare function fetchPositionOwner(positionId: number): Promise<string>;
2
- export declare function fetchPositionData(positionId: number): Promise<{
1
+ export interface PositionData {
2
+ id: string;
3
+ chain_id: string;
4
+ positions_address: string;
5
+ pool_key: {
6
+ token0: string;
7
+ token1: string;
8
+ fee: string;
9
+ tick_spacing: string;
10
+ extension: string;
11
+ };
12
+ bounds: {
13
+ lower: number;
14
+ upper: number;
15
+ };
16
+ metadata_url?: string;
17
+ image?: string;
18
+ liquidity: string;
19
+ pool_state?: {
20
+ sqrt_ratio: string;
21
+ tick: number;
22
+ liquidity: string;
23
+ };
24
+ rewards?: Record<string, {
25
+ amount: string;
26
+ pending: string;
27
+ }>;
28
+ }
29
+ export interface PositionsApiResponse {
30
+ data: PositionData[];
31
+ pagination: {
32
+ page: number;
33
+ pageSize: number;
34
+ totalPages: number;
35
+ totalItems: number;
36
+ };
37
+ }
38
+ export declare function fetchPositionData(ownerAddress: string | bigint, page?: number, pageSize?: number, state?: 'opened' | 'closed'): Promise<PositionsApiResponse>;
39
+ export declare function fetchPositionDataById(provider: any, positionsNFTContract: any, positionId: number, state?: 'opened' | 'closed'): Promise<{
3
40
  tick_lower: string;
4
41
  tick_upper: string;
5
42
  tick_spacing: string;
@@ -1,39 +1,18 @@
1
- import { EKUBO_API_URL } from '../constants/index.js';
2
- export async function fetchPositionOwner(positionId) {
3
- const url = `${EKUBO_API_URL}/${positionId}/state`;
4
- let response;
5
- try {
6
- response = await fetch(url, {
7
- method: 'GET',
8
- headers: {
9
- accept: 'application/json',
10
- },
11
- });
1
+ import { EKUBO_API_URL, STARKNET_CHAIN_ID } from '../constants/index.js';
2
+ export async function fetchPositionData(ownerAddress, page = 1, pageSize = 50, state = 'opened') {
3
+ let normalizedAddress;
4
+ if (typeof ownerAddress === 'bigint') {
5
+ normalizedAddress = '0x' + ownerAddress.toString(16).padStart(64, '0');
12
6
  }
13
- catch (error) {
14
- if (error instanceof TypeError && error.message.includes('fetch')) {
15
- throw new Error(`Network error while fetching position owner: ${error.message}. This may be due to DNS resolution failure or connection refused.`);
16
- }
17
- throw new Error(`Failed to fetch position owner: ${error instanceof Error ? error.message : String(error)}`);
7
+ else if (typeof ownerAddress === 'string') {
8
+ normalizedAddress = ownerAddress.startsWith('0x')
9
+ ? ownerAddress
10
+ : '0x' + ownerAddress;
18
11
  }
19
- if (!response.ok) {
20
- throw new Error(`Failed to fetch position owner: ${response.status} ${response.statusText}`);
12
+ else {
13
+ normalizedAddress = String(ownerAddress);
21
14
  }
22
- let data;
23
- try {
24
- data = await response.json();
25
- }
26
- catch (error) {
27
- throw new Error(`Failed to parse JSON response while fetching position owner: ${error instanceof Error ? error.message : String(error)}`);
28
- }
29
- const owner = data.last_owner || data.owner || data.owner_address || data.ownerAddress;
30
- if (!owner) {
31
- throw new Error(`Owner not found in API response: ${JSON.stringify(data)}`);
32
- }
33
- return String(owner);
34
- }
35
- export async function fetchPositionData(positionId) {
36
- const url = `${EKUBO_API_URL}/${positionId}`;
15
+ const url = `${EKUBO_API_URL}/positions/${normalizedAddress}?state=${state}&chainId=${STARKNET_CHAIN_ID}&pageSize=${pageSize}&page=${page}`;
37
16
  let response;
38
17
  try {
39
18
  response = await fetch(url, {
@@ -59,37 +38,27 @@ export async function fetchPositionData(positionId) {
59
38
  catch (error) {
60
39
  throw new Error(`Failed to parse JSON response while fetching position data: ${error instanceof Error ? error.message : String(error)}`);
61
40
  }
62
- const attributes = data.attributes || [];
63
- const attributeMap = {};
64
- for (const attr of attributes) {
65
- if (attr.trait_type && attr.value !== undefined) {
66
- attributeMap[attr.trait_type] = attr.value;
67
- }
68
- }
69
- const tick_lower = attributeMap.tick_lower;
70
- const tick_upper = attributeMap.tick_upper;
71
- const tick_spacing = attributeMap.tick_spacing;
72
- const extension = attributeMap.extension;
73
- const fee = attributeMap.fee;
74
- const token0 = attributeMap.token0;
75
- const token1 = attributeMap.token1;
76
- if (tick_lower === undefined ||
77
- tick_upper === undefined ||
78
- tick_spacing === undefined ||
79
- extension === undefined ||
80
- fee === undefined ||
81
- token0 === undefined ||
82
- token1 === undefined) {
83
- throw new Error(`Missing required position data from API response: ${JSON.stringify(attributeMap)}`);
41
+ return data;
42
+ }
43
+ export async function fetchPositionDataById(provider, positionsNFTContract, positionId, state = 'opened') {
44
+ const ownerResponse = await positionsNFTContract.ownerOf(positionId);
45
+ const ownerAddress = typeof ownerResponse === 'bigint'
46
+ ? '0x' + ownerResponse.toString(16).padStart(64, '0')
47
+ : ownerResponse.toString();
48
+ const apiResponse = await fetchPositionData(ownerAddress, 1, 100, state);
49
+ const targetPositionHex = '0x' + BigInt(positionId).toString(16);
50
+ const position = apiResponse.data.find((pos) => pos.id.toLowerCase() === targetPositionHex.toLowerCase());
51
+ if (!position) {
52
+ throw new Error(`Position with ID ${positionId} (${targetPositionHex}) not found for owner ${ownerAddress} with state "${state}"`);
84
53
  }
85
54
  return {
86
- tick_lower: String(tick_lower),
87
- tick_upper: String(tick_upper),
88
- tick_spacing: String(tick_spacing),
89
- extension: String(extension),
90
- fee: String(fee),
91
- token0: String(token0),
92
- token1: String(token1),
55
+ tick_lower: position.bounds.lower.toString(),
56
+ tick_upper: position.bounds.upper.toString(),
57
+ tick_spacing: BigInt(position.pool_key.tick_spacing).toString(),
58
+ extension: position.pool_key.extension,
59
+ fee: BigInt(position.pool_key.fee).toString(),
60
+ token0: position.pool_key.token0,
61
+ token1: position.pool_key.token1,
93
62
  };
94
63
  }
95
64
  //# sourceMappingURL=position.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"position.js","sourceRoot":"","sources":["../../../src/lib/utils/position.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"position.js","sourceRoot":"","sources":["../../../src/lib/utils/position.ts"],"names":[],"mappings":"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"}
@@ -198,14 +198,17 @@ export declare const addLiquiditySchema: z.ZodObject<{
198
198
  position_id: z.ZodNumber;
199
199
  amount0: z.ZodString;
200
200
  amount1: z.ZodString;
201
+ state: z.ZodDefault<z.ZodOptional<z.ZodEnum<["opened", "closed"]>>>;
201
202
  }, "strip", z.ZodTypeAny, {
202
203
  position_id: number;
203
204
  amount0: string;
204
205
  amount1: string;
206
+ state: "opened" | "closed";
205
207
  }, {
206
208
  position_id: number;
207
209
  amount0: string;
208
210
  amount1: string;
211
+ state?: "opened" | "closed" | undefined;
209
212
  }>;
210
213
  export type AddLiquiditySchema = z.infer<typeof addLiquiditySchema>;
211
214
  export declare const withdrawLiquiditySchema: z.ZodObject<{
@@ -249,13 +252,13 @@ export declare const createPositionSchema: z.ZodEffects<z.ZodEffects<z.ZodObject
249
252
  tick_spacing: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
250
253
  extension: z.ZodDefault<z.ZodOptional<z.ZodString>>;
251
254
  }, "strip", z.ZodTypeAny, {
255
+ fee: number;
256
+ tick_spacing: number;
257
+ extension: string;
252
258
  amount0: string;
253
259
  amount1: string;
254
260
  lower_price: number;
255
261
  upper_price: number;
256
- fee: number;
257
- tick_spacing: number;
258
- extension: string;
259
262
  token0_symbol?: string | undefined;
260
263
  token0_address?: string | undefined;
261
264
  token1_symbol?: string | undefined;
@@ -273,13 +276,13 @@ export declare const createPositionSchema: z.ZodEffects<z.ZodEffects<z.ZodObject
273
276
  tick_spacing?: number | undefined;
274
277
  extension?: string | undefined;
275
278
  }>, {
279
+ fee: number;
280
+ tick_spacing: number;
281
+ extension: string;
276
282
  amount0: string;
277
283
  amount1: string;
278
284
  lower_price: number;
279
285
  upper_price: number;
280
- fee: number;
281
- tick_spacing: number;
282
- extension: string;
283
286
  token0_symbol?: string | undefined;
284
287
  token0_address?: string | undefined;
285
288
  token1_symbol?: string | undefined;
@@ -297,13 +300,13 @@ export declare const createPositionSchema: z.ZodEffects<z.ZodEffects<z.ZodObject
297
300
  tick_spacing?: number | undefined;
298
301
  extension?: string | undefined;
299
302
  }>, {
303
+ fee: number;
304
+ tick_spacing: number;
305
+ extension: string;
300
306
  amount0: string;
301
307
  amount1: string;
302
308
  lower_price: number;
303
309
  upper_price: number;
304
- fee: number;
305
- tick_spacing: number;
306
- extension: string;
307
310
  token0_symbol?: string | undefined;
308
311
  token0_address?: string | undefined;
309
312
  token1_symbol?: string | undefined;
@@ -322,11 +325,35 @@ export declare const createPositionSchema: z.ZodEffects<z.ZodEffects<z.ZodObject
322
325
  extension?: string | undefined;
323
326
  }>;
324
327
  export type CreatePositionSchema = z.infer<typeof createPositionSchema>;
325
- export declare const getPositionSchema: z.ZodObject<{
326
- position_id: z.ZodNumber;
328
+ export declare const getPositionsSchema: z.ZodEffects<z.ZodObject<{
329
+ owner_address: z.ZodOptional<z.ZodString>;
330
+ position_id: z.ZodOptional<z.ZodNumber>;
331
+ page: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
332
+ pageSize: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
333
+ state: z.ZodDefault<z.ZodOptional<z.ZodEnum<["opened", "closed"]>>>;
327
334
  }, "strip", z.ZodTypeAny, {
328
- position_id: number;
335
+ state: "opened" | "closed";
336
+ page: number;
337
+ pageSize: number;
338
+ position_id?: number | undefined;
339
+ owner_address?: string | undefined;
329
340
  }, {
330
- position_id: number;
341
+ position_id?: number | undefined;
342
+ state?: "opened" | "closed" | undefined;
343
+ owner_address?: string | undefined;
344
+ page?: number | undefined;
345
+ pageSize?: number | undefined;
346
+ }>, {
347
+ state: "opened" | "closed";
348
+ page: number;
349
+ pageSize: number;
350
+ position_id?: number | undefined;
351
+ owner_address?: string | undefined;
352
+ }, {
353
+ position_id?: number | undefined;
354
+ state?: "opened" | "closed" | undefined;
355
+ owner_address?: string | undefined;
356
+ page?: number | undefined;
357
+ pageSize?: number | undefined;
331
358
  }>;
332
- export type GetPositionSchema = z.infer<typeof getPositionSchema>;
359
+ export type GetPositionsSchema = z.infer<typeof getPositionsSchema>;
@@ -150,6 +150,11 @@ export const addLiquiditySchema = z.object({
150
150
  amount1: z
151
151
  .string()
152
152
  .describe('The amount of token1 to add (in human decimals, e.g., "1" for 1 USDC)'),
153
+ state: z
154
+ .enum(['opened', 'closed'])
155
+ .optional()
156
+ .default('opened')
157
+ .describe('The state of the position to filter by: "opened" for active positions, "closed" for closed positions (defaults to "opened")'),
153
158
  });
154
159
  export const withdrawLiquiditySchema = z.object({
155
160
  position_id: z.number().int().min(1).describe('The NFT position ID (u64)'),
@@ -231,11 +236,41 @@ export const createPositionSchema = z
231
236
  message: 'Either token1_symbol or token1_address must be provided',
232
237
  path: ['token1_symbol'],
233
238
  });
234
- export const getPositionSchema = z.object({
239
+ export const getPositionsSchema = z
240
+ .object({
241
+ owner_address: z
242
+ .string()
243
+ .optional()
244
+ .describe('The owner address to fetch positions for'),
235
245
  position_id: z
236
246
  .number()
237
247
  .int()
238
248
  .min(1)
249
+ .optional()
239
250
  .describe('The NFT position ID (u64) to get liquidity information for'),
251
+ page: z
252
+ .number()
253
+ .int()
254
+ .min(1)
255
+ .optional()
256
+ .default(1)
257
+ .describe('The page number for pagination (default: 1)'),
258
+ pageSize: z
259
+ .number()
260
+ .int()
261
+ .min(1)
262
+ .max(100)
263
+ .optional()
264
+ .default(50)
265
+ .describe('The number of items per page (default: 50, max: 100)'),
266
+ state: z
267
+ .enum(['opened', 'closed'])
268
+ .optional()
269
+ .default('opened')
270
+ .describe('The state of the position to filter by: "opened" for active positions, "closed" for closed positions (defaults to "opened")'),
271
+ })
272
+ .refine((data) => data.owner_address || data.position_id, {
273
+ message: 'Either owner_address or position_id must be provided',
274
+ path: ['owner_address'],
240
275
  });
241
276
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC;KAC3B,MAAM,CAAC;IACN,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,6MAA6M,CAC9M;IACH,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,mGAAmG,CACpG;IACH,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,8MAA8M,CAC/M;IACH,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,oGAAoG,CACrG;IACH,GAAG,EAAE,CAAC;SACH,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CACP,+FAA+F,CAChG;IACH,YAAY,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC,GAAG,CAAC;SACZ,QAAQ,CACP,kGAAkG,CACnG;IACH,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,iDAAiD,CAAC;CAC/D,CAAC;KACD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,cAAc,EAAE;IAC3D,OAAO,EAAE,yDAAyD;IAClE,IAAI,EAAE,CAAC,eAAe,CAAC;CACxB,CAAC;KACD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,cAAc,EAAE;IAC3D,OAAO,EAAE,yDAAyD;IAClE,IAAI,EAAE,CAAC,eAAe,CAAC;CACxB,CAAC,CAAC;AAIL,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC;KACjC,MAAM,CAAC;IACN,YAAY,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,0NAA0N,CAC3N;IACH,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,gHAAgH,CACjH;IACH,qBAAqB,EAAE,CAAC;SACrB,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,gOAAgO,CACjO;IACH,sBAAsB,EAAE,CAAC;SACtB,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,sHAAsH,CACvH;IACH,GAAG,EAAE,CAAC;SACH,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CACP,+FAA+F,CAChG;IACH,YAAY,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC,GAAG,CAAC;SACZ,QAAQ,CACP,kGAAkG,CACnG;IACH,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,iDAAiD,CAAC;CAC/D,CAAC;KACD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,aAAa,EAAE;IACzD,OAAO,EAAE,uDAAuD;IAChE,IAAI,EAAE,CAAC,cAAc,CAAC;CACvB,CAAC;KACD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,sBAAsB,EAAE;IAC3E,OAAO,EACL,yEAAyE;IAC3E,IAAI,EAAE,CAAC,uBAAuB,CAAC;CAChC,CAAC,CAAC;AAIL,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC;KAC9B,MAAM,CAAC;IACN,eAAe,EAAE,CAAC;SACf,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,mNAAmN,CACpN;IACH,gBAAgB,EAAE,CAAC;SAChB,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,yGAAyG,CAC1G;IACH,gBAAgB,EAAE,CAAC;SAChB,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,oNAAoN,CACrN;IACH,iBAAiB,EAAE,CAAC;SACjB,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,0GAA0G,CAC3G;IACH,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,CAAC,8DAA8D,CAAC;IAC3E,YAAY,EAAE,CAAC;SACZ,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CACP,wFAAwF,CACzF;IACH,kBAAkB,EAAE,CAAC;SAClB,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC,GAAG,CAAC;SACZ,QAAQ,CACP,mFAAmF,CACpF;IACH,GAAG,EAAE,CAAC;SACH,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CACP,+FAA+F,CAChG;IACH,YAAY,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC,GAAG,CAAC;SACZ,QAAQ,CACP,kGAAkG,CACnG;IACH,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,iDAAiD,CAAC;CAC/D,CAAC;KACD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,gBAAgB,EAAE;IAC/D,OAAO,EAAE,6DAA6D;IACtE,IAAI,EAAE,CAAC,iBAAiB,CAAC;CAC1B,CAAC;KACD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,iBAAiB,EAAE;IACjE,OAAO,EAAE,+DAA+D;IACxE,IAAI,EAAE,CAAC,kBAAkB,CAAC;CAC3B,CAAC,CAAC;AAIL,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,+CAA+C,CAAC;IAC5D,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,CACP,uEAAuE,CACxE;IACH,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,CACP,uEAAuE,CACxE;CACJ,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IAC1E,gBAAgB,EAAE,CAAC;SAChB,MAAM,EAAE;SACR,QAAQ,CACP,mGAAmG,CACpG;IACH,SAAS,EAAE,CAAC;SACT,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CACP,oFAAoF,CACrF;IACH,YAAY,EAAE,CAAC;SACZ,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CAAC,wDAAwD,CAAC;CACtE,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,uCAAuC,CAAC;IACpD,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,CAAC,mDAAmD,CAAC;CACjE,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC;KAClC,MAAM,CAAC;IACN,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,CACP,uEAAuE,CACxE;IACH,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,CACP,uEAAuE,CACxE;IACH,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,6MAA6M,CAC9M;IACH,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,mGAAmG,CACpG;IACH,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,8MAA8M,CAC/M;IACH,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,oGAAoG,CACrG;IACH,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,QAAQ,CACP,+GAA+G,CAChH;IACH,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,QAAQ,CACP,+GAA+G,CAChH;IACH,GAAG,EAAE,CAAC;SACH,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CACP,+FAA+F,CAChG;IACH,YAAY,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC,GAAG,CAAC;SACZ,QAAQ,CACP,kGAAkG,CACnG;IACH,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,iDAAiD,CAAC;CAC/D,CAAC;KACD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,cAAc,EAAE;IAC3D,OAAO,EAAE,yDAAyD;IAClE,IAAI,EAAE,CAAC,eAAe,CAAC;CACxB,CAAC;KACD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,cAAc,EAAE;IAC3D,OAAO,EAAE,yDAAyD;IAClE,IAAI,EAAE,CAAC,eAAe,CAAC;CACxB,CAAC,CAAC;AAIL,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,4DAA4D,CAAC;CAC1E,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,23 @@
1
1
  import { onchainRead } from '@kasarlabs/ask-starknet-core';
2
- import { GetPositionSchema } from '../../schemas/index.js';
3
- export declare const getPosition: (env: onchainRead, params: GetPositionSchema) => Promise<{
2
+ import { GetPositionsSchema } from '../../schemas/index.js';
3
+ export declare const getPositions: (env: onchainRead, params: GetPositionsSchema) => Promise<{
4
4
  status: string;
5
5
  data: {
6
- position_id: number;
7
- owner_address: string;
8
- liquidity: any;
9
- amount0: any;
10
- amount1: any;
11
- fees0: any;
12
- fees1: any;
13
- token0: string;
14
- token1: string;
15
- lower_tick: number;
16
- upper_tick: number;
17
- pool_fee: number;
18
- tick_spacing: number;
6
+ positions: {
7
+ position_id: number;
8
+ owner_address: string;
9
+ liquidity: any;
10
+ amount0: any;
11
+ amount1: any;
12
+ fees0: any;
13
+ fees1: any;
14
+ token0: string;
15
+ token1: string;
16
+ lower_tick: number;
17
+ upper_tick: number;
18
+ pool_fee: number;
19
+ tick_spacing: number;
20
+ }[];
19
21
  };
20
22
  error?: undefined;
21
23
  } | {
@@ -2,59 +2,107 @@ import { getContract } from '../../lib/utils/contracts.js';
2
2
  import { preparePoolKeyFromParams } from '../../lib/utils/pools.js';
3
3
  import { buildBounds } from '../../lib/utils/liquidity.js';
4
4
  import { convertTickSpacingExponentToPercent, convertFeeU128ToPercent, } from '../../lib/utils/math.js';
5
- import { fetchPositionData, fetchPositionOwner, } from '../../lib/utils/position.js';
6
- export const getPosition = async (env, params) => {
5
+ import { fetchPositionData, } from '../../lib/utils/position.js';
6
+ function hexToNumber(hexId) {
7
+ const cleanHex = hexId.startsWith('0x') ? hexId.slice(2) : hexId;
8
+ return Number(BigInt('0x' + cleanHex));
9
+ }
10
+ async function processPosition(provider, position, positionId) {
11
+ const poolKeyData = position.pool_key;
12
+ const token0_address = poolKeyData.token0;
13
+ const token1_address = poolKeyData.token1;
14
+ const fee = convertFeeU128ToPercent(BigInt(poolKeyData.fee).toString());
15
+ const tickSpacingHex = poolKeyData.tick_spacing;
16
+ const tick_spacing = convertTickSpacingExponentToPercent(Number(BigInt(tickSpacingHex)));
17
+ const extension = poolKeyData.extension || '0x0';
18
+ const { poolKey, token0, token1 } = await preparePoolKeyFromParams(provider, {
19
+ token0_address,
20
+ token1_address,
21
+ fee,
22
+ tick_spacing,
23
+ extension,
24
+ });
25
+ const lowerTick = position.bounds.lower;
26
+ const upperTick = position.bounds.upper;
27
+ if (isNaN(lowerTick) || isNaN(upperTick)) {
28
+ throw new Error(`Invalid tick values: lower=${lowerTick}, upper=${upperTick}`);
29
+ }
30
+ if (lowerTick >= upperTick) {
31
+ throw new Error(`Lower tick (${lowerTick}) must be less than upper tick (${upperTick})`);
32
+ }
33
+ const bounds = buildBounds(lowerTick, upperTick);
34
+ const positionsContract = await getContract(provider, 'positions');
35
+ const positionResult = await positionsContract.get_token_info(positionId, poolKey, bounds);
36
+ return {
37
+ position_id: positionId,
38
+ owner_address: position.positions_address,
39
+ liquidity: positionResult.liquidity.toString(),
40
+ amount0: positionResult.amount0.toString(),
41
+ amount1: positionResult.amount1.toString(),
42
+ fees0: positionResult.fees0.toString(),
43
+ fees1: positionResult.fees1.toString(),
44
+ token0: token0.symbol || token0.address,
45
+ token1: token1.symbol || token1.address,
46
+ lower_tick: lowerTick,
47
+ upper_tick: upperTick,
48
+ pool_fee: fee,
49
+ tick_spacing: tick_spacing,
50
+ };
51
+ }
52
+ export const getPositions = async (env, params) => {
7
53
  const provider = env.provider;
8
54
  try {
9
- const positionsContract = await getContract(provider, 'positions');
10
- const positionData = await fetchPositionData(params.position_id);
11
- const ownerAddress = await fetchPositionOwner(params.position_id);
12
- const token0_address = positionData.token0;
13
- const token1_address = positionData.token1;
14
- const fee = convertFeeU128ToPercent(positionData.fee);
15
- const tick_spacing = convertTickSpacingExponentToPercent(Number(positionData.tick_spacing));
16
- const extension = positionData.extension || '0x0';
17
- const { poolKey, token0, token1 } = await preparePoolKeyFromParams(provider, {
18
- token0_address,
19
- token1_address,
20
- fee,
21
- tick_spacing,
22
- extension,
23
- });
24
- const lowerTick = Number(positionData.tick_lower);
25
- const upperTick = Number(positionData.tick_upper);
26
- if (isNaN(lowerTick) || isNaN(upperTick)) {
27
- throw new Error(`Invalid tick values: lower=${positionData.tick_lower}, upper=${positionData.tick_upper}`);
55
+ const positionsNFTContract = await getContract(provider, 'positionsNFT');
56
+ let ownerAddress;
57
+ let targetPositionId;
58
+ if (params.owner_address && params.position_id) {
59
+ ownerAddress = params.owner_address;
60
+ targetPositionId = params.position_id;
61
+ }
62
+ else if (params.position_id) {
63
+ const ownerResponse = await positionsNFTContract.ownerOf(params.position_id);
64
+ ownerAddress =
65
+ typeof ownerResponse === 'bigint'
66
+ ? '0x' + ownerResponse.toString(16).padStart(64, '0')
67
+ : ownerResponse.toString();
68
+ targetPositionId = params.position_id;
69
+ }
70
+ else if (params.owner_address) {
71
+ ownerAddress = params.owner_address;
72
+ targetPositionId = undefined;
73
+ }
74
+ else {
75
+ throw new Error('Either owner_address or position_id must be provided');
76
+ }
77
+ const apiResponse = await fetchPositionData(ownerAddress, params.page, params.pageSize, params.state);
78
+ let positionsToProcess;
79
+ if (targetPositionId !== undefined) {
80
+ const targetPositionHex = '0x' + BigInt(targetPositionId).toString(16);
81
+ const foundPosition = apiResponse.data.find((pos) => pos.id.toLowerCase() === targetPositionHex.toLowerCase());
82
+ if (!foundPosition) {
83
+ throw new Error(`Position with ID ${targetPositionId} (${targetPositionHex}) not found for owner ${ownerAddress}`);
84
+ }
85
+ positionsToProcess = [foundPosition];
28
86
  }
29
- if (lowerTick >= upperTick) {
30
- throw new Error(`Lower tick (${lowerTick}) must be less than upper tick (${upperTick})`);
87
+ else {
88
+ positionsToProcess = apiResponse.data;
31
89
  }
32
- const bounds = buildBounds(lowerTick, upperTick);
33
- const positionResult = await positionsContract.get_token_info(params.position_id, poolKey, bounds);
90
+ const processedPositions = await Promise.all(positionsToProcess.map(async (position) => {
91
+ const positionId = hexToNumber(position.id);
92
+ return await processPosition(provider, position, positionId);
93
+ }));
34
94
  return {
35
95
  status: 'success',
36
96
  data: {
37
- position_id: params.position_id,
38
- owner_address: ownerAddress,
39
- liquidity: positionResult.liquidity.toString(),
40
- amount0: positionResult.amount0.toString(),
41
- amount1: positionResult.amount1.toString(),
42
- fees0: positionResult.fees0.toString(),
43
- fees1: positionResult.fees1.toString(),
44
- token0: token0.symbol || token0.address,
45
- token1: token1.symbol || token1.address,
46
- lower_tick: lowerTick,
47
- upper_tick: upperTick,
48
- pool_fee: fee,
49
- tick_spacing: tick_spacing,
97
+ positions: processedPositions,
50
98
  },
51
99
  };
52
100
  }
53
101
  catch (error) {
54
- console.error('Error getting position:', error);
102
+ console.error('Error getting positions:', error);
55
103
  const errorMessage = error instanceof Error
56
104
  ? error.message
57
- : 'Unknown error while getting position';
105
+ : 'Unknown error while getting positions';
58
106
  return {
59
107
  status: 'failure',
60
108
  error: errorMessage,
@@ -1 +1 @@
1
- {"version":3,"file":"getPosition.js","sourceRoot":"","sources":["../../../src/tools/read/getPosition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getPosition.js","sourceRoot":"","sources":["../../../src/tools/read/getPosition.ts"],"names":[],"mappings":"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"}
@@ -2,13 +2,14 @@ import { getERC20Contract, getContract } from '../../lib/utils/contracts.js';
2
2
  import { preparePoolKeyFromParams } from '../../lib/utils/pools.js';
3
3
  import { buildBounds } from '../../lib/utils/liquidity.js';
4
4
  import { convertTickSpacingExponentToPercent, convertFeeU128ToPercent, } from '../../lib/utils/math.js';
5
- import { fetchPositionData } from '../../lib/utils/position.js';
5
+ import { fetchPositionDataById } from '../../lib/utils/position.js';
6
6
  import { formatTokenAmount } from '../../lib/utils/token.js';
7
7
  export const addLiquidity = async (env, params) => {
8
8
  try {
9
9
  const account = env.account;
10
10
  const positionsContract = await getContract(env.provider, 'positions');
11
- const positionData = await fetchPositionData(params.position_id);
11
+ const positionsNFTContract = await getContract(env.provider, 'positionsNFT');
12
+ const positionData = await fetchPositionDataById(env.provider, positionsNFTContract, params.position_id, params.state);
12
13
  const token0_address = positionData.token0;
13
14
  const token1_address = positionData.token1;
14
15
  const fee = convertFeeU128ToPercent(positionData.fee);
@@ -1 +1 @@
1
- {"version":3,"file":"addLiquidity.js","sourceRoot":"","sources":["../../../src/tools/write/addLiquidity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"addLiquidity.js","sourceRoot":"","sources":["../../../src/tools/write/addLiquidity.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,9 @@ export const transferPosition = async (env, params) => {
9
9
  params.to_address,
10
10
  cairo.uint256(params.position_id),
11
11
  ]);
12
- const { transaction_hash } = await account.execute([transferCalldata]);
12
+ const { transaction_hash } = await account.execute([transferCalldata], {
13
+ tip: 0,
14
+ });
13
15
  const receipt = await account.waitForTransaction(transaction_hash);
14
16
  if (!receipt.isSuccess()) {
15
17
  throw new Error('Transaction confirmed but failed');
@@ -1 +1 @@
1
- {"version":3,"file":"transferPosition.js","sourceRoot":"","sources":["../../../src/tools/write/transferPosition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAI3D,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,GAAiB,EACjB,MAA8B,EACT,EAAE;IACvB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC5B,MAAM,WAAW,GAAG,MAAM,WAAW,CACnC,GAAG,CAAC,QAAQ,EACZ,cAAc,EACd,OAAO,CACR,CAAC;QAEF,MAAM,gBAAgB,GAAG,WAAW,CAAC,QAAQ,CAAC,eAAe,EAAE;YAC7D,OAAO,CAAC,OAAO;YACf,MAAM,CAAC,UAAU;YACjB,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC;SAClC,CAAC,CAAC;QAEH,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAEvE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QAED,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE;gBACJ,gBAAgB;gBAChB,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,IAAI,EAAE,OAAO,CAAC,OAAO;gBACrB,EAAE,EAAE,MAAM,CAAC,UAAU;aACtB;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK;YACpB,CAAC,CAAC,KAAK,CAAC,OAAO;YACf,CAAC,CAAC,2CAA2C,CAAC;QAClD,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,YAAY;SACpB,CAAC;IACJ,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"transferPosition.js","sourceRoot":"","sources":["../../../src/tools/write/transferPosition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAI3D,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,GAAiB,EACjB,MAA8B,EACT,EAAE;IACvB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC5B,MAAM,WAAW,GAAG,MAAM,WAAW,CACnC,GAAG,CAAC,QAAQ,EACZ,cAAc,EACd,OAAO,CACR,CAAC;QAEF,MAAM,gBAAgB,GAAG,WAAW,CAAC,QAAQ,CAAC,eAAe,EAAE;YAC7D,OAAO,CAAC,OAAO;YACf,MAAM,CAAC,UAAU;YACjB,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC;SAClC,CAAC,CAAC;QAEH,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,gBAAgB,CAAC,EAAE;YACrE,GAAG,EAAE,CAAC;SACP,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QAED,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE;gBACJ,gBAAgB;gBAChB,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,IAAI,EAAE,OAAO,CAAC,OAAO;gBACrB,EAAE,EAAE,MAAM,CAAC,UAAU;aACtB;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK;YACpB,CAAC,CAAC,KAAK,CAAC,OAAO;YACf,CAAC,CAAC,2CAA2C,CAAC;QAClD,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,YAAY;SACpB,CAAC;IACJ,CAAC;AACH,CAAC,CAAC"}
@@ -2,12 +2,13 @@ import { getContract } from '../../lib/utils/contracts.js';
2
2
  import { preparePoolKeyFromParams } from '../../lib/utils/pools.js';
3
3
  import { buildBounds } from '../../lib/utils/liquidity.js';
4
4
  import { convertTickSpacingExponentToPercent, convertFeeU128ToPercent, } from '../../lib/utils/math.js';
5
- import { fetchPositionData } from '../../lib/utils/position.js';
5
+ import { fetchPositionDataById } from '../../lib/utils/position.js';
6
6
  export const withdrawLiquidity = async (env, params) => {
7
7
  try {
8
8
  const account = env.account;
9
9
  const positionsContract = await getContract(env.provider, 'positions', account);
10
- const positionData = await fetchPositionData(params.position_id);
10
+ const positionsNFTContract = await getContract(env.provider, 'positionsNFT');
11
+ const positionData = await fetchPositionDataById(env.provider, positionsNFTContract, params.position_id, 'opened');
11
12
  const token0_address = positionData.token0;
12
13
  const token1_address = positionData.token1;
13
14
  const fee = convertFeeU128ToPercent(positionData.fee);
@@ -1 +1 @@
1
- {"version":3,"file":"withdrawLiquidity.js","sourceRoot":"","sources":["../../../src/tools/write/withdrawLiquidity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"withdrawLiquidity.js","sourceRoot":"","sources":["../../../src/tools/write/withdrawLiquidity.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kasarlabs/ekubo-mcp",
3
- "version": "0.1.4",
3
+ "version": "0.1.5",
4
4
  "main": "index.js",
5
5
  "type": "module",
6
6
  "bin": {
@@ -10,21 +10,27 @@
10
10
  "build": "tsc && chmod 755 build/index.js",
11
11
  "clean": "rm -rf build",
12
12
  "clean:all": "rm -rf build node_modules",
13
- "start": "node build/index.js"
13
+ "start": "node build/index.js",
14
+ "test": "NODE_OPTIONS=--experimental-vm-modules jest",
15
+ "test:e2e": "NODE_OPTIONS=--experimental-vm-modules jest __tests__/e2e"
14
16
  },
15
17
  "files": [
16
18
  "build"
17
19
  ],
18
20
  "dependencies": {
19
21
  "@ekubo/starknet-sdk": "^0.0.7",
20
- "@kasarlabs/ask-starknet-core": "0.1.3",
22
+ "@kasarlabs/ask-starknet-core": "0.1.4",
21
23
  "@modelcontextprotocol/sdk": "1.22.0",
22
24
  "dotenv": "^16.4.7",
23
- "starknet": "8.6.0",
25
+ "starknet": "~8.9.0",
24
26
  "zod": "^3.24.2"
25
27
  },
26
28
  "devDependencies": {
29
+ "@jest/globals": "^29.7.0",
30
+ "@types/jest": "^29.5.12",
27
31
  "@types/node": "^22.13.10",
32
+ "jest": "^29.7.0",
33
+ "ts-jest": "^29.1.2",
28
34
  "typescript": "^5.8.2"
29
35
  },
30
36
  "keywords": [
@@ -38,5 +44,5 @@
38
44
  "publishConfig": {
39
45
  "access": "public"
40
46
  },
41
- "gitHead": "bfb4d4b055bbfa15b8e745d414adf52ac5e158fb"
47
+ "gitHead": "0799e2b085e950e5d102822d71a6b122290e8c38"
42
48
  }