簡體   English   中英

ERC721 NFT 未在 opensea 中顯示(與元數據相關)

[英]ERC721 NFT not showing in opensea (related to the metadata)

我正在創建 DApp 並成功使用 IPFS (pinata) 和 Nethereum (C#) 在 Rinkeby 中鑄造 NFT。

現在,我可以在 ERC721URIStorage.sol 中使用 tokenURI function 獲取 TokenURI,例如ipfs://QmRH9pTTADs3BCqMLqXEAMP83FoaeMD8CUkNgtxZ5HKTLq

以下是有關相同 NFT 的元數據的鏈接。 https://ipfs.io/ipfs/QmRH9pTTADs3BCqMLqXEAMP83FoaeMD8CUkNgtxZ5HKTLq

但是,在 opensea 測試網中,我看不到有關我的 NFT 的信息。 (我可以看到我的 NFT,但是沒有圖像、名稱、描述等..)

為了解決這個問題,我在https://testnets-api.opensea.io/asset/0x1770A249C9743F1493C55fE505BC17beAB772cD5/4/validate/中檢查了我的合同是否有效。 有一些錯誤:“AttributeError: 'str' object has no attribute 'get'”,但我不知道它是什么..

即使我可以得到 TokenURI,為什么沒有 opensea? 在這個文檔( https://docs.opensea.io/docs/metadata-standards )中,他們說如果我想使用 IPFS 來托管我的元數據,URL 應該采用 ipfs:// 格式(如ipfs://QmRH9pTTADs3BCqMLqXEAMP83FoaeMD8CUkNgtxZ5HKTLq 。)我跟着那個,但它不起作用。

哦,我發現我ipfs中的json不是json,因為是用""包圍的。

這意味着 opensea 將無法從我的元數據中獲取某些內容,因為它是字符串。

我使用了另一個示例元數據( https://ipfs.io/ipfs/bafybeibnsoufr2renqzsh347nrx54wcubt5lgkeivez63xvivplfwhtpym/metadata.json ),它不是我的,而且效果很好!

因此,我必須修復將元數據上傳到 ipfs 的代碼。

我還沒有完全解決問題,但是我找到了原因,所以我將退出這個問題。 解決這個問題后,我會再次發布。

只需將其放入智能合約 tada 即可解決



function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {
        _requireMinted(tokenId);

        string memory baseURI = _baseURI();
        return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, Strings.toString(tokenId),".json")) : "";
    }```

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM