use soroban_sdk::{contracttype, Address, Env};
#[derive(Clone)]
#[contracttype]
pub enum DataKey {
Admin,
}
pub fn has_administrator(e: &Env) -> bool {
let key = DataKey::Admin;
e.storage().instance().has(&key)
}
fn read_administrator(e: &Env) -> Address {
let key = DataKey::Admin;
e.storage().instance().get(&key).unwrap()
}
pub fn write_administrator(e: &Env, id: &Address) {
let key = DataKey::Admin;
e.storage().instance().set(&key, id);
}
pub fn check_admin(e: &Env, admin: &Address) {
if admin != &read_administrator(e) {
panic!("not authorized by admin")
}
}