fetches information on an order by the id https://docs.whitebit.com/private/http-trade-v4/#query-unexecutedactive-orders https://docs.whitebit.com/private/http-trade-v4/#query-executed-orders :param str id: order id :param str symbol: unified symbol of the
(self, id: str, symbol: Str = None, params={})
| 1360 | }, market) |
| 1361 | |
| 1362 | def fetch_order(self, id: str, symbol: Str = None, params={}) -> Order: |
| 1363 | """ |
| 1364 | fetches information on an order by the id |
| 1365 | |
| 1366 | https://docs.whitebit.com/private/http-trade-v4/#query-unexecutedactive-orders |
| 1367 | https://docs.whitebit.com/private/http-trade-v4/#query-executed-orders |
| 1368 | |
| 1369 | :param str id: order id |
| 1370 | :param str symbol: unified symbol of the market the order was made in |
| 1371 | :param dict [params]: extra parameters specific to the exchange API endpoint |
| 1372 | :param boolean [params.checkActive]: whether to check active orders(default: True) |
| 1373 | :param boolean [params.checkExecuted]: whether to check executed orders(default: True) |
| 1374 | :returns dict: an `order structure <https://docs.ccxt.com/?id=order-structure>` |
| 1375 | """ |
| 1376 | self.load_markets() |
| 1377 | # Extract control parameters from params |
| 1378 | checkActive = self.safe_bool(params, 'checkActive', True) |
| 1379 | checkExecuted = self.safe_bool(params, 'checkExecuted', True) |
| 1380 | request = { |
| 1381 | 'orderId': id, |
| 1382 | } |
| 1383 | market = None |
| 1384 | if symbol is not None: |
| 1385 | market = self.market(symbol) |
| 1386 | request['market'] = market['id'] |
| 1387 | # Try active orders first(if enabled) |
| 1388 | if checkActive: |
| 1389 | try: |
| 1390 | response = self.v4PrivatePostOrders(self.extend(request, params)) |
| 1391 | # Search for order in active orders response(array format) |
| 1392 | for i in range(0, len(response)): |
| 1393 | order = response[i] |
| 1394 | orderId = self.safe_string(order, 'orderId') |
| 1395 | if orderId == id: |
| 1396 | marketId = self.safe_string(order, 'market') |
| 1397 | marketNew = self.safe_market(marketId, None, '_') |
| 1398 | return self.parse_order(order, marketNew) |
| 1399 | except Exception as error: |
| 1400 | if not (isinstance(error, OrderNotFound)): |
| 1401 | raise error |
| 1402 | # Try executed orders(if enabled) |
| 1403 | if checkExecuted: |
| 1404 | try: |
| 1405 | response = self.v4PrivatePostTradeAccountOrderHistory(self.extend(request, params)) |
| 1406 | # Search for order in executed orders response(object format) |
| 1407 | marketIds = list(response.keys()) |
| 1408 | for i in range(0, len(marketIds)): |
| 1409 | marketId = marketIds[i] |
| 1410 | marketNew = self.safe_market(marketId, None, '_') |
| 1411 | orders = response[marketId] |
| 1412 | for j in range(0, len(orders)): |
| 1413 | order = orders[j] |
| 1414 | orderId = self.safe_string(order, 'id') |
| 1415 | if orderId == id: |
| 1416 | return self.parse_order(order, marketNew) |
| 1417 | except Exception as error: |
| 1418 | if not (isinstance(error, OrderNotFound)): |
| 1419 | raise error |
nothing calls this directly
no test coverage detected