@paraswap/dex-lib 2.17.0 → 2.17.1-pancakeswapv3.1

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 (131) hide show
  1. package/build/abi/pancakeswap-v3/PancakeV3StateMulticall.abi.json +781 -0
  2. package/build/abi/pancakeswap-v3/PancakeswapV3Pool.abi.json +1039 -0
  3. package/build/abi/pancakeswap-v3/PancakeswapV3Quoter.abi.json +285 -0
  4. package/build/abi/pancakeswap-v3/PancakeswapV3Router.abi.json +583 -0
  5. package/build/dex/balancer-v2/balancer-v2.js +8 -6
  6. package/build/dex/balancer-v2/balancer-v2.js.map +1 -1
  7. package/build/dex/balancer-v2/config.js.map +1 -1
  8. package/build/dex/balancer-v2/pools/linear/LinearMath.js.map +1 -1
  9. package/build/dex/balancer-v2/pools/linear/LinearPool.js.map +1 -1
  10. package/build/dex/balancer-v2/pools/phantom-stable/PhantomStableMath.js.map +1 -1
  11. package/build/dex/balancer-v2/pools/phantom-stable/PhantomStablePool.js.map +1 -1
  12. package/build/dex/balancer-v2/pools/stable/StableMath.js +0 -1
  13. package/build/dex/balancer-v2/pools/stable/StableMath.js.map +1 -1
  14. package/build/dex/balancer-v2/pools/stable/StablePool.js +2 -1
  15. package/build/dex/balancer-v2/pools/stable/StablePool.js.map +1 -1
  16. package/build/dex/balancer-v2/pools/weighted/WeightedPool.js.map +1 -1
  17. package/build/dex/index.js +1 -1
  18. package/build/dex/index.js.map +1 -1
  19. package/build/dex/pancakeswap-v3/config.d.ts +4 -0
  20. package/build/dex/pancakeswap-v3/config.js +62 -0
  21. package/build/dex/pancakeswap-v3/config.js.map +1 -0
  22. package/build/dex/pancakeswap-v3/constants.d.ts +23 -0
  23. package/build/dex/pancakeswap-v3/constants.js +29 -0
  24. package/build/dex/pancakeswap-v3/constants.js.map +1 -0
  25. package/build/dex/pancakeswap-v3/contract-math/BitMath.d.ts +4 -0
  26. package/build/dex/pancakeswap-v3/contract-math/BitMath.js +93 -0
  27. package/build/dex/pancakeswap-v3/contract-math/BitMath.js.map +1 -0
  28. package/build/dex/pancakeswap-v3/contract-math/FixedPoint128.d.ts +3 -0
  29. package/build/dex/pancakeswap-v3/contract-math/FixedPoint128.js +8 -0
  30. package/build/dex/pancakeswap-v3/contract-math/FixedPoint128.js.map +1 -0
  31. package/build/dex/pancakeswap-v3/contract-math/FixedPoint96.d.ts +4 -0
  32. package/build/dex/pancakeswap-v3/contract-math/FixedPoint96.js +9 -0
  33. package/build/dex/pancakeswap-v3/contract-math/FixedPoint96.js.map +1 -0
  34. package/build/dex/pancakeswap-v3/contract-math/FullMath.d.ts +4 -0
  35. package/build/dex/pancakeswap-v3/contract-math/FullMath.js +19 -0
  36. package/build/dex/pancakeswap-v3/contract-math/FullMath.js.map +1 -0
  37. package/build/dex/pancakeswap-v3/contract-math/LiquidityMath.d.ts +3 -0
  38. package/build/dex/pancakeswap-v3/contract-math/LiquidityMath.js +22 -0
  39. package/build/dex/pancakeswap-v3/contract-math/LiquidityMath.js.map +1 -0
  40. package/build/dex/pancakeswap-v3/contract-math/Oracle.d.ts +10 -0
  41. package/build/dex/pancakeswap-v3/contract-math/Oracle.js +133 -0
  42. package/build/dex/pancakeswap-v3/contract-math/Oracle.js.map +1 -0
  43. package/build/dex/pancakeswap-v3/contract-math/SqrtPriceMath.d.ts +10 -0
  44. package/build/dex/pancakeswap-v3/contract-math/SqrtPriceMath.js +91 -0
  45. package/build/dex/pancakeswap-v3/contract-math/SqrtPriceMath.js.map +1 -0
  46. package/build/dex/pancakeswap-v3/contract-math/SwapMath.d.ts +8 -0
  47. package/build/dex/pancakeswap-v3/contract-math/SwapMath.js +70 -0
  48. package/build/dex/pancakeswap-v3/contract-math/SwapMath.js.map +1 -0
  49. package/build/dex/pancakeswap-v3/contract-math/Tick.d.ts +7 -0
  50. package/build/dex/pancakeswap-v3/contract-math/Tick.js +45 -0
  51. package/build/dex/pancakeswap-v3/contract-math/Tick.js.map +1 -0
  52. package/build/dex/pancakeswap-v3/contract-math/TickBitMap.d.ts +8 -0
  53. package/build/dex/pancakeswap-v3/contract-math/TickBitMap.js +87 -0
  54. package/build/dex/pancakeswap-v3/contract-math/TickBitMap.js.map +1 -0
  55. package/build/dex/pancakeswap-v3/contract-math/TickMath.d.ts +8 -0
  56. package/build/dex/pancakeswap-v3/contract-math/TickMath.js +162 -0
  57. package/build/dex/pancakeswap-v3/contract-math/TickMath.js.map +1 -0
  58. package/build/dex/pancakeswap-v3/contract-math/UnsafeMath.d.ts +3 -0
  59. package/build/dex/pancakeswap-v3/contract-math/UnsafeMath.js +10 -0
  60. package/build/dex/pancakeswap-v3/contract-math/UnsafeMath.js.map +1 -0
  61. package/build/dex/pancakeswap-v3/contract-math/pancakeswap-v3-math.d.ts +18 -0
  62. package/build/dex/pancakeswap-v3/contract-math/pancakeswap-v3-math.js +407 -0
  63. package/build/dex/pancakeswap-v3/contract-math/pancakeswap-v3-math.js.map +1 -0
  64. package/build/dex/pancakeswap-v3/contract-math/utils.d.ts +3 -0
  65. package/build/dex/pancakeswap-v3/contract-math/utils.js +16 -0
  66. package/build/dex/pancakeswap-v3/contract-math/utils.js.map +1 -0
  67. package/build/dex/pancakeswap-v3/pancakeswap-v3-pool.d.ts +45 -0
  68. package/build/dex/pancakeswap-v3/pancakeswap-v3-pool.js +340 -0
  69. package/build/dex/pancakeswap-v3/pancakeswap-v3-pool.js.map +1 -0
  70. package/build/dex/pancakeswap-v3/pancakeswap-v3.d.ts +55 -0
  71. package/build/dex/pancakeswap-v3/pancakeswap-v3.js +605 -0
  72. package/build/dex/pancakeswap-v3/pancakeswap-v3.js.map +1 -0
  73. package/build/dex/pancakeswap-v3/types.d.ts +14 -0
  74. package/build/dex/pancakeswap-v3/types.js +3 -0
  75. package/build/dex/pancakeswap-v3/types.js.map +1 -0
  76. package/build/dex/pancakeswap-v3/utils.d.ts +4 -0
  77. package/build/dex/pancakeswap-v3/utils.js +57 -0
  78. package/build/dex/pancakeswap-v3/utils.js.map +1 -0
  79. package/build/dex/uniswap-v3/config.js +4 -32
  80. package/build/dex/uniswap-v3/config.js.map +1 -1
  81. package/build/dex/uniswap-v3/uniswap-v3-pool.d.ts +1 -2
  82. package/build/dex/uniswap-v3/uniswap-v3-pool.js +2 -3
  83. package/build/dex/uniswap-v3/uniswap-v3-pool.js.map +1 -1
  84. package/build/dex/uniswap-v3/uniswap-v3.js +15 -11
  85. package/build/dex/uniswap-v3/uniswap-v3.js.map +1 -1
  86. package/package.json +1 -1
  87. package/src/abi/pancakeswap-v3/PancakeV3StateMulticall.abi.json +781 -0
  88. package/src/abi/pancakeswap-v3/PancakeswapV3Pool.abi.json +1039 -0
  89. package/src/dex/balancer-v2/balancer-v2-e2e.test.ts +13 -19
  90. package/src/dex/balancer-v2/balancer-v2-integration.test.ts +47 -36
  91. package/src/dex/balancer-v2/balancer-v2.ts +46 -24
  92. package/src/dex/balancer-v2/config.ts +1 -1
  93. package/src/dex/balancer-v2/pools/linear/LinearMath.ts +2 -2
  94. package/src/dex/balancer-v2/pools/linear/LinearPool.ts +1 -1
  95. package/src/dex/balancer-v2/pools/phantom-stable/PhantomStableMath.ts +19 -19
  96. package/src/dex/balancer-v2/pools/phantom-stable/PhantomStablePool.ts +0 -1
  97. package/src/dex/balancer-v2/pools/stable/StableMath.ts +13 -14
  98. package/src/dex/balancer-v2/pools/stable/StablePool.ts +4 -2
  99. package/src/dex/balancer-v2/pools/weighted/WeightedPool.ts +0 -1
  100. package/src/dex/index.ts +1 -1
  101. package/src/dex/pancakeswap-v3/config.ts +68 -0
  102. package/src/dex/pancakeswap-v3/constants.ts +35 -0
  103. package/src/dex/pancakeswap-v3/contract-math/BitMath.ts +90 -0
  104. package/src/dex/pancakeswap-v3/contract-math/FixedPoint128.ts +3 -0
  105. package/src/dex/pancakeswap-v3/contract-math/FixedPoint96.ts +4 -0
  106. package/src/dex/pancakeswap-v3/contract-math/FullMath.ts +30 -0
  107. package/src/dex/pancakeswap-v3/contract-math/LiquidityMath.ts +17 -0
  108. package/src/dex/pancakeswap-v3/contract-math/Oracle.ts +226 -0
  109. package/src/dex/pancakeswap-v3/contract-math/SqrtPriceMath.ts +226 -0
  110. package/src/dex/pancakeswap-v3/contract-math/SwapMath.ts +139 -0
  111. package/src/dex/pancakeswap-v3/contract-math/Tick.ts +82 -0
  112. package/src/dex/pancakeswap-v3/contract-math/TickBitMap.ts +128 -0
  113. package/src/dex/pancakeswap-v3/contract-math/TickMath.ts +211 -0
  114. package/src/dex/pancakeswap-v3/contract-math/UnsafeMath.ts +5 -0
  115. package/src/dex/pancakeswap-v3/contract-math/pancakeswap-v3-math.ts +691 -0
  116. package/src/dex/pancakeswap-v3/contract-math/utils.ts +11 -0
  117. package/src/dex/pancakeswap-v3/pancakeswap-v3-e2e.test.ts +235 -0
  118. package/src/dex/pancakeswap-v3/pancakeswap-v3-events.test.ts +124 -0
  119. package/src/dex/pancakeswap-v3/pancakeswap-v3-integration.test.ts +540 -0
  120. package/src/dex/pancakeswap-v3/pancakeswap-v3-pool.ts +554 -0
  121. package/src/dex/pancakeswap-v3/pancakeswap-v3.ts +1000 -0
  122. package/src/dex/pancakeswap-v3/utils.ts +68 -0
  123. package/src/dex/uniswap-v3/config.ts +4 -36
  124. package/src/dex/uniswap-v3/uniswap-v3-e2e.test.ts +0 -156
  125. package/src/dex/uniswap-v3/uniswap-v3-events.test.ts +4 -0
  126. package/src/dex/uniswap-v3/uniswap-v3-pool.ts +1 -2
  127. package/src/dex/uniswap-v3/uniswap-v3.ts +8 -5
  128. package/tests/constants-e2e.ts +1 -1
  129. package/src/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.ts +0 -28
  130. /package/src/abi/{uniswap-v3/pancakeswap-v3/PancakeswapV3QuoterV2.abi.json → pancakeswap-v3/PancakeswapV3Quoter.abi.json} +0 -0
  131. /package/src/abi/{uniswap-v3/pancakeswap-v3 → pancakeswap-v3}/PancakeswapV3Router.abi.json +0 -0
