|
|
@@ -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("&")
|
|
|
-}
|