|
|
@@ -15,14 +15,14 @@ use crate::proxy::ParsingDetail;
|
|
|
use crate::response_base::ResponseData;
|
|
|
|
|
|
|
|
|
-pub enum KuconinWsType {
|
|
|
+pub enum KucoinWsType {
|
|
|
Public,
|
|
|
Private,
|
|
|
}
|
|
|
|
|
|
#[derive(Debug)]
|
|
|
#[derive(Clone)]
|
|
|
-pub struct KuconinWsParam {
|
|
|
+pub struct KucoinWsParam {
|
|
|
pub token: String,
|
|
|
pub ws_url: String,
|
|
|
pub ws_ping_interval: i64,
|
|
|
@@ -30,7 +30,7 @@ pub struct KuconinWsParam {
|
|
|
}
|
|
|
|
|
|
#[derive(Clone)] //订阅枚举
|
|
|
-pub enum KuconinSubscribeType {
|
|
|
+pub enum KucoinSubscribeType {
|
|
|
PuContractMarketLevel2Depth50,
|
|
|
PuContractMarketExecution,
|
|
|
|
|
|
@@ -41,7 +41,7 @@ pub enum KuconinSubscribeType {
|
|
|
}
|
|
|
|
|
|
#[derive(Clone)]
|
|
|
-pub struct KuconinSwapWs {
|
|
|
+pub struct KucoinSwapWs {
|
|
|
pub label: String,
|
|
|
request_url: String,
|
|
|
//实际ws 链接地址
|
|
|
@@ -49,31 +49,31 @@ pub struct KuconinSwapWs {
|
|
|
//代理信息
|
|
|
// login_param: BTreeMap<String, String>,
|
|
|
//登陆数据
|
|
|
- ws_param: KuconinWsParam,
|
|
|
+ ws_param: KucoinWsParam,
|
|
|
//kuconis特殊参数
|
|
|
symbol_s: Vec<String>,
|
|
|
//订阅币对
|
|
|
- subscribe_types: Vec<KuconinSubscribeType>,
|
|
|
+ subscribe_types: Vec<KucoinSubscribeType>,
|
|
|
//订阅信息
|
|
|
sender: Sender<ResponseData>, //数据通道
|
|
|
}
|
|
|
|
|
|
-impl KuconinSwapWs {
|
|
|
+impl KucoinSwapWs {
|
|
|
/*******************************************************************************************************/
|
|
|
/*****************************************获取一个对象****************************************************/
|
|
|
/*******************************************************************************************************/
|
|
|
pub async fn new(is_colo: bool,
|
|
|
login_param: BTreeMap<String, String>,
|
|
|
- ws_type: KuconinWsType,
|
|
|
+ ws_type: KucoinWsType,
|
|
|
sender: Sender<ResponseData>,
|
|
|
- ) -> KuconinSwapWs {
|
|
|
- return KuconinSwapWs::new_label("default-KuconinSwapWs".to_string(), is_colo, login_param, ws_type, sender).await;
|
|
|
+ ) -> KucoinSwapWs {
|
|
|
+ return KucoinSwapWs::new_label("default-KucoinSwapWs".to_string(), is_colo, login_param, ws_type, sender).await;
|
|
|
}
|
|
|
pub async fn new_label(label: String, is_colo: bool,
|
|
|
login_param: BTreeMap<String, String>,
|
|
|
- ws_type: KuconinWsType,
|
|
|
+ ws_type: KucoinWsType,
|
|
|
sender: Sender<ResponseData>,
|
|
|
- ) -> KuconinSwapWs
|
|
|
+ ) -> KucoinSwapWs
|
|
|
{
|
|
|
if is_colo {
|
|
|
trace!("不支持高速通道")
|
|
|
@@ -83,13 +83,13 @@ impl KuconinSwapWs {
|
|
|
let parsing_detail = proxy::ParsingDetail::parsing_environment_variables();
|
|
|
|
|
|
/*******公共频道-私有频道数据组装*/
|
|
|
- let mut ws_param = KuconinWsParam {
|
|
|
+ let mut ws_param = KucoinWsParam {
|
|
|
token: "".to_string(),
|
|
|
ws_url: "".to_string(),
|
|
|
ws_ping_interval: 0,
|
|
|
ws_ping_timeout: 0,
|
|
|
};
|
|
|
- let res_data = KuconinSwapWs::get_rul_token(ws_type, login_param.clone()).await;
|
|
|
+ let res_data = KucoinSwapWs::get_rul_token(ws_type, login_param.clone()).await;
|
|
|
match res_data {
|
|
|
Ok(param) => {
|
|
|
ws_param = param
|
|
|
@@ -99,7 +99,7 @@ impl KuconinSwapWs {
|
|
|
}
|
|
|
}
|
|
|
/*****返回结构体*******/
|
|
|
- KuconinSwapWs {
|
|
|
+ KucoinSwapWs {
|
|
|
label,
|
|
|
request_url: "".to_string(),
|
|
|
proxy: parsing_detail,
|
|
|
@@ -115,17 +115,17 @@ impl KuconinSwapWs {
|
|
|
/*****************************************订阅函数********************************************************/
|
|
|
/*******************************************************************************************************/
|
|
|
//手动添加订阅信息
|
|
|
- pub fn set_subscribe(&mut self, subscribe_types: Vec<KuconinSubscribeType>) {
|
|
|
+ pub fn set_subscribe(&mut self, subscribe_types: Vec<KucoinSubscribeType>) {
|
|
|
self.subscribe_types.extend(subscribe_types);
|
|
|
}
|
|
|
//根据当前类型获取对应的频道 地址 与 token
|
|
|
- async fn get_rul_token(ws_type: KuconinWsType, login_param: BTreeMap<String, String>) -> Result<KuconinWsParam, reqwest::Error> {
|
|
|
+ async fn get_rul_token(ws_type: KucoinWsType, login_param: BTreeMap<String, String>) -> Result<KucoinWsParam, reqwest::Error> {
|
|
|
let kucoin_exc = KucoinSwapRest::new(false, login_param.clone());
|
|
|
let res_data = match ws_type {
|
|
|
- KuconinWsType::Public => {
|
|
|
+ KucoinWsType::Public => {
|
|
|
kucoin_exc.get_public_token().await
|
|
|
}
|
|
|
- KuconinWsType::Private => {
|
|
|
+ KucoinWsType::Private => {
|
|
|
kucoin_exc.get_private_token().await
|
|
|
}
|
|
|
};
|
|
|
@@ -157,7 +157,7 @@ impl KuconinSwapWs {
|
|
|
}
|
|
|
|
|
|
|
|
|
- Ok(KuconinWsParam { ws_url, token: ws_token, ws_ping_interval, ws_ping_timeout })
|
|
|
+ Ok(KucoinWsParam { ws_url, token: ws_token, ws_ping_interval, ws_ping_timeout })
|
|
|
} else {
|
|
|
panic!("公共/私有-频道获取失败:{:?}", res_data)
|
|
|
}
|
|
|
@@ -174,24 +174,24 @@ impl KuconinSwapWs {
|
|
|
/*****************************************工具函数********************************************************/
|
|
|
/*******************************************************************************************************/
|
|
|
//订阅枚举解析
|
|
|
- pub fn enum_to_string(symbol: String, subscribe_type: KuconinSubscribeType) -> String {
|
|
|
+ pub fn enum_to_string(symbol: String, subscribe_type: KucoinSubscribeType) -> String {
|
|
|
match subscribe_type {
|
|
|
- KuconinSubscribeType::PuContractMarketLevel2Depth50 => {
|
|
|
+ KucoinSubscribeType::PuContractMarketLevel2Depth50 => {
|
|
|
format!("/contractMarket/level2Depth50:{}", symbol)
|
|
|
}
|
|
|
- KuconinSubscribeType::PuContractMarketExecution => {
|
|
|
+ KucoinSubscribeType::PuContractMarketExecution => {
|
|
|
format!("/contractMarket/execution:{}", symbol)
|
|
|
}
|
|
|
- KuconinSubscribeType::PrContractAccountWallet => {
|
|
|
+ KucoinSubscribeType::PrContractAccountWallet => {
|
|
|
format!("/contractAccount/wallet")
|
|
|
}
|
|
|
- KuconinSubscribeType::PrContractPosition => {
|
|
|
+ KucoinSubscribeType::PrContractPosition => {
|
|
|
format!("/contract/position:{}", symbol)
|
|
|
}
|
|
|
- KuconinSubscribeType::PrContractMarketTradeOrdersSys => {
|
|
|
+ KucoinSubscribeType::PrContractMarketTradeOrdersSys => {
|
|
|
format!("/contractMarket/tradeOrders")
|
|
|
}
|
|
|
- KuconinSubscribeType::PrContractMarketTradeOrders => {
|
|
|
+ KucoinSubscribeType::PrContractMarketTradeOrders => {
|
|
|
format!("/contractMarket/tradeOrders:{}", symbol)
|
|
|
}
|
|
|
}
|