@paraswap/dex-lib 2.16.8-pancakeswapv3.0 → 2.17.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 (198) hide show
  1. package/.idea/aws.xml +17 -0
  2. package/.idea/codeStyles/Project.xml +19 -0
  3. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  4. package/.idea/misc.xml +6 -0
  5. package/.idea/modules.xml +8 -0
  6. package/.idea/paraswap-dex-lib.iml +9 -0
  7. package/.idea/vcs.xml +6 -0
  8. package/build/abi/woo-fi/WooFeeManager.abi.json +318 -0
  9. package/build/abi/woo-fi/WooPP.abi.json +548 -0
  10. package/build/abi/woo-fi/Wooracle.abi.json +260 -0
  11. package/build/config.js +4 -4
  12. package/build/dex/aave-v3/tokens/arbitrum.json +50 -0
  13. package/build/dex/aave-v3/tokens/avalanche.json +74 -0
  14. package/build/dex/aave-v3/tokens/fantom.json +62 -0
  15. package/build/dex/aave-v3/tokens/optimism.json +50 -0
  16. package/build/dex/aave-v3/tokens/polygon.json +116 -0
  17. package/build/dex/balancer-v2/balancer-v2.d.ts +14 -19
  18. package/build/dex/balancer-v2/balancer-v2.js +27 -22
  19. package/build/dex/balancer-v2/balancer-v2.js.map +1 -1
  20. package/build/dex/balancer-v2/config.d.ts +2 -7
  21. package/build/dex/balancer-v2/config.js +20 -30
  22. package/build/dex/balancer-v2/config.js.map +1 -1
  23. package/build/dex/balancer-v2/pools/balancer-v2-pool.d.ts +25 -0
  24. package/build/dex/balancer-v2/pools/balancer-v2-pool.js +107 -0
  25. package/build/dex/balancer-v2/pools/balancer-v2-pool.js.map +1 -0
  26. package/build/dex/balancer-v2/pools/linear/LinearMath.d.ts +20 -0
  27. package/build/dex/balancer-v2/pools/linear/LinearMath.js +179 -0
  28. package/build/dex/balancer-v2/pools/linear/LinearMath.js.map +1 -0
  29. package/build/dex/balancer-v2/pools/linear/LinearPool.d.ts +50 -0
  30. package/build/dex/balancer-v2/pools/linear/LinearPool.js +458 -0
  31. package/build/dex/balancer-v2/pools/linear/LinearPool.js.map +1 -0
  32. package/build/dex/balancer-v2/pools/phantom-stable/PhantomStableMath.d.ts +10 -0
  33. package/build/dex/balancer-v2/pools/phantom-stable/PhantomStableMath.js +314 -0
  34. package/build/dex/balancer-v2/pools/phantom-stable/PhantomStableMath.js.map +1 -0
  35. package/build/dex/balancer-v2/pools/phantom-stable/PhantomStablePool.d.ts +50 -0
  36. package/build/dex/balancer-v2/pools/phantom-stable/PhantomStablePool.js +367 -0
  37. package/build/dex/balancer-v2/pools/phantom-stable/PhantomStablePool.js.map +1 -0
  38. package/build/dex/balancer-v2/pools/stable/StableMath.d.ts +7 -0
  39. package/build/dex/balancer-v2/pools/stable/StableMath.js +111 -0
  40. package/build/dex/balancer-v2/pools/stable/StableMath.js.map +1 -0
  41. package/build/dex/balancer-v2/pools/stable/StablePool.d.ts +30 -0
  42. package/build/dex/balancer-v2/pools/stable/StablePool.js +129 -0
  43. package/build/dex/balancer-v2/pools/stable/StablePool.js.map +1 -0
  44. package/build/dex/balancer-v2/pools/weighted/WeightedMath.d.ts +6 -0
  45. package/build/dex/balancer-v2/pools/weighted/WeightedMath.js +61 -0
  46. package/build/dex/balancer-v2/pools/weighted/WeightedMath.js.map +1 -0
  47. package/build/dex/balancer-v2/pools/weighted/WeightedPool.d.ts +30 -0
  48. package/build/dex/balancer-v2/pools/weighted/WeightedPool.js +112 -0
  49. package/build/dex/balancer-v2/pools/weighted/WeightedPool.js.map +1 -0
  50. package/build/dex/balancer-v2/types.d.ts +1 -0
  51. package/build/dex/balancer-v2/types.js.map +1 -1
  52. package/build/dex/balancer-v2/utils.d.ts +3 -2
  53. package/build/dex/balancer-v2/utils.js +6 -4
  54. package/build/dex/balancer-v2/utils.js.map +1 -1
  55. package/build/dex/index.js +1 -1
  56. package/build/dex/index.js.map +1 -1
  57. package/build/dex/quickswap-v3.d.ts +21 -0
  58. package/build/dex/quickswap-v3.js +40 -0
  59. package/build/dex/quickswap-v3.js.map +1 -0
  60. package/build/dex/uniswap-v3/config.js +28 -0
  61. package/build/dex/uniswap-v3/config.js.map +1 -1
  62. package/build/dex/uniswap-v3/uniswap-v3-pool.d.ts +2 -1
  63. package/build/dex/uniswap-v3/uniswap-v3-pool.js +3 -2
  64. package/build/dex/uniswap-v3/uniswap-v3-pool.js.map +1 -1
  65. package/build/dex/uniswap-v3/uniswap-v3.js +1 -1
  66. package/build/dex/uniswap-v3/uniswap-v3.js.map +1 -1
  67. package/build/dex/{pancakeswap-v3 → woo-fi}/config.d.ts +2 -2
  68. package/build/dex/woo-fi/config.js +141 -0
  69. package/build/dex/woo-fi/config.js.map +1 -0
  70. package/build/dex/woo-fi/constants.d.ts +5 -0
  71. package/build/dex/woo-fi/constants.js +20 -0
  72. package/build/dex/woo-fi/constants.js.map +1 -0
  73. package/build/dex/woo-fi/types.d.ts +48 -0
  74. package/build/dex/woo-fi/types.js +3 -0
  75. package/build/dex/woo-fi/types.js.map +1 -0
  76. package/build/dex/woo-fi/woo-fi-decimal-math.d.ts +14 -0
  77. package/build/dex/woo-fi/woo-fi-decimal-math.js +42 -0
  78. package/build/dex/woo-fi/woo-fi-decimal-math.js.map +1 -0
  79. package/build/dex/woo-fi/woo-fi-math.d.ts +31 -0
  80. package/build/dex/woo-fi/woo-fi-math.js +300 -0
  81. package/build/dex/woo-fi/woo-fi-math.js.map +1 -0
  82. package/build/dex/woo-fi/woo-fi.d.ts +65 -0
  83. package/build/dex/woo-fi/woo-fi.js +480 -0
  84. package/build/dex/woo-fi/woo-fi.js.map +1 -0
  85. package/package.json +1 -1
  86. package/src/config.ts +4 -4
  87. package/src/dex/balancer-v2/balancer-v2-e2e.test.ts +538 -225
  88. package/src/dex/balancer-v2/balancer-v2-integration.test.ts +305 -122
  89. package/src/dex/balancer-v2/balancer-v2.ts +60 -56
  90. package/src/dex/balancer-v2/config.ts +23 -35
  91. package/src/dex/balancer-v2/pools/balancer-v2-pool.ts +274 -0
  92. package/src/dex/balancer-v2/{LinearMath.ts → pools/linear/LinearMath.ts} +11 -10
  93. package/src/dex/balancer-v2/{LinearPool.ts → pools/linear/LinearPool.ts} +210 -6
  94. package/src/dex/balancer-v2/{StableMath.ts → pools/phantom-stable/PhantomStableMath.ts} +101 -21
  95. package/src/dex/balancer-v2/{PhantomStablePool.ts → pools/phantom-stable/PhantomStablePool.ts} +167 -12
  96. package/src/dex/balancer-v2/pools/stable/StableMath.ts +204 -0
  97. package/src/dex/balancer-v2/pools/stable/StablePool.ts +221 -0
  98. package/src/dex/balancer-v2/pools/weighted/WeightedMath.ts +84 -0
  99. package/src/dex/balancer-v2/pools/weighted/WeightedPool.ts +189 -0
  100. package/src/dex/balancer-v2/types.ts +1 -0
  101. package/src/dex/balancer-v2/utils.ts +7 -1
  102. package/src/dex/index.ts +1 -1
  103. package/src/dex/uniswap-v3/config.ts +32 -0
  104. package/src/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.ts +28 -0
  105. package/src/dex/uniswap-v3/uniswap-v3-e2e.test.ts +156 -0
  106. package/src/dex/uniswap-v3/uniswap-v3-events.test.ts +0 -4
  107. package/src/dex/uniswap-v3/uniswap-v3-pool.ts +2 -1
  108. package/src/dex/uniswap-v3/uniswap-v3.ts +1 -0
  109. package/tests/constants-e2e.ts +33 -8
  110. package/build/abi/pancakeswap-v3/PancakeV3StateMulticall.abi.json +0 -781
  111. package/build/abi/pancakeswap-v3/PancakeswapV3Pool.abi.json +0 -1039
  112. package/build/abi/pancakeswap-v3/PancakeswapV3Quoter.abi.json +0 -285
  113. package/build/abi/pancakeswap-v3/PancakeswapV3Router.abi.json +0 -583
  114. package/build/dex/pancakeswap-v3/config.js +0 -62
  115. package/build/dex/pancakeswap-v3/config.js.map +0 -1
  116. package/build/dex/pancakeswap-v3/constants.d.ts +0 -23
  117. package/build/dex/pancakeswap-v3/constants.js +0 -29
  118. package/build/dex/pancakeswap-v3/constants.js.map +0 -1
  119. package/build/dex/pancakeswap-v3/contract-math/BitMath.d.ts +0 -4
  120. package/build/dex/pancakeswap-v3/contract-math/BitMath.js +0 -93
  121. package/build/dex/pancakeswap-v3/contract-math/BitMath.js.map +0 -1
  122. package/build/dex/pancakeswap-v3/contract-math/FixedPoint128.d.ts +0 -3
  123. package/build/dex/pancakeswap-v3/contract-math/FixedPoint128.js +0 -8
  124. package/build/dex/pancakeswap-v3/contract-math/FixedPoint128.js.map +0 -1
  125. package/build/dex/pancakeswap-v3/contract-math/FixedPoint96.d.ts +0 -4
  126. package/build/dex/pancakeswap-v3/contract-math/FixedPoint96.js +0 -9
  127. package/build/dex/pancakeswap-v3/contract-math/FixedPoint96.js.map +0 -1
  128. package/build/dex/pancakeswap-v3/contract-math/FullMath.d.ts +0 -4
  129. package/build/dex/pancakeswap-v3/contract-math/FullMath.js +0 -19
  130. package/build/dex/pancakeswap-v3/contract-math/FullMath.js.map +0 -1
  131. package/build/dex/pancakeswap-v3/contract-math/LiquidityMath.d.ts +0 -3
  132. package/build/dex/pancakeswap-v3/contract-math/LiquidityMath.js +0 -22
  133. package/build/dex/pancakeswap-v3/contract-math/LiquidityMath.js.map +0 -1
  134. package/build/dex/pancakeswap-v3/contract-math/Oracle.d.ts +0 -10
  135. package/build/dex/pancakeswap-v3/contract-math/Oracle.js +0 -133
  136. package/build/dex/pancakeswap-v3/contract-math/Oracle.js.map +0 -1
  137. package/build/dex/pancakeswap-v3/contract-math/SqrtPriceMath.d.ts +0 -10
  138. package/build/dex/pancakeswap-v3/contract-math/SqrtPriceMath.js +0 -91
  139. package/build/dex/pancakeswap-v3/contract-math/SqrtPriceMath.js.map +0 -1
  140. package/build/dex/pancakeswap-v3/contract-math/SwapMath.d.ts +0 -8
  141. package/build/dex/pancakeswap-v3/contract-math/SwapMath.js +0 -70
  142. package/build/dex/pancakeswap-v3/contract-math/SwapMath.js.map +0 -1
  143. package/build/dex/pancakeswap-v3/contract-math/Tick.d.ts +0 -7
  144. package/build/dex/pancakeswap-v3/contract-math/Tick.js +0 -45
  145. package/build/dex/pancakeswap-v3/contract-math/Tick.js.map +0 -1
  146. package/build/dex/pancakeswap-v3/contract-math/TickBitMap.d.ts +0 -8
  147. package/build/dex/pancakeswap-v3/contract-math/TickBitMap.js +0 -87
  148. package/build/dex/pancakeswap-v3/contract-math/TickBitMap.js.map +0 -1
  149. package/build/dex/pancakeswap-v3/contract-math/TickMath.d.ts +0 -8
  150. package/build/dex/pancakeswap-v3/contract-math/TickMath.js +0 -162
  151. package/build/dex/pancakeswap-v3/contract-math/TickMath.js.map +0 -1
  152. package/build/dex/pancakeswap-v3/contract-math/UnsafeMath.d.ts +0 -3
  153. package/build/dex/pancakeswap-v3/contract-math/UnsafeMath.js +0 -10
  154. package/build/dex/pancakeswap-v3/contract-math/UnsafeMath.js.map +0 -1
  155. package/build/dex/pancakeswap-v3/contract-math/pancakeswap-v3-math.d.ts +0 -18
  156. package/build/dex/pancakeswap-v3/contract-math/pancakeswap-v3-math.js +0 -407
  157. package/build/dex/pancakeswap-v3/contract-math/pancakeswap-v3-math.js.map +0 -1
  158. package/build/dex/pancakeswap-v3/contract-math/utils.d.ts +0 -3
  159. package/build/dex/pancakeswap-v3/contract-math/utils.js +0 -16
  160. package/build/dex/pancakeswap-v3/contract-math/utils.js.map +0 -1
  161. package/build/dex/pancakeswap-v3/pancakeswap-v3-pool.d.ts +0 -45
  162. package/build/dex/pancakeswap-v3/pancakeswap-v3-pool.js +0 -340
  163. package/build/dex/pancakeswap-v3/pancakeswap-v3-pool.js.map +0 -1
  164. package/build/dex/pancakeswap-v3/pancakeswap-v3.d.ts +0 -55
  165. package/build/dex/pancakeswap-v3/pancakeswap-v3.js +0 -605
  166. package/build/dex/pancakeswap-v3/pancakeswap-v3.js.map +0 -1
  167. package/build/dex/pancakeswap-v3/types.d.ts +0 -137
  168. package/build/dex/pancakeswap-v3/types.js +0 -9
  169. package/build/dex/pancakeswap-v3/types.js.map +0 -1
  170. package/build/dex/pancakeswap-v3/utils.d.ts +0 -6
  171. package/build/dex/pancakeswap-v3/utils.js +0 -65
  172. package/build/dex/pancakeswap-v3/utils.js.map +0 -1
  173. package/src/abi/pancakeswap-v3/PancakeV3StateMulticall.abi.json +0 -781
  174. package/src/abi/pancakeswap-v3/PancakeswapV3Pool.abi.json +0 -1039
  175. package/src/dex/balancer-v2/balancer-v2-pool.ts +0 -744
  176. package/src/dex/pancakeswap-v3/config.ts +0 -68
  177. package/src/dex/pancakeswap-v3/constants.ts +0 -35
  178. package/src/dex/pancakeswap-v3/contract-math/BitMath.ts +0 -90
  179. package/src/dex/pancakeswap-v3/contract-math/FixedPoint128.ts +0 -3
  180. package/src/dex/pancakeswap-v3/contract-math/FixedPoint96.ts +0 -4
  181. package/src/dex/pancakeswap-v3/contract-math/FullMath.ts +0 -30
  182. package/src/dex/pancakeswap-v3/contract-math/LiquidityMath.ts +0 -17
  183. package/src/dex/pancakeswap-v3/contract-math/Oracle.ts +0 -226
  184. package/src/dex/pancakeswap-v3/contract-math/SqrtPriceMath.ts +0 -226
  185. package/src/dex/pancakeswap-v3/contract-math/SwapMath.ts +0 -139
  186. package/src/dex/pancakeswap-v3/contract-math/Tick.ts +0 -82
  187. package/src/dex/pancakeswap-v3/contract-math/TickBitMap.ts +0 -128
  188. package/src/dex/pancakeswap-v3/contract-math/TickMath.ts +0 -211
  189. package/src/dex/pancakeswap-v3/contract-math/UnsafeMath.ts +0 -5
  190. package/src/dex/pancakeswap-v3/contract-math/pancakeswap-v3-math.ts +0 -691
  191. package/src/dex/pancakeswap-v3/contract-math/utils.ts +0 -11
  192. package/src/dex/pancakeswap-v3/pancakeswap-v3-e2e.test.ts +0 -168
  193. package/src/dex/pancakeswap-v3/pancakeswap-v3-events.test.ts +0 -124
  194. package/src/dex/pancakeswap-v3/pancakeswap-v3-integration.test.ts +0 -338
  195. package/src/dex/pancakeswap-v3/pancakeswap-v3-pool.ts +0 -554
  196. package/src/dex/pancakeswap-v3/pancakeswap-v3.ts +0 -1000
  197. /package/src/abi/{pancakeswap-v3/PancakeswapV3Quoter.abi.json → uniswap-v3/pancakeswap-v3/PancakeswapV3QuoterV2.abi.json} +0 -0
  198. /package/src/abi/{pancakeswap-v3 → uniswap-v3/pancakeswap-v3}/PancakeswapV3Router.abi.json +0 -0
