|
|
@@ -1,4 +1,4 @@
|
|
|
-use std::collections::{BTreeMap};
|
|
|
+use std::collections::{BTreeMap, HashMap};
|
|
|
use std::io::{Error, ErrorKind};
|
|
|
use std::str::FromStr;
|
|
|
use tokio::sync::mpsc::Sender;
|
|
|
@@ -278,6 +278,24 @@ impl Platform for GateSwap {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ async fn get_market_ct_val_map(&mut self) -> Result<HashMap<String, Decimal>, 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 {
|
|
|
+ let mut ct_val_map = HashMap::new();
|
|
|
+ let res_data_json = res_data.data.as_array().unwrap();
|
|
|
+ for item in res_data_json.iter() {
|
|
|
+ let name = item["name"].as_str().unwrap();
|
|
|
+ let ct_val = Decimal::from_str(item["quanto_multiplier"].as_str().unwrap()).unwrap();
|
|
|
+ ct_val_map.insert(name.to_string(), ct_val);
|
|
|
+ }
|
|
|
+ Ok(ct_val_map)
|
|
|
+ } else {
|
|
|
+ Err(Error::new(ErrorKind::Other, res_data.to_string()))
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
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;
|