@paraswap/dex-lib 2.37.1 → 2.37.2-current-fee-ramses-v2.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.
- package/.idea/aws.xml +17 -0
- package/.idea/codeStyles/Project.xml +19 -0
- package/.idea/codeStyles/codeStyleConfig.xml +5 -0
- package/.idea/misc.xml +6 -0
- package/.idea/modules.xml +8 -0
- package/.idea/paraswap-dex-lib.iml +9 -0
- package/.idea/vcs.xml +6 -0
- package/build/abi/algebra/AlgebraPool.abi.json +727 -0
- package/build/abi/curve-v1/StableSwapFRXETH.json +889 -0
- package/build/abi/curve-v1/StableSwapWBETH.json +1223 -0
- package/build/abi/dexalot/DexalotMainnetRFQ.json +887 -0
- package/build/abi/ramses-v2/RamsesV2Pool.abi.json +1580 -0
- package/build/abi/sushiswap-v3/QuoterV2.json +267 -0
- package/build/abi/sushiswap-v3/RouterProcessor3.json +289 -0
- package/build/abi/uniswap-v3/UniswapV3Quoter.abi.json +193 -0
- package/build/abi/uniswap-v3/pancakeswap-v3/PancakeswapV3QuoterV2.abi.json +285 -0
- package/build/abi/uniswap-v3/pancakeswap-v3/PancakeswapV3Router.abi.json +583 -0
- package/build/abi/wBETH.json +1527 -0
- package/build/abi/woo-fi/WooFeeManager.abi.json +318 -0
- package/build/abi/woo-fi/WooPP.abi.json +548 -0
- package/build/abi/woo-fi/Wooracle.abi.json +260 -0
- package/build/dex/aave-v3/tokens/arbitrum.json +50 -0
- package/build/dex/aave-v3/tokens/avalanche.json +74 -0
- package/build/dex/aave-v3/tokens/fantom.json +62 -0
- package/build/dex/aave-v3/tokens/optimism.json +50 -0
- package/build/dex/aave-v3/tokens/polygon.json +116 -0
- package/build/dex/algebra/algebra-pool.d.ts +46 -0
- package/build/dex/algebra/algebra-pool.js +336 -0
- package/build/dex/algebra/algebra-pool.js.map +1 -0
- package/build/dex/balancer-v2/LinearMath.d.ts +19 -0
- package/build/dex/balancer-v2/LinearMath.js +179 -0
- package/build/dex/balancer-v2/LinearMath.js.map +1 -0
- package/build/dex/balancer-v2/LinearPool.d.ts +47 -0
- package/build/dex/balancer-v2/LinearPool.js +324 -0
- package/build/dex/balancer-v2/LinearPool.js.map +1 -0
- package/build/dex/balancer-v2/PhantomStablePool.d.ts +47 -0
- package/build/dex/balancer-v2/PhantomStablePool.js +294 -0
- package/build/dex/balancer-v2/PhantomStablePool.js.map +1 -0
- package/build/dex/balancer-v2/StableMath.d.ts +9 -0
- package/build/dex/balancer-v2/StableMath.js +272 -0
- package/build/dex/balancer-v2/StableMath.js.map +1 -0
- package/build/dex/balancer-v2/balancer-v2-pool.d.ts +75 -0
- package/build/dex/balancer-v2/balancer-v2-pool.js +417 -0
- package/build/dex/balancer-v2/balancer-v2-pool.js.map +1 -0
- package/build/dex/curve-v1/pools/frxETHpool.d.ts +7 -0
- package/build/dex/curve-v1/pools/frxETHpool.js +27 -0
- package/build/dex/curve-v1/pools/frxETHpool.js.map +1 -0
- package/build/dex/curve-v1/pools/wbETHpool.d.ts +29 -0
- package/build/dex/curve-v1/pools/wbETHpool.js +408 -0
- package/build/dex/curve-v1/pools/wbETHpool.js.map +1 -0
- package/build/dex/dexalot/config.d.ts +4 -0
- package/build/dex/dexalot/config.js +18 -0
- package/build/dex/dexalot/config.js.map +1 -0
- package/build/dex/dexalot/constants.d.ts +15 -0
- package/build/dex/dexalot/constants.js +22 -0
- package/build/dex/dexalot/constants.js.map +1 -0
- package/build/dex/dexalot/dexalot.d.ts +69 -0
- package/build/dex/dexalot/dexalot.js +646 -0
- package/build/dex/dexalot/dexalot.js.map +1 -0
- package/build/dex/dexalot/rate-fetcher.d.ts +28 -0
- package/build/dex/dexalot/rate-fetcher.js +100 -0
- package/build/dex/dexalot/rate-fetcher.js.map +1 -0
- package/build/dex/dexalot/types.d.ts +114 -0
- package/build/dex/dexalot/types.js +12 -0
- package/build/dex/dexalot/types.js.map +1 -0
- package/build/dex/dexalot/validators.d.ts +5 -0
- package/build/dex/dexalot/validators.js +45 -0
- package/build/dex/dexalot/validators.js.map +1 -0
- package/build/dex/pancakeswap-v3/types.d.ts +14 -0
- package/build/dex/pancakeswap-v3/types.js +3 -0
- package/build/dex/pancakeswap-v3/types.js.map +1 -0
- package/build/dex/quickswap/camelot-v3.d.ts +6 -0
- package/build/dex/quickswap/camelot-v3.js +19 -0
- package/build/dex/quickswap/camelot-v3.js.map +1 -0
- package/build/dex/quickswap/zyberswap-v3.d.ts +6 -0
- package/build/dex/quickswap/zyberswap-v3.js +19 -0
- package/build/dex/quickswap/zyberswap-v3.js.map +1 -0
- package/build/dex/quickswap-v3.d.ts +21 -0
- package/build/dex/quickswap-v3.js +40 -0
- package/build/dex/quickswap-v3.js.map +1 -0
- package/build/dex/ramses-v2/config.d.ts +4 -0
- package/build/dex/ramses-v2/config.js +28 -0
- package/build/dex/ramses-v2/config.js.map +1 -0
- package/build/dex/ramses-v2/constants.d.ts +28 -0
- package/build/dex/ramses-v2/constants.js +35 -0
- package/build/dex/ramses-v2/constants.js.map +1 -0
- package/build/dex/ramses-v2/contract-math/BitMath.d.ts +4 -0
- package/build/dex/ramses-v2/contract-math/BitMath.js +93 -0
- package/build/dex/ramses-v2/contract-math/BitMath.js.map +1 -0
- package/build/dex/ramses-v2/contract-math/FixedPoint128.d.ts +3 -0
- package/build/dex/ramses-v2/contract-math/FixedPoint128.js +8 -0
- package/build/dex/ramses-v2/contract-math/FixedPoint128.js.map +1 -0
- package/build/dex/ramses-v2/contract-math/FixedPoint96.d.ts +4 -0
- package/build/dex/ramses-v2/contract-math/FixedPoint96.js +9 -0
- package/build/dex/ramses-v2/contract-math/FixedPoint96.js.map +1 -0
- package/build/dex/ramses-v2/contract-math/FullMath.d.ts +4 -0
- package/build/dex/ramses-v2/contract-math/FullMath.js +19 -0
- package/build/dex/ramses-v2/contract-math/FullMath.js.map +1 -0
- package/build/dex/ramses-v2/contract-math/LiquidityMath.d.ts +3 -0
- package/build/dex/ramses-v2/contract-math/LiquidityMath.js +22 -0
- package/build/dex/ramses-v2/contract-math/LiquidityMath.js.map +1 -0
- package/build/dex/ramses-v2/contract-math/Oracle.d.ts +10 -0
- package/build/dex/ramses-v2/contract-math/Oracle.js +133 -0
- package/build/dex/ramses-v2/contract-math/Oracle.js.map +1 -0
- package/build/dex/ramses-v2/contract-math/SqrtPriceMath.d.ts +10 -0
- package/build/dex/ramses-v2/contract-math/SqrtPriceMath.js +91 -0
- package/build/dex/ramses-v2/contract-math/SqrtPriceMath.js.map +1 -0
- package/build/dex/ramses-v2/contract-math/SwapMath.d.ts +8 -0
- package/build/dex/ramses-v2/contract-math/SwapMath.js +70 -0
- package/build/dex/ramses-v2/contract-math/SwapMath.js.map +1 -0
- package/build/dex/ramses-v2/contract-math/Tick.d.ts +7 -0
- package/build/dex/ramses-v2/contract-math/Tick.js +45 -0
- package/build/dex/ramses-v2/contract-math/Tick.js.map +1 -0
- package/build/dex/ramses-v2/contract-math/TickBitMap.d.ts +8 -0
- package/build/dex/ramses-v2/contract-math/TickBitMap.js +87 -0
- package/build/dex/ramses-v2/contract-math/TickBitMap.js.map +1 -0
- package/build/dex/ramses-v2/contract-math/TickMath.d.ts +8 -0
- package/build/dex/ramses-v2/contract-math/TickMath.js +162 -0
- package/build/dex/ramses-v2/contract-math/TickMath.js.map +1 -0
- package/build/dex/ramses-v2/contract-math/UnsafeMath.d.ts +3 -0
- package/build/dex/ramses-v2/contract-math/UnsafeMath.js +10 -0
- package/build/dex/ramses-v2/contract-math/UnsafeMath.js.map +1 -0
- package/build/dex/ramses-v2/contract-math/uniswap-v3-math.d.ts +18 -0
- package/build/dex/ramses-v2/contract-math/uniswap-v3-math.js +392 -0
- package/build/dex/ramses-v2/contract-math/uniswap-v3-math.js.map +1 -0
- package/build/dex/ramses-v2/contract-math/utils.d.ts +3 -0
- package/build/dex/ramses-v2/contract-math/utils.js +16 -0
- package/build/dex/ramses-v2/contract-math/utils.js.map +1 -0
- package/build/dex/ramses-v2/ramses-v2-pool.d.ts +42 -0
- package/build/dex/ramses-v2/ramses-v2-pool.js +307 -0
- package/build/dex/ramses-v2/ramses-v2-pool.js.map +1 -0
- package/build/dex/ramses-v2/ramses-v2.d.ts +61 -0
- package/build/dex/ramses-v2/ramses-v2.js +690 -0
- package/build/dex/ramses-v2/ramses-v2.js.map +1 -0
- package/build/dex/ramses-v2/types.d.ts +154 -0
- package/build/dex/ramses-v2/types.js +9 -0
- package/build/dex/ramses-v2/types.js.map +1 -0
- package/build/dex/ramses-v2/utils.d.ts +6 -0
- package/build/dex/ramses-v2/utils.js +71 -0
- package/build/dex/ramses-v2/utils.js.map +1 -0
- package/build/dex/sushiswap-v3/config.d.ts +4 -0
- package/build/dex/sushiswap-v3/config.js +132 -0
- package/build/dex/sushiswap-v3/config.js.map +1 -0
- package/build/dex/sushiswap-v3/constants.d.ts +4 -0
- package/build/dex/sushiswap-v3/constants.js +32 -0
- package/build/dex/sushiswap-v3/constants.js.map +1 -0
- package/build/dex/sushiswap-v3/sushiswap-v3-original.d.ts +56 -0
- package/build/dex/sushiswap-v3/sushiswap-v3-original.js +598 -0
- package/build/dex/sushiswap-v3/sushiswap-v3-original.js.map +1 -0
- package/build/dex/sushiswap-v3/sushiswap-v3-pool.d.ts +1 -0
- package/build/dex/sushiswap-v3/sushiswap-v3-pool.js +6 -0
- package/build/dex/sushiswap-v3/sushiswap-v3-pool.js.map +1 -0
- package/build/dex/sushiswap-v3/sushiswap-v3.d.ts +21 -0
- package/build/dex/sushiswap-v3/sushiswap-v3.js +58 -0
- package/build/dex/sushiswap-v3/sushiswap-v3.js.map +1 -0
- package/build/dex/sushiswap-v3/token.d.ts +6 -0
- package/build/dex/sushiswap-v3/token.js +23 -0
- package/build/dex/sushiswap-v3/token.js.map +1 -0
- package/build/dex/sushiswap-v3/types.d.ts +15 -0
- package/build/dex/sushiswap-v3/types.js +18 -0
- package/build/dex/sushiswap-v3/types.js.map +1 -0
- package/build/dex/uniswap-v3/config.js +2 -0
- package/build/dex/uniswap-v3/config.js.map +1 -1
- package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.d.ts +12 -0
- package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.js +23 -0
- package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.js.map +1 -0
- package/build/dex/uniswap-v3/forks/ramses-v2/ramses-v2-pool.d.ts +7 -0
- package/build/dex/uniswap-v3/forks/ramses-v2/ramses-v2-pool.js +87 -0
- package/build/dex/uniswap-v3/forks/ramses-v2/ramses-v2-pool.js.map +1 -0
- package/build/dex/uniswap-v3/types.d.ts +2 -0
- package/build/dex/uniswap-v3/types.js.map +1 -1
- package/build/dex/uniswap-v3/uniswap-v3-pool.d.ts +5 -4
- package/build/dex/uniswap-v3/uniswap-v3-pool.js.map +1 -1
- package/build/dex/uniswap-v3/uniswap-v3.js +5 -1
- package/build/dex/uniswap-v3/uniswap-v3.js.map +1 -1
- package/build/dex/woo-fi/config.d.ts +4 -0
- package/build/dex/woo-fi/config.js +141 -0
- package/build/dex/woo-fi/config.js.map +1 -0
- package/build/dex/woo-fi/constants.d.ts +5 -0
- package/build/dex/woo-fi/constants.js +20 -0
- package/build/dex/woo-fi/constants.js.map +1 -0
- package/build/dex/woo-fi/types.d.ts +48 -0
- package/build/dex/woo-fi/types.js +3 -0
- package/build/dex/woo-fi/types.js.map +1 -0
- package/build/dex/woo-fi/woo-fi-decimal-math.d.ts +14 -0
- package/build/dex/woo-fi/woo-fi-decimal-math.js +42 -0
- package/build/dex/woo-fi/woo-fi-decimal-math.js.map +1 -0
- package/build/dex/woo-fi/woo-fi-math.d.ts +31 -0
- package/build/dex/woo-fi/woo-fi-math.js +300 -0
- package/build/dex/woo-fi/woo-fi-math.js.map +1 -0
- package/build/dex/woo-fi/woo-fi.d.ts +65 -0
- package/build/dex/woo-fi/woo-fi.js +480 -0
- package/build/dex/woo-fi/woo-fi.js.map +1 -0
- package/package.json +1 -1
- package/src/abi/ramses-v2/RamsesV2Pool.abi.json +1580 -0
- package/src/dex/uniswap-v3/config.ts +2 -0
- package/src/dex/uniswap-v3/forks/ramses-v2/ramses-v2-pool.ts +105 -0
- package/src/dex/uniswap-v3/types.ts +2 -0
- package/src/dex/uniswap-v3/uniswap-v3-pool.ts +3 -3
- package/src/dex/uniswap-v3/uniswap-v3.ts +23 -18
|
@@ -5,6 +5,7 @@ import { Address } from '../../types';
|
|
|
5
5
|
import RamsesV2StateMulticallABI from '../../abi/RamsesV2StateMulticall.abi.json';
|
|
6
6
|
import { AbiItem } from 'web3-utils';
|
|
7
7
|
import { decodeStateMultiCallResultWithRelativeBitmaps } from './forks/ramses-v2/utils';
|
|
8
|
+
import { RamsesV2EventPool } from './forks/ramses-v2/ramses-v2-pool';
|
|
8
9
|
|
|
9
10
|
const SUPPORTED_FEES = [10000n, 3000n, 500n, 100n];
|
|
10
11
|
|
|
@@ -251,6 +252,7 @@ export const UniswapV3Config: DexConfigMap<DexParams> = {
|
|
|
251
252
|
uniswapMulticall: '0x1F98415757620B543A52E61c46B32eB19261F984',
|
|
252
253
|
chunksCount: 10,
|
|
253
254
|
initRetryFrequency: 10,
|
|
255
|
+
eventPoolImplementation: RamsesV2EventPool,
|
|
254
256
|
decodeStateMultiCallResultWithRelativeBitmaps,
|
|
255
257
|
initHash:
|
|
256
258
|
'0x1565b129f2d1790f12d45301b9b084335626f0c92410bc43130763b69971135d',
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { UniswapV3EventPool } from '../../uniswap-v3-pool';
|
|
2
|
+
import { DecodedStateMultiCallResultWithRelativeBitmaps, PoolState } from '../../types';
|
|
3
|
+
import { assert } from 'ts-essentials';
|
|
4
|
+
import { _reduceTickBitmap, _reduceTicks } from '../../contract-math/utils';
|
|
5
|
+
import { bigIntify } from '../../../../utils';
|
|
6
|
+
import { TickBitMap } from '../../contract-math/TickBitMap';
|
|
7
|
+
import { uint24ToBigInt } from '../../../../lib/decoders';
|
|
8
|
+
import { Interface } from 'ethers/lib/utils';
|
|
9
|
+
import RamsesV2PoolABI from '../../../../abi/ramses-v2/RamsesV2Pool.abi.json';
|
|
10
|
+
|
|
11
|
+
export class RamsesV2EventPool extends UniswapV3EventPool {
|
|
12
|
+
|
|
13
|
+
public readonly poolIface = new Interface(RamsesV2PoolABI);
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
async generateState(blockNumber: number): Promise<Readonly<PoolState>> {
|
|
17
|
+
const callData = this._getStateRequestCallData();
|
|
18
|
+
|
|
19
|
+
const calldataWithFee = [
|
|
20
|
+
...callData,
|
|
21
|
+
{
|
|
22
|
+
target: this.poolAddress,
|
|
23
|
+
callData: this.poolIface.encodeFunctionData('currentFee'),
|
|
24
|
+
decodeFunction: uint24ToBigInt,
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
this._stateRequestCallData = calldataWithFee;
|
|
29
|
+
|
|
30
|
+
const [resBalance0, resBalance1, resState, resCurrentFee] =
|
|
31
|
+
await this.dexHelper.multiWrapper.tryAggregate<
|
|
32
|
+
bigint | DecodedStateMultiCallResultWithRelativeBitmaps
|
|
33
|
+
>(
|
|
34
|
+
false,
|
|
35
|
+
calldataWithFee,
|
|
36
|
+
blockNumber,
|
|
37
|
+
this.dexHelper.multiWrapper.defaultBatchSize,
|
|
38
|
+
false,
|
|
39
|
+
);
|
|
40
|
+
|
|
41
|
+
assert(resState.success, 'Pool does not exist');
|
|
42
|
+
|
|
43
|
+
const [balance0, balance1, _state, fee] = [
|
|
44
|
+
resBalance0.returnData,
|
|
45
|
+
resBalance1.returnData,
|
|
46
|
+
resState.returnData,
|
|
47
|
+
resCurrentFee.returnData,
|
|
48
|
+
] as [bigint, bigint, DecodedStateMultiCallResultWithRelativeBitmaps, bigint];
|
|
49
|
+
|
|
50
|
+
this.feeCode = fee;
|
|
51
|
+
const tickBitmap = {};
|
|
52
|
+
const ticks = {};
|
|
53
|
+
|
|
54
|
+
_reduceTickBitmap(tickBitmap, _state.tickBitmap);
|
|
55
|
+
_reduceTicks(ticks, _state.ticks);
|
|
56
|
+
|
|
57
|
+
const observations = {
|
|
58
|
+
[_state.slot0.observationIndex]: {
|
|
59
|
+
blockTimestamp: bigIntify(_state.observation.blockTimestamp),
|
|
60
|
+
tickCumulative: bigIntify(_state.observation.tickCumulative),
|
|
61
|
+
secondsPerLiquidityCumulativeX128: bigIntify(
|
|
62
|
+
_state.observation.secondsPerLiquidityCumulativeX128,
|
|
63
|
+
),
|
|
64
|
+
initialized: _state.observation.initialized,
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
const currentTick = bigIntify(_state.slot0.tick);
|
|
69
|
+
const tickSpacing = bigIntify(_state.tickSpacing);
|
|
70
|
+
|
|
71
|
+
const startTickBitmap = TickBitMap.position(currentTick / tickSpacing)[0];
|
|
72
|
+
const requestedRange = this.getBitmapRangeToRequest();
|
|
73
|
+
|
|
74
|
+
return {
|
|
75
|
+
pool: _state.pool,
|
|
76
|
+
blockTimestamp: bigIntify(_state.blockTimestamp),
|
|
77
|
+
slot0: {
|
|
78
|
+
sqrtPriceX96: bigIntify(_state.slot0.sqrtPriceX96),
|
|
79
|
+
tick: currentTick,
|
|
80
|
+
observationIndex: +_state.slot0.observationIndex,
|
|
81
|
+
observationCardinality: +_state.slot0.observationCardinality,
|
|
82
|
+
observationCardinalityNext: +_state.slot0.observationCardinalityNext,
|
|
83
|
+
feeProtocol: bigIntify(_state.slot0.feeProtocol),
|
|
84
|
+
},
|
|
85
|
+
liquidity: bigIntify(_state.liquidity),
|
|
86
|
+
fee: this.feeCode,
|
|
87
|
+
tickSpacing,
|
|
88
|
+
maxLiquidityPerTick: bigIntify(_state.maxLiquidityPerTick),
|
|
89
|
+
tickBitmap,
|
|
90
|
+
ticks,
|
|
91
|
+
observations,
|
|
92
|
+
isValid: true,
|
|
93
|
+
startTickBitmap,
|
|
94
|
+
lowestKnownTick:
|
|
95
|
+
(BigInt.asIntN(24, startTickBitmap - requestedRange) << 8n) *
|
|
96
|
+
tickSpacing,
|
|
97
|
+
highestKnownTick:
|
|
98
|
+
((BigInt.asIntN(24, startTickBitmap + requestedRange) << 8n) +
|
|
99
|
+
BigInt.asIntN(24, 255n)) *
|
|
100
|
+
tickSpacing,
|
|
101
|
+
balance0,
|
|
102
|
+
balance1,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
}
|
|
@@ -3,6 +3,7 @@ import { NumberAsString } from '../../types';
|
|
|
3
3
|
import { Address } from '../../types';
|
|
4
4
|
import { AbiItem } from 'web3-utils';
|
|
5
5
|
import { MultiResult } from '../../lib/multi-wrapper';
|
|
6
|
+
import { UniswapV3EventPool } from './uniswap-v3-pool';
|
|
6
7
|
|
|
7
8
|
export type OracleObservation = {
|
|
8
9
|
blockTimestamp: bigint;
|
|
@@ -79,6 +80,7 @@ export type DexParams = {
|
|
|
79
80
|
subgraphURL: string;
|
|
80
81
|
initHash: string;
|
|
81
82
|
stateMultiCallAbi?: AbiItem[];
|
|
83
|
+
eventPoolImplementation?: typeof UniswapV3EventPool;
|
|
82
84
|
decodeStateMultiCallResultWithRelativeBitmaps?: DecodeStateMultiCallFunc;
|
|
83
85
|
};
|
|
84
86
|
|
|
@@ -46,7 +46,7 @@ export class UniswapV3EventPool extends StatefulEventSubscriber<PoolState> {
|
|
|
46
46
|
|
|
47
47
|
private _poolAddress?: Address;
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
protected _stateRequestCallData?: MultiCallParams<
|
|
50
50
|
bigint | DecodedStateMultiCallResultWithRelativeBitmaps
|
|
51
51
|
>[];
|
|
52
52
|
|
|
@@ -66,7 +66,7 @@ export class UniswapV3EventPool extends StatefulEventSubscriber<PoolState> {
|
|
|
66
66
|
| undefined,
|
|
67
67
|
readonly erc20Interface: Interface,
|
|
68
68
|
protected readonly factoryAddress: Address,
|
|
69
|
-
public
|
|
69
|
+
public feeCode: bigint,
|
|
70
70
|
token0: Address,
|
|
71
71
|
token1: Address,
|
|
72
72
|
logger: Logger,
|
|
@@ -199,7 +199,7 @@ export class UniswapV3EventPool extends StatefulEventSubscriber<PoolState> {
|
|
|
199
199
|
return null; // ignore unrecognized event
|
|
200
200
|
}
|
|
201
201
|
|
|
202
|
-
|
|
202
|
+
protected _getStateRequestCallData() {
|
|
203
203
|
if (!this._stateRequestCallData) {
|
|
204
204
|
const callData: MultiCallParams<
|
|
205
205
|
bigint | DecodedStateMultiCallResultWithRelativeBitmaps
|
|
@@ -242,25 +242,29 @@ export class UniswapV3
|
|
|
242
242
|
}
|
|
243
243
|
|
|
244
244
|
this.logger.trace(`starting to listen to new pool: ${key}`);
|
|
245
|
+
const poolImplementation =
|
|
246
|
+
this.config.eventPoolImplementation !== undefined
|
|
247
|
+
? this.config.eventPoolImplementation
|
|
248
|
+
: UniswapV3EventPool;
|
|
245
249
|
pool =
|
|
246
250
|
pool ||
|
|
247
|
-
new
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
251
|
+
new poolImplementation(
|
|
252
|
+
this.dexHelper,
|
|
253
|
+
this.dexKey,
|
|
254
|
+
this.stateMultiContract,
|
|
255
|
+
this.config.decodeStateMultiCallResultWithRelativeBitmaps,
|
|
256
|
+
this.erc20Interface,
|
|
257
|
+
this.config.factory,
|
|
258
|
+
fee,
|
|
259
|
+
token0,
|
|
260
|
+
token1,
|
|
261
|
+
this.logger,
|
|
262
|
+
this.cacheStateKey,
|
|
263
|
+
this.config.initHash,
|
|
260
264
|
);
|
|
261
265
|
|
|
262
266
|
try {
|
|
263
|
-
await pool
|
|
267
|
+
await pool!.initialize(blockNumber, {
|
|
264
268
|
initCallback: (state: DeepReadonly<PoolState>) => {
|
|
265
269
|
//really hacky, we need to push poolAddress so that we subscribeToLogs in StatefulEventSubscriber
|
|
266
270
|
pool!.addressesSubscribed[0] = state.pool;
|
|
@@ -289,10 +293,10 @@ export class UniswapV3
|
|
|
289
293
|
// on unknown error mark as failed and increase retryCount for retry init strategy
|
|
290
294
|
// note: state would be null by default which allows to fallback
|
|
291
295
|
this.logger.warn(
|
|
292
|
-
`${this.dexKey}: Can not generate pool state for srcAddress=${srcAddress}, destAddress=${destAddress}, fee=${fee} pool fallback to rpc and retry every ${this.config.initRetryFrequency} times, initRetryAttemptCount=${pool
|
|
296
|
+
`${this.dexKey}: Can not generate pool state for srcAddress=${srcAddress}, destAddress=${destAddress}, fee=${fee} pool fallback to rpc and retry every ${this.config.initRetryFrequency} times, initRetryAttemptCount=${pool!.initRetryAttemptCount}`,
|
|
293
297
|
e,
|
|
294
298
|
);
|
|
295
|
-
pool
|
|
299
|
+
pool!.initFailed = true;
|
|
296
300
|
}
|
|
297
301
|
}
|
|
298
302
|
|
|
@@ -309,8 +313,8 @@ export class UniswapV3
|
|
|
309
313
|
}
|
|
310
314
|
|
|
311
315
|
this.eventPools[this.getPoolIdentifier(srcAddress, destAddress, fee)] =
|
|
312
|
-
pool
|
|
313
|
-
return pool
|
|
316
|
+
pool!;
|
|
317
|
+
return pool!;
|
|
314
318
|
}
|
|
315
319
|
|
|
316
320
|
async addMasterPool(poolKey: string, blockNumber: number): Promise<boolean> {
|
|
@@ -1066,6 +1070,7 @@ export class UniswapV3
|
|
|
1066
1070
|
initHash: this.config.initHash,
|
|
1067
1071
|
subgraphURL: this.config.subgraphURL,
|
|
1068
1072
|
stateMultiCallAbi: this.config.stateMultiCallAbi,
|
|
1073
|
+
eventPoolImplementation: this.config.eventPoolImplementation,
|
|
1069
1074
|
decodeStateMultiCallResultWithRelativeBitmaps:
|
|
1070
1075
|
this.config.decodeStateMultiCallResultWithRelativeBitmaps,
|
|
1071
1076
|
};
|