【问题标题】:not found utils/context.sol when i import from openzepplin当我从 openzepplin 导入时找不到 utils/context.sol
【发布时间】:2021-07-12 04:31:06
【问题描述】:

我从 openzappline 复制了一份合同。但是当我在 remix 上编译它时,它给了我错误....找不到 utils/context.sol。

这里是导入

pragma solidity ^0.8.0;

import "./IERC20.sol";
import "./extensions/IERC20Metadata.sol";
import "../../utils/Context.sol";

contract ERC20 is Context, IERC20, IERC20Metadata {
mapping (address => uint256) private _balances;

mapping (address => mapping (address => uint256)) private _allowances;

uint256 private _totalSupply;

string private _name;
string private _symbol;

【问题讨论】:

    标签: importerror solidity smartcontracts openzeppelin


    【解决方案1】:

    import "@openzeppelin/contracts/utils/Context.sol";

    这应该有帮助

    被调用的文件来自根目录,而不是 ERC20 文件中。

    【讨论】:

      【解决方案2】:
      import "../../utils/Context.sol";
      

      此行尝试从“utils”文件夹中导入文件Context.sol,该文件夹相对于您的ERC20 合同所在的文件夹位于“两个文件夹上方”。

      在这种情况下(没有其他合同导入Context.sol)最简单的解决方案是将Context.sol 复制粘贴到可访问的位置(例如,与ERC20 相同的文件夹)并更改导入路径(例如import "./Context.sol")。

      【讨论】:

      • 当我删除 context.sol 时,这行 import "./extensions/IERC20Metadata.sol" 显示相同的错误;
      • 那么您在文件夹extensions 中没有相对于根文件夹的IERC20Metadata.sol 文件。遵循我的回答中的相同指南,但使用 IERC20Metadata.sol 文件
      • 所以我必须把这个文件放在同一个文件夹中的混音中?
      • @FSO 没错。不要忘记更改导入,使它们也指向同一个文件夹。
      • 在哪里可以找到 ec20detailed?
      猜你喜欢
      • 2021-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-29
      • 1970-01-01
      • 1970-01-01
      • 2021-10-28
      • 1970-01-01
      相关资源
      最近更新 更多