hyperqit 0.1.1

rust sdk for interacting with hyperliquid
Documentation
mod strategy;
use serde::{Deserialize, Serialize};

#[derive(Serialize, Deserialize, Clone)]
#[serde(rename_all = "camelCase")]
#[serde(tag = "assetType", content = "asset")]
pub enum Asset {
    CommonAsset(String),
    WithPerpAndSpot(String, String),
}

#[derive(Serialize, Deserialize, Clone)]
#[serde(rename_all = "camelCase")]
#[serde(tag = "fmt", content = "amt")]
pub enum Amount {
    Usd(String),
    Raw(String),
}

#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
#[serde(tag = "type")]
pub enum StrategyStatus {
    Active,
    InActive,
}

#[derive(Deserialize, Serialize, Clone)]
#[serde(rename_all = "camelCase")]
pub struct Position {
    perp_amount: f64,
    perp_mid_px: f64,
    perp_pos_usd: f64,
    liq_px: f64,
    spot_amount: f64,
    spot_mid_px: f64,
    spot_pos_usd: f64,
    perp_funding_rate: f64,
    dn_diff: f64,
    funding_earning_nh: f64,
    at: u64,
}

#[derive(Deserialize, Serialize, Clone)]
#[serde(rename_all = "camelCase")]
pub struct StrategyState {
    pub status: StrategyStatus,
    pub position: Option<Position>,
}
pub use strategy::*;