@paraswap/dex-lib 2.46.2-remove-univ3-poolconfigs.2 → 2.47.0

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 (222) hide show
  1. package/build/abi/algebra/AlgebraPool.abi.json +724 -724
  2. package/build/abi/uniswap-v3/UniswapV3Quoter.abi.json +191 -191
  3. package/build/abi/wombat/pool.json +1289 -0
  4. package/build/constants.d.ts +0 -1
  5. package/build/constants.js +1 -2
  6. package/build/constants.js.map +1 -1
  7. package/build/dex/algebra/algebra-pool.d.ts +37 -105
  8. package/build/dex/algebra/algebra-pool.js +322 -434
  9. package/build/dex/balancer-v2/pools/gyro/Gyro3Pool.js +4 -0
  10. package/build/dex/balancer-v2/pools/gyro/Gyro3Pool.js.map +1 -1
  11. package/build/dex/uniswap-v2/config.js +36 -0
  12. package/build/dex/uniswap-v2/config.js.map +1 -1
  13. package/build/dex/uniswap-v2/rebase-tokens.json +7 -0
  14. package/build/dex/uniswap-v3/uniswap-v3-pool.d.ts +0 -5
  15. package/build/dex/uniswap-v3/uniswap-v3-pool.js +0 -7
  16. package/build/dex/uniswap-v3/uniswap-v3-pool.js.map +1 -1
  17. package/build/dex/uniswap-v3/uniswap-v3.js +6 -14
  18. package/build/dex/uniswap-v3/uniswap-v3.js.map +1 -1
  19. package/build/stateful-event-subscriber.d.ts +0 -1
  20. package/build/stateful-event-subscriber.js +1 -11
  21. package/build/stateful-event-subscriber.js.map +1 -1
  22. package/package.json +2 -2
  23. package/src/constants.ts +0 -2
  24. package/src/dex/uniswap-v2/config.ts +42 -0
  25. package/src/dex/uniswap-v3/uniswap-v3-e2e.test.ts +44 -55
  26. package/src/dex/uniswap-v3/uniswap-v3-pool.ts +0 -8
  27. package/src/dex/uniswap-v3/uniswap-v3.ts +11 -18
  28. package/src/stateful-event-subscriber.ts +1 -16
  29. package/.idea/aws.xml +0 -17
  30. package/.idea/codeStyles/Project.xml +0 -19
  31. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  32. package/.idea/misc.xml +0 -6
  33. package/.idea/modules.xml +0 -8
  34. package/.idea/paraswap-dex-lib.iml +0 -9
  35. package/.idea/prettier.xml +0 -7
  36. package/.idea/vcs.xml +0 -6
  37. package/build/abi/AugustusV6.abi.json +0 -395
  38. package/build/abi/curve-v1/StableSwapFRXETH.json +0 -889
  39. package/build/abi/curve-v1/StableSwapWBETH.json +0 -1223
  40. package/build/abi/sushiswap-v3/QuoterV2.json +0 -267
  41. package/build/abi/sushiswap-v3/RouterProcessor3.json +0 -289
  42. package/build/abi/uniswap-v3/pancakeswap-v3/PancakeswapV3QuoterV2.abi.json +0 -285
  43. package/build/abi/uniswap-v3/pancakeswap-v3/PancakeswapV3Router.abi.json +0 -583
  44. package/build/abi/wBETH.json +0 -1527
  45. package/build/abi/woo-fi/WooFeeManager.abi.json +0 -318
  46. package/build/abi/woo-fi/WooPP.abi.json +0 -548
  47. package/build/abi/woo-fi/Wooracle.abi.json +0 -260
  48. package/build/dex/aave-v3/tokens/arbitrum.json +0 -50
  49. package/build/dex/aave-v3/tokens/avalanche.json +0 -74
  50. package/build/dex/aave-v3/tokens/fantom.json +0 -62
  51. package/build/dex/aave-v3/tokens/optimism.json +0 -50
  52. package/build/dex/aave-v3/tokens/polygon.json +0 -116
  53. package/build/dex/balancer-v2/Gyro3Pool.d.ts +0 -43
  54. package/build/dex/balancer-v2/Gyro3Pool.js +0 -160
  55. package/build/dex/balancer-v2/Gyro3Pool.js.map +0 -1
  56. package/build/dex/balancer-v2/LinearMath.d.ts +0 -88
  57. package/build/dex/balancer-v2/LinearMath.js +0 -285
  58. package/build/dex/balancer-v2/LinearMath.js.map +0 -1
  59. package/build/dex/balancer-v2/LinearPool.d.ts +0 -81
  60. package/build/dex/balancer-v2/LinearPool.js +0 -444
  61. package/build/dex/balancer-v2/LinearPool.js.map +0 -1
  62. package/build/dex/balancer-v2/PhantomStablePool.d.ts +0 -90
  63. package/build/dex/balancer-v2/PhantomStablePool.js +0 -418
  64. package/build/dex/balancer-v2/PhantomStablePool.js.map +0 -1
  65. package/build/dex/balancer-v2/StableMath.d.ts +0 -9
  66. package/build/dex/balancer-v2/StableMath.js +0 -272
  67. package/build/dex/balancer-v2/StableMath.js.map +0 -1
  68. package/build/dex/balancer-v2/balancer-v2-pool.d.ts +0 -140
  69. package/build/dex/balancer-v2/balancer-v2-pool.js +0 -647
  70. package/build/dex/balancer-v2/balancer-v2-pool.js.map +0 -1
  71. package/build/dex/curve-v1/pools/frxETHpool.d.ts +0 -7
  72. package/build/dex/curve-v1/pools/frxETHpool.js +0 -27
  73. package/build/dex/curve-v1/pools/frxETHpool.js.map +0 -1
  74. package/build/dex/curve-v1/pools/wbETHpool.d.ts +0 -29
  75. package/build/dex/curve-v1/pools/wbETHpool.js +0 -408
  76. package/build/dex/curve-v1/pools/wbETHpool.js.map +0 -1
  77. package/build/dex/lighter-v1/abi/erc20.json +0 -222
  78. package/build/dex/lighter-v1/abi/factory.json +0 -291
  79. package/build/dex/lighter-v1/abi/order_book.json +0 -594
  80. package/build/dex/lighter-v1/abi/order_book_helper.json +0 -176
  81. package/build/dex/lighter-v1/abi/router.json +0 -488
  82. package/build/dex/lighter-v1/config.d.ts +0 -4
  83. package/build/dex/lighter-v1/config.js +0 -17
  84. package/build/dex/lighter-v1/config.js.map +0 -1
  85. package/build/dex/lighter-v1/constants.d.ts +0 -2
  86. package/build/dex/lighter-v1/constants.js +0 -13
  87. package/build/dex/lighter-v1/constants.js.map +0 -1
  88. package/build/dex/lighter-v1/lighter-v1-pool.d.ts +0 -57
  89. package/build/dex/lighter-v1/lighter-v1-pool.js +0 -310
  90. package/build/dex/lighter-v1/lighter-v1-pool.js.map +0 -1
  91. package/build/dex/lighter-v1/lighter-v1.d.ts +0 -45
  92. package/build/dex/lighter-v1/lighter-v1.js +0 -331
  93. package/build/dex/lighter-v1/lighter-v1.js.map +0 -1
  94. package/build/dex/lighter-v1/types.d.ts +0 -40
  95. package/build/dex/lighter-v1/types.js +0 -3
  96. package/build/dex/lighter-v1/types.js.map +0 -1
  97. package/build/dex/pancakeswap-v3/types.d.ts +0 -14
  98. package/build/dex/pancakeswap-v3/types.js +0 -3
  99. package/build/dex/pancakeswap-v3/types.js.map +0 -1
  100. package/build/dex/quickswap-v3.d.ts +0 -21
  101. package/build/dex/quickswap-v3.js +0 -40
  102. package/build/dex/quickswap-v3.js.map +0 -1
  103. package/build/dex/ramses-v2/config.d.ts +0 -4
  104. package/build/dex/ramses-v2/config.js +0 -28
  105. package/build/dex/ramses-v2/config.js.map +0 -1
  106. package/build/dex/ramses-v2/constants.d.ts +0 -28
  107. package/build/dex/ramses-v2/constants.js +0 -35
  108. package/build/dex/ramses-v2/constants.js.map +0 -1
  109. package/build/dex/ramses-v2/contract-math/BitMath.d.ts +0 -4
  110. package/build/dex/ramses-v2/contract-math/BitMath.js +0 -93
  111. package/build/dex/ramses-v2/contract-math/BitMath.js.map +0 -1
  112. package/build/dex/ramses-v2/contract-math/FixedPoint128.d.ts +0 -3
  113. package/build/dex/ramses-v2/contract-math/FixedPoint128.js +0 -8
  114. package/build/dex/ramses-v2/contract-math/FixedPoint128.js.map +0 -1
  115. package/build/dex/ramses-v2/contract-math/FixedPoint96.d.ts +0 -4
  116. package/build/dex/ramses-v2/contract-math/FixedPoint96.js +0 -9
  117. package/build/dex/ramses-v2/contract-math/FixedPoint96.js.map +0 -1
  118. package/build/dex/ramses-v2/contract-math/FullMath.d.ts +0 -4
  119. package/build/dex/ramses-v2/contract-math/FullMath.js +0 -19
  120. package/build/dex/ramses-v2/contract-math/FullMath.js.map +0 -1
  121. package/build/dex/ramses-v2/contract-math/LiquidityMath.d.ts +0 -3
  122. package/build/dex/ramses-v2/contract-math/LiquidityMath.js +0 -22
  123. package/build/dex/ramses-v2/contract-math/LiquidityMath.js.map +0 -1
  124. package/build/dex/ramses-v2/contract-math/Oracle.d.ts +0 -10
  125. package/build/dex/ramses-v2/contract-math/Oracle.js +0 -133
  126. package/build/dex/ramses-v2/contract-math/Oracle.js.map +0 -1
  127. package/build/dex/ramses-v2/contract-math/SqrtPriceMath.d.ts +0 -10
  128. package/build/dex/ramses-v2/contract-math/SqrtPriceMath.js +0 -91
  129. package/build/dex/ramses-v2/contract-math/SqrtPriceMath.js.map +0 -1
  130. package/build/dex/ramses-v2/contract-math/SwapMath.d.ts +0 -8
  131. package/build/dex/ramses-v2/contract-math/SwapMath.js +0 -70
  132. package/build/dex/ramses-v2/contract-math/SwapMath.js.map +0 -1
  133. package/build/dex/ramses-v2/contract-math/Tick.d.ts +0 -7
  134. package/build/dex/ramses-v2/contract-math/Tick.js +0 -45
  135. package/build/dex/ramses-v2/contract-math/Tick.js.map +0 -1
  136. package/build/dex/ramses-v2/contract-math/TickBitMap.d.ts +0 -8
  137. package/build/dex/ramses-v2/contract-math/TickBitMap.js +0 -87
  138. package/build/dex/ramses-v2/contract-math/TickBitMap.js.map +0 -1
  139. package/build/dex/ramses-v2/contract-math/TickMath.d.ts +0 -8
  140. package/build/dex/ramses-v2/contract-math/TickMath.js +0 -162
  141. package/build/dex/ramses-v2/contract-math/TickMath.js.map +0 -1
  142. package/build/dex/ramses-v2/contract-math/UnsafeMath.d.ts +0 -3
  143. package/build/dex/ramses-v2/contract-math/UnsafeMath.js +0 -10
  144. package/build/dex/ramses-v2/contract-math/UnsafeMath.js.map +0 -1
  145. package/build/dex/ramses-v2/contract-math/uniswap-v3-math.d.ts +0 -18
  146. package/build/dex/ramses-v2/contract-math/uniswap-v3-math.js +0 -392
  147. package/build/dex/ramses-v2/contract-math/uniswap-v3-math.js.map +0 -1
  148. package/build/dex/ramses-v2/contract-math/utils.d.ts +0 -3
  149. package/build/dex/ramses-v2/contract-math/utils.js +0 -16
  150. package/build/dex/ramses-v2/contract-math/utils.js.map +0 -1
  151. package/build/dex/ramses-v2/ramses-v2-pool.d.ts +0 -42
  152. package/build/dex/ramses-v2/ramses-v2-pool.js +0 -307
  153. package/build/dex/ramses-v2/ramses-v2-pool.js.map +0 -1
  154. package/build/dex/ramses-v2/ramses-v2.d.ts +0 -61
  155. package/build/dex/ramses-v2/ramses-v2.js +0 -690
  156. package/build/dex/ramses-v2/ramses-v2.js.map +0 -1
  157. package/build/dex/ramses-v2/types.d.ts +0 -154
  158. package/build/dex/ramses-v2/types.js +0 -9
  159. package/build/dex/ramses-v2/types.js.map +0 -1
  160. package/build/dex/ramses-v2/utils.d.ts +0 -6
  161. package/build/dex/ramses-v2/utils.js +0 -71
  162. package/build/dex/ramses-v2/utils.js.map +0 -1
  163. package/build/dex/solidly/forks-override/fvm.d.ts +0 -20
  164. package/build/dex/solidly/forks-override/fvm.js +0 -42
  165. package/build/dex/solidly/forks-override/fvm.js.map +0 -1
  166. package/build/dex/sushiswap-v3/config.d.ts +0 -4
  167. package/build/dex/sushiswap-v3/config.js +0 -132
  168. package/build/dex/sushiswap-v3/config.js.map +0 -1
  169. package/build/dex/sushiswap-v3/constants.d.ts +0 -4
  170. package/build/dex/sushiswap-v3/constants.js +0 -32
  171. package/build/dex/sushiswap-v3/constants.js.map +0 -1
  172. package/build/dex/sushiswap-v3/sushiswap-v3-original.d.ts +0 -56
  173. package/build/dex/sushiswap-v3/sushiswap-v3-original.js +0 -598
  174. package/build/dex/sushiswap-v3/sushiswap-v3-original.js.map +0 -1
  175. package/build/dex/sushiswap-v3/sushiswap-v3-pool.d.ts +0 -1
  176. package/build/dex/sushiswap-v3/sushiswap-v3-pool.js +0 -6
  177. package/build/dex/sushiswap-v3/sushiswap-v3-pool.js.map +0 -1
  178. package/build/dex/sushiswap-v3/sushiswap-v3.d.ts +0 -21
  179. package/build/dex/sushiswap-v3/sushiswap-v3.js +0 -58
  180. package/build/dex/sushiswap-v3/sushiswap-v3.js.map +0 -1
  181. package/build/dex/sushiswap-v3/token.d.ts +0 -6
  182. package/build/dex/sushiswap-v3/token.js +0 -23
  183. package/build/dex/sushiswap-v3/token.js.map +0 -1
  184. package/build/dex/sushiswap-v3/types.d.ts +0 -15
  185. package/build/dex/sushiswap-v3/types.js +0 -18
  186. package/build/dex/sushiswap-v3/types.js.map +0 -1
  187. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.d.ts +0 -12
  188. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.js +0 -23
  189. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.js.map +0 -1
  190. package/build/dex/woo-fi/config.d.ts +0 -4
  191. package/build/dex/woo-fi/config.js +0 -141
  192. package/build/dex/woo-fi/config.js.map +0 -1
  193. package/build/dex/woo-fi/constants.d.ts +0 -5
  194. package/build/dex/woo-fi/constants.js +0 -20
  195. package/build/dex/woo-fi/constants.js.map +0 -1
  196. package/build/dex/woo-fi/types.d.ts +0 -48
  197. package/build/dex/woo-fi/types.js +0 -3
  198. package/build/dex/woo-fi/types.js.map +0 -1
  199. package/build/dex/woo-fi/woo-fi-decimal-math.d.ts +0 -14
  200. package/build/dex/woo-fi/woo-fi-decimal-math.js +0 -42
  201. package/build/dex/woo-fi/woo-fi-decimal-math.js.map +0 -1
  202. package/build/dex/woo-fi/woo-fi-math.d.ts +0 -31
  203. package/build/dex/woo-fi/woo-fi-math.js +0 -300
  204. package/build/dex/woo-fi/woo-fi-math.js.map +0 -1
  205. package/build/dex/woo-fi/woo-fi.d.ts +0 -65
  206. package/build/dex/woo-fi/woo-fi.js +0 -480
  207. package/build/dex/woo-fi/woo-fi.js.map +0 -1
  208. package/build/executor/Executor01BytecodeBuilder.d.ts +0 -77
  209. package/build/executor/Executor01BytecodeBuilder.js +0 -359
  210. package/build/executor/Executor01BytecodeBuilder.js.map +0 -1
  211. package/build/executor/Executor02BytecodeBuilder.d.ts +0 -12
  212. package/build/executor/Executor02BytecodeBuilder.js +0 -14
  213. package/build/executor/Executor02BytecodeBuilder.js.map +0 -1
  214. package/build/executor/ExecutorDetector.d.ts +0 -28
  215. package/build/executor/ExecutorDetector.js +0 -89
  216. package/build/executor/ExecutorDetector.js.map +0 -1
  217. package/build/executor/IExecutorBytecodeBuilder.d.ts +0 -6
  218. package/build/executor/IExecutorBytecodeBuilder.js +0 -3
  219. package/build/executor/IExecutorBytecodeBuilder.js.map +0 -1
  220. package/build/generic-swap-transaction-builder.d.ts +0 -39
  221. package/build/generic-swap-transaction-builder.js +0 -156
  222. package/build/generic-swap-transaction-builder.js.map +0 -1
