@paraswap/dex-lib 3.8.13 → 3.8.14
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/maverick-v2/MaverickV2Router.json +778 -0
- package/build/abi/uniswap-v3/AlienBaseV3Router.abi.json +52 -0
- package/build/abi/{fx-protocol/FxUSD.json → wombat/pool.json} +604 -542
- package/build/dex/aave-v1/aave-v1.js +1 -0
- package/build/dex/aave-v1/aave-v1.js.map +1 -1
- 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/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/onebit.d.ts +25 -0
- package/build/dex/onebit.js +42 -0
- package/build/dex/onebit.js.map +1 -0
- package/build/dex/platypus/platypus.js +17 -3
- package/build/dex/platypus/platypus.js.map +1 -1
- 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-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/swaap-v1.js +4 -0
- package/build/dex/swaap-v1/swaap-v1.js.map +1 -1
- package/build/dex/trader-joe-v2.1/base.d.ts +18 -0
- package/build/dex/trader-joe-v2.1/base.js +99 -0
- package/build/dex/trader-joe-v2.1/base.js.map +1 -0
- package/build/dex/trader-joe-v2.1/trader-joe-v2.1-new.d.ts +7 -0
- package/build/dex/trader-joe-v2.1/trader-joe-v2.1-new.js +20 -0
- package/build/dex/trader-joe-v2.1/trader-joe-v2.1-new.js.map +1 -0
- package/build/dex/trader-joe-v2.1/trader-joe-v2.2.d.ts +7 -0
- package/build/dex/trader-joe-v2.1/trader-joe-v2.2.js +20 -0
- package/build/dex/trader-joe-v2.1/trader-joe-v2.2.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/build/executor/Executor01BytecodeBuilder.js +4 -5
- package/build/executor/Executor01BytecodeBuilder.js.map +1 -1
- package/build/executor/Executor02BytecodeBuilder.js +2 -3
- package/build/executor/Executor02BytecodeBuilder.js.map +1 -1
- package/build/executor/Executor03BytecodeBuilder.js +24 -14
- package/build/executor/Executor03BytecodeBuilder.js.map +1 -1
- package/build/generic-swap-transaction-builder.d.ts +1 -1
- package/build/generic-swap-transaction-builder.js +10 -10
- package/build/generic-swap-transaction-builder.js.map +1 -1
- package/config.ts +1946 -0
- package/package.json +1 -1
- package/src/dex/dexs.txt +58 -0
- package/src/executor/Executor01BytecodeBuilder.ts +4 -8
- package/src/executor/Executor02BytecodeBuilder.ts +2 -7
- package/src/executor/Executor03BytecodeBuilder.ts +34 -19
- package/src/generic-swap-transaction-builder.ts +3 -5
- package/build/abi/concentrator/arUSD.json +0 -568
- package/build/abi/inception/inception-ineth-pool.json +0 -1062
- package/build/abi/inception/inception-ineth.json +0 -609
- package/build/abi/inception/inception-ratio-feed.json +0 -93
- package/build/abi/inception/inception-vault.json +0 -991
- package/build/abi/infusion/InfusionFactory.json +0 -147
- package/build/abi/infusion/InfusionPair.json +0 -658
- package/build/abi/infusion/InfusionRouter.json +0 -442
- package/build/abi/oswap/oswap.abi.json +0 -452
- package/build/dex/concentrator-arusd/concentrator-arusd.d.ts +0 -38
- package/build/dex/concentrator-arusd/concentrator-arusd.js +0 -184
- package/build/dex/concentrator-arusd/concentrator-arusd.js.map +0 -1
- package/build/dex/concentrator-arusd/config.d.ts +0 -4
- package/build/dex/concentrator-arusd/config.js +0 -18
- package/build/dex/concentrator-arusd/config.js.map +0 -1
- package/build/dex/concentrator-arusd/types.d.ts +0 -10
- package/build/dex/concentrator-arusd/types.js +0 -3
- package/build/dex/concentrator-arusd/types.js.map +0 -1
- package/build/dex/fx-protocol-rusd/config.d.ts +0 -4
- package/build/dex/fx-protocol-rusd/config.js +0 -18
- package/build/dex/fx-protocol-rusd/config.js.map +0 -1
- package/build/dex/fx-protocol-rusd/fx-protocol-rusd.d.ts +0 -39
- package/build/dex/fx-protocol-rusd/fx-protocol-rusd.js +0 -196
- package/build/dex/fx-protocol-rusd/fx-protocol-rusd.js.map +0 -1
- package/build/dex/fx-protocol-rusd/types.d.ts +0 -10
- package/build/dex/fx-protocol-rusd/types.js +0 -3
- package/build/dex/fx-protocol-rusd/types.js.map +0 -1
- package/build/dex/idle-dao/idle-dao-pool.d.ts +0 -56
- package/build/dex/idle-dao/idle-dao-pool.js +0 -176
- package/build/dex/idle-dao/idle-dao-pool.js.map +0 -1
- package/build/dex/idle-dao/idle-dao-pooling-pool.d.ts +0 -16
- package/build/dex/idle-dao/idle-dao-pooling-pool.js +0 -57
- package/build/dex/idle-dao/idle-dao-pooling-pool.js.map +0 -1
- package/build/dex/idle-dao/scripts.d.ts +0 -9
- package/build/dex/idle-dao/scripts.js +0 -552
- package/build/dex/idle-dao/scripts.js.map +0 -1
- package/build/dex/inception/config.d.ts +0 -5
- package/build/dex/inception/config.js +0 -112
- package/build/dex/inception/config.js.map +0 -1
- package/build/dex/inception/inception-event-pool.d.ts +0 -23
- package/build/dex/inception/inception-event-pool.js +0 -34
- package/build/dex/inception/inception-event-pool.js.map +0 -1
- package/build/dex/inception/inception-native.d.ts +0 -43
- package/build/dex/inception/inception-native.js +0 -131
- package/build/dex/inception/inception-native.js.map +0 -1
- package/build/dex/inception/inception-pool.d.ts +0 -18
- package/build/dex/inception/inception-pool.js +0 -32
- package/build/dex/inception/inception-pool.js.map +0 -1
- package/build/dex/inception/inception-price-feed.d.ts +0 -19
- package/build/dex/inception/inception-price-feed.js +0 -51
- package/build/dex/inception/inception-price-feed.js.map +0 -1
- package/build/dex/inception/inception.d.ts +0 -44
- package/build/dex/inception/inception.js +0 -162
- package/build/dex/inception/inception.js.map +0 -1
- package/build/dex/inception/tokens.d.ts +0 -9
- package/build/dex/inception/tokens.js +0 -28
- package/build/dex/inception/tokens.js.map +0 -1
- package/build/dex/inception/types.d.ts +0 -22
- package/build/dex/inception/types.js +0 -3
- package/build/dex/inception/types.js.map +0 -1
- package/build/dex/inception/utils.d.ts +0 -7
- package/build/dex/inception/utils.js +0 -58
- package/build/dex/inception/utils.js.map +0 -1
- package/build/dex/infusion/config.d.ts +0 -4
- package/build/dex/infusion/config.js +0 -25
- package/build/dex/infusion/config.js.map +0 -1
- package/build/dex/infusion/infusion-stable-pool.d.ts +0 -4
- package/build/dex/infusion/infusion-stable-pool.js +0 -74
- package/build/dex/infusion/infusion-stable-pool.js.map +0 -1
- package/build/dex/infusion/infusion.d.ts +0 -54
- package/build/dex/infusion/infusion.js +0 -532
- package/build/dex/infusion/infusion.js.map +0 -1
- package/build/dex/infusion/types.d.ts +0 -47
- package/build/dex/infusion/types.js +0 -3
- package/build/dex/infusion/types.js.map +0 -1
- package/build/dex/infusion/utils/isStablePair.d.ts +0 -2
- package/build/dex/infusion/utils/isStablePair.js +0 -18
- package/build/dex/infusion/utils/isStablePair.js.map +0 -1
- package/build/dex/oswap/config.d.ts +0 -5
- package/build/dex/oswap/config.js +0 -31
- package/build/dex/oswap/config.js.map +0 -1
- package/build/dex/oswap/oswap-pool.d.ts +0 -51
- package/build/dex/oswap/oswap-pool.js +0 -150
- package/build/dex/oswap/oswap-pool.js.map +0 -1
- package/build/dex/oswap/oswap.d.ts +0 -46
- package/build/dex/oswap/oswap.js +0 -263
- package/build/dex/oswap/oswap.js.map +0 -1
- package/build/dex/oswap/types.d.ts +0 -20
- package/build/dex/oswap/types.js +0 -3
- package/build/dex/oswap/types.js.map +0 -1
package/package.json
CHANGED
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
|
|
@@ -10,7 +10,6 @@ import {
|
|
|
10
10
|
ExecutorBytecodeBuilder,
|
|
11
11
|
SingleSwapCallDataParams,
|
|
12
12
|
} from './ExecutorBytecodeBuilder';
|
|
13
|
-
import { assert } from 'ts-essentials';
|
|
14
13
|
|
|
15
14
|
const {
|
|
16
15
|
utils: { hexlify, hexDataLength, hexConcat, hexZeroPad, solidityPack },
|
|
@@ -344,6 +343,7 @@ export class Executor01BytecodeBuilder extends ExecutorBytecodeBuilder<
|
|
|
344
343
|
routeIndex,
|
|
345
344
|
swapIndex,
|
|
346
345
|
flag,
|
|
346
|
+
swapExchangeIndex,
|
|
347
347
|
} = params;
|
|
348
348
|
|
|
349
349
|
const dontCheckBalanceAfterSwap = flag % 3 === 0;
|
|
@@ -378,19 +378,15 @@ export class Executor01BytecodeBuilder extends ExecutorBytecodeBuilder<
|
|
|
378
378
|
if (insertFromAmount) {
|
|
379
379
|
const fromAmount = ethers.utils.defaultAbiCoder.encode(
|
|
380
380
|
['uint256'],
|
|
381
|
-
[swap.swapExchanges[
|
|
381
|
+
[swap.swapExchanges[swapExchangeIndex].srcAmount],
|
|
382
382
|
);
|
|
383
383
|
|
|
384
384
|
const fromAmountIndex = exchangeData
|
|
385
385
|
.replace('0x', '')
|
|
386
386
|
.indexOf(fromAmount.replace('0x', ''));
|
|
387
387
|
|
|
388
|
-
|
|
389
|
-
fromAmountIndex !== -1
|
|
390
|
-
'Encoding error: could not resolve position of fromAmount in exchangeData',
|
|
391
|
-
);
|
|
392
|
-
|
|
393
|
-
fromAmountPos = fromAmountIndex / 2;
|
|
388
|
+
fromAmountPos =
|
|
389
|
+
(fromAmountIndex !== -1 ? fromAmountIndex : exchangeData.length) / 2;
|
|
394
390
|
}
|
|
395
391
|
|
|
396
392
|
return this.buildCallData(
|
|
@@ -24,7 +24,6 @@ import {
|
|
|
24
24
|
ZEROS_4_BYTES,
|
|
25
25
|
DEFAULT_RETURN_AMOUNT_POS,
|
|
26
26
|
} from './constants';
|
|
27
|
-
import { assert } from 'ts-essentials';
|
|
28
27
|
|
|
29
28
|
const {
|
|
30
29
|
utils: { hexlify, hexDataLength, hexConcat, hexZeroPad, solidityPack },
|
|
@@ -339,12 +338,8 @@ export class Executor02BytecodeBuilder extends ExecutorBytecodeBuilder<
|
|
|
339
338
|
.replace('0x', '')
|
|
340
339
|
.indexOf(fromAmount.replace('0x', ''));
|
|
341
340
|
|
|
342
|
-
|
|
343
|
-
fromAmountIndex !== -1
|
|
344
|
-
'Encoding error: could not resolve position of fromAmount in exchangeData',
|
|
345
|
-
);
|
|
346
|
-
|
|
347
|
-
fromAmountPos = fromAmountIndex / 2;
|
|
341
|
+
fromAmountPos =
|
|
342
|
+
(fromAmountIndex !== -1 ? fromAmountIndex : exchangeData.length) / 2;
|
|
348
343
|
}
|
|
349
344
|
|
|
350
345
|
return this.buildCallData(
|
|
@@ -67,13 +67,28 @@ export class Executor03BytecodeBuilder extends ExecutorBytecodeBuilder<
|
|
|
67
67
|
const exchangeParam = exchangeParams[exchangeParamIndex];
|
|
68
68
|
const swap = priceRoute.bestRoute[0].swaps[0];
|
|
69
69
|
|
|
70
|
-
const {
|
|
70
|
+
const {
|
|
71
|
+
dexFuncHasRecipient,
|
|
72
|
+
needWrapNative,
|
|
73
|
+
swappedAmountNotPresentInExchangeData,
|
|
74
|
+
specialDexFlag,
|
|
75
|
+
specialDexSupportsInsertFromAmount,
|
|
76
|
+
} = exchangeParam;
|
|
77
|
+
const isSpecialDex =
|
|
78
|
+
specialDexFlag !== undefined && specialDexFlag !== SpecialDex.DEFAULT;
|
|
79
|
+
|
|
80
|
+
const forcePreventInsertFromAmount =
|
|
81
|
+
swappedAmountNotPresentInExchangeData ||
|
|
82
|
+
(isSpecialDex && !specialDexSupportsInsertFromAmount);
|
|
71
83
|
|
|
72
84
|
const needWrap = needWrapNative && isEthSrc && maybeWethCallData?.deposit;
|
|
73
85
|
const needUnwrap =
|
|
74
86
|
needWrapNative && isEthDest && maybeWethCallData?.withdraw;
|
|
75
87
|
|
|
76
|
-
let dexFlag =
|
|
88
|
+
let dexFlag = forcePreventInsertFromAmount
|
|
89
|
+
? Flag.DONT_INSERT_FROM_AMOUNT_DONT_CHECK_BALANCE_AFTER_SWAP
|
|
90
|
+
: Flag.INSERT_FROM_AMOUNT_DONT_CHECK_BALANCE_AFTER_SWAP; // 0 or 3
|
|
91
|
+
|
|
77
92
|
let approveFlag =
|
|
78
93
|
Flag.DONT_INSERT_FROM_AMOUNT_DONT_CHECK_BALANCE_AFTER_SWAP; // 0
|
|
79
94
|
|
|
@@ -81,15 +96,21 @@ export class Executor03BytecodeBuilder extends ExecutorBytecodeBuilder<
|
|
|
81
96
|
dexFlag =
|
|
82
97
|
Flag.SEND_ETH_EQUAL_TO_FROM_AMOUNT_CHECK_SRC_TOKEN_BALANCE_AFTER_SWAP; // 5
|
|
83
98
|
} else if (isEthDest && !needUnwrap) {
|
|
84
|
-
dexFlag =
|
|
99
|
+
dexFlag = forcePreventInsertFromAmount
|
|
100
|
+
? Flag.DONT_INSERT_FROM_AMOUNT_CHECK_ETH_BALANCE_AFTER_SWAP // 4
|
|
101
|
+
: Flag.INSERT_FROM_AMOUNT_CHECK_ETH_BALANCE_AFTER_SWAP; // 7
|
|
85
102
|
} else if (isEthDest && needUnwrap) {
|
|
86
|
-
dexFlag =
|
|
103
|
+
dexFlag = forcePreventInsertFromAmount
|
|
104
|
+
? Flag.DONT_INSERT_FROM_AMOUNT_CHECK_SRC_TOKEN_BALANCE_AFTER_SWAP // 8
|
|
105
|
+
: Flag.INSERT_FROM_AMOUNT_CHECK_SRC_TOKEN_BALANCE_AFTER_SWAP; // 11
|
|
87
106
|
// dexFlag = Flag.ZERO;
|
|
88
107
|
} else if (
|
|
89
108
|
!isETHAddress(swap.destToken) &&
|
|
90
109
|
exchangeParams.some(param => !param.dexFuncHasRecipient)
|
|
91
110
|
) {
|
|
92
|
-
dexFlag =
|
|
111
|
+
dexFlag = forcePreventInsertFromAmount
|
|
112
|
+
? Flag.DONT_INSERT_FROM_AMOUNT_CHECK_SRC_TOKEN_BALANCE_AFTER_SWAP // 8
|
|
113
|
+
: Flag.INSERT_FROM_AMOUNT_CHECK_SRC_TOKEN_BALANCE_AFTER_SWAP; // 11
|
|
93
114
|
}
|
|
94
115
|
|
|
95
116
|
return {
|
|
@@ -251,6 +272,7 @@ export class Executor03BytecodeBuilder extends ExecutorBytecodeBuilder<
|
|
|
251
272
|
exchangeParamIndex,
|
|
252
273
|
flag,
|
|
253
274
|
maybeWethCallData,
|
|
275
|
+
swapExchangeIndex,
|
|
254
276
|
} = params;
|
|
255
277
|
const dontCheckBalanceAfterSwap = flag % 3 === 0;
|
|
256
278
|
const checkDestTokenBalanceAfterSwap = flag % 3 === 2;
|
|
@@ -300,11 +322,11 @@ export class Executor03BytecodeBuilder extends ExecutorBytecodeBuilder<
|
|
|
300
322
|
if (insertAmount) {
|
|
301
323
|
const fromAmount = ethers.utils.defaultAbiCoder.encode(
|
|
302
324
|
['uint256'],
|
|
303
|
-
[swap.swapExchanges[
|
|
325
|
+
[swap.swapExchanges[swapExchangeIndex].srcAmount],
|
|
304
326
|
);
|
|
305
327
|
const toAmount = ethers.utils.defaultAbiCoder.encode(
|
|
306
328
|
['uint256'],
|
|
307
|
-
[swap.swapExchanges[
|
|
329
|
+
[swap.swapExchanges[swapExchangeIndex].destAmount],
|
|
308
330
|
);
|
|
309
331
|
|
|
310
332
|
const fromAmountIndex = exchangeData
|
|
@@ -314,17 +336,10 @@ export class Executor03BytecodeBuilder extends ExecutorBytecodeBuilder<
|
|
|
314
336
|
.replace('0x', '')
|
|
315
337
|
.indexOf(toAmount.replace('0x', ''));
|
|
316
338
|
|
|
317
|
-
|
|
318
|
-
fromAmountIndex !== -1
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
assert(
|
|
322
|
-
toAmountIndex !== -1,
|
|
323
|
-
'Encoding error: could not resolve position of toAmount in exchangeData',
|
|
324
|
-
);
|
|
325
|
-
|
|
326
|
-
fromAmountPos = fromAmountIndex / 2;
|
|
327
|
-
toAmountPos = toAmountIndex / 2;
|
|
339
|
+
fromAmountPos =
|
|
340
|
+
(fromAmountIndex !== -1 ? fromAmountIndex : exchangeData.length) / 2;
|
|
341
|
+
toAmountPos =
|
|
342
|
+
(toAmountIndex !== -1 ? toAmountIndex : exchangeData.length) / 2;
|
|
328
343
|
}
|
|
329
344
|
|
|
330
345
|
return this.buildCallData(
|
|
@@ -377,7 +392,7 @@ export class Executor03BytecodeBuilder extends ExecutorBytecodeBuilder<
|
|
|
377
392
|
acc,
|
|
378
393
|
this.buildSingleSwapCallData({
|
|
379
394
|
priceRoute,
|
|
380
|
-
exchangeParams,
|
|
395
|
+
exchangeParams: orderedExchangeParams.map(e => e.exchangeParam),
|
|
381
396
|
index,
|
|
382
397
|
flags,
|
|
383
398
|
sender,
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
OptimalSwapExchange,
|
|
8
8
|
TxObject,
|
|
9
9
|
} from './types';
|
|
10
|
-
import { BigNumber } from 'ethers';
|
|
10
|
+
import { BigNumber, ethers } from 'ethers';
|
|
11
11
|
import {
|
|
12
12
|
ETHER_ADDRESS,
|
|
13
13
|
FEE_PERCENT_IN_BASIS_POINTS_MASK,
|
|
@@ -18,10 +18,8 @@ import {
|
|
|
18
18
|
IS_TAKE_SURPLUS_MASK,
|
|
19
19
|
IS_USER_SURPLUS_MASK,
|
|
20
20
|
NULL_ADDRESS,
|
|
21
|
-
SwapSide,
|
|
22
21
|
} from './constants';
|
|
23
22
|
import { AbiCoder, Interface } from '@ethersproject/abi';
|
|
24
|
-
import { ethers } from 'ethers';
|
|
25
23
|
import AugustusV6ABI from './abi/augustus-v6/ABI.json';
|
|
26
24
|
import { isETHAddress, uuidToBytes16 } from './utils';
|
|
27
25
|
import {
|
|
@@ -34,7 +32,7 @@ import ERC20ABI from './abi/erc20.json';
|
|
|
34
32
|
import { ExecutorDetector } from './executor/ExecutorDetector';
|
|
35
33
|
import { ExecutorBytecodeBuilder } from './executor/ExecutorBytecodeBuilder';
|
|
36
34
|
import { IDexTxBuilder } from './dex/idex';
|
|
37
|
-
import { ParaSwapVersion } from '@paraswap/core';
|
|
35
|
+
import { ParaSwapVersion, SwapSide } from '@paraswap/core';
|
|
38
36
|
|
|
39
37
|
const {
|
|
40
38
|
utils: { hexlify, hexConcat, hexZeroPad },
|
|
@@ -139,7 +137,7 @@ export class GenericSwapTransactionBuilder {
|
|
|
139
137
|
const dexParams = await dex.getDexParam!(
|
|
140
138
|
srcToken,
|
|
141
139
|
destToken,
|
|
142
|
-
srcAmount,
|
|
140
|
+
side === SwapSide.BUY ? se.srcAmount : srcAmount, // in other case we would not be able to make insert from amount on Ex3
|
|
143
141
|
destAmount,
|
|
144
142
|
recipient,
|
|
145
143
|
se.data,
|