Skip to main content

Query the Pool

This section shows how to query the pool and order status.

Order status

For limit order, query its data using the following API functions

Function signature for query order info in Move contract

/// Parameters expected by this func
///
/// 0. `[pool]` Object ID refers to the pool containing the trading pair
/// 1. `[order_id]` order id of the order being queried
/// 2. `[account_cap]` Object ID of the account_cap authorizing the
/// accessilility to the escrow account

/// Returns the order info of the order being queried
public fun get_order_status<BaseAsset, QuoteAsset>(
pool: &Pool<BaseAsset, QuoteAsset>,
order_id: u64,
account_cap: &AccountCap
): &Order

Pool status

API functions to query the depth of level2 orders on both ask-side and bid-side.

Function signature for get depth of level2 order (ask side) in Move contract

/// Parameters expected by this func
///
/// 0. `[pool]` Object ID refers to the pool containing the trading pair
/// 1. `[price_low]` the lower price of the price interval to query, inclusive
/// 2. `[price_high]` the upper price of the price interval to query, inclusive
/// 3. `[clock]` Object ID of global system clock

/// Returns the list of all valid prices and corresponding depthes
public fun get_level2_book_status_bid_side<BaseAsset, QuoteAsset>(
pool: &Pool<BaseAsset, QuoteAsset>,
price_low: u64,
price_high: u64,
clock: &Clock
): (vector<u64>, vector<u64>)

User account status

Open orders

We provide API function to list all open orders under one account

Function signature for list all open orders in Move contract

/// Parameters expected by this func
///
/// 0. `[pool]` Object ID refers to the pool containing the trading pair
/// 1. `[account_cap]` Object ID of the account_cap authorizing the
/// accessilility to the escrow account

/// Returns list of user's all open orders
public fun list_open_orders<BaseAsset, QuoteAsset>(
pool: &Pool<BaseAsset, QuoteAsset>,
account_cap: &AccountCap
): vector<Order>

Account balance

The API function to query the custodian account balance for users follows. Note that each pool has its own custodian account.

Function signature for query user balance in Move contract

/// Parameters expected by this func
///
/// 0. `[pool]` Object ID refers to the pool containing the trading pair
/// 1. `[account_cap]` Object ID of the account_cap authorizing the
/// accessilility to the escrow account

/// Returns user's base_asset_available, base_asset_locked,
/// quote_asset_available, quote_asset_locked
public fun usr_balance<BaseAsset, QuoteAsset>(
pool: &Pool<BaseAsset, QuoteAsset>,
account_cap: &AccountCap
): (u64, u64, u64, u64)