VAIController
This is the implementation contract for the VAIUnitroller proxy
struct MintLocalVars {
uint256 oErr;
enum CarefulMath.MathError mathErr;
uint256 mintAmount;
uint256 accountMintVAINew;
uint256 accountMintableVAI;
}
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 |
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 | |
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 | |
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;
}
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 |
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 | |
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 |
Set VAI borrow base rate
function setBaseRate(uint256 newBaseRateMantissa) external
Parameters
Name | Type | Description |
---|---|---|
newBaseRateMantissa | uint256 | the base rate multiplied by 10**18 |
Set VAI borrow float rate
function setFloatRate(uint256 newFloatRateMantissa) external
Parameters
Name | Type | Description |
---|---|---|
newFloatRateMantissa | uint256 | the VAI float rate multiplied by 10**18 |
Set VAI stability fee receiver address
function setReceiver(address newReceiver) external
Parameters
Name | Type | Description |
---|---|---|
newReceiver | address | the address of the VAI fee receiver |
Set VAI mint cap
function setMintCap(uint256 _mintCap) external
Parameters
Name | Type | Description |
---|---|---|
_mintCap | uint256 | the amount of VAI that can be minted |
Return the address of the VAI token
function getVAIAddress() public view returns (address)
Return Values
Name | Type | Description |
---|---|---|
[0] | address | The address of VAI |
Last modified 2mo ago