The RAACMinter contract uses a hardcoded BLOCKS_PER_DAY = 7200 constant that assumes 12-second block times. While this works correctly on Ethereum mainnet, it leads to significantly higher emission rates on chains with faster block times, and unpredictable emissions on L2s with variable block times.
The contract uses block-based calculations with a hardcoded constant:
The emission calculation happens in the tick() function:
Let's analyze how this affects different chains:
Ethereum (12s blocks) - Works Correctly
BSC (3s blocks) - 4x Higher Emission:
Polygon (2s blocks) - 6x Higher Emission:
L2s (variable block times) - Unpredictable:
Economic Imbalance:
BSC: 4x higher emission rate than intended
Polygon: 6x higher emission rate than intended
L2s: Unpredictable emission rates
Cross-Chain Arbitrage:
Users can exploit higher emission rates on faster chains
Creates unfair advantage for users on certain chains
Token Supply Inflation:
Faster chains will mint tokens at much higher rates
Could lead to unexpected token supply growth
Manual review
Since BLOCKS_PER_DAY is a constant and cannot be changed, the contract should be redesigned to use time-based calculations instead of block-based:
This solution would ensure consistent emission rates across all chains, regardless of their block times.
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.