Vault
Keeps track of all token reserves for all market
Methods
DEFAULT_ADMIN_ROLE
Returns
_0
bytes32
undefined
EMERGENCY_ADMIN
Returns
_0
bytes32
undefined
GOVERNANCE
Returns
_0
bytes32
undefined
UA
Returns
_0
contract IERC20Metadata
undefined
UA_IDX
Returns
_0
uint256
undefined
addWhiteListedCollateral
Add a new token to the list of whitelisted ERC20 which can be used as collaterals
Parameters
asset
contract IERC20Metadata
Address of the token to be whitelisted as a valid collateral in the Vault
weight
uint256
Discount weight to be applied on the asset vault
maxAmount
uint256
Maximum total amount that the Vault will accept of this collateral
changeCollateralMaxAmount
Change max amount of a whitelisted collateral Useful as a risk mitigation measure in case one collateral drops in value
Parameters
asset
contract IERC20Metadata
Address of asset to change max amount
newMaxAmount
uint256
New max amount for the collateral
changeCollateralWeight
Change weight of a whitelisted collateral Useful as a risk mitigation measure in case one collateral drops in value
Parameters
asset
contract IERC20Metadata
Address of asset to change collateral weight
newWeight
uint256
New weight. 18 decimals
clearingHouse
Returns
_0
contract IClearingHouse
undefined
decreaseAllowance
Decrease the approval of another account to withdraw a user's tokens
Parameters
user
address
Address to debit Vault collateral from
receiver
address
Address to credit ERC20 token to
subtractedAmount
uint256
Amount to be decrease the current approval by. 18 decimals
token
contract IERC20Metadata
One whitelisted token
deposit
Add an amount of a whitelisted token to the balance of a user
Parameters
sender
address
undefined
user
address
Account to deposit collateral to
amount
uint256
Amount to be used as the collateral of the position. Might not be 18 decimals (decimals of the token)
depositToken
contract IERC20Metadata
One whitelisted token
getAllowance
Get the Allowance that a user has given a receiver for a specified token
Parameters
user
address
address of the user to withdraw from
receiver
address
address of the receiver of tokens for a withdrawal
tokenIdx
uint256
Index of the token
Returns
_0
uint256
undefined
getBalance
Get the balance of a user of a given token
Parameters
user
address
User address
tokenIdx
uint256
Index of the token
Returns
_0
int256
undefined
getNumberOfCollaterals
Get number of whitelisted tokens
Returns
_0
uint256
undefined
getReserveValue
Get the balance of a user, accounted for in USD. 18 decimals
Parameters
user
address
User address
isDiscounted
bool
Whether or not the reserve value should be discounted by the weight of the collateral
Returns
_0
int256
undefined
getRoleAdmin
Returns the admin role that controls role
. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.
Parameters
role
bytes32
undefined
Returns
_0
bytes32
undefined
getTotalValueLocked
Get total value of all tokens deposited in the vault, in USD. 18 decimals
Returns
_0
int256
undefined
getWhiteListedCollateral
Get details of a whitelisted collateral token
Parameters
idx
uint256
Index of the whitelisted collateral to get details from
Returns
_0
IVault.Collateral
undefined
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
role
bytes32
undefined
account
address
undefined
hasRole
Returns true
if account
has been granted role
.
Parameters
role
bytes32
undefined
account
address
undefined
Returns
_0
bool
undefined
increaseAllowance
Increase the approval of another account to withdraw a user's tokens
Parameters
user
address
Address to debit Vault collateral from
receiver
address
Address to credit ERC20 token to
addedAmount
uint256
Amount to be increase the current approval by. 18 decimals
token
contract IERC20Metadata
One whitelisted token
insurance
Returns
_0
contract IInsurance
undefined
isEmergencyAdmin
Parameters
account
address
undefined
Returns
_0
bool
undefined
isGovernor
Parameters
account
address
undefined
Returns
_0
bool
undefined
oracle
Returns
_0
contract IOracle
undefined
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
role
bytes32
undefined
account
address
undefined
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
role
bytes32
undefined
account
address
undefined
setClearingHouse
Update the ClearingHouse address
Parameters
newClearingHouse
contract IClearingHouse
Address of the new ClearingHouse
setInsurance
Update the Insurance address
Parameters
newInsurance
contract IInsurance
Address of the new Insurance
setOracle
Update the Oracle address
Parameters
newOracle
contract IOracle
Address of the new Oracle
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
liquidator
address
Address of the liquidator
liquidatee
address
Address of the liquidatee
settlePnL
Settle PnL for user in UA
Parameters
user
address
Account to apply the PnL to
amount
int256
PnL amount in UA to apply. 18 decimals
supportsInterface
See {IERC165-supportsInterface}.
Parameters
interfaceId
bytes4
undefined
Returns
_0
bool
undefined
tokenToCollateralIdx
Map whitelisted collateral tokens to their whiteListedCollaterals indices
Parameters
_0
contract IERC20Metadata
undefined
Returns
_0
uint256
undefined
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
user
address
Account to withdraw UA tokens to
amount
uint256
Amount of UA tokens to be withdrawn. 18 decimals
withdraw
Withdraw tokens stored by a user in the vault
Unlike deposit
, withdraw
treats withdrawals of UA differently than other collaterals
Parameters
user
address
Account to withdraw from
amount
uint256
Amount to withdraw from the vault. Might not be 18 decimals (decimals of the token)
withdrawToken
contract IERC20Metadata
Token whose balance is to be withdrawn from the vault
withdrawAll
Withdraw all tokens stored by a user in the vault
Parameters
user
address
Account to withdraw from
withdrawToken
contract IERC20Metadata
Token whose balance is to be withdrawn from the vault
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
user
address
Account to withdraw from
receiver
address
Account that should receiver the tokens
amount
uint256
Amount to withdraw from the vault. Might not be 18 decimals (decimals of the token)
withdrawToken
contract IERC20Metadata
Token whose balance is to be withdrawn from the vault
Events
Approval
Emitted when a new approval value is set
Parameters
user indexed
address
undefined
receiver indexed
address
undefined
tokenIdx
uint256
undefined
amount
uint256
undefined
ClearingHouseChanged
Emitted when the ClearingHouse address is updated
Parameters
newClearingHouse
contract IClearingHouse
undefined
CollateralAdded
Emitted when a new collateral is added to the Vault
Parameters
asset
contract IERC20Metadata
undefined
weight
uint256
undefined
maxAmount
uint256
undefined
CollateralMaxAmountChanged
Emitted when a collateral max amount is updated
Parameters
asset
contract IERC20Metadata
undefined
newMaxAmount
uint256
undefined
CollateralWeightChanged
Emitted when a collateral weight is updated
Parameters
asset
contract IERC20Metadata
undefined
newWeight
uint256
undefined
Deposit
Emitted when collateral is deposited into the vault
Parameters
user indexed
address
undefined
asset indexed
address
undefined
amount
uint256
undefined
InsuranceChanged
Emitted when the Insurance address is updated
Parameters
newInsurance
contract IInsurance
undefined
OracleChanged
Emitted when the Oracle address is updated
Parameters
newOracle
contract IOracle
undefined
RoleAdminChanged
Parameters
role indexed
bytes32
undefined
previousAdminRole indexed
bytes32
undefined
newAdminRole indexed
bytes32
undefined
RoleGranted
Parameters
role indexed
bytes32
undefined
account indexed
address
undefined
sender indexed
address
undefined
RoleRevoked
Parameters
role indexed
bytes32
undefined
account indexed
address
undefined
sender indexed
address
undefined
TraderBadDebtGenerated
Emitted when bad debt is settled for by the insurance reserve
Parameters
beneficiary
address
undefined
amount
uint256
undefined
Withdraw
Emitted when collateral is withdrawn from the vault
Parameters
user indexed
address
undefined
asset indexed
address
undefined
amount
uint256
undefined
Errors
PRBMathSD59x18__MulInputTooSmall
Emitted when one of the inputs is MIN_SD59x18.
PRBMathSD59x18__MulOverflow
Emitted when the intermediary absolute result overflows SD59x18.
Parameters
rAbs
uint256
undefined
PRBMath__MulDivFixedPointOverflow
Emitted when the result overflows uint256.
Parameters
prod1
uint256
undefined
PRBMath__MulDivOverflow
Emitted when the result overflows uint256.
Parameters
prod1
uint256
undefined
denominator
uint256
undefined
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
paramIndex
uint8
undefined
Last updated