@@ -0,0 +1,68 @@
1
+ import { BytesLike, ethers } from 'ethers';
2
+ import { assert } from 'ts-essentials';
3
+ import { extractSuccessAndValue } from '../../lib/decoders';
4
+ import { MultiResult } from '../../lib/multi-wrapper';
5
+ import {
6
+ DecodedStateMultiCallResultWithRelativeBitmaps,
7
+ } from '../uniswap-v3/types';
8
+
9
+
10
+ export function decodeStateMultiCallResultWithRelativeBitmaps(
11
+ result: MultiResult<BytesLike> | BytesLike,
12
+ ): DecodedStateMultiCallResultWithRelativeBitmaps {
13
+ const [isSuccess, toDecode] = extractSuccessAndValue(result);
14
+
15
+ assert(
16
+ isSuccess && toDecode !== '0x',
17
+ `decodeStateMultiCallResultWithRelativeBitmaps failed to get decodable result: ${result}`,
18
+ );
19
+
20
+ const decoded = ethers.utils.defaultAbiCoder.decode(
21
+ [
22
+ // I don't want to pass here any interface, so I just use it in ethers format
23
+ `
24
+ tuple(
25
+ address pool,
26
+ uint256 blockTimestamp,
27
+ tuple(
28
+ uint160 sqrtPriceX96,
29
+ int24 tick,
30
+ uint16 observationIndex,
31
+ uint16 observationCardinality,
32
+ uint16 observationCardinalityNext,
33
+ uint32 feeProtocol,
34
+ bool unlocked,
35
+ ) slot0,
36
+ uint128 liquidity,
37
+ int24 tickSpacing,
38
+ uint128 maxLiquidityPerTick,
39
+ tuple(
40
+ uint32 blockTimestamp,
41
+ int56 tickCumulative,
42
+ uint160 secondsPerLiquidityCumulativeX128,
43
+ bool initialized,
44
+ ) observation,
45
+ tuple(
46
+ int16 index,
47
+ uint256 value,
48
+ )[] tickBitmap,
49
+ tuple(
50
+ int24 index,
51
+ tuple(
52
+ uint128 liquidityGross,
53
+ int128 liquidityNet,
54
+ int56 tickCumulativeOutside,
55
+ uint160 secondsPerLiquidityOutsideX128,
56
+ uint32 secondsOutside,
57
+ bool initialized,
58
+ ) value,
59
+ )[] ticks
60
+ )
61
+ `,
62
+ ],
63
+ toDecode,
64
+ )[0];
65
+ // This conversion is not precise, because when we decode, we have more values
66
+ // But I typed only the ones that are used later
67
+ return decoded as DecodedStateMultiCallResultWithRelativeBitmaps;
68
+ }
@@ -4,7 +4,6 @@ import { Network, SwapSide } from '../../constants';
4
4
  import { Address } from '../../types';
