The protocol employs Solidity compiler version 0.8.23, yet it aims for deployment on Arbitrum, a Layer 2 (L2) network. However, this introduces bytecode complications involving the PUSH0 opcode, which is incompatible with Arbitrum. The recommended solution is to either revert to Solidity compiler version 0.8.19 or incorporate evm_version = "paris"
in the foundry.toml
configuration file to ensure compatibility with Arbitrum.
The issue lies in the bytecode generated by Solidity compiler version 0.8.23, specifically with the PUSH0 opcode, causing deployment failures on L2 networks like Arbitrum. This arises due to the lack of support for PUSH0 on certain L2 networks.
Deployment failures on Arbitrum or other L2 networks pose a significant hindrance to the protocol's successful launch. The incompatibility may affect the functionality and accessibility of the protocol on these networks.
Manual Review
To address the problem, the recommended course of action is to downgrade the Solidity compiler version to 0.8.19 or insert evm_version = "paris"
in the foundry.toml
configuration file. This ensures alignment with L2 networks like Arbitrum, avoiding deployment failures and ensuring the protocol's compatibility.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.