1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
mod exchanges;

pub use crypto_market_type::MarketType;

pub fn get_contract_value(exchange: &str, market_type: MarketType, pair: &str) -> Option<f32> {
    if market_type == MarketType::Spot {
        return Some(1.0);
    }

    match exchange {
        "binance" => exchanges::binance::get_contract_value(market_type, pair),
        "bitfinex" => exchanges::bitfinex::get_contract_value(market_type, pair),
        "bitget" => exchanges::bitget::get_contract_value(market_type, pair),
        "bitmex" => exchanges::bitmex::get_contract_value(market_type, pair),
        "bybit" => exchanges::bybit::get_contract_value(market_type, pair),
        "deribit" => exchanges::deribit::get_contract_value(market_type, pair),
        "ftx" => exchanges::ftx::get_contract_value(market_type, pair),
        "gate" => exchanges::gate::get_contract_value(market_type, pair),
        "huobi" => exchanges::huobi::get_contract_value(market_type, pair),
        "kucoin" => exchanges::kucoin::get_contract_value(market_type, pair),
        "mxc" => exchanges::mxc::get_contract_value(market_type, pair),
        "okex" => exchanges::okex::get_contract_value(market_type, pair),
        _ => panic!("Unknown exchange {}", exchange),
    }
}