Comptroller
Last updated
Last updated
The Comptroller is the risk management module of the JustLend DAO protocol. It determines how much collateral should users keep to avoid liquidation.
The Comptroller is implemented as an upgradable contract. The entrance is Unitroller; the implementation is Comptroller.
Calling this method enters a list of markets to supply or borrow.
Parameter description:
Parameter | Type | Description |
---|---|---|
Returns: For each market, returns 0 for success, otherwise an error code.
Calling this method exits a currently entered market.
Parameter description:
Returns: 0 on success, otherwise an error code.
Calling this method returns a list of already entered markets.
Parameter description:
Returns: Markets have been entered by the specified address.
Calling this method returns the status of a market(isListed, collateralFactorMantissa, comped)
Parameter description:
Return Values:
Calling this method returns the liquidity and shortfall of a user.
Parameter description:
Return Values:
Calling this method gets the percentage of a liquidatable account should repay in a single liquidation. The range is 0%-100%. The calculation result of this method applies to a single asset.
Returns: The close factor, scaled by 1e18
Calling this method gets liquidators' incentives. The incentive is for underwater accounts. Part of this will be given to jToken reserves according to the seize share.
Returns: The liquidation incentive, scaled by 1e18
Parameter | Type | Description |
---|---|---|
Parameter | Type | Description |
---|---|---|
Parameter | Type | Description |
---|---|---|
Returns | Type | Description |
---|---|---|
Parameter | Type | Description |
---|---|---|
Returns | Type | Description |
---|---|---|
Event | Description |
---|---|
Code | Name | Description |
---|---|---|
Code | Value |
---|---|
cTokens
address[]
Address list of the markets to enter
cTokenAddress
address
Market address to quit
account
address
The markets this account enters will be returned
cTokenAddress
address
Market address
isListed
bool
Whether recognized by comptroller
collateralFactorMantissa
uint
The value can be borrowed(scaled by 1e18)
comped
bool
Whether suppliers & borrowers can get jst dividends
account
address
Address to be queried
error
uint
0 for success, otherwise an error code
liquidity
uint
current liquidity
shortfall
uint
The shortfall value of the account's collateral requirement
MarketEntered(address cToken, address account)
Emits when successfully entering a market
MarketExited(address cToken, address account)
Emits when successfully exit a market
0
NO_ERROR
Success
1
UNAUTHORIZED
The sender is not authorized to perform this action.
2
COMPTROLLER_MISMATCH
Liquidation cannot be performed in markets with different comptrollers.
3
INSUFFICIENT_SHORTFALL
The account does not have sufficient shortfall to perform this action.
4
INSUFFICIENT_LIQUIDITY
The account does not have sufficient liquidity to perform this action.
5
INVALID_CLOSE_FACTOR
The close factor is not valid.
6
INVALID_COLLATERAL_FACTOR
The collateral factor is not valid.
7
INVALID_LIQUIDATION_INCENTIVE
The liquidation incentive is invalid.
8
MARKET_NOT_ENTERED
The market has not been entered by the account.
9
MARKET_NOT_LISTED
The market is not currently listed by the comptroller.
10
MARKET_ALREADY_LISTED
An admin tried to list the same market more than once.
11
MATH_ERROR
A math calculation error occurred.
12
NONZERO_BORROW_BALANCE
The action cannot be performed since the account carries a borrow balance.
13
PRICE_ERROR
The comptroller could not obtain a required price of an asset.
14
REJECTION
The comptroller rejects the action requested by the market.
15
SNAPSHOT_ERROR
The comptroller could not get the account borrows and exchange rate from the market.
16
TOO_MANY_ASSETS
Attempted to enter more markets than are currently supported.
17
TOO_MUCH_REPAY
Attempted to repay more than is allowed by the protocol.
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