【问题标题】:Solidity importing problem on VSCode (WSL2) and BrownieVSCode (WSL2) 和 Brownie 上的 Solidity 导入问题
【发布时间】:2021-11-23 04:27:18
【问题描述】:

我正在使用在 Windows 10 主机上的 WSL2 Ubuntu 20.04 上运行的 Brownie 框架使用 Solidity。

我必须将链链接依赖项导入我的项目,所以我有以下导入器

import "@chainlink/contracts/src/v0.6/interfaces/AggregatorV3Interface.sol";
import "@chainlink/contracts/src/v0.6/vendor/SafeMathChainlink.sol"; 

为了让它们正常工作,我将以下代码添加到 brownie-config.yaml

dependencies:
  # - <organization/repo>@<version>
  - smartcontractkit/chainlink-brownie-contracts@1.1.1
compiler:
  solc:
    remappings:
      - "@chainlink=smartcontractkit/chainlink-brownie-contracts@1.1.1"

所以运行 brownie compile,编译器工作正常,但是 Visual Studio 代码抱怨导入

Vscode error

附加信息:我正在使用 romote 编译器版本,如果我将其更改为“localNodeModule”,Vscode 会停止抱怨导入但它开始抱怨solidity 版本:

Solidity error

我不能再编译这个项目了。

我读过一些类似这样的帖子:VScode Solidity extension - not finding openzepplin imports 也有类似的问题,但不幸的是问题仍未解决。

【问题讨论】:

标签: visual-studio-code blockchain solidity brownie


【解决方案1】:

Brownie 将库合约数据(Chainlink、OpenZeppelin、其他依赖项)存储在 Users/$yourUsername/.brownie/packages 中。至少在 Mac 上是这样。如果您使用的是 Windows,请查找 .brownie 目录。

要将 Ethereum VS Code 扩展指向这些文件,您可以添加 Solidity 重新映射。这可以通过添加以下内容来完成:

"solidity.remappings": [
    "@openzeppelin/=/Users/rafi/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.4.0"
  ]

到 VS Code 中的 settings.json 文件。重启 VS Code 后,警告/错误应该会消失!

查看readme 了解更多关于以太坊 VS 代码扩展的信息。

【讨论】:

  • 谢谢拉菲!也为我解决了这个问题。
  • 你怎么没有得到赞成票?刑事!赞成
猜你喜欢
  • 2022-06-21
  • 2021-04-07
  • 2021-07-22
  • 2020-09-18
  • 1970-01-01
  • 1970-01-01
  • 2021-05-16
  • 2020-02-14
  • 2021-06-12
相关资源
最近更新 更多