@paraswap/dex-lib 4.2.3-4 → 4.2.3-41

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 (69) hide show
  1. package/build/constants.d.ts +2 -0
  2. package/build/constants.js +4 -1
  3. package/build/constants.js.map +1 -1
  4. package/build/dex/curve-v1-factory/constants.d.ts +1 -1
  5. package/build/dex/curve-v1-factory/constants.js +1 -1
  6. package/build/dex/curve-v1-factory/constants.js.map +1 -1
  7. package/build/dex/gmx/gmx.d.ts +1 -0
  8. package/build/dex/gmx/gmx.js +30 -21
  9. package/build/dex/gmx/gmx.js.map +1 -1
  10. package/build/dex/index.js +2 -0
  11. package/build/dex/index.js.map +1 -1
  12. package/build/dex/maverick-v1/maverick-v1.js +28 -28
  13. package/build/dex/maverick-v1/maverick-v1.js.map +1 -1
  14. package/build/dex/nerve/nerve.d.ts +4 -2
  15. package/build/dex/nerve/nerve.js +31 -8
  16. package/build/dex/nerve/nerve.js.map +1 -1
  17. package/build/dex/pancakeswap-v3/pancakeswap-v3.d.ts +1 -1
  18. package/build/dex/pancakeswap-v3/pancakeswap-v3.js +83 -10
  19. package/build/dex/pancakeswap-v3/pancakeswap-v3.js.map +1 -1
  20. package/build/dex/solidly/config.js +5 -3
  21. package/build/dex/solidly/config.js.map +1 -1
  22. package/build/dex/solidly/forks-override/equalizer.d.ts +5 -2
  23. package/build/dex/solidly/forks-override/equalizer.js +31 -2
  24. package/build/dex/solidly/forks-override/equalizer.js.map +1 -1
  25. package/build/dex/solidly/forks-override/pharaohV1.d.ts +5 -2
  26. package/build/dex/solidly/forks-override/pharaohV1.js +35 -2
  27. package/build/dex/solidly/forks-override/pharaohV1.js.map +1 -1
  28. package/build/dex/solidly/forks-override/velocimeter.d.ts +5 -2
  29. package/build/dex/solidly/forks-override/velocimeter.js +31 -2
  30. package/build/dex/solidly/forks-override/velocimeter.js.map +1 -1
  31. package/build/dex/solidly/forks-override/velodromeV2.d.ts +15 -2
  32. package/build/dex/solidly/forks-override/velodromeV2.js +32 -2
  33. package/build/dex/solidly/forks-override/velodromeV2.js.map +1 -1
  34. package/build/dex/solidly/rpc-pool-tracker.d.ts +26 -0
  35. package/build/dex/solidly/rpc-pool-tracker.js +228 -0
  36. package/build/dex/solidly/rpc-pool-tracker.js.map +1 -0
  37. package/build/dex/solidly/solidly.js +2 -2
  38. package/build/dex/solidly/solidly.js.map +1 -1
  39. package/build/dex/stader/stader.js +4 -4
  40. package/build/dex/stader/stader.js.map +1 -1
  41. package/build/dex/uniswap-v2/pancake-swap-v2.d.ts +8 -0
  42. package/build/dex/uniswap-v2/pancake-swap-v2.js +15 -0
  43. package/build/dex/uniswap-v2/pancake-swap-v2.js.map +1 -0
  44. package/build/dex/uniswap-v2/rpc-pool-tracker.d.ts +45 -0
  45. package/build/dex/uniswap-v2/rpc-pool-tracker.js +460 -0
  46. package/build/dex/uniswap-v2/rpc-pool-tracker.js.map +1 -0
  47. package/build/dex/uniswap-v2/uniswap-v2.js +4 -4
  48. package/build/dex/uniswap-v2/uniswap-v2.js.map +1 -1
  49. package/build/dex/uniswap-v3/config.js +4 -2
  50. package/build/dex/uniswap-v3/config.js.map +1 -1
  51. package/build/dex/uniswap-v3/uniswap-v3.js +40 -36
  52. package/build/dex/uniswap-v3/uniswap-v3.js.map +1 -1
  53. package/build/dex/uniswap-v4/utils.d.ts +1 -1
  54. package/build/dex/usual/usual.js +12 -4
  55. package/build/dex/usual/usual.js.map +1 -1
  56. package/build/dex-helper/dummy-dex-helper.d.ts +1 -0
  57. package/build/dex-helper/dummy-dex-helper.js +11 -0
  58. package/build/dex-helper/dummy-dex-helper.js.map +1 -1
  59. package/build/dex-helper/icache.d.ts +1 -0
  60. package/build/dex-helper/idex-helper.d.ts +2 -0
  61. package/build/lib/decoders.js +7 -7
  62. package/build/lib/decoders.js.map +1 -1
  63. package/build/lib/multi-wrapper.js +3 -0
  64. package/build/lib/multi-wrapper.js.map +1 -1
  65. package/build/pools-helper.d.ts +1 -1
  66. package/build/pools-helper.js +2 -2
  67. package/build/pools-helper.js.map +1 -1
  68. package/build/types.d.ts +3 -2
  69. package/package.json +1 -1
