【问题标题】:OpenZeppelin ERC721Full ImportOpenZeppelin ERC721完全导入
【发布时间】:2021-10-06 22:17:39
【问题描述】:

我正在尝试重新创建一个 nft 项目,但文件 ERC721Full.sol 不再存在于当前版本的 OpenZeppelin Repo 中。我尝试将 ERC721Full 导入的所有文件导入我的智能合约文件,但我的计算机似乎无法访问这些导入。有谁知道解决办法吗?

pragma solidity ^0.4.24;

import "./ERC721.sol";
import "./ERC721Enumerable.sol";
import "./ERC721Metadata.sol";

contract Color is ERC721, ERC721Enumerable, ERC721Metadata {
  constructor(string name, string symbol) ERC721Metadata(name, symbol)
    public
  {
     // E.G. color = "#FFFFFF"
    function mint(string memory _color) public {
      require(!_colorExists[_color]);
        colors.push(_color);
        uint _id = colors.length - 1;
        _mint(msg.sender, _id);
        _colorExists[_color] = true;
  }
}

【问题讨论】:

    标签: openzeppelin nft


    【解决方案1】:

    Here 是 ERC721Full 文件及其所有导入。

    您可以下载该文件,并将其导入到您的项目本地,或者将其复制粘贴到您的合同文件中。

    导入后,只需在合同上执行以下操作:

    contract Color is ERC721Full {
      using SafeMath for uint;
    
      ...
    
      constructor(string name, string symbol) ERC721Full(name, symbol) public {}
    
      ...
    
      // E.G. color = "#FFFFFF"
      function mint(string memory _color) public {
       ...
      }
    
    ...
    
    }
    

    这是docs,他们也会为您提供指导,最好的问候。

    【讨论】:

      【解决方案2】:

      改为导入:

      import "./ERC721.sol";
      import "./ERC721Enumerable.sol";
      import "./ERC721Metadata.sol";
      

      你必须导入这个:

      import  "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol";
      
      import  "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol";
      

      然后您的合同将如下所示:

      contract Color is ERC721Enumerable, IERC721Metadata {
        constructor(string name, string symbol) ERC721Enumerable(name, symbol)
          public { ... }
      }
      

      【讨论】:

        猜你喜欢
        • 2022-11-11
        • 2021-10-06
        • 2021-10-08
        • 1970-01-01
        • 2021-07-20
        • 2021-11-14
        • 1970-01-01
        • 1970-01-01
        • 2021-05-04
        相关资源
        最近更新 更多