我最近一直在研究NFT智能合同,首先,我使用了ERC721 Openzepellin合同,如下所示:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;
import "@openzeppelin/contracts@4.6.0/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts@4.6.0/token/ERC721/extensions/ERC721Enumerable.sol";
import "@openzeppelin/contracts@4.6.0/token/ERC721/extensions/ERC721URIStorage.sol";
import "@openzeppelin/contracts@4.6.0/utils/Counters.sol";
contract NAMZZ is ERC721, ERC721Enumerable, ERC721URIStorage{
using Counters for Counters.Counter;
Counters.Counter private _tokenIdCounter;
uint256 MAX_SUPPLY = 5000;
constructor() ERC721("NAMZZ", "NMZ") {}
function safeMint(address to, string memory uri) public{
uint256 tokenId = _tokenIdCounter.current();
require(tokenId <= MAX_SUPPLY, "Sorry, all NFTs have been minted!");
_tokenIdCounter.increment();
_safeMint(to, tokenId);
_setTokenURI(tokenId, uri);
}
// The following functions are overrides required by Solidity.
function _beforeTokenTransfer(address from, address to, uint256 tokenId)
internal
override(ERC721, ERC721Enumerable)
{
super._beforeTokenTransfer(from, to, tokenId);
}
function _burn(uint256 tokenId) internal override(ERC721, ERC721URIStorage) {
super._burn(tokenId);
}
function tokenURI(uint256 tokenId)
public
view
override(ERC721, ERC721URIStorage)
returns (string memory)
{
return super.tokenURI(tokenId);
}
function supportsInterface(bytes4 interfaceId)
public
view
override(ERC721, ERC721Enumerable)
returns (bool)
{
return super.supportsInterface(interfaceId);
}
}一切似乎都很完美,因为我可以创建NFT,甚至可以使用SafeTransferFrom方法将NFT从一个地址移动到另一个地址。在创建了我的前2个NFT之后,我将我的元问询帐户(用来铸币NFT的)链接到Opensen,并且我能够在“收集”选项卡中看到我的NFT,但是在将其中的一个NFT转移到另一个地址之后,即使智能协议显示ID为1的NFT属于第二个地址,而且ID1 NFT的所有者也说是我使用的第二个地址,我无法在Opensen上收集的tab中再次看到它。
正如您在屏幕截图中所看到的,我已经创建了2个NFT,我只收集了1个NFT ( ID为0的NFT),而它应该显示2个收集,因为具有ID 1所有者的NFT是"ME",但我仍然看不到它。



发布于 2022-08-18 19:55:26
总经理在那儿!
合同没有什么问题,只是OpenSea通常不能很好地索引NFT,所以可能需要一些延迟(或者永远不要)才能让NFT出现在“收集”选项卡中。
但是,您不应该担心,因为这是UI问题,只要您去了Etherscan或Polygonscan,这取决于您的NFT部署的位置,并且您有您的NFT,您拥有它们,并且OpenSea没有能力从您手中夺走这些NFT。
干杯~
https://stackoverflow.com/questions/73404641
复制相似问题