VAIController
VAI Comptroller
This is the implementation contract for the VAIUnitroller proxy
Solidity API
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.
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 interest into the protocol and burns the rest, reducing the borrower's borrow balance. Before repaying VAI, users must first approve VAIController to access their VAI balance.
Parameters
Name | Type | Description |
---|---|---|
amount | uint256 | The amount of VAI to be repaid. |
Return Values
Name | Type | Description |
---|---|---|
[0] | uint256 | Error code (0=success, otherwise a failure, see ErrorReporter.sol) |
[1] | uint256 | Actual repayment amount |
repayVAIBehalf
The repay on behalf function transfers VAI interest into the protocol and burns the rest, reducing the borrower's borrow balance. Borrowed VAIs are repaid by another user (possibly the borrower). Before repaying VAI, the payer must first approve VAIController to access their VAI balance.
Parameters
Name | Type | Description |
---|---|---|
borrower | address | The account to repay the debt for. |
amount | uint256 | The amount of VAI to be repaid. |
Return Values
Name | Type | Description |
---|---|---|
[0] | uint256 | Error code (0=success, otherwise a failure, see ErrorReporter.sol) |
[1] | uint256 | Actual repayment amount |
liquidateVAI
The sender liquidates the vai minters collateral. The collateral seized is transferred to the liquidator.
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 | Error code (0=success, otherwise a failure, see ErrorReporter.sol) |
[1] | uint256 | Actual repayment amount |
_setComptroller
Sets a new comptroller
Return Values
Name | Type | Description |
---|---|---|
[0] | uint256 | uint256 0=success, otherwise a failure (see ErrorReporter.sol for details) |
setPrimeToken
Set the prime token contract address
Parameters
Name | Type | Description |
---|---|---|
prime_ | address | The new address of the prime token contract |
setVAIToken
Set the VAI token contract address
Parameters
Name | Type | Description |
---|---|---|
vai_ | address | The new address of the VAI token contract |
toggleOnlyPrimeHolderMint
Toggle mint only for prime holder
Return Values
Name | Type | Description |
---|---|---|
[0] | uint256 | uint256 0=success, otherwise a failure (see ErrorReporter.sol for details) |
getMintableVAI
Function that returns the amount of VAI a user can mint based on their account liquidy and the VAI mint rate If mintEnabledOnlyForPrimeHolder is true, only Prime holders are able to mint VAI
Parameters
Name | Type | Description |
---|---|---|
minter | address | The account to check mintable VAI |
Return Values
Name | Type | Description |
---|---|---|
[0] | uint256 | Error code (0=success, otherwise a failure, see ErrorReporter.sol for details) |
[1] | uint256 | Mintable amount (with 18 decimals) |
_setTreasuryData
Update treasury data
Parameters
Name | Type | Description |
---|---|---|
newTreasuryGuardian | address | New Treasury Guardian address |
newTreasuryAddress | address | New Treasury Address |
newTreasuryPercent | uint256 | New fee percentage for minting VAI that is sent to the treasury |
getVAIRepayRate
Gets yearly VAI interest rate based on the VAI price
Return Values
Name | Type | Description |
---|---|---|
[0] | uint256 | uint256 Yearly VAI interest rate |
getVAIRepayRatePerBlock
Get interest rate per block
Return Values
Name | Type | Description |
---|---|---|
[0] | uint256 | uint256 Interest rate per bock |
getVAIMinterInterestIndex
Get the last updated interest index for a VAI Minter
Parameters
Name | Type | Description |
---|---|---|
minter | address | Address of VAI minter |
Return Values
Name | Type | Description |
---|---|---|
[0] | uint256 | uint256 Returns the interest rate index for a minter |
getVAIRepayAmount
Get the current total VAI a user needs to repay
Parameters
Name | Type | Description |
---|---|---|
account | address | The address of the VAI borrower |
Return Values
Name | Type | Description |
---|---|---|
[0] | uint256 | (uint256) The total amount of VAI the user needs to repay |
getVAICalculateRepayAmount
Calculate how much VAI the user needs to repay
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 | Amount of VAI to be burned |
[1] | uint256 | Amount of VAI the user needs to pay in current interest |
[2] | uint256 | Amount of VAI the user needs to pay in past interest |
accrueVAIInterest
Accrue interest on outstanding minted VAI
setAccessControl
Sets the address of the access control of this contract
Parameters
Name | Type | Description |
---|---|---|
newAccessControlAddress | address | New address for the access control |
setBaseRate
Set VAI borrow base rate
Parameters
Name | Type | Description |
---|---|---|
newBaseRateMantissa | uint256 | the base rate multiplied by 10**18 |
setFloatRate
Set VAI borrow float rate
Parameters
Name | Type | Description |
---|---|---|
newFloatRateMantissa | uint256 | the VAI float rate multiplied by 10**18 |
setReceiver
Set VAI stability fee receiver address
Parameters
Name | Type | Description |
---|---|---|
newReceiver | address | the address of the VAI fee receiver |
setMintCap
Set VAI mint cap
Parameters
Name | Type | Description |
---|---|---|
_mintCap | uint256 | the amount of VAI that can be minted |
getVAIAddress
Return the address of the VAI token
Return Values
Name | Type | Description |
---|---|---|
[0] | address | The address of VAI |
Last updated