# Solidity 0.8.23での変更点まとめ

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

- URL: https://cardene.dev/articles/f64f07a9d706fe
- 公開日: 2024-06-22
- 更新日: 2024-06-22
- トピック: Blockchain
- タグ: ブロックチェーン, solidity, ethereum, smartcontract

# はじめに

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

https://cryptogames.co.jp/

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

https://cryptospells.jp/

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

https://twitter.com/cardene777

https://chaldene.net/

https://qiita.com/cardene

https://cardene.substack.com/

https://mirror.xyz/0xcE77b9fCd390847627c84359fC1Bc02fC78f0e58

https://cardene.notion.site/EIP-2a03fa3ea33d43baa9ed82288f98d4a9

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

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

https://soliditylang.org/blog/2023/11/08/solidity-0.8.23-release-announcement

# 変更点

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


- 重要なバグ修正。

# 重要なバグ修正

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

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

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

https://docs.soliditylang.org/en/latest/yul.html#verbatim

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

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

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

# その他の変更

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

https://soliditylang.org/blog/2023/11/08/solidity-0.8.23-release-announcement

# 最後に

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

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

https://twitter.com/cardene777

https://chaldene.net/

https://qiita.com/cardene

https://cardene.substack.com/

https://mirror.xyz/0xcE77b9fCd390847627c84359fC1Bc02fC78f0e58

https://cardene.notion.site/EIP-2a03fa3ea33d43baa9ed82288f98d4a9
