use serde::Deserialize;
use crate::model::NumberString;
#[derive(Debug, Clone, Default, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct Currency {
#[serde(default)]
pub ccy: String,
#[serde(default)]
pub name: String,
#[serde(default)]
pub chain: String,
#[serde(default, rename = "minWd")]
pub min_wd: NumberString,
#[serde(default, rename = "minDep")]
pub min_dep: NumberString,
#[serde(default, rename = "minFee")]
pub min_fee: NumberString,
#[serde(default, rename = "canDep")]
pub can_dep: bool,
#[serde(default, rename = "canWd")]
pub can_wd: bool,
#[serde(default, rename = "canInternal")]
pub can_internal: bool,
}
#[derive(Debug, Clone, Default, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct FundingBalance {
#[serde(default)]
pub ccy: String,
#[serde(default)]
pub bal: NumberString,
#[serde(default)]
pub frozen_bal: NumberString,
#[serde(default)]
pub avail_bal: NumberString,
}
#[derive(Debug, Clone, Default, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct NonTradableAsset {
#[serde(default)]
pub ccy: String,
#[serde(default)]
pub amt: NumberString,
#[serde(default, rename = "type")]
pub asset_type: String,
}
#[derive(Debug, Clone, Default, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct DepositAddress {
#[serde(default)]
pub ccy: String,
#[serde(default)]
pub chain: String,
#[serde(default)]
pub addr: String,
#[serde(default)]
pub tag: String,
#[serde(default)]
pub selected: bool,
}
#[derive(Debug, Clone, Default, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct TransferResult {
#[serde(default, rename = "transId")]
pub trans_id: String,
#[serde(default)]
pub ccy: String,
#[serde(default)]
pub amt: NumberString,
}
#[derive(Debug, Clone, Default, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct TransferState {
#[serde(default, rename = "transId")]
pub trans_id: String,
#[serde(default)]
pub state: String,
#[serde(default)]
pub ccy: String,
#[serde(default)]
pub amt: NumberString,
#[serde(default, rename = "from")]
pub from_account: String,
#[serde(default)]
pub to: String,
}
#[derive(Debug, Clone, Default, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct WithdrawalResult {
#[serde(default, rename = "wdId")]
pub wd_id: String,
#[serde(default, rename = "clientId")]
pub client_id: String,
#[serde(default)]
pub ccy: String,
#[serde(default)]
pub amt: NumberString,
}
#[derive(Debug, Clone, Default, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct DepositRecord {
#[serde(default, rename = "depId")]
pub dep_id: String,
#[serde(default, rename = "txId")]
pub tx_id: String,
#[serde(default)]
pub ccy: String,
#[serde(default)]
pub chain: String,
#[serde(default)]
pub amt: NumberString,
#[serde(default)]
pub state: String,
#[serde(default)]
pub ts: NumberString,
}
#[derive(Debug, Clone, Default, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct WithdrawalRecord {
#[serde(default, rename = "wdId")]
pub wd_id: String,
#[serde(default, rename = "clientId")]
pub client_id: String,
#[serde(default, rename = "txId")]
pub tx_id: String,
#[serde(default)]
pub ccy: String,
#[serde(default)]
pub chain: String,
#[serde(default)]
pub amt: NumberString,
#[serde(default)]
pub fee: NumberString,
#[serde(default)]
pub state: String,
#[serde(default)]
pub ts: NumberString,
}
#[derive(Debug, Clone, Default, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct FundingBill {
#[serde(default, rename = "billId")]
pub bill_id: String,
#[serde(default)]
pub ccy: String,
#[serde(default)]
pub bal_chg: NumberString,
#[serde(default)]
pub bal: NumberString,
#[serde(default, rename = "type")]
pub bill_type: String,
#[serde(default)]
pub ts: NumberString,
}
#[derive(Debug, Clone, Default, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct DepositLightning {
#[serde(default)]
pub ccy: String,
#[serde(default)]
pub amt: NumberString,
#[serde(default)]
pub invoice: String,
#[serde(default)]
pub to: String,
}
#[derive(Debug, Clone, Default, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct WithdrawalLightning {
#[serde(default)]
pub ccy: String,
#[serde(default)]
pub amt: NumberString,
#[serde(default, rename = "wdId")]
pub wd_id: String,
}
#[derive(Debug, Clone, Default, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct AssetValuation {
#[serde(default)]
pub details: AssetValuationDetails,
#[serde(default, rename = "totalBal")]
pub total_bal: NumberString,
}
#[derive(Debug, Clone, Default, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct AssetValuationDetails {
#[serde(default)]
pub funding: NumberString,
#[serde(default)]
pub trading: NumberString,
#[serde(default)]
pub earn: NumberString,
#[serde(default)]
pub classic: NumberString,
}
#[derive(Debug, Clone, Default, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct DepositWithdrawStatus {
#[serde(default, rename = "wdId")]
pub wd_id: String,
#[serde(default, rename = "txId")]
pub tx_id: String,
#[serde(default)]
pub ccy: String,
#[serde(default)]
pub chain: String,
#[serde(default)]
pub to: String,
#[serde(default)]
pub state: String,
}
#[derive(Debug, Clone, Default, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct ConvertDustAssetsResult {
#[serde(default)]
pub ccy: String,
#[serde(default)]
pub amt: NumberString,
}
#[derive(Debug, Clone, Default, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct PurchaseRedemptResult {
#[serde(default)]
pub ccy: String,
#[serde(default)]
pub amt: NumberString,
#[serde(default)]
pub side: String,
}