fireblocks-sdk 2026.3.27

Rust implementation of the Fireblocks SDK
Documentation
// Fireblocks API
//
// Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain.  - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
//
// The version of the OpenAPI document: 1.8.0
// Contact: developers@fireblocks.com
// Generated by: https://openapi-generator.tech

use {
    crate::models,
    serde::{Deserialize, Serialize},
};

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct VaultAsset {
    #[serde(rename = "id")]
    pub id: String,
    /// The total wallet balance.  Total = available + pending + lockedAmount +
    /// frozen - In EOS this value includes the network balance, self staking
    /// and pending refund.  - For all other coins it is the balance as it
    /// appears on the blockchain.
    #[serde(rename = "total")]
    pub total: String,
    /// Deprecated - replaced by \"total\"
    #[serde(rename = "balance", skip_serializing_if = "Option::is_none")]
    pub balance: Option<String>,
    /// Funds available for transfer. Equals: \"total\" minus \"lockedAmount\"
    /// minus \"frozen\" minus \"pending\"
    #[serde(rename = "available")]
    pub available: String,
    /// The cumulative balance of all transactions pending to be cleared
    #[serde(rename = "pending")]
    pub pending: String,
    /// The cumulative frozen balance
    #[serde(rename = "frozen")]
    pub frozen: String,
    /// Funds in outgoing transactions that are not yet published to the network
    #[serde(rename = "lockedAmount")]
    pub locked_amount: String,
    /// Deprecated
    #[serde(rename = "staked", skip_serializing_if = "Option::is_none")]
    pub staked: Option<String>,
    /// Deprecated
    #[serde(rename = "totalStakedCPU", skip_serializing_if = "Option::is_none")]
    pub total_staked_cpu: Option<f64>,
    /// Deprecated
    #[serde(rename = "totalStakedNetwork", skip_serializing_if = "Option::is_none")]
    pub total_staked_network: Option<String>,
    /// Deprecated
    #[serde(rename = "selfStakedCPU", skip_serializing_if = "Option::is_none")]
    pub self_staked_cpu: Option<String>,
    /// Deprecated
    #[serde(rename = "selfStakedNetwork", skip_serializing_if = "Option::is_none")]
    pub self_staked_network: Option<String>,
    /// Deprecated
    #[serde(rename = "pendingRefundCPU", skip_serializing_if = "Option::is_none")]
    pub pending_refund_cpu: Option<String>,
    /// Deprecated
    #[serde(
        rename = "pendingRefundNetwork",
        skip_serializing_if = "Option::is_none"
    )]
    pub pending_refund_network: Option<String>,
    /// The height (number) of the block of the balance
    #[serde(rename = "blockHeight", skip_serializing_if = "Option::is_none")]
    pub block_height: Option<String>,
    /// The hash of the block of the balance
    #[serde(rename = "blockHash", skip_serializing_if = "Option::is_none")]
    pub block_hash: Option<String>,
    #[serde(rename = "rewardsInfo", skip_serializing_if = "Option::is_none")]
    pub rewards_info: Option<models::RewardsInfo>,
}

impl VaultAsset {
    pub fn new(
        id: String,
        total: String,
        available: String,
        pending: String,
        frozen: String,
        locked_amount: String,
    ) -> VaultAsset {
        VaultAsset {
            id,
            total,
            balance: None,
            available,
            pending,
            frozen,
            locked_amount,
            staked: None,
            total_staked_cpu: None,
            total_staked_network: None,
            self_staked_cpu: None,
            self_staked_network: None,
            pending_refund_cpu: None,
            pending_refund_network: None,
            block_height: None,
            block_hash: None,
            rewards_info: None,
        }
    }
}