Skip to main content

vaea_flash_sdk/
slippage.rs

1/// VAEA Flash — Auto Slippage Calculator (Rust)
2///
3/// Calculates optimal slippage for direct flash loan routes.
4/// Uses data from our own QuoteResponse — zero external API calls.
5
6/// Slippage mode: auto, aggressive, safe, or exact bps.
7pub enum SlippageMode {
8    /// Balanced (default)
9    Auto,
10    /// Minimal slippage — higher risk of TX failure
11    Aggressive,
12    /// Wide margin — higher cost but safer
13    Safe,
14    /// Exact bps value
15    Exact(u16),
16}
17
18/// Calculate optimal slippage in bps for a flash loan.
19///
20/// # Arguments
21/// * `mode` — Slippage mode
22pub fn calculate_slippage_bps(mode: SlippageMode) -> u16 {
23    match mode {
24        SlippageMode::Exact(bps) => bps,
25        SlippageMode::Auto => 10,       // 0.1%
26        SlippageMode::Aggressive => 5,  // 0.05%
27        SlippageMode::Safe => 50,       // 0.5%
28    }
29}