Search
K

VAIController

VAI Comptroller

This is the implementation contract for the VAIUnitroller proxy

Solidity API

struct MintLocalVars {
uint256 oErr;
enum CarefulMath.MathError mathErr;
uint256 mintAmount;
uint256 accountMintVAINew;
uint256 accountMintableVAI;
}

mintVAI

The mintVAI function mints and transfers VAI from the protocol to the user, and adds a borrow balance. The amount minted must be less than the user's Account Liquidity and the mint vai limit.
function mintVAI(uint256 mintVAIAmount) external returns (uint256)
Parameters
Name
Type
Description
mintVAIAmount
uint256
The amount of the VAI to be minted.
Return Values
Name
Type
Description
[0]
uint256
0 on success, otherwise an error code

repayVAI

The repay function transfers VAI into the protocol and burn, reducing the user's borrow balance. Before repaying an asset, users must first approve the VAI to access their VAI balance.
function repayVAI(uint256 repayVAIAmount) external returns (uint256, uint256)
Parameters
Name
Type
Description
repayVAIAmount
uint256
The amount of the VAI to be repaid.
Return Values
Name
Type
Description
[0]
uint256
0 on success, otherwise an error code
[1]
uint256

liquidateVAI

The sender liquidates the vai minters collateral. The collateral seized is transferred to the liquidator.
function liquidateVAI(address borrower, uint256 repayAmount, contract VTokenInterface vTokenCollateral) external returns (uint256, uint256)
Parameters
Name
Type
Description
borrower
address
The borrower of vai to be liquidated
repayAmount
uint256
The amount of the underlying borrowed asset to repay
vTokenCollateral
contract VTokenInterface
The market in which to seize collateral from the borrower
Return Values
Name
Type
Description
[0]
uint256
(uint, uint) An error code (0=success, otherwise a failure, see ErrorReporter.sol), and the actual repayment amount.
[1]
uint256

_setComptroller

Sets a new comptroller
function _setComptroller(contract Comptroller comptroller_) external returns (uint256)
Return Values
Name
Type
Description
[0]
uint256
uint 0=success, otherwise a failure (see ErrorReporter.sol for details)

struct AccountAmountLocalVars {
uint256 oErr;
enum CarefulMath.MathError mErr;
uint256 sumSupply;
uint256 marketSupply;
uint256 sumBorrowPlusEffects;
uint256 vTokenBalance;
uint256 borrowBalance;
uint256 exchangeRateMantissa;
uint256 oraclePriceMantissa;
struct ExponentialNoError.Exp exchangeRate;
struct ExponentialNoError.Exp oraclePrice;
struct ExponentialNoError.Exp tokensToDenom;
}

getVAIRepayAmount

Get the current total VAI a user needs to repay
function getVAIRepayAmount(address account) public view returns (uint256)
Parameters
Name
Type
Description
account
address
The address of the VAI borrower
Return Values
Name
Type
Description
[0]
uint256
(uint) The total amount of VAI the user needs to repay

getVAICalculateRepayAmount

Calculate how much VAI the user needs to repay
function getVAICalculateRepayAmount(address borrower, uint256 repayAmount) public view returns (uint256, uint256, uint256)
Parameters
Name
Type
Description
borrower
address
The address of the VAI borrower
repayAmount
uint256
The amount of VAI being returned
Return Values
Name
Type
Description
[0]
uint256
(uint, uint, uint) Amount of VAI to be burned, amount of VAI the user needs to pay in current interest and amount of VAI the user needs to pay in past interest
[1]
uint256
[2]
uint256

setAccessControl

Sets the address of the access control of this contract
function setAccessControl(address newAccessControlAddress) external
Parameters
Name
Type
Description
newAccessControlAddress
address
New address for the access control

setBaseRate

Set VAI borrow base rate
function setBaseRate(uint256 newBaseRateMantissa) external
Parameters
Name
Type
Description
newBaseRateMantissa
uint256
the base rate multiplied by 10**18

setFloatRate

Set VAI borrow float rate
function setFloatRate(uint256 newFloatRateMantissa) external
Parameters
Name
Type
Description
newFloatRateMantissa
uint256
the VAI float rate multiplied by 10**18

setReceiver

Set VAI stability fee receiver address
function setReceiver(address newReceiver) external
Parameters
Name
Type
Description
newReceiver
address
the address of the VAI fee receiver

setMintCap

Set VAI mint cap
function setMintCap(uint256 _mintCap) external
Parameters
Name
Type
Description
_mintCap
uint256
the amount of VAI that can be minted

getVAIAddress

Return the address of the VAI token
function getVAIAddress() public view returns (address)
Return Values
Name
Type
Description
[0]
address
The address of VAI