我在用Foundry写一份聪明的合同。当我试图像这样从github导入合同时:
import "@openzeppelin/contracts/token/ERC20/IERC20";
我会看到这样的错误:
Source "@openzeppelin/contracts/token/ERC20/IERC20" not found: File import callback not supported
我想我已经做了必要的事情,我在其中加入了这样的方案:
forge install Openzeppelin/openzeppelin-contracts
并在foundry.toml文件中进行书面的映射。
remappings = ["@openzeppelin/=lib/openzeppelin-contracts/contracts"]
但我还是看到了错误。我怎样才能纠正错误?
发布于 2022-07-04 10:14:15
试着换第二个。重新映射的右侧的“合同”
如果使用VS代码,请将其添加到项目根目录中的.vscode中,如下所示:
{ "solidity.packageDefaultDependenciesContractsDirectory": "src",
"solidity.packageDefaultDependenciesDirectory": "lib",
"solidity.compileUsingRemoteVersion": "v0.8.15",
"solidity.remappings": [ "forge-std/=lib/forge-std/src/",
"@openzeppelin/=lib/openzeppelin-contracts/",]
}
发布于 2022-09-07 14:48:38
重映射必须在remapping.txt文件中,而不是在foundry.toml中。
后加
@openzeppelin/=lib/openzeppelin-contracts/
对于这个remamping.txt,错误应该消失。
请参阅:https://book.getfoundry.sh/projects/dependencies
“您可以通过在项目根目录中创建一个remappings.txt文件来自定义这些映射。”
https://ethereum.stackexchange.com/questions/131140
复制相似问题