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§
- AmmMath
Error - Errors returned by AMM math operations.