【问题标题】:File import callback not supported?不支持文件导入回调?
【发布时间】:2021-07-23 01:01:14
【问题描述】:

试图运行:

1.) Dappuniversity 项目 (dappuniversity/dbank) 2.) 宠物店教程

Truffle v5.3.3(核心:5.3.3) 节点 v14.15.5

当 Truffle 要求它的编译器/solc 匹配 5.3.3 时,ser 如何在 0.8.4 编译代码以导入 OpenZeppelin 的 ERC20.sol 模板?

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.4;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract Token is ERC20 {

  //add minter variable

  //add minter changed event

  constructor() public payable ERC20("Name", "Symbol") {

    //asign initial minter

  }

  //Add pass minter role function

  function mint(address account, uint256 amount) public {

    //check if msg.sender have minter role

    _mint(account, amount);

  }

}

找不到源“@openzeppelin/contracts/token/ERC20/ERC20.sol”:不支持文件导入回调

【问题讨论】:

  • 运气好吗?同一条船在这里
  • 尝试删除构建工件(.json 文件)并再次运行命令。

标签: solidity erc20 openzeppelin


【解决方案1】:

错误:
Source "@openzeppelin/contracts/token/ERC20/ERC20.sol" not found: File import callback not supported

第 1 步:

安装 Solidity 扩展

第二步:

  • 右键单击错误。
  • 选择“更改默认工作区...”

第三步:

选择localNodeModule
可能需要重新启动 IDE

【讨论】:

  • 也不适合我
【解决方案2】:

ERC20 文件需要其他文件

pragma solidity ^0.8.0;

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

不清楚你是否正确安装了 OpenZeppelin。

【讨论】:

    【解决方案3】:

    安装任何缺少的依赖项并将它们添加到您的package.json
    请注意,某些包,例如 @chainlink/contracts 需要使用 yarn,因为它们使用 yarn 工作区

    npm ERR! Error: Please use yarn to install dependencies
    

    例如:

    yarn add @chainlink/contracts
    

    但是,我没有让它适用于包含@version 标签的包,因为导入路径与node_modules 中的任何文件夹都不匹配。

    npm i @openzeppelin/contracts@4.4.0
    

    当我从路径中删除版本时,错误消失了,但我不知道这是多么合法。 尽管¯\(ツ)

    它仍然可以编译

    【讨论】:

      【解决方案4】:

      对我(运行 Win 10)来说,当我清除 VSCode solidity 扩展中的设置时,此错误已解决。

      扩展菜单
      --> 右键单击​​ Juan Blanco 的 Solidity
      --> 扩展设置
      --> 滚动到“Solidity:Package Default Dependencies Contracts Directory”
      --> 删除默认值

      默认值是指向错误的路径。

      https://github.com/juanfranblanco/vscode-solidity/issues/178

      【讨论】:

        猜你喜欢
        • 2021-05-04
        • 1970-01-01
        • 2019-01-29
        • 2022-11-11
        • 2022-11-27
        • 2018-02-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多