Skip to main content

hl_types/
lib.rs

1//! # hl-types
2//!
3//! Shared domain types for the motosan-hyperliquid SDK.
4//!
5//! This crate defines the Rust structs that map to Hyperliquid's API data
6//! model: orders, positions, candles, signatures, and a unified error type.
7//! Every other crate in the SDK depends on `hl-types`.
8//!
9//! This crate has no network dependencies.
10
11#![warn(missing_docs)]
12
13/// Account state types (positions, fills, vaults, fees, etc.).
14pub mod account;
15/// OHLCV candlestick types.
16pub mod candle;
17/// Unified error type used across all SDK crates.
18pub mod error;
19/// Market data types (orderbook, asset info, funding rates, trades).
20pub mod market;
21/// Order wire types (order builders, cancel/modify requests, enums).
22pub mod order;
23/// Exchange action and order response types.
24pub mod response;
25/// ECDSA signature type (r, s, v components).
26pub mod signature;
27/// Utility functions (coin normalization, JSON parsing helpers).
28pub mod util;
29
30pub use account::{
31    HlAccountState, HlActiveAssetData, HlBorrowLendState, HlExtraAgent, HlFill,
32    HlFrontendOpenOrder, HlFundingEntry, HlHistoricalOrder, HlOpenOrder, HlOrderDetail, HlPosition,
33    HlRateLimitStatus, HlReferralState, HlStakingDelegation, HlStakingReward, HlStakingSummary,
34    HlUserFees, HlUserFundingEntry, HlVaultDetails, HlVaultSummary,
35};
36pub use candle::HlCandle;
37pub use error::HlError;
38pub use market::{
39    AssetContext, HlAssetInfo, HlFundingRate, HlOrderbook, HlPerpDexStatus, HlSpotAssetInfo,
40    HlSpotBalance, HlSpotMeta, HlTrade, SpotAssetContext, TradeSide,
41};
42pub use order::{
43    CancelByCloidRequest, CancelRequest, Grouping, LimitOrderType, ModifyRequest, OrderStatus,
44    OrderTypeWire, OrderWire, OrderWireBuilder, PositionSide, Side, Tif, Tpsl, TriggerOrderType,
45};
46pub use response::{HlActionResponse, OrderResponse};
47pub use rust_decimal::Decimal;
48pub use signature::Signature;
49pub use util::{
50    normalize_coin, parse_mid_price_from_l2book, parse_position_szi, parse_str_decimal,
51};