nautilus_binance/common/
consts.rs1use std::sync::LazyLock;
19
20use nautilus_model::identifiers::Venue;
21
22use super::enums::{BinanceRateLimitInterval, BinanceRateLimitType};
23
24pub const BINANCE: &str = "BINANCE";
26
27pub static BINANCE_VENUE: LazyLock<Venue> = LazyLock::new(|| Venue::new(BINANCE));
29
30pub const BINANCE_SPOT_HTTP_URL: &str = "https://api.binance.com";
32
33pub const BINANCE_FUTURES_USD_HTTP_URL: &str = "https://fapi.binance.com";
35
36pub const BINANCE_FUTURES_COIN_HTTP_URL: &str = "https://dapi.binance.com";
38
39pub const BINANCE_OPTIONS_HTTP_URL: &str = "https://eapi.binance.com";
41
42pub const BINANCE_SPOT_TESTNET_HTTP_URL: &str = "https://testnet.binance.vision";
44
45pub const BINANCE_FUTURES_USD_TESTNET_HTTP_URL: &str = "https://testnet.binancefuture.com";
47
48pub const BINANCE_FUTURES_COIN_TESTNET_HTTP_URL: &str = "https://testnet.binancefuture.com";
50
51pub const BINANCE_SPOT_WS_URL: &str = "wss://stream.binance.com:9443/ws";
53
54pub const BINANCE_FUTURES_USD_WS_URL: &str = "wss://fstream.binance.com/ws";
56
57pub const BINANCE_FUTURES_COIN_WS_URL: &str = "wss://dstream.binance.com/ws";
59
60pub const BINANCE_OPTIONS_WS_URL: &str = "wss://nbstream.binance.com/eoptions";
62
63pub const BINANCE_SPOT_SBE_WS_URL: &str = "wss://stream-sbe.binance.com/ws";
65
66pub const BINANCE_SPOT_SBE_WS_API_URL: &str =
68 "wss://ws-api.binance.com:443/ws-api/v3?responseFormat=sbe&sbeSchemaId=3&sbeSchemaVersion=2";
69
70pub const BINANCE_SPOT_SBE_WS_API_TESTNET_URL: &str =
72 "wss://testnet.binance.vision/ws-api/v3?responseFormat=sbe&sbeSchemaId=3&sbeSchemaVersion=2";
73
74pub const BINANCE_SPOT_TESTNET_WS_URL: &str = "wss://testnet.binance.vision/ws";
76
77pub const BINANCE_FUTURES_USD_TESTNET_WS_URL: &str = "wss://stream.binancefuture.com/ws";
79
80pub const BINANCE_FUTURES_COIN_TESTNET_WS_URL: &str = "wss://dstream.binancefuture.com/ws";
82
83pub const BINANCE_SPOT_API_PATH: &str = "/api/v3";
85
86pub const BINANCE_FAPI_PATH: &str = "/fapi/v1";
88
89pub const BINANCE_DAPI_PATH: &str = "/dapi/v1";
91
92pub const BINANCE_EAPI_PATH: &str = "/eapi/v1";
94
95#[derive(Clone, Copy, Debug)]
97pub struct BinanceRateLimitQuota {
98 pub rate_limit_type: BinanceRateLimitType,
100 pub interval: BinanceRateLimitInterval,
102 pub interval_num: u32,
104 pub limit: u32,
106}
107
108pub const BINANCE_SPOT_RATE_LIMITS: &[BinanceRateLimitQuota] = &[
113 BinanceRateLimitQuota {
114 rate_limit_type: BinanceRateLimitType::RequestWeight,
115 interval: BinanceRateLimitInterval::Minute,
116 interval_num: 1,
117 limit: 1_200,
118 },
119 BinanceRateLimitQuota {
120 rate_limit_type: BinanceRateLimitType::Orders,
121 interval: BinanceRateLimitInterval::Second,
122 interval_num: 1,
123 limit: 10,
124 },
125 BinanceRateLimitQuota {
126 rate_limit_type: BinanceRateLimitType::Orders,
127 interval: BinanceRateLimitInterval::Day,
128 interval_num: 1,
129 limit: 100_000,
130 },
131];
132
133pub const BINANCE_FAPI_RATE_LIMITS: &[BinanceRateLimitQuota] = &[
138 BinanceRateLimitQuota {
139 rate_limit_type: BinanceRateLimitType::RequestWeight,
140 interval: BinanceRateLimitInterval::Minute,
141 interval_num: 1,
142 limit: 2_400,
143 },
144 BinanceRateLimitQuota {
145 rate_limit_type: BinanceRateLimitType::Orders,
146 interval: BinanceRateLimitInterval::Second,
147 interval_num: 1,
148 limit: 50,
149 },
150 BinanceRateLimitQuota {
151 rate_limit_type: BinanceRateLimitType::Orders,
152 interval: BinanceRateLimitInterval::Minute,
153 interval_num: 1,
154 limit: 1_200,
155 },
156];
157
158pub const BINANCE_DAPI_RATE_LIMITS: &[BinanceRateLimitQuota] = &[
163 BinanceRateLimitQuota {
164 rate_limit_type: BinanceRateLimitType::RequestWeight,
165 interval: BinanceRateLimitInterval::Minute,
166 interval_num: 1,
167 limit: 1_200,
168 },
169 BinanceRateLimitQuota {
170 rate_limit_type: BinanceRateLimitType::Orders,
171 interval: BinanceRateLimitInterval::Second,
172 interval_num: 1,
173 limit: 20,
174 },
175 BinanceRateLimitQuota {
176 rate_limit_type: BinanceRateLimitType::Orders,
177 interval: BinanceRateLimitInterval::Minute,
178 interval_num: 1,
179 limit: 1_200,
180 },
181];
182
183pub const BINANCE_EAPI_RATE_LIMITS: &[BinanceRateLimitQuota] = &[
188 BinanceRateLimitQuota {
189 rate_limit_type: BinanceRateLimitType::RequestWeight,
190 interval: BinanceRateLimitInterval::Minute,
191 interval_num: 1,
192 limit: 3_000,
193 },
194 BinanceRateLimitQuota {
195 rate_limit_type: BinanceRateLimitType::Orders,
196 interval: BinanceRateLimitInterval::Second,
197 interval_num: 1,
198 limit: 5,
199 },
200 BinanceRateLimitQuota {
201 rate_limit_type: BinanceRateLimitType::Orders,
202 interval: BinanceRateLimitInterval::Minute,
203 interval_num: 1,
204 limit: 200,
205 },
206];