我在Remix中编译了openzeppelin合同代码。同时,我得到了以下警告。
警告:您当前正在编译的VM版本"byzantium“不支持”extcode散列“指令。它将被解释为对此VM的无效指令。程序集{码哈希:= (帐户)}
我得到了EVM的所有最新版本的警告,而不仅仅是byzantium。我试图就这一警告寻求解决办法,但没有成功。有人知道如何“解决”这个问题吗?
发布于 2019-08-19 06:14:17
问题是契约从OpenZeppelin Contracts GitHub主分支导入,后者需要更晚的编译器版本。
您应该只使用在正式发布的OpenZeppelin合同中发布的代码,最新的版本是2.3。在Remix上通过GitHub导入时,您可以指定release (否则将在主分支中得到最新的代码)。
该警告是由:byzantium而非petersburg引起的。您还可能希望使用0.5.11版本的编译器。
使用OpenZeppelin合同2.3.0版本的导入将是:
import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v2.3.0/contracts/token/ERC721/ERC721Full.sol";
import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v2.3.0/contracts/math/SafeMath.sol";或者,要使用Remix,请查看快速入门指南,了解如何设置开发环境的信息。
如果你对使用OpenZeppelin有疑问,你可以在社区论坛上问:https://forum.openzeppelin.com/
披露:我是OpenZeppelin的社区经理
https://stackoverflow.com/questions/57540884
复制相似问题