首页 > 解决方案 > Visual Code Studio,不支持文件导入回调 - 未找到文件源

问题描述

在尝试解决我的项目的另一个问题时,我一定是在此过程中破坏了一些东西,但我不知道如何解决这个问题。

这些是我对该项目的导入语句:

pragma solidity >=0.6.6;

import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@chainlink/contracts/src/v0.6/VRFConsumerBase.sol";

这是我的 brownie-config.yaml

depencencies:
  - OpenZeppelin/openzeppelin-contracts@3.4.0
  - smartcontractkit/chainlink-brownie-contracts@1.0.2
compiler:
  solc:
    remappings: 
      - '@openzeppelin=OpenZeppelin/openzeppelin-contracts@3.4.0'
      - '@chainlink=smartcontractkit/chainlink-brownie-contracts@1.0.2'

但是尽管所有这些工作直到昨天,尝试编译只会给我这些错误:

PS C:\Users\XXX\Desktop\Project> brownie compile
INFO: Could not find files for the given pattern(s).
Brownie v1.16.4 - Python development framework for Ethereum

New compatible solc version available: 0.6.6
Compiling contracts...
  Solc version: 0.6.6
  Optimizer: Enabled  Runs: 200
  EVM Version: Istanbul
CompilerError: solc returned the following errors:

contracts/AdvancedCollectible.sol:3:1: ParserError: Source "OpenZeppelin/openzeppelin-contracts@3.4.0/contracts/token/ERC721/ERC721.sol" not found: File not found.
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
^-------------------------------------------------------^

contracts/AdvancedCollectible.sol:4:1: ParserError: Source "smartcontractkit/chainlink-brownie-contracts@1.0.2/contracts/src/v0.6/VRFConsumerBase.sol" not found: File not found.
import "@chainlink/contracts/src/v0.6/VRFConsumerBase.sol";
^---------------------------------------------------------^

我该如何解决这个问题?我已经看到了一些类似问题的答案,这些问题引用了 node.js 或我尝试导入的东西的本地副本,但是这个命令不应该从 github 上提取东西吗?为什么它没有突然这样做呢?

标签: githubimportethereumsoliditybrownie

解决方案


使用 npm 在文件夹的根目录安装 Openzeppelin

npm i @openzeppelin/contracts

Chainlink 也是一样


推荐阅读