pub struct BybitHttpInnerClient { /* private fields */ }Expand description
Inner HTTP client implementation containing the actual HTTP logic.
Implementations§
Source§impl BybitHttpInnerClient
impl BybitHttpInnerClient
Sourcepub fn cancel_all_requests(&self)
pub fn cancel_all_requests(&self)
Cancel all pending HTTP requests.
Sourcepub fn cancellation_token(&self) -> &CancellationToken
pub fn cancellation_token(&self) -> &CancellationToken
Get the cancellation token for this client.
Sourcepub fn new(
base_url: Option<String>,
timeout_secs: Option<u64>,
max_retries: Option<u32>,
retry_delay_ms: Option<u64>,
retry_delay_max_ms: Option<u64>,
) -> Result<Self, BybitHttpError>
pub fn new( base_url: Option<String>, timeout_secs: Option<u64>, max_retries: Option<u32>, retry_delay_ms: Option<u64>, retry_delay_max_ms: Option<u64>, ) -> Result<Self, BybitHttpError>
Creates a new BybitHttpInnerClient using the default Bybit HTTP URL.
§Errors
Returns an error if the retry manager cannot be created.
Sourcepub fn with_credentials(
api_key: String,
api_secret: String,
base_url: Option<String>,
timeout_secs: Option<u64>,
max_retries: Option<u32>,
retry_delay_ms: Option<u64>,
retry_delay_max_ms: Option<u64>,
) -> Result<Self, BybitHttpError>
pub fn with_credentials( api_key: String, api_secret: String, base_url: Option<String>, timeout_secs: Option<u64>, max_retries: Option<u32>, retry_delay_ms: Option<u64>, retry_delay_max_ms: Option<u64>, ) -> Result<Self, BybitHttpError>
Creates a new BybitHttpInnerClient configured with credentials.
§Errors
Returns an error if the retry manager cannot be created.
Sourcepub async fn http_get_server_time(
&self,
) -> Result<BybitServerTimeResponse, BybitHttpError>
pub async fn http_get_server_time( &self, ) -> Result<BybitServerTimeResponse, BybitHttpError>
Sourcepub async fn http_get_instruments<T: DeserializeOwned>(
&self,
params: &BybitInstrumentsInfoParams,
) -> Result<T, BybitHttpError>
pub async fn http_get_instruments<T: DeserializeOwned>( &self, params: &BybitInstrumentsInfoParams, ) -> Result<T, BybitHttpError>
Sourcepub async fn http_get_instruments_spot(
&self,
params: &BybitInstrumentsInfoParams,
) -> Result<BybitInstrumentSpotResponse, BybitHttpError>
pub async fn http_get_instruments_spot( &self, params: &BybitInstrumentsInfoParams, ) -> Result<BybitInstrumentSpotResponse, BybitHttpError>
Sourcepub async fn http_get_instruments_linear(
&self,
params: &BybitInstrumentsInfoParams,
) -> Result<BybitInstrumentLinearResponse, BybitHttpError>
pub async fn http_get_instruments_linear( &self, params: &BybitInstrumentsInfoParams, ) -> Result<BybitInstrumentLinearResponse, BybitHttpError>
Sourcepub async fn http_get_instruments_inverse(
&self,
params: &BybitInstrumentsInfoParams,
) -> Result<BybitInstrumentInverseResponse, BybitHttpError>
pub async fn http_get_instruments_inverse( &self, params: &BybitInstrumentsInfoParams, ) -> Result<BybitInstrumentInverseResponse, BybitHttpError>
Sourcepub async fn http_get_instruments_option(
&self,
params: &BybitInstrumentsInfoParams,
) -> Result<BybitInstrumentOptionResponse, BybitHttpError>
pub async fn http_get_instruments_option( &self, params: &BybitInstrumentsInfoParams, ) -> Result<BybitInstrumentOptionResponse, BybitHttpError>
Sourcepub async fn http_get_klines(
&self,
params: &BybitKlinesParams,
) -> Result<BybitKlinesResponse, BybitHttpError>
pub async fn http_get_klines( &self, params: &BybitKlinesParams, ) -> Result<BybitKlinesResponse, BybitHttpError>
Sourcepub async fn http_get_recent_trades(
&self,
params: &BybitTradesParams,
) -> Result<BybitTradesResponse, BybitHttpError>
pub async fn http_get_recent_trades( &self, params: &BybitTradesParams, ) -> Result<BybitTradesResponse, BybitHttpError>
Sourcepub async fn http_get_open_orders(
&self,
category: BybitProductType,
symbol: Option<&str>,
) -> Result<BybitOpenOrdersResponse, BybitHttpError>
pub async fn http_get_open_orders( &self, category: BybitProductType, symbol: Option<&str>, ) -> Result<BybitOpenOrdersResponse, BybitHttpError>
Sourcepub async fn http_place_order(
&self,
request: &Value,
) -> Result<BybitPlaceOrderResponse, BybitHttpError>
pub async fn http_place_order( &self, request: &Value, ) -> Result<BybitPlaceOrderResponse, BybitHttpError>
Sourcepub async fn http_get_wallet_balance(
&self,
params: &BybitWalletBalanceParams,
) -> Result<BybitWalletBalanceResponse, BybitHttpError>
pub async fn http_get_wallet_balance( &self, params: &BybitWalletBalanceParams, ) -> Result<BybitWalletBalanceResponse, BybitHttpError>
Sourcepub async fn http_get_fee_rate(
&self,
params: &BybitFeeRateParams,
) -> Result<BybitFeeRateResponse, BybitHttpError>
pub async fn http_get_fee_rate( &self, params: &BybitFeeRateParams, ) -> Result<BybitFeeRateResponse, BybitHttpError>
Sourcepub async fn http_get_tickers<T: DeserializeOwned>(
&self,
params: &BybitTickersParams,
) -> Result<T, BybitHttpError>
pub async fn http_get_tickers<T: DeserializeOwned>( &self, params: &BybitTickersParams, ) -> Result<T, BybitHttpError>
Sourcepub async fn http_get_trade_history(
&self,
params: &BybitTradeHistoryParams,
) -> Result<BybitTradeHistoryResponse, BybitHttpError>
pub async fn http_get_trade_history( &self, params: &BybitTradeHistoryParams, ) -> Result<BybitTradeHistoryResponse, BybitHttpError>
Sourcepub async fn http_get_positions(
&self,
params: &BybitPositionListParams,
) -> Result<BybitPositionListResponse, BybitHttpError>
pub async fn http_get_positions( &self, params: &BybitPositionListParams, ) -> Result<BybitPositionListResponse, BybitHttpError>
Sourcepub fn recv_window_ms(&self) -> u64
pub fn recv_window_ms(&self) -> u64
Returns the configured receive window in milliseconds.
Sourcepub fn credential(&self) -> Option<&Credential>
pub fn credential(&self) -> Option<&Credential>
Returns the API credential if configured.
Sourcepub fn add_instrument(&self, instrument: InstrumentAny)
pub fn add_instrument(&self, instrument: InstrumentAny)
Sourcepub fn instrument_from_cache(&self, symbol: &Symbol) -> Result<InstrumentAny>
pub fn instrument_from_cache(&self, symbol: &Symbol) -> Result<InstrumentAny>
Sourcepub fn generate_ts_init(&self) -> UnixNanos
pub fn generate_ts_init(&self) -> UnixNanos
Generate a timestamp for initialization.
Sourcepub async fn submit_order(
&self,
product_type: BybitProductType,
instrument_id: InstrumentId,
client_order_id: ClientOrderId,
order_side: OrderSide,
order_type: OrderType,
quantity: Quantity,
time_in_force: TimeInForce,
price: Option<Price>,
reduce_only: bool,
) -> Result<OrderStatusReport>
pub async fn submit_order( &self, product_type: BybitProductType, instrument_id: InstrumentId, client_order_id: ClientOrderId, order_side: OrderSide, order_type: OrderType, quantity: Quantity, time_in_force: TimeInForce, price: Option<Price>, reduce_only: bool, ) -> Result<OrderStatusReport>
Submit a new order.
§Errors
Returns an error if:
- Credentials are missing.
- The request fails.
- Order validation fails.
- The order is rejected.
- The API returns an error.
Sourcepub async fn cancel_order(
&self,
product_type: BybitProductType,
instrument_id: InstrumentId,
client_order_id: Option<ClientOrderId>,
venue_order_id: Option<VenueOrderId>,
) -> Result<OrderStatusReport>
pub async fn cancel_order( &self, product_type: BybitProductType, instrument_id: InstrumentId, client_order_id: Option<ClientOrderId>, venue_order_id: Option<VenueOrderId>, ) -> Result<OrderStatusReport>
Cancel an order.
§Errors
Returns an error if:
- Credentials are missing.
- The request fails.
- The order doesn’t exist.
- The API returns an error.
Sourcepub async fn cancel_all_orders(
&self,
product_type: BybitProductType,
instrument_id: InstrumentId,
) -> Result<Vec<OrderStatusReport>>
pub async fn cancel_all_orders( &self, product_type: BybitProductType, instrument_id: InstrumentId, ) -> Result<Vec<OrderStatusReport>>
Cancel all orders for an instrument.
§Errors
Returns an error if:
- Credentials are missing.
- The request fails.
- The API returns an error.
Sourcepub async fn modify_order(
&self,
product_type: BybitProductType,
instrument_id: InstrumentId,
client_order_id: Option<ClientOrderId>,
venue_order_id: Option<VenueOrderId>,
quantity: Option<Quantity>,
price: Option<Price>,
) -> Result<OrderStatusReport>
pub async fn modify_order( &self, product_type: BybitProductType, instrument_id: InstrumentId, client_order_id: Option<ClientOrderId>, venue_order_id: Option<VenueOrderId>, quantity: Option<Quantity>, price: Option<Price>, ) -> Result<OrderStatusReport>
Modify an existing order.
§Errors
Returns an error if:
- Credentials are missing.
- The request fails.
- The order doesn’t exist.
- The order is already closed.
- The API returns an error.
Sourcepub async fn query_order(
&self,
account_id: AccountId,
product_type: BybitProductType,
instrument_id: InstrumentId,
client_order_id: Option<ClientOrderId>,
venue_order_id: Option<VenueOrderId>,
) -> Result<Option<OrderStatusReport>>
pub async fn query_order( &self, account_id: AccountId, product_type: BybitProductType, instrument_id: InstrumentId, client_order_id: Option<ClientOrderId>, venue_order_id: Option<VenueOrderId>, ) -> Result<Option<OrderStatusReport>>
Query a single order by client order ID or venue order ID.
§Errors
Returns an error if:
- Credentials are missing.
- The request fails.
- The API returns an error.
Sourcepub async fn request_instruments(
&self,
product_type: BybitProductType,
symbol: Option<String>,
) -> Result<Vec<InstrumentAny>>
pub async fn request_instruments( &self, product_type: BybitProductType, symbol: Option<String>, ) -> Result<Vec<InstrumentAny>>
Request instruments for a given product type.
§Errors
Returns an error if:
- The request fails.
- Parsing fails.
Sourcepub async fn request_trades(
&self,
product_type: BybitProductType,
instrument_id: InstrumentId,
limit: Option<u32>,
) -> Result<Vec<TradeTick>>
pub async fn request_trades( &self, product_type: BybitProductType, instrument_id: InstrumentId, limit: Option<u32>, ) -> Result<Vec<TradeTick>>
Request trade tick history for a given symbol.
§Errors
Returns an error if:
- The instrument is not found in cache.
- The request fails.
- Parsing fails.
§References
https://bybit-exchange.github.io/docs/v5/market/recent-trade
Sourcepub async fn request_bars(
&self,
product_type: BybitProductType,
bar_type: BarType,
start: Option<i64>,
end: Option<i64>,
limit: Option<u32>,
) -> Result<Vec<Bar>>
pub async fn request_bars( &self, product_type: BybitProductType, bar_type: BarType, start: Option<i64>, end: Option<i64>, limit: Option<u32>, ) -> Result<Vec<Bar>>
Sourcepub async fn request_fee_rates(
&self,
product_type: BybitProductType,
symbol: Option<String>,
base_coin: Option<String>,
) -> Result<Vec<BybitFeeRate>>
pub async fn request_fee_rates( &self, product_type: BybitProductType, symbol: Option<String>, base_coin: Option<String>, ) -> Result<Vec<BybitFeeRate>>
Sourcepub async fn request_account_state(
&self,
account_type: BybitAccountType,
account_id: AccountId,
) -> Result<AccountState>
pub async fn request_account_state( &self, account_type: BybitAccountType, account_id: AccountId, ) -> Result<AccountState>
Requests the current account state for the specified account type.
§Errors
Returns an error if:
- The request fails.
- Parsing fails.
§References
https://bybit-exchange.github.io/docs/v5/account/wallet-balance
Sourcepub async fn request_order_status_reports(
&self,
account_id: AccountId,
product_type: BybitProductType,
instrument_id: Option<InstrumentId>,
open_only: bool,
limit: Option<u32>,
) -> Result<Vec<OrderStatusReport>>
pub async fn request_order_status_reports( &self, account_id: AccountId, product_type: BybitProductType, instrument_id: Option<InstrumentId>, open_only: bool, limit: Option<u32>, ) -> Result<Vec<OrderStatusReport>>
Request multiple order status reports.
§Errors
Returns an error if:
- Credentials are missing.
- The request fails.
- The API returns an error.
Sourcepub async fn request_fill_reports(
&self,
account_id: AccountId,
product_type: BybitProductType,
instrument_id: Option<InstrumentId>,
start: Option<i64>,
end: Option<i64>,
limit: Option<u32>,
) -> Result<Vec<FillReport>>
pub async fn request_fill_reports( &self, account_id: AccountId, product_type: BybitProductType, instrument_id: Option<InstrumentId>, start: Option<i64>, end: Option<i64>, limit: Option<u32>, ) -> Result<Vec<FillReport>>
Sourcepub async fn request_position_status_reports(
&self,
account_id: AccountId,
product_type: BybitProductType,
instrument_id: Option<InstrumentId>,
) -> Result<Vec<PositionStatusReport>>
pub async fn request_position_status_reports( &self, account_id: AccountId, product_type: BybitProductType, instrument_id: Option<InstrumentId>, ) -> Result<Vec<PositionStatusReport>>
Fetches position information for the account and returns a list of [PositionStatusReport]s.
§Errors
This function returns an error if:
- Required instruments are not cached.
- The instrument is not found in cache.
- The request fails.
- Parsing fails.
§References
https://bybit-exchange.github.io/docs/v5/position/position-info
Trait Implementations§
Source§impl Debug for BybitHttpInnerClient
impl Debug for BybitHttpInnerClient
Auto Trait Implementations§
impl Freeze for BybitHttpInnerClient
impl !RefUnwindSafe for BybitHttpInnerClient
impl Send for BybitHttpInnerClient
impl Sync for BybitHttpInnerClient
impl Unpin for BybitHttpInnerClient
impl !UnwindSafe for BybitHttpInnerClient
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more