@paraswap/dex-lib 2.23.2 → 2.23.3-uniswap-v2-pairs-distant-cache.2
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/.idea/aws.xml +17 -0
- package/.idea/codeStyles/Project.xml +19 -0
- package/.idea/codeStyles/codeStyleConfig.xml +5 -0
- package/.idea/misc.xml +6 -0
- package/.idea/modules.xml +8 -0
- package/.idea/paraswap-dex-lib.iml +9 -0
- package/.idea/vcs.xml +6 -0
- package/build/dex/aave-v3/tokens/arbitrum.json +50 -0
- package/build/dex/aave-v3/tokens/avalanche.json +74 -0
- package/build/dex/aave-v3/tokens/fantom.json +62 -0
- package/build/dex/aave-v3/tokens/optimism.json +50 -0
- package/build/dex/aave-v3/tokens/polygon.json +116 -0
- package/build/dex/pancakeswap-v3/types.d.ts +14 -0
- package/build/dex/{algebra → pancakeswap-v3}/types.js.map +1 -1
- package/build/dex/solidly/forks-override/ramses.d.ts +8 -0
- package/build/dex/solidly/forks-override/ramses.js +15 -0
- package/build/dex/solidly/forks-override/ramses.js.map +1 -0
- package/build/dex/uniswap-v2/constants.d.ts +1 -0
- package/build/dex/uniswap-v2/constants.js +2 -1
- package/build/dex/uniswap-v2/constants.js.map +1 -1
- package/build/dex/uniswap-v2/uniswap-v2.d.ts +5 -2
- package/build/dex/uniswap-v2/uniswap-v2.js +36 -18
- package/build/dex/uniswap-v2/uniswap-v2.js.map +1 -1
- package/package.json +1 -1
- package/src/dex/uniswap-v2/constants.ts +2 -0
- package/src/dex/uniswap-v2/uniswap-v2.ts +55 -18
- package/build/abi/algebra/AlgebraPool.abi.json +0 -727
- package/build/abi/algebra/AlgebraQuoter.abi.json +0 -138
- package/build/abi/algebra/AlgebraStateMulticall.abi.json +0 -801
- package/build/dex/algebra/algebra-pool.d.ts +0 -41
- package/build/dex/algebra/algebra-pool.js +0 -267
- package/build/dex/algebra/algebra-pool.js.map +0 -1
- package/build/dex/algebra/algebra.d.ts +0 -53
- package/build/dex/algebra/algebra.js +0 -457
- package/build/dex/algebra/algebra.js.map +0 -1
- package/build/dex/algebra/config.d.ts +0 -4
- package/build/dex/algebra/config.js +0 -41
- package/build/dex/algebra/config.js.map +0 -1
- package/build/dex/algebra/lib/AlgebraMath.d.ts +0 -14
- package/build/dex/algebra/lib/AlgebraMath.js +0 -274
- package/build/dex/algebra/lib/AlgebraMath.js.map +0 -1
- package/build/dex/algebra/lib/AlgebraXUniV3.d.ts +0 -5
- package/build/dex/algebra/lib/AlgebraXUniV3.js +0 -45
- package/build/dex/algebra/lib/AlgebraXUniV3.js.map +0 -1
- package/build/dex/algebra/lib/Constants.d.ts +0 -5
- package/build/dex/algebra/lib/Constants.js +0 -10
- package/build/dex/algebra/lib/Constants.js.map +0 -1
- package/build/dex/algebra/lib/DataStorage.d.ts +0 -24
- package/build/dex/algebra/lib/DataStorage.js +0 -388
- package/build/dex/algebra/lib/DataStorage.js.map +0 -1
- package/build/dex/algebra/lib/DataStorageOperator.d.ts +0 -9
- package/build/dex/algebra/lib/DataStorageOperator.js +0 -66
- package/build/dex/algebra/lib/DataStorageOperator.js.map +0 -1
- package/build/dex/algebra/lib/Sqrt.d.ts +0 -3
- package/build/dex/algebra/lib/Sqrt.js +0 -60
- package/build/dex/algebra/lib/Sqrt.js.map +0 -1
- package/build/dex/algebra/lib/TickManager.d.ts +0 -10
- package/build/dex/algebra/lib/TickManager.js +0 -3
- package/build/dex/algebra/lib/TickManager.js.map +0 -1
- package/build/dex/algebra/types.d.ts +0 -55
- /package/build/dex/{algebra → pancakeswap-v3}/types.js +0 -0
|
@@ -44,6 +44,7 @@ const UniswapV2ExchangeRouter_json_1 = __importDefault(require("../../abi/Uniswa
|
|
|
44
44
|
const config_1 = require("./config");
|
|
45
45
|
const uniswap_v2_constant_product_pool_1 = require("./uniswap-v2-constant-product-pool");
|
|
46
46
|
const token_transfer_fee_1 = require("../../lib/token-transfer-fee");
|
|
47
|
+
const constants_2 = require("./constants");
|
|
47
48
|
const DefaultUniswapV2PoolGasCost = 90 * 1000;
|
|
48
49
|
exports.RESERVE_LIMIT = 2n ** 112n - 1n;
|
|
49
50
|
const LogCallTopics = [
|
|
@@ -151,7 +152,7 @@ class UniswapV2 extends simple_exchange_1.SimpleExchange {
|
|
|
151
152
|
this.decoderIface = decoderIface;
|
|
152
153
|
this.adapters = adapters;
|
|
153
154
|
this.router = router;
|
|
154
|
-
this.
|
|
155
|
+
this.pairToPoolMap = {};
|
|
155
156
|
this.feeFactor = 10000;
|
|
156
157
|
this.hasConstantPriceLargeAmounts = false;
|
|
157
158
|
this.isFeeOnTransferSupported = true;
|
|
@@ -169,12 +170,17 @@ class UniswapV2 extends simple_exchange_1.SimpleExchange {
|
|
|
169
170
|
}
|
|
170
171
|
async addPool(pair, reserves0, reserves1, feeCode, blockNumber) {
|
|
171
172
|
const { callEntry, callDecoder } = this.getFeesMultiCallData(pair) || {};
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
173
|
+
const [token0, token1] = this.getSortedPair(pair.token0, pair.token1);
|
|
174
|
+
this.pairToPoolMap[this.getKeyForPair(token0, token1)] = new UniswapV2EventPool(this.dexKey, this.dexHelper, pair.exchange, pair.token0, pair.token1, feeCode, this.logger, this.isDynamicFees, callEntry, callDecoder, this.decoderIface);
|
|
175
|
+
this.pairToPoolMap[this.getKeyForPair(token0, token1)].addressesSubscribed.push(pair.exchange);
|
|
176
|
+
await this.pairToPoolMap[this.getKeyForPair(token0, token1)].initialize(blockNumber, {
|
|
175
177
|
state: { reserves0, reserves1, feeCode },
|
|
176
178
|
});
|
|
177
179
|
}
|
|
180
|
+
getPool(pair) {
|
|
181
|
+
const [token0, token1] = this.getSortedPair(pair.token0, pair.token1);
|
|
182
|
+
return this.pairToPoolMap[this.getKeyForPair(token0, token1)];
|
|
183
|
+
}
|
|
178
184
|
async getBuyPrice(priceParams, destAmount) {
|
|
179
185
|
return uniswap_v2_constant_product_pool_1.Uniswapv2ConstantProductPool.getBuyPrice(priceParams, destAmount, this.feeFactor);
|
|
180
186
|
}
|
|
@@ -195,16 +201,23 @@ class UniswapV2 extends simple_exchange_1.SimpleExchange {
|
|
|
195
201
|
}
|
|
196
202
|
return price;
|
|
197
203
|
}
|
|
204
|
+
getSortedPair(from, to) {
|
|
205
|
+
return from.address.toLowerCase() < to.address.toLowerCase()
|
|
206
|
+
? [from, to]
|
|
207
|
+
: [to, from];
|
|
208
|
+
}
|
|
209
|
+
getKeyForPair(token0, token1) {
|
|
210
|
+
return `${token0.address.toLowerCase()}-${token1.address.toLowerCase()}`;
|
|
211
|
+
}
|
|
198
212
|
async findPair(from, to) {
|
|
199
213
|
if (from.address.toLowerCase() === to.address.toLowerCase())
|
|
200
214
|
return null;
|
|
201
|
-
const [token0, token1] =
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
return pair;
|
|
215
|
+
const [token0, token1] = this.getSortedPair(from, to);
|
|
216
|
+
const key = this.getKeyForPair(token0, token1);
|
|
217
|
+
const cachedPair = await this.dexHelper.cache.getAndCacheLocally(this.dexKey, this.network, key, constants_2.UNISWAP_V2_PAIRS_CACHE_TTL_S);
|
|
218
|
+
if (cachedPair)
|
|
219
|
+
return JSON.parse(cachedPair);
|
|
220
|
+
let pair;
|
|
208
221
|
const exchange = await this.factory.methods
|
|
209
222
|
.getPair(token0.address, token1.address)
|
|
210
223
|
.call();
|
|
@@ -214,7 +227,7 @@ class UniswapV2 extends simple_exchange_1.SimpleExchange {
|
|
|
214
227
|
else {
|
|
215
228
|
pair = { token0, token1, exchange };
|
|
216
229
|
}
|
|
217
|
-
this.
|
|
230
|
+
this.dexHelper.cache.setexAndCacheLocally(this.dexKey, this.network, key, constants_2.UNISWAP_V2_PAIRS_CACHE_TTL_S, JSON.stringify(pair));
|
|
218
231
|
return pair;
|
|
219
232
|
}
|
|
220
233
|
async getManyPoolReserves(pairs, blockNumber) {
|
|
@@ -270,10 +283,11 @@ class UniswapV2 extends simple_exchange_1.SimpleExchange {
|
|
|
270
283
|
const pair = await this.findPair(_pair[0], _pair[1]);
|
|
271
284
|
if (!(pair && pair.exchange))
|
|
272
285
|
continue;
|
|
273
|
-
|
|
286
|
+
const pool = this.getPool(pair);
|
|
287
|
+
if (!pool) {
|
|
274
288
|
pairsToFetch.push(pair);
|
|
275
289
|
}
|
|
276
|
-
else if (!
|
|
290
|
+
else if (!pool.getState(blockNumber)) {
|
|
277
291
|
pairsToFetch.push(pair);
|
|
278
292
|
}
|
|
279
293
|
}
|
|
@@ -286,18 +300,22 @@ class UniswapV2 extends simple_exchange_1.SimpleExchange {
|
|
|
286
300
|
for (let i = 0; i < pairsToFetch.length; i++) {
|
|
287
301
|
const pairState = reserves[i];
|
|
288
302
|
const pair = pairsToFetch[i];
|
|
289
|
-
|
|
303
|
+
const pool = this.getPool(pair);
|
|
304
|
+
if (!pool) {
|
|
290
305
|
await this.addPool(pair, pairState.reserves0, pairState.reserves1, pairState.feeCode, blockNumber);
|
|
291
306
|
}
|
|
292
307
|
else
|
|
293
|
-
|
|
308
|
+
pool.setState(pairState, blockNumber);
|
|
294
309
|
}
|
|
295
310
|
}
|
|
296
311
|
async getPairOrderedParams(from, to, blockNumber, tokenDexTransferFee) {
|
|
297
312
|
const pair = await this.findPair(from, to);
|
|
298
|
-
|
|
313
|
+
let pool = null;
|
|
314
|
+
if (pair)
|
|
315
|
+
pool = this.getPool(pair);
|
|
316
|
+
if (!(pair && pool && pair.exchange))
|
|
299
317
|
return null;
|
|
300
|
-
const pairState =
|
|
318
|
+
const pairState = pool.getState(blockNumber);
|
|
301
319
|
if (!pairState) {
|
|
302
320
|
this.logger.error(`Error_orderPairParams expected reserves, got none (maybe the pool doesn't exist) ${from.symbol || from.address} ${to.symbol || to.address}`);
|
|
303
321
|
return null;
|
|
@@ -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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"}
|
package/package.json
CHANGED
|
@@ -5,6 +5,8 @@ import { BiSwapConfig } from './biswap';
|
|
|
5
5
|
import { DfynConfig } from './dfyn';
|
|
6
6
|
import { ExcaliburConfig } from './excalibur';
|
|
7
7
|
|
|
8
|
+
export const UNISWAP_V2_PAIRS_CACHE_TTL_S = 60; // 1 hour
|
|
9
|
+
|
|
8
10
|
// BakerySwap and Dystopia were removed from AllUniswapForks and UniswapForksWithNetwork
|
|
9
11
|
// as they have a modified pool implementation which are not compatible with
|
|
10
12
|
// standard contract methods
|
|
@@ -52,6 +52,7 @@ import { Contract } from 'web3-eth-contract';
|
|
|
52
52
|
import { UniswapV2Config, Adapters } from './config';
|
|
53
53
|
import { Uniswapv2ConstantProductPool } from './uniswap-v2-constant-product-pool';
|
|
54
54
|
import { applyTransferFee } from '../../lib/token-transfer-fee';
|
|
55
|
+
import { UNISWAP_V2_PAIRS_CACHE_TTL_S } from './constants';
|
|
55
56
|
|
|
56
57
|
const DefaultUniswapV2PoolGasCost = 90 * 1000;
|
|
57
58
|
|
|
@@ -186,7 +187,7 @@ export class UniswapV2
|
|
|
186
187
|
extends SimpleExchange
|
|
187
188
|
implements IDex<UniswapV2Data, UniswapParam>
|
|
188
189
|
{
|
|
189
|
-
|
|
190
|
+
pairToPoolMap: { [key: string]: UniswapV2EventPool } = {};
|
|
190
191
|
feeFactor = 10000;
|
|
191
192
|
factory: Contract;
|
|
192
193
|
|
|
@@ -258,7 +259,9 @@ export class UniswapV2
|
|
|
258
259
|
blockNumber: number,
|
|
259
260
|
) {
|
|
260
261
|
const { callEntry, callDecoder } = this.getFeesMultiCallData(pair) || {};
|
|
261
|
-
|
|
262
|
+
|
|
263
|
+
const [ token0, token1 ] = this.getSortedPair(pair.token0, pair.token1);
|
|
264
|
+
this.pairToPoolMap[this.getKeyForPair(token0, token1)] = new UniswapV2EventPool(
|
|
262
265
|
this.dexKey,
|
|
263
266
|
this.dexHelper,
|
|
264
267
|
pair.exchange!,
|
|
@@ -271,13 +274,19 @@ export class UniswapV2
|
|
|
271
274
|
callDecoder,
|
|
272
275
|
this.decoderIface,
|
|
273
276
|
);
|
|
274
|
-
|
|
277
|
+
this.pairToPoolMap[this.getKeyForPair(token0, token1)].addressesSubscribed.push(pair.exchange!);
|
|
275
278
|
|
|
276
|
-
await
|
|
279
|
+
await this.pairToPoolMap[this.getKeyForPair(token0, token1)].initialize(blockNumber, {
|
|
277
280
|
state: { reserves0, reserves1, feeCode },
|
|
278
281
|
});
|
|
279
282
|
}
|
|
280
283
|
|
|
284
|
+
protected getPool(pair: UniswapV2Pair): UniswapV2EventPool {
|
|
285
|
+
const [ token0, token1 ] = this.getSortedPair(pair.token0, pair.token1);
|
|
286
|
+
|
|
287
|
+
return this.pairToPoolMap[this.getKeyForPair(token0, token1)];
|
|
288
|
+
}
|
|
289
|
+
|
|
281
290
|
async getBuyPrice(
|
|
282
291
|
priceParams: UniswapV2PoolOrderedParams,
|
|
283
292
|
destAmount: bigint,
|
|
@@ -322,16 +331,32 @@ export class UniswapV2
|
|
|
322
331
|
return price;
|
|
323
332
|
}
|
|
324
333
|
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
const [token0, token1] =
|
|
328
|
-
from.address.toLowerCase() < to.address.toLowerCase()
|
|
334
|
+
getSortedPair(from: Token, to: Token): [ Token, Token ] {
|
|
335
|
+
return from.address.toLowerCase() < to.address.toLowerCase()
|
|
329
336
|
? [from, to]
|
|
330
337
|
: [to, from];
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
getKeyForPair(token0: Token, token1: Token) {
|
|
341
|
+
return `${token0.address.toLowerCase()}-${token1.address.toLowerCase()}`
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
async findPair(from: Token, to: Token): Promise<UniswapV2Pair | null> {
|
|
345
|
+
if (from.address.toLowerCase() === to.address.toLowerCase()) return null;
|
|
346
|
+
const [token0, token1] = this.getSortedPair(from, to);
|
|
331
347
|
|
|
332
|
-
const key =
|
|
333
|
-
|
|
334
|
-
|
|
348
|
+
const key = this.getKeyForPair(token0, token1);
|
|
349
|
+
|
|
350
|
+
const cachedPair = await this.dexHelper.cache.getAndCacheLocally(
|
|
351
|
+
this.dexKey,
|
|
352
|
+
this.network,
|
|
353
|
+
key,
|
|
354
|
+
UNISWAP_V2_PAIRS_CACHE_TTL_S,
|
|
355
|
+
);
|
|
356
|
+
|
|
357
|
+
if (cachedPair) return JSON.parse(cachedPair);
|
|
358
|
+
|
|
359
|
+
let pair: UniswapV2Pair;
|
|
335
360
|
const exchange = await this.factory.methods
|
|
336
361
|
.getPair(token0.address, token1.address)
|
|
337
362
|
.call();
|
|
@@ -340,7 +365,15 @@ export class UniswapV2
|
|
|
340
365
|
} else {
|
|
341
366
|
pair = { token0, token1, exchange };
|
|
342
367
|
}
|
|
343
|
-
|
|
368
|
+
|
|
369
|
+
this.dexHelper.cache.setexAndCacheLocally(
|
|
370
|
+
this.dexKey,
|
|
371
|
+
this.network,
|
|
372
|
+
key,
|
|
373
|
+
UNISWAP_V2_PAIRS_CACHE_TTL_S,
|
|
374
|
+
JSON.stringify(pair),
|
|
375
|
+
);
|
|
376
|
+
|
|
344
377
|
return pair;
|
|
345
378
|
}
|
|
346
379
|
|
|
@@ -406,9 +439,10 @@ export class UniswapV2
|
|
|
406
439
|
for (const _pair of pairs) {
|
|
407
440
|
const pair = await this.findPair(_pair[0], _pair[1]);
|
|
408
441
|
if (!(pair && pair.exchange)) continue;
|
|
409
|
-
|
|
442
|
+
const pool = this.getPool(pair);
|
|
443
|
+
if (!pool) {
|
|
410
444
|
pairsToFetch.push(pair);
|
|
411
|
-
} else if (!
|
|
445
|
+
} else if (!pool.getState(blockNumber)) {
|
|
412
446
|
pairsToFetch.push(pair);
|
|
413
447
|
}
|
|
414
448
|
}
|
|
@@ -426,7 +460,8 @@ export class UniswapV2
|
|
|
426
460
|
for (let i = 0; i < pairsToFetch.length; i++) {
|
|
427
461
|
const pairState = reserves[i];
|
|
428
462
|
const pair = pairsToFetch[i];
|
|
429
|
-
|
|
463
|
+
const pool = this.getPool(pair);
|
|
464
|
+
if (!pool) {
|
|
430
465
|
await this.addPool(
|
|
431
466
|
pair,
|
|
432
467
|
pairState.reserves0,
|
|
@@ -434,7 +469,7 @@ export class UniswapV2
|
|
|
434
469
|
pairState.feeCode,
|
|
435
470
|
blockNumber,
|
|
436
471
|
);
|
|
437
|
-
} else
|
|
472
|
+
} else pool.setState(pairState, blockNumber);
|
|
438
473
|
}
|
|
439
474
|
}
|
|
440
475
|
|
|
@@ -445,8 +480,10 @@ export class UniswapV2
|
|
|
445
480
|
tokenDexTransferFee: number,
|
|
446
481
|
): Promise<UniswapV2PoolOrderedParams | null> {
|
|
447
482
|
const pair = await this.findPair(from, to);
|
|
448
|
-
|
|
449
|
-
|
|
483
|
+
let pool: UniswapV2EventPool | null = null;
|
|
484
|
+
if(pair) pool = this.getPool(pair);
|
|
485
|
+
if (!(pair && pool && pair.exchange)) return null;
|
|
486
|
+
const pairState = pool.getState(blockNumber);
|
|
450
487
|
if (!pairState) {
|
|
451
488
|
this.logger.error(
|
|
452
489
|
`Error_orderPairParams expected reserves, got none (maybe the pool doesn't exist) ${
|