集成 Comptroller
介绍
Comptroller 是 JustLend DAO 协议的风险管理模块。 它决定了用户应该保留多少抵押品以避免清算。
Comptroller 作为一个可升级的合约来实现。 入口是 Unitroller; 实施是 Comptroller。
相关方法
市场
enterMarkets()
调用此方法会进入一个或多个市场进行抵押或借贷。
cTokens
address[]
待加入市场的地址列表
返回值:对于每个市场,返回 0 即为成功加入,否则返回相应错误码
exitMarket()
调用这个方法将退出后一个当前加入的市场。
cTokenAddress
address
待退出市场的地址
返回值:成功时返回 0,否则返回相应错误码
getAssetsIn()
调用这个方法将返回已加入的市场列表。
account
address
待查询加入市场信息的地址
返回值:已加入的市场列表
markets()
调用这个方法将返回指定市场的状态(isListed, collateralFactorMantissa, comped)
cTokenAddress
address
市场地址
isListed
bool
是否能被 comptroller 识别
collateralFactorMantissa
uint
可借的数目(乘以 1e18)
comped
bool
借款和抵押人是否能获得 JST 分红
抵押和清算
getAccountLiquidity()
调用这个方法将返回用户的流动性及短缺数(由于comptroller选用无符号的 uint,用 shortfall 来体现短缺)。
account
address
待查询的地址
error
uint
0 时即为成功,否则返回相应错误码
liquidity
uint
当前的流动性
shortfall
uint
流动性短缺。该值不为 0 时表示当前用户可能会被清算
closeFactorMantissa()
调用此方法获取可清算账户应在单次清算中偿还的百分比。范围为 0%-100%。该方法的计算结果适用于单一资产。
返回值:close factor, 乘以 1e18
liquidationIncentiveMantissa()
调用这种方法可以获得清算人的激励,这个激励是针对水下账户的。其中一部分将根据抵押份额分配给 jToken 储备金。
返回值:清算激励,乘以 1e18
重要事件
MarketEntered(address cToken, address account)
成功加入市场时发出
MarketExited(address cToken, address account)
成功退出市场时发出
错误码
0
NO_ERROR
成功
1
UNAUTHORIZED
调用者无权限
2
COMPTROLLER_MISMATCH
清算不能由不同的 comptroller执行
3
INSUFFICIENT_SHORTFALL
账户余额不足
4
INSUFFICIENT_LIQUIDITY
账户流动性不足
5
INVALID_CLOSE_FACTOR
close factor 非法
6
INVALID_COLLATERAL_FACTOR
collateral factor 非法
7
INVALID_LIQUIDATION_INCENTIVE
清算激励非法
8
MARKET_NOT_ENTERED
账户尚未加入该市场
9
MARKET_NOT_LISTED
该市场尚未被 comtroller 列出
10
MARKET_ALREADY_LISTED
该市场已被列出
11
MATH_ERROR
数学计算错误
12
NONZERO_BORROW_BALANCE
已有借入余额,无法完成操作
13
PRICE_ERROR
comptroller 无法获取价格
14
REJECTION
comptroller 拒绝了请求
15
SNAPSHOT_ERROR
comptroller 无法从市场上获得账户借款和汇率。
16
TOO_MANY_ASSETS
加入的市场数目超过限制
17
TOO_MUCH_REPAY
偿还数额超过限制
失败信息
0
ACCEPT_ADMIN_PENDING_ADMIN_CHECK
1
ACCEPT_PENDING_IMPLEMENTATION_ADDRESS_CHECK
2
EXIT_MARKET_BALANCE_OWED
3
EXIT_MARKET_REJECTION
4
SET_CLOSE_FACTOR_OWNER_CHECK
5
SET_CLOSE_FACTOR_VALIDATION
6
SET_COLLATERAL_FACTOR_OWNER_CHECK
7
SET_COLLATERAL_FACTOR_NO_EXISTS
8
SET_COLLATERAL_FACTOR_VALIDATION
9
SET_COLLATERAL_FACTOR_WITHOUT_PRICE
10
SET_IMPLEMENTATION_OWNER_CHECK
11
SET_LIQUIDATION_INCENTIVE_OWNER_CHECK
12
SET_LIQUIDATION_INCENTIVE_VALIDATION
13
SET_MAX_ASSETS_OWNER_CHECK
14
SET_PENDING_ADMIN_OWNER_CHECK
15
SET_PENDING_IMPLEMENTATION_OWNER_CHECK
16
SET_PRICE_ORACLE_OWNER_CHECK
17
SUPPORT_MARKET_EXISTS
18
SUPPORT_MARKET_OWNER_CHECK
Last updated