The mintRewards()
function in LendingPool.sol
is designed to mint RAAC rewards and can only be called by the StabilityPool
contract. However, the function is never actually called by StabilityPool.sol
, rendering it ineffective. This oversight prevents the intended reward distribution mechanism from functioning correctly.
mintRewards(address recipient, uint256 amount)
in RAACMinter.sol
The function mintRewards()
is intended to reward users by minting RAAC tokens to a specified address. It includes an access control mechanism that restricts calls to the StabilityPool
contract. However, upon reviewing the codebase, it was found that StabilityPool.sol
does not call this function at any point, leaving it unused.
The contract defines a function for minting rewards but never invokes it.
This results in no RAAC rewards being distributed, leading to a flawed incentive mechanism.
Proof of Concept (PoC)
The mintRewards()
function exists in LendingPool.sol
.
StabilityPool.sol
is supposed to call it to distribute RAAC rewards.
Check all instances where mintRewards()
is called.
Verify that StabilityPool.sol
does not invoke it.
Confirm that no RAAC rewards are minted.
The intended reward mechanism for incentivizing users is broken. This could reduce user engagement, affect protocol stability, and lead to dissatisfaction among participants expecting rewards.
Manual
Ensure that StabilityPool.sol
properly calls mintRewards()
at the appropriate time. A suggested approach is:
Identify the Reward Distribution Trigger:
Determine the event that should trigger rewards (e.g., liquidations or user participation in the stability pool).
Call mintRewards()
from StabilityPool.sol
:
Add this call in a relevant function where rewards should be minted.
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.