@@ -1,359 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Executor01BytecodeBuilder = void 0;
7
- const ethers_1 = require("ethers");
8
- const utils_1 = require("../utils");
9
- const erc20_json_1 = __importDefault(require("../abi/erc20.json"));
10
- const abi_1 = require("@ethersproject/abi");
11
- const { utils: { hexlify, hexDataLength, hexConcat, hexZeroPad, solidityPack }, } = ethers_1.ethers;
12
- const EXECUTOR_01_FUNCTION_CALL_DATA_TYPES = [
13
- 'bytes20',
14
- 'bytes4',
15
- 'bytes2',
16
- 'bytes2',
17
- 'bytes2',
18
- 'bytes2',
19
- 'bytes28',
20
- 'bytes', // dex calldata (bytes)
21
- ];
22
- const APPROVE_CALLDATA_DEST_TOKEN_POS = 68;
23
- const WRAP_UNWRAP_FROM_AMOUNT_POS = 4;
24
- const BYTES_28_LENGTH = 28;
25
- const BYTES_64_LENGTH = 64;
26
- const ZEROS_12_BYTES = hexZeroPad(hexlify(0), 12);
27
- const ZEROS_28_BYTES = hexZeroPad(hexlify(0), 28);
28
- const ZEROS_32_BYTES = hexZeroPad(hexlify(0), 32);
29
- var SpecialDex;
30
- (function (SpecialDex) {
31
- SpecialDex[SpecialDex["DEFAULT"] = 0] = "DEFAULT";
32
- // SWAP_ON_BALANCER_V2 = 1, // swapOnBalancerV2
33
- // SWAP_ON_MAKER_PSM = 2, // swapOnMakerPSM
34
- // SWAP_ON_SWAAP_V2 = 3, // swapOnSwaapV2
35
- SpecialDex[SpecialDex["SEND_NATIVE"] = 4] = "SEND_NATIVE";
36
- })(SpecialDex || (SpecialDex = {}));
37
- var Flag;
38
- (function (Flag) {
39
- Flag[Flag["FIFTEEN"] = 15] = "FIFTEEN";
40
- Flag[Flag["ELEVEN"] = 11] = "ELEVEN";
41
- Flag[Flag["NINE"] = 9] = "NINE";
42
- Flag[Flag["EIGHT"] = 8] = "EIGHT";
43
- Flag[Flag["SEVEN"] = 7] = "SEVEN";
44
- Flag[Flag["FIVE"] = 5] = "FIVE";
45
- Flag[Flag["FOUR"] = 4] = "FOUR";
46
- Flag[Flag["THREE"] = 3] = "THREE";
47
- Flag[Flag["ZERO"] = 0] = "ZERO";
48
- })(Flag || (Flag = {}));
49
- /**
50
- * Class to build bytecode for Executor01 (simpleSwap + multiSwap with 100% amounts on each path)
51
- */
52
- class Executor01BytecodeBuilder {
53
- constructor(dexHelper) {
54
- this.dexHelper = dexHelper;
55
- this.erc20Interface = new abi_1.Interface(erc20_json_1.default);
56
- }
57
- buildDexCallData(swap, exchangeParam, flag) {
58
- const dontCheckBalanceAfterSwap = flag % 3 === 0;
59
- const checkDestTokenBalanceAfterSwap = flag % 3 === 2;
60
- const insertFromAmount = flag % 4 === 3;
61
- let { exchangeData } = exchangeParam;
62
- let destTokenPos = 0;
63
- if (checkDestTokenBalanceAfterSwap && !dontCheckBalanceAfterSwap) {
64
- const destTokenAddr = (0, utils_1.isETHAddress)(swap.destToken)
65
- ? this.dexHelper.config.data.wrappedNativeTokenAddress.toLowerCase()
66
- : swap.destToken.toLowerCase();
67
- if (!exchangeParam.dexFuncHasDestToken) {
68
- exchangeData = hexConcat([exchangeData, ZEROS_28_BYTES, destTokenAddr]);
69
- }
70
- const destTokenAddrIndex = exchangeData
71
- .replace('0x', '')
72
- .indexOf(destTokenAddr.replace('0x', ''));
73
- destTokenPos = (destTokenAddrIndex - 24) / 2;
74
- }
75
- let fromAmountPos = 0;
76
- if (insertFromAmount) {
77
- const fromAmount = ethers_1.ethers.utils.defaultAbiCoder.encode(['uint256'], [swap.swapExchanges[0].srcAmount]);
78
- const fromAmountIndex = exchangeData
79
- .replace('0x', '')
80
- .indexOf(fromAmount.replace('0x', ''));
81
- fromAmountPos = fromAmountIndex / 2;
82
- }
83
- return solidityPack(EXECUTOR_01_FUNCTION_CALL_DATA_TYPES, [
84
- exchangeParam.targetExchange,
85
- hexZeroPad(hexlify(hexDataLength(exchangeData) + BYTES_28_LENGTH), 4),
86
- hexZeroPad(hexlify(fromAmountPos), 2),
87
- hexZeroPad(hexlify(destTokenPos), 2),
88
- hexZeroPad(hexlify(SpecialDex.DEFAULT), 2),
89
- hexZeroPad(hexlify(flag), 2),
90
- ZEROS_28_BYTES,
91
- exchangeData, // dex calldata
92
- ]);
93
- }
94
- buildApproveCallData(approveCalldata, tokenAddr, amount, flag) {
95
- const insertFromAmount = flag % 4 === 3;
96
- const checkSrcTokenBalance = flag % 3 === 2;
97
- let fromAmountPos = 0;
98
- if (insertFromAmount) {
99
- const fromAmount = ethers_1.ethers.utils.defaultAbiCoder.encode(['uint256'], [amount]);
100
- const fromAmountIndex = approveCalldata
101
- .replace('0x', '')
102
- .indexOf(fromAmount.replace('0x', ''));
103
- fromAmountPos = fromAmountIndex / 2;
104
- }
105
- if (checkSrcTokenBalance) {
106
- approveCalldata = hexConcat([approveCalldata, ZEROS_12_BYTES, tokenAddr]);
107
- }
108
- return solidityPack(EXECUTOR_01_FUNCTION_CALL_DATA_TYPES, [
109
- tokenAddr,
110
- hexZeroPad(hexlify(hexDataLength(approveCalldata) + BYTES_28_LENGTH), 4),
111
- hexZeroPad(hexlify(fromAmountPos), 2),
112
- hexZeroPad(hexlify(APPROVE_CALLDATA_DEST_TOKEN_POS), 2),
113
- hexZeroPad(hexlify(SpecialDex.DEFAULT), 2),
114
- hexZeroPad(hexlify(flag), 2),
115
- ZEROS_28_BYTES,
116
- approveCalldata, // approve calldata
117
- ]);
118
- }
119
- buildWrapEthCallData(depositCallData, flag) {
120
- return solidityPack(EXECUTOR_01_FUNCTION_CALL_DATA_TYPES, [
121
- this.dexHelper.config.data.wrappedNativeTokenAddress,
122
- hexZeroPad(hexlify(hexDataLength(depositCallData) + BYTES_28_LENGTH), 4),
123
- hexZeroPad(hexlify(WRAP_UNWRAP_FROM_AMOUNT_POS), 2),
124
- hexZeroPad(hexlify(0), 2),
125
- hexZeroPad(hexlify(SpecialDex.DEFAULT), 2),
126
- hexZeroPad(hexlify(flag), 2),
127
- ZEROS_28_BYTES,
128
- depositCallData, // wrap calldata
129
- ]);
130
- }
131
- buildUnwrapEthCallData(withdrawCallData) {
132
- return solidityPack(EXECUTOR_01_FUNCTION_CALL_DATA_TYPES, [
133
- this.dexHelper.config.data.wrappedNativeTokenAddress,
134
- hexZeroPad(hexlify(hexDataLength(withdrawCallData) + BYTES_28_LENGTH), 4),
135
- hexZeroPad(hexlify(WRAP_UNWRAP_FROM_AMOUNT_POS), 2),
136
- hexZeroPad(hexlify(0), 2),
137
- hexZeroPad(hexlify(SpecialDex.DEFAULT), 2),
138
- hexZeroPad(hexlify(Flag.SEVEN), 2),
139
- ZEROS_28_BYTES,
140
- withdrawCallData, // unwrap calldata
141
- ]);
142
- }
143
- buildTransferCallData(transferCallData, tokenAddr) {
144
- return solidityPack(EXECUTOR_01_FUNCTION_CALL_DATA_TYPES, [
145
- tokenAddr,
146
- hexZeroPad(hexlify(hexDataLength(transferCallData) + BYTES_28_LENGTH), 4),
147
- hexZeroPad(hexlify(36), 2),
148
- hexZeroPad(hexlify(0), 2),
149
- hexZeroPad(hexlify(SpecialDex.DEFAULT), 2),
150
- hexZeroPad(hexlify(Flag.THREE), 2),
151
- ZEROS_28_BYTES,
152
- transferCallData, // unwrap calldata
153
- ]);
154
- }
155
- buildFinalSpecialFlagCalldata() {
156
- return solidityPack(['bytes20', 'bytes4', 'bytes2', 'bytes2', 'bytes2', 'bytes2', 'bytes32'], [
157
- this.dexHelper.config.data.augustusV6Address,
158
- hexZeroPad(hexlify(28 + 4), 4),
159
- hexZeroPad(hexlify(0), 2),
160
- hexZeroPad(hexlify(0), 2),
161
- hexZeroPad(hexlify(SpecialDex.SEND_NATIVE), 2),
162
- hexZeroPad(hexlify(9), 2),
163
- ZEROS_32_BYTES, // bytes28(0) + bytes4(0)
164
- ]);
165
- }
166
- /**
167
- * Executor01 Flags:
168
- * switch (flag % 4):
169
- * case 0: don't instert fromAmount
170
- * case 1: sendEth equal to fromAmount
171
- * case 2: sendEth equal to fromAmount + insert fromAmount
172
- * case 3: insert fromAmount
173
-
174
- * switch (flag % 3):
175
- * case 0: don't check balance after swap
176
- * case 1: check eth balance after swap
177
- * case 2: check desTtoken balance after swap
178
- */
179
- buildSimpleSwapFlags(priceRoute, exchangeParam, index, maybeWethCallData) {
180
- const { srcToken, destToken } = priceRoute.bestRoute[0].swaps[index];
181
- const isEthSrc = (0, utils_1.isETHAddress)(srcToken);
182
- const isEthDest = (0, utils_1.isETHAddress)(destToken);
183
- const { dexFuncHasRecipient, needWrapNative } = exchangeParam;
184
- const needWrap = needWrapNative && isEthSrc && maybeWethCallData?.deposit;
185
- const needUnwrap = needWrapNative && isEthDest && maybeWethCallData?.withdraw;
186
- let dexFlag = Flag.ZERO; // (flag 0 mod 4) = case 0: don't insert fromAmount, (flag 0 mod 3) = case 0: don't check balance after swap
187
- let approveFlag = Flag.ZERO; // (flag 0 mod 4) = case 0: don't insert fromAmount, (flag 0 mod 3) = case 0: don't check balance after swap
188
- if (isEthSrc && !needWrap) {
189
- dexFlag = Flag.FIVE; // (flag 5 mod 4) = case 1: sendEth equal to fromAmount, (flag 5 mod 3) = case 2: check "srcToken" balance after swap
190
- }
191
- else if (isEthDest && !needUnwrap) {
192
- dexFlag = Flag.FOUR; // (flag 4 mod 4) = case 0: don't insert fromAmount, (flag 4 mod 3) = case 1: check eth balance after swap
193
- }
194
- else if (!dexFuncHasRecipient || (isEthDest && needUnwrap)) {
195
- dexFlag = Flag.EIGHT; // (flag 8 mod 4) = case 0: don't insert fromAmount, (flag 8 mod 3) = case 2: check "srcToken" balance after swap
196
- }
197
- return {
198
- dexFlag,
199
- approveFlag,
200
- };
201
- }
202
- /**
203
- * Executor01 Flags:
204
- * switch (flag % 4):
205
- * case 0: don't instert fromAmount
206
- * case 1: sendEth equal to fromAmount
207
- * case 2: sendEth equal to fromAmount + insert fromAmount
208
- * case 3: insert fromAmount
209
-
210
- * switch (flag % 3):
211
- * case 0: don't check balance after swap
212
- * case 1: check eth balance after swap
213
- * case 2: check desTtoken balance after swap
214
- */
215
- buildMultiSwapFlags(priceRoute, exchangeParam, index, maybeWethCallData) {
216
- const swap = priceRoute.bestRoute[0].swaps[index];
217
- const { srcToken, destToken } = swap;
218
- const isFirstSwap = index === 0;
219
- const { dexFuncHasRecipient, needWrapNative } = exchangeParam;
220
- const isEthSrc = (0, utils_1.isETHAddress)(srcToken);
221
- const isEthDest = (0, utils_1.isETHAddress)(destToken);
222
- const needWrap = needWrapNative && isEthSrc && maybeWethCallData?.deposit;
223
- const needUnwrap = needWrapNative && isEthDest && maybeWethCallData?.withdraw;
224
- let dexFlag = Flag.ZERO; // (flag 0 mod 4) = case 0: don't insert fromAmount, (flag 0 mod 3) = case 0: don't check balance after swap
225
- let approveFlag = Flag.ZERO; // (flag 0 mod 4) = case 0: don't insert fromAmount, (flag 0 mod 3) = case 0: don't check balance after swap
226
- if (isFirstSwap) {
227
- if (isEthSrc && !needWrap) {
228
- dexFlag = Flag.FIVE; // (flag 5 mod 4) = case 1: sendEth equal to fromAmount, (flag 5 mod 3) = case 2: check "srcToken" balance after swap
229
- }
230
- else if (isEthSrc && needWrap) {
231
- dexFlag = Flag.ZERO; // (flag 0 mod 4) = case 0: don't insert fromAmount, (flag 0 mod 3) = case 0: don't check balance after swap
232
- approveFlag = Flag.ZERO;
233
- }
234
- else if (!isEthSrc && !isEthDest) {
235
- dexFlag = Flag.EIGHT; // (flag 8 mod 4) = case 0: don't insert fromAmount, (flag 8 mod 3) = case 2: check "srcToken" balance after swap
236
- }
237
- else if (isEthDest && needUnwrap) {
238
- dexFlag = Flag.EIGHT; // (flag 8 mod 4) = case 0: don't insert fromAmount, (flag 8 mod 3) = case 2: check "srcToken" balance after swap
239
- approveFlag = Flag.EIGHT; // (flag 8 mod 4) = case 0: don't insert fromAmount, (flag 8 mod 3) = case 2: check "srcToken" balance after swap
240
- }
241
- else if (isEthDest && !needUnwrap) {
242
- dexFlag = Flag.FOUR; // (flag 4 mod 4) = case 0: don't insert fromAmount, (flag 4 mod 3) = case 1: check eth balance after swap
243
- }
244
- else if (!dexFuncHasRecipient) {
245
- dexFlag = Flag.EIGHT; // (flag 8 mod 4) = case 0: don't insert fromAmount, (flag 8 mod 3) = case 2: check "srcToken" balance after swap
246
- }
247
- }
248
- else {
249
- if (isEthSrc && !needWrap) {
250
- dexFlag = Flag.FIVE; // (flag 5 mod 4) = case 1: sendEth equal to fromAmount, (flag 5 mod 3) = case 2: check "srcToken" balance after swap
251
- }
252
- else if (isEthSrc && needWrap) {
253
- dexFlag = Flag.FIFTEEN; // (flag 15 mod 4) = case 3: insert fromAmount, (flag 15 mod 3) = case 0: don't check balance after swap
254
- approveFlag = Flag.FIFTEEN; // (flag 15 mod 4) = case 3: insert fromAmount, (flag 15 mod 3) = case 0: don't check balance after swap
255
- }
256
- else {
257
- dexFlag = Flag.ELEVEN; // (flag 11 mod 4) = case 3: insert fromAmount, (flag 11 mod 3) = case 2: check "srcToken" balance after swap
258
- approveFlag = Flag.ELEVEN; // (flag 11 mod 4) = case 3: insert fromAmount, (flag 11 mod 3) = case 2: check "srcToken" balance after swap
259
- }
260
- }
261
- return {
262
- dexFlag,
263
- approveFlag,
264
- };
265
- }
266
- buildFlags(priceRoute, exchangeDataList, maybeWethCallData) {
267
- const isMultiSwap = priceRoute.bestRoute[0].swaps.length > 1;
268
- const buildFlagsMethod = isMultiSwap
269
- ? this.buildMultiSwapFlags.bind(this)
270
- : this.buildSimpleSwapFlags.bind(this);
271
- const flags = exchangeDataList.reduce((acc, exchangeParam, index) => {
272
- const { dexFlag, approveFlag } = buildFlagsMethod(priceRoute, exchangeParam, index, maybeWethCallData);
273
- acc.dexes.push(dexFlag);
274
- acc.approves.push(approveFlag);
275
- return acc;
276
- }, { dexes: [], approves: [] });
277
- return {
278
- ...flags,
279
- wrap: (0, utils_1.isETHAddress)(priceRoute.srcToken) && maybeWethCallData?.deposit
280
- ? Flag.NINE
281
- : Flag.SEVEN,
282
- };
283
- }
284
- buildSingleSwapCallData(priceRoute, exchangeParams, index, flags, maybeWethCallData) {
285
- let swapCallData = '';
286
- const swap = priceRoute.bestRoute[0].swaps[index];
287
- const curExchangeParam = exchangeParams[index];
288
- const srcAmount = swap.swapExchanges[0].srcAmount;
289
- const dexCallData = this.buildDexCallData(swap, curExchangeParam, flags.dexes[index]);
290
- swapCallData = hexConcat([dexCallData]);
291
- if (!(0, utils_1.isETHAddress)(swap.srcToken) ||
292
- ((0, utils_1.isETHAddress)(swap.srcToken) && index !== 0)) {
293
- const approve = this.erc20Interface.encodeFunctionData('approve', [
294
- curExchangeParam.targetExchange,
295
- srcAmount,
296
- ]);
297
- const approveCallData = this.buildApproveCallData(approve, (0, utils_1.isETHAddress)(swap.srcToken) && index !== 0
298
- ? this.dexHelper.config.data.wrappedNativeTokenAddress
299
- : swap.srcToken, srcAmount, flags.approves[index]);
300
- swapCallData = hexConcat([approveCallData, swapCallData]);
301
- }
302
- if (curExchangeParam.needWrapNative && maybeWethCallData) {
303
- if (maybeWethCallData.deposit && (0, utils_1.isETHAddress)(swap.srcToken)) {
304
- const prevExchangeParam = exchangeParams[index - 1];
305
- if (!prevExchangeParam ||
306
- (prevExchangeParam && !prevExchangeParam.needWrapNative)) {
307
- const approveWethCalldata = this.buildApproveCallData(this.erc20Interface.encodeFunctionData('approve', [
308
- curExchangeParam.targetExchange,
309
- swap.swapExchanges[0].srcAmount,
310
- ]), this.dexHelper.config.data.wrappedNativeTokenAddress, srcAmount, flags.approves[index]);
311
- const depositCallData = this.buildWrapEthCallData(maybeWethCallData.deposit.calldata, Flag.NINE);
312
- swapCallData = hexConcat([
313
- approveWethCalldata,
314
- depositCallData,
315
- swapCallData,
316
- ]);
317
- }
318
- }
319
- if (maybeWethCallData.withdraw && (0, utils_1.isETHAddress)(priceRoute.destToken)) {
320
- const nextExchangeParam = exchangeParams[index + 1];
321
- if (!nextExchangeParam ||
322
- (nextExchangeParam && !nextExchangeParam.needWrapNative)) {
323
- const withdrawCallData = this.buildUnwrapEthCallData(maybeWethCallData.withdraw.calldata);
324
- swapCallData = hexConcat([swapCallData, withdrawCallData]);
325
- }
326
- }
327
- }
328
- return swapCallData;
329
- }
330
- buildByteCode(priceRoute, exchangeDataList, maybeWethCallData) {
331
- const flags = this.buildFlags(priceRoute, exchangeDataList, maybeWethCallData);
332
- let swapsCalldata = exchangeDataList.reduce((acc, exchangeParams, index) => hexConcat([
333
- acc,
334
- this.buildSingleSwapCallData(priceRoute, exchangeDataList, index, flags, maybeWethCallData),
335
- ]), '0x');
336
- if (!exchangeDataList[exchangeDataList.length - 1].dexFuncHasRecipient &&
337
- !(0, utils_1.isETHAddress)(priceRoute.destToken)) {
338
- const transferCallData = this.buildTransferCallData(this.erc20Interface.encodeFunctionData('transfer', [
339
- this.dexHelper.config.data.augustusV6Address,
340
- priceRoute.destAmount,
341
- ]), priceRoute.destToken);
342
- swapsCalldata = hexConcat([swapsCalldata, transferCallData]);
343
- }
344
- if ((maybeWethCallData?.withdraw && (0, utils_1.isETHAddress)(priceRoute.destToken)) ||
345
- (!exchangeDataList[exchangeDataList.length - 1].dexFuncHasRecipient &&
346
- (0, utils_1.isETHAddress)(priceRoute.destToken))) {
347
- const finalSpecialFlagCalldata = this.buildFinalSpecialFlagCalldata();
348
- swapsCalldata = hexConcat([swapsCalldata, finalSpecialFlagCalldata]);
349
- }
350
- return solidityPack(['bytes32', 'bytes', 'bytes'], [
351
- hexZeroPad(hexlify(32), 32),
352
- hexZeroPad(hexlify(hexDataLength(swapsCalldata) + BYTES_64_LENGTH), // 64 bytes = bytes12(0) + msg.sender
353
- 32),
354
- swapsCalldata,
355
- ]);
356
- }
357
- }
358
- exports.Executor01BytecodeBuilder = Executor01BytecodeBuilder;
359
- //# sourceMappingURL=Executor01BytecodeBuilder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Executor01BytecodeBuilder.js","sourceRoot":"","sources":["../../src/executor/Executor01BytecodeBuilder.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- import { IExecutorBytecodeBuilder } from './IExecutorBytecodeBuilder';
2
- import { OptimalRate } from '@paraswap/core';
3
- import { DexExchangeParam } from '../types';
4
- import { DepositWithdrawReturn } from '../dex/weth/types';
5
- import { IDexHelper } from '../dex-helper';
6
- /**
7
- * Future class to build bytecode for Executor02
8
- */
9
- export declare class Executor02BytecodeBuilder implements IExecutorBytecodeBuilder {
10
- constructor(dexHelper: IDexHelper);
11
- buildByteCode(priceRoute: OptimalRate, exchangeDataList: DexExchangeParam[], maybeWethCallData?: DepositWithdrawReturn): string;
12
- }
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Executor02BytecodeBuilder = void 0;
4
- /**
5
- * Future class to build bytecode for Executor02
6
- */
7
- class Executor02BytecodeBuilder {
8
- constructor(dexHelper) { }
9
- buildByteCode(priceRoute, exchangeDataList, maybeWethCallData) {
10
- return '';
11
- }
12
- }
13
- exports.Executor02BytecodeBuilder = Executor02BytecodeBuilder;
14
- //# sourceMappingURL=Executor02BytecodeBuilder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Executor02BytecodeBuilder.js","sourceRoot":"","sources":["../../src/executor/Executor02BytecodeBuilder.ts"],"names":[],"mappings":";;;AAMA;;GAEG;AACH,MAAa,yBAAyB;IACpC,YAAY,SAAqB,IAAG,CAAC;IAErC,aAAa,CACX,UAAuB,EACvB,gBAAoC,EACpC,iBAAyC;QAEzC,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AAVD,8DAUC"}
@@ -1,28 +0,0 @@
1
- import { IDexHelper } from '../dex-helper';
2
- import { Address, OptimalRate } from '@paraswap/core';
3
- import { IExecutorBytecodeBuilder } from './IExecutorBytecodeBuilder';
4
- export declare enum Executors {
5
- ONE = "Executor01"
6
- }
7
- declare enum RouteExecutionType {
8
- SINGLE_STEP = 0,
9
- HORIZONTAL_SEQUENCE = 1
10
- }
11
- export declare class ExecutorDetector {
12
- protected dexHelper: IDexHelper;
13
- private executor01BytecodeBuilder;
14
- protected routeExecutionTypeToExecutorMap: {
15
- 0: Executors;
16
- 1: Executors;
17
- };
18
- constructor(dexHelper: IDexHelper);
19
- /**
20
- * The method supports only simpleSwap and multiSwap with 100% token percent on each path (Executor01)
21
- * @param priceRoute
22
- */
23
- protected getRouteExecutionType(priceRoute: OptimalRate): RouteExecutionType;
24
- getExecutorByPriceRoute(priceRoute: OptimalRate): Executors;
25
- getAddress(executorName: Executors): Address;
26
- getBytecodeBuilder(executorName: Executors): IExecutorBytecodeBuilder;
27
- }
28
- export {};
@@ -1,89 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ExecutorDetector = exports.Executors = void 0;
4
- const Executor01BytecodeBuilder_1 = require("./Executor01BytecodeBuilder");
5
- // import { Executor02BytecodeBuilder } from './Executor02BytecodeBuilder';
6
- var Executors;
7
- (function (Executors) {
8
- Executors["ONE"] = "Executor01";
9
- // TWO = 'Executor02',
10
- })(Executors = exports.Executors || (exports.Executors = {}));
11
- var RouteExecutionType;
12
- (function (RouteExecutionType) {
13
- RouteExecutionType[RouteExecutionType["SINGLE_STEP"] = 0] = "SINGLE_STEP";
14
- RouteExecutionType[RouteExecutionType["HORIZONTAL_SEQUENCE"] = 1] = "HORIZONTAL_SEQUENCE";
15
- // VERTICAL_BRANCH = 3, // megaSwap
16
- // VERTICAL_BRANCH_HORIZONTAL_SEQUENCE = 4, // megaSwap
17
- // NESTED_VERTICAL_BRANCH_HORIZONTAL_SEQUENCE = 5, // megaSwap
18
- })(RouteExecutionType || (RouteExecutionType = {}));
19
- class ExecutorDetector {
20
- constructor(dexHelper) {
21
- this.dexHelper = dexHelper;
22
- // private executor02BytecodeBuilder: IExecutorBytecodeBuilder;
23
- this.routeExecutionTypeToExecutorMap = {
24
- [RouteExecutionType.SINGLE_STEP]: Executors.ONE,
25
- [RouteExecutionType.HORIZONTAL_SEQUENCE]: Executors.ONE,
26
- // [RouteExecutionType.VERTICAL_BRANCH]: Executors.TWO,
27
- // [RouteExecutionType.VERTICAL_BRANCH_HORIZONTAL_SEQUENCE]: Executors.TWO,
28
- // [RouteExecutionType.NESTED_VERTICAL_BRANCH_HORIZONTAL_SEQUENCE]:
29
- // Executors.TWO,
30
- };
31
- this.executor01BytecodeBuilder = new Executor01BytecodeBuilder_1.Executor01BytecodeBuilder(this.dexHelper);
32
- // this.executor02BytecodeBuilder = new Executor02BytecodeBuilder(this.dexHelper);
33
- }
34
- /**
35
- * The method supports only simpleSwap and multiSwap with 100% token percent on each path (Executor01)
36
- * @param priceRoute
37
- */
38
- getRouteExecutionType(priceRoute) {
39
- if (priceRoute.bestRoute.length === 1 &&
40
- priceRoute.bestRoute[0].percent === 100 &&
41
- priceRoute.bestRoute[0].swaps.length === 1) {
42
- return RouteExecutionType.SINGLE_STEP;
43
- }
44
- else if (priceRoute.bestRoute.length === 1 &&
45
- priceRoute.bestRoute[0].percent === 100 &&
46
- priceRoute.bestRoute[0].swaps.length > 1) {
47
- let has100PercentOnEachPath = true;
48
- priceRoute.bestRoute[0].swaps.map(swap => {
49
- swap.swapExchanges.map(se => {
50
- if (se.percent !== 100) {
51
- has100PercentOnEachPath = false;
52
- }
53
- });
54
- });
55
- if (has100PercentOnEachPath) {
56
- return RouteExecutionType.HORIZONTAL_SEQUENCE;
57
- }
58
- }
59
- throw new Error('Route type is not supported yet');
60
- }
61
- getExecutorByPriceRoute(priceRoute) {
62
- const routeExecutionType = this.getRouteExecutionType(priceRoute);
63
- const executorName = this.routeExecutionTypeToExecutorMap[routeExecutionType];
64
- if (executorName) {
65
- return executorName;
66
- }
67
- throw new Error(`${executorName} is not implemented`);
68
- }
69
- getAddress(executorName) {
70
- if (!Object.values(Executors).includes(executorName)) {
71
- throw new Error(`${executorName} is not supported`);
72
- }
73
- return this.dexHelper.config.data.executorsAddresses[executorName];
74
- }
75
- getBytecodeBuilder(executorName) {
76
- if (!Object.values(Executors).includes(executorName)) {
77
- throw new Error(`${executorName} is not supported`);
78
- }
79
- if (executorName === Executors.ONE || true) {
80
- // for now always return Executor01
81
- return this.executor01BytecodeBuilder;
82
- }
83
- // else (executorName === Executors.TWO) {
84
- // return this.executor02BytecodeBuilder;
85
- // }
86
- }
87
- }
88
- exports.ExecutorDetector = ExecutorDetector;
89
- //# sourceMappingURL=ExecutorDetector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ExecutorDetector.js","sourceRoot":"","sources":["../../src/executor/ExecutorDetector.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import { OptimalRate } from '@paraswap/core';
2
- import { DexExchangeParam } from '../types';
3
- import { DepositWithdrawReturn } from '../dex/weth/types';
4
- export interface IExecutorBytecodeBuilder {
5
- buildByteCode(priceRoute: OptimalRate, exchangeDataList: DexExchangeParam[], maybeWethCallData?: DepositWithdrawReturn): string;
6
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=IExecutorBytecodeBuilder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IExecutorBytecodeBuilder.js","sourceRoot":"","sources":["../../src/executor/IExecutorBytecodeBuilder.ts"],"names":[],"mappings":""}
@@ -1,39 +0,0 @@
1
- import { Address, OptimalRate, TxObject } from './types';
2
- import { SwapSide } from './constants';
3
- import { AbiCoder, Interface } from '@ethersproject/abi';
4
- import { DexAdapterService } from './dex';
5
- import { ExecutorDetector, Executors } from './executor/ExecutorDetector';
6
- import { IExecutorBytecodeBuilder } from './executor/IExecutorBytecodeBuilder';
7
- export declare class GenericSwapTransactionBuilder {
8
- protected dexAdapterService: DexAdapterService;
9
- protected wExchangeNetworkToKey: Record<number, string>;
10
- augustusV6Interface: Interface;
11
- erc20Interface: Interface;
12
- abiCoder: AbiCoder;
13
- executorDetector: ExecutorDetector;
14
- constructor(dexAdapterService: DexAdapterService, wExchangeNetworkToKey?: Record<number, string>);
15
- protected getDepositWithdrawWethCallData(srcAmountWeth: bigint, destAmountWeth: bigint, side: SwapSide): import("./dex/weth/types").DepositWithdrawReturn | undefined;
16
- protected buildFees(referrerAddress: string | undefined, partnerAddress: string, partnerFeePercent: string, takeSurplus: boolean, side: SwapSide): [string, string];
17
- protected buildCalls(priceRoute: OptimalRate, minMaxAmount: string, executorName: Executors, bytecodeBuilder: IExecutorBytecodeBuilder): Promise<string>;
18
- protected _build(priceRoute: OptimalRate, minMaxAmount: string, userAddress: Address, referrerAddress: Address | undefined, partnerAddress: Address, partnerFeePercent: string, takeSurplus: boolean, beneficiary: Address, permit: string, deadline: string, uuid: string): Promise<{
19
- encoder: (...params: any[]) => string;
20
- params: (string | string[])[];
21
- }>;
22
- build({ priceRoute, minMaxAmount, userAddress, referrerAddress, partnerAddress, partnerFeePercent, takeSurplus, gasPrice, maxFeePerGas, maxPriorityFeePerGas, permit, deadline, uuid, beneficiary, onlyParams, }: {
23
- priceRoute: OptimalRate;
24
- minMaxAmount: string;
25
- userAddress: Address;
26
- referrerAddress?: Address;
27
- partnerAddress: Address;
28
- partnerFeePercent: string;
29
- takeSurplus?: boolean;
30
- gasPrice?: string;
31
- maxFeePerGas?: string;
32
- maxPriorityFeePerGas?: string;
33
- permit?: string;
34
- deadline: string;
35
- uuid: string;
36
- beneficiary?: Address;
37
- onlyParams?: boolean;
38
- }): Promise<TxObject>;
39
- }