from importlib.metadata import version

# isort: split

from .checksum_cache import get_checksum_address
from .config import settings
from .connection import (
    async_connection_manager,
    connection_manager,
    get_async_web3,
    get_web3,
    set_async_web3,
    set_web3,
)

# isort: split

from .aerodrome import (
    AerodromeV2Pool,
    AerodromeV2PoolManager,
    AerodromeV2PoolState,
    AerodromeV3Pool,
    AerodromeV3PoolManager,
    AerodromeV3PoolState,
)
from .anvil_fork import AnvilFork
from .arbitrage import ArbitrageCalculationResult, UniswapCurveCycle, UniswapLpCycle
from .builder_endpoint import BuilderEndpoint
from .camelot import CamelotLiquidityPool
from .chainlink import ChainlinkPriceContract
from .curve import (
    CurveStableswapPool,
    CurveStableswapPoolSimulationResult,
    CurveStableswapPoolState,
    CurveStableSwapPoolStateUpdated,
)
from .erc20 import Erc20Token, Erc20TokenManager, EtherPlaceholder
from .logging import logger
from .pancakeswap import PancakeV2Pool, PancakeV2PoolManager, PancakeV3Pool, PancakeV3PoolManager
from .registry import pool_registry, token_registry
from .sushiswap import (
    SushiswapV2Pool,
    SushiswapV2PoolManager,
    SushiswapV3Pool,
    SushiswapV3PoolManager,
)
from .swapbased import SwapbasedV2Pool, SwapbasedV2PoolManager
from .transaction import UniswapTransaction
from .uniswap import (
    UniswapV2Pool,
    UniswapV2PoolExternalUpdate,
    UniswapV2PoolManager,
    UniswapV2PoolSimulationResult,
    UniswapV2PoolState,
    UniswapV3LiquiditySnapshot,
    UniswapV3Pool,
    UniswapV3PoolExternalUpdate,
    UniswapV3PoolManager,
    UniswapV3PoolSimulationResult,
    UniswapV3PoolState,
    UniswapV4LiquiditySnapshot,
    UniswapV4Pool,
    UniswapV4PoolExternalUpdate,
    UniswapV4PoolState,
)

__all__ = (
    "AerodromeV2Pool",
    "AerodromeV2PoolManager",
    "AerodromeV2PoolState",
    "AerodromeV3Pool",
    "AerodromeV3PoolManager",
    "AerodromeV3PoolState",
    "AnvilFork",
    "ArbitrageCalculationResult",
    "BuilderEndpoint",
    "CamelotLiquidityPool",
    "ChainlinkPriceContract",
    "CurveStableSwapPoolStateUpdated",
    "CurveStableswapPool",
    "CurveStableswapPoolSimulationResult",
    "CurveStableswapPoolState",
    "Erc20Token",
    "Erc20TokenManager",
    "EtherPlaceholder",
    "PancakeV2Pool",
    "PancakeV2PoolManager",
    "PancakeV3Pool",
    "PancakeV3PoolManager",
    "SushiswapV2Pool",
    "SushiswapV2PoolManager",
    "SushiswapV3Pool",
    "SushiswapV3PoolManager",
    "SwapbasedV2Pool",
    "SwapbasedV2PoolManager",
    "UniswapCurveCycle",
    "UniswapLpCycle",
    "UniswapTransaction",
    "UniswapV2Pool",
    "UniswapV2PoolExternalUpdate",
    "UniswapV2PoolManager",
    "UniswapV2PoolSimulationResult",
    "UniswapV2PoolState",
    "UniswapV3LiquiditySnapshot",
    "UniswapV3Pool",
    "UniswapV3PoolExternalUpdate",
    "UniswapV3PoolManager",
    "UniswapV3PoolSimulationResult",
    "UniswapV3PoolState",
    "UniswapV4LiquiditySnapshot",
    "UniswapV4Pool",
    "UniswapV4PoolExternalUpdate",
    "UniswapV4PoolState",
    "aerodrome",
    "arbitrage",
    "async_connection_manager",
    "balancer",
    "camelot",
    "cli",
    "connection_manager",
    "constants",
    "curve",
    "erc20",
    "exceptions",
    "functions",
    "get_async_web3",
    "get_checksum_address",
    "get_web3",
    "logger",
    "managers",
    "pancakeswap",
    "pool_registry",
    "registry",
    "set_async_web3",
    "set_web3",
    "settings",
    "solidly",
    "sushiswap",
    "token_registry",
    "transaction",
    "types",
    "uniswap",
    "utils",
    "validation",
)
__version__ = version(__package__)
