On Arbitrum, the block.number
returns the most recently synced L1 block number, which is updated roughly once per minute. This synchronization lag means that block.number
on Arbitrum can be outdated compared to the actual L1 block number.
Using block.number
on Arbitrum to determine the prior votes might not reflect the most recent changes on the L1 chain due to the synchronization delay. This can lead to inaccuracies when querying recent blocks. Functions that rely on the current block number to provide accurate data (such as historical votes) may return incorrect or outdated information, potentially causing misinformation and unreliable contract behavior.
Use block.timestamp
rather than block.number
to mitigate the synchronization lag issue. This ensures that time-based calculations remain accurate, despite the block number synchronization delay. Alternatively, fetch the L1 block number directly or implement a buffer to ensure accurate vote calculations.
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.