@@ -0,0 +1,129 @@
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.StablePool = void 0;
7
+ const abi_1 = require("@ethersproject/abi");
8
+ const stable_pool_json_1 = __importDefault(require("../../../../abi/balancer-v2/stable-pool.json"));
9
+ const meta_stable_pool_json_1 = __importDefault(require("../../../../abi/balancer-v2/meta-stable-pool.json"));
10
+ const utils_1 = require("../../utils");
11
+ const balancer_v2_pool_1 = require("../balancer-v2-pool");
12
+ const StableMath_1 = require("./StableMath");
13
+ class StablePool extends balancer_v2_pool_1.BaseGeneralPool {
14
+ constructor(vaultAddress, vaultInterface) {
15
+ super();
16
+ this.vaultAddress = vaultAddress;
17
+ this.vaultInterface = vaultInterface;
18
+ this.poolInterface = new abi_1.Interface(stable_pool_json_1.default);
19
+ this.metaPoolInterface = new abi_1.Interface(meta_stable_pool_json_1.default);
20
+ }
21
+ _onSwapGivenOut(tokenAmountsOut, balances, indexIn, indexOut, _amplificationParameter) {
22
+ return StableMath_1.StableMath._calcInGivenOut(_amplificationParameter, balances, indexIn, indexOut, tokenAmountsOut);
23
+ }
24
+ _onSwapGivenIn(tokenAmountsIn, balances, indexIn, indexOut, _amplificationParameter) {
25
+ return StableMath_1.StableMath._calcOutGivenIn(_amplificationParameter, balances, indexIn, indexOut, tokenAmountsIn);
26
+ }
27
+ /*
28
+ Helper function to parse pool data into params for onSell/onBuy functions.
29
+ */
30
+ parsePoolPairData(pool, poolState, tokenIn, tokenOut) {
31
+ let indexIn = 0, indexOut = 0;
32
+ const scalingFactors = [];
33
+ const balances = poolState.orderedTokens.map((tokenAddress, i) => {
34
+ const t = pool.tokensMap[tokenAddress.toLowerCase()] || poolState.tokens[tokenAddress.toLowerCase()];
35
+ if (t.address.toLowerCase() === tokenIn.toLowerCase()) {
36
+ indexIn = i;
37
+ }
38
+ if (t.address.toLowerCase() === tokenOut.toLowerCase()) {
39
+ indexOut = i;
40
+ }
41
+ if (pool.poolType === 'MetaStable') {
42
+ scalingFactors.push(poolState.tokens[t.address.toLowerCase()].scalingFactor || 0n);
43
+ }
44
+ else
45
+ scalingFactors.push((0, utils_1.getTokenScalingFactor)(t.decimals));
46
+ return poolState.tokens[t.address.toLowerCase()].balance;
47
+ });
48
+ const poolPairData = {
49
+ balances,
50
+ indexIn,
51
+ indexOut,
52
+ scalingFactors,
53
+ swapFee: poolState.swapFee,
54
+ amp: poolState.amp ? poolState.amp : 0n,
55
+ };
56
+ return poolPairData;
57
+ }
58
+ /*
59
+ Helper function to construct onchain multicall data for StablePool.
60
+ */
61
+ getOnChainCalls(pool) {
62
+ const poolCallData = [
63
+ {
64
+ target: this.vaultAddress,
65
+ callData: this.vaultInterface.encodeFunctionData('getPoolTokens', [
66
+ pool.id,
67
+ ]),
68
+ },
69
+ {
70
+ target: pool.address,
71
+ callData: this.poolInterface.encodeFunctionData('getSwapFeePercentage'),
72
+ },
73
+ {
74
+ target: pool.address,
75
+ callData: this.poolInterface.encodeFunctionData('getAmplificationParameter'),
76
+ },
77
+ ];
78
+ if (pool.poolType === 'MetaStable') {
79
+ poolCallData.push({
80
+ target: pool.address,
81
+ callData: this.metaPoolInterface.encodeFunctionData('getScalingFactors'),
82
+ });
83
+ }
84
+ return poolCallData;
85
+ }
86
+ /*
87
+ Helper function to decodes multicall data for a Stable Pool.
88
+ data must contain returnData
89
+ startIndex is where to start in returnData. Allows this decode function to be called along with other pool types.
90
+ */
91
+ decodeOnChainCalls(pool, data, startIndex) {
92
+ const pools = {};
93
+ const poolTokens = (0, utils_1.decodeThrowError)(this.vaultInterface, 'getPoolTokens', data[startIndex++], pool.address);
94
+ const swapFee = (0, utils_1.decodeThrowError)(this.poolInterface, 'getSwapFeePercentage', data[startIndex++], pool.address)[0];
95
+ const amp = (0, utils_1.decodeThrowError)(this.poolInterface, 'getAmplificationParameter', data[startIndex++], pool.address);
96
+ let scalingFactors;
97
+ if (pool.poolType === 'MetaStable') {
98
+ scalingFactors = (0, utils_1.decodeThrowError)(this.metaPoolInterface, 'getScalingFactors', data[startIndex++], pool.address)[0];
99
+ }
100
+ const poolState = {
101
+ swapFee: BigInt(swapFee.toString()),
102
+ tokens: poolTokens.tokens.reduce((ptAcc, pt, j) => {
103
+ const tokenState = {
104
+ balance: BigInt(poolTokens.balances[j].toString()),
105
+ };
106
+ if (scalingFactors)
107
+ tokenState.scalingFactor = BigInt(scalingFactors[j].toString());
108
+ ptAcc[pt.toLowerCase()] = tokenState;
109
+ return ptAcc;
110
+ }, {}),
111
+ orderedTokens: poolTokens.tokens,
112
+ };
113
+ if (amp) {
114
+ poolState.amp = BigInt(amp.value.toString());
115
+ }
116
+ pools[pool.address] = poolState;
117
+ return [pools, startIndex];
118
+ }
119
+ /*
120
+ For stable pools there is no Swap limit. As an approx - use almost the total balance of token out as we can add any amount of tokenIn and expect some back.
121
+ */
122
+ getSwapMaxAmount(poolPairData, side) {
123
+ return ((this._upscale(poolPairData.balances[poolPairData.indexOut], poolPairData.scalingFactors[poolPairData.indexOut]) *
124
+ 99n) /
125
+ 100n);
126
+ }
127
+ }
128
+ exports.StablePool = StablePool;
129
+ //# sourceMappingURL=StablePool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StablePool.js","sourceRoot":"","sources":["../../../../../src/dex/balancer-v2/pools/stable/StablePool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare class WeightedMath {
2
+ static _MAX_IN_RATIO: bigint;
3
+ static _MAX_OUT_RATIO: bigint;
4
+ static _calcInGivenOut(balanceIn: bigint, weightIn: bigint, balanceOut: bigint, weightOut: bigint, amountsOut: bigint[]): bigint[];
5
+ static _calcOutGivenIn(balanceIn: bigint, weightIn: bigint, balanceOut: bigint, weightOut: bigint, amountsIn: bigint[]): bigint[];
6
+ }
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WeightedMath = void 0;
4
+ const balancer_v2_math_1 = require("../../balancer-v2-math");
5
+ const _require = (b, message) => {
6
+ if (!b)
7
+ throw new Error(message);
8
+ };
9
+ class WeightedMath {
10
+ static _calcInGivenOut(balanceIn, weightIn, balanceOut, weightOut, amountsOut) {
11
+ /* https://docs.balancer.fi/reference/math/weighted-math.html#ingivenout */
12
+ /**********************************************************************************************
13
+ // outGivenOut //
14
+ // aI = amountIn //
15
+ // bI = balanceIn //
16
+ // bO = balanceOut / / bO \ (wO / wI) \ //
17
+ // aO = amountOut aI = bI * | | -------------------------- | ^ - 1 | //
18
+ // wI = weightIn \ \ ( bO - aO ) / / //
19
+ // wO = weightOut //
20
+ *********************************************************************************************/
21
+ const exponent = balancer_v2_math_1.MathSol.divUpFixed(weightOut, weightIn);
22
+ return amountsOut.map(amountOut => {
23
+ _require(amountOut <= balancer_v2_math_1.MathSol.mulDownFixed(balanceOut, this._MAX_OUT_RATIO), 'Errors.MAX_OUT_RATIO');
24
+ const denominator = balanceOut - amountOut;
25
+ const base = balancer_v2_math_1.MathSol.divUpFixed(balanceOut, denominator);
26
+ const power = balancer_v2_math_1.MathSol.powUpFixed(base, exponent);
27
+ const ratio = balancer_v2_math_1.MathSol.sub(power, balancer_v2_math_1.MathSol.ONE);
28
+ return balancer_v2_math_1.MathSol.mulUpFixed(balanceIn, ratio);
29
+ });
30
+ }
31
+ // Computes how many tokens can be taken out of a pool if `amountIn` are sent, given the
32
+ // current balances and weights.
33
+ static _calcOutGivenIn(balanceIn, weightIn, balanceOut, weightOut, amountsIn) {
34
+ /* https://docs.balancer.fi/reference/math/weighted-math.html#outgivenin */
35
+ /**********************************************************************************************
36
+ // outGivenIn //
37
+ // aO = amountOut //
38
+ // bO = balanceOut //
39
+ // bI = balanceIn / / bI \ (wI / wO) \ //
40
+ // aI = amountIn aO = bO * | 1 - | -------------------------- | ^ | //
41
+ // wI = weightIn \ \ ( bI + aI ) / / //
42
+ // wO = weightOut //
43
+ **********************************************************************************************/
44
+ // Amount out, so we round down overall.
45
+ // The multiplication rounds down, and the subtrahend (power) rounds up (so the base rounds up too).
46
+ // Because bI / (bI + aI) <= 1, the exponent rounds down.
47
+ // Cannot exceed maximum in ratio
48
+ const exponent = balancer_v2_math_1.MathSol.divDownFixed(weightIn, weightOut);
49
+ return amountsIn.map(amountIn => {
50
+ _require(amountIn <= balancer_v2_math_1.MathSol.mulDownFixed(balanceIn, this._MAX_IN_RATIO), 'Errors.MAX_IN_RATIO');
51
+ const denominator = balanceIn + amountIn;
52
+ const base = balancer_v2_math_1.MathSol.divUpFixed(balanceIn, denominator);
53
+ const power = balancer_v2_math_1.MathSol.powUpFixed(base, exponent);
54
+ return balancer_v2_math_1.MathSol.mulDownFixed(balanceOut, balancer_v2_math_1.MathSol.complementFixed(power));
55
+ });
56
+ }
57
+ }
58
+ exports.WeightedMath = WeightedMath;
59
+ WeightedMath._MAX_IN_RATIO = 300000000000000000n;
60
+ WeightedMath._MAX_OUT_RATIO = 300000000000000000n;
61
+ //# sourceMappingURL=WeightedMath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WeightedMath.js","sourceRoot":"","sources":["../../../../../src/dex/balancer-v2/pools/weighted/WeightedMath.ts"],"names":[],"mappings":";;;AAAA,6DAAiD;AAEjD,MAAM,QAAQ,GAAG,CAAC,CAAU,EAAE,OAAe,EAAE,EAAE;IAC/C,IAAI,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC,CAAC;AAEF,MAAa,YAAY;IAIvB,MAAM,CAAC,eAAe,CACpB,SAAiB,EACjB,QAAgB,EAChB,UAAkB,EAClB,SAAiB,EACjB,UAAoB;QAEpB,2EAA2E;QAC3E;;;;;;;;sGAQ8F;QAC9F,MAAM,QAAQ,GAAG,0BAAO,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACzD,OAAO,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;YAChC,QAAQ,CACN,SAAS,IAAI,0BAAO,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,EAClE,sBAAsB,CACvB,CAAC;YAEF,MAAM,WAAW,GAAG,UAAU,GAAG,SAAS,CAAC;YAC3C,MAAM,IAAI,GAAG,0BAAO,CAAC,UAAU,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YACzD,MAAM,KAAK,GAAG,0BAAO,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACjD,MAAM,KAAK,GAAG,0BAAO,CAAC,GAAG,CAAC,KAAK,EAAE,0BAAO,CAAC,GAAG,CAAC,CAAC;YAE9C,OAAO,0BAAO,CAAC,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,wFAAwF;IACxF,gCAAgC;IAChC,MAAM,CAAC,eAAe,CACpB,SAAiB,EACjB,QAAgB,EAChB,UAAkB,EAClB,SAAiB,EACjB,SAAmB;QAEnB,2EAA2E;QAC3E;;;;;;;;sGAQ8F;QAE9F,wCAAwC;QAExC,oGAAoG;QACpG,yDAAyD;QAEzD,iCAAiC;QAEjC,MAAM,QAAQ,GAAG,0BAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC3D,OAAO,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAC9B,QAAQ,CACN,QAAQ,IAAI,0BAAO,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,EAC/D,qBAAqB,CACtB,CAAC;YACF,MAAM,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;YACzC,MAAM,IAAI,GAAG,0BAAO,CAAC,UAAU,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YACxD,MAAM,KAAK,GAAG,0BAAO,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAEjD,OAAO,0BAAO,CAAC,YAAY,CAAC,UAAU,EAAE,0BAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;IACL,CAAC;;AA5EH,oCA6EC;AA5EQ,0BAAa,GAAG,mBAAmB,CAAC;AACpC,2BAAc,GAAG,mBAAmB,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { Interface } from '@ethersproject/abi';
2
+ import { callData, PoolState, SubgraphPoolBase } from '../../types';
3
+ import { SwapSide } from '../../../../constants';
4
+ import { BaseMinimalSwapInfoPool } from '../balancer-v2-pool';
5
+ export declare type WeightedPoolPairData = {
6
+ tokenInBalance: bigint;
7
+ tokenOutBalance: bigint;
8
+ tokenInScalingFactor: bigint;
9
+ tokenOutScalingFactor: bigint;
10
+ tokenInWeight: bigint;
11
+ tokenOutWeight: bigint;
12
+ swapFee: bigint;
13
+ };
14
+ export declare class WeightedPool extends BaseMinimalSwapInfoPool {
15
+ vaultAddress: string;
16
+ vaultInterface: Interface;
17
+ poolInterface: Interface;
18
+ constructor(vaultAddress: string, vaultInterface: Interface);
19
+ _onSwapGivenOut(tokenAmountsOut: bigint[], currentBalanceTokenIn: bigint, currentBalanceTokenOut: bigint, _weightIn: bigint, _weightOut: bigint): bigint[];
20
+ _onSwapGivenIn(tokenAmountsIn: bigint[], currentBalanceTokenIn: bigint, currentBalanceTokenOut: bigint, _weightIn: bigint, _weightOut: bigint): bigint[];
21
+ parsePoolPairData(pool: SubgraphPoolBase, poolState: PoolState, tokenIn: string, tokenOut: string): WeightedPoolPairData;
22
+ getOnChainCalls(pool: SubgraphPoolBase): callData[];
23
+ decodeOnChainCalls(pool: SubgraphPoolBase, data: {
24
+ success: boolean;
25
+ returnData: any;
26
+ }[], startIndex: number): [{
27
+ [address: string]: PoolState;
28
+ }, number];
29
+ getSwapMaxAmount(poolPairData: WeightedPoolPairData, side: SwapSide): bigint;
30
+ }
@@ -0,0 +1,112 @@
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.WeightedPool = void 0;
7
+ const abi_1 = require("@ethersproject/abi");
8
+ const weighted_pool_json_1 = __importDefault(require("../../../../abi/balancer-v2/weighted-pool.json"));
9
+ const utils_1 = require("../../utils");
10
+ const constants_1 = require("../../../../constants");
11
+ const balancer_v2_pool_1 = require("../balancer-v2-pool");
12
+ const WeightedMath_1 = require("./WeightedMath");
13
+ class WeightedPool extends balancer_v2_pool_1.BaseMinimalSwapInfoPool {
14
+ constructor(vaultAddress, vaultInterface) {
15
+ super();
16
+ this.vaultAddress = vaultAddress;
17
+ this.vaultInterface = vaultInterface;
18
+ this.poolInterface = new abi_1.Interface(weighted_pool_json_1.default);
19
+ }
20
+ _onSwapGivenOut(tokenAmountsOut, currentBalanceTokenIn, currentBalanceTokenOut, _weightIn, _weightOut) {
21
+ return WeightedMath_1.WeightedMath._calcInGivenOut(currentBalanceTokenIn, _weightIn, currentBalanceTokenOut, _weightOut, tokenAmountsOut);
22
+ }
23
+ _onSwapGivenIn(tokenAmountsIn, currentBalanceTokenIn, currentBalanceTokenOut, _weightIn, _weightOut) {
24
+ return WeightedMath_1.WeightedMath._calcOutGivenIn(currentBalanceTokenIn, _weightIn, currentBalanceTokenOut, _weightOut, tokenAmountsIn);
25
+ }
26
+ /*
27
+ Helper function to parse pool data into params for onSell function.
28
+ */
29
+ parsePoolPairData(pool, poolState, tokenIn, tokenOut) {
30
+ const inAddress = tokenIn.toLowerCase();
31
+ const outAddress = tokenOut.toLowerCase();
32
+ const tIn = pool.tokens.find(t => t.address.toLowerCase() === inAddress);
33
+ const tOut = pool.tokens.find(t => t.address.toLowerCase() === outAddress);
34
+ if (!tIn || !tOut)
35
+ return {};
36
+ const tokenInBalance = poolState.tokens[inAddress].balance;
37
+ const tokenOutBalance = poolState.tokens[outAddress].balance;
38
+ const tokenInWeight = poolState.tokens[inAddress].weight || 0n;
39
+ const tokenOutWeight = poolState.tokens[outAddress].weight || 0n;
40
+ const tokenInScalingFactor = (0, utils_1.getTokenScalingFactor)(tIn.decimals);
41
+ const tokenOutScalingFactor = (0, utils_1.getTokenScalingFactor)(tOut.decimals);
42
+ const poolPairData = {
43
+ tokenInBalance,
44
+ tokenOutBalance,
45
+ tokenInScalingFactor,
46
+ tokenOutScalingFactor,
47
+ tokenInWeight,
48
+ tokenOutWeight,
49
+ swapFee: poolState.swapFee,
50
+ };
51
+ return poolPairData;
52
+ }
53
+ /*
54
+ Helper function to construct onchain multicall data for WeightedPool (also 'LiquidityBootstrapping' and 'Investment' pool types).
55
+ */
56
+ getOnChainCalls(pool) {
57
+ return [
58
+ {
59
+ target: this.vaultAddress,
60
+ callData: this.vaultInterface.encodeFunctionData('getPoolTokens', [
61
+ pool.id,
62
+ ]),
63
+ },
64
+ {
65
+ target: pool.address,
66
+ callData: this.poolInterface.encodeFunctionData('getSwapFeePercentage'),
67
+ },
68
+ {
69
+ target: pool.address,
70
+ callData: this.poolInterface.encodeFunctionData('getNormalizedWeights'),
71
+ },
72
+ ];
73
+ }
74
+ /*
75
+ Helper function to decodes multicall data for a Weighted Pool.
76
+ data must contain returnData
77
+ startIndex is where to start in returnData. Allows this decode function to be called along with other pool types.
78
+ */
79
+ decodeOnChainCalls(pool, data, startIndex) {
80
+ const pools = {};
81
+ const poolTokens = (0, utils_1.decodeThrowError)(this.vaultInterface, 'getPoolTokens', data[startIndex++], pool.address);
82
+ const swapFee = (0, utils_1.decodeThrowError)(this.poolInterface, 'getSwapFeePercentage', data[startIndex++], pool.address)[0];
83
+ const normalisedWeights = (0, utils_1.decodeThrowError)(this.poolInterface, 'getNormalizedWeights', data[startIndex++], pool.address)[0];
84
+ const poolState = {
85
+ swapFee: BigInt(swapFee.toString()),
86
+ tokens: poolTokens.tokens.reduce((ptAcc, pt, j) => {
87
+ const tokenState = {
88
+ balance: BigInt(poolTokens.balances[j].toString()),
89
+ };
90
+ if (normalisedWeights)
91
+ tokenState.weight = BigInt(normalisedWeights[j].toString());
92
+ ptAcc[pt.toLowerCase()] = tokenState;
93
+ return ptAcc;
94
+ }, {}),
95
+ orderedTokens: poolTokens.tokens,
96
+ };
97
+ pools[pool.address] = poolState;
98
+ return [pools, startIndex];
99
+ }
100
+ /*
101
+ For weighted pools there is a Swap limit of 30%: amounts swapped may not be larger than this percentage of total balance.
102
+ */
103
+ getSwapMaxAmount(poolPairData, side) {
104
+ return (((side === constants_1.SwapSide.SELL
105
+ ? poolPairData.tokenInBalance
106
+ : poolPairData.tokenOutBalance) *
107
+ 3n) /
108
+ 10n);
109
+ }
110
+ }
111
+ exports.WeightedPool = WeightedPool;
112
+ //# sourceMappingURL=WeightedPool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WeightedPool.js","sourceRoot":"","sources":["../../../../../src/dex/balancer-v2/pools/weighted/WeightedPool.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,7 @@ export declare type PoolState = {
29
29
  };
30
30
  swapFee: bigint;
31
31
  orderedTokens: string[];
32
+ rate?: bigint;
32
33
  amp?: bigint;
33
34
  mainIndex?: number;
34
35
  wrappedIndex?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/dex/balancer-v2/types.ts"],"names":[],"mappings":";;;AAEA,mEAAmE;AACnE,IAAY,iBAkBX;AAlBD,WAAY,iBAAiB;IAC3B,0CAAqB,CAAA;IACrB,sCAAiB,CAAA;IACjB,8CAAyB,CAAA;IACzB,sEAAiD,CAAA;IACjD,8CAAyB,CAAA;IACzB,oDAA+B,CAAA;IAC/B,0DAAqC,CAAA;IACrC,sCAAiB,CAAA;IACjB,8CAAyB,CAAA;IACzB,oDAA+B,CAAA;IAC/B,gDAA2B,CAAA;IAC3B,oDAA+B,CAAA;IAC/B,gDAA2B,CAAA;IAC3B,kDAA6B,CAAA;IAC7B,8CAAyB,CAAA;IACzB,8CAAyB,CAAA;IACzB,gDAA2B,CAAA;AAC7B,CAAC,EAlBW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAkB5B;AAmFD,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,uDAAW,CAAA;IACX,yDAAY,CAAA;AACd,CAAC,EAHW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAGpB"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/dex/balancer-v2/types.ts"],"names":[],"mappings":";;;AAEA,mEAAmE;AACnE,IAAY,iBAkBX;AAlBD,WAAY,iBAAiB;IAC3B,0CAAqB,CAAA;IACrB,sCAAiB,CAAA;IACjB,8CAAyB,CAAA;IACzB,sEAAiD,CAAA;IACjD,8CAAyB,CAAA;IACzB,oDAA+B,CAAA;IAC/B,0DAAqC,CAAA;IACrC,sCAAiB,CAAA;IACjB,8CAAyB,CAAA;IACzB,oDAA+B,CAAA;IAC/B,gDAA2B,CAAA;IAC3B,oDAA+B,CAAA;IAC/B,gDAA2B,CAAA;IAC3B,kDAA6B,CAAA;IAC7B,8CAAyB,CAAA;IACzB,8CAAyB,CAAA;IACzB,gDAA2B,CAAA;AAC7B,CAAC,EAlBW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAkB5B;AAoFD,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,uDAAW,CAAA;IACX,yDAAY,CAAA;AACd,CAAC,EAHW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAGpB"}
