我正在尝试测试一个在布朗尼生态系统中导入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";
^------------------------------------------------------------------------
可能是编译器没有正确解析相对路径。
也许你导入的文件路径是错误的,或者没有从编译器正确构建:当导入文件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
).