pub mod bust;
pub mod limits;
pub mod mint;
pub mod valuation;
pub use bust::bust_price;
pub use limits::{Limit, OpenLimits, OpenRefusal, check_open, debt_room, open_limits};
pub use mint::{mint_rate, paper_for_loss};
pub use valuation::{DEADBAND_DIVISOR, Valuation, ValuationError, WIN_FEE_RATE, value};
use df_hyperliquid_core::client::evm::U256;
#[must_use]
pub fn mul_div(a: u128, b: u128, c: u128) -> Option<u128> {
let (quotient, _) = U256::from(a).checked_mul(U256::from(b))?.div_rem(U256::from(c))?;
quotient.to_u128()
}