ソースを参照

add ticker info fetch

Berke 1 年間 前
コミット
3ae08f05bf
1 ファイル変更23 行追加0 行削除
  1. 23 0
      src/data_providers/binance/market_data.rs

+ 23 - 0
src/data_providers/binance/market_data.rs

@@ -568,4 +568,27 @@ pub async fn fetch_depth(ticker: Ticker) -> Result<FetchedDepth, reqwest::Error>
     let depth: FetchedDepth = serde_json::from_str(&text).unwrap();
 
     Ok(depth)
+}
+
+pub async fn fetch_ticksize(ticker: Ticker) -> Result<f32, reqwest::Error> {
+    let symbol_str = match ticker {
+        Ticker::BTCUSDT => "BTCUSDT",
+        Ticker::ETHUSDT => "ETHUSDT",
+        Ticker::SOLUSDT => "SOLUSDT",
+        Ticker::LTCUSDT => "LTCUSDT",
+    };
+
+    let url = format!("https://fapi.binance.com/fapi/v1/exchangeInfo");
+
+    let response = reqwest::get(&url).await?;
+    let text = response.text().await?;
+    let exchange_info: Value = serde_json::from_str(&text).unwrap();
+
+    let symbols = exchange_info["symbols"].as_array().unwrap();
+
+    let symbol = symbols.iter().find(|x| x["symbol"].as_str().unwrap() == symbol_str).unwrap();
+
+    let tick_size = symbol["filters"].as_array().unwrap().iter().find(|x| x["filterType"].as_str().unwrap() == "PRICE_FILTER").unwrap()["tickSize"].as_str().unwrap().parse::<f32>().unwrap();
+
+    Ok(tick_size)
 }