@paraswap/dex-lib 4.7.14-multi-route.4 → 4.7.14-multi-route.6
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/executor/Executor01BytecodeBuilder.js +5 -2
- package/build/executor/Executor01BytecodeBuilder.js.map +1 -1
- package/build/executor/Executor02BytecodeBuilder.d.ts +2 -2
- package/build/executor/Executor02BytecodeBuilder.js +10 -7
- package/build/executor/Executor02BytecodeBuilder.js.map +1 -1
- package/build/executor/Executor02BytecodeBuilderMultiRoute.d.ts +9 -6
- package/build/executor/Executor02BytecodeBuilderMultiRoute.js +78 -68
- package/build/executor/Executor02BytecodeBuilderMultiRoute.js.map +1 -1
- package/build/executor/Executor03BytecodeBuilder.js +5 -2
- package/build/executor/Executor03BytecodeBuilder.js.map +1 -1
- package/build/executor/ExecutorBytecodeBuilder.d.ts +5 -2
- package/build/executor/ExecutorBytecodeBuilder.js +3 -4
- package/build/executor/ExecutorBytecodeBuilder.js.map +1 -1
- package/build/executor/utils.d.ts +2 -0
- package/build/executor/utils.js +10 -0
- package/build/executor/utils.js.map +1 -1
- package/build/generic-swap-transaction-builder.js +1 -1
- package/build/generic-swap-transaction-builder.js.map +1 -1
- package/package.json +1 -1
|
@@ -6,7 +6,11 @@ const types_1 = require("./types");
|
|
|
6
6
|
const utils_1 = require("../utils");
|
|
7
7
|
const ExecutorBytecodeBuilder_1 = require("./ExecutorBytecodeBuilder");
|
|
8
8
|
const constants_1 = require("./constants");
|
|
9
|
+
const utils_2 = require("./utils");
|
|
9
10
|
const { utils: { hexlify, hexDataLength, hexConcat, hexZeroPad, solidityPack }, } = ethers_1.ethers;
|
|
11
|
+
// Disclaimer: Current encoding has a lot of complexity introduced to handle wraps/unwraps inside the route
|
|
12
|
+
// but since RouteAdvisor release, we rely only on wrapped tokens inside the route and handle wraps/unwraps on dex level
|
|
13
|
+
// so in theory we can simplify a lot of this logic in the future releases
|
|
10
14
|
/**
|
|
11
15
|
* Class to build bytecode for Executor02 - simpleSwap with N DEXs (VERTICAL_BRANCH), multiSwaps (VERTICAL_BRANCH_HORIZONTAL_SEQUENCE) and megaswaps (NESTED_VERTICAL_BRANCH_HORIZONTAL_SEQUENCE)
|
|
12
16
|
*/
|
|
@@ -15,7 +19,7 @@ class Executor02BytecodeBuilderMultiRoute extends ExecutorBytecodeBuilder_1.Exec
|
|
|
15
19
|
/**
|
|
16
20
|
* Executor02 Flags:
|
|
17
21
|
* switch (flag % 4):
|
|
18
|
-
* case 0: don't
|
|
22
|
+
* case 0: don't insert fromAmount
|
|
19
23
|
* case 1: sendEth equal to fromAmount
|
|
20
24
|
* case 2: sendEth equal to fromAmount + insert fromAmount
|
|
21
25
|
* case 3: insert fromAmount
|
|
@@ -85,11 +89,11 @@ class Executor02BytecodeBuilderMultiRoute extends ExecutorBytecodeBuilder_1.Exec
|
|
|
85
89
|
* case 2: check destToken balance after swap
|
|
86
90
|
*/
|
|
87
91
|
buildMultiMegaSwapFlags(params) {
|
|
88
|
-
const { singleRoutes, swap, swapExchange, maybeWethCallData, routeIndex, swapIndex, swapExchangeIndex, } = params;
|
|
92
|
+
const { singleRoutes, swap, swapExchange, maybeWethCallData, routeIndex, swapIndex, swapExchangeIndex, priceRouteType, } = params;
|
|
89
93
|
const route = singleRoutes[routeIndex];
|
|
90
94
|
const exchangeParam = swapExchange.build.dexParams;
|
|
91
95
|
const { srcToken, destToken } = swap;
|
|
92
|
-
const applyVerticalBranching = this.doesSwapNeedToBeAsVerticalBranch(
|
|
96
|
+
const applyVerticalBranching = this.doesSwapNeedToBeAsVerticalBranch(priceRouteType, swap);
|
|
93
97
|
const isHorizontalSequence = route.swaps.length > 1; // check if route is a multi-swap (horizontal sequence)
|
|
94
98
|
const isFirstSwap = swapIndex === 0;
|
|
95
99
|
const isLastSwap = !isFirstSwap && swapIndex === route.swaps.length - 1;
|
|
@@ -167,13 +171,12 @@ class Executor02BytecodeBuilderMultiRoute extends ExecutorBytecodeBuilder_1.Exec
|
|
|
167
171
|
};
|
|
168
172
|
}
|
|
169
173
|
buildDexCallData(params) {
|
|
170
|
-
const {
|
|
171
|
-
const swap = singleRoutes[routeIndex].swaps[swapIndex];
|
|
174
|
+
const { swapExchangeIndex, destToken, priceRouteType, swap, rootUnwrapEth, } = params;
|
|
172
175
|
const swapExchange = swap.swapExchanges[swapExchangeIndex];
|
|
173
176
|
const flag = swapExchange.build.dexFlag;
|
|
174
177
|
const exchangeParam = swap.swapExchanges[swapExchangeIndex].build.dexParams;
|
|
175
178
|
let { exchangeData, specialDexFlag, targetExchange, needWrapNative } = exchangeParam;
|
|
176
|
-
const routeNeedsRootUnwrapEth = this.doesRouteNeedsRootUnwrapEth(
|
|
179
|
+
const routeNeedsRootUnwrapEth = this.doesRouteNeedsRootUnwrapEth(destToken, rootUnwrapEth);
|
|
177
180
|
const needUnwrap =
|
|
178
181
|
// check if current exchange is the last with needWrapNative
|
|
179
182
|
this.isLastExchangeWithNeedWrapNative(swap, swapExchangeIndex) ||
|
|
@@ -186,7 +189,7 @@ class Executor02BytecodeBuilderMultiRoute extends ExecutorBytecodeBuilder_1.Exec
|
|
|
186
189
|
!needUnwrapAfterLastSwapInRoute // prevent returnAmoutPos optimisation if route needs root unwrap eth
|
|
187
190
|
? exchangeParam.returnAmountPos
|
|
188
191
|
: constants_1.DEFAULT_RETURN_AMOUNT_POS;
|
|
189
|
-
const applyVerticalBranching = this.doesSwapNeedToBeAsVerticalBranch(
|
|
192
|
+
const applyVerticalBranching = this.doesSwapNeedToBeAsVerticalBranch(priceRouteType, swap);
|
|
190
193
|
const dontCheckBalanceAfterSwap = flag % 3 === 0;
|
|
191
194
|
const checkDestTokenBalanceAfterSwap = flag % 3 === 2;
|
|
192
195
|
const insertFromAmount = flag % 4 === 3 || flag % 4 === 2;
|
|
@@ -299,7 +302,7 @@ class Executor02BytecodeBuilderMultiRoute extends ExecutorBytecodeBuilder_1.Exec
|
|
|
299
302
|
verticalBranchingData, // dexes calldata
|
|
300
303
|
]);
|
|
301
304
|
}
|
|
302
|
-
buildVerticalBranchingCallData(
|
|
305
|
+
buildVerticalBranchingCallData(swap, swapCallData, flag, isRoot = false, singleRoutes = []) {
|
|
303
306
|
const destTokenAddrLowered = swap.destToken.toLowerCase();
|
|
304
307
|
const isEthDest = (0, utils_1.isETHAddress)(destTokenAddrLowered);
|
|
305
308
|
let anyDexOnSwapNeedsWrapNative = false;
|
|
@@ -334,22 +337,24 @@ class Executor02BytecodeBuilderMultiRoute extends ExecutorBytecodeBuilder_1.Exec
|
|
|
334
337
|
const fromAmountPos = hexDataLength(data) - 64 - 28; // 64 (position), 28 (selector padding);
|
|
335
338
|
return this.packVerticalBranchingCallData(data, fromAmountPos, destTokenPos < 0 ? 0 : destTokenPos, flag);
|
|
336
339
|
}
|
|
337
|
-
buildSingleSwapExchangeCallData(
|
|
338
|
-
const isSimpleSwap =
|
|
340
|
+
buildSingleSwapExchangeCallData(swaps, routeIndex, swapIndex, swapExchangeIndex, addedWrapToSwapExchangeMap, allowToAddWrap = true, prevBranchWasWrapped = false, unwrapToSwapMap, srcToken, destToken, priceRouteType, rootUnwrapEth, rootWrapEth, maybeWethCallData) {
|
|
341
|
+
const isSimpleSwap = priceRouteType === 'simple';
|
|
339
342
|
let swapExchangeCallData = '';
|
|
340
|
-
const swap =
|
|
343
|
+
const swap = swaps[swapIndex];
|
|
344
|
+
const hasMultipleSwapExchanges = swap.swapExchanges.length > 1;
|
|
341
345
|
const swapExchange = swap.swapExchanges[swapExchangeIndex];
|
|
342
346
|
const curExchangeParam = swapExchange.build.dexParams;
|
|
343
347
|
const approveFlag = swapExchange.build.approveFlag;
|
|
344
348
|
const dexCallData = this.buildDexCallData({
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
349
|
+
swap,
|
|
350
|
+
priceRouteType,
|
|
351
|
+
rootUnwrapEth,
|
|
348
352
|
swapExchangeIndex,
|
|
349
|
-
isLastSwap: false,
|
|
350
353
|
destToken,
|
|
351
354
|
// TODO-multi to be removed after refactoring
|
|
352
355
|
routes: [],
|
|
356
|
+
routeIndex,
|
|
357
|
+
swapIndex,
|
|
353
358
|
exchangeParams: [],
|
|
354
359
|
exchangeParamIndex: constants_1.NOT_EXISTING_EXCHANGE_PARAM_INDEX,
|
|
355
360
|
flag: types_1.Flag.DONT_INSERT_FROM_AMOUNT_DONT_CHECK_BALANCE_AFTER_SWAP,
|
|
@@ -361,7 +366,7 @@ class Executor02BytecodeBuilderMultiRoute extends ExecutorBytecodeBuilder_1.Exec
|
|
|
361
366
|
else {
|
|
362
367
|
swapExchangeCallData = hexConcat([dexCallData]);
|
|
363
368
|
}
|
|
364
|
-
const isLastSwap = swapIndex ===
|
|
369
|
+
const isLastSwap = swapIndex === swaps.length - 1;
|
|
365
370
|
if (curExchangeParam.transferSrcTokenBeforeSwap) {
|
|
366
371
|
const transferCallData = this.buildTransferCallData(this.erc20Interface.encodeFunctionData('transfer', [
|
|
367
372
|
curExchangeParam.transferSrcTokenBeforeSwap,
|
|
@@ -392,14 +397,14 @@ class Executor02BytecodeBuilderMultiRoute extends ExecutorBytecodeBuilder_1.Exec
|
|
|
392
397
|
const isNotFirstSwap = swapIndex !== 0;
|
|
393
398
|
let skipWrap = false;
|
|
394
399
|
if (isNotFirstSwap) {
|
|
395
|
-
const prevSwap =
|
|
400
|
+
const prevSwap = swaps[swapIndex - 1];
|
|
396
401
|
const anyDexOnSwapDoesntNeedWrapNative = this.anyDexOnSwapDoesntNeedWrapNative(prevSwap);
|
|
397
402
|
skipWrap = !anyDexOnSwapDoesntNeedWrapNative;
|
|
398
403
|
}
|
|
399
404
|
let depositCallData = '0x';
|
|
400
405
|
if (maybeWethCallData &&
|
|
401
406
|
maybeWethCallData.deposit &&
|
|
402
|
-
!this.doesRouteNeedsRootWrapEth(
|
|
407
|
+
!this.doesRouteNeedsRootWrapEth(srcToken, rootWrapEth) &&
|
|
403
408
|
allowToAddWrap &&
|
|
404
409
|
!addedWrapToSwapExchangeMap[`${routeIndex}_${swapIndex}_${swapExchangeIndex}`] &&
|
|
405
410
|
!skipWrap) {
|
|
@@ -412,7 +417,8 @@ class Executor02BytecodeBuilderMultiRoute extends ExecutorBytecodeBuilder_1.Exec
|
|
|
412
417
|
swapExchangeCallData,
|
|
413
418
|
]);
|
|
414
419
|
}
|
|
415
|
-
const needUnwrap =
|
|
420
|
+
const needUnwrap = (priceRouteType === 'multi' || priceRouteType === 'mega') &&
|
|
421
|
+
hasMultipleSwapExchanges;
|
|
416
422
|
// unwrap after last swap
|
|
417
423
|
if (maybeWethCallData &&
|
|
418
424
|
maybeWethCallData.withdraw &&
|
|
@@ -422,10 +428,10 @@ class Executor02BytecodeBuilderMultiRoute extends ExecutorBytecodeBuilder_1.Exec
|
|
|
422
428
|
this.anyDexOnSwapDoesntNeedWrapNative(swap)))) {
|
|
423
429
|
let withdrawCallData = '0x';
|
|
424
430
|
const customWethAddress = curExchangeParam.wethAddress;
|
|
425
|
-
const nextSwap =
|
|
431
|
+
const nextSwap = swaps[swapIndex + 1];
|
|
426
432
|
const needUnwrapAll = isSimpleSwap ||
|
|
427
433
|
(isLastSwap
|
|
428
|
-
? !this.doesRouteNeedsRootUnwrapEth(
|
|
434
|
+
? !this.doesRouteNeedsRootUnwrapEth(destToken, rootUnwrapEth)
|
|
429
435
|
: this.everyDexOnSwapNeedWrapNative(nextSwap) ||
|
|
430
436
|
this.everyDexOnSwapDoesntNeedWrapNative(nextSwap));
|
|
431
437
|
// check if current exchange is the last with needWrapNative
|
|
@@ -454,7 +460,7 @@ class Executor02BytecodeBuilderMultiRoute extends ExecutorBytecodeBuilder_1.Exec
|
|
|
454
460
|
maybeWethCallData.withdraw &&
|
|
455
461
|
!curExchangeParam.needWrapNative &&
|
|
456
462
|
!unwrapToSwapMap[swapIndex - 1]) {
|
|
457
|
-
const prevSwap =
|
|
463
|
+
const prevSwap = swaps[swapIndex - 1];
|
|
458
464
|
let eachDexOnPrevSwapReturnsWeth = false;
|
|
459
465
|
if (prevSwap && !prevBranchWasWrapped) {
|
|
460
466
|
eachDexOnPrevSwapReturnsWeth =
|
|
@@ -486,7 +492,7 @@ class Executor02BytecodeBuilderMultiRoute extends ExecutorBytecodeBuilder_1.Exec
|
|
|
486
492
|
(0, utils_1.isETHAddress)(swap.destToken) &&
|
|
487
493
|
isLastSwap &&
|
|
488
494
|
// don't need to send eth without unwrapping, handling unwrap and sendEth in the end of root branch
|
|
489
|
-
!this.doesRouteNeedsRootUnwrapEth(
|
|
495
|
+
!this.doesRouteNeedsRootUnwrapEth(destToken, rootUnwrapEth)) {
|
|
490
496
|
const finalSpecialFlagCalldata = this.buildFinalSpecialFlagCalldata();
|
|
491
497
|
swapExchangeCallData = hexConcat([
|
|
492
498
|
swapExchangeCallData,
|
|
@@ -548,18 +554,15 @@ class Executor02BytecodeBuilderMultiRoute extends ExecutorBytecodeBuilder_1.Exec
|
|
|
548
554
|
.map(s => s.build.dexParams.needWrapNative)
|
|
549
555
|
.every(t => t === false);
|
|
550
556
|
}
|
|
551
|
-
doesSwapNeedToBeAsVerticalBranch(
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
return (isMultiSwap || isMegaSwap) && swap.swapExchanges.length > 1;
|
|
557
|
+
doesSwapNeedToBeAsVerticalBranch(routeType, swap) {
|
|
558
|
+
return ((routeType === 'multi' || routeType === 'mega') &&
|
|
559
|
+
swap.swapExchanges.length > 1);
|
|
555
560
|
}
|
|
556
|
-
buildVerticalBranchingFlag(
|
|
561
|
+
buildVerticalBranchingFlag(swap, destToken, isLastSwap) {
|
|
557
562
|
let flag = types_1.Flag.INSERT_FROM_AMOUNT_CHECK_SRC_TOKEN_BALANCE_AFTER_SWAP; // 11
|
|
558
|
-
const isLastSwap = swapIndex === singleRoutes[routeIndex].swaps.length - 1;
|
|
559
563
|
if (isLastSwap) {
|
|
560
564
|
const isEthDest = (0, utils_1.isETHAddress)(destToken);
|
|
561
|
-
const
|
|
562
|
-
const lastSwapExchanges = lastSwap.swapExchanges;
|
|
565
|
+
const lastSwapExchanges = swap.swapExchanges;
|
|
563
566
|
const anyDexLastSwapNeedUnwrap = lastSwapExchanges
|
|
564
567
|
.map(se => se.build.dexParams.needWrapNative &&
|
|
565
568
|
!se.build.dexParams.wethAddress)
|
|
@@ -580,12 +583,10 @@ class Executor02BytecodeBuilderMultiRoute extends ExecutorBytecodeBuilder_1.Exec
|
|
|
580
583
|
return flag;
|
|
581
584
|
}
|
|
582
585
|
buildSingleSwapCallData(params) {
|
|
583
|
-
const { routeIndex, swapIndex, maybeWethCallData, wrapToSwapMap, unwrapToSwapMap, wrapToSwapExchangeMap, swap, srcToken, destToken,
|
|
584
|
-
const isLastSwap = swapIndex === singleRoutes[routeIndex].swaps.length - 1;
|
|
585
|
-
const isMegaSwap = singleRoutes.length > 1;
|
|
586
|
-
const isMultiSwap = !isMegaSwap && singleRoutes[routeIndex].swaps.length > 1;
|
|
586
|
+
const { routeIndex, swapIndex, maybeWethCallData, wrapToSwapMap, unwrapToSwapMap, wrapToSwapExchangeMap, swap, srcToken, destToken, priceRouteType, rootUnwrapEth, rootWrapEth, swaps, } = params;
|
|
587
587
|
const { swapExchanges } = swap;
|
|
588
|
-
const
|
|
588
|
+
const isLastSwap = swaps.length - 1 === swapIndex;
|
|
589
|
+
const applyVerticalBranching = this.doesSwapNeedToBeAsVerticalBranch(priceRouteType, swap);
|
|
589
590
|
const anyDexOnSwapDoesntNeedWrapNative = this.anyDexOnSwapDoesntNeedWrapNative(swap);
|
|
590
591
|
const needToAppendWrapCallData = (0, utils_1.isETHAddress)(swap.destToken) &&
|
|
591
592
|
anyDexOnSwapDoesntNeedWrapNative &&
|
|
@@ -594,19 +595,19 @@ class Executor02BytecodeBuilderMultiRoute extends ExecutorBytecodeBuilder_1.Exec
|
|
|
594
595
|
let swapCallData = swapExchanges.reduce((acc, _swapExchange, swapExchangeIndex) => {
|
|
595
596
|
return hexConcat([
|
|
596
597
|
acc,
|
|
597
|
-
this.buildSingleSwapExchangeCallData(
|
|
598
|
+
this.buildSingleSwapExchangeCallData(swaps, routeIndex, swapIndex, swapExchangeIndex, wrapToSwapExchangeMap, !wrapToSwapMap[swapIndex - 1], wrapToSwapMap[swapIndex - 1], unwrapToSwapMap, srcToken, destToken, priceRouteType, rootUnwrapEth, rootWrapEth, maybeWethCallData),
|
|
598
599
|
]);
|
|
599
600
|
}, '0x');
|
|
600
601
|
if (needToAppendWrapCallData) {
|
|
601
602
|
wrapToSwapMap[swapIndex] = true;
|
|
602
603
|
}
|
|
603
|
-
if (
|
|
604
|
+
if (priceRouteType === 'simple') {
|
|
604
605
|
return needToAppendWrapCallData
|
|
605
606
|
? this.appendWrapEthCallData(swapCallData, maybeWethCallData)
|
|
606
607
|
: swapCallData;
|
|
607
608
|
}
|
|
608
609
|
if (applyVerticalBranching) {
|
|
609
|
-
const vertBranchingCallData = this.buildVerticalBranchingCallData(
|
|
610
|
+
const vertBranchingCallData = this.buildVerticalBranchingCallData(swap, swapCallData, this.buildVerticalBranchingFlag(swap, destToken, isLastSwap));
|
|
610
611
|
return needToAppendWrapCallData
|
|
611
612
|
? this.appendWrapEthCallData(vertBranchingCallData, maybeWethCallData, true)
|
|
612
613
|
: vertBranchingCallData;
|
|
@@ -615,8 +616,7 @@ class Executor02BytecodeBuilderMultiRoute extends ExecutorBytecodeBuilder_1.Exec
|
|
|
615
616
|
? this.appendWrapEthCallData(swapCallData, maybeWethCallData)
|
|
616
617
|
: swapCallData;
|
|
617
618
|
}
|
|
618
|
-
buildSingleRouteCallData(
|
|
619
|
-
const isMegaSwap = singleRoutes.length > 1;
|
|
619
|
+
buildSingleRouteCallData(route, routeIndex, flags, sender, srcToken, destToken, priceRouteType, rootUnwrapEth, rootWrapEth, maybeWethCallData) {
|
|
620
620
|
const { swaps } = route;
|
|
621
621
|
const appendedWrapToSwapExchangeMap = {};
|
|
622
622
|
const addedWrapToSwapMap = {};
|
|
@@ -624,7 +624,10 @@ class Executor02BytecodeBuilderMultiRoute extends ExecutorBytecodeBuilder_1.Exec
|
|
|
624
624
|
const callData = swaps.reduce((swapAcc, swap, swapIndex) => hexConcat([
|
|
625
625
|
swapAcc,
|
|
626
626
|
this.buildSingleSwapCallData({
|
|
627
|
-
|
|
627
|
+
swaps,
|
|
628
|
+
priceRouteType,
|
|
629
|
+
rootUnwrapEth,
|
|
630
|
+
rootWrapEth,
|
|
628
631
|
routeIndex,
|
|
629
632
|
swapIndex,
|
|
630
633
|
flags,
|
|
@@ -642,28 +645,26 @@ class Executor02BytecodeBuilderMultiRoute extends ExecutorBytecodeBuilder_1.Exec
|
|
|
642
645
|
exchangeParams: [],
|
|
643
646
|
}),
|
|
644
647
|
]), '0x');
|
|
645
|
-
if (
|
|
648
|
+
if (priceRouteType === 'mega') {
|
|
646
649
|
return this.wrapAsVerticalBranch(callData, route.percent, route.swaps[0], Object.values(addedWrapToSwapMap).includes(true) ||
|
|
647
650
|
Object.values(appendedWrapToSwapExchangeMap).includes(true), null);
|
|
648
651
|
}
|
|
649
652
|
return callData;
|
|
650
653
|
}
|
|
651
|
-
doesRouteNeedsRootWrapEth(
|
|
654
|
+
doesRouteNeedsRootWrapEth(srcToken, rootWrapEth) {
|
|
652
655
|
if (!(0, utils_1.isETHAddress)(srcToken)) {
|
|
653
656
|
return false;
|
|
654
657
|
}
|
|
655
|
-
return
|
|
658
|
+
return rootWrapEth;
|
|
656
659
|
}
|
|
657
|
-
|
|
660
|
+
// (check disclaimer above)
|
|
661
|
+
// this method is still used to prevent changes on the legacy encoding with wrap/unwrap
|
|
662
|
+
// imho, this method has incorrect naming and overall misleading logic
|
|
663
|
+
doesRouteNeedsRootUnwrapEth(destToken, rootUnwrapEth) {
|
|
658
664
|
if (!(0, utils_1.isETHAddress)(destToken)) {
|
|
659
665
|
return false;
|
|
660
666
|
}
|
|
661
|
-
|
|
662
|
-
const lastSwap = route.swaps[route.swaps.length - 1];
|
|
663
|
-
const anyDexOnSwapNeedsWrapNative = this.anyDexOnSwapNeedsWrapNative(lastSwap);
|
|
664
|
-
return anyDexOnSwapNeedsWrapNative;
|
|
665
|
-
});
|
|
666
|
-
return res;
|
|
667
|
+
return rootUnwrapEth;
|
|
667
668
|
}
|
|
668
669
|
getAddress() {
|
|
669
670
|
return this.dexHelper.config.data.executorsAddresses[types_1.Executors.TWO];
|
|
@@ -671,31 +672,39 @@ class Executor02BytecodeBuilderMultiRoute extends ExecutorBytecodeBuilder_1.Exec
|
|
|
671
672
|
buildByteCode(priceRoute, routes, exchangeParams, sender, maybeWethCallData) {
|
|
672
673
|
// TODO-multi: temporary to handle all cases for single-route after refactoring
|
|
673
674
|
const _routes = routes.filter(r => r.type === 'single-route');
|
|
674
|
-
const isMegaSwap = priceRoute.bestRoute.length > 1;
|
|
675
|
-
const isMultiSwap = !isMegaSwap && priceRoute.bestRoute[0].swaps.length > 1;
|
|
676
675
|
const needWrapEth = maybeWethCallData?.deposit && (0, utils_1.isETHAddress)(priceRoute.srcToken);
|
|
677
676
|
const needUnwrapEth = maybeWethCallData?.withdraw && (0, utils_1.isETHAddress)(priceRoute.destToken);
|
|
678
677
|
const needSendNativeEth = (0, utils_1.isETHAddress)(priceRoute.destToken);
|
|
679
|
-
const
|
|
680
|
-
|
|
681
|
-
|
|
678
|
+
const rootWrapEth = !(0, utils_1.isETHAddress)(priceRoute.srcToken)
|
|
679
|
+
? false
|
|
680
|
+
: _routes.every(route => this.eachDexOnSwapNeedsWrapNative(route.swaps[0]));
|
|
681
|
+
const rootUnwrapEth = !(0, utils_1.isETHAddress)(priceRoute.destToken)
|
|
682
|
+
? false
|
|
683
|
+
: _routes.some(route => {
|
|
684
|
+
const lastSwap = route.swaps[route.swaps.length - 1];
|
|
685
|
+
const anyDexOnSwapNeedsWrapNative = this.anyDexOnSwapNeedsWrapNative(lastSwap);
|
|
686
|
+
return anyDexOnSwapNeedsWrapNative;
|
|
687
|
+
});
|
|
688
|
+
const priceRouteType = (0, utils_2.getPriceRouteType)(priceRoute);
|
|
689
|
+
const flags = this.buildFlags(priceRoute.bestRoute, _routes, exchangeParams, priceRoute.srcToken, priceRouteType, maybeWethCallData);
|
|
682
690
|
let swapsCalldata = _routes.reduce((routeAcc, route, routeIndex) => hexConcat([
|
|
683
691
|
routeAcc,
|
|
684
|
-
this.buildSingleRouteCallData(
|
|
692
|
+
this.buildSingleRouteCallData(route, routeIndex, flags, sender, priceRoute.srcToken, priceRoute.destToken, priceRouteType, rootUnwrapEth, rootWrapEth, maybeWethCallData),
|
|
685
693
|
]), '0x');
|
|
686
694
|
// hack to do wrap/unwrap before the priceRoute execution
|
|
687
695
|
// first make wrap/unwrap, then execute mega swap as vertical branch
|
|
688
|
-
if (
|
|
696
|
+
if (priceRouteType === 'mega' && (needWrapEth || needUnwrapEth)) {
|
|
689
697
|
const lastRoute = _routes[_routes.length - 1];
|
|
690
|
-
swapsCalldata = this.buildVerticalBranchingCallData(
|
|
698
|
+
swapsCalldata = this.buildVerticalBranchingCallData(lastRoute.swaps[lastRoute.swaps.length - 1], swapsCalldata, needWrapEth
|
|
691
699
|
? types_1.Flag.DONT_INSERT_FROM_AMOUNT_DONT_CHECK_BALANCE_AFTER_SWAP // 0
|
|
692
700
|
: types_1.Flag.DONT_INSERT_FROM_AMOUNT_CHECK_SRC_TOKEN_BALANCE_AFTER_SWAP, // 8
|
|
693
|
-
true
|
|
701
|
+
true, // isRoot branch
|
|
702
|
+
_routes);
|
|
694
703
|
}
|
|
695
704
|
// ETH wrap
|
|
696
|
-
if (needWrapEth &&
|
|
705
|
+
if (needWrapEth && rootWrapEth) {
|
|
697
706
|
let depositCallData = this.buildWrapEthCallData(this.dexHelper.config.data.wrappedNativeTokenAddress, maybeWethCallData.deposit.calldata, types_1.Flag.SEND_ETH_EQUAL_TO_FROM_AMOUNT_DONT_CHECK_BALANCE_AFTER_SWAP);
|
|
698
|
-
if (
|
|
707
|
+
if (priceRouteType === 'simple') {
|
|
699
708
|
const swap = priceRoute.bestRoute[0].swaps[0];
|
|
700
709
|
const percent = exchangeParams.every(ep => ep.needWrapNative)
|
|
701
710
|
? 100
|
|
@@ -717,19 +726,20 @@ class Executor02BytecodeBuilderMultiRoute extends ExecutorBytecodeBuilder_1.Exec
|
|
|
717
726
|
}
|
|
718
727
|
// ETH unwrap, only for multiswaps and mega swaps
|
|
719
728
|
if (needUnwrapEth &&
|
|
720
|
-
|
|
721
|
-
(
|
|
729
|
+
rootUnwrapEth &&
|
|
730
|
+
(priceRouteType === 'multi' || priceRouteType === 'mega')) {
|
|
722
731
|
const withdrawCallData = this.buildUnwrapEthCallData(this.dexHelper.config.data.wrappedNativeTokenAddress, maybeWethCallData.withdraw.calldata);
|
|
723
732
|
swapsCalldata = hexConcat([swapsCalldata, withdrawCallData]);
|
|
724
733
|
}
|
|
725
734
|
// Special flag (send native) calldata, only for multiswaps and mega swaps
|
|
726
735
|
if (needSendNativeEth &&
|
|
727
|
-
|
|
728
|
-
(
|
|
736
|
+
rootUnwrapEth &&
|
|
737
|
+
(priceRouteType === 'multi' || priceRouteType === 'mega')) {
|
|
729
738
|
const finalSpecialFlagCalldata = this.buildFinalSpecialFlagCalldata();
|
|
730
739
|
swapsCalldata = hexConcat([swapsCalldata, finalSpecialFlagCalldata]);
|
|
731
740
|
}
|
|
732
|
-
if (((needWrapEth || needUnwrapEth) &&
|
|
741
|
+
if (((needWrapEth || needUnwrapEth) && priceRouteType === 'mega') ||
|
|
742
|
+
priceRouteType === 'multi') {
|
|
733
743
|
swapsCalldata = this.wrapAsVerticalBranch(swapsCalldata, constants_1.SWAP_EXCHANGE_100_PERCENTAGE, _routes[0].swaps[0], false, null);
|
|
734
744
|
}
|
|
735
745
|
return solidityPack(['bytes32', 'bytes', 'bytes'], [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Executor02BytecodeBuilderMultiRoute.js","sourceRoot":"","sources":["../../src/executor/Executor02BytecodeBuilderMultiRoute.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Executor02BytecodeBuilderMultiRoute.js","sourceRoot":"","sources":["../../src/executor/Executor02BytecodeBuilderMultiRoute.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ const utils_1 = require("../utils");
|
|
|
6
6
|
const types_1 = require("./types");
|
|
7
7
|
const constants_1 = require("./constants");
|
|
8
8
|
const ExecutorBytecodeBuilder_1 = require("./ExecutorBytecodeBuilder");
|
|
9
|
+
const utils_2 = require("./utils");
|
|
9
10
|
const { utils: { hexlify, hexDataLength, hexConcat, hexZeroPad, solidityPack }, } = ethers_1.ethers;
|
|
10
11
|
/**
|
|
11
12
|
* Class to build bytecode for Executor03 - simpleSwap (SINGLE_STEP) with 100% on a path and multiSwap with 100% amounts on each path (HORIZONTAL_SEQUENCE)
|
|
@@ -87,13 +88,13 @@ class Executor03BytecodeBuilder extends ExecutorBytecodeBuilder_1.ExecutorByteco
|
|
|
87
88
|
let swapCallData = '';
|
|
88
89
|
const curExchangeParam = exchangeParams[index];
|
|
89
90
|
const dexCallData = this.buildDexCallData({
|
|
91
|
+
priceRouteType: params.priceRouteType,
|
|
90
92
|
routes,
|
|
91
93
|
routeIndex: 0,
|
|
92
94
|
swapIndex: 0,
|
|
93
95
|
swapExchangeIndex,
|
|
94
96
|
exchangeParams,
|
|
95
97
|
exchangeParamIndex: index,
|
|
96
|
-
isLastSwap: true,
|
|
97
98
|
flag: flags.dexes[index],
|
|
98
99
|
maybeWethCallData,
|
|
99
100
|
});
|
|
@@ -248,10 +249,12 @@ class Executor03BytecodeBuilder extends ExecutorBytecodeBuilder_1.ExecutorByteco
|
|
|
248
249
|
...swap,
|
|
249
250
|
swapExchanges: orderedExchangeParams.map(e => e.swapExchange.swapExchange),
|
|
250
251
|
};
|
|
251
|
-
const
|
|
252
|
+
const priceRouteType = (0, utils_2.getPriceRouteType)(priceRoute);
|
|
253
|
+
const flags = this.buildFlags(priceRoute.bestRoute, _routes, orderedExchangeParams.map(e => e.exchangeParam), priceRoute.srcToken, priceRouteType, maybeWethCallData);
|
|
252
254
|
let swapsCalldata = orderedExchangeParams.reduce((acc, ep, index) => hexConcat([
|
|
253
255
|
acc,
|
|
254
256
|
this.buildSingleSwapCallData({
|
|
257
|
+
priceRouteType,
|
|
255
258
|
routes: priceRoute.bestRoute,
|
|
256
259
|
exchangeParams: orderedExchangeParams.map(e => e.exchangeParam),
|
|
257
260
|
swapExchangeIndex: ep.swapExchange.swapExchangeIndex,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Executor03BytecodeBuilder.js","sourceRoot":"","sources":["../../src/executor/Executor03BytecodeBuilder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Executor03BytecodeBuilder.js","sourceRoot":"","sources":["../../src/executor/Executor03BytecodeBuilder.ts"],"names":[],"mappings":"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"}
|