@paraswap/dex-lib 2.42.4-baseswap → 2.42.4

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 (216) hide show
  1. package/.vscode/launch.json +16 -0
  2. package/build/dex/index.js +0 -2
  3. package/build/dex/index.js.map +1 -1
  4. package/build/test.js +26 -0
  5. package/package.json +1 -1
  6. package/src/dex/index.ts +0 -2
  7. package/build/abi/kyberswap-elastic/IAntiSnipAttackPositionManager.json +0 -1276
  8. package/build/abi/kyberswap-elastic/IFactory.json +0 -550
  9. package/build/abi/kyberswap-elastic/IPool.json +0 -1042
  10. package/build/abi/kyberswap-elastic/IQuoterV2.json +0 -226
  11. package/build/abi/kyberswap-elastic/IRouter.json +0 -239
  12. package/build/abi/kyberswap-elastic/TicksFeesReader.json +0 -142
  13. package/build/abi/wombat/asset.json +0 -769
  14. package/build/abi/wombat/bmw.json +0 -1247
  15. package/build/abi/wombat/pool.json +0 -1364
  16. package/build/dex/baseswap-v3/baseswap-v3-factory.d.ts +0 -26
  17. package/build/dex/baseswap-v3/baseswap-v3-factory.js +0 -44
  18. package/build/dex/baseswap-v3/baseswap-v3-factory.js.map +0 -1
  19. package/build/dex/baseswap-v3/baseswap-v3-pool.d.ts +0 -46
  20. package/build/dex/baseswap-v3/baseswap-v3-pool.js +0 -312
  21. package/build/dex/baseswap-v3/baseswap-v3-pool.js.map +0 -1
  22. package/build/dex/baseswap-v3/baseswap-v3.d.ts +0 -71
  23. package/build/dex/baseswap-v3/baseswap-v3.js +0 -752
  24. package/build/dex/baseswap-v3/baseswap-v3.js.map +0 -1
  25. package/build/dex/baseswap-v3/config.d.ts +0 -9
  26. package/build/dex/baseswap-v3/config.js +0 -48
  27. package/build/dex/baseswap-v3/config.js.map +0 -1
  28. package/build/dex/baseswap-v3/constants.d.ts +0 -28
  29. package/build/dex/baseswap-v3/constants.js +0 -35
  30. package/build/dex/baseswap-v3/constants.js.map +0 -1
  31. package/build/dex/baseswap-v3/contract-math/BitMath.d.ts +0 -4
  32. package/build/dex/baseswap-v3/contract-math/BitMath.js +0 -93
  33. package/build/dex/baseswap-v3/contract-math/BitMath.js.map +0 -1
  34. package/build/dex/baseswap-v3/contract-math/FixedPoint128.d.ts +0 -3
  35. package/build/dex/baseswap-v3/contract-math/FixedPoint128.js +0 -8
  36. package/build/dex/baseswap-v3/contract-math/FixedPoint128.js.map +0 -1
  37. package/build/dex/baseswap-v3/contract-math/FixedPoint96.d.ts +0 -4
  38. package/build/dex/baseswap-v3/contract-math/FixedPoint96.js +0 -9
  39. package/build/dex/baseswap-v3/contract-math/FixedPoint96.js.map +0 -1
  40. package/build/dex/baseswap-v3/contract-math/FullMath.d.ts +0 -4
  41. package/build/dex/baseswap-v3/contract-math/FullMath.js +0 -19
  42. package/build/dex/baseswap-v3/contract-math/FullMath.js.map +0 -1
  43. package/build/dex/baseswap-v3/contract-math/LiquidityMath.d.ts +0 -3
  44. package/build/dex/baseswap-v3/contract-math/LiquidityMath.js +0 -22
  45. package/build/dex/baseswap-v3/contract-math/LiquidityMath.js.map +0 -1
  46. package/build/dex/baseswap-v3/contract-math/Oracle.d.ts +0 -10
  47. package/build/dex/baseswap-v3/contract-math/Oracle.js +0 -133
  48. package/build/dex/baseswap-v3/contract-math/Oracle.js.map +0 -1
  49. package/build/dex/baseswap-v3/contract-math/SqrtPriceMath.d.ts +0 -10
  50. package/build/dex/baseswap-v3/contract-math/SqrtPriceMath.js +0 -91
  51. package/build/dex/baseswap-v3/contract-math/SqrtPriceMath.js.map +0 -1
  52. package/build/dex/baseswap-v3/contract-math/SwapMath.d.ts +0 -8
  53. package/build/dex/baseswap-v3/contract-math/SwapMath.js +0 -70
  54. package/build/dex/baseswap-v3/contract-math/SwapMath.js.map +0 -1
  55. package/build/dex/baseswap-v3/contract-math/Tick.d.ts +0 -7
  56. package/build/dex/baseswap-v3/contract-math/Tick.js +0 -45
  57. package/build/dex/baseswap-v3/contract-math/Tick.js.map +0 -1
  58. package/build/dex/baseswap-v3/contract-math/TickBitMap.d.ts +0 -7
  59. package/build/dex/baseswap-v3/contract-math/TickBitMap.js +0 -84
  60. package/build/dex/baseswap-v3/contract-math/TickBitMap.js.map +0 -1
  61. package/build/dex/baseswap-v3/contract-math/TickMath.d.ts +0 -8
  62. package/build/dex/baseswap-v3/contract-math/TickMath.js +0 -162
  63. package/build/dex/baseswap-v3/contract-math/TickMath.js.map +0 -1
  64. package/build/dex/baseswap-v3/contract-math/UnsafeMath.d.ts +0 -3
  65. package/build/dex/baseswap-v3/contract-math/UnsafeMath.js +0 -10
  66. package/build/dex/baseswap-v3/contract-math/UnsafeMath.js.map +0 -1
  67. package/build/dex/baseswap-v3/contract-math/uniswap-v3-math.d.ts +0 -37
  68. package/build/dex/baseswap-v3/contract-math/uniswap-v3-math.js +0 -393
  69. package/build/dex/baseswap-v3/contract-math/uniswap-v3-math.js.map +0 -1
  70. package/build/dex/baseswap-v3/contract-math/utils.d.ts +0 -7
  71. package/build/dex/baseswap-v3/contract-math/utils.js +0 -42
  72. package/build/dex/baseswap-v3/contract-math/utils.js.map +0 -1
  73. package/build/dex/baseswap-v3/types.d.ts +0 -164
  74. package/build/dex/baseswap-v3/types.js +0 -9
  75. package/build/dex/baseswap-v3/types.js.map +0 -1
  76. package/build/dex/baseswap-v3/utils.d.ts +0 -6
  77. package/build/dex/baseswap-v3/utils.js +0 -65
  78. package/build/dex/baseswap-v3/utils.js.map +0 -1
  79. package/build/dex/hello/config.d.ts +0 -4
  80. package/build/dex/hello/config.js +0 -15
  81. package/build/dex/hello/config.js.map +0 -1
  82. package/build/dex/hello/hello-pool.d.ts +0 -39
  83. package/build/dex/hello/hello-pool.js +0 -64
  84. package/build/dex/hello/hello-pool.js.map +0 -1
  85. package/build/dex/hello/hello.d.ts +0 -37
  86. package/build/dex/hello/hello.js +0 -126
  87. package/build/dex/hello/hello.js.map +0 -1
  88. package/build/dex/hello/types.d.ts +0 -6
  89. package/build/dex/hello/types.js +0 -3
  90. package/build/dex/hello/types.js.map +0 -1
  91. package/build/dex/kyberswap-elastic/config.d.ts +0 -4
  92. package/build/dex/kyberswap-elastic/config.js +0 -80
  93. package/build/dex/kyberswap-elastic/config.js.map +0 -1
  94. package/build/dex/kyberswap-elastic/constants.d.ts +0 -17
  95. package/build/dex/kyberswap-elastic/constants.js +0 -42
  96. package/build/dex/kyberswap-elastic/constants.js.map +0 -1
  97. package/build/dex/kyberswap-elastic/contract-math/FixedPoint96.d.ts +0 -4
  98. package/build/dex/kyberswap-elastic/contract-math/FixedPoint96.js +0 -9
  99. package/build/dex/kyberswap-elastic/contract-math/FixedPoint96.js.map +0 -1
  100. package/build/dex/kyberswap-elastic/contract-math/FullMath.d.ts +0 -5
  101. package/build/dex/kyberswap-elastic/contract-math/FullMath.js +0 -22
  102. package/build/dex/kyberswap-elastic/contract-math/FullMath.js.map +0 -1
  103. package/build/dex/kyberswap-elastic/contract-math/LiqDeltaMath.d.ts +0 -3
  104. package/build/dex/kyberswap-elastic/contract-math/LiqDeltaMath.js +0 -12
  105. package/build/dex/kyberswap-elastic/contract-math/LiqDeltaMath.js.map +0 -1
  106. package/build/dex/kyberswap-elastic/contract-math/LiquidityMath.d.ts +0 -3
  107. package/build/dex/kyberswap-elastic/contract-math/LiquidityMath.js +0 -22
  108. package/build/dex/kyberswap-elastic/contract-math/LiquidityMath.js.map +0 -1
  109. package/build/dex/kyberswap-elastic/contract-math/QtyDeltaMath.d.ts +0 -5
  110. package/build/dex/kyberswap-elastic/contract-math/QtyDeltaMath.js +0 -25
  111. package/build/dex/kyberswap-elastic/contract-math/QtyDeltaMath.js.map +0 -1
  112. package/build/dex/kyberswap-elastic/contract-math/QuadMath.d.ts +0 -4
  113. package/build/dex/kyberswap-elastic/contract-math/QuadMath.js +0 -27
  114. package/build/dex/kyberswap-elastic/contract-math/QuadMath.js.map +0 -1
  115. package/build/dex/kyberswap-elastic/contract-math/ReinvestmentMath.d.ts +0 -3
  116. package/build/dex/kyberswap-elastic/contract-math/ReinvestmentMath.js +0 -14
  117. package/build/dex/kyberswap-elastic/contract-math/ReinvestmentMath.js.map +0 -1
  118. package/build/dex/kyberswap-elastic/contract-math/SafeCast.d.ts +0 -8
  119. package/build/dex/kyberswap-elastic/contract-math/SafeCast.js +0 -30
  120. package/build/dex/kyberswap-elastic/contract-math/SafeCast.js.map +0 -1
  121. package/build/dex/kyberswap-elastic/contract-math/SqrtPriceMath.d.ts +0 -10
  122. package/build/dex/kyberswap-elastic/contract-math/SqrtPriceMath.js +0 -91
  123. package/build/dex/kyberswap-elastic/contract-math/SqrtPriceMath.js.map +0 -1
  124. package/build/dex/kyberswap-elastic/contract-math/SwapMath.d.ts +0 -13
  125. package/build/dex/kyberswap-elastic/contract-math/SwapMath.js +0 -188
  126. package/build/dex/kyberswap-elastic/contract-math/SwapMath.js.map +0 -1
  127. package/build/dex/kyberswap-elastic/contract-math/TickLinkedList.d.ts +0 -6
  128. package/build/dex/kyberswap-elastic/contract-math/TickLinkedList.js +0 -41
  129. package/build/dex/kyberswap-elastic/contract-math/TickLinkedList.js.map +0 -1
  130. package/build/dex/kyberswap-elastic/contract-math/TickMath.d.ts +0 -9
  131. package/build/dex/kyberswap-elastic/contract-math/TickMath.js +0 -165
  132. package/build/dex/kyberswap-elastic/contract-math/TickMath.js.map +0 -1
  133. package/build/dex/kyberswap-elastic/contract-math/UnsafeMath.d.ts +0 -3
  134. package/build/dex/kyberswap-elastic/contract-math/UnsafeMath.js +0 -10
  135. package/build/dex/kyberswap-elastic/contract-math/UnsafeMath.js.map +0 -1
  136. package/build/dex/kyberswap-elastic/contract-math/kyberswap-elastic-math.d.ts +0 -28
  137. package/build/dex/kyberswap-elastic/contract-math/kyberswap-elastic-math.js +0 -502
  138. package/build/dex/kyberswap-elastic/contract-math/kyberswap-elastic-math.js.map +0 -1
  139. package/build/dex/kyberswap-elastic/contract-math/utils.d.ts +0 -3
  140. package/build/dex/kyberswap-elastic/contract-math/utils.js +0 -16
  141. package/build/dex/kyberswap-elastic/contract-math/utils.js.map +0 -1
  142. package/build/dex/kyberswap-elastic/errors.d.ts +0 -2
  143. package/build/dex/kyberswap-elastic/errors.js +0 -6
  144. package/build/dex/kyberswap-elastic/errors.js.map +0 -1
  145. package/build/dex/kyberswap-elastic/kyberswap-elastic-pool.d.ts +0 -80
  146. package/build/dex/kyberswap-elastic/kyberswap-elastic-pool.js +0 -458
  147. package/build/dex/kyberswap-elastic/kyberswap-elastic-pool.js.map +0 -1
  148. package/build/dex/kyberswap-elastic/kyberswap-elastic.d.ts +0 -53
  149. package/build/dex/kyberswap-elastic/kyberswap-elastic.js +0 -610
  150. package/build/dex/kyberswap-elastic/kyberswap-elastic.js.map +0 -1
  151. package/build/dex/kyberswap-elastic/types.d.ts +0 -134
  152. package/build/dex/kyberswap-elastic/types.js +0 -9
  153. package/build/dex/kyberswap-elastic/types.js.map +0 -1
  154. package/build/dex/kyberswap-elastic/utils/decoders.d.ts +0 -9
  155. package/build/dex/kyberswap-elastic/utils/decoders.js +0 -78
  156. package/build/dex/kyberswap-elastic/utils/decoders.js.map +0 -1
  157. package/build/dex/my-test-dex/config.d.ts +0 -4
  158. package/build/dex/my-test-dex/config.js +0 -15
  159. package/build/dex/my-test-dex/config.js.map +0 -1
  160. package/build/dex/my-test-dex/my-test-dex-pool.d.ts +0 -39
  161. package/build/dex/my-test-dex/my-test-dex-pool.js +0 -64
  162. package/build/dex/my-test-dex/my-test-dex-pool.js.map +0 -1
  163. package/build/dex/my-test-dex/my-test-dex.d.ts +0 -37
  164. package/build/dex/my-test-dex/my-test-dex.js +0 -126
  165. package/build/dex/my-test-dex/my-test-dex.js.map +0 -1
  166. package/build/dex/my-test-dex/types.d.ts +0 -6
  167. package/build/dex/my-test-dex/types.js +0 -3
  168. package/build/dex/my-test-dex/types.js.map +0 -1
  169. package/build/dex/solidly/forks-override/fvm.d.ts +0 -20
  170. package/build/dex/solidly/forks-override/fvm.js +0 -42
  171. package/build/dex/solidly/forks-override/fvm.js.map +0 -1
  172. package/build/dex/wombat/config.d.ts +0 -5
  173. package/build/dex/wombat/config.js +0 -36
  174. package/build/dex/wombat/config.js.map +0 -1
  175. package/build/dex/wombat/types.d.ts +0 -33
  176. package/build/dex/wombat/types.js +0 -3
  177. package/build/dex/wombat/types.js.map +0 -1
  178. package/build/dex/wombat/utils.d.ts +0 -9
  179. package/build/dex/wombat/utils.js +0 -66
  180. package/build/dex/wombat/utils.js.map +0 -1
  181. package/build/dex/wombat/wombat-bmw.d.ts +0 -40
  182. package/build/dex/wombat/wombat-bmw.js +0 -145
  183. package/build/dex/wombat/wombat-bmw.js.map +0 -1
  184. package/build/dex/wombat/wombat-pool.d.ts +0 -22
  185. package/build/dex/wombat/wombat-pool.js +0 -161
  186. package/build/dex/wombat/wombat-pool.js.map +0 -1
  187. package/build/dex/wombat/wombat-quoter.d.ts +0 -16
  188. package/build/dex/wombat/wombat-quoter.js +0 -176
  189. package/build/dex/wombat/wombat-quoter.js.map +0 -1
  190. package/build/dex/wombat/wombat.d.ts +0 -55
  191. package/build/dex/wombat/wombat.js +0 -292
  192. package/build/dex/wombat/wombat.js.map +0 -1
  193. package/src/dex/baseswap-v3/baseswap-v3-e2e.test.ts +0 -129
  194. package/src/dex/baseswap-v3/baseswap-v3-events.test.ts +0 -141
  195. package/src/dex/baseswap-v3/baseswap-v3-factory.ts +0 -73
  196. package/src/dex/baseswap-v3/baseswap-v3-integration.test.ts +0 -472
  197. package/src/dex/baseswap-v3/baseswap-v3-pool.ts +0 -519
  198. package/src/dex/baseswap-v3/baseswap-v3.ts +0 -1243
  199. package/src/dex/baseswap-v3/config.ts +0 -53
  200. package/src/dex/baseswap-v3/constants.ts +0 -41
  201. package/src/dex/baseswap-v3/contract-math/BitMath.ts +0 -90
  202. package/src/dex/baseswap-v3/contract-math/FixedPoint128.ts +0 -3
  203. package/src/dex/baseswap-v3/contract-math/FixedPoint96.ts +0 -4
  204. package/src/dex/baseswap-v3/contract-math/FullMath.ts +0 -30
  205. package/src/dex/baseswap-v3/contract-math/LiquidityMath.ts +0 -17
  206. package/src/dex/baseswap-v3/contract-math/Oracle.ts +0 -226
  207. package/src/dex/baseswap-v3/contract-math/SqrtPriceMath.ts +0 -226
  208. package/src/dex/baseswap-v3/contract-math/SwapMath.ts +0 -139
  209. package/src/dex/baseswap-v3/contract-math/Tick.ts +0 -82
  210. package/src/dex/baseswap-v3/contract-math/TickBitMap.ts +0 -123
  211. package/src/dex/baseswap-v3/contract-math/TickMath.ts +0 -211
  212. package/src/dex/baseswap-v3/contract-math/UnsafeMath.ts +0 -5
  213. package/src/dex/baseswap-v3/contract-math/uniswap-v3-math.ts +0 -666
  214. package/src/dex/baseswap-v3/contract-math/utils.ts +0 -55
  215. package/src/dex/baseswap-v3/types.ts +0 -191
  216. package/src/dex/baseswap-v3/utils.ts +0 -83
