集成 Comptroller
Last updated
Last updated
Comptroller 是 JustLend DAO 协议的风险管理模块。 它决定了用户应该保留多少抵押品以避免清算。
Comptroller 作为一个可升级的合约来实现。 入口是 ; 实施是 。
调用此方法会进入一个或多个市场进行抵押或借贷。
cTokens
address[]
待加入市场的地址列表
返回值:对于每个市场,返回 0 即为成功加入,否则返回相应错误码
调用这个方法将退出后一个当前加入的市场。
cTokenAddress
address
待退出市场的地址
返回值:成功时返回 0,否则返回相应错误码
调用这个方法将返回已加入的市场列表。
account
address
待查询加入市场信息的地址
返回值:已加入的市场列表
调用这个方法将返回指定市场的状态(isListed, collateralFactorMantissa, comped)
cTokenAddress
address
市场地址
isListed
bool
是否能被 comptroller 识别
collateralFactorMantissa
uint
可借的数目(乘以 1e18)
comped
bool
借款和抵押人是否能获得 JST 分红
调用这个方法将返回用户的流动性及短缺数(由于comptroller选用无符号的 uint,用 shortfall 来体现短缺)。
account
address
待查询的地址
error
uint
0 时即为成功,否则返回相应错误码
liquidity
uint
当前的流动性
shortfall
uint
流动性短缺。该值不为 0 时表示当前用户可能会被清算
调用此方法获取可清算账户应在单次清算中偿还的百分比。范围为 0%-100%。该方法的计算结果适用于单一资产。
返回值:close factor, 乘以 1e18
调用这种方法可以获得清算人的激励,这个激励是针对水下账户的。其中一部分将根据抵押份额分配给 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