@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.
@@ -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 instert fromAmount
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(singleRoutes, routeIndex, swap);
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 { singleRoutes, swapExchangeIndex, routeIndex, swapIndex, destToken, } = params;
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(singleRoutes, destToken);
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(singleRoutes, routeIndex, swap);
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(singleRoutes, swap, swapCallData, flag, isRoot = false) {
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(singleRoutes, routeIndex, swapIndex, swapExchangeIndex, addedWrapToSwapExchangeMap, allowToAddWrap = true, prevBranchWasWrapped = false, unwrapToSwapMap, srcToken, destToken, maybeWethCallData, hasMultipleSwapExchanges, isMultiOrMegaSwap) {
338
- const isSimpleSwap = singleRoutes.length === 1 && singleRoutes[0].swaps.length === 1;
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 = singleRoutes[routeIndex].swaps[swapIndex];
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
- singleRoutes,
346
- routeIndex,
347
- swapIndex,
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 === singleRoutes[routeIndex].swaps.length - 1;
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 = singleRoutes[routeIndex].swaps[swapIndex - 1];
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(singleRoutes, srcToken) &&
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 = isMultiOrMegaSwap && hasMultipleSwapExchanges;
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 = singleRoutes[routeIndex].swaps[swapIndex + 1];
431
+ const nextSwap = swaps[swapIndex + 1];
426
432
  const needUnwrapAll = isSimpleSwap ||
427
433
  (isLastSwap
428
- ? !this.doesRouteNeedsRootUnwrapEth(singleRoutes, destToken)
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 = singleRoutes[routeIndex].swaps[swapIndex - 1];
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(singleRoutes, destToken)) {
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(singleRoutes, routeIndex, swap) {
552
- const isMegaSwap = singleRoutes.length > 1;
553
- const isMultiSwap = !isMegaSwap && singleRoutes[routeIndex].swaps.length > 1;
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(singleRoutes, swap, routeIndex, swapIndex, destToken) {
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 lastSwap = singleRoutes[routeIndex].swaps[singleRoutes[routeIndex].swaps.length - 1];
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, singleRoutes, } = params;
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 applyVerticalBranching = this.doesSwapNeedToBeAsVerticalBranch(singleRoutes, routeIndex, swap);
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(singleRoutes, routeIndex, swapIndex, swapExchangeIndex, wrapToSwapExchangeMap, !wrapToSwapMap[swapIndex - 1], wrapToSwapMap[swapIndex - 1], unwrapToSwapMap, srcToken, destToken, maybeWethCallData, swap.swapExchanges.length > 1, isMultiSwap || isMegaSwap),
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 (!isMultiSwap && !isMegaSwap) {
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(singleRoutes, swap, swapCallData, this.buildVerticalBranchingFlag(singleRoutes, swap, routeIndex, swapIndex, destToken));
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(singleRoutes, route, routeIndex, flags, sender, srcToken, destToken, maybeWethCallData) {
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
- singleRoutes,
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 (isMegaSwap) {
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(singleRoutes, srcToken) {
654
+ doesRouteNeedsRootWrapEth(srcToken, rootWrapEth) {
652
655
  if (!(0, utils_1.isETHAddress)(srcToken)) {
653
656
  return false;
654
657
  }
655
- return singleRoutes.every(route => this.eachDexOnSwapNeedsWrapNative(route.swaps[0]));
658
+ return rootWrapEth;
656
659
  }
657
- doesRouteNeedsRootUnwrapEth(singleRoutes, destToken) {
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
- const res = singleRoutes.some(route => {
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 routeNeedsRootWrapEth = this.doesRouteNeedsRootWrapEth(_routes, priceRoute.srcToken);
680
- const routeNeedsRootUnwrapEth = this.doesRouteNeedsRootUnwrapEth(_routes, priceRoute.destToken);
681
- const flags = this.buildFlags(priceRoute.bestRoute, _routes, exchangeParams, priceRoute.srcToken, maybeWethCallData);
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(_routes, route, routeIndex, flags, sender, priceRoute.srcToken, priceRoute.destToken, maybeWethCallData),
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 (isMegaSwap && (needWrapEth || needUnwrapEth)) {
696
+ if (priceRouteType === 'mega' && (needWrapEth || needUnwrapEth)) {
689
697
  const lastRoute = _routes[_routes.length - 1];
690
- swapsCalldata = this.buildVerticalBranchingCallData(_routes, lastRoute.swaps[lastRoute.swaps.length - 1], swapsCalldata, needWrapEth
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 && routeNeedsRootWrapEth) {
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 (!(isMegaSwap || isMultiSwap)) {
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
- routeNeedsRootUnwrapEth &&
721
- (isMultiSwap || isMegaSwap)) {
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
- routeNeedsRootUnwrapEth &&
728
- (isMultiSwap || isMegaSwap)) {
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) && isMegaSwap) || isMultiSwap) {
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 flags = this.buildFlags(priceRoute.bestRoute, _routes, orderedExchangeParams.map(e => e.exchangeParam), priceRoute.srcToken, maybeWethCallData);
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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"}