IClearingHouse
AddLiquidityParams
RemoveLiquidityParams
AddLiquidityResponse
RemoveLiquidityResponse
OpenPositionParams
ClosePositionParams
CollectPendingFeeParams
Functions
addLiquidity
Maker can call addLiquidity
to provide liquidity on Uniswap V3 pool
Tx will fail if adding base == 0 && quote == 0
/ liquidity == 0
AddLiquidityParams.useTakerBalance
is only acceptfalse
now
Parameters:
params
struct IClearingHouse.AddLiquidityParams
AddLiquidityParams struct
Return Values:
response
struct IClearingHouse.AddLiquidityResponse
AddLiquidityResponse struct
removeLiquidity
Maker can call removeLiquidity
to remove liquidity
remove liquidity will transfer maker impermanent position to taker position, if liquidity
of RemoveLiquidityParams struct is zero, the action will collect fee from pool to maker
Parameters:
params
struct IClearingHouse.RemoveLiquidityParams
RemoveLiquidityParams struct
Return Values:
response
struct IClearingHouse.RemoveLiquidityResponse
RemoveLiquidityResponse struct
settleAllFunding
Settle all markets fundingPayment to owedRealized Pnl
Parameters:
trader
address
The address of trader
openPosition
Trader can call openPosition
to long/short on baseToken market
OpenPositionParams.oppositeAmountBound
B2Q + exact input, want more output quote as possible, so we set a lower bound of output quote
B2Q + exact output, want less input base as possible, so we set a upper bound of input base
Q2B + exact input, want more output base as possible, so we set a lower bound of output base
Q2B + exact output, want less input quote as possible, so we set a upper bound of input quote
when it's set to 0, it will disable slippage protection entirely regardless of exact input or output when it's over or under the bound, it will be reverted
OpenPositionParams.sqrtPriceLimitX96
B2Q: the price cannot be less than this value after the swap
Q2B: the price cannot be greater than this value after the swap
it will fill the trade until it reaches the price limit but WON'T REVERT when it's set to 0, it will disable price limit; when it's 0 and exact output, the output amount is required to be identical to the param amount
Parameters:
params
struct IClearingHouse.OpenPositionParams
OpenPositionParams struct
Return Values:
base
uint256
The amount of baseToken the taker got or spent
quote
uint256
The amount of quoteToken the taker got or spent
openPositionFor
Parameters:
trader
address
The address of trader
params
struct IClearingHouse.OpenPositionParams
OpenPositionParams struct is the same as openPosition()
Return Values:
base
uint256
The amount of baseToken the taker got or spent
quote
uint256
The amount of quoteToken the taker got or spent
fee
uint256
The trading fee
closePosition
Close trader's position
Parameters:
params
struct IClearingHouse.ClosePositionParams
ClosePositionParams struct
Return Values:
base
uint256
The amount of baseToken the taker got or spent
quote
uint256
The amount of quoteToken the taker got or spent
liquidate
If trader is underwater, any one can call liquidate
to liquidate this trader
If trader has open orders, need to call cancelAllExcessOrders
first If positionSize is greater than maxLiquidatePositionSize, liquidate maxLiquidatePositionSize by default If margin ratio >= 0.5 mmRatio, maxLiquidateRatio = MIN((1, 0.5 totalAbsPositionValue / absPositionValue) If margin ratio < 0.5 mmRatio, maxLiquidateRatio = 1 maxLiquidatePositionSize = positionSize maxLiquidateRatio
Parameters:
trader
address
The address of trader
baseToken
address
The address of baseToken
positionSize
int256
the position size to be liquidated by liquidator
liquidate
liquidate trader's position and will liquidate the max possible position size
If margin ratio >= 0.5 mmRatio, maxLiquidateRatio = MIN((1, 0.5 totalAbsPositionValue / absPositionValue) If margin ratio < 0.5 mmRatio, maxLiquidateRatio = 1 maxLiquidatePositionSize = positionSize maxLiquidateRatio
Parameters:
trader
address
The address of trader
baseToken
address
The address of baseToken
cancelExcessOrders
Cancel excess order of a maker
Order id can get from OrderBook.getOpenOrderIds
Parameters:
maker
address
The address of Maker
baseToken
address
The address of baseToken
orderIds
bytes32[]
The id of the order
cancelAllExcessOrders
Cancel all excess orders of a maker if the maker is underwater
This function won't fail if the maker has no order but fails when maker is not underwater
Parameters:
maker
address
The address of maker
baseToken
address
The address of baseToken
quitMarket
Close all positions and remove all liquidities of a trader in the closed market
Parameters:
trader
address
The address of trader
baseToken
address
The address of baseToken
Return Values:
base
uint256
The amount of base token that is closed
quote
uint256
The amount of quote token that is closed
getAccountValue
Get account value of trader
accountValue = totalCollateralValue + totalUnrealizedPnl, in 18 decimals
Parameters:
trader
address
The address of trader
Return Values:
accountValue
int256
The account value of trader
getQuoteToken
Get QuoteToken address
Return Values:
quoteToken
address
The quote token address
getUniswapV3Factory
Get UniswapV3Factory address
Return Values:
factory
address
UniswapV3Factory address
getClearingHouseConfig
Get ClearingHouseConfig address
Return Values:
clearingHouseConfig
address
ClearingHouseConfig address
getVault
Get Vault
address
Return Values:
vault
address
Vault
address
getExchange
Get Exchange
address
Return Values:
exchange
address
Exchange
address
getOrderBook
Get OrderBook
address
Return Values:
orderBook
address
OrderBook
address
getAccountBalance
Get AccountBalance address
Return Values:
accountBalance
address
AccountBalance
address
getInsuranceFund
Get InsuranceFund
address
Return Values:
insuranceFund
address
InsuranceFund
address
getDelegateApproval
Get DelegateApproval
address
Return Values:
delegateApproval
address
DelegateApproval
address
Events
ReferredPositionChanged
Emitted when open position with non-zero referral code
Parameters:
referralCode
bytes32
The referral code by partners
PositionLiquidated
Emitted when taker position is being liquidated
Parameters:
trader
address
The trader who has been liquidated
baseToken
address
Virtual base token(ETH, BTC, etc...) address
positionNotional
uint256
The cost of position
positionSize
uint256
The size of position
liquidationFee
uint256
The fee of liquidate
liquidator
address
The address of liquidator
LiquidityChanged
Emitted when maker's liquidity of a order changed
Parameters:
maker
address
The one who provide liquidity
baseToken
address
The address of virtual base token(ETH, BTC, etc...)
quoteToken
address
The address of virtual USD token
lowerTick
int24
The lower tick of the position in which to add liquidity
upperTick
int24
The upper tick of the position in which to add liquidity
base
int256
The amount of base token added (> 0) / removed (< 0) as liquidity; fees not included
quote
int256
The amount of quote token added ... (same as the above)
liquidity
int128
The amount of liquidity unit added (> 0) / removed (< 0)
quoteFee
uint256
The amount of quote token the maker received as fees
PositionChanged
Emitted when taker's position is being changed
Parameters:
trader
address
Trader address
baseToken
address
The address of virtual base token(ETH, BTC, etc...)
exchangedPositionSize
int256
The actual amount swap to uniswapV3 pool
exchangedPositionNotional
int256
The cost of position, include fee
fee
uint256
The fee of open/close position
openNotional
int256
The cost of open/close position, < 0: long, > 0: short
realizedPnl
int256
The realized Pnl after open/close position
sqrtPriceAfterX96
uint256
The sqrt price after swap, in X96
PositionClosed
Emitted when taker close her position in closed market
Parameters:
trader
address
Trader address
baseToken
address
The address of virtual base token(ETH, BTC, etc...)
closedPositionSize
int256
Trader's position size in closed market
closedPositionNotional
int256
Trader's position notional in closed market, based on closed price
openNotional
int256
The cost of open/close position, < 0: long, > 0: short
realizedPnl
int256
The realized Pnl after close position
closedPrice
uint256
The close price of position
FundingPaymentSettled
Emitted when settling a trader's funding payment
Parameters:
trader
address
The address of trader
baseToken
address
The address of virtual base token(ETH, BTC, etc...)
fundingPayment
int256
The fundingPayment of trader on baseToken market, > 0: payment, < 0 : receipt
TrustedForwarderChanged
Emitted when trusted forwarder address changed
TrustedForward is only used for metaTx
Parameters:
forwarder
address
The trusted forwarder address
DelegateApprovalChanged
Emitted when DelegateApproval address changed
Parameters:
delegateApproval
address
The address of DelegateApproval
Last updated