PrimaryLendingPlatformLiquidationZksync
Overview
License: MIT
The PrimaryLendingPlatformLiquidationZksync contract is the contract that allows users to liquidate positions for zksync network.
Contract that allows users to liquidate positions. Inherit from PrimaryLendingPlatformLiquidationCore.
Functions info
liquidate (0xb44055fc)
Liquidates a user's position based on the specified lending token amount and update related token's prices.
The function to be called when a user wants to liquidate their position. Support liquidation with hot borrowing or not.
Requirements:
The project token is listed on the platform.
The lending token is listed on the platform.
The lending token amount must be greater than 0.
The user must have a position for the given project token and lending token.
The health factor must be less than 1.
_lendingTokenAmount
must be within the permissible range of liquidation amount.
Effects:
Update price of related tokens.
Calculates the health factor of the position using
getCurrentHealthFactor
function.Validates the health factor and ensures it's less than 1.
Calculates the permissible liquidation range using
getLiquidationAmount
function.Validates
lendingTokenAmount
against the permissible range.Determines the amount of project token to send to the liquidator.
Distributes rewards to the liquidator.
Parameters:
_account
address
The address of the borrower
_prjInfo
struct Asset.Info
Information about the project token, including its address and type.
_lendingInfo
struct Asset.Info
Information about the lending token, including its address and type.
_lendingTokenAmount
uint256
The amount of lending tokens to be used for liquidation
priceIds
bytes32[]
An array of bytes32 price identifiers to update.
updateData
bytes[]
An array of bytes update data for the corresponding price identifiers.
buyCalldata
bytes[]
The calldata for buying the lending token from the exchange aggregator. If the calldata is empty, the liquidation will execute liquidation without hot borrowing.
liquidateFromModerator (0xc8359268)
Liquidates a portion of the borrower's debt using the lending token, called by a related contract and update related token's prices.
The function to be called when a user wants to liquidate their position. Support liquidation with hot borrowing or not.
Requirements:
The project token is listed on the platform.
The lending token is listed on the platform.
Called by a related contract.
The lending token amount must be greater than 0.
The user must have a position for the given project token and lending token.
The health factor must be less than 1.
_lendingTokenAmount
must be within the permissible range of liquidation amount.
Effects:
Update price of related tokens.
Calculates the health factor of the position using
getCurrentHealthFactor
function.Validates the health factor and ensures it's less than 1.
Calculates the permissible liquidation range using
getLiquidationAmount
function.Validates
lendingTokenAmount
against the permissible range.Determines the amount of project token to send to the liquidator.
Distributes rewards to the liquidator.
Parameters:
_account
address
The address of the borrower
_prjInfo
struct Asset.Info
Information about the project token, including its address and type.
_lendingInfo
struct Asset.Info
Information about the lending token, including its address and type.
_lendingTokenAmount
uint256
The amount of lending tokens to be used for liquidation
liquidator
address
The address of the liquidator
priceIds
bytes32[]
An array of bytes32 price identifiers to update.
updateData
bytes[]
An array of bytes update data for the corresponding price identifiers.
buyCalldata
bytes[]
The calldata for buying the lending token from the exchange aggregator. If the calldata is empty, the liquidation will execute liquidation without hot borrowing.
liquidatorRewardFactorWithUpdatePrices (0xe7f63838)
Calculates the liquidator reward factor (LRF) for a given position after after updating related token's prices. ####Formula:
LRF = (1 + (1 - HF) * k)
Parameters:
_account
address
The address of the borrower whose position is being considered.
_projectToken
address
The address of the project token.
_lendingToken
address
The address of the lending token.
priceIds
bytes32[]
An array of bytes32 price identifiers to update.
updateData
bytes[]
An array of bytes update data for the corresponding price identifiers.
Return values:
lrfNumerator
uint256
The numerator of the liquidator reward factor.
lrfDenominator
uint256
The denominator of the liquidator reward factor.
getMaxLiquidationAmountWithUpdatePrices (0x25a695e5)
Calculates the maximum liquidation amount (MaxLA) for a given position after updating related token's prices. ####Formula:
MaxLA = (LVR * CVc - THF * LVc) / (LRF * LVR - THF)
Parameters:
_account
address
The address of the borrower whose position is being considered.
_projectToken
address
The address of the project token.
_lendingToken
address
The address of the lending token.
priceIds
bytes32[]
An array of bytes32 price identifiers to update.
updateData
bytes[]
An array of bytes update data for the corresponding price identifiers.
Return values:
maxLA
uint256
The maximum liquidator reward amount in the lending token.
getLiquidationAmountWithUpdatePrices (0x02dfa5d4)
Returns the minimum and maximum liquidation amount for a given account, project token, and lending token after updating related token's prices.
Formula:
MinLA = min(MaxLA, MPA)
MaxLA = (LVR * CVc - THF * LVc) / (LRF * LVR - THF)
Parameters:
_account
address
The account for which to calculate the liquidation amount.
_projectToken
address
The project token address.
_lendingToken
address
The lending token address.
priceIds
bytes32[]
An array of bytes32 price identifiers to update.
updateData
bytes[]
An array of bytes update data for the corresponding price identifiers.
Return values:
maxLA
uint256
The maximum liquidation amount.
minLA
uint256
The minimum liquidation amount.
Last updated