VaultLiquidatorImplementationV1 ​
State Variables ​
X19 ​
solidity
uint256 internal constant X19 = 0x7ffffX20 ​
solidity
uint256 internal constant X20 = 0xfffffETH_ADDRESS ​
solidity
address public constant ETH_ADDRESS = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeEFLA ​
solidity
InstaFlashInterface public immutable FLAWETH ​
solidity
IWETH9 public immutable WETHADDRESS_THIS ​
solidity
address internal immutable ADDRESS_THIS = address(this)Functions ​
constructor ​
solidity
constructor(address fla_, address weth_) ;_onlyDelegateCall ​
solidity
modifier _onlyDelegateCall() ;_tickHelper ​
solidity
function _tickHelper(uint256 tickRaw_) internal pure returns (int256 tick);_validateParams ​
solidity
function _validateParams(LiquidationParams memory params_) internal view;liquidateDust ​
solidity
function liquidateDust(LiquidationDustParams memory params_) public _onlyDelegateCall;liquidation ​
solidity
function liquidation(LiquidationParams memory params_) public _onlyDelegateCall;executeOperation ​
solidity
function executeOperation(
address[] calldata assets,
uint256[] calldata amounts,
uint256[] calldata premiums,
address initiator,
bytes calldata _data
) external returns (bool);receive ​
solidity
receive() external payable;Events ​
Liquidated ​
solidity
event Liquidated(address indexed vault, uint256 collateral, uint256 debt);Errors ​
FluidVaultLiquidator__InvalidOperation ​
solidity
error FluidVaultLiquidator__InvalidOperation();FluidVaultLiquidator__InvalidTimestamp ​
solidity
error FluidVaultLiquidator__InvalidTimestamp();FluidVaultLiquidator__InvalidTopTick ​
solidity
error FluidVaultLiquidator__InvalidTopTick();Structs ​
LiquidationParams ​
solidity
struct LiquidationParams {
address vault; // address of the vault to liquidate
uint256 vaultType; // 1 for T1, 2 for T2, 3 for T3, 4 for T4
uint256 expiration; // 0 if no expiration
int256 topTick; // type(int256).min if no topTick
uint256 route; // Flashloan Route
address flashloanToken; // Debt Token
uint256 flashloanAmount; // Amount of debt token to payback
uint256 token0DebtAmt;
uint256 token1DebtAmt;
uint256 debtSharesMin;
uint256 colPerUnitDebt; // col per unit is w.r.t debt shares and not token0/1 debt amount
uint256 token0ColAmtPerUnitShares; // in 1e18
uint256 token1ColAmtPerUnitShares; // in 1e18
bool absorb;
address swapToken; // Collateral Token
uint256 swapAmount; // Collateral amount to swap
address swapRouter; // Dex Aggregator Router Contract
address swapApproval; // Dex Aggregator Approval Contract
bytes swapData; // Data to swap collateral token
}LiquidationDustParams ​
solidity
struct LiquidationDustParams {
address vault; // address of the vault to liquidate
uint256 vaultType; // 1 for T1, 2 for T2, 3 for T3, 4 for T4
uint256 expiration; // 0 if no expiration
int256 topTick; // type(int256).min if no topTick
address debtToken; // Debt Token
uint256 debtAmount; // Amount of debt token to payback
uint256 token0DebtAmt;
uint256 token1DebtAmt;
uint256 debtSharesMin;
uint256 colPerUnitDebt; // col per unit is w.r.t debt shares and not token0/1 debt amount
uint256 token0ColAmtPerUnitShares; // in 1e18
uint256 token1ColAmtPerUnitShares; // in 1e18
bool absorb;
}
