@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
@@ -4,51 +4,63 @@ dotenv.config();
4
4
 
5
5
  import { DummyDexHelper } from '../../dex-helper/index';
6
6
  import { Network, SwapSide } from '../../constants';
7
- import { BalancerV2, BalancerV2EventPool } from './balancer-v2';
7
+ import { BalancerV2 } from './balancer-v2';
8
8
  import { checkPoolPrices, checkPoolsLiquidity } from '../../../tests/utils';
9
9
  import { BI_POWS } from '../../bigint-constants';
10
- import { BalancerConfig } from './config';
11
10
  import { Tokens } from '../../../tests/constants-e2e';
12
- import { BalancerPoolTypes } from './types';
13
-
14
- const WETH = {
15
- address: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',
16
- decimals: 18,
17
- };
18
-
19
- const DAI = {
20
- address: '0x6B175474E89094C44Da98b954EedeAC495271d0F',
21
- decimals: 18,
22
- };
23
-
24
- const BBADAI = {
25
- address: '0x804cdb9116a10bb78768d3252355a1b18067bf8f',
26
- decimals: 18,
27
- };
28
-
29
- const BBAUSD = {
30
- address: '0x7b50775383d3d6f0215a8f290f2c9e2eebbeceb2',
31
- decimals: 18,
32
- };
33
-
34
- const MIMATIC = {
35
- address: '0xa3fa99a148fa48d14ed51d610c367c61876997f1',
36
- decimals: 18,
37
- };
38
- const USDC = {
39
- address: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174',
40
- decimals: 6,
41
- };
42
-
43
- const BBAUSD_PoolId =
44
- '0x7b50775383d3d6f0215a8f290f2c9e2eebbeceb20000000000000000000000fe';
45
- const BBAUSDT_PoolId =
46
- '0x2bbf681cc4eb09218bee85ea2a5d3d13fa40fc0c0000000000000000000000fd';
47
-
48
- const amounts = [0n, BI_POWS[18], 2000000000000000000n];
11
+ import { BalancerV2Data } from './types';
12
+ import { PoolPrices } from '../../types';
13
+
14
+ const amounts = [ 0n, BI_POWS[18], 2000000000000000000n ];
49
15
 
50
16
  const dexKey = 'BalancerV2';
51
17
 
