Skip to main content

DeriveExecutionClientConfig

Struct DeriveExecutionClientConfig 

Source
pub struct DeriveExecutionClientConfig {
Show 22 fields pub account_id: AccountId, pub wallet_address: Option<String>, pub session_key: Option<SecretString>, pub subaccount_id: Option<u64>, pub environment: DeriveEnvironment, pub base_url_rest: Option<String>, pub base_url_ws: Option<String>, pub proxy_url: Option<SecretString>, pub http_timeout_secs: u64, pub max_retries: u32, pub retry_delay_initial_ms: u64, pub retry_delay_max_ms: u64, pub ws_timeout_secs: Option<u64>, pub max_fee_per_contract: Option<Decimal>, pub transport_backend: TransportBackend, pub domain_separator: Option<String>, pub action_typehash: Option<String>, pub trade_module_address: Option<String>, pub signature_expiry_secs: u64, pub market_order_slippage_bps: u32, pub max_matching_requests_per_second: Option<u32>, pub max_per_instrument_matching_requests_per_second: Option<u32>,
}
Expand description

Configuration for the Derive execution client.

Fields§

§account_id: AccountId

Account identifier for the execution client.

§wallet_address: Option<String>

Owner’s EOA or multisig address (X-DeriveWallet). Falls back to DERIVE_WALLET_ADDRESS (or DERIVE_TESTNET_WALLET_ADDRESS on testnet) when unset.

§session_key: Option<SecretString>

secp256k1 session-key private key in hex (with or without 0x prefix). Falls back to DERIVE_SESSION_PRIVATE_KEY (or DERIVE_TESTNET_SESSION_PRIVATE_KEY on testnet) when unset.

§subaccount_id: Option<u64>

Subaccount identifier. Falls back to DERIVE_SUBACCOUNT_ID (or DERIVE_TESTNET_SUBACCOUNT_ID on testnet) when unset.

§environment: DeriveEnvironment

The Derive environment to connect to.

§base_url_rest: Option<String>

Override for the REST API base URL.

§base_url_ws: Option<String>

Override for the WebSocket URL.

§proxy_url: Option<SecretString>

Optional proxy URL for HTTP and WebSocket transports.

§http_timeout_secs: u64

HTTP timeout in seconds.

§max_retries: u32

Maximum number of retry attempts for HTTP requests.

§retry_delay_initial_ms: u64

Initial retry delay in milliseconds.

§retry_delay_max_ms: u64

Maximum retry delay in milliseconds.

§ws_timeout_secs: Option<u64>

Optional per-operation WebSocket timeout in seconds (login, subscribe, reads, writes). When unset, the low-level WS_REQUEST_TIMEOUT applies.

§max_fee_per_contract: Option<Decimal>

Per-contract USDC fee cap signed into every order. Required for execution and must be greater than zero.

§transport_backend: TransportBackend

WebSocket transport backend (defaults to Sockudo when that feature is enabled).

§domain_separator: Option<String>

Override for the EIP-712 domain separator. Falls back to the shipped v3 constant for the configured environment when unset.

§action_typehash: Option<String>

Override for the EIP-712 action typehash. Falls back to the shipped crate::common::consts::ACTION_TYPEHASH when unset.

§trade_module_address: Option<String>

Override for the Trade module contract address. Falls back to the shipped per-environment constant when unset.

§signature_expiry_secs: u64

Signature expiry TTL in seconds for normal orders and replaces (added to the wall clock before signing). Must be greater than the venue minimum (crate::common::consts::MIN_SIGNATURE_TTL, 10s) and at most 120 days.

§market_order_slippage_bps: u32

Slippage bound applied to market orders when deriving a worst-acceptable limit price from the cached top-of-book quote. Expressed in basis points (1 bp = 0.01%). Defaults to 50 bp = 0.5%.

§max_matching_requests_per_second: Option<u32>

Maximum wallet matching requests per second across HTTP, WebSocket, session keys, and subaccounts on the same API host. Defaults to 1 when unset. The first explicit setting for a wallet is shared by all clients; the limiter ignores conflicting later settings. Verify deployed budgets with public/getRateLimits. See https://docs.derive.xyz/rate-limits.

§max_per_instrument_matching_requests_per_second: Option<u32>

Per-wallet/instrument token refill rate for perpetuals, spot, and options. Defaults to 1 token per second; capacity is five times the configured rate. Clients for the same wallet on the same API host share the first explicit setting, independently of the wallet matching allowance. Instrument budgets are absent from public/getRateLimits. See https://docs.derive.xyz/rate-limits.