5
5
 
6
6
  const SUPPORTED_FEES = [10000n, 3000n, 500n, 100n];
7
- const PANCAKE_SUPPORTED_FEES = [10000n, 2500n, 500n, 100n];
8
7
 
9
8
  // Pools that will be initialized on app startup
10
9
  // They are added for testing
@@ -23,14 +22,13 @@ export const PoolsToPreload: DexConfigMap<
23
22
  },
24
23
  ],
25
24
  },
26
- PancakeswapV3: {},
27
25
  };
28
26
 
29
27
  export const UniswapV3Config: DexConfigMap<DexParams> = {
30
28
  UniswapV3: {
31
29
  [Network.MAINNET]: {
32
30
  factory: '0x1F98431c8aD98523631AE4a59f267346ea31F984',
33
- quoter: '0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6',
31
+ quoter: '0x61fFE014bA17989E743c5F6cB21bF9697530B21e',
34
32
  router: '0xE592427A0AEce92De3Edee1F18E0157C05861564',
35
33
  supportedFees: SUPPORTED_FEES,
36
34
  stateMulticall: '0x9c764D2e92dA68E4CDfD784B902283A095ff8b63',
@@ -53,7 +51,7 @@ export const UniswapV3Config: DexConfigMap<DexParams> = {
53
51
  },
54
52
  [Network.POLYGON]: {
55
53
  factory: '0x1F98431c8aD98523631AE4a59f267346ea31F984',
56
- quoter: '0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6',
54
+ quoter: '0x61fFE014bA17989E743c5F6cB21bF9697530B21e',
57
55
  router: '0xE592427A0AEce92De3Edee1F18E0157C05861564',
58
56
  supportedFees: SUPPORTED_FEES,
59
57
  stateMulticall: '0x6Dc993Fe1e945A640576B4Dca81281d8e998DF71',
@@ -65,7 +63,7 @@ export const UniswapV3Config: DexConfigMap<DexParams> = {
65
63
  },
66
64
  [Network.ARBITRUM]: {
67
65
  factory: '0x1F98431c8aD98523631AE4a59f267346ea31F984',
68
- quoter: '0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6',
66
+ quoter: '0x61fFE014bA17989E743c5F6cB21bF9697530B21e',
69
67
  router: '0xE592427A0AEce92De3Edee1F18E0157C05861564',
70
68
  supportedFees: SUPPORTED_FEES,
71
69
  stateMulticall: '0xaBB58098A7B5172A9b0B38a1925A522dbf0b4FC3',
@@ -77,7 +75,7 @@ export const UniswapV3Config: DexConfigMap<DexParams> = {
77
75
  },
78
76
  [Network.OPTIMISM]: {
79
77
  factory: '0x1F98431c8aD98523631AE4a59f267346ea31F984',
80
- quoter: '0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6',
78
+ quoter: '0x61fFE014bA17989E743c5F6cB21bF9697530B21e',
81
79
  router: '0xE592427A0AEce92De3Edee1F18E0157C05861564',
82
80
  supportedFees: SUPPORTED_FEES,
83
81
  stateMulticall: '0x4FF0dEC5f9a763Aa1E5C2a962aa6f4eDFeE4f9eA',
@@ -88,36 +86,6 @@ export const UniswapV3Config: DexConfigMap<DexParams> = {
88
86
  'https://api.thegraph.com/subgraphs/name/ianlapham/optimism-post-regenesis',
89
87
  },
90
88
  },
91
- PancakeswapV3: {
92
- [Network.MAINNET]: {
93
- factory: '0x0BFbCF9fa4f9C56B0F40a671Ad40E0805A091865',
94
- deployer: '0x41ff9AA7e16B8B1a8a8dc4f0eFacd93D02d071c9',
95
- quoter: '0xB048Bbc1Ee6b733FFfCFb9e9CeF7375518e25997',
96
- router: '0x1b81D678ffb9C0263b24A97847620C99d213eB14',
97
- supportedFees: PANCAKE_SUPPORTED_FEES,
98
- stateMulticall: '0x80898f80cFA3Fa3AbF410d90e69aDc432AE5D4c2',
99
- uniswapMulticall: '0xac1cE734566f390A94b00eb9bf561c2625BF44ea',
100
- chunksCount: 10,
101
- initHash:
102
- '0x6ce8eb472fa82df5469c6ab6d485f17c3ad13c8cd7af59b3d4a8026c5ce0f7e2',
103
- subgraphURL:
104
- 'https://api.thegraph.com/subgraphs/name/pancakeswap/exchange-v3-eth',
105
- },
106
- [Network.BSC]: {
107
- factory: '0x0BFbCF9fa4f9C56B0F40a671Ad40E0805A091865',
108
- deployer: '0x41ff9AA7e16B8B1a8a8dc4f0eFacd93D02d071c9',
109
- quoter: '0xB048Bbc1Ee6b733FFfCFb9e9CeF7375518e25997',
110
- router: '0x1b81D678ffb9C0263b24A97847620C99d213eB14',
111
- supportedFees: PANCAKE_SUPPORTED_FEES,
112
- stateMulticall: '0x9DAd2ED7ADc6eaacf81589Cd043579c9684E5C81',
113
- uniswapMulticall: '0xac1cE734566f390A94b00eb9bf561c2625BF44ea',
114
- chunksCount: 10,
115
- initHash:
116
- '0x6ce8eb472fa82df5469c6ab6d485f17c3ad13c8cd7af59b3d4a8026c5ce0f7e2',
117
- subgraphURL:
118
- 'https://api.thegraph.com/subgraphs/name/pancakeswap/exchange-v3-bsc',
119
- },
120
- },
121
89
  };
122
90
 
123
91
  export const Adapters: Record<number, AdapterMappings> = {
@@ -203,159 +203,3 @@ 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
- });
@@ -106,6 +106,8 @@ describe('UniswapV3 Event', function () {
106
106
  token0,
107
107
  token1,
108
108
  logger,
109
+ undefined,
110
+ config.initHash,
109
111
  );
110
112
 
111
113
  // It is done in generateState. But here have to make it manually
@@ -159,6 +161,8 @@ describe('UniswapV3 Event', function () {
159
161
  _token0,
160
162
  _token1,
161
163
  logger,
164
+ undefined,
165
+ config.initHash,
162
166
  );
163
167
 
164
168
  // It is done in generateState. But here have to make it manually
@@ -69,7 +69,6 @@ export class UniswapV3EventPool extends StatefulEventSubscriber<PoolState> {
69
69
  logger: Logger,
70
70
  mapKey: string = '',
71
71
  readonly poolInitCodeHash: string,
72
- readonly poolDeployer?: string,
73
72
  ) {
74
73
  super(
75
74
  parentName,
@@ -539,7 +538,7 @@ export class UniswapV3EventPool extends StatefulEventSubscriber<PoolState> {
539
538
  );
540
539
 
541
540
  return ethers.utils.getCreate2Address(
542
- this.poolDeployer ? this.poolDeployer : this.factoryAddress,
541
+ this.factoryAddress,
543
542
  encodedKey,
544
543
  this.poolInitCodeHash,
545
544
  );
@@ -214,7 +214,6 @@ export class UniswapV3
214
214
  this.logger,
215
215
  this.cacheStateKey,
216
216
  this.config.initHash,
217
- this.config.deployer,
218
217
  );
219
218
 
220
219
  try {
@@ -392,19 +391,23 @@ export class UniswapV3
392
391
  callData:
393
392
  side === SwapSide.SELL
394
393
  ? this.quoterIface.encodeFunctionData('quoteExactInputSingle', [
394
+ [
395
395
  from.address,
396
396
  to.address,
397
- pool.feeCodeAsString,
398
397
  _amount.toString(),
398
+ pool.feeCodeAsString,
399
399
  0, //sqrtPriceLimitX96
400
- ])
400
+ ],
401
+ ])
401
402
  : this.quoterIface.encodeFunctionData('quoteExactOutputSingle', [
403
+ [
402
404
  from.address,
403
405
  to.address,
404
- pool.feeCodeAsString,
405
406
  _amount.toString(),
407
+ pool.feeCodeAsString,
406
408
  0, //sqrtPriceLimitX96
407
- ]),
409
+ ],
410
+ ]),
408
411
  })),
