0

*****我的 .sol 文件的顶部行 // SPDX-License-Identifier: MIT pragma solidity ^0.8.0;

导入“@openzeppelin/contracts/token/ERC721/ERC721.sol”;

合约 ParcelAsset 为 ERC721 {

******命令行VScode brownie编译contracts\ParcelAsset.sol

我得到这个错误。ValueError:'>=0.6.0 <0.8.0 import "@openzeppelin/contracts/token/ERC721/ERC721.sol"'中的无效 NPM 块:'import'

*********** 我的 brownie-config.yaml 依赖项的片段:

  • smartcontractkit/chainlink-brownie-contracts@1.1.1
  • OpenZeppelin/openzeppelin-contracts@3.4.0 编译器:solc:重新映射:
    • '@chainlink=smartcontractkit/chainlink-brownie-contracts@1.1.1'
    • '@openzeppelin=OpenZeppelin/openzeppelin-contracts@3.4.0'

我已经尝试 npm install @openzeppelin/contracts 并将solidity更新到0.8.0

有人知道我做错了什么吗?

4

1 回答 1

0

我通过这样做解决了它: npm install @chainlink/contracts --save

并在 yaml 文件中执行:在此处输入图像描述

我个人并没有费心导入 openzeppelin,因为所有安全数学功能(如果你正在导入的话)都已经在solidity 0.8.0 中实现了,所以如果你使用的是solidity 0.8.0,那么安全数学库已经过时了

于 2022-02-10T20:08:17.520 回答