@@ -18,7 +18,7 @@ use crate::{
1818 sudo:: ensure_swap_fee,
1919 sumtree:: tree:: { get_prefix_sum, get_root_node} ,
2020 tick_math:: tick_to_price,
21- types:: { FilterOwnerOrders , LimitOrder , MarketOrder , OrderDirection , TickState } ,
21+ types:: { FilterOwnerOrders , MarketOrder , OrderDirection , Orderbook , TickState } ,
2222 ContractError ,
2323} ;
2424
@@ -60,8 +60,8 @@ pub(crate) fn spot_price(
6060 let price = tick_to_price ( next_tick) ?;
6161
6262 let spot_price = match direction {
63- OrderDirection :: Ask => price. inv ( ) . unwrap ( ) ,
64- OrderDirection :: Bid => price,
63+ OrderDirection :: Ask => price,
64+ OrderDirection :: Bid => price. inv ( ) . unwrap ( ) ,
6565 } ;
6666
6767 Ok ( SpotPriceResponse {
@@ -205,15 +205,25 @@ pub(crate) fn orders_by_owner(
205205 start_from : Option < ( i64 , u64 ) > ,
206206 end_at : Option < ( i64 , u64 ) > ,
207207 limit : Option < u64 > ,
208- ) -> ContractResult < Vec < LimitOrder > > {
208+ ) -> ContractResult < OrdersResponse > {
209+ let count = orders ( )
210+ . idx
211+ . owner
212+ . prefix ( owner. clone ( ) )
213+ . keys ( deps. storage , None , None , Order :: Ascending )
214+ . count ( ) ;
209215 let orders = get_orders_by_owner (
210216 deps. storage ,
211217 FilterOwnerOrders :: all ( owner) ,
212218 start_from,
213219 end_at,
214220 limit,
215221 ) ?;
216- Ok ( orders)
222+
223+ Ok ( OrdersResponse {
224+ count : count as u64 ,
225+ orders,
226+ } )
217227}
218228
219229pub ( crate ) fn denoms ( deps : Deps ) -> ContractResult < DenomsResponse > {
@@ -224,6 +234,11 @@ pub(crate) fn denoms(deps: Deps) -> ContractResult<DenomsResponse> {
224234 } )
225235}
226236
237+ pub ( crate ) fn orderbook_state ( deps : Deps ) -> ContractResult < Orderbook > {
238+ let orderbook = ORDERBOOK . load ( deps. storage ) ?;
239+ Ok ( orderbook)
240+ }
241+
227242pub ( crate ) fn ticks_by_id ( deps : Deps , tick_ids : Vec < i64 > ) -> ContractResult < TicksResponse > {
228243 let mut ticks: Vec < TickIdAndState > = vec ! [ ] ;
229244 for tick_id in tick_ids {
0 commit comments