BybitHttpInnerClient

Struct BybitHttpInnerClient 

Source
pub struct BybitHttpInnerClient { /* private fields */ }
Expand description

Inner HTTP client implementation containing the actual HTTP logic.

Implementations§

Source§

impl BybitHttpInnerClient

Source

pub fn cancel_all_requests(&self)

Cancel all pending HTTP requests.

Source

pub fn cancellation_token(&self) -> &CancellationToken

Get the cancellation token for this client.

Source

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.

Source

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.

Source

pub async fn http_get_server_time( &self, ) -> Result<BybitServerTimeResponse, BybitHttpError>

Fetches the current server time from Bybit.

§Errors

Returns an error if the request fails or the response cannot be parsed.

§References
Source

pub async fn http_get_instruments<T: DeserializeOwned>( &self, params: &BybitInstrumentsInfoParams, ) -> Result<T, BybitHttpError>

Fetches instrument information from Bybit for a given product category.

§Errors

Returns an error if the request fails or the response cannot be parsed.

§References
Source

pub async fn http_get_instruments_spot( &self, params: &BybitInstrumentsInfoParams, ) -> Result<BybitInstrumentSpotResponse, BybitHttpError>

Fetches spot instrument information from Bybit.

§Errors

Returns an error if the request fails or the response cannot be parsed.

§References
Source

pub async fn http_get_instruments_linear( &self, params: &BybitInstrumentsInfoParams, ) -> Result<BybitInstrumentLinearResponse, BybitHttpError>

Fetches linear instrument information from Bybit.

§Errors

Returns an error if the request fails or the response cannot be parsed.

§References
Source

pub async fn http_get_instruments_inverse( &self, params: &BybitInstrumentsInfoParams, ) -> Result<BybitInstrumentInverseResponse, BybitHttpError>

Fetches inverse instrument information from Bybit.

§Errors

Returns an error if the request fails or the response cannot be parsed.

§References
Source

pub async fn http_get_instruments_option( &self, params: &BybitInstrumentsInfoParams, ) -> Result<BybitInstrumentOptionResponse, BybitHttpError>

Fetches option instrument information from Bybit.

§Errors

Returns an error if the request fails or the response cannot be parsed.

§References
Source

pub async fn http_get_klines( &self, params: &BybitKlinesParams, ) -> Result<BybitKlinesResponse, BybitHttpError>

Fetches kline/candlestick data from Bybit.

§Errors

Returns an error if the request fails or the response cannot be parsed.

§References
Source

pub async fn http_get_recent_trades( &self, params: &BybitTradesParams, ) -> Result<BybitTradesResponse, BybitHttpError>

Fetches recent trades from Bybit.

§Errors

Returns an error if the request fails or the response cannot be parsed.

§References
Source

pub async fn http_get_open_orders( &self, category: BybitProductType, symbol: Option<&str>, ) -> Result<BybitOpenOrdersResponse, BybitHttpError>

Fetches open orders (requires authentication).

§Errors

Returns an error if the request fails or the response cannot be parsed.

§References
Source

pub async fn http_place_order( &self, request: &Value, ) -> Result<BybitPlaceOrderResponse, BybitHttpError>

Places a new order (requires authentication).

§Errors

Returns an error if the request fails or the response cannot be parsed.

§References
Source

pub async fn http_get_wallet_balance( &self, params: &BybitWalletBalanceParams, ) -> Result<BybitWalletBalanceResponse, BybitHttpError>

Fetches wallet balance (requires authentication).

§Errors

Returns an error if the request fails or the response cannot be parsed.

§References
Source

pub async fn http_get_fee_rate( &self, params: &BybitFeeRateParams, ) -> Result<BybitFeeRateResponse, BybitHttpError>

Fetches trading fee rates for symbols.

§Errors

Returns an error if the request fails or the response cannot be parsed.

§References
Source

pub async fn http_get_tickers<T: DeserializeOwned>( &self, params: &BybitTickersParams, ) -> Result<T, BybitHttpError>

Fetches tickers for market data.

§Errors

Returns an error if the request fails or the response cannot be parsed.

§References
Source

pub async fn http_get_trade_history( &self, params: &BybitTradeHistoryParams, ) -> Result<BybitTradeHistoryResponse, BybitHttpError>

Fetches trade execution history (requires authentication).

§Errors

Returns an error if the request fails or the response cannot be parsed.

§References
Source

pub async fn http_get_positions( &self, params: &BybitPositionListParams, ) -> Result<BybitPositionListResponse, BybitHttpError>

Fetches position information (requires authentication).

§Errors

This function returns an error if:

  • Credentials are missing.
  • The request fails.
  • The API returns an error.
§References
Source

pub fn base_url(&self) -> &str

Returns the base URL used for requests.

Source

pub fn recv_window_ms(&self) -> u64

Returns the configured receive window in milliseconds.

Source

pub fn credential(&self) -> Option<&Credential>

Returns the API credential if configured.

Source

pub fn add_instrument(&self, instrument: InstrumentAny)

Add an instrument to the cache.

§Panics

Panics if the instruments cache mutex is poisoned.

Source

pub fn instrument_from_cache(&self, symbol: &Symbol) -> Result<InstrumentAny>

Get an instrument from the cache.

§Errors

Returns an error if the instrument is not found in the cache.

§Panics

Panics if the instruments cache mutex is poisoned.

Source

pub fn generate_ts_init(&self) -> UnixNanos

Generate a timestamp for initialization.

Source

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.
Source

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.
Source

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.
Source

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.
Source

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.
Source

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.
Source

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

Source

pub async fn request_bars( &self, product_type: BybitProductType, bar_type: BarType, start: Option<i64>, end: Option<i64>, limit: Option<u32>, ) -> Result<Vec<Bar>>

Request bar/kline 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/kline

Source

pub async fn request_fee_rates( &self, product_type: BybitProductType, symbol: Option<String>, base_coin: Option<String>, ) -> Result<Vec<BybitFeeRate>>

Requests trading fee rates for the specified product type and optional filters.

§Errors

Returns an error if:

  • The request fails.
  • Parsing fails.
§References

https://bybit-exchange.github.io/docs/v5/account/fee-rate

Source

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

Source

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.
Source

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>>

Fetches execution history (fills) for the account and returns a list of [FillReport]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/order/execution

Source

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

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for BybitHttpInnerClient

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

impl<T> PolicyExt for T
where T: ?Sized,

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> Ungil for T
where T: Send,