Browse Source

修改phemex交易所倍数币对问题

DESKTOP-NE65RNK\Citrus_limon 1 năm trước cách đây
mục cha
commit
a1fd5cf1ec

+ 1 - 1
exchanges/src/phemex_swap_ws.rs

@@ -122,7 +122,7 @@ impl PhemexSwapWs {
     pub fn set_symbols(&mut self, mut b_array: Vec<String>) {
         for symbol in b_array.iter_mut() {
             // 大写
-            *symbol = symbol.to_uppercase();
+            *symbol = symbol.to_string();
             // 字符串替换
             *symbol = symbol.replace("_", "-");
         }

+ 4 - 3
src/phemex_usdt_swap_data_listener.rs

@@ -37,8 +37,9 @@ pub async fn run_listener(is_shutdown_arc: Arc<AtomicBool>) {
         for symbol_info in symbol_infos {
             if symbol_info["quoteCurrency"] != "USDT" || symbol_info["status"] == "Delisted" { continue; }
             // quanto_multiplier是ct_val
-            let symbol = format!("{}{}", symbol_info["baseCurrency"].as_str().unwrap(), symbol_info["quoteCurrency"].as_str().unwrap());
-            let loc_symbol = format!("{}_{}", symbol_info["baseCurrency"].as_str().unwrap(), symbol_info["quoteCurrency"].as_str().unwrap());
+            let symbol = symbol_info["symbol"].as_str().unwrap().to_string();
+            let base_currency: String = symbol_info["baseCurrency"].as_str().unwrap().to_string().split_whitespace().collect();
+            let loc_symbol = format!("{}_{}", base_currency, symbol_info["quoteCurrency"].as_str().unwrap());
             let mul = Decimal::ONE;
             mul_map.insert(symbol_out_mapper(ExchangeEnum::PhemexSwap, &loc_symbol), mul);
 
@@ -100,7 +101,7 @@ pub async fn data_listener(response: ResponseData) {
         // k线数据
         "futures.candlesticks" => {
             let mut records = ExchangeStructHandler::records_handle(ExchangeEnum::PhemexSwap, &response);
-
+            println!("{:?}", records);
             let mul_map = MUL_MAP.lock().await;
             for record in records.iter_mut() {
                 // 真实交易量处理,因为phemex的量都是张数

+ 1 - 1
standard/src/phemex_swap.rs

@@ -124,7 +124,7 @@ impl Platform for PhemexSwap {
                 }
                 Some(value) => {
                     let symbol = value["symbol"].as_str().unwrap().to_string();
-                    let base_asset = value["baseCurrency"].as_str().unwrap().to_string();
+                    let base_asset = value["baseCurrency"].as_str().unwrap().to_string().split_whitespace().collect();
                     let quote_asset = value["quoteCurrency"].as_str().unwrap().to_string();
                     let price_precision = Decimal::from_str(&value["pricePrecision"].to_string()).unwrap();
                     let tick_size = Decimal::from_str(value["tickSize"].as_str().unwrap()).unwrap();

+ 2 - 2
standard/src/phemex_swap_handle.rs

@@ -7,7 +7,7 @@ use crate::{OrderBook, Trade, Record};
 
 pub fn handle_records(value: &Value) -> Vec<Record> {
     let mut records = vec![];
-    let symbol = value["symbol"].as_str().unwrap().replace("USDT", "_USDT");
+    let symbol = value["symbol"].as_str().unwrap().replace("USDT", "_USDT").replace("u1000", "1000");
 
     for record_value in value["kline_p"].as_array().unwrap() {
         records.push(Record {
@@ -47,7 +47,7 @@ pub fn format_trade_items(res_data: &ResponseData) -> Vec<Trade> {
             time: Decimal::from_i64(item[0].as_i64().unwrap() / 1000 / 1000).unwrap(),
             size: if side { size } else { -size },
             price: Decimal::from_str(item[2].as_str().unwrap().to_string().as_str()).unwrap(),
-            symbol: res_data.data["symbol"].as_str().unwrap().replace("USDT", "_USDT"),
+            symbol: res_data.data["symbol"].as_str().unwrap().replace("USDT", "_USDT").replace("u1000", "1000"),
         })
     }