@@ -0,0 +1,460 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UniswapV2RpcPoolTracker = void 0;
4
+ const abi_1 = require("@ethersproject/abi");
5
+ const constants_1 = require("../../constants");
6
+ const decoders_1 = require("../../lib/decoders");
7
+ const uniswap_v2_1 = require("./uniswap-v2");
8
+ // also used to check if reserves should be updated
9
+ const UPDATE_NEW_POOLS_INTERVAL = 10 * 60 * 1000; // 10 minutes
10
+ const UPDATE_POOLS_AGE_INTERVAL = 24 * 60 * 60 * 1000; // 24 hours
11
+ const WRITE_BATCH_SIZE = 1_000;
12
+ const READ_BATCH_SIZE = 10_000;
13
+ // pool is valid if last update was less than 180 days ago, otherwise pool is considered stale and will not be used on pt
14
+ const VALID_POOLS_AGE = 1000 * 60 * 60 * 24 * 180; // 180 days
15
+ const MAX_RESERVES_POOLS_UPDATE = 5_000;
16
+ const FactoryABI = [
17
+ {
18
+ constant: true,
19
+ inputs: [
20
+ {
21
+ internalType: 'uint256',
22
+ name: '',
23
+ type: 'uint256',
24
+ },
25
+ ],
26
+ name: 'allPairs',
27
+ outputs: [
28
+ {
29
+ internalType: 'address',
30
+ name: '',
31
+ type: 'address',
32
+ },
33
+ ],
34
+ payable: false,
35
+ stateMutability: 'view',
36
+ type: 'function',
37
+ },
38
+ {
39
+ constant: true,
40
+ inputs: [],
41
+ name: 'allPairsLength',
42
+ outputs: [
43
+ {
44
+ internalType: 'uint256',
45
+ name: '',
46
+ type: 'uint256',
47
+ },
48
+ ],
49
+ payable: false,
50
+ stateMutability: 'view',
51
+ type: 'function',
52
+ },
53
+ {
54
+ constant: true,
55
+ inputs: [],
56
+ name: 'getReserves',
57
+ outputs: [
58
+ {
59
+ internalType: 'uint112',
60
+ name: '_reserve0',
61
+ type: 'uint112',
62
+ },
63
+ {
64
+ internalType: 'uint112',
65
+ name: '_reserve1',
66
+ type: 'uint112',
67
+ },
68
+ {
69
+ internalType: 'uint32',
70
+ name: '_blockTimestampLast',
71
+ type: 'uint32',
72
+ },
73
+ ],
74
+ payable: false,
75
+ stateMutability: 'view',
76
+ type: 'function',
77
+ },
78
+ {
79
+ inputs: [],
80
+ name: 'token0',
81
+ outputs: [{ internalType: 'address', name: '', type: 'address' }],
82
+ stateMutability: 'view',
83
+ type: 'function',
84
+ },
85
+ {
86
+ inputs: [],
87
+ name: 'token1',
88
+ outputs: [{ internalType: 'address', name: '', type: 'address' }],
89
+ stateMutability: 'view',
90
+ type: 'function',
91
+ },
92
+ {
93
+ inputs: [],
94
+ name: 'decimals',
95
+ outputs: [
96
+ {
97
+ internalType: 'uint8',
98
+ name: '',
99
+ type: 'uint8',
100
+ },
101
+ ],
102
+ stateMutability: 'view',
103
+ type: 'function',
104
+ },
105
+ ];
106
+ const factoryIface = new abi_1.Interface(FactoryABI);
107
+ class UniswapV2RpcPoolTracker extends uniswap_v2_1.UniswapV2 {
108
+ network;
109
+ dexHelper;
110
+ isDynamicFees;
111
+ cacheKey;
112
+ allPoolsLength = 0;
113
+ pools = {};
114
+ isStatePollingDex = true;
115
+ newPoolsUpdateInterval = null;
116
+ poolsAgeUpdateInterval = null;
117
+ constructor(network, dexKey, dexHelper, isDynamicFees = false) {
118
+ super(network, dexKey, dexHelper, isDynamicFees);
119
+ this.network = network;
120
+ this.dexHelper = dexHelper;
121
+ this.isDynamicFees = isDynamicFees;
122
+ this.cacheKey =
123
+ `${constants_1.CACHE_PREFIX}_${this.network}_${this.dexKey}_pools`.toLowerCase();
124
+ }
125
+ async initializePricing() {
126
+ this.logger.info(`PancakeSwapV2: Initializing pools for ${this.dexKey} on ${this.network}...`);
127
+ if (!this.dexHelper.config.isSlave) {
128
+ await this.updatePools(true);
129
+ await this.updatePoolsAge();
130
+ this.newPoolsUpdateInterval = setInterval(async () => {
131
+ try {
132
+ await this.updatePools();
133
+ }
134
+ catch (error) {
135
+ this.logger.error(`Error updating new pools for ${this.dexKey} on ${this.network}: ${error}`);
136
+ }
137
+ }, UPDATE_NEW_POOLS_INTERVAL);
138
+ this.poolsAgeUpdateInterval = setInterval(async () => {
139
+ try {
140
+ await this.updatePoolsAge();
141
+ }
142
+ catch (error) {
143
+ this.logger.error(`Error updating pools age for ${this.dexKey} on ${this.network}: ${error}`);
144
+ }
145
+ }, UPDATE_POOLS_AGE_INTERVAL);
146
+ }
147
+ }
148
+ async updatePools(initialize = false) {
149
+ const allPools = await this.getOnChainPoolsLength();
150
+ const allCachedPools = await this.dexHelper.cache.hlen(this.cacheKey);
151
+ const missingPools = allPools - allCachedPools;
152
+ if (!initialize && missingPools > 1_000) {
153
+ throw new Error(`Missing ${missingPools} out of ${allPools} pools. Cache is not up to date, reverting... `);
154
+ }
155
+ if (allPools > allCachedPools) {
156
+ await this.initPools(allCachedPools, allPools);
157
+ }
158
+ }
159
+ async initPools(fromIndex, toIndex) {
160
+ this.logger.info(`Initializing pools from ${fromIndex} to ${toIndex}...`);
161
+ for (let i = fromIndex; i < toIndex; i += WRITE_BATCH_SIZE) {
162
+ this.logger.info(`Fetching pools from ${i} to ${Math.min(i + WRITE_BATCH_SIZE, toIndex)}`);
163
+ const fetchedPools = await this.fetchPools(i, Math.min(i + WRITE_BATCH_SIZE, toIndex));
164
+ const pools = Object.fromEntries(Object.entries(fetchedPools).map(([key, value]) => [
165
+ key,
166
+ JSON.stringify(value),
167
+ ]));
168
+ await this.dexHelper.cache.hmset(this.cacheKey, pools);
169
+ }
170
+ this.logger.info(`Fetched ${toIndex - fromIndex} pools from ${fromIndex} to ${toIndex}`);
171
+ }
172
+ async getCachedPools(fromIndex, toIndex) {
173
+ for (let batchStart = fromIndex; batchStart < toIndex; batchStart += READ_BATCH_SIZE) {
174
+ const batchEnd = Math.min(batchStart + READ_BATCH_SIZE, toIndex);
175
+ const keys = [];
176
+ for (let i = batchStart; i < batchEnd; i++) {
177
+ keys.push(i.toString());
178
+ }
179
+ this.logger.info(`Getting cached pools from ${batchStart} to ${batchEnd}`);
180
+ const pools = await this.dexHelper.cache.hmget(this.cacheKey, keys);
181
+ const minValidUpdatedAt = Date.now() - VALID_POOLS_AGE;
182
+ pools.forEach((pool, idx) => {
183
+ if (pool) {
184
+ const index = batchStart + idx;
185
+ const parsedPool = JSON.parse(pool);
186
+ if (parsedPool && parsedPool.updatedAt > minValidUpdatedAt) {
187
+ this.pools[index] = {
188
+ address: parsedPool.address,
189
+ token0Address: parsedPool.token0.address,
190
+ token0Decimals: parsedPool.token0.decimals,
191
+ token1Address: parsedPool.token1.address,
192
+ token1Decimals: parsedPool.token1.decimals,
193
+ updatedAt: parsedPool.updatedAt,
194
+ reserve0: 0n,
195
+ reserve1: 0n,
196
+ reservesUpdatedAt: null,
197
+ };
198
+ }
199
+ }
200
+ else {
201
+ this.logger.warn(`Pool with index ${batchStart + idx} not found in cache`);
202
+ }
203
+ this.allPoolsLength++;
204
+ });
205
+ }
206
+ }
207
+ async updatePoolState() {
208
+ await this.updatePools();
209
+ const allPools = this.allPoolsLength;
210
+ const allCachedPools = await this.dexHelper.cache.hlen(this.cacheKey);
211
+ if (allPools < allCachedPools) {
212
+ await this.getCachedPools(allPools, allCachedPools);
213
+ }
214
+ }
215
+ async updatePoolsAge() {
216
+ this.logger.info(`Starting update pools age for ${this.dexKey} on ${this.network}...`);
217
+ const allPools = this.allPoolsLength;
218
+ const allCachedPools = await this.dexHelper.cache.hlen(this.cacheKey);
219
+ if (allPools < allCachedPools) {
220
+ await this.getCachedPools(allPools, allCachedPools);
221
+ }
222
+ const poolsIndexes = Object.keys(this.pools);
223
+ this.logger.info(`Updating pools age for ${poolsIndexes.length} pools on ${this.network}...`);
224
+ // batch poolsCalldata and process in chunks to avoid huge amounts of multi-calls
225
+ for (let batchStart = 0; batchStart < poolsIndexes.length; batchStart += WRITE_BATCH_SIZE) {
226
+ const batchEnd = Math.min(batchStart + WRITE_BATCH_SIZE, poolsIndexes.length);
227
+ const batchIndexes = poolsIndexes.slice(batchStart, batchEnd);
228
+ this.logger.info(`Updating pools age for ${batchStart}-${batchEnd} pools on ${this.network}...`);
229
+ const batchCalldata = batchIndexes.map(poolIndex => ({
230
+ target: this.pools[poolIndex].address,
231
+ callData: factoryIface.encodeFunctionData('getReserves', []),
232
+ decodeFunction: (result) => {
233
+ return (0, decoders_1.generalDecoder)(result, ['uint112', 'uint112', 'uint32'], 0, res => Number(res[2]));
234
+ },
235
+ }));
236
+ const batchPoolsData = await this.dexHelper.multiWrapper.tryAggregate(true, batchCalldata, undefined,
237
+ // as calls are small, should be affordable to use a larger batch size
238
+ WRITE_BATCH_SIZE);
239
+ const poolsToUpdate = {};
240
+ for (let i = 0; i < batchPoolsData.length; i++) {
241
+ const poolIndex = batchIndexes[i];
242
+ const updatedAt = batchPoolsData[i].returnData * 1000;
243
+ if (updatedAt !== this.pools[poolIndex].updatedAt) {
244
+ this.pools[poolIndex].updatedAt = updatedAt;
245
+ const pool = {
246
+ address: this.pools[poolIndex].address,
247
+ updatedAt,
248
+ token0: {
249
+ address: this.pools[poolIndex].token0Address,
250
+ decimals: this.pools[poolIndex].token0Decimals,
251
+ },
252
+ token1: {
253
+ address: this.pools[poolIndex].token1Address,
254
+ decimals: this.pools[poolIndex].token1Decimals,
255
+ },
256
+ };
257
+ poolsToUpdate[poolIndex] = JSON.stringify(pool);
258
+ }
259
+ }
260
+ if (Object.keys(poolsToUpdate).length > 0) {
261
+ await this.dexHelper.cache.hmset(this.cacheKey, poolsToUpdate);
262
+ }
263
+ }
264
+ this.logger.info(`Finished update pools age for ${poolsIndexes.length} pools on ${this.network}.`);
265
+ }
266
+ async getOnChainPoolsLength() {
267
+ const allPoolsCallData = {
268
+ target: this.factoryAddress,
269
+ callData: factoryIface.encodeFunctionData('allPairsLength', []),
270
+ decodeFunction: decoders_1.uint256DecodeToNumber,
271
+ };
272
+ if (!allPoolsCallData) {
273
+ throw new Error('getAllPoolsCallData is not implemented');
274
+ }
275
+ const callData = [allPoolsCallData];
276
+ const [allPoolsLength] = await this.dexHelper.multiWrapper.tryAggregate(true, callData);
277
+ return allPoolsLength.returnData;
278
+ }
279
+ async fetchPools(fromIndex, toIndex) {
280
+ const allPoolsCallData = [];
281
+ for (let i = fromIndex; i < toIndex; i++) {
282
+ const poolCallData = {
283
+ target: this.factoryAddress,
284
+ callData: factoryIface.encodeFunctionData('allPairs', [i]),
285
+ decodeFunction: decoders_1.addressDecode,
286
+ };
287
+ allPoolsCallData.push(poolCallData);
288
+ }
289
+ const allPoolsResults = await this.dexHelper.multiWrapper.tryAggregate(true, allPoolsCallData);
290
+ const poolsCalldata = [];
291
+ for (const poolResult of allPoolsResults) {
292
+ poolsCalldata.push({
293
+ target: poolResult.returnData,
294
+ callData: factoryIface.encodeFunctionData('token0', []),
295
+ decodeFunction: decoders_1.addressDecode,
296
+ }, {
297
+ target: poolResult.returnData,
298
+ callData: factoryIface.encodeFunctionData('token1', []),
299
+ decodeFunction: decoders_1.addressDecode,
300
+ }, {
301
+ target: poolResult.returnData,
302
+ callData: factoryIface.encodeFunctionData('getReserves', []),
303
+ decodeFunction: (result) => {
304
+ return (0, decoders_1.generalDecoder)(result, ['uint112', 'uint112', 'uint32'], 0, res => Number(res[2]));
305
+ },
306
+ });
307
+ }
308
+ const poolsData = await this.dexHelper.multiWrapper.tryAggregate(true, poolsCalldata);
309
+ const tokensSet = new Set();
310
+ for (let i = 0; i < allPoolsResults.length; i++) {
311
+ const token0 = poolsData[i * 3].returnData.toLowerCase();
312
+ const token1 = poolsData[i * 3 + 1].returnData.toLowerCase();
313
+ tokensSet.add(token0.toLowerCase());
314
+ tokensSet.add(token1.toLowerCase());
315
+ }
316
+ const decimalsCalldata = [];
317
+ const tokens = Array.from(tokensSet);
318
+ for (const token of tokens) {
319
+ decimalsCalldata.push({
320
+ target: token,
321
+ callData: factoryIface.encodeFunctionData('decimals', []),
322
+ decodeFunction: decoders_1.uint256DecodeToNumber,
323
+ });
324
+ }
325
+ const decimalsResults = await this.dexHelper.multiWrapper.tryAggregate(false, decimalsCalldata);
326
+ const decimals = decimalsResults.reduce((acc, result, index) => {
327
+ const token = tokens[index];
328
+ acc[token] = result.returnData || 18; // default to 18 decimals if not found
329
+ return acc;
330
+ }, {});
331
+ const pools = {};
332
+ for (let i = 0; i < allPoolsResults.length; i++) {
333
+ const poolAddress = allPoolsResults[i].returnData.toLowerCase();
334
+ const token0 = poolsData[i * 3].returnData.toLowerCase();
335
+ const token1 = poolsData[i * 3 + 1].returnData.toLowerCase();
336
+ const updatedAt = poolsData[i * 3 + 2].returnData;
337
+ pools[i + fromIndex] = {
338
+ address: poolAddress,
339
+ updatedAt: updatedAt * 1000,
340
+ token0: {
341
+ address: token0,
342
+ decimals: decimals[token0],
343
+ },
344
+ token1: {
345
+ address: token1,
346
+ decimals: decimals[token1],
347
+ },
348
+ };
349
+ }
350
+ return pools;
351
+ }
352
+ async updatePoolsReserves(pools) {
353
+ const callData = [];
354
+ for (const pool of pools) {
355
+ callData.push({
356
+ target: pool.address,
357
+ callData: factoryIface.encodeFunctionData('getReserves', []),
358
+ decodeFunction: (result) => {
359
+ return (0, decoders_1.generalDecoder)(result, ['uint112', 'uint112'], [0n, 0n], res => [BigInt(res[0]), BigInt(res[1])]);
360
+ },
361
+ });
362
+ }
363
+ const results = await this.dexHelper.multiWrapper.tryAggregate(true, callData);
364
+ for (let i = 0; i < pools.length; i++) {
365
+ const [reserve0, reserve1] = results[i].returnData;
366
+ const pool = pools[i];
367
+ pool.reserve0 = reserve0;
368
+ pool.reserve1 = reserve1;
369
+ pool.reservesUpdatedAt = Date.now();
370
+ }
371
+ }
372
+ async getTopPoolsForToken(tokenAddress, limit) {
373
+ const token = tokenAddress.toLowerCase();
374
+ // sort by updateAt with the assumption that pools with good liquidity are updated more frequently
375
+ let pools = Object.values(this.pools)
376
+ .filter(pool => pool.token0Address === token || pool.token1Address === token)
377
+ .sort((a, b) => {
378
+ return b.updatedAt - a.updatedAt;
379
+ })
380
+ .slice(0, MAX_RESERVES_POOLS_UPDATE);
381
+ if (pools.length === 0) {
382
+ return [];
383
+ }
384
+ const now = Date.now();
385
+ const poolsToUpdate = pools.filter(pool => !pool.reservesUpdatedAt ||
386
+ now - pool.reservesUpdatedAt > UPDATE_NEW_POOLS_INTERVAL);
387
+ if (poolsToUpdate.length > 0) {
388
+ try {
389
+ this.logger.info(`Started updating reserves for ${poolsToUpdate.length} pools for token ${token} on ${this.network}...`);
390
+ await this.updatePoolsReserves(poolsToUpdate);
391
+ this.logger.info(`Finished updating reserves for ${poolsToUpdate.length} pools for token ${token} on ${this.network}...`);
392
+ }
393
+ catch (error) {
394
+ this.logger.error(`Error updating reserves for pools for token ${token} on ${this.network}: ${error}`);
395
+ return [];
396
+ }
397
+ }
398
+ pools = pools
399
+ .sort((a, b) => {
400
+ const aReserve = token === a.token0Address ? a.reserve0 : a.reserve1;
401
+ const bReserve = token === b.token0Address ? b.reserve0 : b.reserve1;
402
+ return Number(bReserve - aReserve);
403
+ })
404
+ .slice(0, limit);
405
+ const tokensAmounts = pools
406
+ .map(pool => {
407
+ const token0 = pool.token0Address;
408
+ const token1 = pool.token1Address;
409
+ const reserve0 = pool.reserve0;
410
+ const reserve1 = pool.reserve1;
411
+ return [
412
+ [token0, reserve0],
413
+ [token1, reserve1],
414
+ ];
415
+ })
416
+ .flat();
417
+ const usdTokenAmounts = await this.dexHelper.getUsdTokenAmounts(tokensAmounts);
418
+ const poolsWithLiquidity = pools.map((pool, i) => {
419
+ const connectorToken = token === pool.token0Address
420
+ ? {
421
+ address: pool.token1Address,
422
+ decimals: pool.token1Decimals,
423
+ }
424
+ : {
425
+ address: pool.token0Address,
426
+ decimals: pool.token0Decimals,
427
+ };
428
+ let token0ReserveUSD = usdTokenAmounts[i * 2];
429
+ let token1ReserveUSD = usdTokenAmounts[i * 2 + 1];
430
+ // fallback to non-empty usd reserves
431
+ if (!token0ReserveUSD && token1ReserveUSD) {
432
+ token0ReserveUSD = token1ReserveUSD;
433
+ }
434
+ if (!token1ReserveUSD && token0ReserveUSD) {
435
+ token1ReserveUSD = token0ReserveUSD;
436
+ }
437
+ return {
438
+ exchange: this.dexKey,
439
+ address: pool.address,
440
+ connectorTokens: [connectorToken],
441
+ liquidityUSD: token0ReserveUSD + token1ReserveUSD,
442
+ };
443
+ });
444
+ return poolsWithLiquidity
445
+ .sort((a, b) => b.liquidityUSD - a.liquidityUSD)
446
+ .slice(0, limit);
447
+ }
448
+ releaseResources() {
449
+ if (this.newPoolsUpdateInterval) {
450
+ clearInterval(this.newPoolsUpdateInterval);
451
+ this.newPoolsUpdateInterval = null;
452
+ }
453
+ if (this.poolsAgeUpdateInterval) {
454
+ clearInterval(this.poolsAgeUpdateInterval);
455
+ this.poolsAgeUpdateInterval = null;
456
+ }
457
+ }
458
+ }
459
+ exports.UniswapV2RpcPoolTracker = UniswapV2RpcPoolTracker;
460
+ //# sourceMappingURL=rpc-pool-tracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpc-pool-tracker.js","sourceRoot":"","sources":["../../../src/dex/uniswap-v2/rpc-pool-tracker.ts"],"names":[],"mappings":"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"}
@@ -189,7 +189,7 @@ class UniswapV2 extends simple_exchange_1.SimpleExchange {
189
189
  isFeeOnTransferSupported = true;
190
190
  SRC_TOKEN_DEX_TRANSFERS = 1;
191
191
  DEST_TOKEN_DEX_TRANSFERS = 1;
192
- static dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(config_1.UniswapV2Config);
192
+ static dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(lodash_1.default.omit(config_1.UniswapV2Config, 'PancakeSwapV2'));
193
193
  constructor(network, dexKey, dexHelper, isDynamicFees = false, factoryAddress = config_1.UniswapV2Config[dexKey][network]
194
194
  .factoryAddress, subgraphURL = config_1.UniswapV2Config[dexKey] &&
195
195
  config_1.UniswapV2Config[dexKey][network].subgraphURL, initCode = config_1.UniswapV2Config[dexKey][network].initCode,
@@ -215,7 +215,7 @@ class UniswapV2 extends simple_exchange_1.SimpleExchange {
215
215
  this.adapters = adapters;
216
216
  this.router = router;
217
217
  this.subgraphType = subgraphType;
218
- this.logger = dexHelper.getLogger(dexKey);
218
+ this.logger = dexHelper.getLogger(`${dexKey}-${network}`);
219
219
  this.factory = new dexHelper.web3Provider.eth.Contract(uniswap_v2_factory_json_1.default, factoryAddress);
220
220
  this.routerInterface = new abi_1.Interface(IParaswap_json_1.default);
221
221
  this.exchangeRouterInterface = new abi_1.Interface(UniswapV2ExchangeRouter_json_1.default);
@@ -488,7 +488,7 @@ class UniswapV2 extends simple_exchange_1.SimpleExchange {
488
488
  return [];
489
489
  const query = `
490
490
  query ($token: Bytes!, $count: Int) {
491
- pools0: pairs(first: $count, orderBy: reserveUSD, orderDirection: desc, where: {token0: $token, reserve0_gt: 0.001, reserve1_gt: 0.001}) {
491
+ pools0: pairs(first: $count, orderBy: reserveUSD, orderDirection: desc, where: {token0: $token, reserve0_gt: 0.0001, reserve1_gt: 0.0001}) {
492
492
  id
493
493
  token0 {
494
494
  id
@@ -500,7 +500,7 @@ class UniswapV2 extends simple_exchange_1.SimpleExchange {
500
500
  }
501
501
  reserveUSD
502
502
  }
503
- pools1: pairs(first: $count, orderBy: reserveUSD, orderDirection: desc, where: {token1: $token, reserve0_gt: 0.001, reserve1_gt: 0.001}) {
503
+ pools1: pairs(first: $count, orderBy: reserveUSD, orderDirection: desc, where: {token1: $token, reserve0_gt: 0.0001, reserve1_gt: 0.0001}) {
504
504
  id
505
505
  token0 {
506
506
  id
@@ -1 +1 @@
1
- {"version":3,"file":"uniswap-v2.js","sourceRoot":"","sources":["../../../src/dex/uniswap-v2/uniswap-v2.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"uniswap-v2.js","sourceRoot":"","sources":["../../../src/dex/uniswap-v2/uniswap-v2.ts"],"names":[],"mappings":"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"}