A linear type system implementation of ERC20
fn balance
Gets u256 balance of an accountfn withdraw
Withdraw Tokens from an account. Only if account is the callerfn withdraw_unsafe
Withdraw Tokens from an account. Unsafe, verify if the caller can withdraw from accountfn deposit
Takes tokens and deposit into an account (consumes)fn mint
Mints Tokens to an accountfn total_supply
Returns total supply amount of tokens
fn setup_mint
Sets up with mint_amount minted to account 'bob'fn test_mint_and_supply
Test tokens are minted and supply is updatedfn test_withdraw_unsafe
Tests that withdraw unsafe returns Tokens struct and removes Tokens from accountfn test_withdraw_wrong_caller
Tests that safe withdraw panics for caller different from accountfn test_withdraw_safe
Tests that safe withdraw works with correct account caller. And returns Tokens struct and removes Tokens from account