找不到源“@chainlink/contracts/src/v0.6/interfaces/AggregatorV3Interface.sol”:不支持文件导入回调

问题描述 投票:0回答:5

我在同一个问题上看到了很多问题并尝试了所有这些,但它仍然没有解决我的回调问题。

// SPDX-License-Identifier: MIT

pragma solidity ^0.6.0;

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

contract FundMe {
    using SafeMathChainlink for uint256;

error message doesn't go away for me

这是我的 Brownie-config.yaml 文件

dependencies:
  # -<organization/repo>@<version>
  - smartcontractkit/[email protected]
compiler:
  solc:
    remappings:
      - "@chainlink=smartcontractkit/[email protected]"

之后我编译并成功,但错误不会消失。 brownie-compile

对此的任何帮助都将是史诗般的。 先谢谢你了

solidity brownie
5个回答
1
投票

编译器不知道文件在哪里,所以只需创建一个新文件夹在名为tests的contracts文件夹中,然后创建一个新文件命名:AggregatorV3Interface.sol,然后将此代码粘贴到其中:

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

interface AggregatorV3Interface {
  function decimals() external view returns (uint8);

  function description() external view returns (string memory);

  function version() external view returns (uint256);

  // getRoundData and latestRoundData should both raise "No data present"
  // if they do not have data to report, instead of returning unset values
  // which could be misinterpreted as actual reported values.
  function getRoundData(uint80 _roundId)
    external
    view
    returns (
      uint80 roundId,
      int256 answer,
      uint256 startedAt,
      uint256 updatedAt,
      uint80 answeredInRound
    );

  function latestRoundData()
    external
    view
    returns (
      uint80 roundId,
      int256 answer,
      uint256 startedAt,
      uint256 updatedAt,
      uint80 answeredInRound
    );
}

之后重新编译项目然后运行,它将运行没有任何错误,你将得到结果。 欲了解更多信息,请访问:: 这个问题


0
投票

我也有同样的问题。这就是解决我系统上的问题的方法:

  • 我检查了通过终端中的“nmp -g list”安装的 solicity 版本。看来我安装了0.8.xx版本。
  • 我通过'npm install -g [email protected]'
  • 降级到版本0.6.6
  • 我重新检查了安装的版本,它给了我这个: enter image description here
  • 我通过“布朗尼编译”编译并且它有效,尽管仍然有“红线”说明文件中的问题。 Json文件已生成

希望这有帮助,一直在寻找一段时间。


0
投票

我确实通过要求我正在使用的 IDE(Visual Studio Code)使用接口 v0.7 的版本来修复此问题,因为我想导入 v0.7 接口:

@chainlink/contracts/src/v0.7/interfaces/AggregatorV3Interface.sol

chaingingTheGlobalCompilerVersion

仅供参考:我正在关注 YouTube 教程,该教程告诉您将

@chainlink
重新映射到版本 1.1.1 中的 git 路径,但接口文件现在已压缩,因此我选择 v0.7,其中文件仍然可用。

remappintToRelease0.3.0


0
投票

我遇到了同样的问题,只需尝试将 Solidity 版本更改为 0.8.7,将 chainlink 版本更改为 0.8

pragma solidity ^0.8.7;
import "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol";

0
投票

//导入“@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol”; 导入“@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol”;

这样做可以轻松工作

© www.soinside.com 2019 - 2024. All rights reserved.