zkrollup 0.0.1

zkrollup implementation
Documentation
use sp_std::collections::btree_map::BTreeMap;

use red_jubjub::PublicKey;
use zkstd::common::RedDSA;

use crate::domain::UserData;

#[derive(Default)]
pub(crate) struct Db<P: RedDSA> {
    users: BTreeMap<PublicKey<P>, UserData<P>>,
}

impl<P: RedDSA> Db<P> {
    pub fn get(&self, k: &PublicKey<P>) -> &UserData<P> {
        self.users
            .get(k)
            .expect("User is not presented in the state")
    }

    pub fn get_mut(&mut self, k: &PublicKey<P>) -> &mut UserData<P> {
        self.users
            .get_mut(k)
            .expect("User is not presented in the state")
    }

    pub fn insert(&mut self, key: PublicKey<P>, value: UserData<P>) {
        self.users.insert(key, value);
    }
}