Beginner FriendlyFoundry
100 EXP
View results
Submission Details
Severity: medium
Valid

`Pragma solidity ^0.8.23` does not support `PUSH0` OPCODE which leads to a failed deployment on Arbitrum

Summary

Pragma version incompatible with the Arbitrum chain.

Vulnerability Details

The contract in scope uses a floating 0.8.23 solidity version. Since 0.8.20, solidity uses the new PUSH0 opcode introduced in the Shanghai hard fork, which is now the default EVM version in the compiler and the one being currently used to compile the project. The project intends to deploy to Arbitrum, but this chain does not support the Shanghai hard fork yet.

Impact

Failed deployment, wasting gas.

Tools Used

Manual review

Recommendations

--pragma solidity ^0.8.23;
++pragma solidity 0.8.19;
Updates

Lead Judging Commences

0xnevi Lead Judge over 1 year ago
Submission Judgement Published
Validated
Assigned finding tags:

PUSH0 not supported for solidity solidity ^0.8.20

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.