In RAACMinter.tick(), if the emissionUpdateInterval is set to non-zero, the updateEmissionRate() function call can revert if the emissionUpdateInterval has not been met, blocking user operations such as deposit, withdrawal, or liquidation in the StabilityPool.
The RAACMinter.tick() function performs an emission rate update if the emissionUpdateInterval is greater than 0 and the current block timestamp exceeds the lastEmissionUpdateTimestamp + emissionUpdateInterval. However, the updateEmissionRate() function checks whether the interval has passed before updating, and if the check fails, it reverts with the EmissionUpdateTooFrequent error.
This logic creates a scenario where user operations in StabilityPool—such as deposit, withdrawal, or liquidation—can fail if any of these actions occur within the emission update interval. The functions will fail with the EmissionUpdateTooFrequent error, preventing users from interacting with the contract during this period.
contracts/core/minters/RAACMinter/RAACMinter.sol
If the emissionUpdateInterval is set to non-zero, the issue causes a significant disruption to user experience as all operations are blocked until the emission update interval has passed.
vscode
Modify the updateEmissionRate() function to skip the update (instead of reverting) if the update interval has not been reached.
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.