Skip to main content

Crate waterpump_solana_amm_math

Crate waterpump_solana_amm_math 

Source
Expand description

Solana AMM math primitives.

Pure math library for concentrated liquidity AMMs (Uniswap V3-style). Covers tick/price conversions, swap step computation, liquidity math, fee calculations, slippage utilities, and Meteora DLMM bin-price math.

All functions are deterministic and RPC-free.

Re-exports§

pub use fixed_point::mul_div;
pub use fixed_point::mul_shr;
pub use fixed_point::pow;
pub use fixed_point::safe_mul_div_cast;
pub use fixed_point::safe_mul_shr_cast;
pub use fixed_point::safe_shl_div_cast;
pub use fixed_point::shl_div;
pub use fixed_point::Rounding;
pub use fixed_point::MAX_EXPONENTIAL;
pub use fixed_point::ONE;
pub use fixed_point::PRECISION;
pub use fixed_point::SCALE_OFFSET;
pub use liquidity_math::decrease_liquidity_quote;
pub use liquidity_math::decrease_liquidity_quote_a;
pub use liquidity_math::decrease_liquidity_quote_b;
pub use liquidity_math::increase_liquidity_quote;
pub use liquidity_math::increase_liquidity_quote_a;
pub use liquidity_math::increase_liquidity_quote_b;
pub use liquidity_math::order_tick_indexes;
pub use liquidity_math::DecreaseLiquidityQuote;
pub use liquidity_math::IncreaseLiquidityQuote;
pub use liquidity_math::TickRange;
pub use liquidity_math::TransferFee;
pub use swap_math::compute_swap_step;
pub use swap_math::get_next_sqrt_price_from_input;
pub use swap_math::get_next_sqrt_price_from_output;
pub use swap_math::SwapStepResult;
pub use tick_math::get_full_range_tick_indexes;
pub use tick_math::get_initializable_tick_index;
pub use tick_math::get_next_initializable_tick_index;
pub use tick_math::get_prev_initializable_tick_index;
pub use tick_math::get_tick_array_start_index;
pub use tick_math::get_tick_index_in_array;
pub use tick_math::invert_tick_index;
pub use tick_math::is_position_in_range;
pub use tick_math::is_tick_in_bounds;
pub use tick_math::is_tick_initializable;
pub use tick_math::tick_count;
pub use tick_math::RAYDIUM_TICK_ARRAY_SIZE;
pub use tick_math::WHIRLPOOL_TICK_ARRAY_SIZE;
pub use price_math::invert_price;
pub use slippage::apply_transfer_fee;
pub use slippage::max_amount_with_slippage;
pub use slippage::min_amount_with_slippage;
pub use slippage::reverse_apply_transfer_fee;
pub use slippage::sqrt_price_slippage_bounds;

Modules§

bin_price
Bin-price utilities for Meteora DLMM-style protocols.
fee_math
fixed_point
Fixed-point Q64.64 arithmetic primitives.
full_math
liquidity_math
price_math
slippage
Slippage and transfer fee utilities.
swap_math
Core swap step computation (Uniswap V3 / Orca / Raydium CLMM).
tick_math

Enums§

AmmMathError
Errors returned by AMM math operations.