|
|
@@ -30,6 +30,7 @@ pub async fn bitmart_usdt_swap_run(is_shutdown_arc :Arc<AtomicBool>,
|
|
|
let name_clone = name.clone();
|
|
|
let core_arc_clone = core_arc.clone();
|
|
|
let symbols_clone = symbols.clone();
|
|
|
+ let run_symbol = symbols.clone()[0].clone();
|
|
|
spawn(async move {
|
|
|
// 构建链接ws
|
|
|
let mut bg_public = BitMartSwapWs::new_label(name_clone.clone(),
|
|
|
@@ -40,9 +41,9 @@ pub async fn bitmart_usdt_swap_run(is_shutdown_arc :Arc<AtomicBool>,
|
|
|
let mut update_flag_u = Decimal::ZERO;
|
|
|
let fun = move |data: ResponseData| {
|
|
|
let core_arc_cc = core_arc_clone.clone();
|
|
|
-
|
|
|
+ let symbol_pub = run_symbol.clone();
|
|
|
async move {
|
|
|
- on_public_data(core_arc_cc, &mut update_flag_u, data).await
|
|
|
+ on_public_data(core_arc_cc, &mut update_flag_u, data, &symbol_pub).await
|
|
|
}
|
|
|
};
|
|
|
|
|
|
@@ -99,15 +100,14 @@ async fn on_private_data(core_arc_clone: Arc<Mutex<Core>>,
|
|
|
run_symbol: &String) {
|
|
|
let mut trace_stack = TraceStack::new(response.time, response.ins);
|
|
|
trace_stack.on_after_span_line();
|
|
|
-
|
|
|
// public类型,目前只考虑订单流数据
|
|
|
match response.channel.as_str() {
|
|
|
- "account" => {
|
|
|
+ "futures/asset:USDT" => {
|
|
|
let account = standard::handle_info::HandleSwapInfo::handle_account_info(BitmartSwap, &response, run_symbol);
|
|
|
let mut core = core_arc_clone.lock().await;
|
|
|
core.update_equity(account).await;
|
|
|
},
|
|
|
- "positions" => {
|
|
|
+ "futures/position" => {
|
|
|
let mut positions = standard::handle_info::HandleSwapInfo::handle_position(BitmartSwap, &response, &ct_val);
|
|
|
|
|
|
// bitmart如果没有仓位不会给0,会给个空数组
|
|
|
@@ -127,7 +127,7 @@ async fn on_private_data(core_arc_clone: Arc<Mutex<Core>>,
|
|
|
let mut core = core_arc_clone.lock().await;
|
|
|
core.update_position(positions).await;
|
|
|
},
|
|
|
- "orders" => {
|
|
|
+ "futures/order" => {
|
|
|
trace_stack.set_source("gate_swap.orders".to_string());
|
|
|
let orders = standard::handle_info::HandleSwapInfo::handle_order(BitmartSwap, response.clone(), ct_val.clone());
|
|
|
|
|
|
@@ -157,20 +157,23 @@ async fn on_private_data(core_arc_clone: Arc<Mutex<Core>>,
|
|
|
|
|
|
async fn on_public_data(core_arc_clone: Arc<Mutex<Core>>,
|
|
|
update_flag_u: &mut Decimal,
|
|
|
- response: ResponseData) {
|
|
|
+ response: ResponseData,
|
|
|
+ symbol: &String) {
|
|
|
let mut trace_stack = TraceStack::new(response.time, response.ins);
|
|
|
trace_stack.on_after_span_line();
|
|
|
-
|
|
|
+ let symbol_upper = symbol.replace("_", "").to_uppercase();
|
|
|
// public类型,目前只考虑订单流数据
|
|
|
match response.channel.as_str() {
|
|
|
- "books1" => {
|
|
|
- trace_stack.set_source("bitmart_usdt_swap.books1".to_string());
|
|
|
- let special_depth = standard::handle_info::HandleSwapInfo::handle_special_depth(BitmartSwap, &response);
|
|
|
+ "futures/ticker" => {
|
|
|
+ trace_stack.set_source("bitmart_usdt_swap.ticker".to_string());
|
|
|
+ if response.data["symbol"].as_str().unwrap() != symbol_upper{
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ let special_depth = standard::handle_info::HandleSwapInfo::handle_book_ticker(BitmartSwap, &response);
|
|
|
trace_stack.on_after_format();
|
|
|
|
|
|
on_special_depth(core_arc_clone, update_flag_u, &response.label, &mut trace_stack, &special_depth).await;
|
|
|
},
|
|
|
- "pong" => {},
|
|
|
_ => {
|
|
|
info!("bitmart_usdt_swap 125 未知的订阅数据");
|
|
|
info!(?response)
|