1use std::fmt;
2
3#[deprecated(since = "0.3.0", note = "use `Environment`")]
6pub const BASE_URL_API_MAINNET_1: &str = "https://api.bybit.com";
7#[deprecated(since = "0.3.0", note = "use `Environment`")]
9pub const BASE_URL_API_MAINNET_2: &str = "https://api.bytick.com";
10#[deprecated(since = "0.3.0", note = "use `Environment`")]
12pub const BASE_URL_API_MAINNET_3: &str = "https://api.bybit.nl";
13#[deprecated(since = "0.3.0", note = "use `Environment`")]
15pub const BASE_URL_API_MAINNET_4: &str = "https://api.byhkbit.com";
16#[deprecated(since = "0.3.0", note = "use `Environment`")]
18pub const BASE_URL_API_MAINNET_5: &str = "https://api.bybit-tr.com";
19#[deprecated(since = "0.3.0", note = "use `Environment`")]
21pub const BASE_URL_API_MAINNET_6: &str = "https://api.bybit.kz";
22
23#[deprecated(since = "0.3.0", note = "use `Environment`")]
25pub const BASE_URL_STREAM_MAINNET_1: &str = "wss://stream.bybit.com";
26#[deprecated(since = "0.3.0", note = "use `Environment`")]
28pub const BASE_URL_STREAM_MAINNET_2: &str = "wss://stream.bybit-tr.com";
29#[deprecated(since = "0.3.0", note = "use `Environment`")]
31pub const BASE_URL_STREAM_MAINNET_3: &str = "wss://stream.bybit.kz";
32
33#[deprecated(since = "0.3.0", note = "use `Environment`")]
36pub const BASE_URL_API_TESTNET: &str = "https://api-testnet.bybit.com";
37#[deprecated(since = "0.3.0", note = "use `Environment`")]
39pub const BASE_URL_STREAM_TESTNET: &str = "wss://stream-testnet.bybit.com";
40
41#[deprecated(since = "0.3.0", note = "use `Environment`")]
44pub const BASE_URL_API_DEMO: &str = "https://api-demo.bybit.com";
45#[deprecated(since = "0.3.0", note = "use `Environment`")]
47pub const BASE_URL_STREAM_DEMO: &str = "wss://stream-demo.bybit.com";
48
49pub const HEADER_X_BAPI_API_KEY: &str = "X-BAPI-API-KEY";
52pub const HEADER_X_BAPI_TIMESTAMP: &str = "X-BAPI-TIMESTAMP";
54pub const HEADER_X_BAPI_SIGN: &str = "X-BAPI-SIGN";
56pub const HEADER_X_REFERER: &str = "X-Referer";
58pub const HEADER_X_BAPI_RECV_WINDOW: &str = "X-BAPI-RECV-WINDOW";
60pub const HEADER_X_BAPI_LIMIT: &str = "X-Bapi-Limit";
62pub const HEADER_X_BAPI_LIMIT_STATUS: &str = "X-Bapi-Limit-Status";
64pub const HEADER_X_BAPI_LIMIT_RESET_TIMESTAMP: &str = "X-Bapi-Limit-Reset-Timestamp";
66pub const HEADER_RET_CODE: &str = "ret_code";
67pub const HEADER_TRACE_ID: &str = "traceid";
68pub const HEADER_TIME_NOW: &str = "timenow";
69
70#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
73pub enum Path {
74 MarketServerTime,
77 MarketKline,
79 MarketMarkPriceKline,
81 MarketIndexPriceKline,
83 MarketPremiumIndexPriceKline,
85 MarketOrderbook,
87 MarketTickers,
89 MarketFundingHistory,
91 MarketRecentTrade,
93 MarketOpenInterest,
95 MarketHistoricalVolatility,
97 MarketInsurance,
99 MarketInstrumentsInfo,
101 MarketRiskLimit,
103 MarketDeliveryPrice,
105
106 TradeOrderCreate,
109 TradeOrderAmend,
111 TradeOrderCancel,
113 TradeOrderRealtime,
115 TradeOrderCancelAll,
117 TradeOrderHistory,
119 TradeOrderCreateBatch,
121 TradeOrderAmendBatch,
123 TradeOrderCancelBatch,
125 TradeOrderSpotBorrowCheck,
127
128 PositionList,
131 PositionSetLeverage,
133 PositionSetRiskLimit,
135 PositionTradingStop,
137 PositionSwitchIsolated,
139 PositionSwitchMode,
141 PositionSetAutoAddMargin,
143 PositionClosedPnl,
145 ExecutionList,
147
148 AccountWalletBalance,
151 AccountUpgradeToUta,
153 AccountBorrowHistory,
155 AccountCollateralInfo,
157 AssetCoinGreeks,
159 AccountInfo,
161 AccountTransactionLog,
163 AccountSetMarginMode,
165 AccountSetMarginModeDemoApplyMoney,
167 AccountFeeRate,
169
170 AssetDeliveryRecord,
173 AssetSettlementRecord,
175 AssetTransferInterTransfer,
177 AssetTransferQueryInterTransferList,
179 AssetTransferSaveTransferSubMember,
181 AssetTransferUniversalTransfer,
183 AssetTransferQueryUniversalTransferList,
185 AssetTransferQueryTransferCoinList,
187 AssetTransferQuerySubMemberList,
189 AssetTransferQueryAccountCoinBalance,
191 AssetTransferQueryAssetInfo,
193 AssetDepositQueryAllowedList,
195 AssetDepositQueryRecord,
197 AssetDepositQuerySubMemberRecord,
199 AssetWithdrawQueryRecord,
201 AssetWithdrawWithdrawableAmount,
203 AssetCoinQueryInfo,
205 AssetWithdrawCreate,
207 AssetWithdrawCancel,
209 AssetDepositQueryAddress,
211 AssetDepositQuerySubMemberAddress,
213 AssetExchangeOrderRecord,
215
216 UserQueryApi,
218
219 SpotLeverTokenInfo,
222 SpotLeverTokenReference,
224 SpotLeverTokenPurchase,
226 SpotLeverTokenRedeem,
228 SpotLeverTokenOrderRecord,
230
231 SpotMarginTradeSwitchMode,
234 SpotMarginTradeSetLeverage,
236
237 PublicSpot,
240 PublicLinear,
242 PublicInverse,
244 PublicOption,
246 Private,
248 Trade,
250}
251
252impl fmt::Display for Path {
253 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
254 let s = match self {
255 Self::MarketServerTime => "/v5/market/time",
256 Self::MarketKline => "/v5/market/kline",
257 Self::MarketMarkPriceKline => "/v5/market/mark-price-kline",
258 Self::MarketIndexPriceKline => "/v5/market/index-price-kline",
259 Self::MarketPremiumIndexPriceKline => "/v5/market/premium-index-price-kline",
260 Self::MarketOrderbook => "/v5/market/orderbook",
261 Self::MarketTickers => "/v5/market/tickers",
262 Self::MarketFundingHistory => "/v5/market/funding/history",
263 Self::MarketRecentTrade => "/v5/market/recent-trade",
264 Self::MarketOpenInterest => "/v5/market/open-interest",
265 Self::MarketHistoricalVolatility => "/v5/market/historical-volatility",
266 Self::MarketInsurance => "/v5/market/insurance",
267 Self::MarketInstrumentsInfo => "/v5/market/instruments-info",
268 Self::MarketRiskLimit => "/v5/market/risk-limit",
269 Self::MarketDeliveryPrice => "/v5/market/delivery-price",
270
271 Self::TradeOrderCreate => "/v5/order/create",
272 Self::TradeOrderAmend => "/v5/order/amend",
273 Self::TradeOrderCancel => "/v5/order/cancel",
274 Self::TradeOrderRealtime => "/v5/order/realtime",
275 Self::TradeOrderCancelAll => "/v5/order/cancel-all",
276 Self::TradeOrderHistory => "/v5/order/history",
277 Self::TradeOrderCreateBatch => "/v5/order/create-batch",
278 Self::TradeOrderAmendBatch => "/v5/order/amend-batch",
279 Self::TradeOrderCancelBatch => "/v5/order/cancel-batch",
280 Self::TradeOrderSpotBorrowCheck => "/v5/order/spot-borrow-check",
281
282 Self::PositionList => "/v5/position/list",
283 Self::PositionSetLeverage => "/v5/position/set-leverage",
284 Self::PositionSetRiskLimit => "/v5/position/set-risk-limit",
285 Self::PositionTradingStop => "/v5/position/trading-stop",
286 Self::PositionSwitchIsolated => "/v5/position/switch-isolated",
287 Self::PositionSwitchMode => "/v5/position/switch-mode",
288 Self::PositionSetAutoAddMargin => "/v5/position/set-auto-add-margin",
289 Self::PositionClosedPnl => "/v5/position/closed-pnl",
290
291 Self::ExecutionList => "/v5/execution/list",
292
293 Self::AccountWalletBalance => "/v5/account/wallet-balance",
294 Self::AccountUpgradeToUta => "/v5/account/upgrade-to-uta",
295 Self::AccountBorrowHistory => "/v5/account/borrow-history",
296 Self::AccountCollateralInfo => "/v5/account/collateral-info",
297 Self::AssetCoinGreeks => "/v5/asset/coin-greeks",
298 Self::AccountInfo => "/v5/account/info",
299 Self::AccountTransactionLog => "/v5/account/transaction-log",
300 Self::AccountSetMarginMode => "/v5/account/set-margin-mode",
301 Self::AccountSetMarginModeDemoApplyMoney => "/v5/account/demo-apply-money",
302 Self::AccountFeeRate => "/v5/account/fee-rate",
303
304 Self::AssetDeliveryRecord => "/v5/asset/delivery-record",
305 Self::AssetSettlementRecord => "/v5/asset/settlement-record",
306 Self::AssetTransferInterTransfer => "/v5/asset/transfer/inter-transfer",
307 Self::AssetTransferQueryInterTransferList => {
308 "/v5/asset/transfer/query-inter-transfer-list"
309 }
310 Self::AssetTransferSaveTransferSubMember => {
311 "/v5/asset/transfer/save-transfer-sub-member"
312 }
313 Self::AssetTransferUniversalTransfer => "/v5/asset/transfer/universal-transfer",
314 Self::AssetTransferQueryUniversalTransferList => {
315 "/v5/asset/transfer/query-universal-transfer-list"
316 }
317 Self::AssetTransferQueryTransferCoinList => {
318 "/v5/asset/transfer/query-transfer-coin-list"
319 }
320 Self::AssetTransferQuerySubMemberList => "/v5/asset/transfer/query-sub-member-list",
321 Self::AssetTransferQueryAccountCoinBalance => {
322 "/v5/asset/transfer/query-account-coin-balance"
323 }
324 Self::AssetTransferQueryAssetInfo => "/v5/asset/transfer/query-asset-info",
325 Self::AssetDepositQueryAllowedList => "/v5/asset/deposit/query-allowed-list",
326 Self::AssetDepositQueryRecord => "/v5/asset/deposit/query-record",
327 Self::AssetDepositQuerySubMemberRecord => "/v5/asset/deposit/query-sub-member-record",
328 Self::AssetWithdrawQueryRecord => "/v5/asset/withdraw/query-record",
329 Self::AssetWithdrawWithdrawableAmount => "/v5/asset/withdraw/withdrawable-amount",
330 Self::AssetCoinQueryInfo => "/v5/asset/coin/query-info",
331 Self::AssetWithdrawCreate => "/v5/asset/withdraw/create",
332 Self::AssetWithdrawCancel => "/v5/asset/withdraw/cancel",
333 Self::AssetDepositQueryAddress => "/v5/asset/deposit/query-address",
334 Self::AssetDepositQuerySubMemberAddress => "/v5/asset/deposit/query-sub-member-address",
335 Self::AssetExchangeOrderRecord => "/v5/asset/exchange/order-record",
336
337 Self::UserQueryApi => "/v5/user/query-api",
338
339 Self::SpotLeverTokenInfo => "/v5/spot-lever-token/info",
340 Self::SpotLeverTokenReference => "/v5/spot-lever-token/reference",
341 Self::SpotLeverTokenPurchase => "/v5/spot-lever-token/purchase",
342 Self::SpotLeverTokenRedeem => "/v5/spot-lever-token/redeem",
343 Self::SpotLeverTokenOrderRecord => "/v5/spot-lever-token/order-record",
344 Self::SpotMarginTradeSwitchMode => "/v5/spot-margin-trade/switch-mode",
345 Self::SpotMarginTradeSetLeverage => "/v5/spot-margin-trade/set-leverage",
346
347 Self::PublicSpot => "/v5/public/spot",
348 Self::PublicLinear => "/v5/public/linear",
349 Self::PublicInverse => "/v5/public/inverse",
350 Self::PublicOption => "/v5/public/option",
351 Self::Private => "/v5/private",
352 Self::Trade => "/v5/trade",
353 };
354
355 write!(f, "{s}")
356 }
357}