@paraswap/dex-lib 2.42.4 → 2.42.5

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 (203) hide show
  1. package/build/abi/kyberswap-elastic/IAntiSnipAttackPositionManager.json +1276 -0
  2. package/build/abi/kyberswap-elastic/IFactory.json +550 -0
  3. package/build/abi/kyberswap-elastic/IPool.json +1042 -0
  4. package/build/abi/kyberswap-elastic/IQuoterV2.json +226 -0
  5. package/build/abi/kyberswap-elastic/IRouter.json +239 -0
  6. package/build/abi/kyberswap-elastic/TicksFeesReader.json +142 -0
  7. package/build/abi/wombat/asset.json +769 -0
  8. package/build/abi/wombat/bmw.json +1247 -0
  9. package/build/abi/wombat/pool.json +1364 -0
  10. package/build/dex/baseswap-v3/baseswap-v3-factory.d.ts +26 -0
  11. package/build/dex/baseswap-v3/baseswap-v3-factory.js +44 -0
  12. package/build/dex/baseswap-v3/baseswap-v3-factory.js.map +1 -0
  13. package/build/dex/baseswap-v3/baseswap-v3-pool.d.ts +46 -0
  14. package/build/dex/baseswap-v3/baseswap-v3-pool.js +312 -0
  15. package/build/dex/baseswap-v3/baseswap-v3-pool.js.map +1 -0
  16. package/build/dex/baseswap-v3/baseswap-v3.d.ts +71 -0
  17. package/build/dex/baseswap-v3/baseswap-v3.js +752 -0
  18. package/build/dex/baseswap-v3/baseswap-v3.js.map +1 -0
  19. package/build/dex/baseswap-v3/config.d.ts +9 -0
  20. package/build/dex/baseswap-v3/config.js +48 -0
  21. package/build/dex/baseswap-v3/config.js.map +1 -0
  22. package/build/dex/baseswap-v3/constants.d.ts +28 -0
  23. package/build/dex/baseswap-v3/constants.js +35 -0
  24. package/build/dex/baseswap-v3/constants.js.map +1 -0
  25. package/build/dex/baseswap-v3/contract-math/BitMath.d.ts +4 -0
  26. package/build/dex/baseswap-v3/contract-math/BitMath.js +93 -0
  27. package/build/dex/baseswap-v3/contract-math/BitMath.js.map +1 -0
  28. package/build/dex/baseswap-v3/contract-math/FixedPoint128.d.ts +3 -0
  29. package/build/dex/baseswap-v3/contract-math/FixedPoint128.js +8 -0
  30. package/build/dex/baseswap-v3/contract-math/FixedPoint128.js.map +1 -0
  31. package/build/dex/baseswap-v3/contract-math/FixedPoint96.d.ts +4 -0
  32. package/build/dex/baseswap-v3/contract-math/FixedPoint96.js +9 -0
  33. package/build/dex/baseswap-v3/contract-math/FixedPoint96.js.map +1 -0
  34. package/build/dex/baseswap-v3/contract-math/FullMath.d.ts +4 -0
  35. package/build/dex/baseswap-v3/contract-math/FullMath.js +19 -0
  36. package/build/dex/baseswap-v3/contract-math/FullMath.js.map +1 -0
  37. package/build/dex/baseswap-v3/contract-math/LiquidityMath.d.ts +3 -0
  38. package/build/dex/baseswap-v3/contract-math/LiquidityMath.js +22 -0
  39. package/build/dex/baseswap-v3/contract-math/LiquidityMath.js.map +1 -0
  40. package/build/dex/baseswap-v3/contract-math/Oracle.d.ts +10 -0
  41. package/build/dex/baseswap-v3/contract-math/Oracle.js +133 -0
  42. package/build/dex/baseswap-v3/contract-math/Oracle.js.map +1 -0
  43. package/build/dex/baseswap-v3/contract-math/SqrtPriceMath.d.ts +10 -0
  44. package/build/dex/baseswap-v3/contract-math/SqrtPriceMath.js +91 -0
  45. package/build/dex/baseswap-v3/contract-math/SqrtPriceMath.js.map +1 -0
  46. package/build/dex/baseswap-v3/contract-math/SwapMath.d.ts +8 -0
  47. package/build/dex/baseswap-v3/contract-math/SwapMath.js +70 -0
  48. package/build/dex/baseswap-v3/contract-math/SwapMath.js.map +1 -0
  49. package/build/dex/baseswap-v3/contract-math/Tick.d.ts +7 -0
  50. package/build/dex/baseswap-v3/contract-math/Tick.js +45 -0
  51. package/build/dex/baseswap-v3/contract-math/Tick.js.map +1 -0
  52. package/build/dex/baseswap-v3/contract-math/TickBitMap.d.ts +7 -0
  53. package/build/dex/baseswap-v3/contract-math/TickBitMap.js +84 -0
  54. package/build/dex/baseswap-v3/contract-math/TickBitMap.js.map +1 -0
  55. package/build/dex/baseswap-v3/contract-math/TickMath.d.ts +8 -0
  56. package/build/dex/baseswap-v3/contract-math/TickMath.js +162 -0
  57. package/build/dex/baseswap-v3/contract-math/TickMath.js.map +1 -0
  58. package/build/dex/baseswap-v3/contract-math/UnsafeMath.d.ts +3 -0
  59. package/build/dex/baseswap-v3/contract-math/UnsafeMath.js +10 -0
  60. package/build/dex/baseswap-v3/contract-math/UnsafeMath.js.map +1 -0
  61. package/build/dex/baseswap-v3/contract-math/uniswap-v3-math.d.ts +37 -0
  62. package/build/dex/baseswap-v3/contract-math/uniswap-v3-math.js +393 -0
  63. package/build/dex/baseswap-v3/contract-math/uniswap-v3-math.js.map +1 -0
  64. package/build/dex/baseswap-v3/contract-math/utils.d.ts +7 -0
  65. package/build/dex/baseswap-v3/contract-math/utils.js +42 -0
  66. package/build/dex/baseswap-v3/contract-math/utils.js.map +1 -0
  67. package/build/dex/baseswap-v3/types.d.ts +164 -0
  68. package/build/dex/baseswap-v3/types.js +9 -0
  69. package/build/dex/baseswap-v3/types.js.map +1 -0
  70. package/build/dex/baseswap-v3/utils.d.ts +6 -0
  71. package/build/dex/baseswap-v3/utils.js +65 -0
  72. package/build/dex/baseswap-v3/utils.js.map +1 -0
  73. package/build/dex/hello/config.d.ts +4 -0
  74. package/build/dex/hello/config.js +15 -0
  75. package/build/dex/hello/config.js.map +1 -0
  76. package/build/dex/hello/hello-pool.d.ts +39 -0
  77. package/build/dex/hello/hello-pool.js +64 -0
  78. package/build/dex/hello/hello-pool.js.map +1 -0
  79. package/build/dex/hello/hello.d.ts +37 -0
  80. package/build/dex/hello/hello.js +126 -0
  81. package/build/dex/hello/hello.js.map +1 -0
  82. package/build/dex/hello/types.d.ts +6 -0
  83. package/build/dex/hello/types.js +3 -0
  84. package/build/dex/hello/types.js.map +1 -0
  85. package/build/dex/kyberswap-elastic/config.d.ts +4 -0
  86. package/build/dex/kyberswap-elastic/config.js +80 -0
  87. package/build/dex/kyberswap-elastic/config.js.map +1 -0
  88. package/build/dex/kyberswap-elastic/constants.d.ts +17 -0
  89. package/build/dex/kyberswap-elastic/constants.js +42 -0
  90. package/build/dex/kyberswap-elastic/constants.js.map +1 -0
  91. package/build/dex/kyberswap-elastic/contract-math/FixedPoint96.d.ts +4 -0
  92. package/build/dex/kyberswap-elastic/contract-math/FixedPoint96.js +9 -0
  93. package/build/dex/kyberswap-elastic/contract-math/FixedPoint96.js.map +1 -0
  94. package/build/dex/kyberswap-elastic/contract-math/FullMath.d.ts +5 -0
  95. package/build/dex/kyberswap-elastic/contract-math/FullMath.js +22 -0
  96. package/build/dex/kyberswap-elastic/contract-math/FullMath.js.map +1 -0
  97. package/build/dex/kyberswap-elastic/contract-math/LiqDeltaMath.d.ts +3 -0
  98. package/build/dex/kyberswap-elastic/contract-math/LiqDeltaMath.js +12 -0
  99. package/build/dex/kyberswap-elastic/contract-math/LiqDeltaMath.js.map +1 -0
  100. package/build/dex/kyberswap-elastic/contract-math/LiquidityMath.d.ts +3 -0
  101. package/build/dex/kyberswap-elastic/contract-math/LiquidityMath.js +22 -0
  102. package/build/dex/kyberswap-elastic/contract-math/LiquidityMath.js.map +1 -0
  103. package/build/dex/kyberswap-elastic/contract-math/QtyDeltaMath.d.ts +5 -0
  104. package/build/dex/kyberswap-elastic/contract-math/QtyDeltaMath.js +25 -0
  105. package/build/dex/kyberswap-elastic/contract-math/QtyDeltaMath.js.map +1 -0
  106. package/build/dex/kyberswap-elastic/contract-math/QuadMath.d.ts +4 -0
  107. package/build/dex/kyberswap-elastic/contract-math/QuadMath.js +27 -0
  108. package/build/dex/kyberswap-elastic/contract-math/QuadMath.js.map +1 -0
  109. package/build/dex/kyberswap-elastic/contract-math/ReinvestmentMath.d.ts +3 -0
  110. package/build/dex/kyberswap-elastic/contract-math/ReinvestmentMath.js +14 -0
  111. package/build/dex/kyberswap-elastic/contract-math/ReinvestmentMath.js.map +1 -0
  112. package/build/dex/kyberswap-elastic/contract-math/SafeCast.d.ts +8 -0
  113. package/build/dex/kyberswap-elastic/contract-math/SafeCast.js +30 -0
  114. package/build/dex/kyberswap-elastic/contract-math/SafeCast.js.map +1 -0
  115. package/build/dex/kyberswap-elastic/contract-math/SqrtPriceMath.d.ts +10 -0
  116. package/build/dex/kyberswap-elastic/contract-math/SqrtPriceMath.js +91 -0
  117. package/build/dex/kyberswap-elastic/contract-math/SqrtPriceMath.js.map +1 -0
  118. package/build/dex/kyberswap-elastic/contract-math/SwapMath.d.ts +13 -0
  119. package/build/dex/kyberswap-elastic/contract-math/SwapMath.js +188 -0
  120. package/build/dex/kyberswap-elastic/contract-math/SwapMath.js.map +1 -0
  121. package/build/dex/kyberswap-elastic/contract-math/TickLinkedList.d.ts +6 -0
  122. package/build/dex/kyberswap-elastic/contract-math/TickLinkedList.js +41 -0
  123. package/build/dex/kyberswap-elastic/contract-math/TickLinkedList.js.map +1 -0
  124. package/build/dex/kyberswap-elastic/contract-math/TickMath.d.ts +9 -0
  125. package/build/dex/kyberswap-elastic/contract-math/TickMath.js +165 -0
  126. package/build/dex/kyberswap-elastic/contract-math/TickMath.js.map +1 -0
  127. package/build/dex/kyberswap-elastic/contract-math/UnsafeMath.d.ts +3 -0
  128. package/build/dex/kyberswap-elastic/contract-math/UnsafeMath.js +10 -0
  129. package/build/dex/kyberswap-elastic/contract-math/UnsafeMath.js.map +1 -0
  130. package/build/dex/kyberswap-elastic/contract-math/kyberswap-elastic-math.d.ts +28 -0
  131. package/build/dex/kyberswap-elastic/contract-math/kyberswap-elastic-math.js +502 -0
  132. package/build/dex/kyberswap-elastic/contract-math/kyberswap-elastic-math.js.map +1 -0
  133. package/build/dex/kyberswap-elastic/contract-math/utils.d.ts +3 -0
  134. package/build/dex/kyberswap-elastic/contract-math/utils.js +16 -0
  135. package/build/dex/kyberswap-elastic/contract-math/utils.js.map +1 -0
  136. package/build/dex/kyberswap-elastic/errors.d.ts +2 -0
  137. package/build/dex/kyberswap-elastic/errors.js +6 -0
  138. package/build/dex/kyberswap-elastic/errors.js.map +1 -0
  139. package/build/dex/kyberswap-elastic/kyberswap-elastic-pool.d.ts +80 -0
  140. package/build/dex/kyberswap-elastic/kyberswap-elastic-pool.js +458 -0
  141. package/build/dex/kyberswap-elastic/kyberswap-elastic-pool.js.map +1 -0
  142. package/build/dex/kyberswap-elastic/kyberswap-elastic.d.ts +53 -0
  143. package/build/dex/kyberswap-elastic/kyberswap-elastic.js +610 -0
  144. package/build/dex/kyberswap-elastic/kyberswap-elastic.js.map +1 -0
  145. package/build/dex/kyberswap-elastic/types.d.ts +134 -0
  146. package/build/dex/kyberswap-elastic/types.js +9 -0
  147. package/build/dex/kyberswap-elastic/types.js.map +1 -0
  148. package/build/dex/kyberswap-elastic/utils/decoders.d.ts +9 -0
  149. package/build/dex/kyberswap-elastic/utils/decoders.js +78 -0
  150. package/build/dex/kyberswap-elastic/utils/decoders.js.map +1 -0
  151. package/build/dex/morphex/config.d.ts +11 -0
  152. package/build/dex/morphex/config.js +43 -0
  153. package/build/dex/morphex/config.js.map +1 -0
  154. package/build/dex/morphex/morphex.d.ts +25 -0
  155. package/build/dex/morphex/morphex.js +19 -0
  156. package/build/dex/morphex/morphex.js.map +1 -0
  157. package/build/dex/my-test-dex/config.d.ts +4 -0
  158. package/build/dex/my-test-dex/config.js +15 -0
  159. package/build/dex/my-test-dex/config.js.map +1 -0
  160. package/build/dex/my-test-dex/my-test-dex-pool.d.ts +39 -0
  161. package/build/dex/my-test-dex/my-test-dex-pool.js +64 -0
  162. package/build/dex/my-test-dex/my-test-dex-pool.js.map +1 -0
  163. package/build/dex/my-test-dex/my-test-dex.d.ts +37 -0
  164. package/build/dex/my-test-dex/my-test-dex.js +126 -0
  165. package/build/dex/my-test-dex/my-test-dex.js.map +1 -0
  166. package/build/dex/my-test-dex/types.d.ts +6 -0
  167. package/build/dex/my-test-dex/types.js +3 -0
  168. package/build/dex/my-test-dex/types.js.map +1 -0
  169. package/build/dex/solidly/forks-override/fvm.d.ts +20 -0
  170. package/build/dex/solidly/forks-override/fvm.js +42 -0
  171. package/build/dex/solidly/forks-override/fvm.js.map +1 -0
  172. package/build/dex/uniswap-v3/config.js +14 -0
  173. package/build/dex/uniswap-v3/config.js.map +1 -1
  174. package/build/dex/uniswap-v3/uniswap-v3.js +1 -0
  175. package/build/dex/uniswap-v3/uniswap-v3.js.map +1 -1
  176. package/build/dex/wombat/config.d.ts +5 -0
  177. package/build/dex/wombat/config.js +36 -0
  178. package/build/dex/wombat/config.js.map +1 -0
  179. package/build/dex/wombat/types.d.ts +33 -0
  180. package/build/dex/wombat/types.js +3 -0
  181. package/build/dex/wombat/types.js.map +1 -0
  182. package/build/dex/wombat/utils.d.ts +9 -0
  183. package/build/dex/wombat/utils.js +66 -0
  184. package/build/dex/wombat/utils.js.map +1 -0
  185. package/build/dex/wombat/wombat-bmw.d.ts +40 -0
  186. package/build/dex/wombat/wombat-bmw.js +145 -0
  187. package/build/dex/wombat/wombat-bmw.js.map +1 -0
  188. package/build/dex/wombat/wombat-pool.d.ts +22 -0
  189. package/build/dex/wombat/wombat-pool.js +161 -0
  190. package/build/dex/wombat/wombat-pool.js.map +1 -0
  191. package/build/dex/wombat/wombat-quoter.d.ts +16 -0
  192. package/build/dex/wombat/wombat-quoter.js +176 -0
  193. package/build/dex/wombat/wombat-quoter.js.map +1 -0
  194. package/build/dex/wombat/wombat.d.ts +55 -0
  195. package/build/dex/wombat/wombat.js +292 -0
  196. package/build/dex/wombat/wombat.js.map +1 -0
  197. package/package.json +1 -1
  198. package/src/dex/uniswap-v3/config.ts +14 -0
  199. package/src/dex/uniswap-v3/uniswap-v3-e2e.test.ts +24 -0
  200. package/src/dex/uniswap-v3/uniswap-v3-integration.test.ts +331 -0
  201. package/src/dex/uniswap-v3/uniswap-v3.ts +1 -0
  202. package/.vscode/launch.json +0 -16
  203. package/build/test.js +0 -26
