// SPDX-License-Identifier: MIT pragma solidity ^0.8.19; interface IUniswapV2Pair { function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); } interface IUniswapV3Pool { function token0() external view returns (address); function token1() external view returns (address); function fee() external view returns (uint24); function slot0() external view returns ( uint160 sqrtPriceX96, int24 tick, uint16 observationIndex, uint16 observationCardinality, uint16 observationCardinalityNext, uint8 feeProtocol, bool unlocked ); function liquidity() external view returns (uint128); } interface IAlgebraPool { function token0() external view returns (address); function token1() external view returns (address); function globalState() external view returns ( uint160 price, int24 tick, uint16 fee, uint16 timepointIndex, uint8 communityFeeToken0, uint8 communityFeeToken1, bool unlocked ); function liquidity() external view returns (uint128); } interface IAlgebraIntegralPool { function token0() external view returns (address); function token1() external view returns (address); function globalState() external view returns ( uint160 price, int24 tick, int24 prevInitializedTick, int24 nextInitializedTick, uint16 feeZto, uint16 feeOtz, uint16 timepointIndex, uint8 communityFee, bool unlocked ); function liquidity() external view returns (uint128); }