This document outlines the default EVM (Ethereum Virtual Machine) version associated with each Solidity compiler version.
With the Shanghai compiler, the default target EVM version includes PUSH0 opcodes. Ensure you select the appropriate EVM version for deployment, especially on non-mainnet chains like L2 chains that may not yet support PUSH0, to avoid deployment failures.
You can now specify the EVM version for contract compilation. Valid values include "homestead", "tangerineWhistle", "spuriousDragon", "byzantium" (the default), and "constantinople".
For more information, refer to the Solidity Changelog.