use crate::account::history::{Fill, LedgerUpdate};
use crate::utils::{Address, Dec};
use serde::Deserialize;
#[derive(Debug, Clone, PartialEq, Eq, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct UserFills {
pub user: Address,
#[serde(default)]
pub is_snapshot: bool,
pub fills: Vec<Fill>,
}
#[derive(Debug, Clone, PartialEq, Eq, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Funding {
pub time: u64,
pub coin: String,
pub usdc: Dec,
pub szi: Dec,
pub funding_rate: Dec,
#[serde(default)]
pub n_samples: Option<u64>,
}
#[derive(Debug, Clone, PartialEq, Eq, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct UserFundings {
pub user: Address,
#[serde(default)]
pub is_snapshot: bool,
pub fundings: Vec<Funding>,
}
#[derive(Debug, Clone, PartialEq, Eq, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Ledger {
pub user: Address,
#[serde(default)]
pub is_snapshot: bool,
#[serde(rename = "nonFundingLedgerUpdates")]
pub updates: Vec<LedgerUpdate>,
}
#[cfg(test)]
#[path = "tests/history.rs"]
mod tests;