Lets assume that i create an own coin as a resource called myToken
How can u achieve a burn function?
Is this ok? (assume that I have
public burn(amount: u64) {
let sender: address;
let sender_token_ref: &mut R#Self.T;
let value: u64;
// Getting sender-accounts balance
sender = get_txn_sender();
sender_token_ref = borrow_global<T>(move(sender));
value = *(©(sender_token_ref).value);
// Make sure that sender has enough tokens, otherwise revert
assert(copy(value) >= copy(amount), 1);
// Reduce the senders tokens
*(&mut move(sender_token_ref).value) = move(value) - copy(amount);
return;
}
Additional:
Should I return something?