Skip to main content

xapi_okx/data/
balance.rs

1use chrono::{DateTime, Utc};
2use rust_decimal::Decimal;
3use serde::Deserialize;
4use serde_with::{TimestampMilliSeconds, formats::Flexible};
5use xapi_shared::data::crypto_asset::CryptoAsset;
6
7#[serde_with::serde_as]
8#[derive(Debug, Deserialize, Clone)]
9#[serde(rename_all = "camelCase")]
10pub struct OkxBalance {
11    pub details: Vec<OkxBalanceDetail>,
12    #[serde(rename = "uTime")]
13    #[serde_as(as = "TimestampMilliSeconds<String, Flexible>")]
14    pub update_time: DateTime<Utc>,
15}
16
17#[serde_with::serde_as]
18#[derive(Debug, Deserialize, Clone)]
19#[serde(rename_all = "camelCase")]
20pub struct OkxBalanceDetail {
21    #[serde(rename = "ccy")]
22    pub currency: CryptoAsset,
23    #[serde(rename = "eq")]
24    pub equity: Decimal,
25    #[serde(rename = "availEq")]
26    pub available_equity: Decimal,
27    #[serde(rename = "availBal")]
28    pub available_balance: Decimal,
29    #[serde_as(as = "TimestampMilliSeconds<String, Flexible>")]
30    #[serde(rename = "uTime")]
31    pub update_time: DateTime<Utc>,
32}