[VEN-2030]: add flash swap liquidation operator #372
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains a contract to perform liquidations on Venus using flash loans (for in-kind liquidations) and flash swaps (for cross-token liquidations) on PancakeSwap V3.
The following kinds of liquidations are supported:
flash()
and performs the liquidation.a. Using a single pool (e.g., liquidate BUSD seizing vBNB) – flash-swaps the collateral token to the borrowed token using
swap()
, performs the liquidation and repays the flash swap using collateral tokens directly.b. Liquidating along the path (BUSD-TokenB-TokenC-...-CollateralToken, e.g. liquidate BUSD seizing vADA, using BUSD/WBNB pool as a liquidity source) – flash-swaps the path's TokenB to the borrowed token using
swap()
, performs the liquidation, swaps collateral tokens to TokenB along the remainder of the path, and repays the flash swap using the TokenB.Notes: