@steerprotocol/sdk 1.18.3 → 1.19.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.
- package/dist/cjs/base/PoolClient.js +454 -0
- package/dist/cjs/base/PoolClient.js.map +1 -0
- package/dist/cjs/const/subgraph.js +5 -4
- package/dist/cjs/const/subgraph.js.map +1 -1
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/utils/PoolQueryAdapter.js +937 -0
- package/dist/cjs/utils/PoolQueryAdapter.js.map +1 -0
- package/dist/esm/base/PoolClient.js +450 -0
- package/dist/esm/base/PoolClient.js.map +1 -0
- package/dist/esm/const/subgraph.js +5 -4
- package/dist/esm/const/subgraph.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/utils/PoolQueryAdapter.js +931 -0
- package/dist/esm/utils/PoolQueryAdapter.js.map +1 -0
- package/dist/types/base/PoolClient.d.ts +256 -0
- package/dist/types/base/PoolClient.d.ts.map +1 -0
- package/dist/types/const/subgraph.d.ts +2 -1
- package/dist/types/const/subgraph.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/types.d.ts +7 -0
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/utils/PoolQueryAdapter.d.ts +114 -0
- package/dist/types/utils/PoolQueryAdapter.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,454 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PoolClient = void 0;
|
|
4
|
+
const SubgraphClient_1 = require("./SubgraphClient");
|
|
5
|
+
const const_1 = require("../const");
|
|
6
|
+
const protocol_1 = require("../const/protocol");
|
|
7
|
+
const PoolQueryAdapter_1 = require("../utils/PoolQueryAdapter");
|
|
8
|
+
/**
|
|
9
|
+
* Client for fetching pool data from various DEX protocol subgraphs
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* import { createPublicClient, createWalletClient, http } from 'viem';
|
|
14
|
+
* import { mainnet } from 'viem/chains';
|
|
15
|
+
* import { PoolClient } from '@steerprotocol/sdk';
|
|
16
|
+
*
|
|
17
|
+
* const client = createPublicClient({
|
|
18
|
+
* chain: mainnet,
|
|
19
|
+
* transport: http()
|
|
20
|
+
* }) as PublicClient & WalletClient;
|
|
21
|
+
*
|
|
22
|
+
* const poolClient = new PoolClient(client, 'your-subgraph-studio-key');
|
|
23
|
+
*
|
|
24
|
+
* // Fetch top pools
|
|
25
|
+
* const topPools = await poolClient.getTopPools(100, Protocol.UniswapV3, 1);
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
28
|
+
* @extends SubgraphClient
|
|
29
|
+
*/
|
|
30
|
+
class PoolClient extends SubgraphClient_1.SubgraphClient {
|
|
31
|
+
/**
|
|
32
|
+
* Creates a new PoolClient instance
|
|
33
|
+
*
|
|
34
|
+
* @param client - Combined public and wallet client for blockchain interactions
|
|
35
|
+
* @param subgraphStudioKey - Optional Subgraph Studio API key for higher rate limits
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```typescript
|
|
39
|
+
* const poolClient = new PoolClient(client, 'your-api-key');
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
constructor(client, subgraphStudioKey = '') {
|
|
43
|
+
super(client);
|
|
44
|
+
/** Default timeout for GraphQL queries in milliseconds */
|
|
45
|
+
this.defaultTimeout = 60000;
|
|
46
|
+
/** Counter for tracking API call metrics */
|
|
47
|
+
this.apiCallCount = 0;
|
|
48
|
+
this.publicClient = client;
|
|
49
|
+
this.subgraphStudioKey = subgraphStudioKey;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Resets the API call counter for metrics tracking
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```typescript
|
|
56
|
+
* poolClient.resetMetrics();
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
resetMetrics() {
|
|
60
|
+
this.apiCallCount = 0;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Gets current metrics for monitoring API usage
|
|
64
|
+
*
|
|
65
|
+
* @returns Object containing current metrics
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```typescript
|
|
69
|
+
* const metrics = poolClient.getMetrics();
|
|
70
|
+
* console.log(`API calls made: ${metrics.apiCallCount}`);
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
getMetrics() {
|
|
74
|
+
return {
|
|
75
|
+
apiCallCount: this.apiCallCount,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Fetches data from GraphQL endpoint with retry logic for rate limits
|
|
80
|
+
*
|
|
81
|
+
* @param query - GraphQL query string
|
|
82
|
+
* @param variables - Variables for the GraphQL query
|
|
83
|
+
* @param protocol - Protocol to query
|
|
84
|
+
* @param chainId - Chain ID to query
|
|
85
|
+
* @returns Promise containing the response data
|
|
86
|
+
*
|
|
87
|
+
* @throws {Error} When subgraph endpoint is not available
|
|
88
|
+
* @throws {Error} When rate limit is exceeded after max retries
|
|
89
|
+
* @throws {Error} When GraphQL query times out
|
|
90
|
+
*
|
|
91
|
+
* @internal
|
|
92
|
+
*/
|
|
93
|
+
async fetchFromGraph(query, variables, protocol, chainId) {
|
|
94
|
+
try {
|
|
95
|
+
const chainName = (0, const_1.chainIdToName)(chainId);
|
|
96
|
+
const endpoint = (0, const_1.getProtocolSubgraphURL)(protocol, chainName, this.subgraphStudioKey);
|
|
97
|
+
if (!endpoint) {
|
|
98
|
+
throw new Error(`No subgraph endpoint available for protocol ${protocol} on chain ${chainName}`);
|
|
99
|
+
}
|
|
100
|
+
const MAX_RETRIES = 3;
|
|
101
|
+
const RETRY_DELAY_MS = 11000;
|
|
102
|
+
const fetchWithRetry = async (retries = 0) => {
|
|
103
|
+
const response = await fetch(endpoint, {
|
|
104
|
+
method: "POST",
|
|
105
|
+
headers: {
|
|
106
|
+
"Content-Type": "application/json",
|
|
107
|
+
},
|
|
108
|
+
body: JSON.stringify({ query, variables }),
|
|
109
|
+
});
|
|
110
|
+
const data = await response.json();
|
|
111
|
+
if (data.error && typeof data.error === "string" && data.error.includes("surpassed your query allowance")) {
|
|
112
|
+
if (retries < MAX_RETRIES) {
|
|
113
|
+
console.warn(`Rate limit hit for ${endpoint}, retrying in ${RETRY_DELAY_MS / 1000}s (attempt ${retries + 1})`);
|
|
114
|
+
await new Promise(res => setTimeout(res, RETRY_DELAY_MS));
|
|
115
|
+
return fetchWithRetry(retries + 1);
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
throw new Error(`Rate limit exceeded after ${MAX_RETRIES} retries: ${data.error}`);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
if (data.error) {
|
|
122
|
+
throw new Error(`GraphQL endpoint error: ${data.error}`);
|
|
123
|
+
}
|
|
124
|
+
if (data.errors) {
|
|
125
|
+
throw new Error(`GraphQL errors: ${JSON.stringify(data.errors)}`);
|
|
126
|
+
}
|
|
127
|
+
return data.data;
|
|
128
|
+
};
|
|
129
|
+
this.apiCallCount++;
|
|
130
|
+
console.log("Total API calls:", this.apiCallCount);
|
|
131
|
+
const timeoutPromise = new Promise((_, reject) => {
|
|
132
|
+
setTimeout(() => reject(new Error("GraphQL query timeout")), this.defaultTimeout);
|
|
133
|
+
});
|
|
134
|
+
const data = await Promise.race([fetchWithRetry(), timeoutPromise]);
|
|
135
|
+
return {
|
|
136
|
+
data: data,
|
|
137
|
+
status: 200,
|
|
138
|
+
success: true,
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
catch (error) {
|
|
142
|
+
return {
|
|
143
|
+
data: null,
|
|
144
|
+
status: 500,
|
|
145
|
+
success: false,
|
|
146
|
+
error: error instanceof Error ? error.message : 'Unknown error occurred',
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Fetches the top pools for a specific protocol by trading volume
|
|
152
|
+
*
|
|
153
|
+
* @param count - Number of pools to fetch (default: 500)
|
|
154
|
+
* @param protocol - Protocol to fetch pools from
|
|
155
|
+
* @param chainId - Chain ID to fetch pools from
|
|
156
|
+
* @returns Promise containing an array of top pools
|
|
157
|
+
*
|
|
158
|
+
* @example
|
|
159
|
+
* ```typescript
|
|
160
|
+
* // Get top 100 Uniswap V3 pools on Ethereum
|
|
161
|
+
* const topPools = await poolClient.getTopPools(100, Protocol.UniswapV3, 1);
|
|
162
|
+
* if (topPools.success) {
|
|
163
|
+
* console.log(`Found ${topPools.data.length} pools`);
|
|
164
|
+
* }
|
|
165
|
+
* ```
|
|
166
|
+
*
|
|
167
|
+
* @throws {Error} When failed to fetch pools from subgraph
|
|
168
|
+
*/
|
|
169
|
+
async getTopPools(count = 500, protocol, chainId) {
|
|
170
|
+
try {
|
|
171
|
+
const isAlgebraPool = (0, protocol_1.isAlgebraProtocol)(protocol);
|
|
172
|
+
const query = (0, PoolQueryAdapter_1.getTopPoolsQuery)(protocol, isAlgebraPool);
|
|
173
|
+
console.log(`[Chain ${chainId}] [Protocol ${protocol}] 📊 Fetching top ${count} pools from the subgraph...`);
|
|
174
|
+
const response = await this.fetchFromGraph(query, { limit: count }, protocol, chainId);
|
|
175
|
+
if (!response.success || !response.data) {
|
|
176
|
+
throw new Error(response.error || 'Failed to fetch pools');
|
|
177
|
+
}
|
|
178
|
+
const pools = response.data.pools || response.data.limitPools || response.data.clPools || [];
|
|
179
|
+
console.log(`[Chain ${chainId}] [Protocol ${protocol}] ✅ Received ${pools.length} pools from the subgraph`);
|
|
180
|
+
// Filter out pools with invalid volumeUSD
|
|
181
|
+
const validPools = pools.filter(pool => {
|
|
182
|
+
const volumeUSD = parseFloat(pool.volumeUSD || pool.volumeUsd || "0");
|
|
183
|
+
return !isNaN(volumeUSD) && volumeUSD > 0;
|
|
184
|
+
});
|
|
185
|
+
console.log(`[Chain ${chainId}] [Protocol ${protocol}] ✅ Found ${validPools.length} valid pools with positive volumeUSD`);
|
|
186
|
+
return {
|
|
187
|
+
data: validPools,
|
|
188
|
+
status: 200,
|
|
189
|
+
success: true,
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
catch (error) {
|
|
193
|
+
console.error(`[Chain ${chainId}] [Protocol ${protocol}] Error in getTopPools:`, error);
|
|
194
|
+
return {
|
|
195
|
+
data: null,
|
|
196
|
+
status: 500,
|
|
197
|
+
success: false,
|
|
198
|
+
error: error instanceof Error ? error.message : 'Unknown error occurred',
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Fetches detailed information for a specific pool by its ID
|
|
204
|
+
*
|
|
205
|
+
* @param poolId - Pool contract address to fetch
|
|
206
|
+
* @param protocol - Protocol the pool belongs to
|
|
207
|
+
* @param chainId - Chain ID where the pool exists
|
|
208
|
+
* @returns Promise containing pool details or null if not found
|
|
209
|
+
*
|
|
210
|
+
* @example
|
|
211
|
+
* ```typescript
|
|
212
|
+
* // Get specific pool details
|
|
213
|
+
* const poolDetails = await poolClient.getPoolById(
|
|
214
|
+
* '0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640',
|
|
215
|
+
* Protocol.UniswapV3,
|
|
216
|
+
* 1
|
|
217
|
+
* );
|
|
218
|
+
* if (poolDetails.success && poolDetails.data) {
|
|
219
|
+
* console.log(`Pool: ${poolDetails.data.token0.symbol}/${poolDetails.data.token1.symbol}`);
|
|
220
|
+
* }
|
|
221
|
+
* ```
|
|
222
|
+
*
|
|
223
|
+
* @throws {Error} When failed to fetch pool from subgraph
|
|
224
|
+
*/
|
|
225
|
+
async getPoolById(poolId, protocol, chainId) {
|
|
226
|
+
try {
|
|
227
|
+
const isAlgebraPool = (0, protocol_1.isAlgebraProtocol)(protocol);
|
|
228
|
+
const query = (0, PoolQueryAdapter_1.getPoolDetailsQuery)(isAlgebraPool, protocol);
|
|
229
|
+
const response = await this.fetchFromGraph(query, { pool: poolId }, protocol, chainId);
|
|
230
|
+
if (!response.success || !response.data) {
|
|
231
|
+
throw new Error(response.error || 'Failed to fetch pool');
|
|
232
|
+
}
|
|
233
|
+
const pool = response.data.pool || response.data.clPool || response.data.limitPool || null;
|
|
234
|
+
return {
|
|
235
|
+
data: pool,
|
|
236
|
+
status: 200,
|
|
237
|
+
success: true,
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
catch (error) {
|
|
241
|
+
console.error(`Error fetching pool ${poolId}:`, error);
|
|
242
|
+
return {
|
|
243
|
+
data: null,
|
|
244
|
+
status: 500,
|
|
245
|
+
success: false,
|
|
246
|
+
error: error instanceof Error ? error.message : 'Unknown error occurred',
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Fetches pools containing multiple tokens in batches for better performance
|
|
252
|
+
*
|
|
253
|
+
* @param tokenAddresses - Array of token contract addresses
|
|
254
|
+
* @param protocol - Protocol to fetch pools from
|
|
255
|
+
* @param chainId - Chain ID to fetch pools from
|
|
256
|
+
* @param batchSize - Number of tokens to process in each batch (default: 10)
|
|
257
|
+
* @returns Promise containing all pools found for the tokens
|
|
258
|
+
*
|
|
259
|
+
* @example
|
|
260
|
+
* ```typescript
|
|
261
|
+
* // Get pools for multiple tokens
|
|
262
|
+
* const tokenAddresses = [
|
|
263
|
+
* '0xa0b86a33e6f8b07b71c3a39ef77a6b6e8f1b7b7e', // USDC
|
|
264
|
+
* '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2' // WETH
|
|
265
|
+
* ];
|
|
266
|
+
* const pools = await poolClient.fetchPoolsForTokensBatch(
|
|
267
|
+
* tokenAddresses,
|
|
268
|
+
* Protocol.UniswapV3,
|
|
269
|
+
* 1,
|
|
270
|
+
* 5
|
|
271
|
+
* );
|
|
272
|
+
* ```
|
|
273
|
+
*
|
|
274
|
+
* @throws {Error} When batch processing fails
|
|
275
|
+
*/
|
|
276
|
+
async fetchPoolsForTokensBatch(tokenAddresses, protocol, chainId, batchSize = 10) {
|
|
277
|
+
try {
|
|
278
|
+
if (tokenAddresses.length === 0) {
|
|
279
|
+
return {
|
|
280
|
+
data: [],
|
|
281
|
+
status: 200,
|
|
282
|
+
success: true,
|
|
283
|
+
};
|
|
284
|
+
}
|
|
285
|
+
console.log(`\n🔍 Batch Pool Fetch Summary:`);
|
|
286
|
+
console.log(`📥 Total tokens to process: ${tokenAddresses.length}`);
|
|
287
|
+
const isAlgebraPool = (0, protocol_1.isAlgebraProtocol)(protocol);
|
|
288
|
+
const normalizedAddresses = tokenAddresses.map(addr => addr.toLowerCase());
|
|
289
|
+
// Split into chunks
|
|
290
|
+
const chunkSize = batchSize;
|
|
291
|
+
const addressChunks = [];
|
|
292
|
+
for (let i = 0; i < normalizedAddresses.length; i += chunkSize) {
|
|
293
|
+
addressChunks.push(normalizedAddresses.slice(i, i + chunkSize));
|
|
294
|
+
}
|
|
295
|
+
console.log(`📦 Processing ${addressChunks.length} chunks of max ${chunkSize} tokens each`);
|
|
296
|
+
const allPools = [];
|
|
297
|
+
// Process chunks in parallel
|
|
298
|
+
const results = await Promise.all(addressChunks.map(async (chunk, chunkIndex) => {
|
|
299
|
+
console.log(`\n🔄 Processing chunk ${chunkIndex + 1}/${addressChunks.length} with ${chunk.length} tokens`);
|
|
300
|
+
const chunkResults = await Promise.all(chunk.map(async (token) => {
|
|
301
|
+
try {
|
|
302
|
+
const query = (0, PoolQueryAdapter_1.getTokenPoolsQueryByAddress)(isAlgebraPool, protocol);
|
|
303
|
+
const queryStartTime = performance.now();
|
|
304
|
+
const response = await this.fetchFromGraph(query, { token }, protocol, chainId);
|
|
305
|
+
const queryTime = performance.now() - queryStartTime;
|
|
306
|
+
console.log(`⏱️ GraphQL query for token ${token.slice(0, 6)}... completed in ${queryTime.toFixed(2)}ms`);
|
|
307
|
+
if (!response.success || !response.data) {
|
|
308
|
+
console.error(`❌ No pools found for token: ${token} on chainId: ${chainId}`);
|
|
309
|
+
return [];
|
|
310
|
+
}
|
|
311
|
+
// Extract pools from different possible response structures
|
|
312
|
+
let pools = [];
|
|
313
|
+
if (response.data.pools) {
|
|
314
|
+
pools = response.data.pools;
|
|
315
|
+
}
|
|
316
|
+
else if (response.data.clPools) {
|
|
317
|
+
pools = response.data.clPools;
|
|
318
|
+
}
|
|
319
|
+
else if (response.data.limitPools) {
|
|
320
|
+
pools = response.data.limitPools;
|
|
321
|
+
}
|
|
322
|
+
else if (response.data.tokenPools) {
|
|
323
|
+
pools = response.data.tokenPools;
|
|
324
|
+
}
|
|
325
|
+
if (pools.length === 0) {
|
|
326
|
+
console.error(`❌ No pools found for token: ${token} on chainId: ${chainId}`);
|
|
327
|
+
return [];
|
|
328
|
+
}
|
|
329
|
+
return pools;
|
|
330
|
+
}
|
|
331
|
+
catch (error) {
|
|
332
|
+
console.error(`❌ Error fetching pools for token: ${token} on chainId: ${chainId}`, error);
|
|
333
|
+
return [];
|
|
334
|
+
}
|
|
335
|
+
}));
|
|
336
|
+
return chunkResults.flat();
|
|
337
|
+
}));
|
|
338
|
+
// Flatten all results
|
|
339
|
+
allPools.push(...results.flat());
|
|
340
|
+
return {
|
|
341
|
+
data: allPools,
|
|
342
|
+
status: 200,
|
|
343
|
+
success: true,
|
|
344
|
+
};
|
|
345
|
+
}
|
|
346
|
+
catch (error) {
|
|
347
|
+
console.error("Error in fetchPoolsForTokensBatch:", error);
|
|
348
|
+
return {
|
|
349
|
+
data: null,
|
|
350
|
+
status: 500,
|
|
351
|
+
success: false,
|
|
352
|
+
error: error instanceof Error ? error.message : 'Unknown error occurred',
|
|
353
|
+
};
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* Fetches all pools containing a specific token
|
|
358
|
+
*
|
|
359
|
+
* @param tokenAddress - Token contract address
|
|
360
|
+
* @param protocol - Protocol to fetch pools from
|
|
361
|
+
* @param chainId - Chain ID to fetch pools from
|
|
362
|
+
* @returns Promise containing pools that include the specified token
|
|
363
|
+
*
|
|
364
|
+
* @example
|
|
365
|
+
* ```typescript
|
|
366
|
+
* // Get all USDC pools on Uniswap V3
|
|
367
|
+
* const usdcPools = await poolClient.fetchPoolsForToken(
|
|
368
|
+
* '0xa0b86a33e6f8b07b71c3a39ef77a6b6e8f1b7b7e',
|
|
369
|
+
* Protocol.UniswapV3,
|
|
370
|
+
* 1
|
|
371
|
+
* );
|
|
372
|
+
* if (usdcPools.success) {
|
|
373
|
+
* console.log(`Found ${usdcPools.data.length} USDC pools`);
|
|
374
|
+
* }
|
|
375
|
+
* ```
|
|
376
|
+
*
|
|
377
|
+
* @throws {Error} When failed to fetch pools for token
|
|
378
|
+
*/
|
|
379
|
+
async fetchPoolsForToken(tokenAddress, protocol, chainId) {
|
|
380
|
+
try {
|
|
381
|
+
const isAlgebraPool = (0, protocol_1.isAlgebraProtocol)(protocol);
|
|
382
|
+
const query = (0, PoolQueryAdapter_1.getTokenPoolsQueryByAddress)(isAlgebraPool, protocol);
|
|
383
|
+
const response = await this.fetchFromGraph(query, { token: tokenAddress.toLowerCase() }, protocol, chainId);
|
|
384
|
+
if (!response.success || !response.data) {
|
|
385
|
+
throw new Error(response.error || 'Failed to fetch pools for token');
|
|
386
|
+
}
|
|
387
|
+
// Extract pools from different possible response structures
|
|
388
|
+
let pools = [];
|
|
389
|
+
if (response.data.pools) {
|
|
390
|
+
pools = response.data.pools;
|
|
391
|
+
}
|
|
392
|
+
else if (response.data.limitPools) {
|
|
393
|
+
pools = response.data.limitPools;
|
|
394
|
+
}
|
|
395
|
+
else if (response.data.tokenPools) {
|
|
396
|
+
pools = response.data.tokenPools;
|
|
397
|
+
}
|
|
398
|
+
else if (response.data.clPools) {
|
|
399
|
+
pools = response.data.clPools;
|
|
400
|
+
}
|
|
401
|
+
return {
|
|
402
|
+
data: pools,
|
|
403
|
+
status: 200,
|
|
404
|
+
success: true,
|
|
405
|
+
};
|
|
406
|
+
}
|
|
407
|
+
catch (error) {
|
|
408
|
+
console.error(`Error fetching pools for token ${tokenAddress}:`, error);
|
|
409
|
+
return {
|
|
410
|
+
data: null,
|
|
411
|
+
status: 500,
|
|
412
|
+
success: false,
|
|
413
|
+
error: error instanceof Error ? error.message : 'Unknown error occurred',
|
|
414
|
+
};
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
/**
|
|
418
|
+
* Filters pools based on validity criteria such as tick range and liquidity
|
|
419
|
+
*
|
|
420
|
+
* @param pools - Array of pools to filter
|
|
421
|
+
* @returns Array of valid pools that meet the criteria
|
|
422
|
+
*
|
|
423
|
+
* @example
|
|
424
|
+
* ```typescript
|
|
425
|
+
* const validPools = poolClient.filterValidPools(allPools);
|
|
426
|
+
* console.log(`Filtered down to ${validPools.length} valid pools`);
|
|
427
|
+
* ```
|
|
428
|
+
*/
|
|
429
|
+
filterValidPools(pools) {
|
|
430
|
+
return pools.filter(pool => {
|
|
431
|
+
// Check for required fields
|
|
432
|
+
if (!pool.id || !pool.tick || !pool.liquidity) {
|
|
433
|
+
return false;
|
|
434
|
+
}
|
|
435
|
+
// Parse values
|
|
436
|
+
const tick = parseInt(pool.tick);
|
|
437
|
+
const liquidity = parseFloat(pool.liquidity);
|
|
438
|
+
// Check for valid tick range and liquidity
|
|
439
|
+
const TICK_MIN = -887272;
|
|
440
|
+
const TICK_MAX = 887272;
|
|
441
|
+
const TICK_EDGE_THRESHOLD = 1;
|
|
442
|
+
if (isNaN(tick) ||
|
|
443
|
+
isNaN(liquidity) ||
|
|
444
|
+
liquidity <= 0 ||
|
|
445
|
+
tick <= TICK_MIN + TICK_EDGE_THRESHOLD ||
|
|
446
|
+
tick >= TICK_MAX - TICK_EDGE_THRESHOLD) {
|
|
447
|
+
return false;
|
|
448
|
+
}
|
|
449
|
+
return true;
|
|
450
|
+
});
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
exports.PoolClient = PoolClient;
|
|
454
|
+
//# sourceMappingURL=PoolClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PoolClient.js","sourceRoot":"","sources":["../../../src/base/PoolClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,12 +10,13 @@ exports.deprecatedBundlesURL = "https://api.steer.finance/deprecated-bundles";
|
|
|
10
10
|
/**
|
|
11
11
|
* Configuration mapping of supported chains to their respective subgraph endpoints.
|
|
12
12
|
* Each chain has a dedicated subgraph URL for querying protocol data.
|
|
13
|
-
|
|
13
|
+
* Updated each chains for ormi and thegraph
|
|
14
|
+
*/
|
|
14
15
|
exports.steerSubgraphConfig = {
|
|
15
|
-
[chain_1.Chain.Polygon]: "https://api.
|
|
16
|
+
[chain_1.Chain.Polygon]: "https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-polygon/prod/gn",
|
|
16
17
|
[chain_1.Chain.BSC]: "https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/GLDP56fPGDz3MtmhtfTkz5CxWiqiNLACVrsJ9RqQeL4U",
|
|
17
18
|
[chain_1.Chain.Optimism]: "https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/GgW1EwNARL3dyo3acQ3VhraQQ66MHT7QnYuGcQc5geDG",
|
|
18
|
-
[chain_1.Chain.Arbitrum]: "https://api.
|
|
19
|
+
[chain_1.Chain.Arbitrum]: "https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-arbitrum/prod/gn",
|
|
19
20
|
[chain_1.Chain.Evmos]: "https://subgraph.satsuma-prod.com/769a117cc018/steer/steer-protocol-evmos/api",
|
|
20
21
|
[chain_1.Chain.Thundercore]: "https://subgraph.steer.finance/thundercore/subgraphs/name/steerprotocol/steer-thundercore",
|
|
21
22
|
[chain_1.Chain.Metis]: "https://api.metis.0xgraph.xyz/api/public/b88b5696-b69d-46be-b212-5c55a9b1492f/subgraphs/steer-protocol-metis/prod/gn",
|
|
@@ -49,7 +50,7 @@ exports.steerSubgraphConfig = {
|
|
|
49
50
|
[chain_1.Chain.Sonic]: 'https://api.0xgraph.xyz/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-sonic/prod/gn',
|
|
50
51
|
[chain_1.Chain.Zeta]: 'https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/HFH41DyzAXxYmT5eszVWn2T7UxViMroPJ4XJV8vhDGNN',
|
|
51
52
|
[chain_1.Chain.Mainnet]: 'https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-mainnet/prod/gn',
|
|
52
|
-
[chain_1.Chain.Soneium]: 'https://
|
|
53
|
+
[chain_1.Chain.Soneium]: 'https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-soneium/prod/gn',
|
|
53
54
|
[chain_1.Chain.Bera]: 'https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-bera/prod/gn',
|
|
54
55
|
[chain_1.Chain.Unichain]: 'https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/EoLK36f26Dr7maXyNKxJmEBJkoYVCMh1d4ENtT5hJgyB',
|
|
55
56
|
[chain_1.Chain.Hemi]: 'https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/2eACJtEGuELqN5roUiHG1jqmCpXt5aimcc8xZdvtMv4z',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subgraph.js","sourceRoot":"","sources":["../../../src/const/subgraph.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"subgraph.js","sourceRoot":"","sources":["../../../src/const/subgraph.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -20,6 +20,7 @@ __exportStar(require("./types"), exports);
|
|
|
20
20
|
__exportStar(require("./base/VaultClient"), exports);
|
|
21
21
|
__exportStar(require("./base/SubgraphClient"), exports);
|
|
22
22
|
__exportStar(require("./base/StakingClient"), exports);
|
|
23
|
+
__exportStar(require("./base/PoolClient"), exports);
|
|
23
24
|
__exportStar(require("./const"), exports);
|
|
24
25
|
/**
|
|
25
26
|
* @packageDocumentation
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,2CAAyB;AACzB,0CAAwB;AACxB,qDAAmC;AACnC,wDAAsC;AACtC,uDAAqC;AACrC,0CAAwB;AAExB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,2CAAyB;AACzB,0CAAwB;AACxB,qDAAmC;AACnC,wDAAsC;AACtC,uDAAqC;AACrC,oDAAkC;AAClC,0CAAwB;AAExB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG"}
|