Beispiel #1
0
 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
Beispiel #2
0
 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)
Beispiel #3
0
 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)
Beispiel #4
0
 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
Beispiel #5
0
 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)
Beispiel #6
0
 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)