MCPcopy Create free account
hub / github.com/ccxt/ccxt / fetch_order

Method fetch_order

python/ccxt/whitebit.py:1362–1421  ·  view source on GitHub ↗

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={})

Source from the content-addressed store, hash-verified

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

Callers

nothing calls this directly

Calls 11

parse_orderMethod · 0.95
OrderNotFoundClass · 0.90
safe_boolMethod · 0.80
safe_stringMethod · 0.80
v4PrivatePostOrdersMethod · 0.65
rangeFunction · 0.50
load_marketsMethod · 0.45
marketMethod · 0.45
extendMethod · 0.45
safe_marketMethod · 0.45

Tested by

no test coverage detected