Contracts
Contract classes interfaces with smart contracts of v2 curie
AccountBalance
The AccountBalance class interfaces with the AccountBalance contract
Importing
from pyperp.contracts import AccountBalance
Properties
account_balance: Web3.eth.contract() object for AccountBalance contract
Methods
get_base_tokens
Returns a list of base tokens owned by trader
Arguments:
trader: Wallet address of trader
get_account_info
Returns account info of trader with respect to a base token
Arguments:
trader: wallet address of trader
base_token: contract address of base token
Return Value:
Returns pyperp.contracts.types.AccountMarketInfo object
get_taker_open_notional
Returns taker open notional of trader with respect to a base token
Arguments:
trader: wallet address of trader
base_token: contract address of base token
get_total_open_notional
Returns total open notional of trader with respect to a base token
Arguments:
trader: wallet address of trader
base_token: contract address of base token
get_total_debt_value
Returns total debt value of a trader
Arguments:
trader: wallet address of trader
get_marginal_requirement_for_liquidation
Returns marginal requirement for liquidation
Arguments:
trader: wallet address of trader
get_pnl_and_pending_fee
Returns PNL and Pending fee for a trader
Arguments:
trader: wallet address of trader
Return Value:
Returns a dict of the following format:
{
'owed_realized_pnl': <INT_VALUE>,
'unrealized_pnl': <INT_VALUE>,
'pending_fee':<INT_VALUE>
}
has_order
Checks if a trader has an open order
Arguments:
trader: wallet address of trader
Return Value:
True: If there are open orders
False: If there are no open orders
has_order_in_open_or_closed_market
Checks if a trader has orders in open or closed market
Arguments:
trader: wallet address of trader
Return Value:
True: If there are orders
False: If there are no orders
get_base
Return amount of base token owned in terms of base
Arguments:
trader: wallet address of trader
base_token: contract address of base token
get_quote
Return amount of base token owned in terms of quote
Arguments:
trader: wallet address of trader
base_token: contract address of base token
get_taker_position_size
Returns taker position size
Arguments:
trader: wallet address of trader
base_token: contract address of base token
get_total_position_size
Returns total position size
Arguments:
trader: wallet address of trader
base_token: contract address of base token
get_total_position_value
Returns total position value
Arguments:
trader: wallet address of trader
base_token: contract address of base token
get_total_abs_positon_value
Returns total absolute position value
Arguments:
trader: wallet address of trader
settle_pnl_closed_market
Settle PNL in closed market
Arguments:
trader: wallet address of trader
base_token: contract address of base token
ClearingHouse
This class interfaces with the ClearingHouse contract
Importing
from pyperp.contracts import ClearingHouse
Properties
clearing_house: Web3.eth.contract() object for ClearingHouse contract
usdc: Web3.eth.contract() object for USDC contract
vbtc: Web3.eth.contract() object for vBTC contract
veth: Web3.eth.contract() object for vETH contract
Methods
add_liquidity
Add liquidity to a token
Arguments:
params: AddLiquidityParams object
gas_params: GasParams object
remove_liquidity
Remove liquidity from a token
Arguments:
params: RemoveLiquidityParams object
gas_params: GasParams object
settle_all_funding
Settle all funding
Arguments:
trader: wallet address of trader
gas_params: GasParams object\
open_position
Open Position
Arguments:
params: OpenPositionParams object
gas_params: GasParams object
close_position
Close position
Arguments:
params: ClosePosition object
gas_params: GasParams object
liquidate
Liquidate
Arguments:
trader: wallet address of trader
base_token: contract address of base token
gas_params: GasParams object
cancel_all_excess_order
Cancel all excess orders
Arguments:
maker: wallet address of maker
base_token: contract address of base token
gas_params: GasParams object
close_position_in_closed_market
Close position in closed market
Arguments:
trader: wallet address of trader
base_token: contract address of base token
gas_params: GasParams object
uniswap_v3_mint_callback
Uniswap V3 mint callback
Arguments:
amount0Owed: integer
amount1owed: integer
data: string
gas_parmas: A GasParams object
uniswap_v3_swap_callback
Uniswap V3 swap callback
Arguments:
amount0Delta: integer
amount1Delta: integer
data: string
gas_params: GasParams object
get_quote_token
Returns quote token contract address
get_uniswap_v3_factory
Returns UniswapV3Factory contract address
get_clearing_house_config
Return ClearingHouseConfig contract adderss
get_vault
Return Vault contract address
get_exchange
Return Exchange contract address
get_order_book
Return OrderBook contract address
get_account_balance
Return AccountBalance contract address
get_insurance_fund
Return InsuranceFund contract address
get_account_value
Return account value of a trader
Arguments:
trader: wallet address of trader
MarketRegistry
This class interfaces with the MarketRegistry smart contract
Importing
from pyperp.contracts import MarketRegistry
Properties
market_registry: Web3.eth.contract object for MarketRegistry contract
Methods
get_quote_token
Returns quote token contract address
get_uniswap_v3_factory
Returns UniswapV3Factory contract address
get_max_order_per_market
Returns maximum orders per market
get_pool
Returns pool address of a base token
Arguments:
base_token: contract address of base token
get_insurance_fund_fee_ratio
Returns insurance fund fee ratio for a base token
Arguments:
base_token: contract address of base token
get_market_info
Returns market info for a base token
Arguments:
base_token: contract address of base token
Return Value:
A pyperp.contracts.types.MarketInfo object
OrderBook
This class interfaces with the OrderBook smart contract
Importing
from pyperp.contracts import OrderBook
Properties
order_book: Web3.eth.contract object for OrderBook contract
Methods
get_exchange
Returns Exchange contract address
get_open_order_ids
Returns open order ids of a trader with respect to a base token
Arguments:
trader: wallet address of trader
base_token: contract address of base token
get_open_order_by_id
Returns open order info
Arguments:
order_id: HexBytes object representing order id
Return Value":
Returns pyperp.contracts.types.OpenOrderInfo object
get_open_order
Returns open order
Arguments:
trader: wallet address of a trader
base_token: contract address of a base token
lower_tick: lower tick
upper_tick: upper tick"
Return Value:
Returns pyperp.contracts.types.OpenOrderInfo object
has_order
Checks if a trader has any open order
Arguments:
trader: wallet address of a trader
tokens: list of token addresses
get_total_quote_balance_and_pending_fee
Returns total quote balance and pending fee
Arguments:
trader: wallet address of trader
base_token: contract address of token
Return Value:
Returns a dict of following format:
{
'total_quote_amount_in_pools': <INT_VALUE>,
'total_pending_fee': <INT_VALUE>
}
get_total_token_amount_in_pool_and_pending_fee
Returns total token amount and pending fee.
Arguments:
trader: wallet address of trader
base_token: contract address of base token
fetch_base: fetch base
Return Value:
Returns a dict of following format:
{
'token_amount': <INT_VALUE>,
'pending_fee': <INT_VALUE>
}
get_liquidity_coefficient_in_funding_payment
Returns liquidity coefficient in funding payment
Arguments:
trader: wallet address of trader
base_token: contract address of base token
funding_growth_global: FundingGrowth object"
get_pending_fee
Returns pending fee.
Arguments:
trader: wallet address of trader
base_token: contract address of base token
lower_tick: lower tick
upper_tick: upper tick
get_total_order_debt
Returns total order debt.
Arguments:
trader: wallet address of trader
base_token: contract address of base token
fetch_base: fetch base
Vault
This class interfaces with the Vault contract
Importing
from pyperp.contracts.vault import Vault
Properties
vault: Web3.eth.contract object of Vault contract
usdc: Web3.eth.contract object of USDC contract
Methods
approve_vault_to_use_usdc
Approves Vault contract to use USDC from trader's wallet
Arguments:
gas_params: A pyperp.common.types.GasParams object
deposit
Deposit collateral amount.
Arguments:
token: Token address
amount_x10_D: amount to deposit
gas_params: A pyperp.common.types.GasParams object
deposit_for
Deposit collateral for a different address.
Arguments:
to: wallet address to deposit to
token: contract address of token
amount_x10_D: amount to deposit
gas_params: A pyperp.common.types.GasParams object
withdraw
Withdraw collateral amount.
Arguments:
token: Token address
amount_x10_D: amount to withdraw
gas_params: GasParams object
get_settlement_token
Returns settlement token address.
decimals
Returns number of decimals.
get_total_debt
Returns total debt.
get_clearing_house_config
Returns contract address of ClearingHouseConfig.
get_account_balance
Returns contract address of AccountBalance
get_insurance_fund
Returns contract address of InsuranceFund
get_exchange
Returns contract address of Exchange
get_clearing_house
Returns contract address of ClearingHouse
get_free_collateral
Check how much collateral a trader can withdraw.
Arguments:
trader: wallet adderss of trader
get_balance
Returns vault balance of trader.
Arguments:
trader: wallet address of trader
get_free_collateral_by_ratio
Returns free collateral by ratio.
Arguments:
trader: wallet address of trader
ratio: ratio
types
Contains dataclasses for use in parameters and return types
OpenPositionParams
Used as parameter in pyperp.contracts.ClearingHouse.open_position() function
Importing
from pyperp.contracts.types import OpenPositionParams
Fields
base_token: base token address
is_base_to_quote: Boolean. Takes True or False.
is_exact_input: Boolean. Takes True or False.
amount: integer amount value.
opposite_amount_bound: integer OppositeAmountBound value
deadline: UNIX time to be used as deadline for trade
sqrt_price_limit_x96: integer sqrtPriceLimitX96 value
referral_code: HexBytes representing ReferralCode. Defaults to 0.
ClosePositionParams
Used as parameter in pyperp.contracts.ClearingHouse.close_position() function
Importing
from pyperp.contracts.types import ClosePositionParams
Fields
base_token: base token address
sqrt_price_limit_x96: integer sqrtPriceLimitX96 value
opposite_amount_bound: integer OppositeAmountBound value
deadline: UNIX time to be used as deadline for trade
referral_code: HexBytes representing ReferralCode. Defaults to 0.
AddLiquidityParams
Used as parameter in pyperp.contracts.ClearingHouse.add_liquidity() function
Importing
from pyperp.contracts.types import AddLiquidityParams
Fields
base_token: Contract address of base token
base: base amount to add
quote: quote amount to add
lower_tick: lowerTick value
upper_tick: upperTick value
min_base: minBase value
min_quote: minQuote value
deadline: UNIX time to be used as deadline for trade
RemoveLiquidityParams
Used as parameter in pyperp.contracts.ClearingHouse.remove_liquidity() function
Importing
from pyperp.contracts.types import RemoveLiquidityParams
Fields
base_token: Contract address of base token
lower_tick: lowerTick value
upper_tick: upperTick value
liquidity: integer liquidity value
min_base: minBase value
min_quote: minQuote value
deadline: UNIX time to be used as deadline for trade
MarketInfo
Used as return type in pyperp.contracts.MarketRegistry.get_market_info()
Importing
from pyperp.contracts.types import MarketInfo
Fields
pool: Pool address
exchange_fee_ratio: Exchange Fee ratio
uniswap_fee_ratio: Uniswap Fee ratio
insurance_fund_fee_ratio: Insurance Fund Fee Ratio
OpenOrderInfo
Used as return type in pyperp.contracts.OrderBook.get_open_order() and pyperp.contracts.OrderBook.get_open_order_by_id()
Importing
from pyperp.contracts.types import OpenOrderInfo
Fields
liquidity: Integer liquidity value
lower_tick: lowerTick value
upper_tick: upperTick value
last_fee_growth_inside_x96: lastFeeGrowthInsideX96 value
last_tw_premium_growth_inside_x96: lastTwPremiumGrowthInsideX96 value
last_tw_premium_div_by_sqrt_price_growth_inside_x96: lastTwPremiumDivBySqrtPriceGrowthInsideX96 value
base_debt: Base debt value
quote_debt: Quote debt value