fireblocks_sdk/
wallet.rs

1use {
2    crate::models::{UnmanagedExternalWallet, UnmanagedWallet, WalletAssetExternal},
3    serde::{Deserialize, Serialize},
4};
5
6#[derive(Debug, Deserialize, Serialize, Default)]
7pub struct WalletContainer {
8    pub id: String,
9    pub name: String,
10    pub assets: Vec<WalletAssetExternal>,
11    pub customer_ref_id: Option<String>,
12}
13
14impl From<UnmanagedWallet> for WalletContainer {
15    fn from(value: UnmanagedWallet) -> Self {
16        Self {
17            id: value.id,
18            name: value.name,
19            customer_ref_id: value.customer_ref_id,
20            assets: value
21                .assets
22                .into_iter()
23                .map(|w| WalletAssetExternal {
24                    id: w.id,
25                    locked_amount: w.locked_amount,
26                    // locked_amount: w.locked_amount,
27                    address: w.address,
28                    tag: w.tag,
29                    activation_time: w.activation_time,
30                    status: w.status,
31                })
32                .collect(),
33        }
34    }
35}
36
37impl From<UnmanagedExternalWallet> for WalletContainer {
38    fn from(value: UnmanagedExternalWallet) -> Self {
39        Self {
40            id: value.id,
41            name: value.name,
42            customer_ref_id: value.customer_ref_id,
43            assets: value.assets,
44        }
45    }
46}