@@ -11,6 +11,7 @@ import { checkPoolPrices, checkPoolsLiquidity } from '../../../tests/utils';
11
11
  import { Tokens } from '../../../tests/constants-e2e';
12
12
  import UniswapV3QuoterV2ABI from '../../abi/uniswap-v3/UniswapV3QuoterV2.abi.json';
13
13
  import { Address } from '@paraswap/core';
14
+ import { UniswapV3Config } from './config';
14
15
 
15
16
  const network = Network.POLYGON;
16
17
  const TokenASymbol = 'USDC';
@@ -1239,3 +1240,333 @@ describe('Retro', () => {
1239
1240
  });
1240
1241
  });
1241
1242
  });
1243
+
1244
+ describe('BaseswapV3', function () {
1245
+ const dexKey = 'BaseswapV3';
1246
+
1247
+ describe('Base', function () {
1248
+ const network = Network.BASE;
1249
+ const dexHelper = new DummyDexHelper(network);
1250
+
1251
+ let blockNumber: number;
1252
+ let baseswapV3: UniswapV3;
1253
+
1254
+ const TokenASymbol = 'USDC';
1255
+ const TokenA = Tokens[network][TokenASymbol];
1256
+
1257
+ const TokenBSymbol = 'WETH';
1258
+ const TokenB = Tokens[network][TokenBSymbol];
1259
+
1260
+ const QuoterV2 = UniswapV3Config[dexKey][network].quoter;
1261
+
1262
+ const amountsBuy = [
1263
+ 0n,
1264
+ 6000000n,
1265
+ 12000000n,
1266
+ 18000000n,
1267
+ 24000000n,
1268
+ 30000000n,
1269
+ 36000000n,
1270
+ 42000000n,
1271
+ 48000000n,
1272
+ 54000000n,
1273
+ 60000000n,
1274
+ 66000000n,
1275
+ 72000000n,
1276
+ 78000000n,
1277
+ 84000000n,
1278
+ 90000000n,
1279
+ 96000000n,
1280
+ 102000000n,
1281
+ 108000000n,
1282
+ 114000000n,
1283
+ 120000000n,
1284
+ 126000000n,
1285
+ 132000000n,
1286
+ 138000000n,
1287
+ 144000000n,
1288
+ 150000000n,
1289
+ 156000000n,
1290
+ 162000000n,
1291
+ 168000000n,
1292
+ 174000000n,
1293
+ 180000000n,
1294
+ 186000000n,
1295
+ 192000000n,
1296
+ 198000000n,
1297
+ 204000000n,
1298
+ 210000000n,
1299
+ 216000000n,
1300
+ 222000000n,
1301
+ 228000000n,
1302
+ 234000000n,
1303
+ 240000000n,
1304
+ 246000000n,
1305
+ 252000000n,
1306
+ 258000000n,
1307
+ 264000000n,
1308
+ 270000000n,
1309
+ 276000000n,
1310
+ 282000000n,
1311
+ 288000000n,
1312
+ 294000000n,
1313
+ 300000000n,
1314
+ ];
1315
+
1316
+ beforeEach(async () => {
1317
+ blockNumber = await dexHelper.web3Provider.eth.getBlockNumber();
1318
+ baseswapV3 = new UniswapV3(network, dexKey, dexHelper);
1319
+ });
1320
+
1321
+ it('getPoolIdentifiers and getPricesVolume SELL', async function () {
1322
+ const pools = await baseswapV3.getPoolIdentifiers(
1323
+ TokenA,
1324
+ TokenB,
1325
+ SwapSide.SELL,
1326
+ blockNumber,
1327
+ );
1328
+ console.log(
1329
+ `${TokenASymbol} <> ${TokenBSymbol} Pool Identifiers: `,
1330
+ pools,
1331
+ );
1332
+
1333
+ expect(pools.length).toBeGreaterThan(0);
1334
+
1335
+ const poolPrices = await baseswapV3.getPricesVolume(
1336
+ TokenA,
1337
+ TokenB,
1338
+ amounts,
1339
+ SwapSide.SELL,
1340
+ blockNumber,
1341
+ pools,
1342
+ );
1343
+ console.log(
1344
+ `${TokenASymbol} <> ${TokenBSymbol} Pool Prices: `,
1345
+ poolPrices,
1346
+ );
1347
+
1348
+ expect(poolPrices).not.toBeNull();
1349
+ checkPoolPrices(poolPrices!, amounts, SwapSide.SELL, dexKey);
1350
+
1351
+ let falseChecksCounter = 0;
1352
+ await Promise.all(
1353
+ poolPrices!.map(async price => {
1354
+ const fee = baseswapV3.eventPools[price.poolIdentifier!]!.feeCode;
1355
+ const res = await checkOnChainPricing(
1356
+ dexHelper,
1357
+ baseswapV3,
1358
+ 'quoteExactInputSingle',
1359
+ blockNumber,
1360
+ QuoterV2,
1361
+ price.prices,
1362
+ TokenA.address,
1363
+ TokenB.address,
1364
+ fee,
1365
+ amounts,
1366
+ );
1367
+ if (res === false) falseChecksCounter++;
1368
+ }),
1369
+ );
1370
+
1371
+ expect(falseChecksCounter).toBeLessThan(poolPrices!.length);
1372
+ });
1373
+
1374
+ it('getPoolIdentifiers and getPricesVolume BUY', async function () {
1375
+ const amountsBuy = [
1376
+ 0n,
1377
+ 1n * BI_POWS[18],
1378
+ 2n * BI_POWS[18],
1379
+ 3n * BI_POWS[18],
1380
+ ];
1381
+
1382
+ const pools = await baseswapV3.getPoolIdentifiers(
1383
+ TokenA,
1384
+ TokenB,
1385
+ SwapSide.BUY,
1386
+ blockNumber,
1387
+ );
1388
+ console.log(
1389
+ `${TokenASymbol} <> ${TokenBSymbol} Pool Identifiers: `,
1390
+ pools,
1391
+ );
1392
+
1393
+ expect(pools.length).toBeGreaterThan(0);
1394
+
1395
+ const poolPrices = await baseswapV3.getPricesVolume(
1396
+ TokenA,
1397
+ TokenB,
1398
+ amountsBuy,
1399
+ SwapSide.BUY,
1400
+ blockNumber,
1401
+ pools,
1402
+ );
1403
+ console.log(
1404
+ `${TokenASymbol} <> ${TokenBSymbol} Pool Prices: `,
1405
+ poolPrices,
1406
+ );
1407
+
1408
+ expect(poolPrices).not.toBeNull();
1409
+ checkPoolPrices(poolPrices!, amountsBuy, SwapSide.BUY, dexKey);
1410
+
1411
+ // Check if onchain pricing equals to calculated ones
1412
+ let falseChecksCounter = 0;
1413
+ await Promise.all(
1414
+ poolPrices!.map(async price => {
1415
+ const fee = baseswapV3.eventPools[price.poolIdentifier!]!.feeCode;
1416
+ const res = await checkOnChainPricing(
1417
+ dexHelper,
1418
+ baseswapV3,
1419
+ 'quoteExactOutputSingle',
1420
+ blockNumber,
1421
+ QuoterV2,
1422
+ price.prices,
1423
+ TokenA.address,
1424
+ TokenB.address,
1425
+ fee,
1426
+ amountsBuy,
1427
+ );
1428
+ if (res === false) falseChecksCounter++;
1429
+ }),
1430
+ );
1431
+ expect(falseChecksCounter).toBeLessThan(poolPrices!.length);
1432
+ });
1433
+
1434
+ it('getPoolIdentifiers and getPricesVolume SELL stable pairs', async function () {
1435
+ const TokenASymbol = 'USDbC';
1436
+ const TokenA = Tokens[network][TokenASymbol];
1437
+
1438
+ const TokenBSymbol = 'USDC';
1439
+ const TokenB = Tokens[network][TokenBSymbol];
1440
+
1441
+ const pools = await baseswapV3.getPoolIdentifiers(
1442
+ TokenA,
1443
+ TokenB,
1444
+ SwapSide.SELL,
1445
+ blockNumber,
1446
+ );
1447
+ console.log(
1448
+ `${TokenASymbol} <> ${TokenBSymbol} Pool Identifiers: `,
1449
+ pools,
1450
+ );
1451
+
1452
+ expect(pools.length).toBeGreaterThan(0);
1453
+
1454
+ const poolPrices = await baseswapV3.getPricesVolume(
1455
+ TokenA,
1456
+ TokenB,
1457
+ amountsBuy,
1458
+ SwapSide.SELL,
1459
+ blockNumber,
1460
+ pools,
1461
+ );
1462
+ console.log(
1463
+ `${TokenASymbol} <> ${TokenBSymbol} Pool Prices: `,
1464
+ poolPrices,
1465
+ );
1466
+
1467
+ expect(poolPrices).not.toBeNull();
1468
+ checkPoolPrices(
1469
+ poolPrices!.filter(pp => pp.unit !== 0n),
1470
+ amountsBuy,
1471
+ SwapSide.SELL,
1472
+ dexKey,
1473
+ );
1474
+
1475
+ // Check if onchain pricing equals to calculated ones
1476
+ let falseChecksCounter = 0;
1477
+ await Promise.all(
1478
+ poolPrices!.map(async price => {
1479
+ const fee = baseswapV3.eventPools[price.poolIdentifier!]!.feeCode;
1480
+ const res = await checkOnChainPricing(
1481
+ dexHelper,
1482
+ baseswapV3,
1483
+ 'quoteExactInputSingle',
1484
+ blockNumber,
1485
+ QuoterV2,
1486
+ price.prices,
1487
+ TokenA.address,
1488
+ TokenB.address,
1489
+ fee,
1490
+ amountsBuy,
1491
+ );
1492
+ if (res === false) falseChecksCounter++;
1493
+ }),
1494
+ );
1495
+ expect(falseChecksCounter).toBeLessThan(poolPrices!.length);
1496
+ });
1497
+
1498
+ it('getPoolIdentifiers and getPricesVolume BUY stable pairs', async function () {
1499
+ const TokenASymbol = 'DAI';
1500
+ const TokenA = Tokens[network][TokenASymbol];
1501
+
1502
+ const TokenBSymbol = 'USDC';
1503
+ const TokenB = Tokens[network][TokenBSymbol];
1504
+
1505
+ const pools = await baseswapV3.getPoolIdentifiers(
1506
+ TokenA,
1507
+ TokenB,
1508
+ SwapSide.BUY,
1509
+ blockNumber,
1510
+ );
1511
+ console.log(
1512
+ `${TokenASymbol} <> ${TokenBSymbol} Pool Identifiers: `,
1513
+ pools,
1514
+ );
1515
+
1516
+ expect(pools.length).toBeGreaterThan(0);
1517
+
1518
+ const poolPrices = await baseswapV3.getPricesVolume(
1519
+ TokenA,
1520
+ TokenB,
1521
+ amountsBuy,
1522
+ SwapSide.BUY,
1523
+ blockNumber,
1524
+ pools,
1525
+ );
1526
+ console.log(
1527
+ `${TokenASymbol} <> ${TokenBSymbol} Pool Prices: `,
1528
+ poolPrices,
1529
+ );
1530
+
1531
+ expect(poolPrices).not.toBeNull();
1532
+ checkPoolPrices(
1533
+ poolPrices!.filter(pp => pp.unit !== 0n),
1534
+ amountsBuy,
1535
+ SwapSide.BUY,
1536
+ dexKey,
1537
+ );
1538
+
1539
+ // Check if onchain pricing equals to calculated ones
1540
+ let falseChecksCounter = 0;
1541
+ await Promise.all(
1542
+ poolPrices!.map(async price => {
1543
+ const fee = baseswapV3.eventPools[price.poolIdentifier!]!.feeCode;
1544
+ const res = await checkOnChainPricing(
1545
+ dexHelper,
1546
+ baseswapV3,
1547
+ 'quoteExactOutputSingle',
1548
+ blockNumber,
1549
+ QuoterV2,
1550
+ price.prices,
1551
+ TokenA.address,
1552
+ TokenB.address,
1553
+ fee,
1554
+ amountsBuy,
1555
+ );
1556
+ if (res === false) falseChecksCounter++;
1557
+ }),
1558
+ );
1559
+ expect(falseChecksCounter).toBeLessThan(poolPrices!.length);
1560
+ });
1561
+
1562
+ it('getTopPoolsForToken', async function () {
1563
+ const poolLiquidity = await baseswapV3.getTopPoolsForToken(
1564
+ TokenB.address,
1565
+ 10,
1566
+ );
1567
+ console.log(`${TokenASymbol} Top Pools:`, poolLiquidity);
1568
+
1569
+ checkPoolsLiquidity(poolLiquidity, TokenB.address, dexKey);
1570
+ });
1571
+ });
1572
+ });
@@ -100,6 +100,7 @@ export class UniswapV3
100
100
  'RamsesV2',
