【问题标题】:Unable to fetch 0x contract from Etherscan and brownie无法从 Etherscan 和 brownie 获取 0x 合约
【发布时间】:2021-10-30 15:09:30
【问题描述】:

我正在尝试测试在巧克力蛋糕生态系统中导入 0x 的智能合约。从资源管理器或从 abi 导入时出现以下错误,而且看起来 solc 没有计算我在计算机上安装的依赖项

CompilerError: solc returned the following errors:

    /home/merklejerk/code/0x-protocol/contracts/zero-ex/contracts/src/external/IFlashWallet.sol:23:1: ParserError: Source "@0x/contracts-utils/contracts/src/v06/interfaces/IOwnableV06.sol" not found: File outside of allowed directories.
    import "@0x/contracts-utils/contracts/src/v06/interfaces/IOwnableV06.sol";

^------------------------------------------------------------------------

【问题讨论】:

    标签: ethereum solidity


    【解决方案1】:

    可能编译器没有以正确的方式解决相对路径。

    可能您导入的文件的路径错误或未从编译器正确构建:导入文件时IOwnableV06.sol 尝试删除@ 符号并将其替换为./../,具体取决于您的项目文件夹结构。例如import "../../0x/the-path-here/File.sol";

    或者您要导入的文件可能不在允许的路径中: https://docs.soliditylang.org/en/v0.8.7/using-the-compiler.html#how-it-works (搜索--allow-paths)。

    【讨论】:

    • 事实上,我正在使用 brownie 并将其称为 etherscan 的 IOwnableV06.sol,该文件不在我的本地存储库中。问题来自于 brownie 如何处理托管合约的获取和编译
    • 也许你可以在本地导入IOwnableV06.sol并重新映射目录路径:eth-brownie.readthedocs.io/en/stable/…
    猜你喜欢
    • 2021-11-26
    • 2021-11-14
    • 2017-11-26
    • 2022-11-13
    • 2021-08-10
    • 2021-06-12
    • 2022-08-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多