contract.gno
package grc20 import ( "chain/runtime/unsafe" tokens "gno.land/p/demo/tokens/grc20" ) // test1 receives the initial mint at construction. var test1 = address("g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5") // Token is exported. Other contracts can read it (balances, metadata). // privateLedger stays unexported: it grants unrestricted mint/burn/transfer. var ( Token *tokens.Token privateLedger *tokens.PrivateLedger ) func init(cur realm) { // generate the token and mint some tokens to test1. Token, privateLedger = tokens.NewToken("Foo Token", "FOO", 4, 0, cur) privateLedger.Mint(test1, 100000000) } func MyBalance() int64 { return Token.BalanceOf(unsafe.OriginCaller()) }