@paraswap/dex-lib 2.16.1 → 2.16.2-balancer-v2-buy.2

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 (91) hide show
  1. package/build/abi/uniswap-v3/UniswapV3Pool.abi.json +363 -67
  2. package/build/abi/uniswap-v3/UniswapV3Quoter.abi.json +119 -23
  3. package/build/abi/uniswap-v3/pancakeswap-v3/PancakeswapV3QuoterV2.abi.json +285 -0
  4. package/build/abi/uniswap-v3/pancakeswap-v3/PancakeswapV3Router.abi.json +583 -0
  5. package/build/config.js +6 -6
  6. package/build/dex/balancer-v2/balancer-v2.d.ts +9 -14
  7. package/build/dex/balancer-v2/balancer-v2.js +19 -16
  8. package/build/dex/balancer-v2/balancer-v2.js.map +1 -1
  9. package/build/dex/balancer-v2/config.d.ts +2 -7
  10. package/build/dex/balancer-v2/config.js +20 -30
  11. package/build/dex/balancer-v2/config.js.map +1 -1
  12. package/build/dex/balancer-v2/pools/balancer-v2-pool.d.ts +24 -0
  13. package/build/dex/balancer-v2/pools/balancer-v2-pool.js +102 -0
  14. package/build/dex/balancer-v2/pools/balancer-v2-pool.js.map +1 -0
  15. package/build/dex/balancer-v2/pools/linear/LinearMath.d.ts +19 -0
  16. package/build/dex/balancer-v2/pools/linear/LinearMath.js +179 -0
  17. package/build/dex/balancer-v2/pools/linear/LinearMath.js.map +1 -0
  18. package/build/dex/balancer-v2/pools/linear/LinearPool.d.ts +50 -0
  19. package/build/dex/balancer-v2/pools/linear/LinearPool.js +458 -0
  20. package/build/dex/balancer-v2/pools/linear/LinearPool.js.map +1 -0
  21. package/build/dex/balancer-v2/pools/phantom-stable/PhantomStableMath.d.ts +10 -0
  22. package/build/dex/balancer-v2/pools/phantom-stable/PhantomStableMath.js +314 -0
  23. package/build/dex/balancer-v2/pools/phantom-stable/PhantomStableMath.js.map +1 -0
  24. package/build/dex/balancer-v2/pools/phantom-stable/PhantomStablePool.d.ts +50 -0
  25. package/build/dex/balancer-v2/pools/phantom-stable/PhantomStablePool.js +367 -0
  26. package/build/dex/balancer-v2/pools/phantom-stable/PhantomStablePool.js.map +1 -0
  27. package/build/dex/balancer-v2/pools/stable/StableMath.d.ts +7 -0
  28. package/build/dex/balancer-v2/pools/stable/StableMath.js +111 -0
  29. package/build/dex/balancer-v2/pools/stable/StableMath.js.map +1 -0
  30. package/build/dex/balancer-v2/pools/stable/StablePool.d.ts +30 -0
  31. package/build/dex/balancer-v2/pools/stable/StablePool.js +129 -0
  32. package/build/dex/balancer-v2/pools/stable/StablePool.js.map +1 -0
  33. package/build/dex/balancer-v2/pools/weighted/WeightedMath.d.ts +6 -0
  34. package/build/dex/balancer-v2/pools/weighted/WeightedMath.js +61 -0
  35. package/build/dex/balancer-v2/pools/weighted/WeightedMath.js.map +1 -0
  36. package/build/dex/balancer-v2/pools/weighted/WeightedPool.d.ts +30 -0
  37. package/build/dex/balancer-v2/pools/weighted/WeightedPool.js +112 -0
  38. package/build/dex/balancer-v2/pools/weighted/WeightedPool.js.map +1 -0
  39. package/build/dex/index.js +4 -0
  40. package/build/dex/index.js.map +1 -1
  41. package/build/dex/maverick-v1/config.js +1 -1
  42. package/build/dex/maverick-v1/config.js.map +1 -1
  43. package/build/dex/quickswap/config.js +8 -0
  44. package/build/dex/quickswap/config.js.map +1 -1
  45. package/build/dex/quickswap/spiritswap-v3.d.ts +6 -0
  46. package/build/dex/quickswap/spiritswap-v3.js +19 -0
  47. package/build/dex/quickswap/spiritswap-v3.js.map +1 -0
  48. package/build/dex/uniswap-v3/config.js +42 -0
  49. package/build/dex/uniswap-v3/config.js.map +1 -1
  50. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.d.ts +12 -0
  51. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.js +23 -0
  52. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.js.map +1 -0
  53. package/build/dex/uniswap-v3/types.d.ts +3 -0
  54. package/build/dex/uniswap-v3/types.js.map +1 -1
  55. package/build/dex/uniswap-v3/uniswap-v3-pool.d.ts +2 -1
  56. package/build/dex/uniswap-v3/uniswap-v3-pool.js +3 -2
  57. package/build/dex/uniswap-v3/uniswap-v3-pool.js.map +1 -1
  58. package/build/dex/uniswap-v3/uniswap-v3.js +6 -3
  59. package/build/dex/uniswap-v3/uniswap-v3.js.map +1 -1
  60. package/package.json +1 -1
  61. package/src/abi/uniswap-v3/UniswapV3Pool.abi.json +363 -67
  62. package/src/abi/uniswap-v3/UniswapV3Quoter.abi.json +119 -23
  63. package/src/abi/uniswap-v3/pancakeswap-v3/PancakeswapV3QuoterV2.abi.json +285 -0
  64. package/src/abi/uniswap-v3/pancakeswap-v3/PancakeswapV3Router.abi.json +583 -0
  65. package/src/config.ts +6 -6
  66. package/src/dex/balancer-v2/balancer-v2-e2e.test.ts +99 -160
  67. package/src/dex/balancer-v2/balancer-v2.ts +41 -29
  68. package/src/dex/balancer-v2/config.ts +23 -35
  69. package/src/dex/balancer-v2/pools/balancer-v2-pool.ts +273 -0
  70. package/src/dex/balancer-v2/{LinearMath.ts → pools/linear/LinearMath.ts} +1 -1
  71. package/src/dex/balancer-v2/{LinearPool.ts → pools/linear/LinearPool.ts} +210 -5
  72. package/src/dex/balancer-v2/{StableMath.ts → pools/phantom-stable/PhantomStableMath.ts} +101 -21
  73. package/src/dex/balancer-v2/{PhantomStablePool.ts → pools/phantom-stable/PhantomStablePool.ts} +165 -11
  74. package/src/dex/balancer-v2/pools/stable/StableMath.ts +204 -0
  75. package/src/dex/balancer-v2/pools/stable/StablePool.ts +221 -0
  76. package/src/dex/balancer-v2/pools/weighted/WeightedMath.ts +84 -0
  77. package/src/dex/balancer-v2/pools/weighted/WeightedPool.ts +189 -0
  78. package/src/dex/index.ts +4 -0
  79. package/src/dex/maverick-v1/config.ts +1 -1
  80. package/src/dex/quickswap/config.ts +9 -0
  81. package/src/dex/quickswap/quickswap-e2e.test.ts +94 -0
  82. package/src/dex/quickswap/spiritswap-v3.ts +19 -0
  83. package/src/dex/uniswap-v3/config.ts +50 -0
  84. package/src/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.ts +28 -0
  85. package/src/dex/uniswap-v3/types.ts +3 -0
  86. package/src/dex/uniswap-v3/uniswap-v3-e2e.test.ts +156 -0
  87. package/src/dex/uniswap-v3/uniswap-v3-pool.ts +3 -2
  88. package/src/dex/uniswap-v3/uniswap-v3.ts +7 -3
  89. package/tests/constants-e2e.ts +11 -6
  90. package/.idea/runConfigurations.xml +0 -10
  91. package/src/dex/balancer-v2/balancer-v2-pool.ts +0 -744
