Merge pull request #823 from nspcc-dev/examples/nep5

examples: add nep5 mint function
This commit is contained in:
Roman Khimov 2020-04-03 13:23:22 +03:00 committed by GitHub
commit c0b5271386
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 0 deletions

View file

@ -93,3 +93,19 @@ func IsUsableAddress(addr []byte) bool {
return false
}
// Mint initial supply of tokens.
func (t Token) Mint(ctx storage.Context, to []byte) bool {
if !IsUsableAddress(t.Owner) {
return false
}
minted := storage.Get(ctx, []byte("minted")).(bool)
if minted {
return false
}
storage.Put(ctx, to, t.TotalSupply)
storage.Put(ctx, []byte("minted"), true)
runtime.Notify("transfer", "", to, t.TotalSupply)
return true
}

View file

@ -56,6 +56,10 @@ func Main(operation string, args []interface{}) interface{} {
amount := args[2].(int)
return token.Transfer(ctx, from, to, amount)
}
if operation == "mint" && CheckArgs(args, 1) {
addr := args[0].([]byte)
return token.Mint(ctx, addr)
}
return true
}