Vault
Keeps track of all token reserves for all market
Methods
DEFAULT_ADMIN_ROLE
Returns
EMERGENCY_ADMIN
Returns
GOVERNANCE
Returns
UA
Returns
UA_IDX
Returns
addWhiteListedCollateral
Add a new token to the list of whitelisted ERC20 which can be used as collaterals
Parameters
changeCollateralMaxAmount
Change max amount of a whitelisted collateral Useful as a risk mitigation measure in case one collateral drops in value
Parameters
changeCollateralWeight
Change weight of a whitelisted collateral Useful as a risk mitigation measure in case one collateral drops in value
Parameters
clearingHouse
Returns
decreaseAllowance
Decrease the approval of another account to withdraw a user's tokens
Parameters
deposit
Add an amount of a whitelisted token to the balance of a user
Parameters
getAllowance
Get the Allowance that a user has given a receiver for a specified token
Parameters
Returns
getBalance
Get the balance of a user of a given token
Parameters
Returns
getNumberOfCollaterals
Get number of whitelisted tokens
Returns
getReserveValue
Get the balance of a user, accounted for in USD. 18 decimals
Parameters
Returns
getRoleAdmin
Returns the admin role that controls role
. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.
Parameters
Returns
getTotalValueLocked
Get total value of all tokens deposited in the vault, in USD. 18 decimals
Returns
getWhiteListedCollateral
Get details of a whitelisted collateral token
Parameters
Returns
grantRole
Grants role
to account
. If account
had not been already granted role
, emits a {RoleGranted} event. Requirements: - the caller must have role
's admin role. May emit a {RoleGranted} event.
Parameters
hasRole
Returns true
if account
has been granted role
.
Parameters
Returns
increaseAllowance
Increase the approval of another account to withdraw a user's tokens
Parameters
insurance
Returns
isEmergencyAdmin
Parameters
Returns
isGovernor
Parameters
Returns
oracle
Returns
renounceRole
Revokes role
from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked role
, emits a {RoleRevoked} event. Requirements: - the caller must be account
. May emit a {RoleRevoked} event.
Parameters
revokeRole
Revokes role
from account
. If account
had been granted role
, emits a {RoleRevoked} event. Requirements: - the caller must have role
's admin role. May emit a {RoleRevoked} event.
Parameters
setClearingHouse
Update the ClearingHouse address
Parameters
setInsurance
Update the Insurance address
Parameters
setOracle
Update the Oracle address
Parameters
settleLiquidationOnCollaterals
Allow liquidator to buy back non-UA collateral(s) of liquidated user at a discounted price whereby settling the latter debt
The liquidator buys just as much non-UA collaterals to cover the liquidatee's debt, not moreIf the USD value of all the non-UA collaterals of the liquidatee < his UA debt, Increment insurance steps in to cover the remainder of the UA debt
Parameters
settlePnL
Settle PnL for user in UA
Parameters
supportsInterface
See {IERC165-supportsInterface}.
Parameters
Returns
tokenToCollateralIdx
Map whitelisted collateral tokens to their whiteListedCollaterals indices
Parameters
Returns
transferUa
Transfer UA tokens from the vault
Important: the balance of the user from whom the UA tokens are being withdrawn must be updated separately
Parameters
withdraw
Withdraw tokens stored by a user in the vault
Unlike deposit
, withdraw
treats withdrawals of UA differently than other collaterals
Parameters
withdrawAll
Withdraw all tokens stored by a user in the vault
Parameters
withdrawFrom
Withdraw tokens from a user in the vault to a receiving account
Unlike deposit
, withdraw
treats withdrawals of UA differently than other collaterals
Parameters
Events
Approval
Emitted when a new approval value is set
Parameters
ClearingHouseChanged
Emitted when the ClearingHouse address is updated
Parameters
CollateralAdded
Emitted when a new collateral is added to the Vault
Parameters
CollateralMaxAmountChanged
Emitted when a collateral max amount is updated
Parameters
CollateralWeightChanged
Emitted when a collateral weight is updated
Parameters
Deposit
Emitted when collateral is deposited into the vault
Parameters
InsuranceChanged
Emitted when the Insurance address is updated
Parameters
OracleChanged
Emitted when the Oracle address is updated
Parameters
RoleAdminChanged
Parameters
RoleGranted
Parameters
RoleRevoked
Parameters
TraderBadDebtGenerated
Emitted when bad debt is settled for by the insurance reserve
Parameters
Withdraw
Emitted when collateral is withdrawn from the vault
Parameters
Errors
PRBMathSD59x18__MulInputTooSmall
Emitted when one of the inputs is MIN_SD59x18.
PRBMathSD59x18__MulOverflow
Emitted when the intermediary absolute result overflows SD59x18.
Parameters
PRBMath__MulDivFixedPointOverflow
Emitted when the result overflows uint256.
Parameters
PRBMath__MulDivOverflow
Emitted when the result overflows uint256.
Parameters
Vault_ApproveZeroAddress
Emitted when a user attempts to approve the zero address
Vault_ClearingHouseAlreadySet
Emitted when the clearingHouse has already been set (one time call function)
Vault_ClearingHouseZeroAddress
Emitted when the proposed clearingHouse address is equal to the zero address
Vault_CollateralAlreadyWhiteListed
Emitted when owner tries to whitelist a collateral already whitelisted
Vault_ExcessiveCollateralWeight
Emitted when the proposed collateral weight is above the limit
Vault_InsufficientBalance
Emitted when a user attempts to withdraw more collateral than available in vault
Vault_InsufficientCollateralWeight
Emitted when the proposed collateral weight is under the limit
Vault_InsuranceAlreadySet
Emitted when the insurance has already been set (one time call function)
Vault_InsuranceZeroAddress
Emitted when the proposed insurance address is equal to the zero address
Vault_MaxCollateralAmountExceeded
Emitted when a user attempts to withdraw more collateral than available in vault
Vault_OracleZeroAddress
Emitted when the proposed oracle address is equal to the zero address
Vault_SenderNotClearingHouse
Emitted when the sender is not the clearing house
Vault_SenderNotInsurance
Emitted when the sender is nor the insurance
Vault_UADebt
Emitted when user tries to withdraw collateral while having a UA debt
Vault_UnsupportedCollateral
Emitted when a user attempts to use a token which is not whitelisted as collateral
Vault_WithdrawExcessiveAmount
Emitted when a user attempts to withdraw more than their balance
Vault_WithdrawInsufficientAllowance
Emitted when a user attempts to withdraw more than their allowance
Vault_ZeroAddressConstructor
Emitted when the zero address is provided as a parameter in the constructor
Parameters
Last updated