Implementations§

Source§

impl DeriveExecutionClientConfig

Source

pub fn builder() -> DeriveExecutionClientConfigBuilder

Create an instance of DeriveExecutionClientConfig using the builder syntax

Source§

impl DeriveExecutionClientConfig

Source

pub fn new() -> Self

Source

pub fn has_credentials(&self) -> bool

Returns true when wallet, session-key, and subaccount are all populated in this config. Environment-variable fallbacks documented on the individual fields are resolved at factory-construction time, not here; callers that need a “credentials available anywhere” check should inspect both this method and the relevant env vars.

Source

pub fn validate(&self) -> Result<()>

Validates execution configuration invariants.

§Errors

Returns an error if max_fee_per_contract is missing or not greater than zero.

Source

pub fn rest_url(&self) -> String

Returns the REST API base URL, respecting environment and overrides.

Source

pub fn ws_url(&self) -> String

Returns the WebSocket URL, respecting environment and overrides.

Trait Implementations§

Source§

impl ClientConfig for DeriveExecutionClientConfig

Source§

fn as_any(&self) -> &dyn Any

Return the configuration as a trait object.
Source§

impl Clone for DeriveExecutionClientConfig

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for DeriveExecutionClientConfig

Source§

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

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

impl Default for DeriveExecutionClientConfig

Source§

fn default() -> Self

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

impl DerefToPyAny for DeriveExecutionClientConfig

Source§

impl<'de> Deserialize<'de> for DeriveExecutionClientConfig

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl<'a, 'py> FromPyObject<'a, 'py> for DeriveExecutionClientConfig
where Self: Clone,

Source§

type Error = PyClassGuardError<'a, 'py>

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

fn extract( obj: Borrowed<'a, 'py, PyAny>, ) -> Result<Self, <Self as FromPyObject<'a, 'py>>::Error>

Extracts Self from the bound smart pointer obj. Read more
Source§

impl<'py> IntoPyObject<'py> for DeriveExecutionClientConfig

Source§

type Target = DeriveExecutionClientConfig

The Python output type
Source§

type Output = Bound<'py, <DeriveExecutionClientConfig as IntoPyObject<'py>>::Target>

The smart pointer type to use. Read more
Source§

type Error = PyErr

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

