VAIController

VAI Comptroller

This is the implementation contract for the VAIUnitroller proxy

Solidity API

INITIAL_VAI_MINT_INDEX

Initial index used in interest computations

uint256 INITIAL_VAI_MINT_INDEX

CORE_POOL_ID

poolId for core Pool

uint96 CORE_POOL_ID

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 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