VAI控制器
174 / 5,000
VAI Comptroller
这是 VAIUnitroller 代理的实现合约
Solidity API
INITIAL_VAI_MINT_INDEX
用于利息计算的初始指数
uint256 INITIAL_VAI_MINT_INDEXCORE_POOL_ID
poolId for core Pool
uint96 CORE_POOL_IDmintVAI
mintVAI 函数会从协议中铸造 VAI 并将其转入用户账户,同时增加用户的借贷余额。
铸造的 VAI 数量必须小于用户的账户流动性和铸造 VAI 的限额。
function mintVAI(uint256 mintVAIAmount) external returns (uint256)Parameters
mintVAIAmount
uint256
待铸造的VAI数量。
Return Values
[0]
uint256
成功返回 0,否则返回错误代码
偿还 VAI
偿还功能会将 VAI 利息转入协议,并将剩余部分销毁, 从而减少借款人的借款余额。在偿还 VAI 之前,用户必须先授权
VAIController 访问其 VAI 余额。
function repayVAI(uint256 amount) external returns (uint256, uint256)Parameters
amount
uint256
需偿还的VAI金额。
Return Values
[0]
uint256
错误代码(0=成功,否则为失败,请参阅 ErrorReporter.sol)
[1]
uint256
实际还款金额
代还 VAI
代还功能会将 VAI 利息转入协议,并将剩余部分销毁,
从而减少借款人的借款余额。借入的 VAI 由其他用户(可能是借款人本人)偿还。
在偿还 VAI 之前,付款人必须先授权 VAIController 访问其 VAI 余额。
function repayVAIBehalf(address borrower, uint256 amount) external returns (uint256, uint256)Parameters
borrower
address
用于偿还债务的账户。
amount
uint256
需偿还的VAI金额。
Return Values
[0]
uint256
错误代码(0=成功,否则为失败,请参阅 ErrorReporter.sol)
[1]
uint256
实际还款金额
清算 VAI
发卡人清算 VAI 铸币者的抵押品。查获的抵押品将移交给清算人。
function liquidateVAI(address borrower, uint256 repayAmount, contract VTokenInterface vTokenCollateral) external returns (uint256, uint256)Parameters
borrower
address
借款人将被清算
repayAmount
uint256
需要偿还的借入资产金额
vTokenCollateral
合约 VTokenInterface
用于从借款人处扣押抵押品的市场
Return Values
[0]
uint256
错误代码(0=成功,否则为失败,请参阅 ErrorReporter.sol)
[1]
uint256
实际还款金额
_setComptroller
设置新的财务主管
function _setComptroller(contract ComptrollerInterface comptroller_) external returns (uint256)Return Values
[0]
uint256
uint256 0=成功,否则为失败(详情请参阅 ErrorReporter.sol)
设置 Prime 代币
设置高级用户 Prime 代币合约地址
function setPrimeToken(address prime_) externalParameters
prime_
address
主代币合约的新地址
设置 VAI 代币
设置 VAI 代币合约地址
function setVAIToken(address vai_) externalParameters
vai_
address
VAI代币合约的新地址
仅限 Prime 高级会员持有者铸造权限
仅限 Prime 高级会员持有者开启铸造权限模式
function toggleOnlyPrimeHolderMint() external returns (uint256)Return Values
[0]
uint256
uint256 0=成功,否则为失败(详情请参阅 ErrorReporter.sol)
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;
}获取可铸造 VAI 数量
该函数根据用户的账户流动性和 VAI 铸造率,返回用户可铸造的 VAI 数量。
如果 mintEnabledOnlyForPrimeHolder 为真,则只有 Prime 持有者才能铸造 VAI。
function getMintableVAI(address minter) public view returns (uint256, uint256)Parameters
minter
address
用于检查可铸造 VAI 的账户
Return Values
[0]
uint256
错误代码(0=成功,否则为失败,详情请参阅 ErrorReporter.sol)
[1]
uint256
可铸造数量(精确到小数点后18位)
_setTreasuryData
更新国库数据
function _setTreasuryData(address newTreasuryGuardian, address newTreasuryAddress, uint256 newTreasuryPercent) external returns (uint256)Parameters
newTreasuryGuardian
address
新财国库点地址
newTreasuryAddress
address
新国库地址
newTreasuryPercent
uint256
新的VAI铸币费用百分比(该VAI将上缴国库)
获取 VAI 还款利率
根据 VAI 价格获取 VAI 年利率
function getVAIRepayRate() public view returns (uint256)Return Values
[0]
uint256
uint256 年度VAI利率
获取每区块的VAIRepayRatePerBlock利率
获取每区块的利率
function getVAIRepayRatePerBlock() public view returns (uint256)Return Values
[0]
uint256
uint256 每个区块利率
获取 VAI 矿商的最新利率指数
获取 VAI 矿商的最新利率指数
function getVAIMinterInterestIndex(address minter) public view returns (uint256)Parameters
minter
address
VAI铸造者地址
Return Values
[0]
uint256
uint256 返回铸造者的利率指数
获取 VAI 还款额
获取用户当前需要偿还的 VAI 总额
function getVAIRepayAmount(address account) public view returns (uint256)Parameters
account
address
VAI借款人的地址
Return Values
[0]
uint256
(uint256) 用户需要偿还的VAI总额
获取 VAI 还款金额
计算用户需要偿还的 VAI 金额
function getVAICalculateRepayAmount(address borrower, uint256 repayAmount) public view returns (uint256, uint256, uint256)Parameters
borrower
address
VAI借款人的地址
repayAmount
uint256
返还的VAI金额
Return Values
[0]
uint256
待销毁的VAI量
[1]
uint256
用户需要支付的VAI金额(按当前利率计算)
[2]
uint256
用户需支付的过去利息金额(VAI)。
计提 VAI 利息
对已发行的 VAI 计提利息
function accrueVAIInterest() public设置访问控制
设置此合约的访问控制地址。
function setAccessControl(address newAccessControlAddress) externalParameters
newAccessControlAddress
address
访问控制的新地址
设置基准利率
设置 VAI 借款基准利率
function setBaseRate(uint256 newBaseRateMantissa) externalParameters
newBaseRateMantissa
uint256
基本利率乘以 10**1
设置浮动利率
设置 VAI 借款浮动利率
function setFloatRate(uint256 newFloatRateMantissa) externalParameters
newFloatRateMantissa
uint256
VAI浮动利率乘以10**18
设置接收方
设置 VAI 稳定费接收方地址
function setReceiver(address newReceiver) externalParameters
newReceiver
address
VAI费用接收方的地址
setMintCap
设置 VAI 铸造上限
function setMintCap(uint256 _mintCap) externalParameters
_mintCap
uint256
可铸造的VAI数量
获取 VAI 地址
返回 VAI 令牌的地址
function getVAIAddress() public view virtual returns (address)Return Values
[0]
address
VAI的地址
Last updated