@@ -1,472 +0,0 @@
1
- /* eslint-disable no-console */
2
- import dotenv from 'dotenv';
3
- dotenv.config();
4
-
5
- import { Interface, Result } from '@ethersproject/abi';
6
- import { DummyDexHelper, IDexHelper } from '../../dex-helper/index';
7
- import { Network, SwapSide } from '../../constants';
8
- import { BI_POWS } from '../../bigint-constants';
9
- import { BaseswapV3 } from './baseswap-v3';
10
- import { checkPoolPrices, checkPoolsLiquidity } from '../../../tests/utils';
11
- import { Tokens } from '../../../tests/constants-e2e';
12
- import UniswapV3QuoterV2ABI from '../../abi/uniswap-v3/UniswapV3QuoterV2.abi.json';
13
- import { Address } from '@paraswap/core';
14
-
15
- const network = Network.BASE;
16
- const TokenASymbol = 'USDC';
17
- const TokenA = Tokens[network][TokenASymbol];
18
-
19
- const QuoterV2 = '0x4fDBD73aD4B1DDde594BF05497C15f76308eFfb9';
20
-
21
- const TokenBSymbol = 'WETH';
22
- const TokenB = Tokens[network][TokenBSymbol];
23
-
24
- const amounts = [
25
- 0n,
26
- 10_000n * BI_POWS[6],
27
- 20_000n * BI_POWS[6],
28
- 30_000n * BI_POWS[6],
29
- ];
30
-
31
- const amountsBuy = [0n, 1n * BI_POWS[18], 2n * BI_POWS[18], 3n * BI_POWS[18]];
32
-
33
- const quoterIface = new Interface(UniswapV3QuoterV2ABI);
34
-
35
- function getReaderCalldata(
36
- exchangeAddress: string,
37
- readerIface: Interface,
38
- amounts: bigint[],
39
- funcName: string,
40
- tokenIn: Address,
41
- tokenOut: Address,
42
- fee: bigint,
43
- ) {
44
- return amounts.map(amount => ({
45
- target: exchangeAddress,
46
- callData: readerIface.encodeFunctionData(funcName, [
47
- [tokenIn, tokenOut, amount.toString(), fee.toString(), 0],
48
- ]),
49
- }));
50
- }
51
-
52
- function decodeReaderResult(
53
- results: Result,
54
- readerIface: Interface,
55
- funcName: string,
56
- ) {
57
- return results.map(result => {
58
- const parsed = readerIface.decodeFunctionResult(funcName, result);
59
- return BigInt(parsed[0]._hex);
60
- });
61
- }
62
-
63
- async function checkOnChainPricing(
64
- dexHelper: IDexHelper,
65
- funcName: string,
66
- blockNumber: number,
67
- exchangeAddress: string,
68
- prices: bigint[],
69
- tokenIn: Address,
70
- tokenOut: Address,
71
- fee: bigint,
72
- _amounts: bigint[],
73
- ) {
74
- // const exchangeAddress = '0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6';
75
- const readerIface = quoterIface;
76
-
77
- const sum = prices.reduce((acc, curr) => (acc += curr), 0n);
78
-
79
- if (sum === 0n) {
80
- console.log(
81
- `Prices were not calculated for tokenIn=${tokenIn}, tokenOut=${tokenOut}, fee=${fee.toString()}. Most likely price impact is too big for requested amount`,
82
- );
83
- return false;
84
- }
85
-
86
- const readerCallData = getReaderCalldata(
87
- exchangeAddress,
88
- readerIface,
89
- _amounts.slice(1),
90
- funcName,
91
- tokenIn,
92
- tokenOut,
93
- fee,
94
- );
95
-
96
- let readerResult;
97
- try {
98
- readerResult = (
99
- await dexHelper.multiContract.methods
100
- .aggregate(readerCallData)
101
- .call({}, blockNumber)
102
- ).returnData;
103
- } catch (e) {
104
- console.log(
105
- `Can not fetch on-chain pricing for fee ${fee}. It happens for low liquidity pools`,
106
- e,
107
- );
108
- return false;
109
- }
110
-
111
- const expectedPrices = [0n].concat(
112
- decodeReaderResult(readerResult, readerIface, funcName),
113
- );
114
-
115
- console.log('EXPECTED PRICES: ', expectedPrices);
116
-
117
- let firstZeroIndex = prices.slice(1).indexOf(0n);
118
-
119
- // we skipped first, so add +1 on result
120
- firstZeroIndex = firstZeroIndex === -1 ? prices.length : firstZeroIndex;
121
-
122
- // Compare only the ones for which we were able to calculate prices
123
- expect(prices.slice(0, firstZeroIndex)).toEqual(
124
- expectedPrices.slice(0, firstZeroIndex),
125
- );
126
- return true;
127
- }
128
-
129
- describe('BaseswapV3', function () {
130
- const dexHelper = new DummyDexHelper(network);
131
- const dexKey = 'BaseswapV3';
132
-
133
- let blockNumber: number;
134
- let baseswapV3: BaseswapV3;
135
- let baseswapV3Mainnet: BaseswapV3;
136
-
137
- beforeEach(async () => {
138
- blockNumber = await dexHelper.web3Provider.eth.getBlockNumber();
139
- baseswapV3 = new BaseswapV3(network, dexKey, dexHelper);
140
- baseswapV3Mainnet = new BaseswapV3(
141
- Network.BASE,
142
- dexKey,
143
- new DummyDexHelper(Network.BASE),
144
- );
145
- });
146
-
147
- it('getPoolIdentifiers and getPricesVolume SELL', async function () {
148
- const pools = await baseswapV3.getPoolIdentifiers(
149
- TokenA,
150
- TokenB,
151
- SwapSide.SELL,
152
- blockNumber,
153
- );
154
- console.log(`${TokenASymbol} <> ${TokenBSymbol} Pool Identifiers: `, pools);
155
-
156
- expect(pools.length).toBeGreaterThan(0);
157
-
158
- const poolPrices = await baseswapV3.getPricesVolume(
159
- TokenA,
160
- TokenB,
161
- amounts,
162
- SwapSide.SELL,
163
- blockNumber,
164
- pools,
165
- );
166
- console.log(`${TokenASymbol} <> ${TokenBSymbol} Pool Prices: `, poolPrices);
167
-
168
- expect(poolPrices).not.toBeNull();
169
- checkPoolPrices(poolPrices!, amounts, SwapSide.SELL, dexKey);
170
-
171
- let falseChecksCounter = 0;
172
- await Promise.all(
173
- poolPrices!.map(async price => {
174
- const fee = baseswapV3.eventPools[price.poolIdentifier!]!.feeCode;
175
- const res = await checkOnChainPricing(
176
- dexHelper,
177
- 'quoteExactInputSingle',
178
- blockNumber,
179
- QuoterV2,
180
- price.prices,
181
- TokenA.address,
182
- TokenB.address,
183
- fee,
184
- amounts,
185
- );
186
- if (res === false) falseChecksCounter++;
187
- }),
188
- );
189
-
190
- expect(falseChecksCounter).toBeLessThan(poolPrices!.length);
191
- });
192
-
193
- it('getPoolIdentifiers and getPricesVolume BUY', async function () {
194
- const pools = await baseswapV3.getPoolIdentifiers(
195
- TokenA,
196
- TokenB,
197
- SwapSide.BUY,
198
- blockNumber,
199
- );
200
- console.log(`${TokenASymbol} <> ${TokenBSymbol} Pool Identifiers: `, pools);
201
-
202
- expect(pools.length).toBeGreaterThan(0);
203
-
204
- const poolPrices = await baseswapV3.getPricesVolume(
205
- TokenA,
206
- TokenB,
207
- amountsBuy,
208
- SwapSide.BUY,
209
- blockNumber,
210
- pools,
211
- );
212
- console.log(`${TokenASymbol} <> ${TokenBSymbol} Pool Prices: `, poolPrices);
213
-
214
- expect(poolPrices).not.toBeNull();
215
- checkPoolPrices(poolPrices!, amountsBuy, SwapSide.BUY, dexKey);
216
-
217
- // Check if onchain pricing equals to calculated ones
218
- let falseChecksCounter = 0;
219
- await Promise.all(
220
- poolPrices!.map(async price => {
221
- const fee = baseswapV3.eventPools[price.poolIdentifier!]!.feeCode;
222
- const res = await checkOnChainPricing(
223
- dexHelper,
224
- 'quoteExactOutputSingle',
225
- blockNumber,
226
- QuoterV2,
227
- price.prices,
228
- TokenA.address,
229
- TokenB.address,
230
- fee,
231
- amountsBuy,
232
- );
233
- if (res === false) falseChecksCounter++;
234
- }),
235
- );
236
- expect(falseChecksCounter).toBeLessThan(poolPrices!.length);
237
- });
238
-
239
- it('getPoolIdentifiers and getPricesVolume SELL stable pairs', async function () {
240
- const TokenASymbol = 'USDbC';
241
- const TokenA = Tokens[network][TokenASymbol];
242
-
243
- const TokenBSymbol = 'USDC';
244
- const TokenB = Tokens[network][TokenBSymbol];
245
-
246
- const amounts = [
247
- 0n,
248
- 6000000n,
249
- 12000000n,
250
- 18000000n,
251
- 24000000n,
252
- 30000000n,
253
- 36000000n,
254
- 42000000n,
255
- 48000000n,
256
- 54000000n,
257
- 60000000n,
258
- 66000000n,
259
- 72000000n,
260
- 78000000n,
261
- 84000000n,
262
- 90000000n,
263
- 96000000n,
264
- 102000000n,
265
- 108000000n,
266
- 114000000n,
267
- 120000000n,
268
- 126000000n,
269
- 132000000n,
270
- 138000000n,
271
- 144000000n,
272
- 150000000n,
273
- 156000000n,
274
- 162000000n,
275
- 168000000n,
276
- 174000000n,
277
- 180000000n,
278
- 186000000n,
279
- 192000000n,
280
- 198000000n,
281
- 204000000n,
282
- 210000000n,
283
- 216000000n,
284
- 222000000n,
285
- 228000000n,
286
- 234000000n,
287
- 240000000n,
288
- 246000000n,
289
- 252000000n,
290
- 258000000n,
291
- 264000000n,
292
- 270000000n,
293
- 276000000n,
294
- 282000000n,
295
- 288000000n,
296
- 294000000n,
297
- 300000000n,
298
- ];
299
-
300
- const pools = await baseswapV3.getPoolIdentifiers(
301
- TokenA,
302
- TokenB,
303
- SwapSide.SELL,
304
- blockNumber,
305
- );
306
- console.log(`${TokenASymbol} <> ${TokenBSymbol} Pool Identifiers: `, pools);
307
-
308
- expect(pools.length).toBeGreaterThan(0);
309
-
310
- const poolPrices = await baseswapV3.getPricesVolume(
311
- TokenA,
312
- TokenB,
313
- amounts,
314
- SwapSide.SELL,
315
- blockNumber,
316
- pools,
317
- );
318
- console.log(`${TokenASymbol} <> ${TokenBSymbol} Pool Prices: `, poolPrices);
319
-
320
- expect(poolPrices).not.toBeNull();
321
- checkPoolPrices(
322
- poolPrices!.filter(pp => pp.unit !== 0n),
323
- amounts,
324
- SwapSide.SELL,
325
- dexKey,
326
- );
327
-
328
- // Check if onchain pricing equals to calculated ones
329
- let falseChecksCounter = 0;
330
- await Promise.all(
331
- poolPrices!.map(async price => {
332
- const fee = baseswapV3.eventPools[price.poolIdentifier!]!.feeCode;
333
- const res = await checkOnChainPricing(
334
- dexHelper,
335
- 'quoteExactInputSingle',
336
- blockNumber,
337
- QuoterV2,
338
- price.prices,
339
- TokenA.address,
340
- TokenB.address,
341
- fee,
342
- amounts,
343
- );
344
- if (res === false) falseChecksCounter++;
345
- }),
346
- );
347
- expect(falseChecksCounter).toBeLessThan(poolPrices!.length);
348
- });
349
-
350
- it('getPoolIdentifiers and getPricesVolume BUY stable pairs', async function () {
351
- const TokenASymbol = 'DAI';
352
- const TokenA = Tokens[network][TokenASymbol];
353
-
354
- const TokenBSymbol = 'USDC';
355
- const TokenB = Tokens[network][TokenBSymbol];
356
-
357
- const amountsBuy = [
358
- 0n,
359
- 6000000n,
360
- 12000000n,
361
- 18000000n,
362
- 24000000n,
363
- 30000000n,
364
- 36000000n,
365
- 42000000n,
366
- 48000000n,
367
- 54000000n,
368
- 60000000n,
369
- 66000000n,
370
- 72000000n,
371
- 78000000n,
372
- 84000000n,
373
- 90000000n,
374
- 96000000n,
375
- 102000000n,
376
- 108000000n,
377
- 114000000n,
378
- 120000000n,
379
- 126000000n,
380
- 132000000n,
381
- 138000000n,
382
- 144000000n,
383
- 150000000n,
384
- 156000000n,
385
- 162000000n,
386
- 168000000n,
387
- 174000000n,
388
- 180000000n,
389
- 186000000n,
390
- 192000000n,
391
- 198000000n,
392
- 204000000n,
393
- 210000000n,
394
- 216000000n,
395
- 222000000n,
396
- 228000000n,
397
- 234000000n,
398
- 240000000n,
399
- 246000000n,
400
- 252000000n,
401
- 258000000n,
402
- 264000000n,
403
- 270000000n,
404
- 276000000n,
405
- 282000000n,
406
- 288000000n,
407
- 294000000n,
408
- 300000000n,
409
- ];
410
-
411
- const pools = await baseswapV3.getPoolIdentifiers(
412
- TokenA,
413
- TokenB,
414
- SwapSide.BUY,
415
- blockNumber,
416
- );
417
- console.log(`${TokenASymbol} <> ${TokenBSymbol} Pool Identifiers: `, pools);
418
-
419
- expect(pools.length).toBeGreaterThan(0);
420
-
421
- const poolPrices = await baseswapV3.getPricesVolume(
422
- TokenA,
423
- TokenB,
424
- amountsBuy,
425
- SwapSide.BUY,
426
- blockNumber,
427
- pools,
428
- );
429
- console.log(`${TokenASymbol} <> ${TokenBSymbol} Pool Prices: `, poolPrices);
430
-
431
- expect(poolPrices).not.toBeNull();
432
- checkPoolPrices(
433
- poolPrices!.filter(pp => pp.unit !== 0n),
434
- amountsBuy,
435
- SwapSide.BUY,
436
- dexKey,
437
- );
438
-
439
- // Check if onchain pricing equals to calculated ones
440
- let falseChecksCounter = 0;
441
- await Promise.all(
442
- poolPrices!.map(async price => {
443
- const fee = baseswapV3.eventPools[price.poolIdentifier!]!.feeCode;
444
- const res = await checkOnChainPricing(
445
- dexHelper,
446
- 'quoteExactOutputSingle',
447
- blockNumber,
448
- QuoterV2,
449
- price.prices,
450
- TokenA.address,
451
- TokenB.address,
452
- fee,
453
- amountsBuy,
454
- );
455
- if (res === false) falseChecksCounter++;
456
- }),
457
- );
458
- expect(falseChecksCounter).toBeLessThan(poolPrices!.length);
459
- });
460
-
461
- it('getTopPoolsForToken', async function () {
462
- const poolLiquidity = await baseswapV3Mainnet.getTopPoolsForToken(
463
- Tokens[Network.BASE]['USDC'].address,
464
- 10,
465
- );
466
- console.log(`${TokenASymbol} Top Pools:`, poolLiquidity);
467
-
468
- if (!baseswapV3.hasConstantPriceLargeAmounts) {
469
- checkPoolsLiquidity(poolLiquidity, TokenA.address, dexKey);
470
- }
471
- });
472
- });