|
|
@@ -89,7 +89,7 @@ impl Platform for GateSwap {
|
|
|
// 获取服务器时间
|
|
|
async fn get_server_time(&mut self) -> Result<String, Error> {
|
|
|
let res_data = self.request.get_server_time().await;
|
|
|
- if res_data.code == "200" {
|
|
|
+ if res_data.code == 200 {
|
|
|
let res_data_json: serde_json::Value = res_data.data;
|
|
|
let result = res_data_json["server_time"].to_string();
|
|
|
Ok(result)
|
|
|
@@ -101,7 +101,7 @@ impl Platform for GateSwap {
|
|
|
async fn get_account(&mut self) -> Result<Account, Error> {
|
|
|
let symbol_array: Vec<&str> = self.symbol.split("_").collect();
|
|
|
let res_data = self.request.get_account(symbol_array[1].to_string().to_lowercase()).await;
|
|
|
- if res_data.code == "200" {
|
|
|
+ if res_data.code == 200 {
|
|
|
let res_data_json: serde_json::Value = res_data.data;
|
|
|
let balance = Decimal::from_str(res_data_json["total"].as_str().unwrap()).unwrap();
|
|
|
let available_balance = Decimal::from_str(res_data_json["available"].as_str().unwrap()).unwrap();
|
|
|
@@ -130,7 +130,7 @@ impl Platform for GateSwap {
|
|
|
let symbol_array: Vec<&str> = self.symbol.split("_").collect();
|
|
|
let ct_val = self.market.ct_val;
|
|
|
let res_data = self.request.get_position(symbol_array[1].to_string().to_lowercase(), self.symbol.clone()).await;
|
|
|
- if res_data.code == "200" {
|
|
|
+ if res_data.code == 200 {
|
|
|
let res_data_json = res_data.data.as_array().unwrap();
|
|
|
let result = res_data_json.iter().map(|item| { format_position_item(item, ct_val) }).collect();
|
|
|
Ok(result)
|
|
|
@@ -142,7 +142,7 @@ impl Platform for GateSwap {
|
|
|
async fn get_positions(&mut self) -> Result<Vec<Position>, Error> {
|
|
|
let symbol_array: Vec<&str> = self.symbol.split("_").collect();
|
|
|
let res_data = self.request.get_user_position(symbol_array[1].to_string().to_lowercase()).await;
|
|
|
- if res_data.code == "200" {
|
|
|
+ if res_data.code == 200 {
|
|
|
let res_data_json = res_data.data.as_array().unwrap();
|
|
|
let result = res_data_json.iter().map(|item| { format_position_item(item, Decimal::ONE) }).collect();
|
|
|
Ok(result)
|
|
|
@@ -154,7 +154,7 @@ impl Platform for GateSwap {
|
|
|
async fn get_ticker(&mut self) -> Result<Ticker, Error> {
|
|
|
let symbol_array: Vec<&str> = self.symbol.split("_").collect();
|
|
|
let res_data = self.request.get_ticker(symbol_array[1].to_string().to_lowercase()).await;
|
|
|
- if res_data.code == "200" {
|
|
|
+ if res_data.code == 200 {
|
|
|
let res_data_json = res_data.data.as_array().unwrap();
|
|
|
let ticker_info = res_data_json.iter().find(|item| item["contract"].as_str().unwrap() == self.symbol);
|
|
|
match ticker_info {
|
|
|
@@ -184,7 +184,7 @@ impl Platform for GateSwap {
|
|
|
let symbol_upper = symbol.to_uppercase();
|
|
|
let symbol_array: Vec<&str> = symbol_upper.split("_").collect();
|
|
|
let res_data = self.request.get_ticker(symbol_array[1].to_string().to_lowercase()).await;
|
|
|
- if res_data.code == "200" {
|
|
|
+ if res_data.code == 200 {
|
|
|
let res_data_json = res_data.data.as_array().unwrap();
|
|
|
let ticker_info = res_data_json.iter().find(|item| item["contract"].as_str().unwrap() == symbol_upper);
|
|
|
match ticker_info {
|
|
|
@@ -213,7 +213,7 @@ impl Platform for GateSwap {
|
|
|
async fn get_market(&mut self) -> Result<Market, Error> {
|
|
|
let symbol_array: Vec<&str> = self.symbol.split("_").collect();
|
|
|
let res_data = self.request.get_market_details(symbol_array[1].to_string().to_lowercase()).await;
|
|
|
- if res_data.code == "200" {
|
|
|
+ if res_data.code == 200 {
|
|
|
let res_data_json = res_data.data.as_array().unwrap();
|
|
|
let market_info = res_data_json.iter().find(|item| item["name"].as_str().unwrap() == self.symbol);
|
|
|
match market_info {
|
|
|
@@ -261,7 +261,7 @@ impl Platform for GateSwap {
|
|
|
let symbol_upper = symbol.to_uppercase();
|
|
|
let symbol_array: Vec<&str> = symbol_upper.split("_").collect();
|
|
|
let res_data = self.request.get_market_details(symbol_array[1].to_string().to_lowercase()).await;
|
|
|
- if res_data.code == "200" {
|
|
|
+ if res_data.code == 200 {
|
|
|
let res_data_json = res_data.data.as_array().unwrap();
|
|
|
let market_info = res_data_json.iter().find(|item| item["name"].as_str().unwrap() == symbol_upper);
|
|
|
match market_info {
|
|
|
@@ -311,7 +311,7 @@ impl Platform for GateSwap {
|
|
|
let ct_val = self.market.ct_val;
|
|
|
let id = if order_id.eq("") { format!("t-{}", custom_id) } else { order_id.to_string() };
|
|
|
let res_data = self.request.get_order_details(symbol_array[1].to_string().to_lowercase(), id).await;
|
|
|
- if res_data.code == "200" {
|
|
|
+ if res_data.code == 200 {
|
|
|
let res_data_json: serde_json::Value = res_data.data;
|
|
|
let result = format_order_item(res_data_json, ct_val);
|
|
|
Ok(result)
|
|
|
@@ -324,7 +324,7 @@ impl Platform for GateSwap {
|
|
|
let symbol_array: Vec<&str> = self.symbol.split("_").collect();
|
|
|
let ct_val = self.market.ct_val;
|
|
|
let res_data = self.request.get_orders(symbol_array[1].to_string().to_lowercase(), status.to_string()).await;
|
|
|
- if res_data.code == "200" {
|
|
|
+ if res_data.code == 200 {
|
|
|
let res_data_json = res_data.data.as_array().unwrap();
|
|
|
let order_info: Vec<_> = res_data_json.iter().filter(|item| item["contract"].as_str().unwrap_or("") == self.symbol).collect();
|
|
|
let result = order_info.iter().map(|&item| format_order_item(item.clone(), ct_val)).collect();
|
|
|
@@ -366,7 +366,7 @@ impl Platform for GateSwap {
|
|
|
_ => { error!("下单参数错误"); }
|
|
|
};
|
|
|
let res_data = self.request.swap_order(symbol_array[1].to_string().to_lowercase(), params).await;
|
|
|
- if res_data.code == "200" {
|
|
|
+ if res_data.code == 200 {
|
|
|
let res_data_json: serde_json::Value = res_data.data;
|
|
|
let result = format_order_item(res_data_json, ct_val);
|
|
|
Ok(result)
|
|
|
@@ -407,7 +407,7 @@ impl Platform for GateSwap {
|
|
|
_ => { error!("下单参数错误"); }
|
|
|
};
|
|
|
let res_data = self.request.swap_order(symbol_array[1].to_string().to_lowercase(), params).await;
|
|
|
- if res_data.code == "200" {
|
|
|
+ if res_data.code == 200 {
|
|
|
let res_data_json: serde_json::Value = res_data.data;
|
|
|
let result = format_order_item(res_data_json, ct_val);
|
|
|
Ok(result)
|
|
|
@@ -423,7 +423,7 @@ impl Platform for GateSwap {
|
|
|
let settle = symbol_array[1].to_string().to_lowercase();
|
|
|
let id = if order_id.eq("") { format!("t-{}", custom_id) } else { order_id.to_string() };
|
|
|
let res_data = self.request.cancel_order(settle, id.to_string()).await;
|
|
|
- if res_data.code == "200" {
|
|
|
+ if res_data.code == 200 {
|
|
|
let res_data_json: serde_json::Value = res_data.data;
|
|
|
let result = format_order_item(res_data_json, ct_val);
|
|
|
Ok(result)
|
|
|
@@ -436,7 +436,7 @@ impl Platform for GateSwap {
|
|
|
let symbol_array: Vec<&str> = self.symbol.split("_").collect();
|
|
|
let ct_val = self.market.ct_val;
|
|
|
let res_data = self.request.cancel_orders(symbol_array[1].to_string().to_lowercase(), self.symbol.to_string()).await;
|
|
|
- if res_data.code == "200" {
|
|
|
+ if res_data.code == 200 {
|
|
|
let res_data_json = res_data.data.as_array().unwrap();
|
|
|
let result = res_data_json.iter().map(|item| format_order_item(item.clone(), ct_val)).collect();
|
|
|
Ok(result)
|
|
|
@@ -449,12 +449,12 @@ impl Platform for GateSwap {
|
|
|
let symbol_array: Vec<&str> = self.symbol.split("_").collect();
|
|
|
let ct_val = self.market.ct_val;
|
|
|
let orders_res_data = self.request.get_orders(symbol_array[1].to_string().to_lowercase(), "open".to_string()).await;
|
|
|
- if orders_res_data.code == "200" {
|
|
|
+ if orders_res_data.code == 200 {
|
|
|
let mut result = vec![];
|
|
|
let orders_res_data_json = orders_res_data.data.as_array().unwrap();
|
|
|
for order in orders_res_data_json {
|
|
|
let cancel_res_data = self.request.cancel_orders(symbol_array[1].to_string().to_lowercase(), order["contract"].as_str().unwrap().to_string()).await;
|
|
|
- if cancel_res_data.code == "200" {
|
|
|
+ if cancel_res_data.code == 200 {
|
|
|
let cancel_res_data_json = cancel_res_data.data.as_array().unwrap();
|
|
|
for cancel in cancel_res_data_json {
|
|
|
result.push(format_order_item(cancel.clone(), ct_val))
|
|
|
@@ -528,7 +528,7 @@ impl Platform for GateSwap {
|
|
|
let symbol_split: Vec<&str> = binding.split("_").collect();
|
|
|
let base_coin = symbol_split[1].to_string();
|
|
|
let response_data = self.request.place_price_order(base_coin, params).await;
|
|
|
- if response_data.code == "200" {
|
|
|
+ if response_data.code == 200 {
|
|
|
Ok(response_data.data)
|
|
|
} else {
|
|
|
Err(Error::new(ErrorKind::Other, response_data.to_string()))
|
|
|
@@ -541,7 +541,7 @@ impl Platform for GateSwap {
|
|
|
let base_coin = symbol_split[1].to_string();
|
|
|
|
|
|
let response_data = self.request.cancel_price_order(base_coin, order_id.to_string()).await;
|
|
|
- if response_data.code == "200" {
|
|
|
+ if response_data.code == 200 {
|
|
|
Ok(response_data.data)
|
|
|
} else {
|
|
|
Err(Error::new(ErrorKind::Other, response_data.to_string()))
|
|
|
@@ -552,7 +552,7 @@ impl Platform for GateSwap {
|
|
|
async fn set_dual_mode(&mut self, coin: &str, is_dual_mode: bool) -> Result<String, Error> {
|
|
|
let coin_format = coin.to_string().to_lowercase();
|
|
|
let res_data = self.request.setting_dual_mode(coin_format, is_dual_mode).await;
|
|
|
- if res_data.code == "200" {
|
|
|
+ if res_data.code == 200 {
|
|
|
let res_data_str = &res_data.data;
|
|
|
let result = res_data_str.clone();
|
|
|
Ok(result.to_string())
|
|
|
@@ -565,7 +565,7 @@ impl Platform for GateSwap {
|
|
|
async fn set_dual_leverage(&mut self, leverage: &str) -> Result<String, Error> {
|
|
|
let symbol_array: Vec<&str> = self.symbol.split("_").collect();
|
|
|
let res_data = self.request.setting_dual_leverage(symbol_array[1].to_string().to_lowercase(), self.symbol.to_string(), leverage.to_string()).await;
|
|
|
- if res_data.code == "200" {
|
|
|
+ if res_data.code == 200 {
|
|
|
let res_data_str = &res_data.data;
|
|
|
let result = res_data_str.clone();
|
|
|
Ok(result.to_string())
|
|
|
@@ -580,7 +580,7 @@ impl Platform for GateSwap {
|
|
|
async fn wallet_transfers(&mut self, coin: &str, from: &str, to: &str, amount: Decimal) -> Result<String, Error> {
|
|
|
let coin_format = coin.to_string().to_lowercase();
|
|
|
let res_data = self.request.wallet_transfers(coin_format.clone(), from.to_string(), to.to_string(), amount.to_string(), coin_format.clone()).await;
|
|
|
- if res_data.code == "200" {
|
|
|
+ if res_data.code == 200 {
|
|
|
let res_data_str = &res_data.data;
|
|
|
let result = res_data_str.clone();
|
|
|
Ok(result.to_string())
|