@@ -1,4 +1,5 @@
1
1
  import { Interface, Result } from '@ethersproject/abi';
2
+ import { SwapSide } from '../../constants';
2
3
  import { SubgraphMainToken, SubgraphPoolAddressDictionary, SubgraphPoolBase, SubgraphToken } from './types';
3
4
  interface BalancerPathHop {
4
5
  pool: SubgraphPoolBase;
@@ -11,7 +12,7 @@ export declare function decodeThrowError(contractInterface: Interface, functionN
11
12
  success: boolean;
12
13
  returnData: any;
13
14
  }, poolAddress: string): Result;
14
- export declare function poolGetPathForTokenInOut(tokenInAddress: string, tokenOutAddress: string, pool: SubgraphPoolBase, poolsMap: SubgraphPoolAddressDictionary): BalancerPathHop[];
15
- export declare function getAllPoolsUsedInPaths(from: string, to: string, allowedPools: SubgraphPoolBase[], poolAddressMap: SubgraphPoolAddressDictionary): SubgraphPoolBase[];
15
+ export declare function poolGetPathForTokenInOut(tokenInAddress: string, tokenOutAddress: string, pool: SubgraphPoolBase, poolsMap: SubgraphPoolAddressDictionary, side: SwapSide): BalancerPathHop[];
16
+ export declare function getAllPoolsUsedInPaths(from: string, to: string, allowedPools: SubgraphPoolBase[], poolAddressMap: SubgraphPoolAddressDictionary, side: SwapSide): SubgraphPoolBase[];
16
17
  export declare function poolGetMainTokens(pool: Omit<SubgraphPoolBase, 'mainTokens'>, poolsMap: SubgraphPoolAddressDictionary): SubgraphMainToken[];
