指定的输入源无效

问题描述

在使用 remix IDE 构建智能合约时,使用以下导入获取指定的输入源无效错误

import "https://github.com/aave/flashloan-Box/blob/Remix/contracts/aave/FlashLoanReceiverBase.sol"; 

在 remix 中组合一个超级基本的示例智能合约。如果我不包含 import 语句,它编译得很好。

pragma solidity ^0.6.6;
import "https://github.com/aave/flashloan-Box/blob/Remix/contracts/aave/FlashLoanReceiverBase.sol";
contract InBox {
    string public message; 
    
    constructor(string memory initialMessage) public {
        message = initialMessage;
    }
    
    function setMessage(string memory newMessage) public {
        message = newMessage;
    }
    
    function getMessage() public view returns (string memory) {
        return message;
    }
}

解决方法

出现此问题是因为使用相对路径进行嵌套导入。

FlashLoanReceiverBase.sol 正在尝试导入相对路径 ./IFlashLoanReceiver.sol(不是绝对路径 https://github.com/aave/flashloan-box/blob/Remix/contracts/aave/IFlashLoanReceiver.sol)。

由于您在自己的合同所在的文件夹中没有名为 IFlashLoanReceiver.sol 的合同,因此此导入失败。

最佳解决方案是向 aave/flashloan-box 存储库提交 PR,使所有导入路径成为绝对路径。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...