@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,235 @@
1
+ import dotenv from 'dotenv';
2
+ dotenv.config();
3
+
4
+ import { testE2E } from '../../../tests/utils-e2e';
5
+ import {
6
+ Tokens,
7
+ Holders,
8
+ NativeTokenSymbols,
9
+ } from '../../../tests/constants-e2e';
10
+ import { Network, ContractMethod, SwapSide } from '../../constants';
11
+ import { StaticJsonRpcProvider } from '@ethersproject/providers';
12
+ import { generateConfig } from '../../config';
13
+
14
+ describe('PancakeswapV3 E2E', () => {
15
+ const dexKey = 'PancakeswapV3';
16
+
17
+ describe('PancakeswapV3 MAINNET', () => {
18
+ const network = Network.MAINNET;
19
+ const tokens = Tokens[network];
20
+ const holders = Holders[network];
21
+ const provider = new StaticJsonRpcProvider(
22
+ generateConfig(network).privateHttpProvider,
23
+ network,
24
+ );
25
+
26
+ const sideToContractMethods = new Map([
27
+ [
28
+ SwapSide.SELL,
29
+ [
30
+ ContractMethod.simpleSwap,
31
+ ContractMethod.multiSwap,
32
+ ContractMethod.megaSwap,
33
+ ],
34
+ ],
35
+ [SwapSide.BUY, [
36
+ ContractMethod.simpleBuy,
37
+ ContractMethod.buy,
38
+ ]],
39
+ ]);
40
+
41
+ const pairs: { name: string; sellAmount: string; buyAmount: string }[][] = [
42
+ [
43
+ {
44
+ name: 'USDT',
45
+ sellAmount: '10000000000',
46
+ buyAmount: '20000000000',
47
+ },
48
+ {
49
+ name: 'USDC',
50
+ sellAmount: '100000000000',
51
+ buyAmount: '500000000',
52
+ },
53
+ ],
54
+ [
55
+ {
56
+ name: NativeTokenSymbols[network],
57
+ sellAmount: '20000000000000000',
58
+ buyAmount: '100000000000',
59
+ },
60
+ {
61
+ name: 'USDT',
62
+ sellAmount: '10000000000',
63
+ buyAmount: '1500000000000000000',
64
+ },
65
+ ],
66
+ [
67
+ {
68
+ name: NativeTokenSymbols[network],
69
+ sellAmount: '10000000000000000',
70
+ buyAmount: '500000000000',
71
+ },
72
+ {
73
+ name: 'USDC',
74
+ sellAmount: '500000000000',
75
+ buyAmount: '10000000000000000',
76
+ },
77
+ ],
78
+ [
79
+ {
80
+ name: 'WETH',
81
+ sellAmount: '450000000000000000',
82
+ buyAmount: '900000000000',
83
+ },
84
+ {
85
+ name: 'USDT',
86
+ sellAmount: '20000000000',
87
+ buyAmount: '2000000000000000000',
88
+ },
89
+ ],
90
+ [
91
+ {
92
+ name: 'DAI',
93
+ sellAmount: '100000000000000000000',
94
+ buyAmount: '1000000000',
95
+ },
96
+ {
97
+ name: 'USDC',
98
+ sellAmount: '10000000000',
99
+ buyAmount: '500000000000000000000',
100
+ },
101
+ ]
102
+ ]
103
+
104
+ sideToContractMethods.forEach((contractMethods, side) =>
105
+ describe(`${side}`, () => {
106
+ contractMethods.forEach((contractMethod: ContractMethod) => {
107
+ pairs.forEach(pair => {
108
+ describe(`${contractMethod}`, () => {
109
+ it(`${pair[0].name} -> ${pair[1].name}`, async () => {
110
+ await testE2E(
111
+ tokens[pair[0].name],
112
+ tokens[pair[1].name],
113
+ holders[pair[0].name],
114
+ side === SwapSide.SELL
115
+ ? pair[0].sellAmount
116
+ : pair[0].buyAmount,
117
+ side,
118
+ dexKey,
119
+ contractMethod,
120
+ network,
121
+ provider,
122
+ );
123
+ });
124
+ it(`${pair[1].name} -> ${pair[0].name}`, async () => {
125
+ await testE2E(
126
+ tokens[pair[1].name],
127
+ tokens[pair[0].name],
128
+ holders[pair[1].name],
129
+ side === SwapSide.SELL
130
+ ? pair[1].sellAmount
131
+ : pair[1].buyAmount,
132
+ side,
133
+ dexKey,
134
+ contractMethod,
135
+ network,
136
+ provider,
137
+ );
138
+ });
139
+ });
140
+ });
141
+ });
142
+ }),
143
+ );
144
+ });
145
+
146
+ describe('PancakeswapV3 BSC', () => {
147
+ const network = Network.BSC;
148
+ const tokens = Tokens[network];
149
+ const holders = Holders[network];
150
+ const provider = new StaticJsonRpcProvider(
151
+ generateConfig(network).privateHttpProvider,
152
+ network,
153
+ );
154
+
155
+ const sideToContractMethods = new Map([
156
+ [
157
+ SwapSide.SELL,
158
+ [
159
+ ContractMethod.simpleSwap,
160
+ ContractMethod.multiSwap,
161
+ ContractMethod.megaSwap,
162
+ ],
163
+ ],
164
+ [SwapSide.BUY, [ContractMethod.simpleBuy, ContractMethod.buy]],
165
+ ]);
166
+
167
+ const pairs: { name: string; sellAmount: string; buyAmount: string }[][] = [
168
+ [
169
+ {
170
+ name: NativeTokenSymbols[network],
171
+ sellAmount: '100000000000000000000',
172
+ buyAmount: '100000000000000000000',
173
+ },
174
+ {
175
+ name: 'BUSD',
176
+ sellAmount: '100000000000000000000',
177
+ buyAmount: '10000000000000',
178
+ },
179
+ ],
180
+ [
181
+ {
182
+ name: 'WBNB',
183
+ sellAmount: '1000000000000000000',
184
+ buyAmount: '10000000000000000000',
185
+ },
186
+ {
187
+ name: 'USDT',
188
+ sellAmount: '10000000000000000000',
189
+ buyAmount: '1000000000000000000',
190
+ },
191
+ ],
192
+ ];
193
+
194
+ sideToContractMethods.forEach((contractMethods, side) =>
195
+ describe(`${side}`, () => {
196
+ contractMethods.forEach((contractMethod: ContractMethod) => {
197
+ pairs.forEach(pair => {
198
+ describe(`${contractMethod}`, () => {
199
+ it(`${pair[0].name} -> ${pair[1].name}`, async () => {
200
+ await testE2E(
201
+ tokens[pair[0].name],
202
+ tokens[pair[1].name],
203
+ holders[pair[0].name],
204
+ side === SwapSide.SELL
205
+ ? pair[0].sellAmount
206
+ : pair[0].buyAmount,
207
+ side,
208
+ dexKey,
209
+ contractMethod,
210
+ network,
211
+ provider,
212
+ );
213
+ });
214
+ it(`${pair[1].name} -> ${pair[0].name}`, async () => {
215
+ await testE2E(
216
+ tokens[pair[1].name],
217
+ tokens[pair[0].name],
218
+ holders[pair[1].name],
219
+ side === SwapSide.SELL
220
+ ? pair[1].sellAmount
221
+ : pair[1].buyAmount,
222
+ side,
223
+ dexKey,
224
+ contractMethod,
225
+ network,
226
+ provider,
227
+ );
228
+ });
229
+ });
230
+ });
231
+ });
232
+ }),
233
+ );
234
+ });
235
+ });
@@ -0,0 +1,124 @@
1
+ /* eslint-disable no-console */
2
+ import dotenv from 'dotenv';
3
+ dotenv.config();
4
+
5
+ import { PancakeswapV3Config } from './config';
6
+ import { Network } from '../../constants';
7
+ import { DummyDexHelper } from '../../dex-helper/index';
8
+ import { testEventSubscriber } from '../../../tests/utils-events';
9
+ import { Interface } from '@ethersproject/abi';
10
+ import ERC20ABI from '../../abi/erc20.json';
11
+ import StateMulticallABI from '../../abi/pancakeswap-v3/PancakeV3StateMulticall.abi.json';
12
+ import { AbiItem } from 'web3-utils';
13
+ import { PancakeSwapV3EventPool } from './pancakeswap-v3-pool';
14
+ import { PoolState } from '../uniswap-v3/types';
15
+
16
+ jest.setTimeout(300 * 1000);
17
+ const dexKey = 'PancakeswapV3';
18
+ const network = Network.MAINNET;
19
+ const config = PancakeswapV3Config[dexKey][network];
20
+
21
+ async function fetchPoolStateFromContract(
22
+ pancakeswapV3Pool: PancakeSwapV3EventPool,
23
+ blockNumber: number,
24
+ poolAddress: string,
25
+ ): Promise<PoolState | undefined> {
26
+ const message = `PancakeswapV3: ${poolAddress} blockNumber ${blockNumber}`;
27
+ console.log(`Fetching state ${message}`);
28
+ // Be careful to not request state prior to contract deployment
29
+ // Otherwise need to use manual state sourcing from multicall
30
+ // We had that mechanism, but removed it with this commit
31
+ // You can restore it, but better just to find block after state multicall
32
+ // deployment
33
+ const state = await pancakeswapV3Pool.generateState(blockNumber);
34
+
35
+ console.log(`Done ${message}`);
36
+
37
+ return state;
38
+ }
39
+
40
+ describe('PancakeswapV3 Event', function () {
41
+ const poolAddress = '0x04c8577958CcC170EB3d2CCa76F9d51bc6E42D8f';
42
+ const poolFeeCode = 100n;
43
+ const token0 = '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48';
44
+ const token1 = '0xdAC17F958D2ee523a2206206994597C13D831ec7';
45
+
46
+ const blockNumbers: { [eventName: string]: number[] } = {
47
+ ['Swap']: [
48
+ 17030597, 17031935, 17032362, 17035931, 17038708, 17039103, 17039688,
49
+ 17039812, 17046030, 17046317, 17046694, 17047063, 17047219, 17056731,
50
+ 17057640, 17057862, 17057892, 17057955, 17063052, 17063127, 17063524,
51
+ 17091869, 17093155, 17093506, 17146325, 17146863, 17147474, 17147830,
52
+ 17154952, 17159976, 17160283, 17160720, 17233700, 17234168, 17234407,
53
+ 17234433, 17242498, 17242712, 17243089, 17276770, 17277552, 17277733,
54
+ 17320467,
55
+ ],
56
+ ['Burn']: [
57
+ 17030970, 17031054, 17031107, 17031773, 17031838, 17033280, 17036092,
58
+ 17042331, 17042392, 17043224, 17097388, 17098794, 17099011, 17118506,
59
+ 17121704, 17143519, 17163847, 17207834, 17213897, 17249508, 17251725,
60
+ ],
61
+ ['Mint']: [
62
+ 17030284, 17031045, 17033298, 17033315, 17036173, 17042433, 17043299,
63
+ 17044836, 17044855, 17046316, 17047699, 17047732, 17050119, 17071407,
64
+ 17074384, 17090265, 17092669, 17093251, 17094015, 17121836, 17147932,
65
+ 17163857, 17172266, 17185894, 17194153, 17199371, 17249453,
66
+ ],
67
+ ['SetFeeProtocol']: [],
68
+ ['IncreaseObservationCardinalityNext']: [],
69
+ ['Collect']: [
70
+ 17117306, 17118506, 17121704, 17143519, 17147612, 17160005, 17163847,
71
+ 17192312, 17201868, 17205784, 17207834, 17213120, 17213897, 17241053,
72
+ 17249508, 17251725,
73
+ ],
74
+ ['Flash']: [],
75
+ };
76
+
77
+ describe('PancakeswapV3EventPool', function () {
78
+ Object.keys(blockNumbers).forEach((event: string) => {
79
+ blockNumbers[event].forEach((blockNumber: number) => {
80
+ it(`${event}:${blockNumber} - should return correct state`, async function () {
81
+ const dexHelper = new DummyDexHelper(network);
82
+
83
+ const logger = dexHelper.getLogger(dexKey);
84
+
85
+ const pancakeswapV3Pool = new PancakeSwapV3EventPool(
86
+ dexHelper,
87
+ dexKey,
88
+ new dexHelper.web3Provider.eth.Contract(
89
+ StateMulticallABI as AbiItem[],
90
+ config.stateMulticall,
91
+ ),
92
+ new Interface(ERC20ABI),
93
+ config.factory,
94
+ poolFeeCode,
95
+ token0,
96
+ token1,
97
+ logger,
98
+ undefined,
99
+ config.initHash,
100
+ config.deployer,
101
+ );
102
+
103
+ // It is done in generateState. But here have to make it manually
104
+ pancakeswapV3Pool.poolAddress = poolAddress.toLowerCase();
105
+ pancakeswapV3Pool.addressesSubscribed[0] = poolAddress;
106
+
107
+ await testEventSubscriber(
108
+ pancakeswapV3Pool,
109
+ pancakeswapV3Pool.addressesSubscribed,
110
+ (_blockNumber: number) =>
111
+ fetchPoolStateFromContract(
112
+ pancakeswapV3Pool,
113
+ _blockNumber,
114
+ poolAddress,
115
+ ),
116
+ blockNumber,
117
+ `${dexKey}_${poolAddress}`,
118
+ dexHelper.provider,
119
+ );
120
+ });
121
+ });
122
+ });
123
+ });
124
+ });