其他分享
首页 > 其他分享> > The requested contract was not found

The requested contract was not found

作者:互联网

使用openzeppelin 部署可以升级的合约时,遇到了

The requested contract was not found. Make sure the source code is available for compilation

官网的常见问题给给出了答案

Frequently Asked Questions - OpenZeppelin Docsicon-default.png?t=LA92https://docs.openzeppelin.com/upgrades-plugins/1.x/faq#why-do-i-have-to-recompile-all-contracts-for-truffle附上对应文章内容:

为什么我必须为Truffle重新编译所有合同?
Truffle工件(build/contracts中的JSON文件)包含你每个合同的AST(抽象语法树)。我们的插件使用这些信息来验证您的合同是否[升级安全](#what-does-it-mean-for-a-contract-to-upgrade-safe)。

Truffle有时会只对发生变化的合同进行部分重新编译。当这种情况发生时,我们会要求您使用 truffle compile --all 或删除 build/contracts 目录来触发一次完整的重新编译。技术上的原因是,由于 Solidity 并不产生确定的 AST,如果不是来自同一个编译器运行,插件就无法正确解决引用。

在执行完 truffle compile --all 之后,错误消失了。

标签:requested,contracts,contract,编译,合同,truffle,Truffle,was
来源: https://blog.csdn.net/topc2000/article/details/121498800