The protocol currently uses any that has a chainlink price feed. Some tokens (e.g. USDC, USDT) have a contract level admin controlled address blacklist. If an address is blocked, then transfers to and from that address are forbidden.
In DSCEngine.sol
we have liquidate()
function:
USDC has a contract level admin controlled address blocklist, which will block transfer to/from these blocked addresses.
If a user uses collateral
that is a blacklisted address by USDC, it cannot be liquidated. This is because the transfer
functors in _redeemCollateral
and _burnDsc()
in liquidate()
will revert.
As the protocol is not able to fully liquidate such USDC-blocked addresses, it will incur bad debts and suffer losses.
Visual Studio Code
Try to implement a try-catch solution where you skip certain funds whenever they cause the USDC transfer to revert or use pull
over push
model to transfer tokens.
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.