package mynft8 import ( "strconv" "chain/runtime" "gno.land/p/demo/tokens/grc721" "gno.land/p/nt/ufmt" "gno.land/r/pierre115/nftregistry8" ) type NFTCollection interface { grc721.IGRC721 Mint(to address, tid grc721.TokenID) error Getter() grc721.NFTGetter } var ( nft NFTCollection nextTokenId = 1 myRealmAddr = runtime.CurrentRealm().Address() ) func init() { nft = grc721.NewBasicNFT("Test NFT Collection 8", "TEST8") } // Register registers this collection on the NFT registry func Register(_ realm) { nftregistry8.RegisterCollection( myRealmAddr, "Test NFT Collection 8", "TEST8", "art", "Last wars", "https://example.com", false, nft.Getter(), ) } func MintNFT(_ realm) int { caller := runtime.PreviousRealm().Address() tokenId := grc721.TokenID(strconv.Itoa(nextTokenId)) err := nft.Mint(caller, tokenId) if err != nil { panic(err.Error()) } nextTokenId++ return nextTokenId - 1 } func SetApprovalForAll(_ realm, operator address, approved bool) { err := nft.SetApprovalForAll(operator, approved) if err != nil { panic(err.Error()) } } func Getter() grc721.NFTGetter { return nft.Getter() } func Render(path string) string { output := "# My test collection\n\n" output += "## test 8\n\n" output += ufmt.Sprintf("**NftRealmAddr:** %d\n\n", myRealmAddr.String()) return output }