Skip to main content

wp_evm_amm_math/
error.rs

1/// Errors that can occur in AMM math operations.
2#[derive(Debug, thiserror::Error)]
3pub enum AmmMathError {
4    #[error("tick {tick} out of range [-887272, 887272]")]
5    TickOutOfRange { tick: i32 },
6
7    #[error("sqrt_price_x96 out of range")]
8    SqrtPriceOutOfRange,
9
10    #[error("division by zero")]
11    DivisionByZero,
12
13    #[error("mul_div overflow")]
14    MulDivOverflow,
15
16    #[error("liquidity overflow: value exceeds u128")]
17    LiquidityOverflow,
18
19    #[error("sqrt price difference is zero")]
20    SqrtPriceDiffZero,
21
22    #[error("amount0 or amount1 must be non-zero for encode_sqrt_ratio")]
23    ZeroAmounts,
24
25    #[error("sqrt_price_x96 must be > 0")]
26    SqrtPriceZero,
27
28    #[error("liquidity must be > 0")]
29    LiquidityZero,
30
31    #[error("price computation underflow (subtracted amount exceeds available)")]
32    PriceUnderflow,
33
34    #[error("invalid fee_pips: must be < 1_000_000")]
35    InvalidFeePips,
36}