17
18
  export {};
@@ -4,6 +4,7 @@ exports.poolGetMainTokens = exports.getAllPoolsUsedInPaths = exports.poolGetPath
4
4
  const address_1 = require("@ethersproject/address");
5
5
  const utils_1 = require("../../utils");
6
6
  const bigint_constants_1 = require("../../bigint-constants");
7
+ const constants_1 = require("../../constants");
7
8
  const types_1 = require("./types");
8
9
  const lodash_1 = require("lodash");
9
10
  const isSameAddress = (address1, address2) => (0, address_1.getAddress)(address1) === (0, address_1.getAddress)(address2);
@@ -18,7 +19,7 @@ function decodeThrowError(contractInterface, functionName, resultEntry, poolAddr
18
19
  return contractInterface.decodeFunctionResult(functionName, resultEntry.returnData);
19
20
  }
20
21
  exports.decodeThrowError = decodeThrowError;
21
- function poolGetPathForTokenInOut(tokenInAddress, tokenOutAddress, pool, poolsMap) {
22
+ function poolGetPathForTokenInOut(tokenInAddress, tokenOutAddress, pool, poolsMap, side) {
22
23
  const tokenIn = findRequiredMainTokenInPool(tokenInAddress, pool);
23
24
  const tokenOut = findRequiredMainTokenInPool(tokenOutAddress, pool);
24
25
  const tokenInHops = (0, lodash_1.reverse)([...tokenIn.pathToToken]).map(hop => ({
@@ -31,17 +32,18 @@ function poolGetPathForTokenInOut(tokenInAddress, tokenOutAddress, pool, poolsMa
31
32
  tokenIn: { address: hop.poolAddress, decimals: 18 },
32
33
  tokenOut: hop.token,
33
34
  }));
34
- return [
35
+ const result = [
35
36
  ...tokenInHops,
36
37
  { pool, tokenIn: tokenIn.poolToken, tokenOut: tokenOut.poolToken },
37
38
  ...tokenOutHops,
38
39
  ];
40
+ return side === constants_1.SwapSide.SELL ? result : result.reverse();
39
41
  }
40
42
  exports.poolGetPathForTokenInOut = poolGetPathForTokenInOut;
41
- function getAllPoolsUsedInPaths(from, to, allowedPools, poolAddressMap) {
43
+ function getAllPoolsUsedInPaths(from, to, allowedPools, poolAddressMap, side) {
42
44
  //get all pools from the nested paths
43
45
  return (0, lodash_1.uniqBy)(allowedPools
44
- .map(pool => poolGetPathForTokenInOut(from.toLowerCase(), to.toLowerCase(), pool, poolAddressMap).map(hop => hop.pool))
46
+ .map(pool => poolGetPathForTokenInOut(from.toLowerCase(), to.toLowerCase(), pool, poolAddressMap, side).map(hop => hop.pool))
45
47
  .flat(), 'address');
46
48
  }
47
49
  exports.getAllPoolsUsedInPaths = getAllPoolsUsedInPaths;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/dex/balancer-v2/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/dex/balancer-v2/utils.ts"],"names":[],"mappings":"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"}
@@ -63,8 +63,8 @@ const quickswap_v3_1 = require("./quickswap/quickswap-v3");
63
63
  const zyberswap_v3_1 = require("./quickswap/zyberswap-v3");
64
64
  const trader_joe_v2_1 = require("./trader-joe-v2");
65
65
  const spiritswap_v3_1 = require("./quickswap/spiritswap-v3");
66
+ const pancakeswap_v3_1 = require("./uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3");
66
67
  const trader_joe_v2_1_1 = require("./trader-joe-v2.1");
67
- const pancakeswap_v3_1 = require("./pancakeswap-v3/pancakeswap-v3");
68
68
  const LegacyDexes = [
69
69
  curve_v2_1.CurveV2,
70
70
  stable_pool_1.StablePool,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dex/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dex/index.ts"],"names":[],"mappings":";;;AACA,yCAAqC;AAErC,qCAAkC;AAClC,qDAAiD;AACjD,+CAA2C;AAC3C,sCAAmC;AACnC,mCAAgC;AAChC,wDAAoD;AACpD,2DAAuD;AACvD,uDAA0D;AAC1D,wDAAoD;AACpD,sDAAwD;AACxD,sDAAsD;AACtD,gDAA6C;AAC7C,4CAAyC;AACzC,4CAAyC;AACzC,qCAAkC;AAClC,2CAAwC;AACxC,uCAAoC;AACpC,mCAAgC;AAChC,qCAAkC;AAClC,yCAAsC;AACtC,+CAA2C;AAC3C,+CAA2C;AAC3C,+CAA2C;AAC3C,2CAAwC;AACxC,uCAAmC;AACnC,uCAAmC;AACnC,uCAAoC;AACpC,yCAAsC;AAEtC,4CAAwC;AAExC,iCAA8B;AAC9B,sDAAmD;AACnD,qDAAiD;AACjD,kDAA+C;AAC/C,kDAA+C;AAC/C,mCAAgC;AAChC,qDAAgD;AAChD,yFAAoF;AACpF,iDAAkD;AAClD,+CAA4C;AAC5C,kEAA+D;AAC/D,wEAAqE;AACrE,qDAAkD;AAClD,wDAAqD;AACrD,gEAA6D;AAC7D,2DAAuD;AACvD,uDAA0D;AAC1D,kDAA8C;AAC9C,0EAAqE;AACrE,2DAAwD;AACxD,0EAAqE;AACrE,2DAAuD;AACvD,kDAA8C;AAC9C,4CAAyC;AACzC,+CAA4C;AAC5C,kDAA+C;AAC/C,iEAA6D;AAC7D,2DAAuD;AACvD,2DAAuD;AACvD,2DAAuD;AACvD,mDAA8C;AAC9C,6DAAyD;AACzD,qFAAiF;AACjF,uDAAiD;AAEjD,MAAM,WAAW,GAAG;IAClB,kBAAO;IACP,wBAAU;IACV,iBAAO;IACP,aAAK;IACL,eAAM;IACN,qBAAS;IACT,iBAAO;IACP,aAAK;IACL,eAAM;IACN,mBAAQ;IACR,qBAAS;IACT,gBAAM;IACN,gBAAM;IACN,0BAAW;IACX,0BAAW;IACX,4BAAY;IACZ,2BAAW;IACX,8BAAY;IACZ,eAAM;IACN,WAAI;IACJ,+BAAgB;CACjB,CAAC;AAEF,MAAM,KAAK,GAAG;IACZ,kBAAO;IACP,uBAAS;IACT,eAAM;IACN,wBAAU;IACV,wBAAU;IACV,sBAAS;IACT,sBAAS;IACT,8BAAa;IACb,eAAM;IACN,WAAI;IACJ,WAAI;IACJ,qBAAS;IACT,gBAAM;IACN,gBAAM;IACN,gBAAM;IACN,mBAAQ;IACR,WAAI;IACJ,oBAAQ;IACR,aAAK;IACL,mBAAQ;IACR,SAAG;IACH,oBAAQ;IACR,mBAAO;IACP,2CAAmB;IACnB,iBAAO;IACP,kCAAe;IACf,2BAAY;IACZ,qBAAS;IACT,WAAI;IACJ,mBAAQ;IACR,qBAAS;IACT,iCAAc;IACd,kBAAO;IACP,eAAM;IACN,mBAAQ;IACR,wBAAU;IACV,iBAAO;CACR,CAAC;AAWF,MAAa,iBAAiB;IAoB5B,YACS,SAAqB,EACrB,OAAe,EACZ,eAAyB,EAAE,EAC3B,cAAwB,EAAE;QAH7B,cAAS,GAAT,SAAS,CAAY;QACrB,YAAO,GAAP,OAAO,CAAQ;QACZ,iBAAY,GAAZ,YAAY,CAAe;QAC3B,gBAAW,GAAX,WAAW,CAAe;QAvBtC,gBAAW,GAEP,EAAE,CAAC;QAEP,iBAAY,GAER,EAAE,CAAC;QACP,aAAQ,GAAkC,EAAE,CAAC;QAC7C,6CAA6C;QAC7C,YAAO,GAAa,EAAE,CAAC;QACvB,sBAAiB,GAAgB,IAAI,GAAG,EAAE,CAAC;QAGpC,oBAAe,GAAuC;YAC3D,2BAAe;YACf,2BAAe;YACf,wBAAY;SACb,CAAC;QAQA,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YAC/B,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBAC/B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,UAAU,CAAC;gBACjD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC;YAC1C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,CAAC,MAA2B,EAAE,GAAW,EAAE,EAAE;YAC7D,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YAC/B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;YAC5B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;YAEjC,MAAM,eAAe,GACnB,IAAI,CAAC,YAAY,CAAC,IAAI,CACvB,CAAC,WAAW,CAAC,oBAAQ,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,eAAe;gBACjB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;oBAClE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;oBAC1D,KAAK;iBACN,CAAC,CAAC,CAAC;YAEN,MAAM,cAAc,GAClB,IAAI,CAAC,YAAY,CAAC,IAAI,CACvB,CAAC,WAAW,CAAC,oBAAQ,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,cAAc;gBAChB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;oBAChE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;oBAC1D,KAAK;iBACN,CAAC,CAAC,CAAC;QACR,CAAC,CAAC;QAEF,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YACzB,UAAU,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE;gBAC1D,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;oBAC9B,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;oBACpD,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;iBACrB;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;QACpD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAC9D,MAAM,GAAG,GAAG,IAAI,wBAAU,CACxB,OAAO,EACP,OAAO,EACP,SAAS,EACT,UAAU,CAAC,OAAO,CAAC,CACpB,CAAC;YACF,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACxB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,oBAAoB,GAAG,CAAC,GAAG,WAAW,EAAE,GAAG,KAAK,CAAC;aACnD,OAAO,CAAC,UAAU,CAAC,EAAE;YACpB,MAAM,WAAW,GAAG,UAAoC,CAAC;YACzD,OAAO,WAAW,CAAC,qBAAqB;gBACtC,CAAC,CAAC,WAAW,CAAC,qBAAqB,EAAE;gBACrC,CAAC,CAAC,EAAE,CAAC;QACT,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;aAChB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAE7B,IAAI,CAAC,cAAc;YACjB,IAAI,CAAC,OAAO,IAAI,0BAAc;gBAC5B,CAAC,CAAC,0BAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE;gBAC5C,CAAC,CAAC,IAAI,CAAC;IACb,CAAC;IAED,oBAAoB,CAAC,MAAc;QACjC,IAAI,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAE5C,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;YAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAC7C,IAAI,CAAC,UAAU;gBACb,MAAM,IAAI,KAAK,CACb,GAAG,MAAM,qCAAqC,IAAI,CAAC,OAAO,IAAI,CAC/D,CAAC;YAEJ,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,IAAK,UAAmC,CACnE,IAAI,CAAC,SAAS,CACf,CAAC;SACH;QAED,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,oBAAoB,CAAC,YAAoB;QACvC,OAAO,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,WAAW,CAAC,GAAW;QACrB,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QAC/B,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,EAAE,CAAC,CAAC;QAE5C,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAwB,CAAC;IACxD,CAAC;IAED,iBAAiB,CAAC,OAAiB,oBAAQ,CAAC,IAAI;QAC9C,OAAO,IAAI,KAAK,oBAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;IACvE,CAAC;IAED,gBAAgB,CAAC,MAAc,EAAE,aAAsB,KAAK;QAC1D,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YACtC,OAAO,MAAM,CAAC;SACf;QACD,IAAI,CAAC,UAAU,IAAI,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,OAAO,OAAO,CAAC;aAChE,IAAI,sBAAsB,KAAK,MAAM,EAAE;YAC1C,IAAI,CAAC,IAAI,CAAC,cAAc;gBACtB,MAAM,IAAI,KAAK,CACb,GAAG,MAAM,qCAAqC,IAAI,CAAC,OAAO,IAAI,CAC/D,CAAC;YACJ,OAAO,IAAI,CAAC,cAAc,CAAC;SAC5B;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,UAAU,CAAC,MAAc,EAAE,IAAc;QACvC,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC1D,OAAO,IAAI,KAAK,oBAAQ,CAAC,IAAI;YAC3B,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;YAClC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;CACF;AA3JD,8CA2JC"}
@@ -0,0 +1,21 @@
1
+ import { SwapSide } from '../constants';
2
+ import { Address } from '../types';
3
+ import { IDexTxBuilder } from './idex';
4
+ import { UniswapV3, UniswapV3Param } from './uniswap-v3';
5
+ import { IDexHelper } from '../dex-helper';
6
+ export declare type QuickSwapV3Data = {
7
+ deadline?: number;
8
+ path: {
9
+ tokenIn: Address;
10
+ tokenOut: Address;
11
+ }[];
12
+ };
13
+ export declare class QuickSwapV3 extends UniswapV3 implements IDexTxBuilder<QuickSwapV3Data, UniswapV3Param> {
14
+ static dexKeys: string[];
15
+ constructor(dexHelper: IDexHelper);
16
+ protected encodePath(path: {
17
+ tokenIn: Address;
18
+ tokenOut: Address;
19
+ fee: number;
20
+ }[], side: SwapSide): string;
21
+ }
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.QuickSwapV3 = void 0;
4
+ const constants_1 = require("../constants");
5
+ const uniswap_v3_1 = require("./uniswap-v3");
6
+ const solidity_1 = require("@ethersproject/solidity");
7
+ const QUICKSWAP_V3_ROUTER_ADDRESSES = {
8
+ [constants_1.Network.POLYGON]: '0xf5b509bb0909a69b1c207e495f687a596c168e12',
9
+ };
10
+ class QuickSwapV3 extends uniswap_v3_1.UniswapV3 {
11
+ constructor(dexHelper) {
12
+ super(dexHelper, 'quickswapv3', QUICKSWAP_V3_ROUTER_ADDRESSES[dexHelper.config.data.network]);
13
+ }
14
+ // override parent as QuickSwapV3 handles fees dynamically.
15
+ encodePath(path, side) {
16
+ if (path.length === 0) {
17
+ return '0x';
18
+ }
19
+ const { _path, types } = path.reduce(({ _path, types }, curr, index) => {
20
+ if (index === 0) {
21
+ return {
22
+ types: ['address', 'address'],
23
+ _path: [curr.tokenIn, curr.tokenOut],
24
+ };
25
+ }
26
+ else {
27
+ return {
28
+ types: [...types, 'address'],
29
+ _path: [..._path, curr.tokenOut],
30
+ };
31
+ }
32
+ }, { _path: [], types: [] });
33
+ return side === constants_1.SwapSide.BUY
34
+ ? (0, solidity_1.pack)(types.reverse(), _path.reverse())
35
+ : (0, solidity_1.pack)(types, _path);
36
+ }
37
+ }
38
+ exports.QuickSwapV3 = QuickSwapV3;
39
+ QuickSwapV3.dexKeys = ['quickswapv3'];
40
+ //# sourceMappingURL=quickswap-v3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quickswap-v3.js","sourceRoot":"","sources":["../../src/dex/quickswap-v3.ts"],"names":[],"mappings":";;;AAAA,4CAAiD;AAIjD,6CAAyD;AACzD,sDAA+C;AAG/C,MAAM,6BAA6B,GAAmC;IACpE,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE,4CAA4C;CAChE,CAAC;AAWF,MAAa,WACX,SAAQ,sBAAS;IAKjB,YAAY,SAAqB;QAC/B,KAAK,CACH,SAAS,EACT,aAAa,EACb,6BAA6B,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAC7D,CAAC;IACJ,CAAC;IAED,2DAA2D;IACjD,UAAU,CAClB,IAIG,EACH,IAAc;QAEd,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB,OAAO,IAAI,CAAC;SACb;QAED,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,MAAM,CAClC,CACE,EAAE,KAAK,EAAE,KAAK,EAAwC,EACtD,IAAI,EACJ,KAAK,EACiC,EAAE;YACxC,IAAI,KAAK,KAAK,CAAC,EAAE;gBACf,OAAO;oBACL,KAAK,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;oBAC7B,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC;iBACrC,CAAC;aACH;iBAAM;gBACL,OAAO;oBACL,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,SAAS,CAAC;oBAC5B,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC;iBACjC,CAAC;aACH;QACH,CAAC,EACD,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CACzB,CAAC;QAEF,OAAO,IAAI,KAAK,oBAAQ,CAAC,GAAG;YAC1B,CAAC,CAAC,IAAA,eAAI,EAAC,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;YACxC,CAAC,CAAC,IAAA,eAAI,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACzB,CAAC;;AAnDH,kCAoDC;AAhDQ,mBAAO,GAAG,CAAC,aAAa,CAAC,CAAC"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Adapters = exports.UniswapV3Config = exports.PoolsToPreload = void 0;
4
4
  const constants_1 = require("../../constants");
5
5
  const SUPPORTED_FEES = [10000n, 3000n, 500n, 100n];
6
+ const PANCAKE_SUPPORTED_FEES = [10000n, 2500n, 500n, 100n];
6
7
  // Pools that will be initialized on app startup
7
8
  // They are added for testing
8
9
  exports.PoolsToPreload = {
@@ -18,6 +19,7 @@ exports.PoolsToPreload = {
18
19
  },
19
20
  ],
20
21
  },
22
+ PancakeswapV3: {},
21
23
  };
22
24
  exports.UniswapV3Config = {
23
25
  UniswapV3: {
@@ -77,6 +79,32 @@ exports.UniswapV3Config = {
77
79
  subgraphURL: 'https://api.thegraph.com/subgraphs/name/ianlapham/optimism-post-regenesis',
78
80
  },
79
81
  },
82
+ PancakeswapV3: {
83
+ [constants_1.Network.MAINNET]: {
84
+ factory: '0x0BFbCF9fa4f9C56B0F40a671Ad40E0805A091865',
85
+ deployer: '0x41ff9AA7e16B8B1a8a8dc4f0eFacd93D02d071c9',
86
+ quoter: '0xB048Bbc1Ee6b733FFfCFb9e9CeF7375518e25997',
87
+ router: '0x1b81D678ffb9C0263b24A97847620C99d213eB14',
88
+ supportedFees: PANCAKE_SUPPORTED_FEES,
89
+ stateMulticall: '0x80898f80cFA3Fa3AbF410d90e69aDc432AE5D4c2',
90
+ uniswapMulticall: '0xac1cE734566f390A94b00eb9bf561c2625BF44ea',
91
+ chunksCount: 10,
92
+ initHash: '0x6ce8eb472fa82df5469c6ab6d485f17c3ad13c8cd7af59b3d4a8026c5ce0f7e2',
93
+ subgraphURL: 'https://api.thegraph.com/subgraphs/name/pancakeswap/exchange-v3-eth',
94
+ },
95
+ [constants_1.Network.BSC]: {
96
+ factory: '0x0BFbCF9fa4f9C56B0F40a671Ad40E0805A091865',
97
+ deployer: '0x41ff9AA7e16B8B1a8a8dc4f0eFacd93D02d071c9',
98
+ quoter: '0xB048Bbc1Ee6b733FFfCFb9e9CeF7375518e25997',
99
+ router: '0x1b81D678ffb9C0263b24A97847620C99d213eB14',
100
+ supportedFees: PANCAKE_SUPPORTED_FEES,
101
+ stateMulticall: '0x9DAd2ED7ADc6eaacf81589Cd043579c9684E5C81',
102
+ uniswapMulticall: '0xac1cE734566f390A94b00eb9bf561c2625BF44ea',
103
+ chunksCount: 10,
104
+ initHash: '0x6ce8eb472fa82df5469c6ab6d485f17c3ad13c8cd7af59b3d4a8026c5ce0f7e2',
105
+ subgraphURL: 'https://api.thegraph.com/subgraphs/name/pancakeswap/exchange-v3-bsc',
106
+ },
107
+ },
80
108
  };
81
109
  exports.Adapters = {
82
110
  [constants_1.Network.MAINNET]: {