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.