Kaynağa Gözat

bitmart bug 修复

hl 1 yıl önce
ebeveyn
işleme
49bdf3ffb6

+ 3 - 53
exchanges/src/bitmart_swap_rest.rs

@@ -1,7 +1,6 @@
 use std::collections::BTreeMap;
 
 use chrono::Utc;
-use percent_encoding::{AsciiSet, CONTROLS, utf8_percent_encode};
 use reqwest::Client;
 use reqwest::header::HeaderMap;
 use ring::hmac;
@@ -9,23 +8,11 @@ use rust_decimal::Decimal;
 use rust_decimal::prelude::FromPrimitive;
 use rust_decimal_macros::dec;
 use serde_json::{json, Value};
-use tracing::{error, info, trace};
-use crate::http_tool::RestTool;
-
-use crate::response_base::ResponseData;
+use tracing::{info, trace};
 
-// 定义用于 URL 编码的字符集
-pub const FRAGMENT: &AsciiSet = &CONTROLS
-    .add(b' ')
-    .add(b':')
-    .add(b'=')
-    .add(b'+')
-    .add(b'/').add(b'?').add(b'#')
-    .add(b'[').add(b']').add(b'@').add(b'!').add(b'$').add(b'&')
-    .add(b'\'').add(b'(').add(b')').add(b'*').add(b',')
-    .add(b';').add(b'"').add(b'%')
-;
 
+use crate::http_tool::RestTool;
+use crate::response_base::ResponseData;
 
 #[derive(Clone)]
 pub struct BitMartSwapRest {
@@ -410,40 +397,3 @@ impl BitMartSwapRest {
 }
 
 
-// 合并两个 JSON 对象的函数
-fn merge_json(a: &mut Value, b: &Value) {
-    match (a, b) {
-        (Value::Object(ref mut a_map), Value::Object(b_map)) => {
-            for (k, v) in b_map {
-                merge_json(a_map.entry(k.clone()).or_insert(Value::Null), v);
-            }
-        }
-        (a, b) => {
-            *a = b.clone();
-        }
-    }
-}
-
-
-// 函数:将 JSON 对象转换为排序后的查询字符串
-fn json_to_query_string(value: Value) -> String {
-    let mut params = BTreeMap::new();
-
-    if let Value::Object(obj) = value {
-        for (k, v) in obj {
-            // 确保只处理字符串值
-            if let Value::String(v_str) = v {
-                params.insert(k, v_str);
-            } else {
-                // 对于非字符串值,我们可以转换为字符串或执行其他处理
-                params.insert(k, v.to_string());
-            }
-        }
-    }
-
-    // 拼接键值对为查询字符串
-    params.iter()
-        .map(|(k, v)| format!("{}={}", utf8_percent_encode(k, FRAGMENT), utf8_percent_encode(v, FRAGMENT)))
-        .collect::<Vec<String>>()
-        .join("&")
-}

+ 4 - 12
exchanges/src/bitmart_swap_ws.rs

@@ -251,22 +251,14 @@ impl BitMartSwapWs {
 
 
                     // let timestamp = "1589267764859".to_string();
-                    // let api_key = "80618e45710812162b04892c7ee5ead4a3cc3e56";
-                    // let secret_key = "6c6c98544461bbe71db2bca4c6d7fd0021e0ba9efc215f9c6ad41852df9d9df9";
-                    // let api_memo = "test001";
-
-                    // 当前时间:timestamp=1589267764859
-                    // 申请的API_KEY = "80618e45710812162b04892c7ee5ead4a3cc3e56"
-                    // 申请的API_SECRET = "6c6c98544461bbe71db2bca4c6d7fd0021e0ba9efc215f9c6ad41852df9d9df9"
-                    // 申请的api_memo = "test001";
+                    // let api_key = "80618e45710812162b04892c7ee5ead4a3cc3e56".to_string();
+                    // let secret_key = "6c6c98544461bbe71db2bca4c6d7fd0021e0ba9efc215f9c6ad41852df9d9df9".to_string();
+                    // let api_memo = "test001".to_string();
+
                     let sign = {
                         let message = format!("{}#{}#bitmart.WebSocket", timestamp.clone(),api_memo);
                         trace!("组装数据:\n{}", message);
 
-                        // let hmac_key = hmac::Key::new(hmac::HMAC_SHA256, secret_key.as_bytes());
-                        // let result = hmac::sign(&hmac_key, &message.as_bytes());
-                        // base64::encode(result)
-
                         let signed_key = hmac::Key::new(hmac::HMAC_SHA256, secret_key.as_ref());
                         let sign = hex::encode(hmac::sign(&signed_key, message.as_bytes()).as_ref());
                         sign