@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.
Files changed (174) hide show
  1. package/.vscode/launch.json +53 -0
  2. package/.vscode/settings.json +2 -0
  3. package/.vscode/tasks.json +15 -0
  4. package/build/abi/maverick-v2/MaverickV2Router.json +778 -0
  5. package/build/abi/uniswap-v3/AlienBaseV3Router.abi.json +52 -0
  6. package/build/abi/{fx-protocol/FxUSD.json → wombat/pool.json} +604 -542
  7. package/build/dex/aave-v1/aave-v1.js +1 -0
  8. package/build/dex/aave-v1/aave-v1.js.map +1 -1
  9. package/build/dex/aave-v2/tokens-avalanche.json +44 -0
  10. package/build/dex/aave-v2/tokens-mainnet.json +188 -0
  11. package/build/dex/aave-v2/tokens-polygon.json +44 -0
  12. package/build/dex/bProtocol.d.ts +18 -0
  13. package/build/dex/bProtocol.js +39 -0
  14. package/build/dex/bProtocol.js.map +1 -0
  15. package/build/dex/bancor.d.ts +26 -0
  16. package/build/dex/bancor.js +58 -0
  17. package/build/dex/bancor.js.map +1 -0
  18. package/build/dex/compound.d.ts +18 -0
  19. package/build/dex/compound.js +46 -0
  20. package/build/dex/compound.js.map +1 -0
  21. package/build/dex/curve-v2.d.ts +58 -0
  22. package/build/dex/curve-v2.js +180 -0
  23. package/build/dex/curve-v2.js.map +1 -0
  24. package/build/dex/dodo-v1.d.ts +33 -0
  25. package/build/dex/dodo-v1.js +63 -0
  26. package/build/dex/dodo-v1.js.map +1 -0
  27. package/build/dex/lido.d.ts +19 -0
  28. package/build/dex/lido.js +42 -0
  29. package/build/dex/lido.js.map +1 -0
  30. package/build/dex/maker-psm/scripts/gem.abi.json +136 -0
  31. package/build/dex/maker-psm/scripts/validate-state.d.ts +0 -0
  32. package/build/dex/maker-psm/scripts/validate-state.js +185 -0
  33. package/build/dex/maker-psm/scripts/validate-state.js.map +1 -0
  34. package/build/dex/maker-psm/scripts/vat.abi.json +243 -0
  35. package/build/dex/onebit.d.ts +25 -0
  36. package/build/dex/onebit.js +42 -0
  37. package/build/dex/onebit.js.map +1 -0
  38. package/build/dex/platypus/platypus.js +17 -3
  39. package/build/dex/platypus/platypus.js.map +1 -1
  40. package/build/dex/smoothy.d.ts +26 -0
  41. package/build/dex/smoothy.js +48 -0
  42. package/build/dex/smoothy.js.map +1 -0
  43. package/build/dex/solidly-v3/scripts/check-event-pool-event.d.ts +1 -0
  44. package/build/dex/solidly-v3/scripts/check-event-pool-event.js +53 -0
  45. package/build/dex/solidly-v3/scripts/check-event-pool-event.js.map +1 -0
  46. package/build/dex/stable-pool.d.ts +28 -0
  47. package/build/dex/stable-pool.js +55 -0
  48. package/build/dex/stable-pool.js.map +1 -0
  49. package/build/dex/swaap-v1/swaap-v1.js +4 -0
  50. package/build/dex/swaap-v1/swaap-v1.js.map +1 -1
  51. package/build/dex/trader-joe-v2.1/base.d.ts +18 -0
  52. package/build/dex/trader-joe-v2.1/base.js +99 -0
  53. package/build/dex/trader-joe-v2.1/base.js.map +1 -0
  54. package/build/dex/trader-joe-v2.1/trader-joe-v2.1-new.d.ts +7 -0
  55. package/build/dex/trader-joe-v2.1/trader-joe-v2.1-new.js +20 -0
  56. package/build/dex/trader-joe-v2.1/trader-joe-v2.1-new.js.map +1 -0
  57. package/build/dex/trader-joe-v2.1/trader-joe-v2.2.d.ts +7 -0
  58. package/build/dex/trader-joe-v2.1/trader-joe-v2.2.js +20 -0
  59. package/build/dex/trader-joe-v2.1/trader-joe-v2.2.js.map +1 -0
  60. package/build/dex/trader-joe-v2.1.d.ts +43 -0
  61. package/build/dex/trader-joe-v2.1.js +79 -0
  62. package/build/dex/trader-joe-v2.1.js.map +1 -0
  63. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.d.ts +17 -0
  64. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.js +64 -0
  65. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.js.map +1 -0
  66. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.d.ts +17 -0
  67. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js +79 -0
  68. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js.map +1 -0
  69. package/build/executor/Executor01BytecodeBuilder.js +4 -5
  70. package/build/executor/Executor01BytecodeBuilder.js.map +1 -1
  71. package/build/executor/Executor02BytecodeBuilder.js +2 -3
  72. package/build/executor/Executor02BytecodeBuilder.js.map +1 -1
  73. package/build/executor/Executor03BytecodeBuilder.js +24 -14
  74. package/build/executor/Executor03BytecodeBuilder.js.map +1 -1
  75. package/build/generic-swap-transaction-builder.d.ts +1 -1
  76. package/build/generic-swap-transaction-builder.js +10 -10
  77. package/build/generic-swap-transaction-builder.js.map +1 -1
  78. package/config.ts +1946 -0
  79. package/package.json +1 -1
  80. package/src/dex/dexs.txt +58 -0
  81. package/src/executor/Executor01BytecodeBuilder.ts +4 -8
  82. package/src/executor/Executor02BytecodeBuilder.ts +2 -7
  83. package/src/executor/Executor03BytecodeBuilder.ts +34 -19
  84. package/src/generic-swap-transaction-builder.ts +3 -5
  85. package/build/abi/concentrator/arUSD.json +0 -568
  86. package/build/abi/inception/inception-ineth-pool.json +0 -1062
  87. package/build/abi/inception/inception-ineth.json +0 -609
  88. package/build/abi/inception/inception-ratio-feed.json +0 -93
  89. package/build/abi/inception/inception-vault.json +0 -991
  90. package/build/abi/infusion/InfusionFactory.json +0 -147
  91. package/build/abi/infusion/InfusionPair.json +0 -658
  92. package/build/abi/infusion/InfusionRouter.json +0 -442
  93. package/build/abi/oswap/oswap.abi.json +0 -452
  94. package/build/dex/concentrator-arusd/concentrator-arusd.d.ts +0 -38
  95. package/build/dex/concentrator-arusd/concentrator-arusd.js +0 -184
  96. package/build/dex/concentrator-arusd/concentrator-arusd.js.map +0 -1
  97. package/build/dex/concentrator-arusd/config.d.ts +0 -4
  98. package/build/dex/concentrator-arusd/config.js +0 -18
  99. package/build/dex/concentrator-arusd/config.js.map +0 -1
  100. package/build/dex/concentrator-arusd/types.d.ts +0 -10
  101. package/build/dex/concentrator-arusd/types.js +0 -3
  102. package/build/dex/concentrator-arusd/types.js.map +0 -1
  103. package/build/dex/fx-protocol-rusd/config.d.ts +0 -4
  104. package/build/dex/fx-protocol-rusd/config.js +0 -18
  105. package/build/dex/fx-protocol-rusd/config.js.map +0 -1
  106. package/build/dex/fx-protocol-rusd/fx-protocol-rusd.d.ts +0 -39
  107. package/build/dex/fx-protocol-rusd/fx-protocol-rusd.js +0 -196
  108. package/build/dex/fx-protocol-rusd/fx-protocol-rusd.js.map +0 -1
  109. package/build/dex/fx-protocol-rusd/types.d.ts +0 -10
  110. package/build/dex/fx-protocol-rusd/types.js +0 -3
  111. package/build/dex/fx-protocol-rusd/types.js.map +0 -1
  112. package/build/dex/idle-dao/idle-dao-pool.d.ts +0 -56
  113. package/build/dex/idle-dao/idle-dao-pool.js +0 -176
  114. package/build/dex/idle-dao/idle-dao-pool.js.map +0 -1
  115. package/build/dex/idle-dao/idle-dao-pooling-pool.d.ts +0 -16
  116. package/build/dex/idle-dao/idle-dao-pooling-pool.js +0 -57
  117. package/build/dex/idle-dao/idle-dao-pooling-pool.js.map +0 -1
  118. package/build/dex/idle-dao/scripts.d.ts +0 -9
  119. package/build/dex/idle-dao/scripts.js +0 -552
  120. package/build/dex/idle-dao/scripts.js.map +0 -1
  121. package/build/dex/inception/config.d.ts +0 -5
  122. package/build/dex/inception/config.js +0 -112
  123. package/build/dex/inception/config.js.map +0 -1
  124. package/build/dex/inception/inception-event-pool.d.ts +0 -23
  125. package/build/dex/inception/inception-event-pool.js +0 -34
  126. package/build/dex/inception/inception-event-pool.js.map +0 -1
  127. package/build/dex/inception/inception-native.d.ts +0 -43
  128. package/build/dex/inception/inception-native.js +0 -131
  129. package/build/dex/inception/inception-native.js.map +0 -1
  130. package/build/dex/inception/inception-pool.d.ts +0 -18
  131. package/build/dex/inception/inception-pool.js +0 -32
  132. package/build/dex/inception/inception-pool.js.map +0 -1
  133. package/build/dex/inception/inception-price-feed.d.ts +0 -19
  134. package/build/dex/inception/inception-price-feed.js +0 -51
  135. package/build/dex/inception/inception-price-feed.js.map +0 -1
  136. package/build/dex/inception/inception.d.ts +0 -44
  137. package/build/dex/inception/inception.js +0 -162
  138. package/build/dex/inception/inception.js.map +0 -1
  139. package/build/dex/inception/tokens.d.ts +0 -9
  140. package/build/dex/inception/tokens.js +0 -28
  141. package/build/dex/inception/tokens.js.map +0 -1
  142. package/build/dex/inception/types.d.ts +0 -22
  143. package/build/dex/inception/types.js +0 -3
  144. package/build/dex/inception/types.js.map +0 -1
  145. package/build/dex/inception/utils.d.ts +0 -7
  146. package/build/dex/inception/utils.js +0 -58
  147. package/build/dex/inception/utils.js.map +0 -1
  148. package/build/dex/infusion/config.d.ts +0 -4
  149. package/build/dex/infusion/config.js +0 -25
  150. package/build/dex/infusion/config.js.map +0 -1
  151. package/build/dex/infusion/infusion-stable-pool.d.ts +0 -4
  152. package/build/dex/infusion/infusion-stable-pool.js +0 -74
  153. package/build/dex/infusion/infusion-stable-pool.js.map +0 -1
  154. package/build/dex/infusion/infusion.d.ts +0 -54
  155. package/build/dex/infusion/infusion.js +0 -532
  156. package/build/dex/infusion/infusion.js.map +0 -1
  157. package/build/dex/infusion/types.d.ts +0 -47
  158. package/build/dex/infusion/types.js +0 -3
  159. package/build/dex/infusion/types.js.map +0 -1
  160. package/build/dex/infusion/utils/isStablePair.d.ts +0 -2
  161. package/build/dex/infusion/utils/isStablePair.js +0 -18
  162. package/build/dex/infusion/utils/isStablePair.js.map +0 -1
  163. package/build/dex/oswap/config.d.ts +0 -5
  164. package/build/dex/oswap/config.js +0 -31
  165. package/build/dex/oswap/config.js.map +0 -1
  166. package/build/dex/oswap/oswap-pool.d.ts +0 -51
  167. package/build/dex/oswap/oswap-pool.js +0 -150
  168. package/build/dex/oswap/oswap-pool.js.map +0 -1
  169. package/build/dex/oswap/oswap.d.ts +0 -46
  170. package/build/dex/oswap/oswap.js +0 -263
  171. package/build/dex/oswap/oswap.js.map +0 -1
  172. package/build/dex/oswap/types.d.ts +0 -20
  173. package/build/dex/oswap/types.js +0 -3
  174. package/build/dex/oswap/types.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paraswap/dex-lib",
