gpt4 book ai didi

solidity - 关于 openzeppelin-contracts Remix 中的 extcodehash 的警告

转载 作者:行者123 更新时间:2023-12-05 03:58:55 26 4
gpt4 key购买 nike

我已经在 Remix IDE 中编译了 openzeppelin-contracts 代码。同时,我收到以下警告。

Warning: The "extcodehash" instruction is not supported by the VM version "byzantium" you are currently compiling for. It will be interpreted as an invalid instruction on this VM. assembly { codehash := extcodehash(account) }

我收到了所有最新版本的 EVM 的警告,而不仅仅是拜占庭版本。我试图寻找有关此警告的解决方案,但没有成功。有人知道如何“解决”这个问题吗?

最佳答案

问题是合约从 OpenZeppelin Contracts GitHub master 分支导入,需要更新的编译器版本。

您应该只使用在 OpenZeppelin Contracts 官方版本中发布的代码,最新版本是 2.3 .在 Remix 上通过 GitHub 导入时,您可以指定发布标签,(否则您将在 master 分支中获得最新代码)。

警告是由以下原因引起的: Compiler 0.5.3 has a default EVM version of byzantium同时 Compiler 0.5.11 has a default EVM version of petersburg .您可能还想使用编译器版本 0.5.11。

使用 OpenZeppelin Contracts 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,还可以查看 Getting Started有关如何设置开发环境的信息指南。

如果您对使用 OpenZeppelin 有任何疑问,可以在社区论坛中提问:https://forum.openzeppelin.com/

披露:我是 OpenZeppelin 的社区经理

关于solidity - 关于 openzeppelin-contracts Remix 中的 extcodehash 的警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57540884/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com