“@chainlink”和“@openzeppelinn”的导入已损坏

Imports for "@chainlink" and "@openzeppelinn" are broken

每当我尝试进行如下所示的两个导入时,它们都无法识别。我正在使用 VSCode。是的,我已经尝试安装和卸载很多次了。如果有人知道为什么那将是 EPIC。谢谢

import "@chainlink/contracts/src/v0.6/interfaces/AggregatorV3Interface.sol";
import "@openzeppelin/contracts/token/ERC721/ERC721Full.sol";

VSC Solidity 扩展无法读取 Brownie 的重映射。我假设您收到此错误:

Source "@chainlink/contracts/src/v0.6/interfaces/AggregatorV3Interface.sol" not found: File import callback not supported

Source "@openzeppelin/contracts/token/ERC721/ERC721Full.sol" not found: File import callback not supported

确保在 brownie-config.yaml:

中正确设置依赖项和重新映射
dependencies:
  - smartcontractkit/chainlink-brownie-contracts@0.2.1
  - OpenZeppelin/openzeppelin-contracts@3.4.0
compiler:
  solc:
    remappings:
      - '@chainlink=smartcontractkit/chainlink-brownie-contracts@0.2.1'
      - '@openzeppelin=OpenZeppelin/openzeppelin-contracts@3.4.0'

编译你的合约:

brownie compile

如果编译成功,布朗尼应该已经下载包了,可以通过运行

确认
brownie pm list

为 VSCode Solidity 扩展设置重新映射(例如在 ./vscode/settings.json 中).

"solidity.remappings": [
  "@chainlink/=<PATH_TO_BROWNIE_STUFF>/.brownie/packages/smartcontractkit/chainlink-brownie-contracts@0.2.1",
  "@openzeppelin/=<PATH_TO_BROWNIE_STUFF>/.brownie/packages/OpenZeppelin/openzeppelin-contracts@3.4.0",
]

确保所有配置文件的版本 (@x.x.x) 正确。

如果您在 Linux,<PATH_TO_BROWNIE_STUFF> 可能是您的主目录 (/home/jjreedv)