IAccountBalance

modifyTakerBalancearrow-up-right

  function modifyTakerBalance(
    address trader,
    address baseToken,
    int256 base,
    int256 quote
  ) external returns (int256 takerPositionSize, int256 takerOpenNotional)

Modify trader account balance

Only used by ClearingHouse contract

Parameters:arrow-up-right

Name
Type
Description

trader

address

The address of the trader

baseToken

address

The address of the baseToken

base

int256

Modified amount of base

quote

int256

Modified amount of quote

Return Values:arrow-up-right

Name
Type
Description

takerPositionSize

int256

Taker position size after modified

takerOpenNotional

int256

Taker open notional after modified

modifyOwedRealizedPnlarrow-up-right

Modify trader owedRealizedPnl

Only used by ClearingHouse contract

Parameters:arrow-up-right

Name
Type
Description

trader

address

The address of the trader

amount

int256

Modified amount of owedRealizedPnl

settleOwedRealizedPnlarrow-up-right

Settle owedRealizedPnl

Only used by Vault.withdraw()

Parameters:arrow-up-right

Name
Type
Description

trader

address

The address of the trader

Return Values:arrow-up-right

Name
Type
Description

pnl

int256

Settled owedRealizedPnl

settleQuoteToOwedRealizedPnlarrow-up-right

Modify trader owedRealizedPnl

Only used by ClearingHouse contract

Parameters:arrow-up-right

Name
Type
Description

trader

address

The address of the trader

baseToken

address

The address of the baseToken

amount

int256

Settled quote amount

settleBalanceAndDeregisterarrow-up-right

Settle account balance and deregister base token

Only used by ClearingHouse contract

Parameters:arrow-up-right

Name
Type
Description

trader

address

The address of the trader

baseToken

address

The address of the baseToken

takerBase

int256

Modified amount of taker base

takerQuote

int256

Modified amount of taker quote

realizedPnl

int256

Amount of pnl realized

makerFee

int256

Amount of maker fee collected from pool

registerBaseTokenarrow-up-right

Every time a trader's position value is checked, the base token list of this trader will be traversed; thus, this list should be kept as short as possible

Only used by ClearingHouse contract

Parameters:arrow-up-right

Name
Type
Description

trader

address

The address of the trader

baseToken

address

The address of the trader's base token

deregisterBaseTokenarrow-up-right

Deregister baseToken from trader accountInfo

Only used by ClearingHouse contract, this function is expensive, due to for loop

Parameters:arrow-up-right

Name
Type
Description

trader

address

The address of the trader

baseToken

address

The address of the trader's base token

updateTwPremiumGrowthGlobalarrow-up-right

Update trader Twap premium info

Only used by ClearingHouse contract

Parameters:arrow-up-right

Name
Type
Description

trader

address

The address of trader

baseToken

address

The address of baseToken

lastTwPremiumGrowthGlobalX96

int256

The last Twap Premium

settlePositionInClosedMarketarrow-up-right

Settle trader's PnL in closed market

Only used by ClearingHouse

Parameters:arrow-up-right

Name
Type
Description

trader

address

The address of the trader

baseToken

address

The address of the trader's base token

Return Values:arrow-up-right

Name
Type
Description

positionNotional

int256

Taker's position notional settled with closed price

openNotional

int256

Taker's open notional

realizedPnl

int256

Settled realized pnl

closedPrice

uint256

The closed price of the closed market

getClearingHouseConfigarrow-up-right

Get ClearingHouseConfig address

Return Values:arrow-up-right

Name
Type
Description

clearingHouseConfig

address

The address of ClearingHouseConfig

getOrderBookarrow-up-right

Get OrderBook address

Return Values:arrow-up-right

Name
Type
Description

orderBook

address

The address of OrderBook

Get Vault address

Return Values:arrow-up-right

Name
Type
Description

vault

address

The address of Vault

getBaseTokensarrow-up-right

Get trader registered baseTokens

Parameters:arrow-up-right

Name
Type
Description

trader

address

The address of trader

Return Values:arrow-up-right

Name
Type
Description

baseTokens

address[]

The array of baseToken address

getAccountInfoarrow-up-right

Get trader account info

Parameters:arrow-up-right

Name
Type
Description

trader

address

The address of trader

baseToken

address

The address of baseToken

Return Values:arrow-up-right

Name
Type
Description

traderAccountInfo

struct AccountMarket.Info

The baseToken account info of trader

getTakerOpenNotionalarrow-up-right

Get taker cost of trader's baseToken

Parameters:arrow-up-right

Name
Type
Description

trader

address

The address of trader

baseToken

address

The address of baseToken

Return Values:arrow-up-right

Name
Type
Description

openNotional

int256

The taker cost of trader's baseToken

getTotalOpenNotionalarrow-up-right

Get total cost of trader's baseToken

