use exonum::{
crypto::PublicKey,
merkledb::{
access::{Access, FromAccess},
MapIndex,
},
};
use exonum_derive::{BinaryValue, FromAccess, ObjectHash};
use serde_derive::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq)]
#[derive(Serialize, Deserialize)]
#[derive(BinaryValue, ObjectHash)]
#[binary_value(codec = "bincode")]
pub struct Wallet {
pub name: String,
pub balance: u64,
}
#[derive(FromAccess)]
pub struct WalletSchema<T: Access> {
pub wallets: MapIndex<T::Base, PublicKey, Wallet>,
}
impl<T: Access> WalletSchema<T> {
pub fn new(access: T) -> Self {
Self::from_root(access).unwrap()
}
}