1pub const BASE_URL_API: &str = "https://api.binance.com";
4pub const BASE_URL_API_GCP: &str = "https://api-gcp.binance.com";
5pub const BASE_URL_API1: &str = "https://api1.binance.com";
6pub const BASE_URL_API2: &str = "https://api2.binance.com";
7pub const BASE_URL_API3: &str = "https://api3.binance.com";
8pub const BASE_URL_API4: &str = "https://api4.binance.com";
9
10pub const BASE_URL_WEBSOCKET_API1: &str = "wss://ws-api.binance.com";
11pub const BASE_URL_WEBSOCKET_API2: &str = "wss://ws-api.binance.com:443";
12pub const BASE_URL_WEBSOCKET_API3: &str = "wss://ws-api.binance.com:9443";
13
14pub const BASE_URL_STREAM1: &str = "wss://stream.binance.com";
15pub const BASE_URL_STREAM2: &str = "wss://stream.binance.com:443";
16pub const BASE_URL_STREAM3: &str = "wss://stream.binance.com:9443";
17
18pub const BASE_URL_MARKET_DATA_API: &str = "https://data-api.binance.vision";
21pub const BASE_URL_MARKET_DATA_STREAM1: &str = "wss://data-stream.binance.vision";
22pub const BASE_URL_MARKET_DATA_STREAM2: &str = "wss://data-stream.binance.vision:443";
23pub const BASE_URL_MARKET_DATA_STREAM3: &str = "wss://data-stream.binance.vision:9443";
24
25pub const BASE_URL_TESTNET_API: &str = "https://testnet.binance.vision";
28
29pub const BASE_URL_TESTNET_WEBSOCKET_API1: &str = "wss://ws-api.testnet.binance.vision";
30pub const BASE_URL_TESTNET_WEBSOCKET_API2: &str = "wss://ws-api.testnet.binance.vision:9443";
31
32pub const BASE_URL_TESTNET_STREAM1: &str = "wss://stream.testnet.binance.com";
33pub const BASE_URL_TESTNET_STREAM2: &str = "wss://stream.testnet.binance.com:443";
34pub const BASE_URL_TESTNET_STREAM3: &str = "wss://stream.testnet.binance.com:9443";
35
36pub enum Path {
37 Ping,
39 Time,
40 ExchangeInfo,
41
42 Depth,
44 Trades,
45 HistoricalTrades,
46 AggTrades,
47 KLines,
48 UIKLines,
49 AvgPrice,
50 Ticker24hr,
51 TickerTradingDay,
52 TickerPrice,
53 TickerBook,
54 Ticker,
55
56 Order,
58 OrderTest,
59 OpenOrders,
60 OrderCancelReplace,
61 OrderAmendKeepPriority,
62 OrderListOCO,
63 OrderListOTO,
64 OrderListOTOCO,
65 OrderList,
66 SOROrder,
67 SOROrderTest,
68
69 Account,
71 RateLimitOrder,
72
73 WebSocketApiV3,
75 WebSocket,
76 Stream,
77}
78
79impl std::fmt::Display for Path {
80 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
81 let s = match self {
82 Self::Ping => "/api/v3/ping",
84 Self::Time => "/api/v3/time",
85 Self::ExchangeInfo => "/api/v3/exchangeInfo",
86
87 Self::Depth => "/api/v3/depth",
89 Self::Trades => "/api/v3/trades",
90 Self::HistoricalTrades => "/api/v3/historicalTrades",
91 Self::AggTrades => "/api/v3/aggTrades",
92 Self::KLines => "/api/v3/klines",
93 Self::UIKLines => "/api/v3/uiKlines",
94 Self::AvgPrice => "/api/v3/avgPrice",
95 Self::Ticker24hr => "/api/v3/ticker/24hr",
96 Self::TickerTradingDay => "/api/v3/ticker/tradingDay",
97 Self::TickerPrice => "/api/v3/ticker/price",
98 Self::TickerBook => "/api/v3/ticker/bookTicker",
99 Self::Ticker => "/api/v3/ticker",
100
101 Self::Order => "/api/v3/order",
103 Self::OrderTest => "/api/v3/order/test",
104 Self::OpenOrders => "/api/v3/openOrders",
105 Self::OrderCancelReplace => "/api/v3/order/cancelReplace",
106 Self::OrderAmendKeepPriority => "/api/v3/order/amend/keepPriority",
107 Self::OrderListOCO => "/api/v3/orderList/oco",
108 Self::OrderListOTO => "/api/v3/orderList/oto",
109 Self::OrderListOTOCO => "/api/v3/orderList/otoco",
110 Self::OrderList => "/api/v3/orderList",
111 Self::SOROrder => "/api/v3/sor/order",
112 Self::SOROrderTest => "/api/v3/sor/order/test",
113
114 Self::Account => "/api/v3/account",
116 Self::RateLimitOrder => "/api/v3/rateLimit/order",
117
118 Self::WebSocketApiV3 => "/ws-api/v3",
120 Self::WebSocket => "/ws",
121 Self::Stream => "/stream",
122 };
123
124 write!(f, "{}", s)
125 }
126}
127
128pub const HEADER_RETRY_AFTER: &str = "Retry-After";
132pub const HEADER_X_MBX_APIKEY: &str = "X-MBX-APIKEY";
133pub const HEADER_X_MBX_TIME_UNIT: &str = "X-MBX-TIME-UNIT";
134pub const HEADER_VALUE_MICROSECOND: &str = "MICROSECOND";