def request(self, path, api='public', method='GET', params={}, headers=None, body=None): response = self.fetch2(path, api, method, params, headers, body) if not response: raise NullResponse(self.id + ' returned ' + self.json(response)) elif response is True: return response elif 'e' in response: if 'ok' in response: if response['ok'] == 'ok': return response raise ExchangeError(self.id + ' ' + self.json(response)) elif 'error' in response: if response['error']: raise ExchangeError(self.id + ' ' + self.json(response)) return response
async def fetch_open_orders(self, symbol=None, since=None, limit=None, params={}): await self.load_markets() statuses = ['new', 'partiallyFiiled'] market = None request = { 'sort': 'desc', 'statuses': ','.join(statuses), } if symbol is not None: market = self.market(symbol) request['symbols'] = market['id'] response = await self.tradingGetOrdersActive(self.extend(request, params)) orders = self.safe_value(response, 'orders') if orders is None: raise NullResponse(self.id + ' fetchOpenOrders() received a None response from the exchange: ' + self.json(response)) return self.parse_orders(orders, market, since, limit)
def handle_errors(self, code, reason, url, method, headers, body, response, requestHeaders, requestBody): if isinstance(response, list): return response # public endpoints may return []-arrays if body == 'true': return if response is None: raise NullResponse(self.id + ' returned ' + self.json(response)) if 'e' in response: if 'ok' in response: if response['ok'] == 'ok': return if 'error' in response: message = self.safe_string(response, 'error') feedback = self.id + ' ' + body self.throw_exactly_matched_exception(self.exceptions['exact'], message, feedback) self.throw_broadly_matched_exception(self.exceptions['broad'], message, feedback) raise ExchangeError(feedback)
async def request(self, path, api='public', method='GET', params={}, headers=None, body=None): response = await self.fetch2(path, api, method, params, headers, body) if isinstance(response, list): return response # public endpoints may return []-arrays if not response: raise NullResponse(self.id + ' returned ' + self.json(response)) elif response is True or response == 'true': return response elif 'e' in response: if 'ok' in response: if response['ok'] == 'ok': return response raise ExchangeError(self.id + ' ' + self.json(response)) elif 'error' in response: if response['error']: raise ExchangeError(self.id + ' ' + self.json(response)) return response
async def fetch_closed_orders(self, symbol=None, since=None, limit=None, params={}): await self.load_markets() market = None statuses = ['filled', 'canceled', 'rejected', 'expired'] request = { 'sort': 'desc', 'statuses': ','.join(statuses), 'max_results': 1000, } if symbol is not None: market = self.market(symbol) request['symbols'] = market['id'] response = await self.tradingGetOrdersRecent(self.extend(request, params)) orders = self.safe_value(response, 'orders') if orders is None: raise NullResponse(self.id + ' fetchClosedOrders() received a None response from the exchange: ' + self.json(response)) return self.parse_orders(orders, market, since, limit)
def handle_errors(self, code, reason, url, method, headers, body, response, requestHeaders, requestBody): if isinstance(response, list): return response # public endpoints may return []-arrays if not response: raise NullResponse(self.id + ' returned ' + self.json(response)) if response is True or response == 'true': return if 'e' in response: if 'ok' in response: if response['ok'] == 'ok': return if 'error' in response: message = self.safe_string(response, 'error') feedback = self.id + ' ' + body exact = self.exceptions['exact'] if message in exact: raise exact[message](feedback) broad = self.exceptions['broad'] broadKey = self.findBroadlyMatchedKey(broad, message) if broadKey is not None: raise broad[broadKey](feedback) raise ExchangeError(feedback)