The RAACMinter contract's mintRewards function incorrectly assumes that excess tokens are retained within the minter contract. However, all tokens are minted directly to the StabilityPool, leaving no tokens in the contract itself. This results in the mintRewards function potentially failing when attempting to transfer tokens that are not present in the contract.
The excessTokens variable is intended to track tokens that remain in the minter contract after emissions. However, the tick function mints all calculated tokens directly to the StabilityPool, leaving no tokens in the minter contract. When mintRewards is called and excessTokens is bigger than 0 , it attempts to use excess tokens and mint the rest. Since the tokens are not actually present in the contract, this operation can fail, leading to a revert.
The mintRewards function may fail, preventing the distribution of rewards and disrupting the protocol's reward mechanism.
Manual
Adjust the logic to ensure that excessTokens accurately reflects the tokens available within the minter contract. Consider minting tokens to the minter contract first and then transferring them to the StabilityPool as needed.
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.