hvym_node_token/
nodemetadata.rs1use soroban_sdk::{contracttype, symbol_short, unwrap::UnwrapOptimized, Env, String, Symbol};
2
3const METADATA_KEY: Symbol = symbol_short!("HVYMNODE");
4
5#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord)]
6#[contracttype]
7pub struct NodeTokenMetadata {
8 pub decimal: u32,
9 pub name: String,
10 pub symbol: String,
11 pub node_id: String,
12 pub descriptor: String,
13 pub established: String,
14}
15
16pub struct NodeMetadata {
17 env: Env,
18}
19
20impl NodeMetadata {
21 pub fn new(env: &Env) -> NodeMetadata {
22 NodeMetadata { env: env.clone() }
23 }
24
25 #[inline(always)]
26 pub fn set_metadata(&self, metadata: &NodeTokenMetadata) {
27 self.env.storage().persistent().set(&METADATA_KEY, metadata);
28 }
29
30 #[inline(always)]
31 pub fn get_metadata(&self) -> NodeTokenMetadata {
32 self.env
33 .storage()
34 .persistent()
35 .get(&METADATA_KEY)
36 .unwrap_optimized()
37 }
38}