はじめに

初めまして。 CryptoGamesというブロックチェーンゲーム企業でエンジニアをしている cardene(かるでね) です! スマートコントラクトを書いたり、フロントエンド・バックエンド・インフラと幅広く触れています。

代表的なゲームはクリプトスペルズというブロックチェーンゲームです。

以下でも情報発信しているので、興味ある記事があればぜひ読んでみてください!

今回はSolidityのバージョン0.8.23での変更点をまとめていきます。

以下の公式のリリース記事をもとにまとめていきます。

変更点

Solidityのバージョン0.8.23では以下の項目が変更されました。

  • 重要なバグ修正。

重要なバグ修正

Solidityのバージョン0.8.5で導入されたverbatim命令を含むブロックが、内容が完全に同じではないのに同じとして扱われ、重複排除(デデュプリケーション)されてしまうバグが起きていました。

verbatimとは、Yulコンパイラが認識していないオペコードをバイトコードに挿入したり、最適化プロセスで変更されないバイトコードシーケンスを作成することができます。

より詳しくは以下の記事を参考にしてください。

異なる内容のverbatim命令を含むブロックが1つにまとめられてしまい、予期しない動作が起きていました。

Yulコンパイルで最適化が有効になっている場合にのみ起こっており、Solidityコードやインラインアセンブリで使用されるYulには影響していませんでした。

Solidityのバージョン0.8.23では、verbatim命令を含むブロックが正しく扱われるようになり、正確なコンパイルが行われるようになりました。

その他の変更

その他の細かい修正については以下の記事を参考にしてください。

最後に

今回はSolidityのバージョン0.8.23の変更点をまとめました。

以下でも情報発信しているので、興味ある記事があればぜひ読んでみてください!