JavaScript 不可用。

我们检测到浏览器禁用了 JavaScript。请启用 JavaScript 或改用支持的浏览器来继续访问

部署合约时候报错: invalid opcode: opcode 0x5f not defined: failed to execute message; message index: 0

作者:Anban Chu

发表日期:2023年06月25日

所属目录:合约开发

标签:

场景描述

部署合约的时候,抱错信息如下:

invalid opcode: opcode 0x5f not defined: failed to execute message; message index: 0

BUG 分析

0x5f 是 PUSH0 指令,是 Solidity 0.8.20 开始才有的操作码:如果你部署的公链,底层 EVM 没有升级到 shanghai 这个版本,则会失败。

关于 PUSH0 指令的引入的说明: https://eips.ethereum.org/EIPS/eip-3855

关于 Solidity 0.8.20 版本更新的内容说明: https://blog.soliditylang.org/2023/05/10/solidity-0.8.20-release-announcement/

解决方式

对于没有升级该版本的公链,开发合约的时候,可以使用 Solidity 0.8.19 版本来避开。





以上就是本篇文章的全部内容了,希望对你有帮助。

>> 本站不提供评论服务,技术交流请在 Twitter 上找我 @anbang_account