程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了导入 OpenZeppelin 的 ERC721Full.sol 库时解析错误大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_197_0@如何解决导入 OpenZeppelin 的 ERC721Full.sol 库时解析错误? 开发过程中遇到导入 OpenZeppelin 的 ERC721Full.sol 库时解析错误的问题如何解决?下面主要结合日常开发的经验,给出你关于导入 OpenZeppelin 的 ERC721Full.sol 库时解析错误的解决方法建议,希望对你解决导入 OpenZeppelin 的 ERC721Full.sol 库时解析错误有所启发或帮助;

当我尝试使用 truffle 编译我的智能合约时,出现了以下错误: 解析@openzeppelin/contracts/token/ERC721/ERC721.sol 时出错:ParsedContract.sol:51:72:ParserError:应为“{”,但保留关键字“overrIDe”。

我的智能合约:

pragma solidity 0.5.0;

import "@openzeppelin/contracts/token/ERC721/ERC721.sol";

contract color is ERC721 {} 

有谁知道如何解决这个问题?我知道这不是一个新问题,但我还没有找到对我有用的堆栈溢出或其他论坛解决方案。提前致谢。

@H_197_0@解决方法

所以你的问题是在 ERC721 合约中有一个 constructor(String memory,String memory) 函数,它接受两个参数,第一个是 NFT 代币名称,第二个是 NFT 代币符号。
当您在 ERC721 合同中继承 color 合同时,您必须定义一个 constructor 函数来触发 constructor 合同的 ERC721
简而言之,您应该按如下方式修改您的合同:

  contract Color is ERC721 { 
    constructor(String memory name,String memory symbol) ERC721(name,symbol) { }
  }

或者如果你想要预设名称和符号,你可以这样做:

  contract Color is ERC721 { 
    constructor()  ERC721("Name","Symbol") { }
  }

编辑

使您的文件代码如下:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC721/ERC721.sol";

contract MyCollectible is ERC721 {
    constructor() ERC721("MyCollectible","MCO") {
    }
}

还要确保您已运行 npm install @openzeppelin/contracts

大佬总结

以上是大佬教程为你收集整理的导入 OpenZeppelin 的 ERC721Full.sol 库时解析错误全部内容,希望文章能够帮你解决导入 OpenZeppelin 的 ERC721Full.sol 库时解析错误所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。