hyperqit 0.1.8

rust sdk for interacting with hyperliquid
Documentation
use crate::errors::Result;
use alloy::primitives::{FixedBytes, U256};
use async_trait::async_trait;
use serde::{Deserialize, Serialize};

#[async_trait]
pub trait Signer {
    async fn sign_order(&self, to_sign: FixedBytes<32>) -> Result<SignedMessage>;
}

#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct SignedMessage {
    pub r: U256,
    pub s: U256,
    pub v: u64,
}

#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct SignedMessageHex {
    pub r: String,
    pub s: String,
    pub v: u64,
}

impl From<SignedMessage> for SignedMessageHex {
    fn from(signed_msg: SignedMessage) -> Self {
        SignedMessageHex {
            r: format!("0x{:x}", signed_msg.r),
            s: format!("0x{:x}", signed_msg.s),
            v: signed_msg.v,
        }
    }
}