use std::fmt;
pub const BASE_URL_API_MAINNET_1: &str = "https://api.bybit.com";
pub const BASE_URL_API_MAINNET_2: &str = "https://api.bytick.com";
pub const BASE_URL_API_MAINNET_3: &str = "https://api.bybit.nl";
pub const BASE_URL_API_MAINNET_4: &str = "https://api.byhkbit.com";
pub const BASE_URL_API_MAINNET_5: &str = "wss://api.bybit-tr.com";
pub const BASE_URL_API_MAINNET_6: &str = "wss://api.bybit.kz";
pub const BASE_URL_STREAM_MAINNET_1: &str = "wss://stream.bybit.com";
pub const BASE_URL_STREAM_MAINNET_2: &str = "wss://stream.bybit-tr.com";
pub const BASE_URL_STREAM_MAINNET_3: &str = "wss://stream.bybit.kz";
pub const BASE_URL_API_TESTNET: &str = "https://api-testnet.bybit.com";
pub const BASE_URL_STREAM_TESTNET: &str = "wss://stream-testnet.bybit.com";
pub const BASE_URL_API_DEMO: &str = "https://api-demo.bybit.com";
pub const BASE_URL_STREAM_DEMO: &str = "wss://stream-demo.bybit.com";
pub const HEADER_X_BAPI_API_KEY: &str = "X-BAPI-API-KEY";
pub const HEADER_X_BAPI_TIMESTAMP: &str = "X-BAPI-TIMESTAMP";
pub const HEADER_X_BAPI_SIGN: &str = "X-BAPI-SIGN";
pub const HEADER_X_REFERER: &str = "X-Referer";
pub const HEADER_X_BAPI_RECV_WINDOW: &str = "X-BAPI-RECV-WINDOW";
pub const HEADER_X_BAPI_LIMIT: &str = "X-Bapi-Limit";
pub const HEADER_X_BAPI_LIMIT_STATUS: &str = "X-Bapi-Limit-Status";
pub const HEADER_X_BAPI_LIMIT_RESET_TIMESTAMP: &str = "X-Bapi-Limit-Reset-Timestamp";
#[allow(dead_code)]
pub const HEADER_CDN_REQUEST_ID: &str = "cdn-request-id";
pub const HEADER_RET_CODE: &str = "ret_code";
pub const HEADER_TRACE_ID: &str = "traceid";
pub const HEADER_TIME_NOW: &str = "timenow";
pub enum Path {
MarketServerTime,
MarketKline,
MarketMarkPriceKline,
MarketIndexPriceKline,
MarketPremiumIndexPriceKline,
MarketOrderbook,
MarketTickers,
MarketFundingHistory,
MarketRecentTrade,
MarketOpenInterest,
MarketHistoricalVolatility,
MarketInsurance,
MarketInstrumentsInfo,
MarketRiskLimit,
MarketDeliveryPrice,
TradeOrderCreate,
TradeOrderAmend,
TradeOrderCancel,
TradeOrderRealtime,
TradeOrderCancelAll,
TradeOrderHistory,
TradeOrderCreateBatch,
TradeOrderAmendBatch,
TradeOrderCancelBatch,
TradeOrderSpotBorrowCheck,
PositionList,
PositionSetLeverage,
PositionSetRiskLimit,
PositionTradingStop,
PositionSwitchIsolated,
PositionSwitchMode,
PositionSetAutoAddMargin,
PositionClosedPnl,
ExecutionList,
AccountWalletBalance,
AccountUpgradeToUta,
AccountBorrowHistory,
AccountCollateralInfo,
AssetCoinGreeks,
AccountInfo,
AccountTransactionLog,
AccountSetMarginMode,
AccountSetMarginModeDemoApplyMoney,
AccountFeeRate,
AssetDeliveryRecord,
AssetSettlementRecord,
AssetTransferInterTransfer,
AssetTransferQueryInterTransferList,
AssetTransferSaveTransferSubMember,
AssetTransferUniversalTransfer,
AssetTransferQueryUniversalTransferList,
AssetTransferQueryTransferCoinList,
AssetTransferQuerySubMemberList,
AssetTransferQueryAccountCoinBalance,
AssetTransferQueryAssetInfo,
AssetDepositQueryAllowedList,
AssetDepositQueryRecord,
AssetDepositQuerySubMemberRecord,
AssetWithdrawQueryRecord,
AssetCoinQueryInfo,
AssetWithdrawCreate,
AssetWithdrawCancel,
AssetDepositQueryAddress,
AssetDepositQuerySubMemberAddress,
AssetExchangeOrderRecord,
UserQueryApi,
SpotLeverTokenInfo,
SpotLeverTokenReference,
SpotLeverTokenPurchase,
SpotLeverTokenRedeem,
SpotLeverTokenOrderRecord,
SpotMarginTradeSwitchMode,
SpotMarginTradeSetLeverage,
SpotMarginTradeSetPledgeToken,
PublicSpot,
PublicLinear,
PublicInverse,
PublicOption,
Private,
Trade,
}
impl fmt::Display for Path {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
let s = match self {
Self::MarketServerTime => "/v5/market/time",
Self::MarketKline => "/v5/market/kline",
Self::MarketMarkPriceKline => "/v5/market/mark-price-kline",
Self::MarketIndexPriceKline => "/v5/market/index-price-kline",
Self::MarketPremiumIndexPriceKline => "/v5/market/premium-index-price-kline",
Self::MarketOrderbook => "/v5/market/orderbook",
Self::MarketTickers => "/v5/market/tickers",
Self::MarketFundingHistory => "/v5/market/funding/history",
Self::MarketRecentTrade => "/v5/market/recent-trade",
Self::MarketOpenInterest => "/v5/market/open-interest",
Self::MarketHistoricalVolatility => "/v5/market/historical-volatility",
Self::MarketInsurance => "/v5/market/insurance",
Self::MarketInstrumentsInfo => "/v5/market/instruments-info",
Self::MarketRiskLimit => "/v5/market/risk-limit",
Self::MarketDeliveryPrice => "/v5/market/delivery-price",
Self::TradeOrderCreate => "/v5/order/create",
Self::TradeOrderAmend => "/v5/order/amend",
Self::TradeOrderCancel => "/v5/order/cancel",
Self::TradeOrderRealtime => "/v5/order/realtime",
Self::TradeOrderCancelAll => "/v5/order/cancel-all",
Self::TradeOrderHistory => "/v5/order/history",
Self::TradeOrderCreateBatch => "/v5/order/create-batch",
Self::TradeOrderAmendBatch => "/v5/order/amend-batch",
Self::TradeOrderCancelBatch => "/v5/order/cancel-batch",
Self::TradeOrderSpotBorrowCheck => "/v5/order/spot-borrow-check",
Self::PositionList => "/v5/position/list",
Self::PositionSetLeverage => "/v5/position/set-leverage",
Self::PositionSetRiskLimit => "/v5/position/set-risk-limit",
Self::PositionTradingStop => "/v5/position/trading-stop",
Self::PositionSwitchIsolated => "/v5/position/switch-isolated",
Self::PositionSwitchMode => "/v5/position/switch-mode",
Self::PositionSetAutoAddMargin => "/v5/position/set-auto-add-margin",
Self::PositionClosedPnl => "/v5/position/closed-pnl",
Self::ExecutionList => "/v5/execution/list",
Self::AccountWalletBalance => "/v5/account/wallet-balance",
Self::AccountUpgradeToUta => "/v5/account/upgrade-to-uta",
Self::AccountBorrowHistory => "/v5/account/borrow-history",
Self::AccountCollateralInfo => "/v5/account/collateral-info",
Self::AssetCoinGreeks => "/v5/asset/coin-greeks",
Self::AccountInfo => "/v5/account/info",
Self::AccountTransactionLog => "/v5/account/transaction-log",
Self::AccountSetMarginMode => "/v5/account/set-margin-mode",
Self::AccountSetMarginModeDemoApplyMoney => "/v5/account/demo-apply-money",
Self::AccountFeeRate => "/v5/account/fee-rate",
Self::AssetDeliveryRecord => "/v5/asset/delivery-record",
Self::AssetSettlementRecord => "/v5/asset/settlement-record",
Self::AssetTransferInterTransfer => "/v5/asset/transfer/inter-transfer",
Self::AssetTransferQueryInterTransferList => {
"/v5/asset/transfer/query-inter-transfer-list"
}
Self::AssetTransferSaveTransferSubMember => {
"/v5/asset/transfer/save-transfer-sub-member"
}
Self::AssetTransferUniversalTransfer => "/v5/asset/transfer/universal-transfer",
Self::AssetTransferQueryUniversalTransferList => {
"/v5/asset/transfer/query-universal-transfer-list"
}
Self::AssetTransferQueryTransferCoinList => {
"/v5/asset/transfer/query-transfer-coin-list"
}
Self::AssetTransferQuerySubMemberList => "/v5/asset/transfer/query-sub-member-list",
Self::AssetTransferQueryAccountCoinBalance => {
"/v5/asset/transfer/query-account-coin-balance"
}
Self::AssetTransferQueryAssetInfo => "/v5/asset/transfer/query-asset-info",
Self::AssetDepositQueryAllowedList => "/v5/asset/deposit/query-allowed-list",
Self::AssetDepositQueryRecord => "/v5/asset/deposit/query-record",
Self::AssetDepositQuerySubMemberRecord => "/v5/asset/deposit/query-sub-member-record",
Self::AssetWithdrawQueryRecord => "/v5/asset/withdraw/query-record",
Self::AssetCoinQueryInfo => "/v5/asset/coin/query-info",
Self::AssetWithdrawCreate => "/v5/asset/withdraw/create",
Self::AssetWithdrawCancel => "/v5/asset/withdraw/cancel",
Self::AssetDepositQueryAddress => "/v5/asset/deposit/query-address",
Self::AssetDepositQuerySubMemberAddress => "/v5/asset/deposit/query-sub-member-address",
Self::AssetExchangeOrderRecord => "/v5/asset/exchange/order-record",
Self::UserQueryApi => "/v5/user/query-api",
Self::SpotLeverTokenInfo => "/v5/spot-lever-token/info",
Self::SpotLeverTokenReference => "/v5/spot-lever-token/reference",
Self::SpotLeverTokenPurchase => "/v5/spot-lever-token/purchase",
Self::SpotLeverTokenRedeem => "/v5/spot-lever-token/redeem",
Self::SpotLeverTokenOrderRecord => "/v5/spot-lever-token/order-record",
Self::SpotMarginTradeSwitchMode => "/v5/spot-margin-trade/switch-mode",
Self::SpotMarginTradeSetLeverage => "/v5/spot-margin-trade/set-leverage",
Self::SpotMarginTradeSetPledgeToken => "/v5/spot-margin-trade/set-pledge-token",
Self::PublicSpot => "/v5/public/spot",
Self::PublicLinear => "/v5/public/linear",
Self::PublicInverse => "/v5/public/inverse",
Self::PublicOption => "/v5/public/option",
Self::Private => "/v5/private",
Self::Trade => "/v5/trade",
};
write!(f, "{s}")
}
}