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:
Name | Type | Description |
---|---|---|
_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:
Name | Type | Description |
---|---|---|
_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:
Name | Type | Description |
---|---|---|
_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:
Name | Type | Description |
---|---|---|
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:
Name | Type | Description |
---|---|---|
_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:
Name | Type | Description |
---|---|---|
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:
Name | Type | Description |
---|---|---|
_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:
Name | Type | Description |
---|---|---|
maxLA | uint256 | The maximum liquidation amount. |
minLA | uint256 | The minimum liquidation amount. |
Last updated