18
+ async function getOnChainPricingForWeightedPool(
19
+ balancerV2: BalancerV2,
20
+ blockNumber: number,
21
+ poolPrice: PoolPrices<BalancerV2Data>,
22
+ amounts: bigint[],
23
+ srcTokenAddress: string,
24
+ destTokenAddress: string,
25
+ side: SwapSide,
26
+ ): Promise<BigInt[]>{
27
+ return Promise.all(poolPrice.prices.map(async (price, index) => {
28
+ if(amounts[index] === 0n) {
29
+ return 0n;
30
+ }
31
+
32
+ const params = balancerV2.getBalancerParam(
33
+ srcTokenAddress,
34
+ destTokenAddress,
35
+ '0',
36
+ '0',
37
+ {
38
+ swaps: [
39
+ { poolId: poolPrice.data.poolId, amount: amounts[index].toString() },
40
+ ]
41
+ },
42
+ side,
43
+ );
44
+
45
+ const calldata = [
46
+ {
47
+ target: balancerV2.vaultAddress,
48
+ callData: balancerV2.eventPools.vaultInterface.encodeFunctionData('queryBatchSwap', params.slice(0, 4)),
49
+ },
50
+ ];
51
+
52
+ const results = (
53
+ await balancerV2.dexHelper.multiContract.methods
54
+ .aggregate(calldata)
55
+ .call({}, blockNumber)
56
+ ).returnData;
57
+
58
+ const parsed = balancerV2.eventPools.vaultInterface.decodeFunctionResult('queryBatchSwap', results[0]);
59
+ const resultIndex = side === SwapSide.SELL ? parsed[0].length - 1 : 0;
60
+ return BigInt(parsed[0][resultIndex]._hex.replace('-', ''));
61
+ }));
62
+ }
63
+
52
64
  describe('BalancerV2', function () {
53
65
  describe('ComposableStable', () => {
54
66
  it('USDC -> USDT getPoolIdentifiers and getPricesVolume', async () => {
@@ -94,6 +106,8 @@ describe('BalancerV2', function () {
94
106
  });
95
107
 
96
108
  it('getPoolIdentifiers and getPricesVolume', async () => {
109
+ const MIMATIC = Tokens[Network.POLYGON]['MIMATIC'];
110
+ const USDC = Tokens[Network.POLYGON]['USDC'];
97
111
  const dexHelper = new DummyDexHelper(Network.POLYGON);
98
112
  const blocknumber = await dexHelper.web3Provider.eth.getBlockNumber();
99
113
  const balancerV2 = new BalancerV2(Network.POLYGON, dexKey, dexHelper);
@@ -127,7 +141,9 @@ describe('BalancerV2', function () {
127
141
  });
128
142
  });
129
143
  describe('Weighted', () => {
130
- it('getPoolIdentifiers and getPricesVolume', async function () {
144
+ it('SELL getPoolIdentifiers and getPricesVolume BAL -> WETH', async function () {
145
+ const BAL = Tokens[Network.MAINNET]['BAL'];
146
+ const WETH = Tokens[Network.MAINNET]['WETH'];
131
147
  const dexHelper = new DummyDexHelper(Network.MAINNET);
132
148
  const blocknumber = await dexHelper.web3Provider.eth.getBlockNumber();
133
149
  const balancerV2 = new BalancerV2(Network.MAINNET, dexKey, dexHelper);
@@ -135,35 +151,200 @@ describe('BalancerV2', function () {
135
151
  await balancerV2.initializePricing(blocknumber);
136
152
 
137
153
  const pools = await balancerV2.getPoolIdentifiers(
154
+ BAL,
138
155
  WETH,
139
- DAI,
140
156
  SwapSide.SELL,
141
157
  blocknumber,
142
158
  );
143
- console.log('WETH <> DAI Pool Identifiers: ', pools);
159
+ console.log('BAL <> WETH Pool Identifiers: ', pools);
144
160
 
145
161
  expect(pools.length).toBeGreaterThan(0);
146
162
 
147
163
  const poolPrices = await balancerV2.getPricesVolume(
164
+ BAL,
148
165
  WETH,
149
- DAI,
150
166
  amounts,
151
167
  SwapSide.SELL,
152
168
  blocknumber,
153
169
  pools,
154
170
  );
155
- console.log('WETH <> DAI Pool Prices: ', poolPrices);
171
+ console.log('BAL <> WETH Pool Prices: ', poolPrices);
156
172
 
157
173
  expect(poolPrices).not.toBeNull();
158
- checkPoolPrices(poolPrices!, amounts, SwapSide.SELL, dexKey);
174
+
175
+ const onChainPrices = await getOnChainPricingForWeightedPool(
176
+ balancerV2,
177
+ blocknumber,
178
+ poolPrices![0],
179
+ amounts,
180
+ BAL.address,
181
+ WETH.address,
182
+ SwapSide.SELL,
183
+ );
184
+
185
+ console.log('BAL <> WETH on-chain prices: ', onChainPrices);
186
+
187
+ expect(onChainPrices).toEqual(poolPrices![0].prices);
188
+
189
+ await balancerV2.releaseResources();
190
+ });
191
+
192
+ it('BUY getPoolIdentifiers and getPricesVolume BAL -> WETH', async function () {
193
+ const BAL = Tokens[Network.MAINNET]['BAL'];
194
+ const WETH = Tokens[Network.MAINNET]['WETH'];
195
+
196
+ const dexHelper = new DummyDexHelper(Network.MAINNET);
197
+ const blocknumber = await dexHelper.web3Provider.eth.getBlockNumber();
198
+ const balancerV2 = new BalancerV2(Network.MAINNET, dexKey, dexHelper);
199
+
200
+ await balancerV2.initializePricing(blocknumber);
201
+
202
+ const pools = await balancerV2.getPoolIdentifiers(
203
+ BAL,
204
+ WETH,
205
+ SwapSide.BUY,
206
+ blocknumber,
207
+ );
208
+ console.log('BAL <> WETH Pool Identifiers: ', pools);
209
+
210
+ expect(pools.length).toBeGreaterThan(0);
211
+
212
+ const poolPrices = await balancerV2.getPricesVolume(
213
+ BAL,
214
+ WETH,
215
+ amounts,
216
+ SwapSide.BUY,
217
+ blocknumber,
218
+ pools,
219
+ );
220
+ console.log('BAL <> WETH Pool Prices: ', poolPrices);
221
+
222
+ expect(poolPrices).not.toBeNull();
223
+
224
+ const onChainPrices = await getOnChainPricingForWeightedPool(
225
+ balancerV2,
226
+ blocknumber,
227
+ poolPrices![0],
228
+ amounts,
229
+ BAL.address,
230
+ WETH.address,
231
+ SwapSide.BUY,
232
+ );
233
+
234
+ console.log('BAL <> WETH on-chain prices: ', onChainPrices);
235
+
236
+ expect(onChainPrices).toEqual(poolPrices![0].prices);
237
+
238
+ await balancerV2.releaseResources();
239
+ });
240
+
241
+ it('BUY getPoolIdentifiers and getPricesVolume for PSP -> WETH', async function () {
242
+ const PSP = Tokens[Network.MAINNET]['PSP'];
243
+ const WETH = Tokens[Network.MAINNET]['WETH'];
244
+
245
+ const dexHelper = new DummyDexHelper(Network.MAINNET);
246
+ const blocknumber = await dexHelper.web3Provider.eth.getBlockNumber();
247
+ const balancerV2 = new BalancerV2(Network.MAINNET, dexKey, dexHelper);
248
+
249
+ await balancerV2.initializePricing(blocknumber);
250
+
251
+ const pools = await balancerV2.getPoolIdentifiers(
252
+ PSP,
253
+ WETH,
254
+ SwapSide.BUY,
255
+ blocknumber,
256
+ );
257
+ console.log('PSP <> WETH Pool Identifiers: ', pools);
258
+
259
+ expect(pools.length).toBeGreaterThan(0);
260
+
261
+ const poolPrices = await balancerV2.getPricesVolume(
262
+ PSP,
263
+ WETH,
264
+ amounts,
265
+ SwapSide.BUY,
266
+ blocknumber,
267
+ pools,
268
+ );
269
+ console.log('PSP <> WETH Pool Prices: ', poolPrices);
270
+
271
+ expect(poolPrices).not.toBeNull();
272
+
273
+ const onChainPrices = await getOnChainPricingForWeightedPool(
274
+ balancerV2,
275
+ blocknumber,
276
+ poolPrices![0],
277
+ amounts,
278
+ PSP.address,
279
+ WETH.address,
280
+ SwapSide.BUY,
281
+ );
282
+
283
+ console.log('PSP <> WETH on-chain prices: ', onChainPrices);
284
+
285
+ expect(onChainPrices).toEqual(poolPrices![0].prices);
286
+
287
+ await balancerV2.releaseResources();
288
+ });
289
+
290
+ it('SELL getPoolIdentifiers and getPricesVolume for PSP -> WETH', async function () {
291
+ const PSP = Tokens[Network.MAINNET]['PSP'];
292
+ const WETH = Tokens[Network.MAINNET]['WETH'];
293
+
294
+ const dexHelper = new DummyDexHelper(Network.MAINNET);
295
+ const blocknumber = await dexHelper.web3Provider.eth.getBlockNumber();
296
+ const balancerV2 = new BalancerV2(Network.MAINNET, dexKey, dexHelper);
297
+
298
+ await balancerV2.initializePricing(blocknumber);
299
+
300
+ const pools = await balancerV2.getPoolIdentifiers(
301
+ PSP,
302
+ WETH,
303
+ SwapSide.SELL,
304
+ blocknumber,
305
+ );
306
+ console.log('PSP <> WETH Pool Identifiers: ', pools);
307
+
308
+ expect(pools.length).toBeGreaterThan(0);
309
+
310
+ const poolPrices = await balancerV2.getPricesVolume(
311
+ PSP,
312
+ WETH,
313
+ amounts,
314
+ SwapSide.SELL,
315
+ blocknumber,
316
+ pools,
317
+ );
318
+ console.log('PSP <> WETH Pool Prices: ', poolPrices);
319
+
320
+ expect(poolPrices).not.toBeNull();
321
+
322
+ const onChainPrices = await getOnChainPricingForWeightedPool(
323
+ balancerV2,
324
+ blocknumber,
325
+ poolPrices![0],
326
+ amounts,
327
+ PSP.address,
328
+ WETH.address,
329
+ SwapSide.SELL,
330
+ );
331
+
332
+ console.log('PSP <> WETH on-chain prices: ', onChainPrices);
333
+
334
+ expect(onChainPrices).toEqual(poolPrices![0].prices);
159
335
 
160
336
  await balancerV2.releaseResources();
161
337
  });
162
338
 
163
339
  it('getTopPoolsForToken', async function () {
340
+ const WETH = Tokens[Network.MAINNET]['WETH'];
341
+
164
342
  const dexHelper = new DummyDexHelper(Network.MAINNET);
343
+ const blocknumber = await dexHelper.web3Provider.eth.getBlockNumber();
165
344
  const balancerV2 = new BalancerV2(Network.MAINNET, dexKey, dexHelper);
166
345
 
346
+ await balancerV2.initializePricing(blocknumber);
347
+
167
348
  const poolLiquidity = await balancerV2.getTopPoolsForToken(
168
349
  WETH.address,
169
350
  10,
@@ -211,6 +392,7 @@ describe('BalancerV2', function () {
211
392
  });
212
393
 
213
394
  it('getTopPoolsForToken', async function () {
395
+ const BBADAI = Tokens[Network.MAINNET]['BBADAI'];
214
396
  const dexHelper = new DummyDexHelper(Network.MAINNET);
215
397
  const balancerV2 = new BalancerV2(Network.MAINNET, dexKey, dexHelper);
216
398
 
@@ -223,43 +405,43 @@ describe('BalancerV2', function () {
223
405
  checkPoolsLiquidity(poolLiquidity, BBADAI.address, dexKey);
224
406
  });
225
407
 
226
- it('applies getRate to phantom bpt scaling factor', async function () {
227
- const config = BalancerConfig[dexKey][Network.MAINNET];
228
- const dexHelper = new DummyDexHelper(Network.MAINNET);
229
- const tokens = Tokens[Network.MAINNET];
230
- const logger = dexHelper.getLogger(dexKey);
231
- const blocknumber = 15731000;
232
-
233
- const balancerPools = new BalancerV2EventPool(
234
- dexKey,
235
- Network.MAINNET,
236
- config.vaultAddress,
237
- config.subgraphURL,
238
- dexHelper,
239
- logger,
240
- );
241
-
242
- const state = await balancerPools.getOnChainState(
243
- [
244
- {
245
- id: BBAUSDT_PoolId,
246
- address: tokens.BBAUSDT.address,
247
- poolType: BalancerPoolTypes.AaveLinear,
248
- mainIndex: 1,
249
- wrappedIndex: 0,
250
- tokens: [tokens.BBAUSDT, tokens.aUSDT, tokens.USDT],
251
- mainTokens: [],
252
- },
253
- ],
254
- blocknumber,
255
- );
256
-
257
- expect(
258
- state[tokens.BBAUSDT.address].tokens[
259
- tokens.BBAUSDT.address
260
- ].scalingFactor!.toString(),
261
- ).toBe('1015472217207213567');
262
- });
408
+ // it('applies getRate to phantom bpt scaling factor', async function () {
409
+ // const config = BalancerConfig[dexKey][Network.MAINNET];
410
+ // const dexHelper = new DummyDexHelper(Network.MAINNET);
411
+ // const tokens = Tokens[Network.MAINNET];
412
+ // const logger = dexHelper.getLogger(dexKey);
413
+ // const blocknumber = 15731000;
414
+ //
415
+ // const balancerPools = new BalancerV2EventPool(
416
+ // dexKey,
417
+ // Network.MAINNET,
418
+ // config.vaultAddress,
419
+ // config.subgraphURL,
420
+ // dexHelper,
421
+ // logger,
422
+ // );
423
+ //
424
+ // const state = await balancerPools.getOnChainState(
425
+ // [
426
+ // {
427
+ // id: BBAUSDT_PoolId,
428
+ // address: tokens.BBAUSDT.address,
429
+ // poolType: BalancerPoolTypes.AaveLinear,
430
+ // mainIndex: 1,
431
+ // wrappedIndex: 0,
432
+ // tokens: [tokens.BBAUSDT, tokens.aUSDT, tokens.USDT],
433
+ // mainTokens: [],
434
+ // },
435
+ // ],
436
+ // blocknumber,
437
+ // );
438
+ //
439
+ // expect(
440
+ // state[tokens.BBAUSDT.address].tokens[
441
+ // tokens.BBAUSDT.address
442
+ // ].scalingFactor!.toString(),
443
+ // ).toBe('1015472217207213567');
444
+ // });
263
445
  });
264
446
 
265
447
  describe('PhantomStable', () => {
@@ -304,6 +486,7 @@ describe('BalancerV2', function () {
304
486
  // });
305
487
 
306
488
  it('getTopPoolsForToken', async function () {
489
+ const BBAUSD = Tokens[Network.MAINNET]['BBAUSD'];
307
490
  const dexHelper = new DummyDexHelper(Network.MAINNET);
308
491
  const balancerV2 = new BalancerV2(Network.MAINNET, dexKey, dexHelper);
309
492
 
@@ -316,46 +499,46 @@ describe('BalancerV2', function () {
316
499
  checkPoolsLiquidity(poolLiquidity, BBAUSD.address, dexKey);
317
500
  });
318
501
 
319
- it('applies getRate to phantom bpt scaling factor', async function () {
320
- const config = BalancerConfig[dexKey][Network.MAINNET];
321
- const dexHelper = new DummyDexHelper(Network.MAINNET);
322
- const tokens = Tokens[Network.MAINNET];
323
- const logger = dexHelper.getLogger(dexKey);
324
- const blocknumber = 15731000;
325
-
326
- const balancerPools = new BalancerV2EventPool(
327
- dexKey,
328
- Network.MAINNET,
329
- config.vaultAddress,
330
- config.subgraphURL,
331
- dexHelper,
332
- logger,
333
- );
334
-
335
- const state = await balancerPools.getOnChainState(
336
- [
337
- {
338
- id: BBAUSD_PoolId,
339
- address: BBAUSD.address,
340
- poolType: BalancerPoolTypes.StablePhantom,
341
- mainIndex: 0,
342
- wrappedIndex: 0,
343
- tokens: [
344
- tokens.BBAUSDT,
345
- tokens.BBAUSD,
346
- tokens.BBADAI,
347
- tokens.BBAUSDC,
348
- ],
349
- mainTokens: [],
350
- },
351
- ],
352
- blocknumber,
353
- );
354
-
355
- expect(
356
- state[BBAUSD.address].tokens[BBAUSD.address].scalingFactor!.toString(),
357
- ).toBe('1015093119997891367');
358
- });
502
+ // it('applies getRate to phantom bpt scaling factor', async function () {
503
+ // const config = BalancerConfig[dexKey][Network.MAINNET];
504
+ // const dexHelper = new DummyDexHelper(Network.MAINNET);
505
+ // const tokens = Tokens[Network.MAINNET];
506
+ // const logger = dexHelper.getLogger(dexKey);
507
+ // const blocknumber = 15731000;
508
+ //
509
+ // const balancerPools = new BalancerV2EventPool(
510
+ // dexKey,
511
+ // Network.MAINNET,
512
+ // config.vaultAddress,
513
+ // config.subgraphURL,
514
+ // dexHelper,
515
+ // logger,
516
+ // );
517
+ //
518
+ // const state = await balancerPools.getOnChainState(
519
+ // [
520
+ // {
521
+ // id: BBAUSD_PoolId,
522
+ // address: BBAUSD.address,
523
+ // poolType: BalancerPoolTypes.StablePhantom,
524
+ // mainIndex: 0,
525
+ // wrappedIndex: 0,
526
+ // tokens: [
527
+ // tokens.BBAUSDT,
528
+ // tokens.BBAUSD,
529
+ // tokens.BBADAI,
530
+ // tokens.BBAUSDC,
531
+ // ],
532
+ // mainTokens: [],
533
+ // },
534
+ // ],
535
+ // blocknumber,
536
+ // );
537
+ //
538
+ // expect(
539
+ // state[BBAUSD.address].tokens[BBAUSD.address].scalingFactor!.toString(),
540
+ // ).toBe('1015093119997891367');
541
+ // });
359
542
  });
360
543
  });
361
544