PolicyFacet

PolicyFacet

This facet contract contains all the external pre-hook functions related to vToken

Solidity API

mintAllowed

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)

Parameters

NameTypeDescription

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

Return Values

NameTypeDescription

[0]

uint256

0 if the mint is allowed, otherwise a semi-opaque error code (See ErrorReporter.sol)


mintVerify

Validates mint and reverts on rejection. May emit logs.

function mintVerify(address vToken, address minter, uint256 actualMintAmount, uint256 mintTokens) external

Parameters

NameTypeDescription

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


redeemAllowed

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)

Parameters

NameTypeDescription

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

Return Values

NameTypeDescription

[0]

uint256

0 if the redeem is allowed, otherwise a semi-opaque error code (See ErrorReporter.sol)


redeemVerify

Validates redeem and reverts on rejection. May emit log

function redeemVerify(address vToken, address redeemer, uint256 redeemAmount, uint256 redeemTokens) external pure

Parameters

NameTypeDescription

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


borrowAllowed

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)

Parameters

NameTypeDescription

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

Return Values

NameTypeDescription

[0]

uint256

0 if the borrow is allowed, otherwise a semi-opaque error code (See ErrorReporter.sol)


borrowVerify

Validates borrow and reverts on rejection. May emit log

function borrowVerify(address vToken, address borrower, uint256 borrowAmount) external

Parameters

NameTypeDescription

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


repayBorrowAllowed

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)

Parameters

NameTypeDescription

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

Return Values

NameTypeDescription

[0]

uint256

0 if the repay is allowed, otherwise a semi-opaque error code (See ErrorReporter.sol)


repayBorrowVerify

Validates repayBorrow and reverts on rejection. May emit log

function repayBorrowVerify(address vToken, address payer, address borrower, uint256 actualRepayAmount, uint256 borrowerIndex) external

Parameters

NameTypeDescription

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


liquidateBorrowAllowed

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)

Parameters

NameTypeDescription

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


liquidateBorrowVerify

Validates liquidateBorrow and reverts on rejection. May emit logs.

function liquidateBorrowVerify(address vTokenBorrowed, address vTokenCollateral, address liquidator, address borrower, uint256 actualRepayAmount, uint256 seizeTokens) external

Parameters

NameTypeDescription

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


seizeAllowed

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)

Parameters

NameTypeDescription

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


seizeVerify

Validates seize and reverts on rejection. May emit log

function seizeVerify(address vTokenCollateral, address vTokenBorrowed, address liquidator, address borrower, uint256 seizeTokens) external

Parameters

NameTypeDescription

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


transferAllowed

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)

Parameters

NameTypeDescription

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

Return Values

NameTypeDescription

[0]

uint256

0 if the transfer is allowed, otherwise a semi-opaque error code (See ErrorReporter.sol)


transferVerify

Validates transfer and reverts on rejection. May emit log

function transferVerify(address vToken, address src, address dst, uint256 transferTokens) external

Parameters

NameTypeDescription

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


getAccountLiquidity

Determine the current account liquidity wrt collateral requirements

function getAccountLiquidity(address account) external view returns (uint256, uint256, uint256)

Return Values

NameTypeDescription

[0]

uint256

(possible error code (semi-opaque), account liquidity in excess of collateral requirements, account shortfall below collateral requirements)

[1]

uint256

[2]

uint256


getHypotheticalAccountLiquidity

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)

Parameters

NameTypeDescription

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

Return Values

NameTypeDescription

[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


_setVenusSpeeds

Set XVS speed for a single market

function _setVenusSpeeds(contract VToken[] vTokens, uint256[] supplySpeeds, uint256[] borrowSpeeds) external

Parameters

NameTypeDescription

vTokens

contract VToken[]

The market whose XVS speed to update

supplySpeeds

uint256[]

New XVS speed for supply

borrowSpeeds

uint256[]

New XVS speed for borrow


Last updated