3
- "version": "3.8.13",
3
+ "version": "3.8.14",
4
4
  "main": "build/index.js",
5
5
  "types": "build/index.d.ts",
6
6
  "repository": "https://github.com/paraswap/paraswap-dex-lib",
@@ -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[0].srcAmount],
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
- assert(
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
- assert(
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 { dexFuncHasRecipient, needWrapNative } = exchangeParam;
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 = Flag.DONT_INSERT_FROM_AMOUNT_DONT_CHECK_BALANCE_AFTER_SWAP; // 0
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 = Flag.DONT_INSERT_FROM_AMOUNT_CHECK_ETH_BALANCE_AFTER_SWAP; // 4
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 = Flag.DONT_INSERT_FROM_AMOUNT_CHECK_SRC_TOKEN_BALANCE_AFTER_SWAP; // 8
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 = Flag.DONT_INSERT_FROM_AMOUNT_CHECK_SRC_TOKEN_BALANCE_AFTER_SWAP; // 8
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[0].srcAmount],
325
+ [swap.swapExchanges[swapExchangeIndex].srcAmount],
304
326
  );
305
327
  const toAmount = ethers.utils.defaultAbiCoder.encode(
306
328
  ['uint256'],
307
- [swap.swapExchanges[0].destAmount],
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
- assert(
318
- fromAmountIndex !== -1,
319
- 'Encoding error: could not resolve position of fromAmount in exchangeData',
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,