hyperliquid_rust_sdk_abrkn/exchange/
exchange_responses.rs

1use serde::Deserialize;
2
3#[derive(Deserialize, Debug, Clone)]
4pub struct RestingOrder {
5    pub oid: u64,
6}
7
8#[derive(Deserialize, Debug, Clone)]
9#[serde(rename_all = "camelCase")]
10pub struct FilledOrder {
11    pub total_sz: String,
12    pub avg_px: String,
13    pub oid: u64,
14}
15
16#[derive(Deserialize, Debug, Clone)]
17#[serde(rename_all = "camelCase")]
18pub enum ExchangeDataStatus {
19    Success,
20    WaitingForFill,
21    WaitingForTrigger,
22    Error(String),
23    Resting(RestingOrder),
24    Filled(FilledOrder),
25}
26
27#[derive(Deserialize, Debug, Clone)]
28pub struct ExchangeDataStatuses {
29    pub statuses: Vec<ExchangeDataStatus>,
30}
31
32#[derive(Deserialize, Debug, Clone)]
33pub struct ExchangeResponse {
34    #[serde(rename = "type")]
35    pub response_type: String,
36    pub data: Option<ExchangeDataStatuses>,
37}
38
39#[derive(Deserialize, Debug, Clone)]
40#[serde(rename_all = "camelCase")]
41#[serde(tag = "status", content = "response")]
42pub enum ExchangeResponseStatus {
43    Ok(ExchangeResponse),
44    Err(String),
45}