20,000 USDC
View results
Submission Details
Severity: medium
Valid

Solidity version 0.8.20 may not work on other chains due to `PUSH0`

Summary

The compiler for Solidity 0.8.20 switches the default target EVM version to Shanghai, which includes the new PUSH0 op code. This op code 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 which extend this project may, and those projects will have problems deploying these contracts/libraries.

Impact

File: Beedle.sol
2: pragma solidity ^0.8.19;
File: Fees.sol
2: pragma solidity ^0.8.19;
File: Lender.sol
2: pragma solidity ^0.8.19;
File: Staking.sol
2: pragma solidity ^0.8.19;
File: interfaces/IERC20.sol
2: pragma solidity ^0.8.19;
File: interfaces/ISwapRouter.sol
2: pragma solidity ^0.8.19;
File: utils/Errors.sol
2: pragma solidity ^0.8.19;
File: utils/Ownable.sol
2: pragma solidity ^0.8.19;
File: utils/Structs.sol
2: pragma solidity ^0.8.19;

Support

FAQs

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