This facet contract contains all the external pre-hook functions related to vToken
Checks if the account should be allowed to mint tokens in the given market
function mintAllowed(address vToken, address minter, uint256 mintAmount) external returns (uint256)
| Name | Type | Description |
|---|
| vToken | address | The market to verify the mint against |
| minter | address | The account which would get the minted tokens |
| mintAmount | uint256 | The amount of underlying being supplied to the market in exchange for tokens |
| Name | Type | Description |
|---|
| [0] | uint256 | 0 if the mint is allowed, otherwise a semi-opaque error code (See ErrorReporter.sol) |
Validates mint, accrues interest and updates score in prime. Reverts on rejection. May emit logs.
function mintVerify(address vToken, address minter, uint256 actualMintAmount, uint256 mintTokens) external
| Name | Type | Description |
|---|
| vToken | address | Asset being minted |
| minter | address | The address minting the tokens |
| actualMintAmount | uint256 | The amount of the underlying asset being minted |
| mintTokens | uint256 | The number of tokens being minted |
Checks if the account should be allowed to redeem tokens in the given market
function redeemAllowed(address vToken, address redeemer, uint256 redeemTokens) external returns (uint256)
| Name | Type | Description |
|---|
| vToken | address | The market to verify the redeem against |
| redeemer | address | The account which would redeem the tokens |
| redeemTokens | uint256 | The number of vTokens to exchange for the underlying asset in the market |
| Name | Type | Description |
|---|
| [0] | uint256 | 0 if the redeem is allowed, otherwise a semi-opaque error code (See ErrorReporter.sol) |
Validates redeem, accrues interest and updates score in prime. Reverts on rejection. May emit logs.
function redeemVerify(address vToken, address redeemer, uint256 redeemAmount, uint256 redeemTokens) external
| Name | Type | Description |
|---|
| vToken | address | Asset being redeemed |
| redeemer | address | The address redeeming the tokens |
| redeemAmount | uint256 | The amount of the underlying asset being redeemed |
| redeemTokens | uint256 | The number of tokens being redeemed |
Checks if the account should be allowed to borrow the underlying asset of the given market
function borrowAllowed(address vToken, address borrower, uint256 borrowAmount) external returns (uint256)
| Name | Type | Description |
|---|
| vToken | address | The market to verify the borrow against |
| borrower | address | The account which would borrow the asset |
| borrowAmount | uint256 | The amount of underlying the account would borrow |
| Name | Type | Description |
|---|
| [0] | uint256 | 0 if the borrow is allowed, otherwise a semi-opaque error code (See ErrorReporter.sol) |
Validates borrow, accrues interest and updates score in prime. Reverts on rejection. May emit logs.
function borrowVerify(address vToken, address borrower, uint256 borrowAmount) external
| Name | Type | Description |
|---|
| vToken | address | Asset whose underlying is being borrowed |
| borrower | address | The address borrowing the underlying |
| borrowAmount | uint256 | The amount of the underlying asset requested to borrow |
Checks if the account should be allowed to repay a borrow in the given market
function repayBorrowAllowed(address vToken, address payer, address borrower, uint256 repayAmount) external returns (uint256)
| Name | Type | Description |
|---|
| vToken | address | The market to verify the repay against |
| payer | address | The account which would repay the asset |
| borrower | address | The account which borrowed the asset |
| repayAmount | uint256 | The amount of the underlying asset the account would repay |
| Name | Type | Description |
|---|
| [0] | uint256 | 0 if the repay is allowed, otherwise a semi-opaque error code (See ErrorReporter.sol) |
Validates repayBorrow, accrues interest and updates score in prime. Reverts on rejection. May emit logs.
function repayBorrowVerify(address vToken, address payer, address borrower, uint256 actualRepayAmount, uint256 borrowerIndex) external
| Name | Type | Description |
|---|
| vToken | address | Asset being repaid |
| payer | address | The address repaying the borrow |
| borrower | address | The address of the borrower |
| actualRepayAmount | uint256 | The amount of underlying being repaid |
| borrowerIndex | uint256 | |
Checks if the liquidation should be allowed to occur
function liquidateBorrowAllowed(address vTokenBorrowed, address vTokenCollateral, address liquidator, address borrower, uint256 repayAmount) external view returns (uint256)
| Name | Type | Description |
|---|
| vTokenBorrowed | address | Asset which was borrowed by the borrower |
| vTokenCollateral | address | Asset which was used as collateral and will be seized |
| liquidator | address | The address repaying the borrow and seizing the collateral |
| borrower | address | The address of the borrower |
| repayAmount | uint256 | The amount of underlying being repaid |
Validates liquidateBorrow, accrues interest and updates score in prime. Reverts on rejection. May emit logs.
function liquidateBorrowVerify(address vTokenBorrowed, address vTokenCollateral, address liquidator, address borrower, uint256 actualRepayAmount, uint256 seizeTokens) external
| Name | Type | Description |
|---|
| vTokenBorrowed | address | Asset which was borrowed by the borrower |
| vTokenCollateral | address | Asset which was used as collateral and will be seized |
| liquidator | address | The address repaying the borrow and seizing the collateral |
| borrower | address | The address of the borrower |
| actualRepayAmount | uint256 | The amount of underlying being repaid |
| seizeTokens | uint256 | The amount of collateral token that will be seized |
Checks if the seizing of assets should be allowed to occur
function seizeAllowed(address vTokenCollateral, address vTokenBorrowed, address liquidator, address borrower, uint256 seizeTokens) external returns (uint256)
| Name | Type | Description |
|---|
| vTokenCollateral | address | Asset which was used as collateral and will be seized |
| vTokenBorrowed | address | Asset which was borrowed by the borrower |
| liquidator | address | The address repaying the borrow and seizing the collateral |
| borrower | address | The address of the borrower |
| seizeTokens | uint256 | The number of collateral tokens to seize |
Validates seize, accrues interest and updates score in prime. Reverts on rejection. May emit logs.
function seizeVerify(address vTokenCollateral, address vTokenBorrowed, address liquidator, address borrower, uint256 seizeTokens) external
| Name | Type | Description |
|---|
| vTokenCollateral | address | Asset which was used as collateral and will be seized |
| vTokenBorrowed | address | Asset which was borrowed by the borrower |
| liquidator | address | The address repaying the borrow and seizing the collateral |
| borrower | address | The address of the borrower |
| seizeTokens | uint256 | The number of collateral tokens to seize |
Checks if the account should be allowed to transfer tokens in the given market
function transferAllowed(address vToken, address src, address dst, uint256 transferTokens) external returns (uint256)
| Name | Type | Description |
|---|
| vToken | address | The market to verify the transfer against |
| src | address | The account which sources the tokens |
| dst | address | The account which receives the tokens |
| transferTokens | uint256 | The number of vTokens to transfer |
| Name | Type | Description |
|---|
| [0] | uint256 | 0 if the transfer is allowed, otherwise a semi-opaque error code (See ErrorReporter.sol) |
Validates transfer, accrues interest and updates score in prime. Reverts on rejection. May emit logs.
function transferVerify(address vToken, address src, address dst, uint256 transferTokens) external
| Name | Type | Description |
|---|
| vToken | address | Asset being transferred |
| src | address | The account which sources the tokens |
| dst | address | The account which receives the tokens |
| transferTokens | uint256 | The number of vTokens to transfer |
Alias to getAccountLiquidity to support the Isolated Lending Comptroller Interface
function getBorrowingPower(address account) external view returns (uint256, uint256, uint256)
| Name | Type | Description |
|---|
| account | address | The account get liquidity for |
| Name | Type | Description |
|---|
| [0] | uint256 | (possible error code (semi-opaque), account liquidity in excess of collateral requirements, account shortfall below collateral requirements) |
| [1] | uint256 | |
| [2] | uint256 | |
Determine the current account liquidity wrt liquidation threshold requirements
function getAccountLiquidity(address account) external view returns (uint256, uint256, uint256)
| Name | Type | Description |
|---|
| account | address | The account get liquidity for |
| Name | Type | Description |
|---|
| [0] | uint256 | (possible error code (semi-opaque), account liquidity in excess of liquidation threshold requirements, account shortfall below liquidation threshold requirements) |
| [1] | uint256 | |
| [2] | uint256 | |
Determine what the account liquidity would be if the given amounts were redeemed/borrowed
function getHypotheticalAccountLiquidity(address account, address vTokenModify, uint256 redeemTokens, uint256 borrowAmount) external view returns (uint256, uint256, uint256)
| Name | Type | Description |
|---|
| account | address | The account to determine liquidity for |
| vTokenModify | address | The market to hypothetically redeem/borrow in |
| redeemTokens | uint256 | The number of tokens to hypothetically redeem |
| borrowAmount | uint256 | The amount of underlying to hypothetically borrow |
| Name | Type | Description |
|---|
| [0] | uint256 | (possible error code (semi-opaque), hypothetical account liquidity in excess of collateral requirements, hypothetical account shortfall below collateral requirements) |
| [1] | uint256 | |
| [2] | uint256 | |
Set XVS speed for a single market
function _setVenusSpeeds(contract VToken[] vTokens, uint256[] supplySpeeds, uint256[] borrowSpeeds) external
| Name | Type | Description |
|---|
| vTokens | contract VToken[] | The market whose XVS speed to update |
| supplySpeeds | uint256[] | New XVS speed for supply |
| borrowSpeeds | uint256[] | New XVS speed for borrow |