|
|
@@ -9,6 +9,7 @@ use exchanges::bybit_swap_rest::BybitSwapRest;
|
|
|
use exchanges::bybit_swap_ws::{BybitSwapSubscribeType, BybitSwapWs, BybitSwapWsType};
|
|
|
use exchanges::response_base::ResponseData;
|
|
|
use rust_decimal::Decimal;
|
|
|
+use serde_json::Value;
|
|
|
use standard::exchange::ExchangeEnum;
|
|
|
use standard::exchange_struct_handler::ExchangeStructHandler;
|
|
|
use crate::json_db_utils::delete_db_by_exchange;
|
|
|
@@ -30,8 +31,7 @@ pub async fn run_listener(is_shutdown_arc: Arc<AtomicBool>) {
|
|
|
let response = bybit_rest.get_instruments_list().await;
|
|
|
let mut symbols = vec![];
|
|
|
if response.code == 200 {
|
|
|
-
|
|
|
- let data = response.data["list"].as_array().unwrap();
|
|
|
+ let data: Vec<Value> = response.data["list"].as_array().unwrap().iter().filter(|item| { item["contractType"].as_str().unwrap() == "LinearPerpetual" && item["status"].as_str().unwrap() == "Trading" && item["quoteCoin"].as_str().unwrap() == "USDT" }).cloned().collect();
|
|
|
let mut mul_map = MUL_MAP.lock().await;
|
|
|
for info in data {
|
|
|
let symbol = info["symbol"].as_str().unwrap().to_string().replace("USDT","_USDT");
|