1#[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}