neo3/neo_protocol/responses/
neo_balances.rs1use getset::Getters;
2use serde::{Deserialize, Serialize};
3
4use neo3::prelude::{deserialize_script_hash, serialize_script_hash, ScriptHash};
5
6#[derive(Serialize, Deserialize, Clone, PartialEq, Eq, Hash, Debug)]
7pub struct Nep11Balances {
8 pub address: String,
9 #[serde(rename = "balance")]
10 pub balances: Vec<Nep11Balance>,
11}
12
13#[derive(Serialize, Deserialize, Clone, PartialEq, Eq, Hash, Debug)]
14pub struct Nep11Balance {
15 pub name: String,
16 pub symbol: String,
17 pub decimals: String,
18 pub tokens: Vec<Nep11Token>,
19 #[serde(rename = "assethash")]
20 #[serde(deserialize_with = "deserialize_script_hash")]
21 #[serde(serialize_with = "serialize_script_hash")]
22 pub asset_hash: ScriptHash,
23}
24
25impl Nep11Balance {
26 pub fn new(
28 asset_hash: ScriptHash,
29 name: String,
30 symbol: String,
31 decimals: String,
32 tokens: Vec<Nep11Token>,
33 ) -> Self {
34 Nep11Balance { name, symbol, decimals, tokens, asset_hash }
35 }
36}
37
38#[derive(Serialize, Deserialize, Clone, PartialEq, Eq, Hash, Debug)]
39pub struct Nep11Token {
40 #[serde(rename = "tokenid")]
41 pub token_id: String,
42 pub amount: String,
43 #[serde(rename = "lastupdatedblock")]
44 pub last_updated_block: u32,
45}
46
47impl Nep11Token {
48 pub fn new(token_id: String, amount: String, last_updated_block: u32) -> Self {
50 Nep11Token { token_id, amount, last_updated_block }
51 }
52}
53
54#[derive(Serialize, Deserialize, Clone, PartialEq, Eq, Hash, Debug)]
55pub struct Nep17Balances {
56 pub address: String,
57 #[serde(rename = "balance", default)]
58 pub balances: Vec<Nep17Balance>,
59}
60
61#[derive(Getters, Serialize, Deserialize, Clone, PartialEq, Eq, Hash, Debug)]
62pub struct Nep17Balance {
63 pub name: Option<String>,
64 pub symbol: Option<String>,
65 pub decimals: Option<String>,
66 pub amount: String,
67 #[serde(rename = "lastupdatedblock")]
68 pub last_updated_block: u32,
69 #[serde(rename = "assethash")]
70 #[serde(deserialize_with = "deserialize_script_hash")]
71 #[serde(serialize_with = "serialize_script_hash")]
72 pub asset_hash: ScriptHash,
73}
74
75impl Nep17Balance {
76 pub fn new(
78 asset_hash: ScriptHash,
79 name: Option<String>,
80 symbol: Option<String>,
81 decimals: Option<String>,
82 amount: String,
83 last_updated_block: u32,
84 ) -> Self {
85 Self { name, symbol, decimals, amount, last_updated_block, asset_hash }
86 }
87}