@paraswap/dex-lib 2.48.2 → 2.48.4-etherfi.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 (232) hide show
  1. package/build/abi/algebra/AlgebraPool.abi.json +724 -724
  2. package/build/abi/etherfi/eETHPool.json +9 -0
  3. package/build/abi/etherfi/weETH.json +20 -0
  4. package/build/abi/uniswap-v3/UniswapV3Quoter.abi.json +191 -191
  5. package/build/abi/wombat/pool.json +1289 -0
  6. package/build/dex/algebra/algebra-pool.d.ts +37 -105
  7. package/build/dex/algebra/algebra-pool.js +322 -434
  8. package/build/dex/etherfi.d.ts +26 -0
  9. package/build/dex/etherfi.js +82 -0
  10. package/build/dex/etherfi.js.map +1 -0
  11. package/build/dex/index.js +2 -0
  12. package/build/dex/index.js.map +1 -1
  13. package/build/dex/solidly-v3/contract-math/Tick.js.map +1 -1
  14. package/build/dex/solidly-v3/contract-math/uniswap-v3-math.js +4 -4
  15. package/build/dex/solidly-v3/contract-math/uniswap-v3-math.js.map +1 -1
  16. package/build/dex/uniswap-v2/rebase-tokens.json +7 -0
  17. package/build/dex/uniswap-v3/config.js +20 -1
  18. package/build/dex/uniswap-v3/config.js.map +1 -1
  19. package/build/dex/uniswap-v3/uniswap-v3.js +1 -0
  20. package/build/dex/uniswap-v3/uniswap-v3.js.map +1 -1
  21. package/build/dex-helper/Cache.d.ts +31 -0
  22. package/build/dex-helper/Cache.js +106 -0
  23. package/build/dex-helper/Cache.js.map +1 -0
  24. package/build/dex-helper/RedisWrapper.d.ts +37 -0
  25. package/build/dex-helper/RedisWrapper.js +165 -0
  26. package/build/dex-helper/RedisWrapper.js.map +1 -0
  27. package/package.json +1 -1
  28. package/src/abi/etherfi/eETHPool.json +9 -0
  29. package/src/abi/etherfi/weETH.json +20 -0
  30. package/src/dex/etherfi.ts +144 -0
  31. package/src/dex/index.ts +2 -0
  32. package/src/dex/solidly-v3/contract-math/Tick.ts +1 -4
  33. package/src/dex/solidly-v3/contract-math/uniswap-v3-math.ts +6 -14
  34. package/src/dex/solidly-v3/solidly-v3-events.test.ts +9 -7
  35. package/src/dex/uniswap-v3/config.ts +22 -1
  36. package/src/dex/uniswap-v3/uniswap-v3-e2e.test.ts +25 -0
  37. package/src/dex/uniswap-v3/uniswap-v3-integration.test.ts +147 -0
  38. package/src/dex/uniswap-v3/uniswap-v3.ts +1 -0
  39. package/.idea/aws.xml +0 -17
  40. package/.idea/codeStyles/Project.xml +0 -19
  41. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  42. package/.idea/misc.xml +0 -6
  43. package/.idea/modules.xml +0 -8
  44. package/.idea/paraswap-dex-lib.iml +0 -9
  45. package/.idea/prettier.xml +0 -7
  46. package/.idea/vcs.xml +0 -6
  47. package/build/abi/AugustusV6.abi.json +0 -395
  48. package/build/abi/curve-v1/StableSwapFRXETH.json +0 -889
  49. package/build/abi/curve-v1/StableSwapWBETH.json +0 -1223
  50. package/build/abi/sushiswap-v3/QuoterV2.json +0 -267
  51. package/build/abi/sushiswap-v3/RouterProcessor3.json +0 -289
  52. package/build/abi/uniswap-v3/pancakeswap-v3/PancakeswapV3QuoterV2.abi.json +0 -285
  53. package/build/abi/uniswap-v3/pancakeswap-v3/PancakeswapV3Router.abi.json +0 -583
  54. package/build/abi/wBETH.json +0 -1527
  55. package/build/abi/woo-fi/WooFeeManager.abi.json +0 -318
  56. package/build/abi/woo-fi/WooPP.abi.json +0 -548
  57. package/build/abi/woo-fi/Wooracle.abi.json +0 -260
  58. package/build/dex/aave-v3/tokens/arbitrum.json +0 -50
  59. package/build/dex/aave-v3/tokens/avalanche.json +0 -74
  60. package/build/dex/aave-v3/tokens/fantom.json +0 -62
  61. package/build/dex/aave-v3/tokens/optimism.json +0 -50
  62. package/build/dex/aave-v3/tokens/polygon.json +0 -116
  63. package/build/dex/balancer-v2/Gyro3Pool.d.ts +0 -43
  64. package/build/dex/balancer-v2/Gyro3Pool.js +0 -160
  65. package/build/dex/balancer-v2/Gyro3Pool.js.map +0 -1
  66. package/build/dex/balancer-v2/LinearMath.d.ts +0 -88
  67. package/build/dex/balancer-v2/LinearMath.js +0 -285
  68. package/build/dex/balancer-v2/LinearMath.js.map +0 -1
  69. package/build/dex/balancer-v2/LinearPool.d.ts +0 -81
  70. package/build/dex/balancer-v2/LinearPool.js +0 -444
  71. package/build/dex/balancer-v2/LinearPool.js.map +0 -1
  72. package/build/dex/balancer-v2/PhantomStablePool.d.ts +0 -90
  73. package/build/dex/balancer-v2/PhantomStablePool.js +0 -418
  74. package/build/dex/balancer-v2/PhantomStablePool.js.map +0 -1
  75. package/build/dex/balancer-v2/StableMath.d.ts +0 -9
  76. package/build/dex/balancer-v2/StableMath.js +0 -272
  77. package/build/dex/balancer-v2/StableMath.js.map +0 -1
  78. package/build/dex/balancer-v2/balancer-v2-pool.d.ts +0 -140
  79. package/build/dex/balancer-v2/balancer-v2-pool.js +0 -647
  80. package/build/dex/balancer-v2/balancer-v2-pool.js.map +0 -1
  81. package/build/dex/curve-v1/pools/frxETHpool.d.ts +0 -7
  82. package/build/dex/curve-v1/pools/frxETHpool.js +0 -27
  83. package/build/dex/curve-v1/pools/frxETHpool.js.map +0 -1
  84. package/build/dex/curve-v1/pools/wbETHpool.d.ts +0 -29
  85. package/build/dex/curve-v1/pools/wbETHpool.js +0 -408
  86. package/build/dex/curve-v1/pools/wbETHpool.js.map +0 -1
  87. package/build/dex/lighter-v1/abi/erc20.json +0 -222
  88. package/build/dex/lighter-v1/abi/factory.json +0 -291
  89. package/build/dex/lighter-v1/abi/order_book.json +0 -594
  90. package/build/dex/lighter-v1/abi/order_book_helper.json +0 -176
  91. package/build/dex/lighter-v1/abi/router.json +0 -488
  92. package/build/dex/lighter-v1/config.d.ts +0 -4
  93. package/build/dex/lighter-v1/config.js +0 -17
  94. package/build/dex/lighter-v1/config.js.map +0 -1
  95. package/build/dex/lighter-v1/constants.d.ts +0 -2
  96. package/build/dex/lighter-v1/constants.js +0 -13
  97. package/build/dex/lighter-v1/constants.js.map +0 -1
  98. package/build/dex/lighter-v1/lighter-v1-pool.d.ts +0 -57
  99. package/build/dex/lighter-v1/lighter-v1-pool.js +0 -310
  100. package/build/dex/lighter-v1/lighter-v1-pool.js.map +0 -1
  101. package/build/dex/lighter-v1/lighter-v1.d.ts +0 -45
  102. package/build/dex/lighter-v1/lighter-v1.js +0 -331
  103. package/build/dex/lighter-v1/lighter-v1.js.map +0 -1
  104. package/build/dex/lighter-v1/types.d.ts +0 -40
  105. package/build/dex/lighter-v1/types.js +0 -3
  106. package/build/dex/lighter-v1/types.js.map +0 -1
  107. package/build/dex/pancakeswap-v3/types.d.ts +0 -14
  108. package/build/dex/pancakeswap-v3/types.js +0 -3
  109. package/build/dex/pancakeswap-v3/types.js.map +0 -1
  110. package/build/dex/quickswap-v3.d.ts +0 -21
  111. package/build/dex/quickswap-v3.js +0 -40
  112. package/build/dex/quickswap-v3.js.map +0 -1
  113. package/build/dex/ramses-v2/config.d.ts +0 -4
  114. package/build/dex/ramses-v2/config.js +0 -28
  115. package/build/dex/ramses-v2/config.js.map +0 -1
  116. package/build/dex/ramses-v2/constants.d.ts +0 -28
  117. package/build/dex/ramses-v2/constants.js +0 -35
  118. package/build/dex/ramses-v2/constants.js.map +0 -1
  119. package/build/dex/ramses-v2/contract-math/BitMath.d.ts +0 -4
  120. package/build/dex/ramses-v2/contract-math/BitMath.js +0 -93
  121. package/build/dex/ramses-v2/contract-math/BitMath.js.map +0 -1
  122. package/build/dex/ramses-v2/contract-math/FixedPoint128.d.ts +0 -3
  123. package/build/dex/ramses-v2/contract-math/FixedPoint128.js +0 -8
  124. package/build/dex/ramses-v2/contract-math/FixedPoint128.js.map +0 -1
  125. package/build/dex/ramses-v2/contract-math/FixedPoint96.d.ts +0 -4
  126. package/build/dex/ramses-v2/contract-math/FixedPoint96.js +0 -9
  127. package/build/dex/ramses-v2/contract-math/FixedPoint96.js.map +0 -1
  128. package/build/dex/ramses-v2/contract-math/FullMath.d.ts +0 -4
  129. package/build/dex/ramses-v2/contract-math/FullMath.js +0 -19
  130. package/build/dex/ramses-v2/contract-math/FullMath.js.map +0 -1
  131. package/build/dex/ramses-v2/contract-math/LiquidityMath.d.ts +0 -3
  132. package/build/dex/ramses-v2/contract-math/LiquidityMath.js +0 -22
  133. package/build/dex/ramses-v2/contract-math/LiquidityMath.js.map +0 -1
  134. package/build/dex/ramses-v2/contract-math/Oracle.d.ts +0 -10
  135. package/build/dex/ramses-v2/contract-math/Oracle.js +0 -133
  136. package/build/dex/ramses-v2/contract-math/Oracle.js.map +0 -1
  137. package/build/dex/ramses-v2/contract-math/SqrtPriceMath.d.ts +0 -10
  138. package/build/dex/ramses-v2/contract-math/SqrtPriceMath.js +0 -91
  139. package/build/dex/ramses-v2/contract-math/SqrtPriceMath.js.map +0 -1
  140. package/build/dex/ramses-v2/contract-math/SwapMath.d.ts +0 -8
  141. package/build/dex/ramses-v2/contract-math/SwapMath.js +0 -70
  142. package/build/dex/ramses-v2/contract-math/SwapMath.js.map +0 -1
  143. package/build/dex/ramses-v2/contract-math/Tick.d.ts +0 -7
  144. package/build/dex/ramses-v2/contract-math/Tick.js +0 -45
  145. package/build/dex/ramses-v2/contract-math/Tick.js.map +0 -1
  146. package/build/dex/ramses-v2/contract-math/TickBitMap.d.ts +0 -8
  147. package/build/dex/ramses-v2/contract-math/TickBitMap.js +0 -87
  148. package/build/dex/ramses-v2/contract-math/TickBitMap.js.map +0 -1
  149. package/build/dex/ramses-v2/contract-math/TickMath.d.ts +0 -8
  150. package/build/dex/ramses-v2/contract-math/TickMath.js +0 -162
  151. package/build/dex/ramses-v2/contract-math/TickMath.js.map +0 -1
  152. package/build/dex/ramses-v2/contract-math/UnsafeMath.d.ts +0 -3
  153. package/build/dex/ramses-v2/contract-math/UnsafeMath.js +0 -10
  154. package/build/dex/ramses-v2/contract-math/UnsafeMath.js.map +0 -1
  155. package/build/dex/ramses-v2/contract-math/uniswap-v3-math.d.ts +0 -18
  156. package/build/dex/ramses-v2/contract-math/uniswap-v3-math.js +0 -392
  157. package/build/dex/ramses-v2/contract-math/uniswap-v3-math.js.map +0 -1
  158. package/build/dex/ramses-v2/contract-math/utils.d.ts +0 -3
  159. package/build/dex/ramses-v2/contract-math/utils.js +0 -16
  160. package/build/dex/ramses-v2/contract-math/utils.js.map +0 -1
  161. package/build/dex/ramses-v2/ramses-v2-pool.d.ts +0 -42
  162. package/build/dex/ramses-v2/ramses-v2-pool.js +0 -307
  163. package/build/dex/ramses-v2/ramses-v2-pool.js.map +0 -1
  164. package/build/dex/ramses-v2/ramses-v2.d.ts +0 -61
  165. package/build/dex/ramses-v2/ramses-v2.js +0 -690
  166. package/build/dex/ramses-v2/ramses-v2.js.map +0 -1
  167. package/build/dex/ramses-v2/types.d.ts +0 -154
  168. package/build/dex/ramses-v2/types.js +0 -9
  169. package/build/dex/ramses-v2/types.js.map +0 -1
  170. package/build/dex/ramses-v2/utils.d.ts +0 -6
  171. package/build/dex/ramses-v2/utils.js +0 -71
  172. package/build/dex/ramses-v2/utils.js.map +0 -1
  173. package/build/dex/solidly/forks-override/fvm.d.ts +0 -20
  174. package/build/dex/solidly/forks-override/fvm.js +0 -42
  175. package/build/dex/solidly/forks-override/fvm.js.map +0 -1
  176. package/build/dex/sushiswap-v3/config.d.ts +0 -4
  177. package/build/dex/sushiswap-v3/config.js +0 -132
  178. package/build/dex/sushiswap-v3/config.js.map +0 -1
  179. package/build/dex/sushiswap-v3/constants.d.ts +0 -4
  180. package/build/dex/sushiswap-v3/constants.js +0 -32
  181. package/build/dex/sushiswap-v3/constants.js.map +0 -1
  182. package/build/dex/sushiswap-v3/sushiswap-v3-original.d.ts +0 -56
  183. package/build/dex/sushiswap-v3/sushiswap-v3-original.js +0 -598
  184. package/build/dex/sushiswap-v3/sushiswap-v3-original.js.map +0 -1
  185. package/build/dex/sushiswap-v3/sushiswap-v3-pool.d.ts +0 -1
  186. package/build/dex/sushiswap-v3/sushiswap-v3-pool.js +0 -6
  187. package/build/dex/sushiswap-v3/sushiswap-v3-pool.js.map +0 -1
  188. package/build/dex/sushiswap-v3/sushiswap-v3.d.ts +0 -21
  189. package/build/dex/sushiswap-v3/sushiswap-v3.js +0 -58
  190. package/build/dex/sushiswap-v3/sushiswap-v3.js.map +0 -1
  191. package/build/dex/sushiswap-v3/token.d.ts +0 -6
  192. package/build/dex/sushiswap-v3/token.js +0 -23
  193. package/build/dex/sushiswap-v3/token.js.map +0 -1
  194. package/build/dex/sushiswap-v3/types.d.ts +0 -15
  195. package/build/dex/sushiswap-v3/types.js +0 -18
  196. package/build/dex/sushiswap-v3/types.js.map +0 -1
  197. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.d.ts +0 -12
  198. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.js +0 -23
  199. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.js.map +0 -1
  200. package/build/dex/woo-fi/config.d.ts +0 -4
  201. package/build/dex/woo-fi/config.js +0 -141
  202. package/build/dex/woo-fi/config.js.map +0 -1
  203. package/build/dex/woo-fi/constants.d.ts +0 -5
  204. package/build/dex/woo-fi/constants.js +0 -20
  205. package/build/dex/woo-fi/constants.js.map +0 -1
  206. package/build/dex/woo-fi/types.d.ts +0 -48
  207. package/build/dex/woo-fi/types.js +0 -3
  208. package/build/dex/woo-fi/types.js.map +0 -1
  209. package/build/dex/woo-fi/woo-fi-decimal-math.d.ts +0 -14
  210. package/build/dex/woo-fi/woo-fi-decimal-math.js +0 -42
  211. package/build/dex/woo-fi/woo-fi-decimal-math.js.map +0 -1
  212. package/build/dex/woo-fi/woo-fi-math.d.ts +0 -31
  213. package/build/dex/woo-fi/woo-fi-math.js +0 -300
  214. package/build/dex/woo-fi/woo-fi-math.js.map +0 -1
  215. package/build/dex/woo-fi/woo-fi.d.ts +0 -65
  216. package/build/dex/woo-fi/woo-fi.js +0 -480
  217. package/build/dex/woo-fi/woo-fi.js.map +0 -1
  218. package/build/executor/Executor01BytecodeBuilder.d.ts +0 -77
  219. package/build/executor/Executor01BytecodeBuilder.js +0 -359
  220. package/build/executor/Executor01BytecodeBuilder.js.map +0 -1
  221. package/build/executor/Executor02BytecodeBuilder.d.ts +0 -12
  222. package/build/executor/Executor02BytecodeBuilder.js +0 -14
  223. package/build/executor/Executor02BytecodeBuilder.js.map +0 -1
  224. package/build/executor/ExecutorDetector.d.ts +0 -28
  225. package/build/executor/ExecutorDetector.js +0 -89
  226. package/build/executor/ExecutorDetector.js.map +0 -1
  227. package/build/executor/IExecutorBytecodeBuilder.d.ts +0 -6
  228. package/build/executor/IExecutorBytecodeBuilder.js +0 -3
  229. package/build/executor/IExecutorBytecodeBuilder.js.map +0 -1
  230. package/build/generic-swap-transaction-builder.d.ts +0 -39
  231. package/build/generic-swap-transaction-builder.js +0 -156
  232. 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":";;;AAGA,2EAAwE;AACxE,2EAA2E;AAE3E,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,+BAAkB,CAAA;IAClB,sBAAsB;AACxB,CAAC,EAHW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAGpB;AAED,IAAK,kBAMJ;AAND,WAAK,kBAAkB;IACrB,yEAAe,CAAA;IACf,yFAAuB,CAAA;IACvB,mCAAmC;IACnC,uDAAuD;IACvD,8DAA8D;AAChE,CAAC,EANI,kBAAkB,KAAlB,kBAAkB,QAMtB;AAED,MAAa,gBAAgB;IAa3B,YAAsB,SAAqB;QAArB,cAAS,GAAT,SAAS,CAAY;QAX3C,+DAA+D;QAErD,oCAA+B,GAAG;YAC1C,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,GAAG;YAC/C,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,EAAE,SAAS,CAAC,GAAG;YACvD,uDAAuD;YACvD,2EAA2E;YAC3E,mEAAmE;YACnE,mBAAmB;SACpB,CAAC;QAGA,IAAI,CAAC,yBAAyB,GAAG,IAAI,qDAAyB,CAC5D,IAAI,CAAC,SAAS,CACf,CAAC;QACF,kFAAkF;IACpF,CAAC;IACD;;;OAGG;IACO,qBAAqB,CAAC,UAAuB;QACrD,IACE,UAAU,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;YACjC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,GAAG;YACvC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAC1C;YACA,OAAO,kBAAkB,CAAC,WAAW,CAAC;SACvC;aAAM,IACL,UAAU,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;YACjC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,GAAG;YACvC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EACxC;YACA,IAAI,uBAAuB,GAAG,IAAI,CAAC;YACnC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBACvC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;oBAC1B,IAAI,EAAE,CAAC,OAAO,KAAK,GAAG,EAAE;wBACtB,uBAAuB,GAAG,KAAK,CAAC;qBACjC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,IAAI,uBAAuB,EAAE;gBAC3B,OAAO,kBAAkB,CAAC,mBAAmB,CAAC;aAC/C;SACF;QAED,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAED,uBAAuB,CAAC,UAAuB;QAC7C,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;QAClE,MAAM,YAAY,GAChB,IAAI,CAAC,+BAA+B,CAAC,kBAAkB,CAAC,CAAC;QAE3D,IAAI,YAAY,EAAE;YAChB,OAAO,YAAY,CAAC;SACrB;QAED,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,qBAAqB,CAAC,CAAC;IACxD,CAAC;IAED,UAAU,CAAC,YAAuB;QAChC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;YACpD,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,mBAAmB,CAAC,CAAC;SACrD;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAmB,CAAC,YAAY,CAAC,CAAC;IACtE,CAAC;IAED,kBAAkB,CAAC,YAAuB;QACxC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;YACpD,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,mBAAmB,CAAC,CAAC;SACrD;QAED,IAAI,YAAY,KAAK,SAAS,CAAC,GAAG,IAAI,IAAI,EAAE;YAC1C,mCAAmC;YACnC,OAAO,IAAI,CAAC,yBAAyB,CAAC;SACvC;QACD,0CAA0C;QAC1C,2CAA2C;QAC3C,IAAI;IACN,CAAC;CACF;AArFD,4CAqFC"}
@@ -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
- }