VToken
Venus's vToken Contract
Abstract base for vTokens
Solidity API
struct MintLocalVars {
enum CarefulMath.MathError mathErr;
uint256 exchangeRateMantissa;
uint256 mintTokens;
uint256 totalSupplyNew;
uint256 accountTokensNew;
uint256 actualMintAmount;
}
struct RedeemLocalVars {
enum CarefulMath.MathError mathErr;
uint256 exchangeRateMantissa;
uint256 redeemTokens;
uint256 redeemAmount;
uint256 totalSupplyNew;
uint256 accountTokensNew;
}
struct BorrowLocalVars {
enum CarefulMath.MathError mathErr;
uint256 accountBorrows;
uint256 accountBorrowsNew;
uint256 totalBorrowsNew;
}
struct RepayBorrowLocalVars {
enum TokenErrorReporter.Error err;
enum CarefulMath.MathError mathErr;
uint256 repayAmount;
uint256 borrowerIndex;
uint256 accountBorrows;
uint256 accountBorrowsNew;
uint256 totalBorrowsNew;
uint256 actualRepayAmount;
}
transfer
Transfer amount
tokens from msg.sender
to dst
function transfer(address dst, uint256 amount) external returns (bool)
Parameters
dst
address
The address of the destination account
amount
uint256
The number of tokens to transfer
Return Values
[0]
bool
Whether or not the transfer succeeded
transferFrom
Transfer amount
tokens from src
to dst
function transferFrom(address src, address dst, uint256 amount) external returns (bool)
Parameters
src
address
The address of the source account
dst
address
The address of the destination account
amount
uint256
The number of tokens to transfer
Return Values
[0]
bool
Whether or not the transfer succeeded
approve
Approve spender
to transfer up to amount
from src
function approve(address spender, uint256 amount) external returns (bool)
Parameters
spender
address
The address of the account which may transfer tokens
amount
uint256
The number of tokens that are approved (-1 means infinite)
Return Values
[0]
bool
Whether or not the approval succeeded
balanceOfUnderlying
Get the underlying balance of the owner
function balanceOfUnderlying(address owner) external returns (uint256)
Parameters
owner
address
The address of the account to query
Return Values
[0]
uint256
The amount of underlying owned by owner
totalBorrowsCurrent
Returns the current total borrows plus accrued interest
function totalBorrowsCurrent() external returns (uint256)
Return Values
[0]
uint256
The total borrows with interest
borrowBalanceCurrent
Accrue interest to updated borrowIndex and then calculate account's borrow balance using the updated borrowIndex
function borrowBalanceCurrent(address account) external returns (uint256)
Parameters
account
address
The address whose balance should be calculated after updating borrowIndex
Return Values
[0]
uint256
The calculated balance
seize
Transfers collateral tokens (this market) to the liquidator.
function seize(address liquidator, address borrower, uint256 seizeTokens) external returns (uint256)
Parameters
liquidator
address
The account receiving seized collateral
borrower
address
The account having collateral seized
seizeTokens
uint256
The number of vTokens to seize
Return Values
[0]
uint256
uint Returns 0 on success, otherwise returns a failure code (see ErrorReporter.sol for details).
_setPendingAdmin
Begins transfer of admin rights. The newPendingAdmin must call _acceptAdmin
to finalize the transfer.
function _setPendingAdmin(address payable newPendingAdmin) external returns (uint256)
Parameters
newPendingAdmin
address payable
New pending admin.
Return Values
[0]
uint256
uint Returns 0 on success, otherwise returns a failure code (see ErrorReporter.sol for details).
_acceptAdmin
Accepts transfer of admin rights. msg.sender must be pendingAdmin
function _acceptAdmin() external returns (uint256)
Return Values
[0]
uint256
uint Returns 0 on success, otherwise returns a failure code (see ErrorReporter.sol for details).
_setReserveFactor
accrues interest and sets a new reserve factor for the protocol using _setReserveFactorFresh
function _setReserveFactor(uint256 newReserveFactorMantissa_) external returns (uint256)
Return Values
[0]
uint256
uint Returns 0 on success, otherwise returns a failure code (see ErrorReporter.sol for details).
setAccessControlManager
Sets the address of the access control manager of this contract
function setAccessControlManager(address newAccessControlManagerAddress) external returns (uint256)
Parameters
newAccessControlManagerAddress
address
New address for the access control
Return Values
[0]
uint256
uint 0=success, otherwise will revert
_reduceReserves
Accrues interest and reduces reserves by transferring to protocol share reserve
function _reduceReserves(uint256 reduceAmount_) external returns (uint256)
Parameters
reduceAmount_
uint256
Amount of reduction to reserves
Return Values
[0]
uint256
uint Returns 0 on success, otherwise returns a failure code (see ErrorReporter.sol for details).
allowance
Get the current allowance from owner
for spender
function allowance(address owner, address spender) external view returns (uint256)
Parameters
owner
address
The address of the account which owns the tokens to be spent
spender
address
The address of the account which may transfer tokens
Return Values
[0]
uint256
The number of tokens allowed to be spent (-1 means infinite)
balanceOf
Get the token balance of the owner
function balanceOf(address owner) external view returns (uint256)
Parameters
owner
address
The address of the account to query
Return Values
[0]
uint256
The number of tokens owned by owner
getAccountSnapshot
Get a snapshot of the account's balances, and the cached exchange rate
function getAccountSnapshot(address account) external view returns (uint256, uint256, uint256, uint256)
Parameters
account
address
Address of the account to snapshot
Return Values
[0]
uint256
(possible error, token balance, borrow balance, exchange rate mantissa)
[1]
uint256
[2]
uint256
[3]
uint256
supplyRatePerBlock
Returns the current per-block supply interest rate for this vToken
function supplyRatePerBlock() external view returns (uint256)
Return Values
[0]
uint256
The supply interest rate per block, scaled by 1e18
borrowRatePerBlock
Returns the current per-block borrow interest rate for this vToken
function borrowRatePerBlock() external view returns (uint256)
Return Values
[0]
uint256
The borrow interest rate per block, scaled by 1e18
getCash
Get cash balance of this vToken in the underlying asset
function getCash() external view returns (uint256)
Return Values
[0]
uint256
The quantity of underlying asset owned by this contract
setReduceReservesBlockDelta
Governance function to set new threshold of block difference after which funds will be sent to the protocol share reserve
function setReduceReservesBlockDelta(uint256 newReduceReservesBlockDelta_) external returns (uint256)
Parameters
newReduceReservesBlockDelta_
uint256
block difference value
setProtocolShareReserve
Sets protocol share reserve contract address
function setProtocolShareReserve(address payable protcolShareReserve_) external returns (uint256)
Parameters
protcolShareReserve_
address payable
The address of protocol share reserve contract
initialize
Initialize the money market
function initialize(contract ComptrollerInterface comptroller_, contract InterestRateModel interestRateModel_, uint256 initialExchangeRateMantissa_, string name_, string symbol_, uint8 decimals_) public
Parameters
comptroller_
contract ComptrollerInterface
The address of the Comptroller
interestRateModel_
contract InterestRateModel
The address of the interest rate model
initialExchangeRateMantissa_
uint256
The initial exchange rate, scaled by 1e18
name_
string
EIP-20 name of this token
symbol_
string
EIP-20 symbol of this token
decimals_
uint8
EIP-20 decimal precision of this token
exchangeRateCurrent
Accrue interest then return the up-to-date exchange rate
function exchangeRateCurrent() public returns (uint256)
Return Values
[0]
uint256
Calculated exchange rate scaled by 1e18
accrueInterest
Applies accrued interest to total borrows and reserves
function accrueInterest() public returns (uint256)
_setComptroller
Sets a new comptroller for the market
function _setComptroller(contract ComptrollerInterface newComptroller) public returns (uint256)
Return Values
[0]
uint256
uint Returns 0 on success, otherwise returns a failure code (see ErrorReporter.sol for details).
_setInterestRateModel
Accrues interest and updates the interest rate model using _setInterestRateModelFresh
function _setInterestRateModel(contract InterestRateModel newInterestRateModel_) public returns (uint256)
Parameters
newInterestRateModel_
contract InterestRateModel
The new interest rate model to use
Return Values
[0]
uint256
uint Returns 0 on success, otherwise returns a failure code (see ErrorReporter.sol for details).
exchangeRateStored
Calculates the exchange rate from the underlying to the VToken
function exchangeRateStored() public view returns (uint256)
Return Values
[0]
uint256
Calculated exchange rate scaled by 1e18
borrowBalanceStored
Return the borrow balance of account based on stored data
function borrowBalanceStored(address account) public view returns (uint256)
Parameters
account
address
The address whose balance should be calculated
Return Values
[0]
uint256
The calculated balance
Last updated