// Create new pool
public fun create_pool<BaseAsset, QuoteAsset>(
tick_size: u64,
lot_size: u64,
min_size: u64,
ctx: &mut TxContext
): Pool<BaseAsset, QuoteAsset>
// Place limit order
public fun place_limit_order<BaseAsset, QuoteAsset>(
pool: &mut Pool<BaseAsset, QuoteAsset>,
price: u64,
quantity: u64,
is_bid: bool,
account_cap: &AccountCap,
ctx: &mut TxContext
): u64 // returns order_id
// Place market order
public fun place_market_order<BaseAsset, QuoteAsset>(
pool: &mut Pool<BaseAsset, QuoteAsset>,
quantity: u64,
is_bid: bool,
base_coin: Coin<BaseAsset>,
quote_coin: Coin<QuoteAsset>,
clock: &Clock,
ctx: &mut TxContext
): (Coin<BaseAsset>, Coin<QuoteAsset>)
// Cancel order
public fun cancel_order<BaseAsset, QuoteAsset>(
pool: &mut Pool<BaseAsset, QuoteAsset>,
order_id: u64,
account_cap: &AccountCap
): (u64, u64) // returns (base_quantity, quote_quantity)
// Get best bid price
public fun best_bid_price<BaseAsset, QuoteAsset>(
pool: &Pool<BaseAsset, QuoteAsset>
): Option<u64>
// Get best ask price
public fun best_ask_price<BaseAsset, QuoteAsset>(
pool: &Pool<BaseAsset, QuoteAsset>
): Option<u64>