Parameters:arrow-up-right

Name
Type
Description

trader

address

The address of trader

baseToken

address

The address of baseToken

Return Values:arrow-up-right

Name
Type
Description

totalOpenNotional

int256

the amount of quote token paid for a position when opening

getTotalDebtValuearrow-up-right

Get total debt value of trader

Total debt value will relate to Vault.getFreeCollateral()

Parameters:arrow-up-right

Name
Type
Description

trader

address

The address of trader

Return Values:arrow-up-right

Name
Type
Description

totalDebtValue

uint256

The debt value of trader

getMarginRequirementForLiquidationarrow-up-right

Get margin requirement to check whether trader will be able to liquidate

This is different from Vault._getTotalMarginRequirement(), which is for freeCollateral calculation

Parameters:arrow-up-right

Name
Type
Description

trader

address

The address of trader

Return Values:arrow-up-right

Name
Type
Description

marginRequirementForLiquidation

int256

It is compared with ClearingHouse.getAccountValue which is also an int

getPnlAndPendingFeearrow-up-right

Get owedRealizedPnl, unrealizedPnl and pending fee

Parameters:arrow-up-right

Name
Type
Description

trader

address

The address of trader

Return Values:arrow-up-right

Name
Type
Description

owedRealizedPnl

int256

the pnl realized already but stored temporarily in AccountBalance

unrealizedPnl

int256

the pnl not yet realized

pendingFee

uint256

the pending fee of maker earned

Check trader has open order in open/closed market.

Parameters:arrow-up-right

Name
Type
Description

trader

address

The address of trader

Return Values:arrow-up-right

Name
Type
Description

True

bool

of false

Get trader base amount

base amount = takerPositionSize - orderBaseDebt

Parameters:arrow-up-right

Name
Type
Description

trader

address

The address of trader

baseToken

address

The address of baseToken

Return Values:arrow-up-right

Name
Type
Description

baseAmount

int256

The base amount of trader's baseToken market

Get trader quote amount

quote amount = takerOpenNotional - orderQuoteDebt

Parameters:arrow-up-right

Name
Type
Description

trader

address

The address of trader

baseToken

address

The address of baseToken

Return Values:arrow-up-right

Name
Type
Description

quoteAmount

int256

The quote amount of trader's baseToken market

getTakerPositionSizearrow-up-right

Get taker position size of trader's baseToken market

This will only has taker position, can get maker impermanent position through getTotalPositionSize

Parameters:arrow-up-right

Name
Type
Description

trader

address

The address of trader

baseToken

address

The address of baseToken

Return Values:arrow-up-right

Name
Type
Description

takerPositionSize

int256

The taker position size of trader's baseToken market

getTotalPositionSizearrow-up-right

Get total position size of trader's baseToken market

total position size = taker position size + maker impermanent position size

Parameters:arrow-up-right

Name
Type
Description

trader

address

The address of trader

baseToken

address

The address of baseToken

Return Values:arrow-up-right

Name
Type
Description

totalPositionSize

int256

The total position size of trader's baseToken market

getTotalPositionValuearrow-up-right

Get total position value of trader's baseToken market

A negative returned value is only be used when calculating pnl, we use mark price to calc position value

Parameters:arrow-up-right

Name
Type
Description

trader

address

The address of trader

baseToken

address

The address of baseToken

Return Values:arrow-up-right

Name
Type
Description

totalPositionValue

int256

Total position value of trader's baseToken market

getTotalAbsPositionValuearrow-up-right

Get all market position abs value of trader

Parameters:arrow-up-right

Name
Type
Description

trader

address

The address of trader

Return Values:arrow-up-right

Name
Type
Description

totalAbsPositionValue

uint256

Sum up positions value of every market

getLiquidatablePositionSizearrow-up-right

Get liquidatable position size of trader's baseToken market

Parameters:arrow-up-right

Name
Type
Description

trader

address

The address of trader

baseToken

address

The address of baseToken

accountValue

int256

The account value of trader

Return Values:arrow-up-right

Name
Type
Description

liquidatablePositionSize

int256

The liquidatable position size of trader's baseToken market

getMarkPricearrow-up-right

Get mark price of baseToken market

Mark price is the median of three prices as below.

If the parameters to calculate mark price are not set, returns index twap instead for backward compatible If the market is paused, returns index twap instead, that will be the index twap while pausing market

Parameters:arrow-up-right

Name
Type
Description

baseToken

address

The address of baseToken

Return Values:arrow-up-right

Name
Type
Description

price

uint256

The mark price of baseToken market

VaultChangedarrow-up-right

Parameters:arrow-up-right

Name
Type
Description

vault

address

The address of the vault contract

Emit whenever a trader's owedRealizedPnl is updated

Parameters:arrow-up-right

Name
Type
Description

trader

address

The address of the trader

amount

int256

The amount changed

Last updated