@@ -203,3 +203,159 @@ describe('UniswapV3 E2E', () => {
203
203
  );
204
204
  });
205
205
  });
206
+
207
+ describe('PancakeswapV3 E2E', () => {
208
+ const dexKey = 'PancakeswapV3';
209
+
210
+ describe('PancakeswapV3 MAINNET', () => {
211
+ const network = Network.MAINNET;
212
+ const tokens = Tokens[network];
213
+ const holders = Holders[network];
214
+ const provider = new StaticJsonRpcProvider(
215
+ generateConfig(network).privateHttpProvider,
216
+ network,
217
+ );
218
+
219
+ const tokenASymbol: string = 'USDT';
220
+ const tokenBSymbol: string = 'USDC';
221
+ const nativeTokenSymbol = NativeTokenSymbols[network];
222
+
223
+ const tokenAAmount: string = '100000000';
224
+ const tokenBAmount: string = '100000000';
225
+ const nativeTokenAmount = '1000000000000000000';
226
+
227
+ const sideToContractMethods = new Map([
228
+ [
229
+ SwapSide.SELL,
230
+ [
231
+ ContractMethod.simpleSwap,
232
+ ContractMethod.multiSwap,
233
+ ContractMethod.megaSwap,
234
+ ],
235
+ ],
236
+ [SwapSide.BUY, [ContractMethod.simpleBuy, ContractMethod.buy]],
237
+ ]);
238
+
239
+ sideToContractMethods.forEach((contractMethods, side) =>
240
+ contractMethods.forEach((contractMethod: ContractMethod) => {
241
+ describe(`${contractMethod}`, () => {
242
+ it(`${network} ${side} ${contractMethod} ${nativeTokenSymbol} -> ${tokenASymbol}`, async () => {
243
+ await testE2E(
244
+ tokens[nativeTokenSymbol],
245
+ tokens[tokenASymbol],
246
+ holders[nativeTokenSymbol],
247
+ side === SwapSide.SELL ? nativeTokenAmount : tokenAAmount,
248
+ side,
249
+ dexKey,
250
+ contractMethod,
251
+ network,
252
+ provider,
253
+ );
254
+ });
255
+ it(`${network} ${side} ${contractMethod} ${tokenASymbol} -> ${nativeTokenSymbol}`, async () => {
256
+ await testE2E(
257
+ tokens[tokenASymbol],
258
+ tokens[nativeTokenSymbol],
259
+ holders[tokenASymbol],
260
+ side === SwapSide.SELL ? tokenAAmount : nativeTokenAmount,
261
+ side,
262
+ dexKey,
263
+ contractMethod,
264
+ network,
265
+ provider,
266
+ );
267
+ });
268
+ it(`${network} ${side} ${contractMethod} ${tokenASymbol} -> ${tokenBSymbol}`, async () => {
269
+ await testE2E(
270
+ tokens[tokenASymbol],
271
+ tokens[tokenBSymbol],
272
+ holders[tokenASymbol],
273
+ side === SwapSide.SELL ? tokenAAmount : tokenBAmount,
274
+ side,
275
+ dexKey,
276
+ contractMethod,
277
+ network,
278
+ provider,
279
+ );
280
+ });
281
+ });
282
+ }),
283
+ );
284
+ });
285
+
286
+ describe('PancakeswapV3 BSC', () => {
287
+ const network = Network.BSC;
288
+ const tokens = Tokens[network];
289
+ const holders = Holders[network];
290
+ const provider = new StaticJsonRpcProvider(
291
+ generateConfig(network).privateHttpProvider,
292
+ network,
293
+ );
294
+
295
+ const tokenASymbol: string = 'BUSD';
296
+ const tokenBSymbol: string = 'WBNB';
297
+ const nativeTokenSymbol = NativeTokenSymbols[network];
298
+
299
+ const tokenAAmount: string = '100000000000000000000';
300
+ const tokenBAmount: string = '1000000000000000000';
301
+ const nativeTokenAmount = '1000000000000000000';
302
+
303
+ const sideToContractMethods = new Map([
304
+ [
305
+ SwapSide.SELL,
306
+ [
307
+ ContractMethod.simpleSwap,
308
+ ContractMethod.multiSwap,
309
+ ContractMethod.megaSwap,
310
+ ],
311
+ ],
312
+ [SwapSide.BUY, [ContractMethod.simpleBuy, ContractMethod.buy]],
313
+ ]);
314
+
315
+ sideToContractMethods.forEach((contractMethods, side) =>
316
+ contractMethods.forEach((contractMethod: ContractMethod) => {
317
+ describe(`${contractMethod}`, () => {
318
+ it(`${network} ${side} ${contractMethod} ${nativeTokenSymbol} -> ${tokenASymbol}`, async () => {
319
+ await testE2E(
320
+ tokens[nativeTokenSymbol],
321
+ tokens[tokenASymbol],
322
+ holders[nativeTokenSymbol],
323
+ side === SwapSide.SELL ? nativeTokenAmount : tokenAAmount,
324
+ side,
325
+ dexKey,
326
+ contractMethod,
327
+ network,
328
+ provider,
329
+ );
330
+ });
331
+ it(`${network} ${side} ${contractMethod} ${tokenASymbol} -> ${nativeTokenSymbol}`, async () => {
332
+ await testE2E(
333
+ tokens[tokenASymbol],
334
+ tokens[nativeTokenSymbol],
335
+ holders[tokenASymbol],
336
+ side === SwapSide.SELL ? tokenAAmount : nativeTokenAmount,
337
+ side,
338
+ dexKey,
339
+ contractMethod,
340
+ network,
341
+ provider,
342
+ );
343
+ });
344
+ it(`${network} ${side} ${contractMethod} ${tokenASymbol} -> ${tokenBSymbol}`, async () => {
345
+ await testE2E(
346
+ tokens[tokenASymbol],
347
+ tokens[tokenBSymbol],
348
+ holders[tokenASymbol],
349
+ side === SwapSide.SELL ? tokenAAmount : tokenBAmount,
350
+ side,
351
+ dexKey,
352
+ contractMethod,
353
+ network,
354
+ provider,
355
+ );
356
+ });
357
+ });
358
+ }),
359
+ );
360
+ });
361
+ });
@@ -68,7 +68,8 @@ export class UniswapV3EventPool extends StatefulEventSubscriber<PoolState> {
68
68
  token1: Address,
69
69
  logger: Logger,
70
70
  mapKey: string = '',
71
- readonly poolInitCodeHash = DEFAULT_POOL_INIT_CODE_HASH,
71
+ readonly poolInitCodeHash: string,
72
+ readonly poolDeployer?: string,
72
73
  ) {
73
74
  super(
74
75
  parentName,
@@ -538,7 +539,7 @@ export class UniswapV3EventPool extends StatefulEventSubscriber<PoolState> {
538
539
  );
539
540
 
540
541
  return ethers.utils.getCreate2Address(
541
- this.factoryAddress,
542
+ this.poolDeployer ? this.poolDeployer : this.factoryAddress,
542
543
  encodedKey,
543
544
  this.poolInitCodeHash,
544
545
  );
@@ -43,7 +43,6 @@ import UniswapV3StateMulticallABI from '../../abi/uniswap-v3/UniswapV3StateMulti
43
43
  import {
44
44
  UNISWAPV3_EFFICIENCY_FACTOR,
45
45
  UNISWAPV3_FUNCTION_CALL_GAS_COST,
46
- UNISWAPV3_SUBGRAPH_URL,
47
46
  UNISWAPV3_TICK_GAS_COST,
48
47
  } from './constants';
49
48
  import { DeepReadonly } from 'ts-essentials';
@@ -80,7 +79,7 @@ export class UniswapV3
80
79
  intervalTask?: NodeJS.Timeout;
81
80
 
82
81
  public static dexKeysWithNetwork: { key: string; networks: Network[] }[] =
83
- getDexKeysWithNetwork(UniswapV3Config);
82
+ getDexKeysWithNetwork(_.pick(UniswapV3Config, ['UniswapV3']));
84
83
 
85
84
  logger: Logger;
86
85
 
@@ -213,6 +212,8 @@ export class UniswapV3
213
212
  token1,
214
213
  this.logger,
215
214
  this.cacheStateKey,
215
+ this.config.initHash,
216
+ this.config.deployer,
216
217
  );
217
218
 
218
219
  try {
@@ -880,6 +881,9 @@ export class UniswapV3
880
881
  stateMulticall: this.config.stateMulticall.toLowerCase(),
881
882
  chunksCount: this.config.chunksCount,
882
883
  uniswapMulticall: this.config.uniswapMulticall,
884
+ deployer: this.config.deployer?.toLowerCase(),
885
+ initHash: this.config.initHash,
886
+ subgraphURL: this.config.subgraphURL,
883
887
  };
884
888
  return newConfig;
885
889
  }