101
101
  'ChronosV3',
102
102
  'Retro',
103
+ 'BaseswapV3',
103
104
  ]),
104
105
  );
105
106
 
@@ -1,16 +0,0 @@
1
- {
2
- "version": "0.2.0",
3
- "configurations": [
4
- {
5
- "type": "node",
6
- "request": "launch",
7
- "name": "Current",
8
- "program": "${file}",
9
- "preLaunchTask": "npm: build",
10
- "sourceMaps": true,
11
- "smartStep": true,
12
- "internalConsoleOptions": "openOnSessionStart",
13
- "outFiles": ["${workspaceFolder}/build/**/*.js"]
14
- }
15
- ]
16
- }
package/build/test.js DELETED
@@ -1,26 +0,0 @@
1
- // import { ethers } from 'ethers'
2
-
3
- const { ethers } = require("ethers");
4
- const axios = require("axios");
5
-
6
- // axios.default.get('http://localhost:4380/status').then(data => console.log(data.data)).catch(console.error)
7
-
8
- function getChainIdFromRpc() {
9
- return new Promise((resolve, reject) => {
10
- const provider = new ethers.providers.JsonRpcProvider(
11
- 'https://mainnet.infura.io/v3/84cb5ee6e88442c0be34d3ede51f4270'
12
- )
13
- provider
14
- .getNetwork()
15
- .then((network) => {
16
- console.log('network', network)
17
- resolve(network.chainId)
18
- })
19
- .catch((err) => {
20
- console.log('err', err)
21
- reject(err)
22
- })
23
- })
24
- }
25
-
26
- getChainIdFromRpc()