我有一份合同:
pragma solidity >=0.8.0;
import "Uniswap/v3-core@1.0.0/contracts/interfaces/IUniswapV3Pool.sol";
import "Uniswap/v3-periphery@1.3.0/contracts/interfaces/ISwapRouter.sol";
contract Test {
}这个布朗尼-config.yaml:
dependencies:
- Uniswap/v3-core@1.0.0
- Uniswap/v3-periphery@1.3.0使用brownie编译会引发以下情况:
ParserError: Source "@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol" not found: File outside of allowed directories.
--> C:/Users/username/.brownie/packages/Uniswap/v3-periphery@1.3.0/contracts/interfaces/ISwapRouter.sol:5:1:
|
5 | import '@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol';
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^对我来说,这个导入不能被解析是有意义的,但是是否存在不修改Uniswap源代码来修复这个问题呢?
编辑:为了澄清,ISwapRouter.sol的开头是这样的:
// SPDX-License-Identifier: GPL-2.0-or-later
pragma solidity >=0.7.5;
pragma abicoder v2;
import '@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol';“@uniswap/.”的进口是造成这个问题的原因
发布于 2022-03-18 13:48:16
在brownie-config.yaml文件中
添加重新映射
compiler:
solc:
remappings:
# put the correct version
- "@uniswap/lib=uniswap/uniswap-lib@1.1.2"
- "@uniswap/v2-core=uniswap/uniswap-v2-core@1.0.1"https://stackoverflow.com/questions/71526130
复制相似问题