nym_types/
account.rs

1use crate::currency::{CurrencyDenom, DecCoin};
2use nym_config::defaults::DenomDetails;
3use schemars::JsonSchema;
4use serde::{Deserialize, Serialize};
5
6#[cfg_attr(feature = "generate-ts", derive(ts_rs::TS))]
7#[cfg_attr(
8    feature = "generate-ts",
9    ts(export, export_to = "ts-packages/types/src/types/rust/Account.ts")
10)]
11#[derive(Serialize, Deserialize, JsonSchema)]
12pub struct Account {
13    pub client_address: String,
14    pub base_mix_denom: String,
15
16    // this should get refactored to just use a String, but for now it's fine as it reduces headache
17    // for others
18    pub display_mix_denom: CurrencyDenom,
19}
20
21impl Account {
22    pub fn new(client_address: String, mix_denom: DenomDetails) -> Self {
23        Account {
24            client_address,
25            base_mix_denom: mix_denom.base.to_owned(),
26            display_mix_denom: mix_denom.display.parse().unwrap_or_default(),
27        }
28    }
29}
30
31#[cfg_attr(feature = "generate-ts", derive(ts_rs::TS))]
32#[cfg_attr(
33    feature = "generate-ts",
34    ts(
35        export,
36        export_to = "ts-packages/types/src/types/rust/AccountWithMnemonic.ts"
37    )
38)]
39#[derive(Serialize, Deserialize)]
40pub struct AccountWithMnemonic {
41    pub account: Account,
42    pub mnemonic: String,
43}
44
45#[cfg_attr(feature = "generate-ts", derive(ts_rs::TS))]
46#[cfg_attr(
47    feature = "generate-ts",
48    ts(export, export_to = "ts-packages/types/src/types/rust/AccountEntry.ts")
49)]
50#[derive(Clone, Debug, Serialize, Deserialize)]
51pub struct AccountEntry {
52    pub id: String,
53    pub address: String,
54}
55
56#[cfg_attr(feature = "generate-ts", derive(ts_rs::TS))]
57#[cfg_attr(
58    feature = "generate-ts",
59    ts(export, export_to = "ts-packages/types/src/types/rust/Balance.ts")
60)]
61#[derive(Serialize, Deserialize)]
62pub struct Balance {
63    pub amount: DecCoin,
64    pub printable_balance: String,
65}
66
67impl Balance {
68    pub fn new(amount: DecCoin) -> Self {
69        Balance {
70            printable_balance: amount.to_string(),
71            amount,
72        }
73    }
74}