Solidity version 0.8.20+ may not work on other chains due to PUSH0
Solidity 0.8.20 defaults to the Shanghai EVM target which includes the PUSH0 opcode; deployment may fail on L2s that do not yet implement PUSH0.
Description
The compiler for Solidity 0.8.20 switches the default target EVM version to Shanghai, which includes the new PUSH0 opcode. This opcode may not yet be implemented on all L2s, so deployment on these chains will fail. To work around this issue, use an earlier EVM version. While the project itself may or may not compile with 0.8.20, other projects with which it integrates or extends this project may, and those projects will have problems deploying these contracts and libraries.
Impact
The issue can lead to the contracts needing to be deployable on targeted chains.
Recommendation
We recommend using the correct Solidity version for each targeted chain.
Resolution
Unresolved.

