@paraswap/dex-lib 2.42.30 → 2.42.31
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/abi/smardex/smardex-factory.json +185 -0
- package/build/abi/smardex/smardex-pool.json +578 -0
- package/build/abi/smardex/smardex-router.json +648 -0
- package/build/abi/trader-joe-v2_1/FactoryABI.json +0 -0
- package/build/abi/trader-joe-v2_1/PairABI.json +1493 -0
- package/build/abi/trader-joe-v2_1/RouterABI.json +1489 -0
- package/build/abi/wombat/pool-v2.json +1289 -0
- package/build/abi/wombat/pool-v3.json +2013 -0
- package/build/dex/index.js +2 -2
- package/build/dex/index.js.map +1 -1
- package/build/dex/smardex/subgraph-queries.d.ts +1 -0
- package/build/dex/smardex/subgraph-queries.js +17 -0
- package/build/dex/smardex/subgraph-queries.js.map +1 -0
- package/build/dex/smardex/usd-reserves.d.ts +23 -0
- package/build/dex/smardex/usd-reserves.js +86 -0
- package/build/dex/smardex/usd-reserves.js.map +1 -0
- package/build/dex/trader-joe-v2-1-2/config.d.ts +4 -0
- package/build/dex/trader-joe-v2-1-2/config.js +43 -0
- package/build/dex/trader-joe-v2-1-2/config.js.map +1 -0
- package/build/dex/trader-joe-v2-1-2/constants.d.ts +17 -0
- package/build/dex/trader-joe-v2-1-2/constants.js +19 -0
- package/build/dex/trader-joe-v2-1-2/constants.js.map +1 -0
- package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.d.ts +60 -0
- package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.js +199 -0
- package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.js.map +1 -0
- package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.d.ts +49 -0
- package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.js +269 -0
- package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.js.map +1 -0
- package/build/dex/trader-joe-v2-1-2/types.d.ts +81 -0
- package/build/dex/trader-joe-v2-1-2/types.js +9 -0
- package/build/dex/trader-joe-v2-1-2/types.js.map +1 -0
- package/build/dex/trader-joe-v2_1/config.d.ts +4 -0
- package/build/dex/trader-joe-v2_1/config.js +43 -0
- package/build/dex/trader-joe-v2_1/config.js.map +1 -0
- package/build/dex/trader-joe-v2_1/constants.d.ts +16 -0
- package/build/dex/trader-joe-v2_1/constants.js +18 -0
- package/build/dex/trader-joe-v2_1/constants.js.map +1 -0
- package/build/dex/trader-joe-v2_1/trader-joe-v2.1.d.ts +0 -0
- package/build/dex/trader-joe-v2_1/trader-joe-v2.1.js +384 -0
- package/build/dex/trader-joe-v2_1/trader-joe-v2.1.js.map +1 -0
- package/build/dex/trader-joe-v2_1/types.d.ts +39 -0
- package/build/dex/trader-joe-v2_1/types.js +3 -0
- package/build/dex/trader-joe-v2_1/types.js.map +1 -0
- package/build/dex/wombat/utils.d.ts +1 -0
- package/build/dex/wombat/utils.js +14 -1
- package/build/dex/wombat/utils.js.map +1 -1
- package/build/dex/wombat/wombat-bmw.d.ts +2 -2
- package/build/dex/wombat/wombat-bmw.js +8 -25
- package/build/dex/wombat/wombat-bmw.js.map +1 -1
- package/build/dex/wombat/wombat-pool-poller.d.ts +22 -0
- package/build/dex/wombat/wombat-pool-poller.js +164 -0
- package/build/dex/wombat/wombat-pool-poller.js.map +1 -0
- package/build/dex/wombat/wombat-pool.d.ts +51 -17
- package/build/dex/wombat/wombat-pool.js +398 -112
- package/build/dex/wombat/wombat-pool.js.map +1 -1
- package/build/dex/wombat/wombat.d.ts +1 -1
- package/build/dex/wombat/wombat.js +12 -18
- package/build/dex/wombat/wombat.js.map +1 -1
- package/package.json +1 -1
- package/src/abi/wombat/pool-v3.json +2013 -0
- package/src/dex/camelot/camelot-pool-discovery.test.ts +149 -0
- package/src/dex/index.ts +2 -2
- package/src/dex/wombat/utils.ts +20 -0
- package/src/dex/wombat/wombat-bmw.ts +8 -31
- package/src/dex/wombat/wombat-e2e.test.ts +13 -1
- package/src/dex/wombat/wombat-events.test.ts +147 -0
- package/src/dex/wombat/wombat-integration.test.ts +70 -111
- package/src/dex/wombat/wombat-pool.ts +623 -171
- package/src/dex/wombat/wombat.ts +13 -23
- package/tests/constants-e2e.ts +11 -1
- package/build/abi/algebra/AlgebraPool.abi.json +0 -727
- package/build/abi/uniswap-v3/UniswapV3Quoter.abi.json +0 -193
- package/build/dex/algebra/algebra-pool.d.ts +0 -46
- package/build/dex/algebra/algebra-pool.js +0 -336
- package/build/dex/algebra/algebra-pool.js.map +0 -1
- package/build/dex/quickswap/camelot-v3.d.ts +0 -6
- package/build/dex/quickswap/camelot-v3.js +0 -19
- package/build/dex/quickswap/camelot-v3.js.map +0 -1
- package/build/dex/quickswap/zyberswap-v3.d.ts +0 -6
- package/build/dex/quickswap/zyberswap-v3.js +0 -19
- package/build/dex/quickswap/zyberswap-v3.js.map +0 -1
- package/build/dex/uniswap-v2/rebase-tokens.json +0 -7
- /package/src/abi/wombat/{pool.json → pool-v2.json} +0 -0
package/build/dex/index.js
CHANGED
|
@@ -37,7 +37,6 @@ const excalibur_1 = require("./uniswap-v2/excalibur");
|
|
|
37
37
|
const maker_psm_1 = require("./maker-psm/maker-psm");
|
|
38
38
|
const kyberdmm_1 = require("./kyberdmm/kyberdmm");
|
|
39
39
|
const platypus_1 = require("./platypus/platypus");
|
|
40
|
-
//import { Wombat } from './wombat/wombat';
|
|
41
40
|
const gmx_1 = require("./gmx/gmx");
|
|
42
41
|
const woo_fi_v2_1 = require("./woo-fi-v2/woo-fi-v2");
|
|
43
42
|
const paraswap_limit_orders_1 = require("./paraswap-limit-orders/paraswap-limit-orders");
|
|
@@ -82,6 +81,7 @@ const quick_perps_1 = require("./quick-perps/quick-perps");
|
|
|
82
81
|
const nomiswap_v2_1 = require("./uniswap-v2/nomiswap-v2");
|
|
83
82
|
const dexalot_1 = require("./dexalot/dexalot");
|
|
84
83
|
const smardex_1 = require("./smardex/smardex");
|
|
84
|
+
const wombat_1 = require("./wombat/wombat");
|
|
85
85
|
const LegacyDexes = [
|
|
86
86
|
curve_v2_1.CurveV2,
|
|
87
87
|
stable_pool_1.StablePool,
|
|
@@ -159,7 +159,7 @@ const Dexes = [
|
|
|
159
159
|
nomiswap_v2_1.NomiswapV2,
|
|
160
160
|
solidly_v3_1.SolidlyV3,
|
|
161
161
|
smardex_1.Smardex,
|
|
162
|
-
|
|
162
|
+
wombat_1.Wombat,
|
|
163
163
|
];
|
|
164
164
|
class DexAdapterService {
|
|
165
165
|
constructor(dexHelper, network, sellAdapters = {}, buyAdapters = {}) {
|
package/build/dex/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dex/index.ts"],"names":[],"mappings":";;;AACA,yCAAqC;AAErC,qCAAkC;AAClC,qDAAiD;AACjD,+CAA2C;AAC3C,sCAAmC;AACnC,0EAAsE;AACtE,mCAAgC;AAChC,wDAAoD;AACpD,2DAAuD;AACvD,uDAA0D;AAC1D,wDAAoD;AACpD,sDAAwD;AACxD,sDAAsD;AACtD,gDAA6C;AAC7C,4CAAyC;AACzC,4CAAyC;AACzC,qCAAkC;AAClC,2CAAwC;AACxC,uCAAoC;AACpC,mCAAgC;AAChC,qCAAkC;AAClC,yCAAsC;AACtC,+CAA2C;AAC3C,+CAA2C;AAC3C,+CAA2C;AAC3C,2CAAwC;AACxC,uCAAmC;AACnC,uCAAmC;AACnC,uCAAoC;AACpC,yCAAsC;AAEtC,4CAAwC;AAExC,iCAA8B;AAC9B,sDAAmD;AACnD,qDAAiD;AACjD,kDAA+C;AAC/C,kDAA+C;AAC/C,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dex/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const fetchPaginatedPairUSDReservesQuery: (first: number, skip: number) => string;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fetchPaginatedPairUSDReservesQuery = void 0;
|
|
4
|
+
const fetchPaginatedPairUSDReservesQuery = (first, skip) => `query {
|
|
5
|
+
pairs(
|
|
6
|
+
orderBy: reserveUSD
|
|
7
|
+
orderDirection: desc
|
|
8
|
+
where: {reserve0_gt: 1, reserve1_gt: 1}
|
|
9
|
+
first: ${first}
|
|
10
|
+
skip: ${skip}
|
|
11
|
+
) {
|
|
12
|
+
id
|
|
13
|
+
reserveUSD
|
|
14
|
+
}
|
|
15
|
+
}`;
|
|
16
|
+
exports.fetchPaginatedPairUSDReservesQuery = fetchPaginatedPairUSDReservesQuery;
|
|
17
|
+
//# sourceMappingURL=subgraph-queries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subgraph-queries.js","sourceRoot":"","sources":["../../../src/dex/smardex/subgraph-queries.ts"],"names":[],"mappings":";;;AAAO,MAAM,kCAAkC,GAAG,CAChD,KAAa,EACb,IAAY,EACZ,EAAE,CACF;;;;;eAKa,KAAK;cACN,IAAI;;;;;IAKd,CAAC;AAfQ,QAAA,kCAAkC,sCAe1C"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Network } from '../../constants';
|
|
2
|
+
import { IDexHelper } from '../../dex-helper';
|
|
3
|
+
import { Address } from '../../types';
|
|
4
|
+
import { USDReserve } from './types';
|
|
5
|
+
export declare class USDReservesService {
|
|
6
|
+
private static readonly CACHE_KEY_LOCK;
|
|
7
|
+
private static readonly CACHE_TTL_LOCK;
|
|
8
|
+
private static readonly CACHE_TTL_RESERVES;
|
|
9
|
+
private static readonly CACHE_RESERVE_KEY_SUFFIX;
|
|
10
|
+
private readonly subgraphURL;
|
|
11
|
+
private readonly dexHelper;
|
|
12
|
+
private readonly dexKey;
|
|
13
|
+
private readonly network;
|
|
14
|
+
private readonly logger;
|
|
15
|
+
constructor(dexKey: string, network: Network, dexHelper: IDexHelper, subgraphURL: string);
|
|
16
|
+
getUSDReserveForPair(pairAddress: Address): Promise<number>;
|
|
17
|
+
private refreshUSDReservesIfNeeded;
|
|
18
|
+
private lockUSDReservesCache;
|
|
19
|
+
private areUSDReservesOutdated;
|
|
20
|
+
private cacheUSDReserves;
|
|
21
|
+
fetchSubgraphReserves(): Promise<USDReserve[]>;
|
|
22
|
+
fetchPaginatedReserves(page: number, pageSize: number): Promise<USDReserve[]>;
|
|
23
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.USDReservesService = void 0;
|
|
4
|
+
const constants_1 = require("../../constants");
|
|
5
|
+
const subgraph_queries_1 = require("./subgraph-queries");
|
|
6
|
+
// Service for managing USD reserves for Smardex
|
|
7
|
+
class USDReservesService {
|
|
8
|
+
constructor(dexKey, network, dexHelper, subgraphURL) {
|
|
9
|
+
this.dexKey = dexKey;
|
|
10
|
+
this.subgraphURL = subgraphURL;
|
|
11
|
+
this.network = network;
|
|
12
|
+
this.dexHelper = dexHelper;
|
|
13
|
+
this.logger = dexHelper.getLogger();
|
|
14
|
+
}
|
|
15
|
+
// Retrieves USD reserve for a specific pair from the cache
|
|
16
|
+
async getUSDReserveForPair(pairAddress) {
|
|
17
|
+
const suffix = USDReservesService.CACHE_RESERVE_KEY_SUFFIX;
|
|
18
|
+
await this.refreshUSDReservesIfNeeded();
|
|
19
|
+
const cachedReserve = await this.dexHelper.cache.get(this.dexKey, this.network, `${pairAddress.toLowerCase()}${suffix}`);
|
|
20
|
+
return cachedReserve ? Number(cachedReserve) : 0;
|
|
21
|
+
}
|
|
22
|
+
// Updates USD reserves if they are outdated
|
|
23
|
+
async refreshUSDReservesIfNeeded() {
|
|
24
|
+
if (!this.subgraphURL || !(await this.areUSDReservesOutdated())) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
await this.lockUSDReservesCache();
|
|
28
|
+
const pairs = await this.fetchSubgraphReserves();
|
|
29
|
+
await this.cacheUSDReserves(pairs);
|
|
30
|
+
}
|
|
31
|
+
// Acquires a lock on the USD reserves cache
|
|
32
|
+
async lockUSDReservesCache() {
|
|
33
|
+
await this.dexHelper.cache.setex(this.dexKey, this.network, USDReservesService.CACHE_KEY_LOCK, USDReservesService.CACHE_TTL_LOCK, Date.now().toString());
|
|
34
|
+
}
|
|
35
|
+
// Checks if the USD reserves are outdated
|
|
36
|
+
async areUSDReservesOutdated() {
|
|
37
|
+
const lastUpdate = await this.dexHelper.cache.get(this.dexKey, this.network, USDReservesService.CACHE_KEY_LOCK);
|
|
38
|
+
return !lastUpdate;
|
|
39
|
+
}
|
|
40
|
+
// Caches USD reserves for all pairs
|
|
41
|
+
async cacheUSDReserves(reserves) {
|
|
42
|
+
const suffix = USDReservesService.CACHE_RESERVE_KEY_SUFFIX;
|
|
43
|
+
for (const reserve of reserves) {
|
|
44
|
+
await this.dexHelper.cache.setex(this.dexKey, this.network, `${reserve.pairAddress}${suffix}`, USDReservesService.CACHE_TTL_RESERVES, reserve.reserveUSD.toString());
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
async fetchSubgraphReserves() {
|
|
48
|
+
const pageSize = 100;
|
|
49
|
+
let page = 1;
|
|
50
|
+
let pairs = [];
|
|
51
|
+
let paginatedPairs = await this.fetchPaginatedReserves(page, pageSize);
|
|
52
|
+
while (paginatedPairs.length > 0) {
|
|
53
|
+
pairs = [...pairs, ...paginatedPairs];
|
|
54
|
+
page++;
|
|
55
|
+
paginatedPairs = await this.fetchPaginatedReserves(page, pageSize);
|
|
56
|
+
}
|
|
57
|
+
return pairs;
|
|
58
|
+
}
|
|
59
|
+
// Fetches pair data from the subgraph
|
|
60
|
+
async fetchPaginatedReserves(page, pageSize) {
|
|
61
|
+
const skip = Math.max(0, page - 1) * pageSize;
|
|
62
|
+
const limit = pageSize;
|
|
63
|
+
const paginatedQuery = (0, subgraph_queries_1.fetchPaginatedPairUSDReservesQuery)(limit, skip);
|
|
64
|
+
try {
|
|
65
|
+
const apiToken = this.dexHelper.config.data.smardexSubgraphAuthToken;
|
|
66
|
+
const response = await this.dexHelper.httpRequest.post(this.subgraphURL, { query: paginatedQuery }, constants_1.SUBGRAPH_TIMEOUT, { 'x-api-key': apiToken });
|
|
67
|
+
if (!response.data || !response.data.pairs) {
|
|
68
|
+
return [];
|
|
69
|
+
}
|
|
70
|
+
return response.data.pairs.map((pair) => ({
|
|
71
|
+
pairAddress: pair.id,
|
|
72
|
+
reserveUSD: pair.reserveUSD,
|
|
73
|
+
}));
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
this.logger.error('Error fetching paginated reserves from subgraph', error);
|
|
77
|
+
return [];
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
exports.USDReservesService = USDReservesService;
|
|
82
|
+
USDReservesService.CACHE_KEY_LOCK = 'cached-reserves-usd';
|
|
83
|
+
USDReservesService.CACHE_TTL_LOCK = 120; // 2 minutes
|
|
84
|
+
USDReservesService.CACHE_TTL_RESERVES = 60 * 60; // 1 hour
|
|
85
|
+
USDReservesService.CACHE_RESERVE_KEY_SUFFIX = '-usd-reserve';
|
|
86
|
+
//# sourceMappingURL=usd-reserves.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usd-reserves.js","sourceRoot":"","sources":["../../../src/dex/smardex/usd-reserves.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Adapters = exports.TraderJoeV2_1Config = void 0;
|
|
4
|
+
const constants_1 = require("../../constants");
|
|
5
|
+
exports.TraderJoeV2_1Config = {
|
|
6
|
+
TraderJoeV21: {
|
|
7
|
+
[constants_1.Network.MAINNET]: {
|
|
8
|
+
factoryAddress: '0xDC8d77b69155c7E68A95a4fb0f06a71FF90B943a',
|
|
9
|
+
routerAddress: '0x9A93a421b74F1c5755b83dD2C211614dC419C44b',
|
|
10
|
+
},
|
|
11
|
+
[constants_1.Network.ARBITRUM]: {
|
|
12
|
+
factoryAddress: '0x8e42f2F4101563bF679975178e880FD87d3eFd4e',
|
|
13
|
+
routerAddress: '0xb4315e873dBcf96Ffd0acd8EA43f689D8c20fB30',
|
|
14
|
+
},
|
|
15
|
+
[constants_1.Network.BSC]: {
|
|
16
|
+
factoryAddress: '0x8e42f2F4101563bF679975178e880FD87d3eFd4e',
|
|
17
|
+
routerAddress: '0xb4315e873dBcf96Ffd0acd8EA43f689D8c20fB30',
|
|
18
|
+
},
|
|
19
|
+
[constants_1.Network.AVALANCHE]: {
|
|
20
|
+
factoryAddress: '0x8e42f2F4101563bF679975178e880FD87d3eFd4e',
|
|
21
|
+
routerAddress: '0xb4315e873dBcf96Ffd0acd8EA43f689D8c20fB30',
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
exports.Adapters = {
|
|
26
|
+
[constants_1.Network.MAINNET]: {
|
|
27
|
+
[constants_1.SwapSide.SELL]: [{ name: 'Adapter04', index: 5 }],
|
|
28
|
+
[constants_1.SwapSide.BUY]: [{ name: 'BuyAdapter02', index: 1 }],
|
|
29
|
+
},
|
|
30
|
+
[constants_1.Network.ARBITRUM]: {
|
|
31
|
+
[constants_1.SwapSide.SELL]: [{ name: 'ArbitrumAdapter02', index: 4 }],
|
|
32
|
+
[constants_1.SwapSide.BUY]: [{ name: 'ArbitrumBuyAdapter', index: 7 }],
|
|
33
|
+
},
|
|
34
|
+
[constants_1.Network.BSC]: {
|
|
35
|
+
[constants_1.SwapSide.SELL]: [{ name: 'BscAdapter02', index: 5 }],
|
|
36
|
+
[constants_1.SwapSide.BUY]: [{ name: 'BscBuyAdapter', index: 6 }],
|
|
37
|
+
},
|
|
38
|
+
[constants_1.Network.AVALANCHE]: {
|
|
39
|
+
[constants_1.SwapSide.SELL]: [{ name: 'AvalancheAdapter02', index: 4 }],
|
|
40
|
+
[constants_1.SwapSide.BUY]: [{ name: 'AvalancheBuyAdapter', index: 5 }],
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/dex/trader-joe-v2-1-2/config.ts"],"names":[],"mappings":";;;AAEA,+CAAoD;AAEvC,QAAA,mBAAmB,GAA4B;IAC1D,YAAY,EAAE;QACZ,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE;YACjB,cAAc,EAAE,4CAA4C;YAC5D,aAAa,EAAE,4CAA4C;SAC5D;QACD,CAAC,mBAAO,CAAC,QAAQ,CAAC,EAAE;YAClB,cAAc,EAAE,4CAA4C;YAC5D,aAAa,EAAE,4CAA4C;SAC5D;QACD,CAAC,mBAAO,CAAC,GAAG,CAAC,EAAE;YACb,cAAc,EAAE,4CAA4C;YAC5D,aAAa,EAAE,4CAA4C;SAC5D;QACD,CAAC,mBAAO,CAAC,SAAS,CAAC,EAAE;YACnB,cAAc,EAAE,4CAA4C;YAC5D,aAAa,EAAE,4CAA4C;SAC5D;KACF;CACF,CAAC;AAEW,QAAA,QAAQ,GAAoC;IACvD,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE;QACjB,CAAC,oBAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAClD,CAAC,oBAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;KACrD;IACD,CAAC,mBAAO,CAAC,QAAQ,CAAC,EAAE;QAClB,CAAC,oBAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC1D,CAAC,oBAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;KAC3D;IACD,CAAC,mBAAO,CAAC,GAAG,CAAC,EAAE;QACb,CAAC,oBAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACrD,CAAC,oBAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;KACtD;IACD,CAAC,mBAAO,CAAC,SAAS,CAAC,EAAE;QACnB,CAAC,oBAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC3D,CAAC,oBAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;KAC5D;CACF,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare const TRADER_JOE_V2_CHUNKS = 10;
|
|
2
|
+
export declare const TRADER_JOE_V2_QUOTE_GASLIMIT = 200000;
|
|
3
|
+
export declare const EMPTY_POOL_CACHE_TTL: number;
|
|
4
|
+
export declare const POPULATED_POOL_CACHE_TTL: number;
|
|
5
|
+
export declare const CACHE_PREFIX = "dl";
|
|
6
|
+
export declare const MinLBPairAbi: {
|
|
7
|
+
inputs: never[];
|
|
8
|
+
name: string;
|
|
9
|
+
outputs: {
|
|
10
|
+
internalType: string;
|
|
11
|
+
name: string;
|
|
12
|
+
type: string;
|
|
13
|
+
}[];
|
|
14
|
+
stateMutability: string;
|
|
15
|
+
type: string;
|
|
16
|
+
}[];
|
|
17
|
+
export declare const SUPPORTED_BIN_STEPS: bigint[];
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SUPPORTED_BIN_STEPS = exports.MinLBPairAbi = exports.CACHE_PREFIX = exports.POPULATED_POOL_CACHE_TTL = exports.EMPTY_POOL_CACHE_TTL = exports.TRADER_JOE_V2_QUOTE_GASLIMIT = exports.TRADER_JOE_V2_CHUNKS = void 0;
|
|
4
|
+
exports.TRADER_JOE_V2_CHUNKS = 10;
|
|
5
|
+
exports.TRADER_JOE_V2_QUOTE_GASLIMIT = 200000;
|
|
6
|
+
exports.EMPTY_POOL_CACHE_TTL = 60 * 60;
|
|
7
|
+
exports.POPULATED_POOL_CACHE_TTL = 12 * 60 * 60;
|
|
8
|
+
exports.CACHE_PREFIX = 'dl';
|
|
9
|
+
exports.MinLBPairAbi = [
|
|
10
|
+
{
|
|
11
|
+
inputs: [],
|
|
12
|
+
name: 'getTokenX',
|
|
13
|
+
outputs: [{ internalType: 'contract IERC20', name: '', type: 'address' }],
|
|
14
|
+
stateMutability: 'view',
|
|
15
|
+
type: 'function',
|
|
16
|
+
},
|
|
17
|
+
];
|
|
18
|
+
exports.SUPPORTED_BIN_STEPS = [1n, 2n, 5n, 10n, 15n, 20n, 25n, 50n, 100n];
|
|
19
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/dex/trader-joe-v2-1-2/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG,EAAE,CAAC;AAC1B,QAAA,4BAA4B,GAAG,MAAO,CAAC;AAEvC,QAAA,oBAAoB,GAAG,EAAE,GAAG,EAAE,CAAC;AAC/B,QAAA,wBAAwB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAExC,QAAA,YAAY,GAAG,IAAI,CAAC;AAEpB,QAAA,YAAY,GAAG;IAC1B;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACzE,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;CACF,CAAC;AAEW,QAAA,mBAAmB,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { Interface } from '@ethersproject/abi';
|
|
2
|
+
import { DeepReadonly } from 'ts-essentials';
|
|
3
|
+
import { Address, Log, Logger } from '../../types';
|
|
4
|
+
import { StatefulEventSubscriber } from '../../stateful-event-subscriber';
|
|
5
|
+
import { IDexHelper } from '../../dex-helper/idex-helper';
|
|
6
|
+
import { DecodedStateMultiCallResult, PoolState } from './types';
|
|
7
|
+
import { MultiCallParams } from '../../lib/multi-wrapper';
|
|
8
|
+
export declare class TraderJoeV2_1EventPool extends StatefulEventSubscriber<PoolState> {
|
|
9
|
+
readonly parentName: string;
|
|
10
|
+
protected network: number;
|
|
11
|
+
protected dexHelper: IDexHelper;
|
|
12
|
+
private token0;
|
|
13
|
+
private token1;
|
|
14
|
+
private address;
|
|
15
|
+
private readonly multiStateAddress;
|
|
16
|
+
handlers: {
|
|
17
|
+
[event: string]: (event: any, state: DeepReadonly<PoolState>, log: Readonly<Log>) => DeepReadonly<PoolState> | null;
|
|
18
|
+
};
|
|
19
|
+
logDecoder: (log: Log) => any;
|
|
20
|
+
addressesSubscribed: string[];
|
|
21
|
+
readonly binStep: bigint;
|
|
22
|
+
private contract;
|
|
23
|
+
private multiState;
|
|
24
|
+
protected _stateRequestCallData?: MultiCallParams<bigint | DecodedStateMultiCallResult>[];
|
|
25
|
+
readonly poolIface: Interface;
|
|
26
|
+
constructor(parentName: string, network: number, dexHelper: IDexHelper, token0: Address, token1: Address, address: Address, multiStateAddress: Address, binStep: bigint, logger: Logger);
|
|
27
|
+
getSwapOut(): void;
|
|
28
|
+
getSwapIn(): void;
|
|
29
|
+
/**
|
|
30
|
+
* The function is called every time any of the subscribed
|
|
31
|
+
* addresses release log. The function accepts the current
|
|
32
|
+
* state, updates the state according to the log, and returns
|
|
33
|
+
* the updated state.
|
|
34
|
+
* @param state - Current state of event subscriber
|
|
35
|
+
* @param log - Log released by one of the subscribed addresses
|
|
36
|
+
* @returns Updates state of the event subscriber after the log
|
|
37
|
+
*/
|
|
38
|
+
protected processLog(state: DeepReadonly<PoolState>, log: Readonly<Log>): DeepReadonly<PoolState> | null;
|
|
39
|
+
/**
|
|
40
|
+
* The function generates state using on-chain calls. This
|
|
41
|
+
* function is called to regenerate state if the event based
|
|
42
|
+
* system fails to fetch events and the local state is no
|
|
43
|
+
* more correct.
|
|
44
|
+
* @param blockNumber - Blocknumber for which the state should
|
|
45
|
+
* should be generated
|
|
46
|
+
* @returns state of the event subscriber at blocknumber
|
|
47
|
+
*/
|
|
48
|
+
generateState(blockNumber: number): Promise<DeepReadonly<PoolState>>;
|
|
49
|
+
protected _getStateRequestCallData(): MultiCallParams<bigint | DecodedStateMultiCallResult>[];
|
|
50
|
+
handleTransferBatch(event: any, state: DeepReadonly<PoolState>, log: Readonly<Log>): DeepReadonly<PoolState> | null;
|
|
51
|
+
handleDepositedToBins(event: any, state: DeepReadonly<PoolState>, log: Readonly<Log>): DeepReadonly<PoolState> | null;
|
|
52
|
+
handleWithdrawnFromBins(event: any, state: DeepReadonly<PoolState>, log: Readonly<Log>): DeepReadonly<PoolState> | null;
|
|
53
|
+
handleCompositionFees(event: any, state: DeepReadonly<PoolState>, log: Readonly<Log>): DeepReadonly<PoolState> | null;
|
|
54
|
+
handleSwap(event: any, state: DeepReadonly<PoolState>, log: Readonly<Log>): DeepReadonly<PoolState> | null;
|
|
55
|
+
handleStaticFeeParametersSet(event: any, state: DeepReadonly<PoolState>, log: Readonly<Log>): DeepReadonly<PoolState> | null;
|
|
56
|
+
handleFlashLoan(event: any, state: DeepReadonly<PoolState>, log: Readonly<Log>): DeepReadonly<PoolState> | null;
|
|
57
|
+
handleForcedDecay(event: any, state: DeepReadonly<PoolState>, log: Readonly<Log>): DeepReadonly<PoolState> | null;
|
|
58
|
+
private decodeAmounts;
|
|
59
|
+
private decodeFees;
|
|
60
|
+
}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.TraderJoeV2_1EventPool = void 0;
|
|
7
|
+
const abi_1 = require("@ethersproject/abi");
|
|
8
|
+
const utils_1 = require("../../utils");
|
|
9
|
+
const stateful_event_subscriber_1 = require("../../stateful-event-subscriber");
|
|
10
|
+
const PairABI_json_1 = __importDefault(require("../../abi/trader-joe-v2_1/PairABI.json"));
|
|
11
|
+
const UniswapMulti_abi_json_1 = __importDefault(require("../../abi/uniswap-v3/UniswapMulti.abi.json"));
|
|
12
|
+
const web3_eth_contract_1 = require("web3-eth-contract");
|
|
13
|
+
const config_1 = require("../uniswap-v3/config");
|
|
14
|
+
const decoders_1 = require("../../lib/decoders");
|
|
15
|
+
class TraderJoeV2_1EventPool extends stateful_event_subscriber_1.StatefulEventSubscriber {
|
|
16
|
+
constructor(parentName, network, dexHelper, token0, token1, address, multiStateAddress, binStep, logger) {
|
|
17
|
+
// TODO: Add pool name
|
|
18
|
+
super(parentName, `${token0}_${token1}_${binStep}`, dexHelper, logger);
|
|
19
|
+
this.parentName = parentName;
|
|
20
|
+
this.network = network;
|
|
21
|
+
this.dexHelper = dexHelper;
|
|
22
|
+
this.token0 = token0;
|
|
23
|
+
this.token1 = token1;
|
|
24
|
+
this.address = address;
|
|
25
|
+
this.multiStateAddress = multiStateAddress;
|
|
26
|
+
this.handlers = {};
|
|
27
|
+
this.poolIface = new abi_1.Interface(PairABI_json_1.default);
|
|
28
|
+
this.logDecoder = (log) => this.poolIface.parseLog(log);
|
|
29
|
+
this.addressesSubscribed = Array(1);
|
|
30
|
+
this.binStep = binStep;
|
|
31
|
+
this.token0 = token0;
|
|
32
|
+
this.token1 = token1;
|
|
33
|
+
this.multiState = new this.dexHelper.web3Provider.eth.Contract(UniswapMulti_abi_json_1.default, config_1.UniswapV3Config['UniswapV3'][network].uniswapMulticall);
|
|
34
|
+
this.contract = new web3_eth_contract_1.Contract(PairABI_json_1.default, address);
|
|
35
|
+
// Add handlers
|
|
36
|
+
this.handlers['TransferBatch'] = this.handleTransferBatch.bind(this);
|
|
37
|
+
this.handlers['DepositedToBins'] = this.handleDepositedToBins.bind(this);
|
|
38
|
+
this.handlers['WithdrawnFromBins'] =
|
|
39
|
+
this.handleWithdrawnFromBins.bind(this);
|
|
40
|
+
this.handlers['CompositionFees'] = this.handleCompositionFees.bind(this);
|
|
41
|
+
this.handlers['Swap'] = this.handleSwap.bind(this);
|
|
42
|
+
this.handlers['StaticFeeParametersSet'] =
|
|
43
|
+
this.handleStaticFeeParametersSet.bind(this);
|
|
44
|
+
this.handlers['FlashLoan'] = this.handleFlashLoan.bind(this);
|
|
45
|
+
this.handlers['ForcedDecay'] = this.handleForcedDecay.bind(this);
|
|
46
|
+
}
|
|
47
|
+
getSwapOut() { }
|
|
48
|
+
getSwapIn() { }
|
|
49
|
+
/**
|
|
50
|
+
* The function is called every time any of the subscribed
|
|
51
|
+
* addresses release log. The function accepts the current
|
|
52
|
+
* state, updates the state according to the log, and returns
|
|
53
|
+
* the updated state.
|
|
54
|
+
* @param state - Current state of event subscriber
|
|
55
|
+
* @param log - Log released by one of the subscribed addresses
|
|
56
|
+
* @returns Updates state of the event subscriber after the log
|
|
57
|
+
*/
|
|
58
|
+
processLog(state, log) {
|
|
59
|
+
try {
|
|
60
|
+
const event = this.logDecoder(log);
|
|
61
|
+
if (event.name in this.handlers) {
|
|
62
|
+
return this.handlers[event.name](event, state, log);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
catch (e) {
|
|
66
|
+
(0, utils_1.catchParseLogError)(e, this.logger);
|
|
67
|
+
}
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* The function generates state using on-chain calls. This
|
|
72
|
+
* function is called to regenerate state if the event based
|
|
73
|
+
* system fails to fetch events and the local state is no
|
|
74
|
+
* more correct.
|
|
75
|
+
* @param blockNumber - Blocknumber for which the state should
|
|
76
|
+
* should be generated
|
|
77
|
+
* @returns state of the event subscriber at blocknumber
|
|
78
|
+
*/
|
|
79
|
+
async generateState(blockNumber) {
|
|
80
|
+
// const params = [false, 0];
|
|
81
|
+
// const result = await this.uniswapMulti.methods
|
|
82
|
+
// .getReserves(this.addressesSubscribed[0])
|
|
83
|
+
// .call({}, blockNumber);
|
|
84
|
+
// // TODO: complete me!
|
|
85
|
+
return {};
|
|
86
|
+
}
|
|
87
|
+
_getStateRequestCallData() {
|
|
88
|
+
if (!this._stateRequestCallData) {
|
|
89
|
+
// const callData: MultiCallParams<bigint | bigint[]>[] = [
|
|
90
|
+
const callData = [
|
|
91
|
+
{
|
|
92
|
+
target: this.addressesSubscribed[0],
|
|
93
|
+
callData: this.poolIface.encodeFunctionData('getReserves', []),
|
|
94
|
+
decodeFunction: (result) => {
|
|
95
|
+
return (0, decoders_1.generalDecoder)(result, ['uint128', 'uint128'], [0n, 0n], value => [value[0].toBigInt(), value[1].toBigInt()]);
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
target: this.addressesSubscribed[0],
|
|
100
|
+
callData: this.poolIface.encodeFunctionData('getActiveId', []),
|
|
101
|
+
decodeFunction: decoders_1.uint128ToBigNumber,
|
|
102
|
+
},
|
|
103
|
+
];
|
|
104
|
+
// const callData: MultiCallParams<
|
|
105
|
+
// bigint | DecodedStateMultiCallResultWithRelativeBitmaps
|
|
106
|
+
// >[] = [
|
|
107
|
+
// {
|
|
108
|
+
// target: this.token0,
|
|
109
|
+
// callData: this.erc20Interface.encodeFunctionData('balanceOf', [
|
|
110
|
+
// this.poolAddress,
|
|
111
|
+
// ]),
|
|
112
|
+
// decodeFunction: uint256ToBigInt,
|
|
113
|
+
// },
|
|
114
|
+
// {
|
|
115
|
+
// target: this.token1,
|
|
116
|
+
// callData: this.erc20Interface.encodeFunctionData('balanceOf', [
|
|
117
|
+
// this.poolAddress,
|
|
118
|
+
// ]),
|
|
119
|
+
// decodeFunction: uint256ToBigInt,
|
|
120
|
+
// },
|
|
121
|
+
// {
|
|
122
|
+
// target: this.stateMultiContract.options.address,
|
|
123
|
+
// callData: this.stateMultiContract.methods
|
|
124
|
+
// .getFullStateWithRelativeBitmaps(
|
|
125
|
+
// this.factoryAddress,
|
|
126
|
+
// this.token0,
|
|
127
|
+
// this.token1,
|
|
128
|
+
// this.feeCode,
|
|
129
|
+
// this.getBitmapRangeToRequest(),
|
|
130
|
+
// this.getBitmapRangeToRequest(),
|
|
131
|
+
// )
|
|
132
|
+
// .encodeABI(),
|
|
133
|
+
// decodeFunction:
|
|
134
|
+
// this.decodeStateMultiCallResultWithRelativeBitmaps !== undefined
|
|
135
|
+
// ? this.decodeStateMultiCallResultWithRelativeBitmaps
|
|
136
|
+
// : decodeStateMultiCallResultWithRelativeBitmaps,
|
|
137
|
+
// },
|
|
138
|
+
// ];
|
|
139
|
+
this._stateRequestCallData = callData;
|
|
140
|
+
}
|
|
141
|
+
return this._stateRequestCallData;
|
|
142
|
+
}
|
|
143
|
+
handleTransferBatch(event, state, log) {
|
|
144
|
+
return null;
|
|
145
|
+
}
|
|
146
|
+
handleDepositedToBins(event, state, log) {
|
|
147
|
+
return null;
|
|
148
|
+
}
|
|
149
|
+
handleWithdrawnFromBins(event, state, log) {
|
|
150
|
+
return null;
|
|
151
|
+
}
|
|
152
|
+
handleCompositionFees(event, state, log) {
|
|
153
|
+
return null;
|
|
154
|
+
}
|
|
155
|
+
handleSwap(event, state, log) {
|
|
156
|
+
return null;
|
|
157
|
+
}
|
|
158
|
+
handleStaticFeeParametersSet(event, state, log) {
|
|
159
|
+
return null;
|
|
160
|
+
}
|
|
161
|
+
handleFlashLoan(event, state, log) {
|
|
162
|
+
return null;
|
|
163
|
+
}
|
|
164
|
+
handleForcedDecay(event, state, log) {
|
|
165
|
+
return null;
|
|
166
|
+
}
|
|
167
|
+
// private decodeAmounts(amounts: Bytes): [bigint, bigint] {
|
|
168
|
+
decodeAmounts(amounts) {
|
|
169
|
+
/**
|
|
170
|
+
* Decodes the amounts bytes input as 2 integers.
|
|
171
|
+
*
|
|
172
|
+
* @param amounts - amounts to decode.
|
|
173
|
+
* @return tuple of BigInts with the values decoded.
|
|
174
|
+
*/
|
|
175
|
+
// Convert amounts to a BigInt
|
|
176
|
+
const amountsBigInt = BigInt(`0x${Buffer.from(amounts).toString('hex')}`);
|
|
177
|
+
// Read the right 128 bits of the 256 bits
|
|
178
|
+
const amountsX = amountsBigInt & (BigInt(2) ** BigInt(128) - BigInt(1));
|
|
179
|
+
// Read the left 128 bits of the 256 bits
|
|
180
|
+
const amountsY = amountsBigInt >> BigInt(128);
|
|
181
|
+
return [amountsX, amountsY];
|
|
182
|
+
}
|
|
183
|
+
// private decodeFees(feesBytes: Bytes): bigint {
|
|
184
|
+
decodeFees(feesBytes) {
|
|
185
|
+
/**
|
|
186
|
+
* Decode the fee value from the bytes input and return it as in integer.
|
|
187
|
+
* Fee values are stored in the first 128 bits of the input.
|
|
188
|
+
*
|
|
189
|
+
* @param feesBytes - Bytes containing the encoded value.
|
|
190
|
+
* @return Fee values.
|
|
191
|
+
*/
|
|
192
|
+
// Convert feesBytes to a BigInt
|
|
193
|
+
const feesBigInt = BigInt(`0x${Buffer.from(feesBytes).toString('hex')}`);
|
|
194
|
+
// Retrieve the fee value from the right 128 bits
|
|
195
|
+
return feesBigInt & (BigInt(2) ** BigInt(128) - BigInt(1));
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
exports.TraderJoeV2_1EventPool = TraderJoeV2_1EventPool;
|
|
199
|
+
//# sourceMappingURL=trader-joe-v2-1-2-pool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trader-joe-v2-1-2-pool.js","sourceRoot":"","sources":["../../../src/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { AsyncOrSync } from 'ts-essentials';
|
|
2
|
+
import { Token, Address, ExchangePrices, PoolPrices, AdapterExchangeParam, SimpleExchangeParam, PoolLiquidity, Logger } from '../../types';
|
|
3
|
+
import { SwapSide, Network } from '../../constants';
|
|
4
|
+
import { IDex } from '../idex';
|
|
5
|
+
import { IDexHelper } from '../../dex-helper/idex-helper';
|
|
6
|
+
import { TraderJoeV2_1Data } from './types';
|
|
7
|
+
import { SimpleExchange } from '../simple-exchange';
|
|
8
|
+
import { TraderJoeV2_1EventPool } from './trader-joe-v2-1-2-pool';
|
|
9
|
+
import { Interface } from '@ethersproject/abi';
|
|
10
|
+
import { Contract } from 'web3-eth-contract';
|
|
11
|
+
export declare class TraderJoeV2_1 extends SimpleExchange implements IDex<TraderJoeV2_1Data> {
|
|
12
|
+
readonly network: Network;
|
|
13
|
+
readonly dexKey: string;
|
|
14
|
+
readonly dexHelper: IDexHelper;
|
|
15
|
+
protected adapters: import("../../types").AdapterMappings;
|
|
16
|
+
readonly hasConstantPriceLargeAmounts = false;
|
|
17
|
+
readonly needWrapNative = true;
|
|
18
|
+
readonly isFeeOnTransferSupported = false;
|
|
19
|
+
exchangeRouterInterface: Interface;
|
|
20
|
+
uniswapMulti: Contract;
|
|
21
|
+
factory: Contract;
|
|
22
|
+
pair: Contract;
|
|
23
|
+
routerAddress: string;
|
|
24
|
+
readonly eventPools: Record<string, TraderJoeV2_1EventPool | null>;
|
|
25
|
+
static dexKeysWithNetwork: {
|
|
26
|
+
key: string;
|
|
27
|
+
networks: Network[];
|
|
28
|
+
}[];
|
|
29
|
+
logger: Logger;
|
|
30
|
+
constructor(network: Network, dexKey: string, dexHelper: IDexHelper, adapters?: import("../../types").AdapterMappings);
|
|
31
|
+
initializePricing(blockNumber: number): Promise<void>;
|
|
32
|
+
getAdapters(side: SwapSide): {
|
|
33
|
+
name: string;
|
|
34
|
+
index: number;
|
|
35
|
+
}[] | null;
|
|
36
|
+
get supportedBinSteps(): bigint[];
|
|
37
|
+
getPoolIdentifiers(srcToken: Token, destToken: Token, side: SwapSide, blockNumber: number): Promise<string[]>;
|
|
38
|
+
getPricesVolume(from: Token, to: Token, amounts: bigint[], side: SwapSide, blockNumber: number, limitPools?: string[]): Promise<null | ExchangePrices<TraderJoeV2_1Data>>;
|
|
39
|
+
getPoolIdentifier(srcAddress: Address, destAddress: Address, binStep: bigint): string;
|
|
40
|
+
private getPool;
|
|
41
|
+
private _sortTokens;
|
|
42
|
+
private _getLoweredAddresses;
|
|
43
|
+
getCalldataGasCost(poolPrices: PoolPrices<TraderJoeV2_1Data>): number | number[];
|
|
44
|
+
getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: TraderJoeV2_1Data, side: SwapSide): AdapterExchangeParam;
|
|
45
|
+
getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: TraderJoeV2_1Data, side: SwapSide): Promise<SimpleExchangeParam>;
|
|
46
|
+
updatePoolState(): Promise<void>;
|
|
47
|
+
getTopPoolsForToken(tokenAddress: Address, limit: number): Promise<PoolLiquidity[]>;
|
|
48
|
+
releaseResources(): AsyncOrSync<void>;
|
|
49
|
+
}
|