1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
use casper_types::{Key, URef, U512}; use crate::{ shared::{newtypes::Blake2bHash, stored_value::StoredValue}, storage::trie::merkle_proof::TrieMerkleProof, }; #[derive(Debug)] pub enum BalanceResult { RootNotFound, Success { motes: U512, proof: Box<TrieMerkleProof<Key, StoredValue>>, }, } impl BalanceResult { pub fn motes(&self) -> Option<&U512> { match self { BalanceResult::Success { motes, .. } => Some(motes), _ => None, } } pub fn proof(self) -> Option<TrieMerkleProof<Key, StoredValue>> { match self { BalanceResult::Success { proof, .. } => Some(*proof), _ => None, } } } #[derive(Debug, Clone, PartialEq, Eq)] pub struct BalanceRequest { state_hash: Blake2bHash, purse_uref: URef, } impl BalanceRequest { pub fn new(state_hash: Blake2bHash, purse_uref: URef) -> Self { BalanceRequest { state_hash, purse_uref, } } pub fn state_hash(&self) -> Blake2bHash { self.state_hash } pub fn purse_uref(&self) -> URef { self.purse_uref } }