我对ERC721标准感到困惑。我们将名称和符号传递给构造函数。他们代表什么?在源代码中,它只是标记名称和令牌符号。
它们是NFT的名称和符号吗?(NFT有唯一的名称和符号吗?)
或者它们也是NFT所属集合的名称和符号?因此,在我部署契约之后,每个NFT我的薄荷都有这个集合名称和符号。
这是来自[医]开泽平的示例代码。构造函数位于第8行。
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";
import "@openzeppelin/contracts/utils/Counters.sol";
contract GameItem is ERC721URIStorage {
using Counters for Counters.Counter;
Counters.Counter private _tokenIds;
constructor() ERC721("GameItem", "ITM") {} // constructor is here <---------------------
function awardItem(address player, string memory tokenURI)
public
returns (uint256)
{
_tokenIds.increment();
uint256 newItemId = _tokenIds.current();
_mint(player, newItemId);
_setTokenURI(newItemId, tokenURI);
return newItemId;
}
}另外,NFT必须是集合的一部分吗?当我去OpenSea时,似乎没有单独的NFT。只有收藏品。
发布于 2022-01-27 14:36:52
首先,谈论"ERC-721构造函数“的”名称和符号“不是一件事。标准中没有指定构造函数。
我们必须将这个问题理解为“ERC-721的OpenZeppelin合同实施的名称和符号意味着什么?”
ERC-721的name和symbol特性在ERC-721规范中定义。
/// @notice A descriptive name for a collection of NFTs in this contract
function name() external view returns (string _name);
/// @notice An abbreviated name for NFTs in this contract
function symbol() external view returns (string _symbol);此外,还提供了进一步的动力:
我们在元数据扩展中有必需的名称和符号函数。我们审查的每一个标志EIP和草案(ERC-20、ERC-223、ERC-677、ERC-777、ERC-827)都包括这些功能。我们提醒实现作者,如果反对使用该机制,空字符串是对名称和符号的有效响应。我们还提醒大家,任何智能合同都可以使用与您的合同相同的名称和符号。客户端如何确定哪些ERC-721智能合同是众所周知的(规范),不属于本标准的范围。
发布于 2022-01-27 11:55:06
ERC-721在很大程度上扩展了ERC-20。ERC-20可以具有像name和symbol这样的属性,例如链接(链接)。在ERC-721中,它是相似的,只是它是合同中所有NFT的名称和符号。此外,每个NFT还将有一个唯一的tokenId。name和symbol可以被视为表示集合。
如果您只想要一个NFT,您可以将总供应量定义为1。但是通常情况下,NFT是作为一个集合来创建的,尽管ERC-721合同中有一些单个NFT的例子。
https://ethereum.stackexchange.com/questions/120062
复制相似问题