| 12345678910111213141516171819202122232425 |
- use std::str::FromStr;
- use rust_decimal::Decimal;
- use rust_decimal::prelude::FromPrimitive;
- use exchanges::response_base::ResponseData;
- use crate::{Trade};
- pub fn format_trade_items(res_data: &ResponseData) -> Vec<Trade> {
- let result = res_data.data["trades_p"].as_array().unwrap();
- let mut trades = vec![];
- for item in result {
- let side = item[1] == "Buy";
- let size = Decimal::from_str(item[3].as_str().unwrap()).unwrap();
- trades.push(Trade {
- id: item[0].to_string(),
- time: Decimal::from_i64(item[0].as_i64().unwrap() / 1000 / 1000).unwrap(),
- size: if side { size } else { -size },
- price: Decimal::from_str(item[2].as_str().unwrap().to_string().as_str()).unwrap(),
- symbol: res_data.data["symbol"].as_str().unwrap().replace("USDT", "_USDT").replace("u1000", "1000"),
- })
- }
- return trades;
- }
|