Skip to main content

pyra_margin/
lib.rs

1#![deny(
2    clippy::unwrap_used,
3    clippy::expect_used,
4    clippy::panic,
5    clippy::arithmetic_side_effects,
6    unused_must_use
7)]
8
9//! Margin weight, balance, and price calculations for Drift spot positions.
10//!
11//! Provides shared math used by api-v2, settlement-service, and notification-service
12//! for computing token balances, USDC values, asset/liability weights with IMF
13//! size adjustments, and conservative oracle prices.
14
15pub mod balance;
16pub mod error;
17pub mod math;
18pub mod weights;
19
20pub use balance::{calculate_value_usdc_base_units, get_token_balance};
21pub use error::{MathError, MathResult};
22pub use math::CheckedDivCeil;
23pub use weights::{
24    calculate_asset_weight, calculate_liability_weight, calculate_scaled_initial_asset_weight,
25    calculate_size_discount_asset_weight, calculate_size_premium_liability_weight,
26    get_strict_price, to_amm_precision, AMM_RESERVE_PRECISION, SPOT_IMF_PRECISION,
27    SPOT_WEIGHT_PRECISION,
28};