The use of block.number in the RAACMinter contract introduces a critical issue when deployed on the Arbitrum chain, as block.number on Arbitrum reflects the Ethereum L1 block number instead of the expected L2 block number. This can cause severe inconsistencies in reward emissions and time-based logic.
In the RAACMinter contract, block.number is used to determine reward emission schedules and other time-sensitive calculations. The contract assumes that block.number increments at a predictable rate based on the BLOCKS_PER_DAY constant. However, when deployed on Arbitrum:
block.number corresponds to Ethereum's L1 block number, which progresses significantly slower than the L2 block rate.
This results in reward calculations and emission schedules being severely delayed.
Delayed or broken reward distribution: Users may receive rewards much later than expected.
Manual Review
Use block.timestamp instead of block.number for time-sensitive calculations.
Known issue LightChaser M12
Known issue LightChaser M12
Known issue LightChaser M12
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.