409
412
  );
410
413
 
@@ -1011,7 +1011,7 @@ export const Holders: {
1011
1011
  aArbUSDC: '0x048BF2F5908e95976CeAD0E47D805b3803E286e2',
1012
1012
  ZYB: '0x3ec0eddcd1e25025077327886a78133589082fb2',
1013
1013
  WBTC: '0xd9d611c6943585bc0e18e51034af8fa28778f7da',
1014
- RDNT: '0x62383739d68dd0f844103db8dfb05a7eded5bbe6'
1014
+ RDNT: '0x62383739d68dd0f844103db8dfb05a7eded5bbe6',
1015
1015
  },
1016
1016
  [Network.OPTIMISM]: {
1017
1017
  ETH: '0x9ef21bE1C270AA1c3c3d750F458442397fBFFCB6',
@@ -1,28 +0,0 @@
1
- import { UniswapV3 } from '../../uniswap-v3';
2
- import { Network } from '../../../../constants';
3
- import { IDexHelper } from '../../../../dex-helper';
4
- import { Interface } from '@ethersproject/abi';
5
- import PancakeswapV3RouterABI from '../../../../abi/uniswap-v3/pancakeswap-v3/PancakeswapV3Router.abi.json';
6
- import PancakeswapV3QuoterV2ABI from '../../../../abi/uniswap-v3/pancakeswap-v3/PancakeswapV3QuoterV2.abi.json';
7
- import { getDexKeysWithNetwork } from '../../../../utils';
8
- import _ from 'lodash';
9
- import { UniswapV3Config } from '../../config';
10
-
11
- export class PancakeswapV3 extends UniswapV3 {
12
- public static dexKeysWithNetwork: { key: string; networks: Network[] }[] =
13
- getDexKeysWithNetwork(_.pick(UniswapV3Config, ['PancakeswapV3']));
14
- constructor(
15
- protected network: Network,
16
- dexKey: string,
17
- protected dexHelper: IDexHelper,
18
- ) {
19
- super(
20
- network,
21
- dexKey,
22
- dexHelper,
23
- undefined,
24
- new Interface(PancakeswapV3RouterABI),
25
- new Interface(PancakeswapV3QuoterV2ABI),
26
- );
27
- }
28
- }