首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >smart合约中的独家NFT

smart合约中的独家NFT
EN

Stack Overflow用户
提问于 2022-01-28 17:03:03
回答 1查看 138关注 0票数 0

我只想为每个智能合同制作一个独家NFT。所有的教程和书籍都展示了如何通过继承ERC721来制作收藏品。所以简单的代码是:

代码语言:javascript
复制
pragma solidity ^0.8.0;


import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";
import "@openzeppelin/contracts/utils/Counters.sol";
import "hardhat/console.sol";

    contract SimpleCollectible is ERC721 {

      uint256 public tokenCounter;
      constructor () public ERC721 ("Dogie", "DOG"){
        tokenCounter = 0;
      }
      function createCollectible(string memory tokenURI) public returns (uint256) {
        uint256 newItemId = tokenCounter;
        _safeMint(msg.sender, newItemId);
        _setTokenURI(newItemId, tokenURI);
        tokenCounter = tokenCounter + 1;
        return newItemId;
      }
    }

如何将造币限制在一件艺术品上?

EN

回答 1

Stack Overflow用户

发布于 2022-01-28 18:19:19

向tokenCounter添加一个条件。您可以使用以下内容:

代码语言:javascript
复制
function createCollectible(string memory tokenURI) public returns(uint256) {
    require(tokenCounter == 0, "error msg here");
    uint256 newItemId = tokenCounter;
    _safeMint(msg.sender, newItemId);
    _setTokenURI(newItemId, tokenURI);
    tokenCounter = tokenCounter + 1;
    return newItemId;
  }

事实上,有很多方法可以达到同样的效果。也许你可以用一个简单的布尔值来节省一点汽油。

我希望你认为这是有用的:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70897461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档