wp-evm-amm-math 0.1.1

Native Rust CLMM/AMM math (Uniswap V3 compatible, zero SDK deps)
Documentation
/// Errors that can occur in AMM math operations.
#[derive(Debug, thiserror::Error)]
pub enum AmmMathError {
    #[error("tick {tick} out of range [-887272, 887272]")]
    TickOutOfRange { tick: i32 },

    #[error("sqrt_price_x96 out of range")]
    SqrtPriceOutOfRange,

    #[error("division by zero")]
    DivisionByZero,

    #[error("mul_div overflow")]
    MulDivOverflow,

    #[error("liquidity overflow: value exceeds u128")]
    LiquidityOverflow,

    #[error("sqrt price difference is zero")]
    SqrtPriceDiffZero,

    #[error("amount0 or amount1 must be non-zero for encode_sqrt_ratio")]
    ZeroAmounts,

    #[error("sqrt_price_x96 must be > 0")]
    SqrtPriceZero,

    #[error("liquidity must be > 0")]
    LiquidityZero,

    #[error("price computation underflow (subtracted amount exceeds available)")]
    PriceUnderflow,

    #[error("invalid fee_pips: must be < 1_000_000")]
    InvalidFeePips,
}