During liquidations, the wrong token, crvUSDToken, is approved to cover the borrower's debt. Unless the manager Or Owner makes a donation before calling liquidateBorrower, StabilityPool will hold 0 amount of crvUSDToken making liquidation impossible.
There are a few ways users can interact with RAAC protocol:
Users can deposit liquidity, crvUsd, to LendingPool and, in exchange they receive rToken which accumulates interest.
Borrowers can deposit RAACNft as colateral and borrow against it.
Token holders can deposit it to StabilityPool for additional RAACToken rewards. A 1-to-1 deToken is minted to stability pool depositors.
In case a borrower's health factor is unhealthy, the liquidation process is started and, after the grace period expires, onlyManagerOrOwner can call liquidateBorrower to finalize the liquidation.
StabilityPool approves crvUSDToken to cover the borrower's debt. The problem is that StabilityPool doesn't hold any crvUsd. Unless onlyManagerOrOwner transfer the required amount to StabilityPool, practically making a donation to all depositors, liquidateBorrower reverts.
Since during liquidation the NFT collateral is transferred to StabilityPool, rToken should be used to cover the debt.
Underwater borrowers can't get liquidated.
use rTokens from StabilityPool to cover the liquidated position and transfer them to LendingPool. Distribute the rToken amount to all LendingPool depositors based on their contribution.
the StabilityPool should implement a share-based mechanism (instead of the 1-to-1 deToken minting) so that covered liquidation is supported by all StabilityPool depositors based on their contribution.
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.