Venus Dev team proposes the following:
Goals
- Enable “forced liquidations” in the BUSD market
- Allow, only, an authorized account (authorized via VIP) to liquidate the BUSD positions
- Send (almost) 100% of the liquidations incentive to the Venus Treasury contract. It will be used to repay the BUSD shortfall in the future
- The “almost” term is because we should compensate the operator of the
BUSDLiquidatorcontract. If this operator gets the BUSD funds from a flash swap, they will have to pay a fee, that should be covered with part of the liquidation incentive.
- The “almost” term is because we should compensate the operator of the
Proposal
- Deploy a contract
BUSDLiquidatorwith a function to perform liquidations.- Params:
- User address of the borrower to liquidate
- Market address of the collateral to seize
- Amount of BUSD to repay (optional, if it’s not provided 100% of the BUSD position will be liquidated)
- The sequence of actions (ignoring the needed checks):
- Transfer BUSD from the sender to the
BUSDLiquidator(the sender should allow beforehand theBUSDLiquidatorto transfer the BUSD tokens to theBUSDLiquidatorcontract) - Enable liquidations on the BUSD market
- Invoke
Liquidator.liquidateBorrow, hardcoding the BUSD market address, to perform the liquidation - Split the seized tokens:
- 5/105 should be transferred to the Venus Treasury
- 100/105 should be transferred to the sender
- it should transfer the sender more than 100/105, assuming they will use a flash swap, there should be some margin to repay the liquidity provider fee
- Pause liquidations on the BUSD market
- Transfer BUSD from the sender to the
- Anyone would be authorized to invoke this function
- The invoker should be able to do a flash swap
- Params:
- VIP:
- Pause liquidations on the BUSD market
- Authorize the
BUSDLiquidatorto resume and pause liquidations - Enable “forced liquidations” in the BUSD market
- Set to zero the Interest rate in the BUSD market, to stop accruing interest on the bad debt
The following diagram shows the main transfers of tokens:
