@paraswap/dex-lib 3.8.5 → 3.8.6-augustus-rfq.1
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/.vscode/launch.json +53 -0
- package/.vscode/settings.json +2 -0
- package/.vscode/tasks.json +15 -0
- package/build/abi/AaveV1_lending_pool.json +27 -0
- package/build/abi/maverick-v2/MaverickV2Router.json +778 -0
- package/build/abi/platypus/asset.json +490 -0
- package/build/abi/platypus/avax-pool.json +820 -0
- package/build/abi/platypus/oracle.json +119 -0
- package/build/abi/platypus/pool.json +677 -0
- package/build/abi/smardex/all/smardex-router.json +648 -0
- package/build/abi/smardex/layer-1/smardex-factory.json +242 -0
- package/build/abi/smardex/layer-1/smardex-pool.json +506 -0
- package/build/abi/smardex/layer-2/smardex-factory.json +185 -0
- package/build/abi/smardex/layer-2/smardex-pool.json +578 -0
- package/build/abi/swaap-v1/pool.json +1346 -0
- package/build/abi/uniswap-v3/AlienBaseV3Router.abi.json +52 -0
- package/build/abi/wombat/pool.json +1289 -0
- package/build/dex/aave-v1/aave-v1.d.ts +34 -0
- package/build/dex/aave-v1/aave-v1.js +181 -0
- package/build/dex/aave-v1/aave-v1.js.map +1 -0
- package/build/dex/aave-v1/config.d.ts +11 -0
- package/build/dex/aave-v1/config.js +20 -0
- package/build/dex/aave-v1/config.js.map +1 -0
- package/build/dex/aave-v1/tokens-mainnet.json +134 -0
- package/build/dex/aave-v1/tokens.d.ts +3 -0
- package/build/dex/aave-v1/tokens.js +50 -0
- package/build/dex/aave-v1/tokens.js.map +1 -0
- package/build/dex/aave-v1/types.d.ts +12 -0
- package/build/dex/aave-v1/types.js +3 -0
- package/build/dex/aave-v1/types.js.map +1 -0
- package/build/dex/aave-v2/tokens-avalanche.json +44 -0
- package/build/dex/aave-v2/tokens-mainnet.json +188 -0
- package/build/dex/aave-v2/tokens-polygon.json +44 -0
- package/build/dex/bProtocol.d.ts +18 -0
- package/build/dex/bProtocol.js +39 -0
- package/build/dex/bProtocol.js.map +1 -0
- package/build/dex/bancor.d.ts +26 -0
- package/build/dex/bancor.js +58 -0
- package/build/dex/bancor.js.map +1 -0
- package/build/dex/compound.d.ts +18 -0
- package/build/dex/compound.js +46 -0
- package/build/dex/compound.js.map +1 -0
- package/build/dex/curve-v2.d.ts +58 -0
- package/build/dex/curve-v2.js +180 -0
- package/build/dex/curve-v2.js.map +1 -0
- package/build/dex/dodo-v1.d.ts +33 -0
- package/build/dex/dodo-v1.js +63 -0
- package/build/dex/dodo-v1.js.map +1 -0
- package/build/dex/generic-rfq/generic-rfq.js +11 -2
- package/build/dex/generic-rfq/generic-rfq.js.map +1 -1
- package/build/dex/generic-rfq/rate-fetcher.d.ts +1 -0
- package/build/dex/generic-rfq/rate-fetcher.js +13 -0
- package/build/dex/generic-rfq/rate-fetcher.js.map +1 -1
- package/build/dex/lido.d.ts +19 -0
- package/build/dex/lido.js +42 -0
- package/build/dex/lido.js.map +1 -0
- package/build/dex/maker-psm/scripts/gem.abi.json +136 -0
- package/build/dex/maker-psm/scripts/validate-state.d.ts +0 -0
- package/build/dex/maker-psm/scripts/validate-state.js +185 -0
- package/build/dex/maker-psm/scripts/validate-state.js.map +1 -0
- package/build/dex/maker-psm/scripts/vat.abi.json +243 -0
- package/build/dex/maverick-v2/config.js +4 -0
- package/build/dex/maverick-v2/config.js.map +1 -1
- package/build/dex/maverick-v2/maverick-v2.d.ts +2 -1
- package/build/dex/maverick-v2/maverick-v2.js +47 -40
- package/build/dex/maverick-v2/maverick-v2.js.map +1 -1
- package/build/dex/maverick-v2/types.d.ts +1 -0
- package/build/dex/onebit.d.ts +25 -0
- package/build/dex/onebit.js +42 -0
- package/build/dex/onebit.js.map +1 -0
- package/build/dex/platypus/asset.d.ts +14 -0
- package/build/dex/platypus/asset.js +97 -0
- package/build/dex/platypus/asset.js.map +1 -0
- package/build/dex/platypus/config.d.ts +11 -0
- package/build/dex/platypus/config.js +69 -0
- package/build/dex/platypus/config.js.map +1 -0
- package/build/dex/platypus/platypus.d.ts +63 -0
- package/build/dex/platypus/platypus.js +487 -0
- package/build/dex/platypus/platypus.js.map +1 -0
- package/build/dex/platypus/pool-avax.d.ts +8 -0
- package/build/dex/platypus/pool-avax.js +54 -0
- package/build/dex/platypus/pool-avax.js.map +1 -0
- package/build/dex/platypus/pool-base.d.ts +19 -0
- package/build/dex/platypus/pool-base.js +86 -0
- package/build/dex/platypus/pool-base.js.map +1 -0
- package/build/dex/platypus/pool-pure.d.ts +8 -0
- package/build/dex/platypus/pool-pure.js +37 -0
- package/build/dex/platypus/pool-pure.js.map +1 -0
- package/build/dex/platypus/pool-subscriber.d.ts +14 -0
- package/build/dex/platypus/pool-subscriber.js +167 -0
- package/build/dex/platypus/pool-subscriber.js.map +1 -0
- package/build/dex/platypus/pool.d.ts +8 -0
- package/build/dex/platypus/pool.js +58 -0
- package/build/dex/platypus/pool.js.map +1 -0
- package/build/dex/platypus/types.d.ts +92 -0
- package/build/dex/platypus/types.js +10 -0
- package/build/dex/platypus/types.js.map +1 -0
- package/build/dex/quickswap/spiritswap-v3.d.ts +6 -0
- package/build/dex/quickswap/spiritswap-v3.js +19 -0
- package/build/dex/quickswap/spiritswap-v3.js.map +1 -0
- package/build/dex/smardex/config.d.ts +4 -0
- package/build/dex/smardex/config.js +64 -0
- package/build/dex/smardex/config.js.map +1 -0
- package/build/dex/smardex/constants.d.ts +18 -0
- package/build/dex/smardex/constants.js +33 -0
- package/build/dex/smardex/constants.js.map +1 -0
- package/build/dex/smardex/sdk/constants.d.ts +6 -0
- package/build/dex/smardex/sdk/constants.js +13 -0
- package/build/dex/smardex/sdk/constants.js.map +1 -0
- package/build/dex/smardex/sdk/core.d.ts +113 -0
- package/build/dex/smardex/sdk/core.js +499 -0
- package/build/dex/smardex/sdk/core.js.map +1 -0
- package/build/dex/smardex/sdk/errors.d.ts +15 -0
- package/build/dex/smardex/sdk/errors.js +22 -0
- package/build/dex/smardex/sdk/errors.js.map +1 -0
- package/build/dex/smardex/sdk/types.d.ts +62 -0
- package/build/dex/smardex/sdk/types.js +3 -0
- package/build/dex/smardex/sdk/types.js.map +1 -0
- package/build/dex/smardex/sdk/utils.d.ts +44 -0
- package/build/dex/smardex/sdk/utils.js +133 -0
- package/build/dex/smardex/sdk/utils.js.map +1 -0
- package/build/dex/smardex/smardex-event-pool.d.ts +28 -0
- package/build/dex/smardex/smardex-event-pool.js +119 -0
- package/build/dex/smardex/smardex-event-pool.js.map +1 -0
- package/build/dex/smardex/smardex.d.ts +65 -0
- package/build/dex/smardex/smardex.js +519 -0
- package/build/dex/smardex/smardex.js.map +1 -0
- package/build/dex/smardex/types.d.ts +55 -0
- package/build/dex/smardex/types.js +3 -0
- package/build/dex/smardex/types.js.map +1 -0
- package/build/dex/smoothy.d.ts +26 -0
- package/build/dex/smoothy.js +48 -0
- package/build/dex/smoothy.js.map +1 -0
- package/build/dex/solidly/forks-override/cone.d.ts +22 -0
- package/build/dex/solidly/forks-override/cone.js +53 -0
- package/build/dex/solidly/forks-override/cone.js.map +1 -0
- package/build/dex/solidly/forks-override/solisnek.d.ts +8 -0
- package/build/dex/solidly/forks-override/solisnek.js +15 -0
- package/build/dex/solidly/forks-override/solisnek.js.map +1 -0
- package/build/dex/solidly-v3/scripts/check-event-pool-event.d.ts +1 -0
- package/build/dex/solidly-v3/scripts/check-event-pool-event.js +53 -0
- package/build/dex/solidly-v3/scripts/check-event-pool-event.js.map +1 -0
- package/build/dex/stable-pool.d.ts +28 -0
- package/build/dex/stable-pool.js +55 -0
- package/build/dex/stable-pool.js.map +1 -0
- package/build/dex/swaap-v1/config.d.ts +17 -0
- package/build/dex/swaap-v1/config.js +56 -0
- package/build/dex/swaap-v1/config.js.map +1 -0
- package/build/dex/swaap-v1/constants.d.ts +6 -0
- package/build/dex/swaap-v1/constants.js +17 -0
- package/build/dex/swaap-v1/constants.js.map +1 -0
- package/build/dex/swaap-v1/libraries/ChainlinkUtils.d.ts +25 -0
- package/build/dex/swaap-v1/libraries/ChainlinkUtils.js +62 -0
- package/build/dex/swaap-v1/libraries/ChainlinkUtils.js.map +1 -0
- package/build/dex/swaap-v1/libraries/Const.d.ts +18 -0
- package/build/dex/swaap-v1/libraries/Const.js +26 -0
- package/build/dex/swaap-v1/libraries/Const.js.map +1 -0
- package/build/dex/swaap-v1/libraries/GeometricBrownianMotion.d.ts +77 -0
- package/build/dex/swaap-v1/libraries/GeometricBrownianMotion.js +316 -0
- package/build/dex/swaap-v1/libraries/GeometricBrownianMotion.js.map +1 -0
- package/build/dex/swaap-v1/libraries/LogExpMath.d.ts +75 -0
- package/build/dex/swaap-v1/libraries/LogExpMath.js +418 -0
- package/build/dex/swaap-v1/libraries/LogExpMath.js.map +1 -0
- package/build/dex/swaap-v1/libraries/MathMMM.d.ts +185 -0
- package/build/dex/swaap-v1/libraries/MathMMM.js +453 -0
- package/build/dex/swaap-v1/libraries/MathMMM.js.map +1 -0
- package/build/dex/swaap-v1/libraries/Num.d.ts +31 -0
- package/build/dex/swaap-v1/libraries/Num.js +167 -0
- package/build/dex/swaap-v1/libraries/Num.js.map +1 -0
- package/build/dex/swaap-v1/libraries/PoolQuotations.d.ts +23 -0
- package/build/dex/swaap-v1/libraries/PoolQuotations.js +131 -0
- package/build/dex/swaap-v1/libraries/PoolQuotations.js.map +1 -0
- package/build/dex/swaap-v1/libraries/Struct.d.ts +56 -0
- package/build/dex/swaap-v1/libraries/Struct.js +3 -0
- package/build/dex/swaap-v1/libraries/Struct.js.map +1 -0
- package/build/dex/swaap-v1/swaap-v1-pool.d.ts +45 -0
- package/build/dex/swaap-v1/swaap-v1-pool.js +656 -0
- package/build/dex/swaap-v1/swaap-v1-pool.js.map +1 -0
- package/build/dex/swaap-v1/swaap-v1.d.ts +62 -0
- package/build/dex/swaap-v1/swaap-v1.js +383 -0
- package/build/dex/swaap-v1/swaap-v1.js.map +1 -0
- package/build/dex/swaap-v1/types.d.ts +106 -0
- package/build/dex/swaap-v1/types.js +9 -0
- package/build/dex/swaap-v1/types.js.map +1 -0
- package/build/dex/trader-joe-v2.1.d.ts +43 -0
- package/build/dex/trader-joe-v2.1.js +79 -0
- package/build/dex/trader-joe-v2.1.js.map +1 -0
- package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.d.ts +17 -0
- package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.js +64 -0
- package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.js.map +1 -0
- package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.d.ts +17 -0
- package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js +79 -0
- package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js.map +1 -0
- package/config.ts +1946 -0
- package/package.json +1 -1
- package/src/abi/maverick-v2/MaverickV2Router.json +778 -0
- package/src/dex/dexs.txt +58 -0
- package/src/dex/generic-rfq/generic-rfq.ts +13 -2
- package/src/dex/generic-rfq/rate-fetcher.ts +28 -0
- package/src/dex/maverick-v2/config.ts +4 -0
- package/src/dex/maverick-v2/maverick-v2-e2e.test.ts +4 -1
- package/src/dex/maverick-v2/maverick-v2.ts +57 -45
- package/src/dex/maverick-v2/types.ts +1 -0
- package/.idea/aws.xml +0 -17
- package/.idea/codeStyles/Project.xml +0 -19
- package/.idea/codeStyles/codeStyleConfig.xml +0 -5
- package/.idea/misc.xml +0 -6
- package/.idea/modules.xml +0 -8
- package/.idea/paraswap-dex-lib.iml +0 -9
- package/.idea/prettier.xml +0 -7
- package/.idea/vcs.xml +0 -6
package/src/dex/dexs.txt
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
aave-v2
|
|
2
|
+
aave-v3
|
|
3
|
+
aave-v3-stata
|
|
4
|
+
algebra
|
|
5
|
+
angle-staked-stable
|
|
6
|
+
angle-transmuter
|
|
7
|
+
augustus-approvals.ts
|
|
8
|
+
augustus-rfq.ts
|
|
9
|
+
balancer-v1
|
|
10
|
+
balancer-v2
|
|
11
|
+
bancor
|
|
12
|
+
camelot
|
|
13
|
+
compound
|
|
14
|
+
curve-v1
|
|
15
|
+
curve-v1-factory
|
|
16
|
+
curve-v1-stable-ng
|
|
17
|
+
curve-v2
|
|
18
|
+
dexalot
|
|
19
|
+
dexs.txt
|
|
20
|
+
dodo-v1
|
|
21
|
+
dodo-v2.ts
|
|
22
|
+
etherfi.ts
|
|
23
|
+
generic-rfq
|
|
24
|
+
gmx
|
|
25
|
+
hashflow
|
|
26
|
+
idex.ts
|
|
27
|
+
idle-dao
|
|
28
|
+
index.ts
|
|
29
|
+
jarvis-v6
|
|
30
|
+
kyberdmm
|
|
31
|
+
lido
|
|
32
|
+
limit-order-exchange.ts
|
|
33
|
+
maker-psm
|
|
34
|
+
maverick-v1
|
|
35
|
+
maverick-v2
|
|
36
|
+
nerve
|
|
37
|
+
pancakeswap-v3
|
|
38
|
+
paraswap-limit-orders
|
|
39
|
+
polygon-migrator
|
|
40
|
+
quick-perps
|
|
41
|
+
quickswap
|
|
42
|
+
simple-exchange.ts
|
|
43
|
+
smoothy
|
|
44
|
+
solidly
|
|
45
|
+
solidly-v3
|
|
46
|
+
spark
|
|
47
|
+
stable-pool
|
|
48
|
+
swaap-v2
|
|
49
|
+
swell
|
|
50
|
+
synthetix
|
|
51
|
+
trader-joe-v2.1
|
|
52
|
+
uniswap-v2
|
|
53
|
+
uniswap-v3
|
|
54
|
+
uniswap-v3.ts
|
|
55
|
+
weth
|
|
56
|
+
wombat
|
|
57
|
+
woo-fi-v2
|
|
58
|
+
wsteth
|
|
@@ -84,8 +84,19 @@ export class GenericRFQ extends ParaSwapLimitOrders {
|
|
|
84
84
|
side: SwapSide,
|
|
85
85
|
blockNumber: number,
|
|
86
86
|
): Promise<string[]> {
|
|
87
|
-
const _destToken = this.dexHelper.config
|
|
88
|
-
|
|
87
|
+
const _destToken = this.dexHelper.config
|
|
88
|
+
.wrapETH(destToken)
|
|
89
|
+
.address.toLowerCase();
|
|
90
|
+
const _srcToken = this.dexHelper.config
|
|
91
|
+
.wrapETH(srcToken)
|
|
92
|
+
.address.toLowerCase();
|
|
93
|
+
|
|
94
|
+
const currentPair = `${_srcToken}_${_destToken}`;
|
|
95
|
+
const availablePairs = await this.rateFetcher.getAvailablePairs();
|
|
96
|
+
|
|
97
|
+
return availablePairs
|
|
98
|
+
.filter(p => p === currentPair)
|
|
99
|
+
.map(_ => this.getIdentifier(_srcToken, _destToken));
|
|
89
100
|
}
|
|
90
101
|
|
|
91
102
|
calcOutsFromAmounts(
|
|
@@ -228,6 +228,8 @@ export class RateFetcher {
|
|
|
228
228
|
|
|
229
229
|
if (isEmpty(pairs)) return;
|
|
230
230
|
|
|
231
|
+
const currentPricePairs = new Set();
|
|
232
|
+
|
|
231
233
|
Object.keys(resp.prices).forEach(pairName => {
|
|
232
234
|
const pair = pairs[pairName];
|
|
233
235
|
if (!pair) {
|
|
@@ -257,6 +259,7 @@ export class RateFetcher {
|
|
|
257
259
|
this.config.rateConfig.dataTTLS,
|
|
258
260
|
JSON.stringify(prices.bids),
|
|
259
261
|
);
|
|
262
|
+
currentPricePairs.add(`${baseToken.address}_${quoteToken.address}`);
|
|
260
263
|
}
|
|
261
264
|
|
|
262
265
|
if (prices.asks.length) {
|
|
@@ -267,8 +270,19 @@ export class RateFetcher {
|
|
|
267
270
|
this.config.rateConfig.dataTTLS,
|
|
268
271
|
JSON.stringify(prices.asks),
|
|
269
272
|
);
|
|
273
|
+
currentPricePairs.add(`${quoteToken.address}_${baseToken.address}`);
|
|
270
274
|
}
|
|
271
275
|
});
|
|
276
|
+
|
|
277
|
+
if (currentPricePairs.size > 0) {
|
|
278
|
+
this.dexHelper.cache.setex(
|
|
279
|
+
this.dexKey,
|
|
280
|
+
this.dexHelper.config.data.network,
|
|
281
|
+
`pairs`,
|
|
282
|
+
this.config.rateConfig.dataTTLS,
|
|
283
|
+
JSON.stringify(Array.from(currentPricePairs)),
|
|
284
|
+
);
|
|
285
|
+
}
|
|
272
286
|
}
|
|
273
287
|
|
|
274
288
|
checkHealth(): boolean {
|
|
@@ -307,6 +321,20 @@ export class RateFetcher {
|
|
|
307
321
|
});
|
|
308
322
|
}
|
|
309
323
|
|
|
324
|
+
public async getAvailablePairs(): Promise<string[]> {
|
|
325
|
+
const pairs = await this.dexHelper.cache.get(
|
|
326
|
+
this.dexKey,
|
|
327
|
+
this.dexHelper.config.data.network,
|
|
328
|
+
`pairs`,
|
|
329
|
+
);
|
|
330
|
+
|
|
331
|
+
if (!pairs) {
|
|
332
|
+
return [];
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
return JSON.parse(pairs) as string[];
|
|
336
|
+
}
|
|
337
|
+
|
|
310
338
|
public async getOrderPrice(
|
|
311
339
|
srcToken: Token,
|
|
312
340
|
destToken: Token,
|
|
@@ -9,18 +9,22 @@ export const MAVERICK_API_URL = `https://v2-api.mav.xyz/`;
|
|
|
9
9
|
export const MaverickV2Config: DexConfigMap<DexParams> = {
|
|
10
10
|
MaverickV2: {
|
|
11
11
|
[Network.BASE]: {
|
|
12
|
+
routerAddress: `0x5eDEd0d7E76C563FF081Ca01D9d12D6B404Df527`,
|
|
12
13
|
quoterAddress: `0xb40AfdB85a07f37aE217E7D6462e609900dD8D7A`,
|
|
13
14
|
poolLensAddress: `0x942646b0A8B42Af1e1044439013436a9a3e080b5`,
|
|
14
15
|
},
|
|
15
16
|
[Network.MAINNET]: {
|
|
17
|
+
routerAddress: `0x62e31802c6145A2D5E842EeD8efe01fC224422fA`,
|
|
16
18
|
quoterAddress: `0xb40AfdB85a07f37aE217E7D6462e609900dD8D7A`,
|
|
17
19
|
poolLensAddress: `0x942646b0A8B42Af1e1044439013436a9a3e080b5`,
|
|
18
20
|
},
|
|
19
21
|
[Network.BSC]: {
|
|
22
|
+
routerAddress: `0x374bFCc264678c67a582D067AD91f1951bC6b20f`,
|
|
20
23
|
quoterAddress: `0xb40AfdB85a07f37aE217E7D6462e609900dD8D7A`,
|
|
21
24
|
poolLensAddress: `0x942646b0A8B42Af1e1044439013436a9a3e080b5`,
|
|
22
25
|
},
|
|
23
26
|
[Network.ARBITRUM]: {
|
|
27
|
+
routerAddress: `0x5c3b380e5Aeec389d1014Da3Eb372FA2C9e0fc76`,
|
|
24
28
|
quoterAddress: `0xb40AfdB85a07f37aE217E7D6462e609900dD8D7A`,
|
|
25
29
|
poolLensAddress: `0x942646b0A8B42Af1e1044439013436a9a3e080b5`,
|
|
26
30
|
},
|
|
@@ -74,7 +74,10 @@ function testForNetwork(
|
|
|
74
74
|
SwapSide.SELL,
|
|
75
75
|
[ContractMethod.simpleSwap, ContractMethod.swapExactAmountIn],
|
|
76
76
|
],
|
|
77
|
-
|
|
77
|
+
[
|
|
78
|
+
SwapSide.BUY,
|
|
79
|
+
[ContractMethod.simpleBuy, ContractMethod.swapExactAmountOut],
|
|
80
|
+
],
|
|
78
81
|
]);
|
|
79
82
|
|
|
80
83
|
describe(`${network}`, () => {
|
|
@@ -27,6 +27,7 @@ import { MaverickV2EventPool } from './maverick-v2-pool';
|
|
|
27
27
|
import { SUBGRAPH_TIMEOUT } from '../../constants';
|
|
28
28
|
import { Interface } from '@ethersproject/abi';
|
|
29
29
|
import MaverickV2PoolABI from '../../abi/maverick-v2/MaverickV2Pool.json';
|
|
30
|
+
import MaverickV2RouterABI from '../../abi/maverick-v2/MaverickV2Router.json';
|
|
30
31
|
import ERC20ABI from '../../abi/erc20.json';
|
|
31
32
|
import { extractReturnAmountPosition } from '../../executor/utils';
|
|
32
33
|
const EFFICIENCY_FACTOR = 3;
|
|
@@ -52,6 +53,7 @@ export class MaverickV2 extends SimpleExchange implements IDex<MaverickV2Data> {
|
|
|
52
53
|
protected adapters = {},
|
|
53
54
|
protected config = MaverickV2Config[dexKey][network],
|
|
54
55
|
protected maverickV2Iface = new Interface(MaverickV2PoolABI),
|
|
56
|
+
protected maverickV2RouterIface = new Interface(MaverickV2RouterABI),
|
|
55
57
|
) {
|
|
56
58
|
super(dexHelper, dexKey);
|
|
57
59
|
this.logger = dexHelper.getLogger(dexKey);
|
|
@@ -103,9 +105,6 @@ export class MaverickV2 extends SimpleExchange implements IDex<MaverickV2Data> {
|
|
|
103
105
|
side: SwapSide,
|
|
104
106
|
blockNumber: number,
|
|
105
107
|
): Promise<string[]> {
|
|
106
|
-
// TODO:
|
|
107
|
-
if (side === SwapSide.BUY) return [];
|
|
108
|
-
|
|
109
108
|
const from = this.dexHelper.config.wrapETH(srcToken);
|
|
110
109
|
const to = this.dexHelper.config.wrapETH(destToken);
|
|
111
110
|
|
|
@@ -148,9 +147,6 @@ export class MaverickV2 extends SimpleExchange implements IDex<MaverickV2Data> {
|
|
|
148
147
|
return null;
|
|
149
148
|
}
|
|
150
149
|
|
|
151
|
-
// TODO:
|
|
152
|
-
if (side === SwapSide.BUY) return null;
|
|
153
|
-
|
|
154
150
|
const allPools = await this.getPools(from, to);
|
|
155
151
|
|
|
156
152
|
const allowedPools = limitPools
|
|
@@ -159,11 +155,9 @@ export class MaverickV2 extends SimpleExchange implements IDex<MaverickV2Data> {
|
|
|
159
155
|
|
|
160
156
|
if (!allowedPools.length) return null;
|
|
161
157
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
const unitAmount = getBigIntPow(from.decimals);
|
|
158
|
+
const unitAmount = getBigIntPow(
|
|
159
|
+
side === SwapSide.BUY ? to.decimals : from.decimals,
|
|
160
|
+
);
|
|
167
161
|
|
|
168
162
|
const tasks = allowedPools.map(async (pool: MaverickV2EventPool) => {
|
|
169
163
|
try {
|
|
@@ -173,8 +167,7 @@ export class MaverickV2 extends SimpleExchange implements IDex<MaverickV2Data> {
|
|
|
173
167
|
return null;
|
|
174
168
|
}
|
|
175
169
|
|
|
176
|
-
|
|
177
|
-
const [unit] = pool.swap(unitAmount, from, to, false);
|
|
170
|
+
const [unit] = pool.swap(unitAmount, from, to, side === SwapSide.BUY);
|
|
178
171
|
let lastOutput = 1n;
|
|
179
172
|
|
|
180
173
|
const dataList: [bigint, bigint][] = amounts.map(amount => {
|
|
@@ -182,8 +175,7 @@ export class MaverickV2 extends SimpleExchange implements IDex<MaverickV2Data> {
|
|
|
182
175
|
return [0n, 0n];
|
|
183
176
|
}
|
|
184
177
|
|
|
185
|
-
|
|
186
|
-
const output = pool.swap(amount, from, to, false);
|
|
178
|
+
const output = pool.swap(amount, from, to, side === SwapSide.BUY);
|
|
187
179
|
lastOutput = output[0];
|
|
188
180
|
return output;
|
|
189
181
|
});
|
|
@@ -262,45 +254,65 @@ export class MaverickV2 extends SimpleExchange implements IDex<MaverickV2Data> {
|
|
|
262
254
|
_: Context,
|
|
263
255
|
executorAddress: Address,
|
|
264
256
|
): DexExchangeParam {
|
|
265
|
-
// TODO:
|
|
266
|
-
if (side === SwapSide.BUY) throw new Error(`Buy not supported`);
|
|
267
|
-
|
|
268
257
|
const { pool } = data;
|
|
269
258
|
|
|
270
259
|
srcToken = this.dexHelper.config.wrapETH(srcToken);
|
|
271
260
|
destToken = this.dexHelper.config.wrapETH(destToken);
|
|
272
261
|
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
262
|
+
if (side === SwapSide.SELL) {
|
|
263
|
+
// Perform direct swap for SELL side
|
|
264
|
+
|
|
265
|
+
const exchangeData = this.maverickV2Iface.encodeFunctionData('swap', [
|
|
266
|
+
recipient,
|
|
267
|
+
{
|
|
268
|
+
amount: srcAmount,
|
|
269
|
+
tokenAIn: data.tokenA.toLowerCase() === srcToken.toLowerCase(),
|
|
270
|
+
exactOutput: false,
|
|
271
|
+
tickLimit:
|
|
272
|
+
data.tokenA.toLowerCase() === srcToken.toLowerCase()
|
|
273
|
+
? BigInt(data.activeTick) + 100n
|
|
274
|
+
: BigInt(data.activeTick) - 100n,
|
|
275
|
+
},
|
|
276
|
+
'0x',
|
|
277
|
+
]);
|
|
278
|
+
|
|
279
|
+
return {
|
|
280
|
+
needWrapNative: this.needWrapNative,
|
|
281
|
+
transferSrcTokenBeforeSwap: pool,
|
|
282
|
+
skipApproval: true,
|
|
283
|
+
targetExchange: pool,
|
|
284
|
+
dexFuncHasRecipient: true,
|
|
285
|
+
exchangeData,
|
|
286
|
+
returnAmountPos: extractReturnAmountPosition(
|
|
287
|
+
this.maverickV2Iface,
|
|
288
|
+
'swap',
|
|
289
|
+
'amountOut',
|
|
290
|
+
),
|
|
291
|
+
};
|
|
292
|
+
} else {
|
|
293
|
+
// perform "exactOutputSingleMinimal" via MaverickV2's Router
|
|
294
|
+
|
|
295
|
+
const exchangeData = this.maverickV2RouterIface.encodeFunctionData(
|
|
296
|
+
'exactOutputSingleMinimal',
|
|
297
|
+
[
|
|
298
|
+
recipient,
|
|
299
|
+
pool,
|
|
300
|
+
data.tokenA.toLowerCase() === srcToken.toLowerCase(),
|
|
301
|
+
destAmount,
|
|
281
302
|
data.tokenA.toLowerCase() === srcToken.toLowerCase()
|
|
282
303
|
? BigInt(data.activeTick) + 100n
|
|
283
304
|
: BigInt(data.activeTick) - 100n,
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
]);
|
|
305
|
+
],
|
|
306
|
+
);
|
|
287
307
|
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
side === SwapSide.SELL
|
|
297
|
-
? extractReturnAmountPosition(
|
|
298
|
-
this.maverickV2Iface,
|
|
299
|
-
'swap',
|
|
300
|
-
'amountOut',
|
|
301
|
-
)
|
|
302
|
-
: undefined,
|
|
303
|
-
};
|
|
308
|
+
return {
|
|
309
|
+
needWrapNative: this.needWrapNative,
|
|
310
|
+
targetExchange: this.config.routerAddress,
|
|
311
|
+
dexFuncHasRecipient: true,
|
|
312
|
+
exchangeData,
|
|
313
|
+
returnAmountPos: undefined,
|
|
314
|
+
};
|
|
315
|
+
}
|
|
304
316
|
}
|
|
305
317
|
|
|
306
318
|
// This is called once before getTopPoolsForToken is
|
package/.idea/aws.xml
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<project version="4">
|
|
3
|
-
<component name="accountSettings">
|
|
4
|
-
<option name="activeProfile" value="profile:default" />
|
|
5
|
-
<option name="activeRegion" value="us-east-1" />
|
|
6
|
-
<option name="recentlyUsedProfiles">
|
|
7
|
-
<list>
|
|
8
|
-
<option value="profile:default" />
|
|
9
|
-
</list>
|
|
10
|
-
</option>
|
|
11
|
-
<option name="recentlyUsedRegions">
|
|
12
|
-
<list>
|
|
13
|
-
<option value="us-east-1" />
|
|
14
|
-
</list>
|
|
15
|
-
</option>
|
|
16
|
-
</component>
|
|
17
|
-
</project>
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
<component name="ProjectCodeStyleConfiguration">
|
|
2
|
-
<code_scheme name="Project" version="173">
|
|
3
|
-
<ScalaCodeStyleSettings>
|
|
4
|
-
<option name="MULTILINE_STRING_CLOSING_QUOTES_ON_NEW_LINE" value="true" />
|
|
5
|
-
</ScalaCodeStyleSettings>
|
|
6
|
-
<TypeScriptCodeStyleSettings version="0">
|
|
7
|
-
<option name="SPACE_WITHIN_ARRAY_INITIALIZER_BRACKETS" value="true" />
|
|
8
|
-
<option name="USE_DOUBLE_QUOTES" value="false" />
|
|
9
|
-
<option name="SPACES_WITHIN_IMPORTS" value="true" />
|
|
10
|
-
</TypeScriptCodeStyleSettings>
|
|
11
|
-
<codeStyleSettings language="TypeScript">
|
|
12
|
-
<indentOptions>
|
|
13
|
-
<option name="INDENT_SIZE" value="2" />
|
|
14
|
-
<option name="CONTINUATION_INDENT_SIZE" value="2" />
|
|
15
|
-
<option name="TAB_SIZE" value="2" />
|
|
16
|
-
</indentOptions>
|
|
17
|
-
</codeStyleSettings>
|
|
18
|
-
</code_scheme>
|
|
19
|
-
</component>
|
package/.idea/misc.xml
DELETED
package/.idea/modules.xml
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<project version="4">
|
|
3
|
-
<component name="ProjectModuleManager">
|
|
4
|
-
<modules>
|
|
5
|
-
<module fileurl="file://$PROJECT_DIR$/.idea/paraswap-dex-lib.iml" filepath="$PROJECT_DIR$/.idea/paraswap-dex-lib.iml" />
|
|
6
|
-
</modules>
|
|
7
|
-
</component>
|
|
8
|
-
</project>
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<module type="JAVA_MODULE" version="4">
|
|
3
|
-
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
|
4
|
-
<exclude-output />
|
|
5
|
-
<content url="file://$MODULE_DIR$" />
|
|
6
|
-
<orderEntry type="inheritedJdk" />
|
|
7
|
-
<orderEntry type="sourceFolder" forTests="false" />
|
|
8
|
-
</component>
|
|
9
|
-
</module>
|
package/.idea/prettier.xml
DELETED