@paraswap/dex-lib 2.42.28 → 2.42.29-wombat.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/build/abi/{algebra/AlgebraPool.abi.json → solidly-v3/SolidlyV3Pool.abi.json} +293 -282
- package/build/abi/solidly-v3/SolidlyV3StateMulticall.abi.json +375 -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/config.js +2 -2
- package/build/dex/index.js +4 -1
- package/build/dex/index.js.map +1 -1
- package/build/dex/solidly-v3/config.d.ts +9 -0
- package/build/dex/solidly-v3/config.js +58 -0
- package/build/dex/solidly-v3/config.js.map +1 -0
- package/build/dex/solidly-v3/constants.d.ts +27 -0
- package/build/dex/solidly-v3/constants.js +34 -0
- package/build/dex/solidly-v3/constants.js.map +1 -0
- package/build/dex/solidly-v3/contract-math/BitMath.d.ts +4 -0
- package/build/dex/solidly-v3/contract-math/BitMath.js +93 -0
- package/build/dex/solidly-v3/contract-math/BitMath.js.map +1 -0
- package/build/dex/solidly-v3/contract-math/FixedPoint128.d.ts +3 -0
- package/build/dex/solidly-v3/contract-math/FixedPoint128.js +8 -0
- package/build/dex/solidly-v3/contract-math/FixedPoint128.js.map +1 -0
- package/build/dex/solidly-v3/contract-math/FixedPoint96.d.ts +4 -0
- package/build/dex/solidly-v3/contract-math/FixedPoint96.js +9 -0
- package/build/dex/solidly-v3/contract-math/FixedPoint96.js.map +1 -0
- package/build/dex/solidly-v3/contract-math/FullMath.d.ts +4 -0
- package/build/dex/solidly-v3/contract-math/FullMath.js +19 -0
- package/build/dex/solidly-v3/contract-math/FullMath.js.map +1 -0
- package/build/dex/solidly-v3/contract-math/LiquidityMath.d.ts +3 -0
- package/build/dex/solidly-v3/contract-math/LiquidityMath.js +22 -0
- package/build/dex/solidly-v3/contract-math/LiquidityMath.js.map +1 -0
- package/build/dex/solidly-v3/contract-math/SqrtPriceMath.d.ts +10 -0
- package/build/dex/solidly-v3/contract-math/SqrtPriceMath.js +91 -0
- package/build/dex/solidly-v3/contract-math/SqrtPriceMath.js.map +1 -0
- package/build/dex/solidly-v3/contract-math/SwapMath.d.ts +8 -0
- package/build/dex/solidly-v3/contract-math/SwapMath.js +70 -0
- package/build/dex/solidly-v3/contract-math/SwapMath.js.map +1 -0
- package/build/dex/solidly-v3/contract-math/Tick.d.ts +7 -0
- package/build/dex/solidly-v3/contract-math/Tick.js +36 -0
- package/build/dex/solidly-v3/contract-math/Tick.js.map +1 -0
- package/build/dex/solidly-v3/contract-math/TickBitMap.d.ts +7 -0
- package/build/dex/solidly-v3/contract-math/TickBitMap.js +84 -0
- package/build/dex/solidly-v3/contract-math/TickBitMap.js.map +1 -0
- package/build/dex/solidly-v3/contract-math/TickMath.d.ts +8 -0
- package/build/dex/solidly-v3/contract-math/TickMath.js +162 -0
- package/build/dex/solidly-v3/contract-math/TickMath.js.map +1 -0
- package/build/dex/solidly-v3/contract-math/UnsafeMath.d.ts +3 -0
- package/build/dex/solidly-v3/contract-math/UnsafeMath.js +10 -0
- package/build/dex/solidly-v3/contract-math/UnsafeMath.js.map +1 -0
- package/build/dex/solidly-v3/contract-math/uniswap-v3-math.d.ts +31 -0
- package/build/dex/solidly-v3/contract-math/uniswap-v3-math.js +363 -0
- package/build/dex/solidly-v3/contract-math/uniswap-v3-math.js.map +1 -0
- package/build/dex/solidly-v3/contract-math/utils.d.ts +7 -0
- package/build/dex/solidly-v3/contract-math/utils.js +39 -0
- package/build/dex/solidly-v3/contract-math/utils.js.map +1 -0
- package/build/dex/solidly-v3/solidly-v3-factory.d.ts +26 -0
- package/build/dex/solidly-v3/solidly-v3-factory.js +44 -0
- package/build/dex/solidly-v3/solidly-v3-factory.js.map +1 -0
- package/build/dex/{algebra/algebra-pool.d.ts → solidly-v3/solidly-v3-pool.d.ts} +14 -16
- package/build/dex/{algebra/algebra-pool.js → solidly-v3/solidly-v3-pool.js} +127 -165
- package/build/dex/solidly-v3/solidly-v3-pool.js.map +1 -0
- package/build/dex/solidly-v3/solidly-v3.d.ts +67 -0
- package/build/dex/solidly-v3/solidly-v3.js +590 -0
- package/build/dex/solidly-v3/solidly-v3.js.map +1 -0
- package/build/dex/solidly-v3/types.d.ts +132 -0
- package/build/dex/solidly-v3/types.js +9 -0
- package/build/dex/solidly-v3/types.js.map +1 -0
- package/build/dex/solidly-v3/utils.d.ts +6 -0
- package/build/dex/solidly-v3/utils.js +53 -0
- package/build/dex/solidly-v3/utils.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/types.d.ts +2 -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 +393 -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/solidly-v3/SolidlyV3Pool.abi.json +738 -0
- package/src/abi/solidly-v3/SolidlyV3StateMulticall.abi.json +375 -0
- package/src/abi/wombat/pool-v3.json +2013 -0
- package/src/config.ts +2 -2
- package/src/dex/index.ts +4 -1
- package/src/dex/solidly-v3/config.ts +64 -0
- package/src/dex/solidly-v3/constants.ts +42 -0
- package/src/dex/solidly-v3/contract-math/BitMath.ts +90 -0
- package/src/dex/solidly-v3/contract-math/FixedPoint128.ts +3 -0
- package/src/dex/solidly-v3/contract-math/FixedPoint96.ts +4 -0
- package/src/dex/solidly-v3/contract-math/FullMath.ts +30 -0
- package/src/dex/solidly-v3/contract-math/LiquidityMath.ts +17 -0
- package/src/dex/solidly-v3/contract-math/SqrtPriceMath.ts +226 -0
- package/src/dex/solidly-v3/contract-math/SwapMath.ts +139 -0
- package/src/dex/solidly-v3/contract-math/Tick.ts +66 -0
- package/src/dex/solidly-v3/contract-math/TickBitMap.ts +123 -0
- package/src/dex/solidly-v3/contract-math/TickMath.ts +211 -0
- package/src/dex/solidly-v3/contract-math/UnsafeMath.ts +5 -0
- package/src/dex/solidly-v3/contract-math/uniswap-v3-math.ts +570 -0
- package/src/dex/solidly-v3/contract-math/utils.ts +50 -0
- package/src/dex/solidly-v3/solidly-v3-e2e.test.ts +124 -0
- package/src/dex/solidly-v3/solidly-v3-events.test.ts +144 -0
- package/src/dex/solidly-v3/solidly-v3-factory.ts +73 -0
- package/src/dex/solidly-v3/solidly-v3-integration.test.ts +358 -0
- package/src/dex/solidly-v3/solidly-v3-pool.ts +494 -0
- package/src/dex/solidly-v3/solidly-v3.ts +988 -0
- package/src/dex/solidly-v3/types.ts +158 -0
- package/src/dex/solidly-v3/utils.ts +71 -0
- package/src/dex/uniswap-v3/uniswap-v3-events.test.ts +3 -0
- package/src/dex/wombat/types.ts +5 -0
- 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 +101 -111
- package/src/dex/wombat/wombat-pool.ts +620 -171
- package/src/dex/wombat/wombat.ts +13 -23
- package/tests/constants-e2e.ts +11 -1
- package/build/abi/uniswap-v3/UniswapV3Quoter.abi.json +0 -193
- 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
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.TraderJoeV2_1 = void 0;
|
|
30
|
+
const constants_1 = require("../../constants");
|
|
31
|
+
const CALLDATA_GAS_COST = __importStar(require("../../calldata-gas-cost"));
|
|
32
|
+
const utils_1 = require("../../utils");
|
|
33
|
+
const types_1 = require("./types");
|
|
34
|
+
const simple_exchange_1 = require("../simple-exchange");
|
|
35
|
+
const config_1 = require("./config");
|
|
36
|
+
const abi_1 = require("@ethersproject/abi");
|
|
37
|
+
const RouterABI_json_1 = __importDefault(require("../../abi/trader-joe-v2_1/RouterABI.json"));
|
|
38
|
+
// import TraderJoeV21RouterABI from '../../abi/TraderJoeV21Router.json';
|
|
39
|
+
const FactoryABI_json_1 = __importDefault(require("../../abi/trader-joe-v2_1/FactoryABI.json"));
|
|
40
|
+
const UniswapMulti_abi_json_1 = __importDefault(require("../../abi/uniswap-v3/UniswapMulti.abi.json"));
|
|
41
|
+
const constants_2 = require("./constants");
|
|
42
|
+
const config_2 = require("../uniswap-v3/config");
|
|
43
|
+
class TraderJoeV2_1 extends simple_exchange_1.SimpleExchange {
|
|
44
|
+
constructor(network, dexKey, dexHelper, adapters = config_1.Adapters[network] || {}) {
|
|
45
|
+
super(dexHelper, dexKey);
|
|
46
|
+
this.network = network;
|
|
47
|
+
this.dexKey = dexKey;
|
|
48
|
+
this.dexHelper = dexHelper;
|
|
49
|
+
this.adapters = adapters;
|
|
50
|
+
// protected eventPools: TraderJoeV2_1EventPool;
|
|
51
|
+
this.hasConstantPriceLargeAmounts = false;
|
|
52
|
+
// TODO: set true here if protocols works only with wrapped asset
|
|
53
|
+
this.needWrapNative = true;
|
|
54
|
+
this.isFeeOnTransferSupported = false;
|
|
55
|
+
this.eventPools = {};
|
|
56
|
+
this.logger = dexHelper.getLogger(dexKey);
|
|
57
|
+
const config = config_1.TraderJoeV2_1Config[dexKey];
|
|
58
|
+
// this.eventPools = new TraderJoeV2_1EventPool(
|
|
59
|
+
// dexKey,
|
|
60
|
+
// network,
|
|
61
|
+
// dexHelper,
|
|
62
|
+
// this.logger,
|
|
63
|
+
// );
|
|
64
|
+
this.routerAddress = config[network].routerAddress;
|
|
65
|
+
// this.factoryAddress = config[network].factoryAddress;
|
|
66
|
+
this.factory = new this.dexHelper.web3Provider.eth.Contract(FactoryABI_json_1.default, config[network].factoryAddress);
|
|
67
|
+
this.uniswapMulti = new this.dexHelper.web3Provider.eth.Contract(UniswapMulti_abi_json_1.default, config_2.UniswapV3Config['UniswapV3'][network].uniswapMulticall);
|
|
68
|
+
this.pair = new this.dexHelper.web3Provider.eth.Contract(constants_2.MinLBPairAbi);
|
|
69
|
+
this.exchangeRouterInterface = new abi_1.Interface(RouterABI_json_1.default);
|
|
70
|
+
}
|
|
71
|
+
// Initialize pricing is called once in the start of
|
|
72
|
+
// pricing service. It is intended to setup the integration
|
|
73
|
+
// for pricing requests. It is optional for a DEX to
|
|
74
|
+
// implement this function
|
|
75
|
+
async initializePricing(blockNumber) {
|
|
76
|
+
// TODO: complete me!
|
|
77
|
+
}
|
|
78
|
+
// Returns the list of contract adapters (name and index)
|
|
79
|
+
// for a buy/sell. Return null if there are no adapters.
|
|
80
|
+
getAdapters(side) {
|
|
81
|
+
return this.adapters[side] ? this.adapters[side] : null;
|
|
82
|
+
}
|
|
83
|
+
// TODO: Get it from the factory
|
|
84
|
+
get supportedBinSteps() {
|
|
85
|
+
return constants_2.SUPPORTED_BIN_STEPS;
|
|
86
|
+
}
|
|
87
|
+
// Returns list of pool identifiers that can be used
|
|
88
|
+
// for a given swap. poolIdentifiers must be unique
|
|
89
|
+
// across DEXes. It is recommended to use
|
|
90
|
+
// ${dexKey}_${poolAddress} as a poolIdentifier
|
|
91
|
+
async getPoolIdentifiers(srcToken, destToken, side, blockNumber) {
|
|
92
|
+
const _srcToken = this.dexHelper.config.wrapETH(srcToken);
|
|
93
|
+
const _destToken = this.dexHelper.config.wrapETH(destToken);
|
|
94
|
+
const [_srcAddress, _destAddress] = this._getLoweredAddresses(_srcToken, _destToken);
|
|
95
|
+
if (_srcAddress === _destAddress)
|
|
96
|
+
return [];
|
|
97
|
+
const pools = (await Promise.all(this.supportedBinSteps.map(async (binStep) => this.getPool(_srcAddress, _destAddress, binStep, blockNumber)))).filter(pool => pool);
|
|
98
|
+
if (pools.length === 0)
|
|
99
|
+
return [];
|
|
100
|
+
return pools.map(pool => this.getPoolIdentifier(_srcAddress, _destAddress, pool.binStep));
|
|
101
|
+
}
|
|
102
|
+
// Returns pool prices for amounts.
|
|
103
|
+
// If limitPools is defined only pools in limitPools
|
|
104
|
+
// should be used. If limitPools is undefined then
|
|
105
|
+
// any pools can be used.
|
|
106
|
+
async getPricesVolume(from, to, amounts, side, blockNumber, limitPools) {
|
|
107
|
+
try {
|
|
108
|
+
const _srcToken = this.dexHelper.config.wrapETH(from);
|
|
109
|
+
const _destToken = this.dexHelper.config.wrapETH(to);
|
|
110
|
+
const [_srcAddress, _destAddress] = this._getLoweredAddresses(_srcToken, _destToken);
|
|
111
|
+
if (_srcAddress === _destAddress)
|
|
112
|
+
return null;
|
|
113
|
+
let selectedPools = [];
|
|
114
|
+
if (!limitPools) {
|
|
115
|
+
selectedPools = (await Promise.all(this.supportedBinSteps.map(async (fee) => {
|
|
116
|
+
const locallyFoundPool = this.eventPools[this.getPoolIdentifier(_srcAddress, _destAddress, fee)];
|
|
117
|
+
if (locallyFoundPool)
|
|
118
|
+
return locallyFoundPool;
|
|
119
|
+
const newlyFetchedPool = await this.getPool(_srcAddress, _destAddress, fee, blockNumber);
|
|
120
|
+
return newlyFetchedPool;
|
|
121
|
+
}))).filter(utils_1.isTruthy);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
const pairIdentifierWithoutFee = this.getPoolIdentifier(_srcAddress, _destAddress, 0n).slice(0, -1);
|
|
125
|
+
const poolIdentifiers = limitPools.filter(identifier => identifier.startsWith(pairIdentifierWithoutFee));
|
|
126
|
+
selectedPools = (await Promise.all(poolIdentifiers.map(async (identifier) => {
|
|
127
|
+
let locallyFoundPool = this.eventPools[identifier];
|
|
128
|
+
if (locallyFoundPool)
|
|
129
|
+
return locallyFoundPool;
|
|
130
|
+
const [, srcAddress, destAddress, fee] = identifier.split('_');
|
|
131
|
+
const newlyFetchedPool = await this.getPool(srcAddress, destAddress, BigInt(fee), blockNumber);
|
|
132
|
+
return newlyFetchedPool;
|
|
133
|
+
}))).filter(utils_1.isTruthy);
|
|
134
|
+
}
|
|
135
|
+
if (selectedPools.length === 0)
|
|
136
|
+
return null;
|
|
137
|
+
// TODO: Handle pools
|
|
138
|
+
}
|
|
139
|
+
catch (error) {
|
|
140
|
+
this.logger.error(`Error_getPricesVolume ${from.symbol || from.address}, ${to.symbol || to.address}, ${side}:`, error);
|
|
141
|
+
return null;
|
|
142
|
+
}
|
|
143
|
+
return null;
|
|
144
|
+
}
|
|
145
|
+
getPoolIdentifier(srcAddress, destAddress, binStep) {
|
|
146
|
+
const tokenAddresses = this._sortTokens(srcAddress, destAddress).join('_');
|
|
147
|
+
return `${this.dexKey}_${tokenAddresses}_${binStep}`;
|
|
148
|
+
}
|
|
149
|
+
getPool(srcAddress, destAddress, binStep, blockNumber) {
|
|
150
|
+
const poolIdentifier = this.getPoolIdentifier(srcAddress, destAddress, binStep);
|
|
151
|
+
let pool = this.eventPools[poolIdentifier];
|
|
152
|
+
if (pool)
|
|
153
|
+
return pool;
|
|
154
|
+
// if (pool === null) {
|
|
155
|
+
// const poolInfo = this.factory.methods
|
|
156
|
+
// .getLBPairInformation(srcAddress, destAddress, binStep)
|
|
157
|
+
// .call();
|
|
158
|
+
// // TODO: Handle non existent pool, possibly add to non-existent set
|
|
159
|
+
// if (!poolInfo) return null;
|
|
160
|
+
// // get address
|
|
161
|
+
// const pool = new TraderJoeV2_1EventPool(
|
|
162
|
+
// this.dexKey,
|
|
163
|
+
// this.network,
|
|
164
|
+
// this.dexHelper,
|
|
165
|
+
// srcAddress,
|
|
166
|
+
// destAddress,
|
|
167
|
+
// poolInfo.address,
|
|
168
|
+
// poolInfo.multiStateAddress,
|
|
169
|
+
// binStep,
|
|
170
|
+
// this.logger,
|
|
171
|
+
// );
|
|
172
|
+
// this.eventPools[poolIdentifier] = pool;
|
|
173
|
+
// return pool;
|
|
174
|
+
// }
|
|
175
|
+
// return pool;
|
|
176
|
+
}
|
|
177
|
+
_sortTokens(srcAddress, destAddress) {
|
|
178
|
+
return [srcAddress, destAddress].sort((a, b) => (a < b ? -1 : 1));
|
|
179
|
+
}
|
|
180
|
+
_getLoweredAddresses(srcToken, destToken) {
|
|
181
|
+
return [srcToken.address.toLowerCase(), destToken.address.toLowerCase()];
|
|
182
|
+
}
|
|
183
|
+
// Returns estimated gas cost of calldata for this DEX in multiSwap
|
|
184
|
+
getCalldataGasCost(poolPrices) {
|
|
185
|
+
return (CALLDATA_GAS_COST.DEX_OVERHEAD +
|
|
186
|
+
CALLDATA_GAS_COST.LENGTH_SMALL +
|
|
187
|
+
// ParentStruct header
|
|
188
|
+
CALLDATA_GAS_COST.OFFSET_SMALL +
|
|
189
|
+
// ParentStruct -> path header
|
|
190
|
+
CALLDATA_GAS_COST.OFFSET_SMALL +
|
|
191
|
+
// ParentStruct -> deadline
|
|
192
|
+
CALLDATA_GAS_COST.TIMESTAMP +
|
|
193
|
+
// ParentStruct -> path (20+3+20 = 43 = 32+11 bytes)
|
|
194
|
+
CALLDATA_GAS_COST.LENGTH_SMALL +
|
|
195
|
+
CALLDATA_GAS_COST.FULL_WORD +
|
|
196
|
+
CALLDATA_GAS_COST.wordNonZeroBytes(11));
|
|
197
|
+
}
|
|
198
|
+
// Encode params required by the exchange adapter
|
|
199
|
+
// Used for multiSwap, buy & megaSwap
|
|
200
|
+
// Hint: abiCoder.encodeParameter() could be useful
|
|
201
|
+
getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
|
|
202
|
+
let payload = this.abiCoder.encodeParameters(['tuple(tuple(uint256[],uint8[],address[]),uint256)'], [
|
|
203
|
+
[
|
|
204
|
+
[
|
|
205
|
+
[
|
|
206
|
+
data.binStep, // _pairBinSteps: uint256[]
|
|
207
|
+
],
|
|
208
|
+
[
|
|
209
|
+
2, // _versions: uint8[]
|
|
210
|
+
],
|
|
211
|
+
[
|
|
212
|
+
data.tokenIn,
|
|
213
|
+
data.tokenOut, // _tokenPath: address[]
|
|
214
|
+
],
|
|
215
|
+
],
|
|
216
|
+
(0, simple_exchange_1.getLocalDeadlineAsFriendlyPlaceholder)(), // _deadline: uint256
|
|
217
|
+
],
|
|
218
|
+
]);
|
|
219
|
+
return {
|
|
220
|
+
targetExchange: this.routerAddress,
|
|
221
|
+
payload,
|
|
222
|
+
networkFee: '0',
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
async getSimpleParam(srcToken, destToken, srcAmount, destAmount, data, side) {
|
|
226
|
+
const swapFunction = side === constants_1.SwapSide.SELL
|
|
227
|
+
? types_1.TraderJoeV2RouterFunctions.swapExactTokensForTokens
|
|
228
|
+
: types_1.TraderJoeV2RouterFunctions.swapTokensForExactTokens;
|
|
229
|
+
const swapFunctionParams = side === constants_1.SwapSide.SELL
|
|
230
|
+
? [
|
|
231
|
+
srcAmount,
|
|
232
|
+
destAmount,
|
|
233
|
+
[[data.binStep], ['2'], [srcToken, destToken]],
|
|
234
|
+
this.augustusAddress,
|
|
235
|
+
(0, simple_exchange_1.getLocalDeadlineAsFriendlyPlaceholder)(),
|
|
236
|
+
]
|
|
237
|
+
: [
|
|
238
|
+
destAmount,
|
|
239
|
+
srcAmount,
|
|
240
|
+
[[data.binStep], ['2'], [srcToken, destToken]],
|
|
241
|
+
this.augustusAddress,
|
|
242
|
+
(0, simple_exchange_1.getLocalDeadlineAsFriendlyPlaceholder)(),
|
|
243
|
+
];
|
|
244
|
+
const swapData = this.exchangeRouterInterface.encodeFunctionData(swapFunction, swapFunctionParams);
|
|
245
|
+
return this.buildSimpleParamWithoutWETHConversion(srcToken, srcAmount, destToken, destAmount, swapData, this.routerAddress);
|
|
246
|
+
}
|
|
247
|
+
// This is called once before getTopPoolsForToken is
|
|
248
|
+
// called for multiple tokens. This can be helpful to
|
|
249
|
+
// update common state required for calculating
|
|
250
|
+
// getTopPoolsForToken. It is optional for a DEX
|
|
251
|
+
// to implement this
|
|
252
|
+
async updatePoolState() {
|
|
253
|
+
// TODO: complete me!
|
|
254
|
+
}
|
|
255
|
+
// Returns list of top pools based on liquidity. Max
|
|
256
|
+
// limit number pools should be returned.
|
|
257
|
+
async getTopPoolsForToken(tokenAddress, limit) {
|
|
258
|
+
//TODO: complete me!
|
|
259
|
+
return [];
|
|
260
|
+
}
|
|
261
|
+
// This is optional function in case if your implementation has acquired any resources
|
|
262
|
+
// you need to release for graceful shutdown. For example, it may be any interval timer
|
|
263
|
+
releaseResources() {
|
|
264
|
+
// TODO: complete me!
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
exports.TraderJoeV2_1 = TraderJoeV2_1;
|
|
268
|
+
TraderJoeV2_1.dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(config_1.TraderJoeV2_1Config);
|
|
269
|
+
//# sourceMappingURL=trader-joe-v2-1-2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trader-joe-v2-1-2.js","sourceRoot":"","sources":["../../../src/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,+CAAoD;AACpD,2EAA6D;AAC7D,uCAA8D;AAG9D,mCAIiB;AACjB,wDAG4B;AAC5B,qCAAyD;AAEzD,4CAA6D;AAC7D,8FAA6E;AAC7E,yEAAyE;AACzE,gGAA+E;AAC/E,uGAAyE;AACzE,2CAAgE;AAGhE,iDAAuD;AAEvD,MAAa,aACX,SAAQ,gCAAc;IA0BtB,YACW,OAAgB,EAChB,MAAc,EACd,SAAqB,EACpB,WAAW,iBAAQ,CAAC,OAAO,CAAC,IAAI,EAAE;QAE5C,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QALhB,YAAO,GAAP,OAAO,CAAS;QAChB,WAAM,GAAN,MAAM,CAAQ;QACd,cAAS,GAAT,SAAS,CAAY;QACpB,aAAQ,GAAR,QAAQ,CAA0B;QA3B9C,gDAAgD;QAEvC,iCAA4B,GAAG,KAAK,CAAC;QAC9C,iEAAiE;QACxD,mBAAc,GAAG,IAAI,CAAC;QAEtB,6BAAwB,GAAG,KAAK,CAAC;QAUjC,eAAU,GAAkD,EAAE,CAAC;QActE,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,4BAAmB,CAAC,MAAM,CAAC,CAAC;QAC3C,gDAAgD;QAChD,YAAY;QACZ,aAAa;QACb,eAAe;QACf,iBAAiB;QACjB,KAAK;QACL,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC;QACnD,wDAAwD;QACxD,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CACzD,yBAAmC,EACnC,MAAM,CAAC,OAAO,CAAC,CAAC,cAAc,CAC/B,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAC9D,+BAA4B,EAC5B,wBAAe,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,gBAAgB,CACvD,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CACtD,wBAAyB,CAC1B,CAAC;QAEF,IAAI,CAAC,uBAAuB,GAAG,IAAI,eAAS,CAC1C,wBAAuC,CACxC,CAAC;IACJ,CAAC;IAED,oDAAoD;IACpD,2DAA2D;IAC3D,oDAAoD;IACpD,0BAA0B;IAC1B,KAAK,CAAC,iBAAiB,CAAC,WAAmB;QACzC,qBAAqB;IACvB,CAAC;IAED,yDAAyD;IACzD,wDAAwD;IACxD,WAAW,CAAC,IAAc;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1D,CAAC;IAED,gCAAgC;IAChC,IAAI,iBAAiB;QACnB,OAAO,+BAAmB,CAAC;IAC7B,CAAC;IAED,oDAAoD;IACpD,mDAAmD;IACnD,yCAAyC;IACzC,+CAA+C;IAC/C,KAAK,CAAC,kBAAkB,CACtB,QAAe,EACf,SAAgB,EAChB,IAAc,EACd,WAAmB;QAEnB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAE5D,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAC3D,SAAS,EACT,UAAU,CACX,CAAC;QAEF,IAAI,WAAW,KAAK,YAAY;YAAE,OAAO,EAAE,CAAC;QAE5C,MAAM,KAAK,GAAG,CACZ,MAAM,OAAO,CAAC,GAAG,CACf,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAC,OAAO,EAAC,EAAE,CACzC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,CAAC,CAC9D,CACF,CACF,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAEvB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAElC,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CACtB,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,YAAY,EAAE,IAAK,CAAC,OAAO,CAAC,CACjE,CAAC;IACJ,CAAC;IAED,mCAAmC;IACnC,oDAAoD;IACpD,kDAAkD;IAClD,yBAAyB;IACzB,KAAK,CAAC,eAAe,CACnB,IAAW,EACX,EAAS,EACT,OAAiB,EACjB,IAAc,EACd,WAAmB,EACnB,UAAqB;QAErB,IAAI;YACF,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACtD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAErD,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAC3D,SAAS,EACT,UAAU,CACX,CAAC;YAEF,IAAI,WAAW,KAAK,YAAY;gBAAE,OAAO,IAAI,CAAC;YAE9C,IAAI,aAAa,GAA6B,EAAE,CAAC;YAEjD,IAAI,CAAC,UAAU,EAAE;gBACf,aAAa,GAAG,CACd,MAAM,OAAO,CAAC,GAAG,CACf,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAC,GAAG,EAAC,EAAE;oBACrC,MAAM,gBAAgB,GACpB,IAAI,CAAC,UAAU,CACb,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,YAAY,EAAE,GAAG,CAAC,CACvD,CAAC;oBACJ,IAAI,gBAAgB;wBAAE,OAAO,gBAAgB,CAAC;oBAE9C,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,OAAO,CACzC,WAAW,EACX,YAAY,EACZ,GAAG,EACH,WAAW,CACZ,CAAC;oBACF,OAAO,gBAAgB,CAAC;gBAC1B,CAAC,CAAC,CACH,CACF,CAAC,MAAM,CAAC,gBAAQ,CAAC,CAAC;aACpB;iBAAM;gBACL,MAAM,wBAAwB,GAAG,IAAI,CAAC,iBAAiB,CACrD,WAAW,EACX,YAAY,EACZ,EAAE,CAEH,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAEf,MAAM,eAAe,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CACrD,UAAU,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAChD,CAAC;gBAEF,aAAa,GAAG,CACd,MAAM,OAAO,CAAC,GAAG,CACf,eAAe,CAAC,GAAG,CAAC,KAAK,EAAC,UAAU,EAAC,EAAE;oBACrC,IAAI,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;oBACnD,IAAI,gBAAgB;wBAAE,OAAO,gBAAgB,CAAC;oBAE9C,MAAM,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC/D,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,OAAO,CACzC,UAAU,EACV,WAAW,EACX,MAAM,CAAC,GAAG,CAAC,EACX,WAAW,CACZ,CAAC;oBACF,OAAO,gBAAgB,CAAC;gBAC1B,CAAC,CAAC,CACH,CACF,CAAC,MAAM,CAAC,gBAAQ,CAAC,CAAC;aACpB;YAED,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAE5C,qBAAqB;SACtB;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,yBAAyB,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,KAClD,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,OAClB,KAAK,IAAI,GAAG,EACZ,KAAK,CACN,CAAC;YACF,OAAO,IAAI,CAAC;SACb;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iBAAiB,CACf,UAAmB,EACnB,WAAoB,EACpB,OAAe;QAEf,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3E,OAAO,GAAG,IAAI,CAAC,MAAM,IAAI,cAAc,IAAI,OAAO,EAAE,CAAC;IACvD,CAAC;IAEO,OAAO,CACb,UAAmB,EACnB,WAAoB,EACpB,OAAe,EACf,WAAmB;QAEnB,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAC3C,UAAU,EACV,WAAW,EACX,OAAO,CACR,CAAC;QACF,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QAE3C,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QAEtB,uBAAuB;QACvB,0CAA0C;QAC1C,8DAA8D;QAC9D,eAAe;QAEf,wEAAwE;QACxE,gCAAgC;QAEhC,mBAAmB;QACnB,6CAA6C;QAC7C,mBAAmB;QACnB,oBAAoB;QACpB,sBAAsB;QACtB,kBAAkB;QAClB,mBAAmB;QACnB,wBAAwB;QACxB,kCAAkC;QAClC,eAAe;QACf,mBAAmB;QACnB,OAAO;QACP,4CAA4C;QAC5C,iBAAiB;QACjB,IAAI;QAEJ,eAAe;IACjB,CAAC;IAEO,WAAW,CAAC,UAAmB,EAAE,WAAoB;QAC3D,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,CAAC;IAEO,oBAAoB,CAAC,QAAe,EAAE,SAAgB;QAC5D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,mEAAmE;IACnE,kBAAkB,CAChB,UAAyC;QAEzC,OAAO,CACL,iBAAiB,CAAC,YAAY;YAC9B,iBAAiB,CAAC,YAAY;YAC9B,sBAAsB;YACtB,iBAAiB,CAAC,YAAY;YAC9B,8BAA8B;YAC9B,iBAAiB,CAAC,YAAY;YAC9B,2BAA2B;YAC3B,iBAAiB,CAAC,SAAS;YAC3B,oDAAoD;YACpD,iBAAiB,CAAC,YAAY;YAC9B,iBAAiB,CAAC,SAAS;YAC3B,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,CAAC,CACvC,CAAC;IACJ,CAAC;IAED,iDAAiD;IACjD,qCAAqC;IACrC,mDAAmD;IACnD,eAAe,CACb,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAuB,EACvB,IAAc;QAEd,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAC1C,CAAC,mDAAmD,CAAC,EACrD;YACE;gBACE;oBACE;wBACE,IAAI,CAAC,OAAO,EAAE,2BAA2B;qBAC1C;oBACD;wBACE,CAAC,EAAE,qBAAqB;qBACzB;oBACD;wBACE,IAAI,CAAC,OAAO;wBACZ,IAAI,CAAC,QAAQ,EAAE,wBAAwB;qBACxC;iBACF;gBACD,IAAA,uDAAqC,GAAE,EAAE,qBAAqB;aAC/D;SACF,CACF,CAAC;QAEF,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,aAAa;YAClC,OAAO;YACP,UAAU,EAAE,GAAG;SAChB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAuB,EACvB,IAAc;QAEd,MAAM,YAAY,GAChB,IAAI,KAAK,oBAAQ,CAAC,IAAI;YACpB,CAAC,CAAC,kCAA0B,CAAC,wBAAwB;YACrD,CAAC,CAAC,kCAA0B,CAAC,wBAAwB,CAAC;QAE1D,MAAM,kBAAkB,GACtB,IAAI,KAAK,oBAAQ,CAAC,IAAI;YACpB,CAAC,CAAC;gBACE,SAAS;gBACT,UAAU;gBACV,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBAC9C,IAAI,CAAC,eAAe;gBACpB,IAAA,uDAAqC,GAAE;aACxC;YACH,CAAC,CAAC;gBACE,UAAU;gBACV,SAAS;gBACT,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBAC9C,IAAI,CAAC,eAAe;gBACpB,IAAA,uDAAqC,GAAE;aACxC,CAAC;QAER,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAC9D,YAAY,EACZ,kBAAkB,CACnB,CAAC;QAEF,OAAO,IAAI,CAAC,qCAAqC,CAC/C,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,EACV,QAAQ,EACR,IAAI,CAAC,aAAa,CACnB,CAAC;IACJ,CAAC;IAED,oDAAoD;IACpD,qDAAqD;IACrD,+CAA+C;IAC/C,gDAAgD;IAChD,oBAAoB;IACpB,KAAK,CAAC,eAAe;QACnB,qBAAqB;IACvB,CAAC;IAED,oDAAoD;IACpD,yCAAyC;IACzC,KAAK,CAAC,mBAAmB,CACvB,YAAqB,EACrB,KAAa;QAEb,oBAAoB;QACpB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,sFAAsF;IACtF,uFAAuF;IACvF,gBAAgB;QACd,qBAAqB;IACvB,CAAC;;AAzYH,sCA0YC;AApXe,gCAAkB,GAC9B,IAAA,6BAAqB,EAAC,4BAAmB,CAAC,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { Address } from '../../types';
|
|
2
|
+
import { BigNumber } from 'ethers';
|
|
3
|
+
import { NumberAsString } from '@paraswap/core';
|
|
4
|
+
export declare type Bin = {
|
|
5
|
+
id: bigint;
|
|
6
|
+
reserveX: bigint;
|
|
7
|
+
reserveY: bigint;
|
|
8
|
+
};
|
|
9
|
+
export declare type PoolState = {
|
|
10
|
+
tokenX: Address;
|
|
11
|
+
tokenY: Address;
|
|
12
|
+
binStep: bigint;
|
|
13
|
+
bins: Bin[];
|
|
14
|
+
pairAddress: string;
|
|
15
|
+
blockTimestamp: bigint;
|
|
16
|
+
reserves: {
|
|
17
|
+
reserveX: bigint;
|
|
18
|
+
reserveY: bigint;
|
|
19
|
+
};
|
|
20
|
+
activeId: bigint;
|
|
21
|
+
protocolFees: {
|
|
22
|
+
protocolFeeX: bigint;
|
|
23
|
+
protocolFeeY: bigint;
|
|
24
|
+
};
|
|
25
|
+
staticFeeParameters: {
|
|
26
|
+
baseFactor: bigint;
|
|
27
|
+
filterPeriod: bigint;
|
|
28
|
+
decayPeriod: bigint;
|
|
29
|
+
reductionFactor: bigint;
|
|
30
|
+
variableFeeControl: bigint;
|
|
31
|
+
protocolShare: bigint;
|
|
32
|
+
maxVolatilityAccumulator: bigint;
|
|
33
|
+
};
|
|
34
|
+
variableFeeParameters: {
|
|
35
|
+
volatilityAccumulator: bigint;
|
|
36
|
+
volatilityReference: bigint;
|
|
37
|
+
idReference: bigint;
|
|
38
|
+
timeOfLastUpdate: bigint;
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
export declare type DecodedStateMultiCallResult = {};
|
|
42
|
+
export declare type TraderJoeV2_1Data = {
|
|
43
|
+
tokenIn: string;
|
|
44
|
+
tokenOut: string;
|
|
45
|
+
binStep: string;
|
|
46
|
+
};
|
|
47
|
+
export declare type DexParams = {
|
|
48
|
+
factoryAddress: Address;
|
|
49
|
+
routerAddress: Address;
|
|
50
|
+
};
|
|
51
|
+
export declare type LBPairsAvailable = {
|
|
52
|
+
binStep: BigNumber;
|
|
53
|
+
LBPair: string;
|
|
54
|
+
createdByOwner: boolean;
|
|
55
|
+
ignoredForRouting: boolean;
|
|
56
|
+
tokenX: string;
|
|
57
|
+
};
|
|
58
|
+
export declare type RouterPath = [
|
|
59
|
+
pairBinSteps: NumberAsString[],
|
|
60
|
+
versions: NumberAsString[],
|
|
61
|
+
tokenPath: Address[]
|
|
62
|
+
];
|
|
63
|
+
export declare type TraderJoeV2RouterSellParams = [
|
|
64
|
+
_amountIn: NumberAsString,
|
|
65
|
+
_amountOutMin: NumberAsString,
|
|
66
|
+
_routerPath: RouterPath,
|
|
67
|
+
to: Address,
|
|
68
|
+
_deadline: string
|
|
69
|
+
];
|
|
70
|
+
export declare type TraderJoeV2RouterBuyParams = [
|
|
71
|
+
_amountOut: NumberAsString,
|
|
72
|
+
_amountInMax: NumberAsString,
|
|
73
|
+
_routerPath: RouterPath,
|
|
74
|
+
to: Address,
|
|
75
|
+
_deadline: string
|
|
76
|
+
];
|
|
77
|
+
export declare type TraderJoeV2RouterParam = TraderJoeV2RouterSellParams | TraderJoeV2RouterBuyParams;
|
|
78
|
+
export declare enum TraderJoeV2RouterFunctions {
|
|
79
|
+
swapExactTokensForTokens = "swapExactTokensForTokens",
|
|
80
|
+
swapTokensForExactTokens = "swapTokensForExactTokens"
|
|
81
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TraderJoeV2RouterFunctions = void 0;
|
|
4
|
+
var TraderJoeV2RouterFunctions;
|
|
5
|
+
(function (TraderJoeV2RouterFunctions) {
|
|
6
|
+
TraderJoeV2RouterFunctions["swapExactTokensForTokens"] = "swapExactTokensForTokens";
|
|
7
|
+
TraderJoeV2RouterFunctions["swapTokensForExactTokens"] = "swapTokensForExactTokens";
|
|
8
|
+
})(TraderJoeV2RouterFunctions = exports.TraderJoeV2RouterFunctions || (exports.TraderJoeV2RouterFunctions = {}));
|
|
9
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/dex/trader-joe-v2-1-2/types.ts"],"names":[],"mappings":";;;AAwGA,IAAY,0BAGX;AAHD,WAAY,0BAA0B;IACpC,mFAAqD,CAAA;IACrD,mFAAqD,CAAA;AACvD,CAAC,EAHW,0BAA0B,GAA1B,kCAA0B,KAA1B,kCAA0B,QAGrC"}
|
|
@@ -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/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,16 @@
|
|
|
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
|
+
}[];
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
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
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/dex/trader-joe-v2_1/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"}
|
|
File without changes
|