According to the documentation, the contract VotingBooth.sol
is intended to be deployed on the Arbitrum network using solidity version 0.8.23:
The project uses the solidity version ^0.8.23 and the contract will be deployed on Arbitrum. The latest solidity version is 0.8.23, but the problem with compiling is that Arbitrum is NOT compatible with solidity version 0.8.20 and later.
The compiler for Solidity 0.8.20 switches the default target EVM version to Shanghai, which includes the new PUSH0
opcode. This opcode is not yet implemented on some L2s
including Arbitrum
, meaning contracts deployed on those chains will be non-functional. The contract VotingBooth.sol
uses a solidity version 0.8.23 and after deploying on Arbitrum the contract will be unusable.
Corrupted or non-functional contracts when deployed on Arbitrum.
Here is a link to the Arbitrum
documentation:
https://docs.arbitrum.io/for-devs/concepts/differences-between-arbitrum-ethereum/solidity-support
Manual Review
Use the latest compatible with Arbitrum solidity version that is 0.8.19.
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.