ProvableHQ / workshop

📜 A Starter Guide to Build ZK Applications 📜
333 stars 265 forks source link

add burn_private and burn_public transitions #53

Open raghav-rama opened 11 months ago

raghav-rama commented 11 months ago

/ Burn / transition burn_public(public receiver: address, public amount_to_burn: u64) { return then finalize(receiver, amount_to_burn); }

finalize burn_public(public owner: address, amount_to_burn: u64) {
  let amount: u64 = Mapping::get_or_use(account, owner, 0u64);
  Mapping::set(account, owner, amount - amount_to_burn);
}

transition burn_private(token_to_burn: token, amount: u64) -> token {
  let difference: u64 = token_to_burn.amount - amount;
  return token {
    owner: token_to_burn.owner,
    amount: difference,
  };
}