@paraswap/dex-lib 2.37.1 → 2.37.2-current-fee-ramses-v2
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 +85 -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 +3 -2
- 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 +102 -0
- package/src/dex/uniswap-v3/types.ts +2 -0
- package/src/dex/uniswap-v3/uniswap-v3-pool.ts +1 -1
- 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,102 @@
|
|
|
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
|
+
async generateState(blockNumber: number): Promise<Readonly<PoolState>> {
|
|
16
|
+
const callData = this._getStateRequestCallData();
|
|
17
|
+
|
|
18
|
+
const calldataWithFee = [
|
|
19
|
+
...callData,
|
|
20
|
+
{
|
|
21
|
+
target: this.poolAddress,
|
|
22
|
+
callData: this.poolIface.encodeFunctionData('currentFee'),
|
|
23
|
+
decodeFunction: uint24ToBigInt,
|
|
24
|
+
},
|
|
25
|
+
];
|
|
26
|
+
|
|
27
|
+
const [resBalance0, resBalance1, resState, resCurrentFee] =
|
|
28
|
+
await this.dexHelper.multiWrapper.tryAggregate<
|
|
29
|
+
bigint | DecodedStateMultiCallResultWithRelativeBitmaps
|
|
30
|
+
>(
|
|
31
|
+
false,
|
|
32
|
+
calldataWithFee,
|
|
33
|
+
blockNumber,
|
|
34
|
+
this.dexHelper.multiWrapper.defaultBatchSize,
|
|
35
|
+
false,
|
|
36
|
+
);
|
|
37
|
+
|
|
38
|
+
assert(resState.success, 'Pool does not exist');
|
|
39
|
+
|
|
40
|
+
const [balance0, balance1, _state, fee] = [
|
|
41
|
+
resBalance0.returnData,
|
|
42
|
+
resBalance1.returnData,
|
|
43
|
+
resState.returnData,
|
|
44
|
+
resCurrentFee.returnData,
|
|
45
|
+
] as [bigint, bigint, DecodedStateMultiCallResultWithRelativeBitmaps, bigint];
|
|
46
|
+
|
|
47
|
+
const tickBitmap = {};
|
|
48
|
+
const ticks = {};
|
|
49
|
+
|
|
50
|
+
_reduceTickBitmap(tickBitmap, _state.tickBitmap);
|
|
51
|
+
_reduceTicks(ticks, _state.ticks);
|
|
52
|
+
|
|
53
|
+
const observations = {
|
|
54
|
+
[_state.slot0.observationIndex]: {
|
|
55
|
+
blockTimestamp: bigIntify(_state.observation.blockTimestamp),
|
|
56
|
+
tickCumulative: bigIntify(_state.observation.tickCumulative),
|
|
57
|
+
secondsPerLiquidityCumulativeX128: bigIntify(
|
|
58
|
+
_state.observation.secondsPerLiquidityCumulativeX128,
|
|
59
|
+
),
|
|
60
|
+
initialized: _state.observation.initialized,
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
const currentTick = bigIntify(_state.slot0.tick);
|
|
65
|
+
const tickSpacing = bigIntify(_state.tickSpacing);
|
|
66
|
+
|
|
67
|
+
const startTickBitmap = TickBitMap.position(currentTick / tickSpacing)[0];
|
|
68
|
+
const requestedRange = this.getBitmapRangeToRequest();
|
|
69
|
+
|
|
70
|
+
return {
|
|
71
|
+
pool: _state.pool,
|
|
72
|
+
blockTimestamp: bigIntify(_state.blockTimestamp),
|
|
73
|
+
slot0: {
|
|
74
|
+
sqrtPriceX96: bigIntify(_state.slot0.sqrtPriceX96),
|
|
75
|
+
tick: currentTick,
|
|
76
|
+
observationIndex: +_state.slot0.observationIndex,
|
|
77
|
+
observationCardinality: +_state.slot0.observationCardinality,
|
|
78
|
+
observationCardinalityNext: +_state.slot0.observationCardinalityNext,
|
|
79
|
+
feeProtocol: bigIntify(_state.slot0.feeProtocol),
|
|
80
|
+
},
|
|
81
|
+
liquidity: bigIntify(_state.liquidity),
|
|
82
|
+
fee,
|
|
83
|
+
tickSpacing,
|
|
84
|
+
maxLiquidityPerTick: bigIntify(_state.maxLiquidityPerTick),
|
|
85
|
+
tickBitmap,
|
|
86
|
+
ticks,
|
|
87
|
+
observations,
|
|
88
|
+
isValid: true,
|
|
89
|
+
startTickBitmap,
|
|
90
|
+
lowestKnownTick:
|
|
91
|
+
(BigInt.asIntN(24, startTickBitmap - requestedRange) << 8n) *
|
|
92
|
+
tickSpacing,
|
|
93
|
+
highestKnownTick:
|
|
94
|
+
((BigInt.asIntN(24, startTickBitmap + requestedRange) << 8n) +
|
|
95
|
+
BigInt.asIntN(24, 255n)) *
|
|
96
|
+
tickSpacing,
|
|
97
|
+
balance0,
|
|
98
|
+
balance1,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
}
|
|
@@ -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
|
|
|
@@ -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
|
};
|