fn into_pyobject( self, py: Python<'py>, ) -> Result<<Self as IntoPyObject<'_>>::Output, <Self as IntoPyObject<'_>>::Error>

Performs the conversion.
Source§

impl PyClass for DeriveExecutionClientConfig

Source§

const NAME: &str = "DeriveExecutionClientConfig"

Name of the class. Read more
Source§

type Frozen = False

Whether the pyclass is frozen. Read more
Source§

impl PyClassImpl for DeriveExecutionClientConfig

Source§

const MODULE: Option<&str>

Module which the class will be associated with. Read more
Source§

const IS_BASETYPE: bool = false

#[pyclass(subclass)]
Source§

const IS_SUBCLASS: bool = false

#[pyclass(extends=…)]
Source§

const IS_MAPPING: bool = false

#[pyclass(mapping)]
Source§

const IS_SEQUENCE: bool = false

#[pyclass(sequence)]
Source§

const IS_IMMUTABLE_TYPE: bool = false

#[pyclass(immutable_type)]
Source§

const RAW_DOC: &'static CStr = /// Configuration for the Derive execution client.

Docstring for the class provided on the struct or enum. Read more
Source§

const DOC: &'static CStr

Fully rendered class doc, including the text_signature if a constructor is defined. Read more
Source§

type Layout = <<DeriveExecutionClientConfig as PyClassImpl>::BaseNativeType as PyClassBaseType>::Layout<DeriveExecutionClientConfig>

Description of how this class is laid out in memory
Source§

type BaseType = PyAny

Base class
Source§

type ThreadChecker = NoopThreadChecker

This handles following two situations: Read more
Source§

type Inventory = Pyo3MethodsInventoryForDeriveExecutionClientConfig

Source§

type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild

Immutable or mutable
Source§

type Dict = PyClassDummySlot

Specify this class has #[pyclass(dict)] or not.
Source§

type WeakRef = PyClassDummySlot

Specify this class has #[pyclass(weakref)] or not.
Source§

type BaseNativeType = PyAny

The closest native ancestor. This is PyAny by default, and when you declare #[pyclass(extends=PyDict)], it’s PyDict.
Source§

fn items_iter() -> PyClassItemsIter

Source§

fn lazy_type_object() -> &'static LazyTypeObject<Self>

§

fn dict_offset() -> Option<PyObjectOffset>

Used to provide the dictoffset slot (equivalent to tp_dictoffset)
§

fn weaklist_offset() -> Option<PyObjectOffset>

Used to provide the weaklistoffset slot (equivalent to tp_weaklistoffset
Source§

impl PyClassNewTextSignature for DeriveExecutionClientConfig

Source§

const TEXT_SIGNATURE: &'static str = "(account_id=None, wallet_address=None, session_key=None, subaccount_id=None, base_url_rest=None, base_url_ws=None, proxy_url=None, environment=None, http_timeout_secs=None, max_retries=None, retry_delay_initial_ms=None, retry_delay_max_ms=None, ws_timeout_secs=None, max_fee_per_contract=None, domain_separator=None, action_typehash=None, trade_module_address=None, signature_expiry_secs=None, market_order_slippage_bps=None, max_matching_requests_per_second=None, max_per_instrument_matching_requests_per_second=None, transport_backend=None)"

Source§

impl PyStubType for DeriveExecutionClientConfig

Source§

fn type_output() -> TypeInfo

The type to be used in the output signature, i.e. return type of the Python function or methods.
§

fn type_input() -> TypeInfo

The type to be used in the input signature, i.e. the arguments of the Python function or methods. Read more
Source§

impl PyTypeInfo for DeriveExecutionClientConfig

Source§

const NAME: &str = <Self as ::pyo3::PyClass>::NAME

👎Deprecated since 0.28.0:

prefer using ::type_object(py).name() to get the correct runtime value

Class name.
Source§

const MODULE: Option<&str> = <Self as ::pyo3::impl_::pyclass::PyClassImpl>::MODULE

👎Deprecated since 0.28.0:

prefer using ::type_object(py).module() to get the correct runtime value

Module name, if any.
Source§

fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject

Returns the PyTypeObject instance for this type.
§

fn type_object(py: Python<'_>) -> Bound<'_, PyType>

Returns the safe abstraction over the type object.
§

fn is_type_of(object: &Bound<'_, PyAny>) -> bool

Checks if object is an instance of this type or a subclass of this type.
§

fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool

Checks if object is an instance of this type.
Source§

impl Serialize for DeriveExecutionClientConfig

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,

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
§

impl<'de, T> BorrowedRpcObject<'de> for T
where T: RpcBorrow<'de> + RpcSend,

§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<'py, T> FromPyObjectOwned<'py> for T
where T: for<'a> FromPyObject<'a, 'py>,

§

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<'py, T> IntoPyObjectExt<'py> for T
where T: IntoPyObject<'py>,

§

fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>

Converts self into an owned Python object, dropping type information.
§

fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>

Converts self into an owned Python object, dropping type information and unbinding it from the 'py lifetime.
§

fn into_pyobject_or_pyerr(self, py: Python<'py>) -> Result<Self::Output, PyErr>

Converts self into a Python object. Read more
§

impl<'py, T> IntoPyObjectNautilusExt<'py> for T
where T: IntoPyObjectExt<'py>,

§

fn into_py_any_unwrap(self, py: Python<'py>) -> Py<PyAny>
where Self: IntoPyObject<'py, Error = !>,

Converts self into a [Py<PyAny>] when the underlying conversion is infallible.
§

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

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + 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: Sized + 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
§

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

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + 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: Sized + 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
§

impl<T> PyErrArguments for T
where T: for<'py> IntoPyObject<'py> + Send + Sync,

§

fn arguments(self, py: Python<'_>) -> Py<PyAny>

Arguments for exception
§

impl<T> PyTypeCheck for T
where T: PyTypeInfo,

§

fn type_check(object: &Bound<'_, PyAny>) -> bool

Checks if object is an instance of Self, which may include a subtype. Read more
§

fn classinfo_object(py: Python<'_>) -> Bound<'_, PyAny>

Returns the expected type as a possible argument for the isinstance and issubclass function. Read more
§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

§

impl<'de, T> RpcBorrow<'de> for T
where T: Deserialize<'de> + Debug + Send + Sync + Unpin,

§

impl<T> RpcObject for T
where T: RpcSend + RpcRecv,

§

impl<T> RpcRecv for T
where T: DeserializeOwned + Debug + Send + Sync + Unpin + 'static,

§

impl<T> RpcSend for T
where T: Serialize + Clone + Debug + Send + Sync + Unpin,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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

§

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