public fun iter_bids<T1, T2>(
pool: &Pool<T1, T2>,
// tick level to start from
start_tick_level: Option<u64>,
// order id within that tick level to start from
start_order_id: Option<u64>,
// if provided, do not include orders with an expire timestamp less than the provided value (expired order),
// value is in microseconds
min_expire_timestamp: Option<u64>,
// do not show orders with an ID larger than max_id--
// i.e., orders added later than this one
max_id: Option<u64>,
// if true, the orders are returned in ascending tick level.
ascending: bool,
): OrderPage {
let bids = clob_v2::bids(pool);
let mut orders = iter_ticks_internal(
bids,
start_tick_level,
start_order_id,
min_expire_timestamp,
max_id,
ascending
);
let (orders, has_next_page, next_tick_level, next_order_id) = if (vector::length(&orders) > PAGE_LIMIT) {
let last_order = vector::pop_back(&mut orders);
(orders, true, some(clob_v2::tick_level(&last_order)), some(clob_v2::order_id(&last_order)))
} else {
(orders, false, none(), none())
};
OrderPage {
orders,
has_next_page,
next_tick_level,
next_order_id
}
}