degenbot.aerodrome¶

Aerodrome V2/V3 liquidity pools and trackers.

Submodules¶

Package Contents¶

class degenbot.aerodrome.AerodromeV2Pool(*args: Any, **kwargs: Any)¶

Bases: degenbot.aerodrome.v2_pool_state.AerodromeV2PoolState, degenbot.aerodrome.v2_pool_calc.AerodromeV2PoolCalc, degenbot.types.abstract.AbstractLiquidityPool

AerodromeV2Pool class.

variant: ClassVar[str | None] = 'aerodrome'¶
type PoolState = AerodromeV2PoolState¶
FEE_DENOMINATOR = 10000¶
address: degenbot.types.chain.ChecksummedAddress¶
factory: degenbot.types.chain.ChecksummedAddress¶
deployer_address: degenbot.types.chain.ChecksummedAddress¶
name: str¶
classmethod from_handle(py_pool: degenbot.types.Pool) → Self¶

Wrap a Rust-owned Pool handle as a Python companion.

Internal seam (ADR-005, Polars-style _from_pydf pattern). Every identity field (address, tokens, factory, fee, stable, variant) is read off the handle; reserves live in Rust (AerodromeV2PoolState) and are read via snapshot_aerodrome() — the Python StateCache is gone.

Returns:

A cls instance wrapping py_pool.

Raises:

DegenbotValueError – If the handle is not an Aerodrome V2 pool.

property reserves_token0: int¶

Reserves token0.

property reserves_token1: int¶

Reserves token1.

property state: PoolState¶

State.

Raises:

DegenbotValueError – If the Rust snapshot is absent.

property update_block: degenbot.types.aliases.BlockNumber¶

Update block.

static swap_is_viable(state: PoolState, vector: degenbot.uniswap.types.UniswapPoolSwapVector) → bool¶

Swap is viable.

Returns:

The computed boolean value.

external_update(update: degenbot.aerodrome.types.AerodromeV2PoolExternalUpdate) → None¶

External update.

Raises:

ExternalUpdateError – See function documentation.

discard_states_before_block(block: degenbot.types.aliases.BlockNumber) → None¶

Discard cached states earlier than the given block.

Raises:

NoPoolStateAvailable – See function documentation.

restore_state_before_block(block: degenbot.types.aliases.BlockNumber) → None¶

Restore the last pool state recorded prior to a target block.

Use this method to maintain consistent state data following a chain re-organization.

Raises:

NoPoolStateAvailable – See function documentation.

class degenbot.aerodrome.AerodromeV3Pool(*args: Any, **kwargs: Any)¶

Bases: degenbot.uniswap.v3_liquidity_pool.UniswapV3Pool

AerodromeV3Pool class.

variant: ClassVar[str | None] = 'aerodrome'¶
type PoolState = AerodromeV3PoolState¶
TICK_STRUCT_TYPES = ('uint128', 'int128', 'int128', 'uint256', 'uint256', 'uint256', 'int56', 'uint160', 'uint32', 'bool')¶
class degenbot.aerodrome.AerodromeV2PoolTracker(*, factory_address: str, bot: degenbot.bot.Bot, chain_id: degenbot.types.aliases.ChainId | None = None, deployer_address: degenbot._ffi.ChecksummedAddress | str | None = None, pool_init_hash: str | None = None)¶

Bases: _AbstractAerodromeV2PoolTracker[degenbot.aerodrome.pools.AerodromeV2Pool]

Generate and track concrete instances of V2 liquidity pool helpers.

Tracks Uniswap V2 liquidity pool helpers or their child classes.

get_volatile_pool(token_addresses: tuple[str, str], *, silent: bool = False, pool_class_kwargs: dict[str, Any] | None = None) → degenbot.aerodrome.pools.AerodromeV2Pool¶

Get a volatile pool by its token addresses.

The token addresses may be passed in any order.

Returns:

The computed value.

class degenbot.aerodrome.AerodromeV3PoolTracker(*args: Any, **kwargs: Any)¶

Bases: degenbot.uniswap.trackers.AbstractUniswapV3PoolTracker[degenbot.aerodrome.pools.AerodromeV3Pool]

AerodromeV3PoolTracker class.

abstractmethod get_pool_from_tokens_and_fee(*args: Any, **kwargs: Any) → Never¶

Return pool from tokens and fee.

get_pool_from_tokens_and_tick_spacing(token_addresses: tuple[str, str], tick_spacing: int, *, silent: bool = False, pool_class_kwargs: dict[str, Any] | None = None) → degenbot.aerodrome.pools.AerodromeV3Pool¶

Return pool from tokens and tick spacing.

Returns:

The computed value.

class degenbot.aerodrome.AerodromeV2PoolState¶

Bases: degenbot.types.abstract.AbstractPoolState

AerodromeV2PoolState class.

reserves_token0: int¶
reserves_token1: int¶
class degenbot.aerodrome.AerodromeV3PoolState¶

Bases: degenbot.uniswap.v3_types.UniswapV3PoolState

AerodromeV3PoolState class.