首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有“@.”导入的Brownie导入文件

带有“@.”导入的Brownie导入文件
EN

Stack Overflow用户
提问于 2022-03-18 11:06:43
回答 1查看 432关注 0票数 0

我有一份合同:

代码语言:javascript
复制
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:

代码语言:javascript
复制
dependencies:
  - Uniswap/v3-core@1.0.0
  - Uniswap/v3-periphery@1.3.0

使用brownie编译会引发以下情况:

代码语言:javascript
复制
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的开头是这样的:

代码语言:javascript
复制
// 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/.”的进口是造成这个问题的原因

EN

回答 1

Stack Overflow用户

发布于 2022-03-18 13:48:16

在brownie-config.yaml文件中

添加重新映射

代码语言:javascript
复制
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"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71526130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档