The RaacMinter
contract contains hardcoded values that assume a block time of 12 seconds, resulting in a fixed BLOCKS_PER_DAY
value of 7200. While this assumption holds true for Ethereum, it is not valid for all EVM-compatible chains, as different networks have varying block times.
The use of hardcoded BLOCKS_PER_DAY
assumes a universal block time of 12 seconds. However, different EVM-compatible chains (e.g., BNB Smart Chain, Polygon, Avalanche, Optimism) have different block times. If this contract is deployed on a chain with a different block time (e.g., 2 seconds for BSC, 5 seconds for Polygon), the emission rate calculations and benchmarking will be incorrect, leading to unintended supply dynamics.
Incorrect Token Emission – The INITIAL_RATE
and MAX_BENCHMARK_RATE
are derived based on BLOCKS_PER_DAY
. If the actual block time differs, the real emission rate will not align with expectations.
Inconsistent Benchmarking – The contract's benchmark for maximum emissions will be inaccurate on chains with different block intervals.
Reduced Flexibility – The hardcoded value makes the contract less adaptable to different blockchain environments without requiring redeployment.
The incorrect block time assumption could lead to inflationary or deflationary effects depending on the deployment chain. If deployed on a chain with a shorter block time, token emissions will be higher than expected, potentially leading to excessive supply. Conversely, a longer block time would result in lower-than-expected emissions, slowing down the intended distribution of tokens.
Manual Review
Make BLOCKS_PER_DAY
Configurable – Instead of a hardcoded constant, allow it to be set via constructor parameters or an adjustable state variable.
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.