ccxt_exchanges/binance/ws/
streams.rs1#![allow(dead_code)]
4
5pub const WS_BASE_URL: &str = "wss://stream.binance.com:9443/ws";
7pub const WS_TESTNET_URL: &str = "wss://testnet.binance.vision/ws";
9
10pub fn ticker_stream(symbol: &str) -> String {
12 format!("{}@ticker", symbol.to_lowercase())
13}
14
15pub fn mini_ticker_stream(symbol: &str) -> String {
17 format!("{}@miniTicker", symbol.to_lowercase())
18}
19
20pub fn trade_stream(symbol: &str) -> String {
22 format!("{}@trade", symbol.to_lowercase())
23}
24
25pub fn agg_trade_stream(symbol: &str) -> String {
27 format!("{}@aggTrade", symbol.to_lowercase())
28}
29
30pub fn orderbook_stream(symbol: &str, levels: u32, update_speed: &str) -> String {
32 if update_speed == "100ms" {
33 format!("{}@depth{}@100ms", symbol.to_lowercase(), levels)
34 } else {
35 format!("{}@depth{}", symbol.to_lowercase(), levels)
36 }
37}
38
39pub fn orderbook_diff_stream(symbol: &str, update_speed: Option<&str>) -> String {
41 if let Some(speed) = update_speed {
42 if speed == "100ms" {
43 format!("{}@depth@100ms", symbol.to_lowercase())
44 } else {
45 format!("{}@depth", symbol.to_lowercase())
46 }
47 } else {
48 format!("{}@depth", symbol.to_lowercase())
49 }
50}
51
52pub fn kline_stream(symbol: &str, interval: &str) -> String {
54 format!("{}@kline_{}", symbol.to_lowercase(), interval)
55}
56
57pub fn mark_price_stream(symbol: &str, use_1s_freq: bool) -> String {
59 if use_1s_freq {
60 format!("{}@markPrice@1s", symbol.to_lowercase())
61 } else {
62 format!("{}@markPrice", symbol.to_lowercase())
63 }
64}
65
66pub fn book_ticker_stream(symbol: &str) -> String {
68 format!("{}@bookTicker", symbol.to_lowercase())
69}
70
71pub fn all_tickers_stream() -> String {
73 "!ticker@arr".to_string()
74}
75
76pub fn all_mini_tickers_stream() -> String {
78 "!miniTicker@arr".to_string()
79}
80
81pub fn user_data_stream_url(listen_key: &str) -> String {
83 format!("wss://stream.binance.com:9443/ws/{}", listen_key)
84}