@@ -943,7 +947,7 @@ export class UniswapV3
943
947
  ) {
944
948
  try {
945
949
  const res = await this.dexHelper.httpRequest.post(
946
- UNISWAPV3_SUBGRAPH_URL,
950
+ this.config.subgraphURL,
947
951
  { query, variables },
948
952
  undefined,
949
953
  { timeout: timeout },
@@ -67,6 +67,10 @@ export const Tokens: {
67
67
  addBalance: balanceOfFn,
68
68
  addAllowance: allowanceFn,
69
69
  },
70
+ PSP: {
71
+ address: '0xcafe001067cdef266afb7eb5a286dcfd277f3de5',
72
+ decimals: 18,
73
+ },
70
74
  SETH: {
71
75
  address: '0x5e74C9036fb86BD7eCdcb084a0673EFc32eA31cb',
72
76
  decimals: 18,
@@ -812,12 +816,12 @@ export const Holders: {
812
816
  } = {
813
817
  [Network.MAINNET]: {
814
818
  ETH: '0x176F3DAb24a159341c0509bB36B833E7fdd0a132',
815
- USDC: '0xDcEF968d416a41Cdac0ED8702fAC8128A64241A2',
816
- WBTC: '0x6daB3bCbFb336b29d06B9C793AEF7eaA57888922',
819
+ USDC: '0x7713974908Be4BEd47172370115e8b1219F4A5f0',
820
+ WBTC: '0x1Cb17a66DC606a52785f69F08F4256526aBd4943',
817
821
  BADGER: '0x34e2741a3f8483dbe5231f61c005110ff4b9f50a',
818
822
  STETH: '0x9bdb521a97e95177bf252c253e256a60c3e14447',
819
823
  wstETH: '0x6cE0F913F035ec6195bC3cE885aec4C66E485BC4',
820
- WETH: '0x56178a0d5f301baf6cf3e1cd53d9863437345bf9',
824
+ WETH: '0x2fEb1512183545f48f6b9C5b4EbfCaF49CfCa6F3',
821
825
  USDT: '0x5754284f345afc66a98fbb0a0afe71e0f007b949',
822
826
  XAUT: '0xc4e161e8d8a4bc4ac762ab33a28bbac5474203d7',
823
827
  CVX: '0x0aCA67Fa70B142A3b9bF2eD89A81B40ff85dACdC',
@@ -864,7 +868,8 @@ export const Holders: {
864
868
  SHIBA: '0x73af3bcf944a6559933396c1577b257e2054d935',
865
869
  aEthUSDC: '0x3178490d60B5cceaA5a79FD4D9050C7405Bab80c',
866
870
  aEthWETH: '0x645C4c0c95C1Aa6EF25d12f4a25038cA9b0C6Cc7',
867
- dUSDC: '0x3C6A135F7A3A7Ce203EF629B43D9dc66f0f98BFa',
871
+ dUSDC: '0x2FC2F705110A7F46Ce85F701d7217EF1018f01A3',
872
+ PSP: '0xE5E5440a1CE69C5cf67BFFA74d185e57c31b43E5',
868
873
  },
869
874
  [Network.ROPSTEN]: {
870
875
  ETH: '0x43262A12d8610AA70C15DbaeAC321d51613c9071',
@@ -904,7 +909,7 @@ export const Holders: {
904
909
  [Network.FANTOM]: {
905
910
  DAI: '0x370f4b2dcf75c94d8d4450b493661a9c6170d0b5',
906
911
  FTM: '0x431e81E5dfB5A24541b5Ff8762bDEF3f32F96354',
907
- WFTM: '0x431e81E5dfB5A24541b5Ff8762bDEF3f32F96354',
912
+ WFTM: '0x3e923747ca2675e096d812c3b24846ac39aed645',
908
913
  USDC: '0xe48793b1533b351ae184e1c3119d0955dde7b330',
909
914
  FUSDT: '0x9ade1c17d25246c405604344f89E8F23F8c1c632',
910
915
  POPS: '0x4b78b52e7de4d8b7d367297cb8a87c1875a9d591',
@@ -913,7 +918,7 @@ export const Holders: {
913
918
  MIM: '0xbcab7d083cf6a01e0dda9ed7f8a02b47d125e682',
914
919
  FRAX: '0x4423ac71f53ca92e2f2be5917a9c2468e7412f4a',
915
920
  nETH: '0x16b658270ac50c0063940ed287c401b3df7ccf70',
916
- WETH: '0x4ad64fd7ca6d6150614179b9bce4094bc18f29cb',
921
+ WETH: '0x7b7b957c284c2c227c980d6e2f804311947b84d0',
917
922
  SPIRIT: '0x0d0707963952f2fba59dd06f2b425ace40b492fe',
918
923
  wBOMB: '0x28aa4f9ffe21365473b64c161b566c3cdead0108',
919
924
  TOR: '0x70de4b5ed310fd93da3c0bae824fb99cb4d44dd8',
@@ -1,10 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="RunConfigurationProducerService">
4
- <option name="ignoredProducers">
5
- <set>
6
- <option value="com.android.tools.idea.compose.preview.runconfiguration.ComposePreviewRunConfigurationProducer" />
7
- </set>
8
- </option>
9
- </component>
10
- </project>