Context is to collect canisters information and store them to help developers better observe the running state of canisters
use ic_cdk_macros::*;
use ic_cdk::export::candid::{Nat};
use context::emit;
static mut CURRENT_SUPPLY:Option<Nat> = None ;
#[init]
fn init(){
unsafe{
CURRENT_SUPPLY = Some(Nat::default());
}
}
#[update]
async fn mint(amount:Nat) ->() {
unsafe{
let v = CURRENT_SUPPLY.as_mut().unwrap();
*v = v.clone() + amount;
}
emit().await;
}
#[post_upgrade]
fn post_upgrade(){
unsafe{
CURRENT_SUPPLY = Some(Nat::default());
}
}