package mynft3 import ( "strconv" "chain/runtime" "gno.land/p/demo/tokens/grc721" "gno.land/r/pierre115/nftregistry2" ) // Basic nft interface type NFTCollection interface { grc721.IGRC721 Mint(to address, tid grc721.TokenID) error Getter() grc721.NFTGetter } var ( nft NFTCollection nextTokenId = 1 ) func init() { nft = grc721.NewBasicNFT("Test NFT Collection", "TEST") // register on nft registry realm dont work in init } // Register registers this collection on the NFT registry // Must be called manually after deployment func Register(_ realm) { nftregistry2.RegisterCollection( "Test NFT Collection 3", // name ← AJOUTÉ "TEST2", // symbol ← AJOUTÉ "art", // category "My awesome NFT collection", // description "https://example.com", // externalURL nft.Getter(), // getter ) } // public function to mint an NFT func MintNFT(_ realm) int { caller := runtime.PreviousRealm().Address() tokenId := grc721.TokenID(strconv.Itoa(nextTokenId)) // call of the interface mint method err := nft.Mint(caller, tokenId) // mint =! Mint if err != nil { panic(err.Error()) } nextTokenId++ return nextTokenId - 1 } // SetApprovalForAll 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 3\n\n" return output }