DeribitHttpClient

Struct DeribitHttpClient 

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

High-level Deribit HTTP client with domain-level abstractions.

This client wraps the raw HTTP client and provides methods that use Nautilus domain types. It maintains an instrument cache for efficient lookups.

Implementations§

Source§

impl DeribitHttpClient

Source

pub fn new( base_url: Option<String>, is_testnet: bool, timeout_secs: Option<u64>, max_retries: Option<u32>, retry_delay_ms: Option<u64>, retry_delay_max_ms: Option<u64>, proxy_url: Option<String>, ) -> Result<Self>

Creates a new DeribitHttpClient with default configuration.

§Parameters
  • base_url: Optional custom base URL (for testing)
  • is_testnet: Whether to use the testnet environment
§Errors

Returns an error if the HTTP client cannot be created.

Source

pub fn new_with_env( api_key: Option<String>, api_secret: Option<String>, is_testnet: bool, timeout_secs: Option<u64>, max_retries: Option<u32>, retry_delay_ms: Option<u64>, retry_delay_max_ms: Option<u64>, proxy_url: Option<String>, ) -> Result<Self>

Creates a new DeribitHttpClient with credentials from environment variables.

If api_key or api_secret are not provided, they will be loaded from environment:

  • Mainnet: DERIBIT_API_KEY, DERIBIT_API_SECRET
  • Testnet: DERIBIT_TESTNET_API_KEY, DERIBIT_TESTNET_API_SECRET
§Errors

Returns an error if:

  • The HTTP client cannot be created
  • Credentials are not provided and environment variables are not set
Source

pub async fn request_instruments( &self, currency: DeribitCurrency, kind: Option<DeribitInstrumentKind>, ) -> Result<Vec<InstrumentAny>>

Requests instruments for a specific currency.

§Errors

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

Source

pub async fn request_instrument( &self, instrument_id: InstrumentId, ) -> Result<InstrumentAny>

Requests a specific instrument by its Nautilus instrument ID.

This is a high-level method that fetches the raw instrument data from Deribit and converts it to a Nautilus InstrumentAny type.

§Errors

Returns an error if:

  • The instrument name format is invalid (error code -32602)
  • The instrument doesn’t exist (error code 13020)
  • Network or API errors occur
Source

pub async fn request_account_state( &self, account_id: AccountId, ) -> Result<AccountState>

Requests account state for all currencies.

Fetches account balance and margin information for all currencies from Deribit and converts it to Nautilus AccountState event.

§Errors

Returns an error if:

  • The request fails
  • Currency conversion fails
Source

pub fn cache_instruments(&self, instruments: Vec<InstrumentAny>)

Caches instruments for later retrieval.

Source

pub fn get_instrument(&self, symbol: &Ustr) -> Option<InstrumentAny>

Retrieves a cached instrument by symbol.

Source

pub fn is_cache_initialized(&self) -> bool

Checks if the instrument cache has been initialized.

Trait Implementations§

Source§

impl Debug for DeribitHttpClient

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

§

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

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

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

§

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

Mutably borrows from an owned value. Read more
§

impl<T> From<T> for T

§

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
§

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

§

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

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

§

type Error = Infallible

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

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

Performs the conversion.
§

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

§

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

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

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> Ungil for T
where T: Send,