pub struct HyperliquidRawHttpClient { /* private fields */ }Expand description
Provides a raw HTTP client for low-level Hyperliquid REST API operations.
This client handles HTTP infrastructure, request signing, and raw API calls that closely match Hyperliquid endpoint specifications.
Implementations§
Source§impl HyperliquidRawHttpClient
impl HyperliquidRawHttpClient
Sourcepub fn new(
is_testnet: bool,
timeout_secs: Option<u64>,
proxy_url: Option<String>,
) -> Result<Self, HttpClientError>
pub fn new( is_testnet: bool, timeout_secs: Option<u64>, proxy_url: Option<String>, ) -> Result<Self, HttpClientError>
Creates a new HyperliquidRawHttpClient for public endpoints only.
§Errors
Returns an error if the HTTP client cannot be created.
Sourcepub fn with_credentials(
secrets: &Secrets,
timeout_secs: Option<u64>,
proxy_url: Option<String>,
) -> Result<Self, HttpClientError>
pub fn with_credentials( secrets: &Secrets, timeout_secs: Option<u64>, proxy_url: Option<String>, ) -> Result<Self, HttpClientError>
Creates a new HyperliquidRawHttpClient configured with credentials
for authenticated requests.
§Errors
Returns an error if the HTTP client cannot be created.
Sourcepub fn from_env() -> Result<Self>
pub fn from_env() -> Result<Self>
Creates an authenticated client from environment variables.
§Errors
Returns Error::Auth if required environment variables are not set.
Sourcepub fn from_credentials(
private_key: &str,
vault_address: Option<&str>,
is_testnet: bool,
timeout_secs: Option<u64>,
proxy_url: Option<String>,
) -> Result<Self>
pub fn from_credentials( private_key: &str, vault_address: Option<&str>, is_testnet: bool, timeout_secs: Option<u64>, proxy_url: Option<String>, ) -> Result<Self>
Creates a new HyperliquidRawHttpClient configured with explicit credentials.
§Errors
Returns Error::Auth if the private key is invalid or cannot be parsed.
Sourcepub fn with_rate_limits(self) -> Self
pub fn with_rate_limits(self) -> Self
Configure rate limiting parameters (chainable).
Sourcepub fn is_testnet(&self) -> bool
pub fn is_testnet(&self) -> bool
Returns whether this client is configured for testnet.
Sourcepub fn get_user_address(&self) -> Result<String>
pub fn get_user_address(&self) -> Result<String>
Gets the user address derived from the private key (if client has credentials).
§Errors
Returns Error::Auth if the client has no signer configured.
Sourcepub async fn info_meta(&self) -> Result<HyperliquidMeta>
pub async fn info_meta(&self) -> Result<HyperliquidMeta>
Get metadata about available markets.
Sourcepub async fn get_spot_meta(&self) -> Result<SpotMeta>
pub async fn get_spot_meta(&self) -> Result<SpotMeta>
Get complete spot metadata (tokens and pairs).
Sourcepub async fn get_perp_meta_and_ctxs(&self) -> Result<PerpMetaAndCtxs>
pub async fn get_perp_meta_and_ctxs(&self) -> Result<PerpMetaAndCtxs>
Get perpetuals metadata with asset contexts (for price precision refinement).
Sourcepub async fn get_spot_meta_and_ctxs(&self) -> Result<SpotMetaAndCtxs>
pub async fn get_spot_meta_and_ctxs(&self) -> Result<SpotMetaAndCtxs>
Get spot metadata with asset contexts (for price precision refinement).
Sourcepub async fn info_l2_book(&self, coin: &str) -> Result<HyperliquidL2Book>
pub async fn info_l2_book(&self, coin: &str) -> Result<HyperliquidL2Book>
Get L2 order book for a coin.
Sourcepub async fn info_user_fills(&self, user: &str) -> Result<HyperliquidFills>
pub async fn info_user_fills(&self, user: &str) -> Result<HyperliquidFills>
Get user fills (trading history).
Sourcepub async fn info_order_status(
&self,
user: &str,
oid: u64,
) -> Result<HyperliquidOrderStatus>
pub async fn info_order_status( &self, user: &str, oid: u64, ) -> Result<HyperliquidOrderStatus>
Get order status for a user.
Sourcepub async fn info_open_orders(&self, user: &str) -> Result<Value>
pub async fn info_open_orders(&self, user: &str) -> Result<Value>
Get all open orders for a user.
Sourcepub async fn info_frontend_open_orders(&self, user: &str) -> Result<Value>
pub async fn info_frontend_open_orders(&self, user: &str) -> Result<Value>
Get frontend open orders (includes more detail) for a user.
Sourcepub async fn info_clearinghouse_state(&self, user: &str) -> Result<Value>
pub async fn info_clearinghouse_state(&self, user: &str) -> Result<Value>
Get clearinghouse state (balances, positions, margin) for a user.
Sourcepub async fn info_candle_snapshot(
&self,
coin: &str,
interval: HyperliquidBarInterval,
start_time: u64,
end_time: u64,
) -> Result<HyperliquidCandleSnapshot>
pub async fn info_candle_snapshot( &self, coin: &str, interval: HyperliquidBarInterval, start_time: u64, end_time: u64, ) -> Result<HyperliquidCandleSnapshot>
Get candle/bar data for a coin.
Sourcepub async fn send_info_request_raw(
&self,
request: &InfoRequest,
) -> Result<Value>
pub async fn send_info_request_raw( &self, request: &InfoRequest, ) -> Result<Value>
Generic info request method that returns raw JSON (useful for new endpoints and testing).
Sourcepub async fn post_action(
&self,
action: &ExchangeAction,
) -> Result<HyperliquidExchangeResponse>
pub async fn post_action( &self, action: &ExchangeAction, ) -> Result<HyperliquidExchangeResponse>
Send a signed action to the exchange.
Sourcepub async fn post_action_exec(
&self,
action: &HyperliquidExecAction,
) -> Result<HyperliquidExchangeResponse>
pub async fn post_action_exec( &self, action: &HyperliquidExecAction, ) -> Result<HyperliquidExchangeResponse>
Send a signed action to the exchange using the typed HyperliquidExecAction enum.
This is the preferred method for placing orders as it uses properly typed structures that match Hyperliquid’s API expectations exactly.
Sourcepub async fn rest_limiter_snapshot(&self) -> RateLimitSnapshot
pub async fn rest_limiter_snapshot(&self) -> RateLimitSnapshot
Submit a single order to the Hyperliquid exchange.
Trait Implementations§
Source§impl Clone for HyperliquidRawHttpClient
impl Clone for HyperliquidRawHttpClient
Source§fn clone(&self) -> HyperliquidRawHttpClient
fn clone(&self) -> HyperliquidRawHttpClient
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for HyperliquidRawHttpClient
impl Debug for HyperliquidRawHttpClient
Source§impl<'py> IntoPyObject<'py> for HyperliquidRawHttpClient
impl<'py> IntoPyObject<'py> for HyperliquidRawHttpClient
Source§type Target = HyperliquidRawHttpClient
type Target = HyperliquidRawHttpClient
Source§type Output = Bound<'py, <HyperliquidRawHttpClient as IntoPyObject<'py>>::Target>
type Output = Bound<'py, <HyperliquidRawHttpClient as IntoPyObject<'py>>::Target>
Source§fn into_pyobject(
self,
py: Python<'py>,
) -> Result<<Self as IntoPyObject<'_>>::Output, <Self as IntoPyObject<'_>>::Error>
fn into_pyobject( self, py: Python<'py>, ) -> Result<<Self as IntoPyObject<'_>>::Output, <Self as IntoPyObject<'_>>::Error>
Source§impl PyClass for HyperliquidRawHttpClient
impl PyClass for HyperliquidRawHttpClient
Source§impl PyClassImpl for HyperliquidRawHttpClient
impl PyClassImpl for HyperliquidRawHttpClient
Source§const IS_BASETYPE: bool = false
const IS_BASETYPE: bool = false
Source§const IS_SUBCLASS: bool = false
const IS_SUBCLASS: bool = false
Source§const IS_MAPPING: bool = false
const IS_MAPPING: bool = false
Source§const IS_SEQUENCE: bool = false
const IS_SEQUENCE: bool = false
Source§const IS_IMMUTABLE_TYPE: bool = false
const IS_IMMUTABLE_TYPE: bool = false
Source§const RAW_DOC: &'static CStr = /// Provides a raw HTTP client for low-level Hyperliquid REST API operations.
///
/// This client handles HTTP infrastructure, request signing, and raw API calls
/// that closely match Hyperliquid endpoint specifications.
const RAW_DOC: &'static CStr = /// Provides a raw HTTP client for low-level Hyperliquid REST API operations. /// /// This client handles HTTP infrastructure, request signing, and raw API calls /// that closely match Hyperliquid endpoint specifications.
Source§const DOC: &'static CStr
const DOC: &'static CStr
text_signature if a constructor is defined. Read moreSource§type ThreadChecker = SendablePyClass<HyperliquidRawHttpClient>
type ThreadChecker = SendablePyClass<HyperliquidRawHttpClient>
Source§type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
Source§type BaseNativeType = PyAny
type BaseNativeType = PyAny
PyAny by default, and when you declare
#[pyclass(extends=PyDict)], it’s PyDict.fn items_iter() -> PyClassItemsIter
fn lazy_type_object() -> &'static LazyTypeObject<Self>
fn dict_offset() -> Option<isize>
fn weaklist_offset() -> Option<isize>
Source§impl PyTypeInfo for HyperliquidRawHttpClient
impl PyTypeInfo for HyperliquidRawHttpClient
Source§fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
§fn type_object(py: Python<'_>) -> Bound<'_, PyType>
fn type_object(py: Python<'_>) -> Bound<'_, PyType>
§fn is_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_type_of(object: &Bound<'_, PyAny>) -> bool
object is an instance of this type or a subclass of this type.§fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
object is an instance of this type.impl DerefToPyAny for HyperliquidRawHttpClient
impl ExtractPyClassWithClone for HyperliquidRawHttpClient
Auto Trait Implementations§
impl Freeze for HyperliquidRawHttpClient
impl !RefUnwindSafe for HyperliquidRawHttpClient
impl Send for HyperliquidRawHttpClient
impl Sync for HyperliquidRawHttpClient
impl Unpin for HyperliquidRawHttpClient
impl !UnwindSafe for HyperliquidRawHttpClient
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§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§impl<'py, T> IntoPyObjectExt<'py> for Twhere
T: IntoPyObject<'py>,
impl<'py, T> IntoPyObjectExt<'py> for Twhere
T: IntoPyObject<'py>,
§fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>
fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>
self into an owned Python object, dropping type information.§fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>
fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>
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>
fn into_pyobject_or_pyerr(self, py: Python<'py>) -> Result<Self::Output, PyErr>
self into a Python object. Read moreSource§impl<'py, T> IntoPyObjectNautilusExt<'py> for Twhere
T: IntoPyObjectExt<'py>,
impl<'py, T> IntoPyObjectNautilusExt<'py> for Twhere
T: IntoPyObjectExt<'py>,
Source§fn into_py_any_unwrap(self, py: Python<'py>) -> Py<PyAny>
fn into_py_any_unwrap(self, py: Python<'py>) -> Py<PyAny>
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> PyErrArguments for T
impl<T> PyErrArguments for T
§impl<T> PyTypeCheck for Twhere
T: PyTypeInfo,
impl<T> PyTypeCheck for Twhere
T: PyTypeInfo,
§const NAME: &'static str = T::NAME
const NAME: &'static str = T::NAME
§fn type_check(object: &Bound<'_, PyAny>) -> bool
fn type_check(object: &Bound<'_, PyAny>) -> bool
§fn classinfo_object(py: Python<'_>) -> Bound<'_, PyAny>
fn classinfo_object(py: Python<'_>) -> Bound<'_, PyAny>
isinstance and issubclass function. Read more§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.