Liquidators' Guide
Liquidators make sure all borrows are always covered
What is liquidation?
Liquidation means transferring part of both debt and collateral(+premium) from the account with negative health to the caller.
Can a given account be liquidated?
Only users with negative health can be liquidated.
To find out if account fall under liquidation or not, one may query liquidator-entry-point(3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT)
contract, specifically, getUserHealth(user)
function.
The following snippet queries any waves node on the status of 3PMZCTZjdsVZe2hePquBpE4LCVuZ5JA2PvK
(the argument of getUserHealth
function):
The output would be similar to:
The important line is #4: it returns bp
and bpu
where
- bp
means "borrow power"
- bpu
means "borrow power used"
If bp<bpu
, the account falls under liquidation.
How to liquidate an account?
To liquidate, one need to call transferDebt
function in liquidator-entry-point (
3PJ6iR5X1PT2rZcNmbqByKuh7k8mtj5wVGw)
.
There're 4 parameters in tranfserDebt
function:
borrowReserve
: the reserve address with debt,collateralReserve
: the reserve address with collateral,borrower
: address of the borrower with negative health,liquidateDebtAmount
: an amount of debt to be liquidated;
Up to 50% of debt can be liquidated within 1 transaction.
The caller needs to maintain positive health after this operation.
Last updated