Submitted by IceBear, also found by btk
According to Arbitrum Docs, block.number returns the most recently synced L1 block number. Once per minute, the block number in the Sequencer is synced to the actual L1 block number. Using block.number as a clock can lead to inaccurate timing.
It also presents an issue for Optimism because each transaction is its own block.
https://github.com/code-423n4/2023-06-lybra/blob/main/contracts/lybra/governance/LybraGovernance.sol#L152
Use block.timestamp rather than block.number
Timing
LybraFinance commented:
LybraFinance acknowledged
