@@ -370,9 +370,12 @@ async def _verify_order(self, created_order, order_type, symbol, price, quantity
370370 if order_exchange_id is None :
371371 self .logger .error (f"No order exchange id on created order: { created_order } " )
372372 return None
373- params = get_order_params or {}
373+ exchange_order_id = created_order [ecoc .EXCHANGE_ID .value ]
374+ params = self ._order_request_kwargs_factory (
375+ exchange_order_id , order_type , ** (get_order_params or {})
376+ )
374377 fetched_order = await self .get_order (
375- created_order [ ecoc . EXCHANGE_ID . value ] , symbol = symbol , ** params
378+ exchange_order_id , symbol = symbol , ** params
376379 )
377380 if fetched_order is None :
378381 created_order [ecoc .STATUS .value ] = enums .OrderStatus .PENDING_CREATION .value
@@ -688,9 +691,25 @@ async def get_price_ticker(self, symbol: str, **kwargs: dict) -> typing.Optional
688691 async def get_all_currencies_price_ticker (self , ** kwargs : dict ) -> typing .Optional [dict [str , dict ]]:
689692 return await self .connector .get_all_currencies_price_ticker (** kwargs )
690693
691- async def get_order (self , exchange_order_id : str , symbol : str = None , ** kwargs : dict ) -> dict :
694+ def _order_request_kwargs_factory (
695+ self ,
696+ exchange_order_id : str ,
697+ order_type : typing .Optional [enums .TraderOrderType ] = None ,
698+ ** kwargs
699+ ) -> dict :
700+ # implement if the exchange needs additional kwargs to fetch an order, like to fetch stop orders
701+ return kwargs
702+
703+ async def get_order (
704+ self ,
705+ exchange_order_id : str ,
706+ symbol : typing .Optional [str ] = None ,
707+ order_type : typing .Optional [enums .TraderOrderType ] = None ,
708+ ** kwargs : dict
709+ ) -> dict :
710+ extended_kwargs = self ._order_request_kwargs_factory (exchange_order_id , order_type , ** (kwargs or {}))
692711 return await self ._ensure_order_completeness (
693- await self .connector .get_order (exchange_order_id , symbol = symbol , ** kwargs ),
712+ await self .connector .get_order (exchange_order_id , symbol = symbol , ** extended_kwargs ),
694713 symbol , ** kwargs
695714 )
696715
@@ -806,7 +825,8 @@ async def cancel_all_orders(self, symbol: str = None, **kwargs: dict) -> None:
806825 async def cancel_order (
807826 self , exchange_order_id : str , symbol : str , order_type : enums .TraderOrderType , ** kwargs : dict
808827 ) -> enums .OrderStatus :
809- return await self .connector .cancel_order (exchange_order_id , symbol , order_type , ** kwargs )
828+ extended_kwargs = self ._order_request_kwargs_factory (exchange_order_id , order_type , ** (kwargs or {}))
829+ return await self .connector .cancel_order (exchange_order_id , symbol , order_type , ** extended_kwargs )
810830
811831 def get_trade_fee (self , symbol : str , order_type : enums .TraderOrderType , quantity , price , taker_or_maker ) -> dict :
812832 return self .connector .get_trade_fee (symbol , order_type , quantity , price , taker_or_maker )
0 commit comments