Vault
Last updated
Was this helpful?
Last updated
Was this helpful?
only used for unwrapping weth in withdrawETH
Deposit collateral into vault
token
address
The address of the token to deposit
amount
uint256
The amount of the token to deposit
Deposit the collateral token for other account
to
address
The address of the account to deposit to
token
address
The address of collateral token
amount
uint256
The amount of the token to deposit
Deposit ETH as collateral into vault
Deposit ETH as collateral for specified account
to
address
The address of the account to deposit to
Withdraw collateral from vault
token
address
The address of the token to withdraw
amount
uint256
The amount of the token to withdraw
Withdraw ETH from vault
amount
uint256
The amount of the ETH to withdraw
Withdraw all free collateral from vault
token
address
The address of the token to withdraw
amount
uint256
The amount of the token withdrawn
Withdraw all free collateral of ETH from vault
amount
uint256
The amount of ETH withdrawn
Liquidate trader's collateral by given settlement token amount or non settlement token amount
trader
address
The address of trader that will be liquidated
token
address
The address of non settlement collateral token that the trader will be liquidated
amount
uint256
The amount of settlement token that the liquidator will repay for trader or
|isDenominatedInSettlementToken
| bool | Whether the amount is denominated in settlement token or not
returnAmount
uint256
The amount of a non-settlement token (in its native decimals) that is liquidated
Get the settlement token address
We assume the settlement token should match the denominator of the price oracle. i.e. if the settlement token is USDC, then the oracle should be priced in USD
settlementToken
address
The address of the settlement token
Get settlement token decimals
cached the settlement token's decimal for gas optimization
decimals
uint8
The decimals of settlement token
(Deprecated) Get the borrowed settlement token amount from insurance fund
debtAmount
uint256
The debt amount (in settlement token's decimals)
Get ClearingHouseConfig
contract address
clearingHouseConfig
address
The address of ClearingHouseConfig
contract
Get AccountBalance
contract address
accountBalance
address
The address of AccountBalance
contract
Get InsuranceFund
contract address
insuranceFund
address
The address of InsuranceFund
contract
Get Exchange
contract address
exchange
address
The address of Exchange
contract
Get ClearingHouse
contract address
clearingHouse
address
The address of ClearingHouse
contract
Get CollateralManager
contract address
clearingHouse
address
The address of CollateralManager
contract
Get WETH9
contract address
clearingHouse
address
The address of WETH9
contract
Get the free collateral value denominated in the settlement token of the specified trader
trader
address
The address of the trader
freeCollateral
uint256
the value (in settlement token's decimals) of free collateral available
Get the free collateral amount of the specified trader and collateral ratio
There are three configurations for different insolvency risk tolerances: conservative, moderate &aggressive. We will start with the conservative one and gradually move to aggressive to increase capital efficiency
trader
address
The address of the trader
ratio
uint24
The margin requirement ratio, imRatio or mmRatio
freeCollateralByRatio
int256
freeCollateral (in settlement token's decimals), by using the
Get the specified trader's settlement value, including pending fee, funding payment, owed realized PnL and unrealized PnL
Note the difference between settlementTokenBalanceX10_S
, getSettlementTokenValue()
and getBalance()
: They are all settlement token balances but with or without pending fee, funding payment, owed realized PnL, unrealized PnL, respectively In practical applications, we use getSettlementTokenValue()
to get the trader's debt (if < 0)
trader
address
The address of the trader
balance
int256
The balance amount (in settlement token's decimals)
Get account value of the specified trader
trader
address
The address of the trader
accountValueX10_S
int256
account value (in settlement token's decimals)
Get the array of collateral token addresses that a trader has in their account
trader
address
The address of the trader
collateralTokens
address[]
array of collateral token addresses
Get the specified trader's settlement token balance, without pending fee, funding payment and owed realized PnL
The function is equivalent to getBalanceByToken(trader, settlementToken)
We keep this function solely for backward-compatibility with the older single-collateral system. In practical applications, the developer might want to use getSettlementTokenValue()
instead because the latter includes pending fee, funding payment etc. and therefore more accurately reflects a trader's settlement (ex. USDC) balance
trader
address
The address of the trader
balance
int256
The balance amount (in settlement token's decimals)
Get the balance of Vault of the specified collateral token and trader
trader
address
The address of the trader
token
address
The address of the collateral token
balance
int256
The balance amount (in its native decimals)
Get the free collateral amount of the specified collateral token of specified trader
getFreeCollateralByToken(token) = (getSettlementTokenValue() >= 0) ? min(getFreeCollateral() / indexPrice[token], getBalanceByToken(token)) : 0 if token is settlementToken, then indexPrice[token] = 1
trader
address
The address of the trader
token
address
The address of the collateral token
freeCollateral
uint256
amount of that token (in the token's native decimals)
trader
address
The address of the trader
isLiquidatable
bool
If the trader can be liquidated
get the margin requirement for collateral liquidation of a trader
this value is compared with ClearingHouse.getAccountValue()
(int)
trader
address
The address of the trader
marginRequirement
int256
margin requirement (in 18 decimals)
Get the maintenance margin ratio for collateral liquidation
collateralMmRatio
uint24
The maintenance margin ratio for collateral liquidation
Get a trader's repaid settlement amount by a given collateral amount
token
address
The address of the token of the trader's collateral
collateral
uint256
The amount of collateral token the liquidator wants to get
settlementX10_S
uint256
The settlement amount(in settlement token's decimals) the liquidator needs to pay
Get a trader's liquidatable collateral amount by a given settlement amount
token
address
The address of the token of the trader's collateral
settlementX10_S
uint256
The amount of settlement token the liquidator wants to pay
collateral
uint256
The collateral amount(in its native decimals) the liquidator can get
Get a trader's max repaid settlement & max liquidatable collateral by a given collateral token
formula: maxRepaidSettlement = maxLiquidatableCollateral (indexTwap (1 - discountRatio)) maxLiquidatableCollateral = min(maxRepaidSettlement / (indexTwap * (1 - discountRatio)), getBalanceByToken(trader, token))
trader
address
The address of the trader
token
address
The address of the token of the trader's collateral
maxRepaidSettlementX10_S
uint256
The maximum settlement amount(in settlement token's decimals)
|maxLiquidatableCollateral
| uint256 | The maximum liquidatable collateral amount (in the collateral token's native decimals) of a trader
Settle trader's bad debt
will only settle the bad debt when trader didn't have position and non-settlement collateral
trader
address
The address of trader that will be settled
Parameters:
Parameters:
Parameters:
Parameters:
Parameters:
Parameters:
Return Values:
Return Values:
Parameters:
Return Values:
Return Values:
Return Values:
Return Values:
Return Values:
Return Values:
Return Values:
Return Values:
Return Values:
Return Values:
Return Values:
Parameters:
Return Values:
Parameters:
Return Values:
Parameters:
Return Values:
Parameters:
Return Values:
Parameters:
Return Values:
Parameters:
Return Values:
Parameters:
Return Values:
Parameters:
Return Values:
Parameters:
Return Values:
Parameters:
Return Values:
Return Values:
Parameters:
Return Values:
Parameters:
Return Values:
Parameters:
Return Values:
Parameters: