Exemplo n.º 1
0
 def fetch_ticker(self, symbol, params={}):
     self.load_markets()
     market = self.market(symbol)
     request = {
         'market_ids': market['id'],
     }
     response = self.publicGetTicker(self.extend(request, params))
     #
     #     {
     #         "data":[
     #             {
     #                 "last":"0.022902",
     #                 "low":"0.021693",
     #                 "high":"0.024093",
     #                 "change":"-0.000047",
     #                 "base_volume":"15681.986",
     #                 "quote_volume":"360.514403624",
     #                 "market_id":"ETH-BTC",
     #                 "time":"2020-04-12T18:43:38.000Z"
     #             }
     #         ]
     #     }
     #
     data = self.safe_value(response, 'data', [])
     ticker = self.safe_value(data, 0)
     if ticker is None:
         raise BadResponse(self.id +
                           ' fetchTicker() returned an empty response')
     return self.parse_ticker(ticker, market)
Exemplo n.º 2
0
 async def fetch_ticker(self, symbol, params={}):
     await self.load_markets()
     market = self.market(symbol)
     request = {
         'symbol': market['id'],
     }
     response = await self.marketGetTickers(self.extend(request, params))
     #
     #     [
     #         {
     #             "symbol":"68719476706",
     #             "name":"ETH/BTC",
     #             "base":"2",
     #             "quote":"32",
     #             "timestamp":1575905991933,
     #             "datetime":"2019-12-09T15:39:51.933Z",
     #             "high":"0",
     #             "low":"0",
     #             "open":"0",
     #             "close":"0",
     #             "last":"0",
     #             "change":"0",
     #             "percentage":"0",
     #             "baseVolume":"0",
     #             "quoteVolume":"0"
     #         }
     #     ]
     #
     if isinstance(response, list):
         ticker = self.safe_value(response, 0)
         if ticker is None:
             raise BadResponse(self.id +
                               ' fetchTicker() returned an empty response')
         return self.parse_ticker(ticker, market)
     return self.parse_ticker(response, market)
Exemplo n.º 3
0
 async def fetch_currencies(self, params={}):
     response = await self.publicGetInfoCoinInfo(params)
     if isinstance(response, basestring):
         if response.find('site is under maintenance') >= 0:
             raise OnMaintenance(
                 self.id +
                 ' fetchCurrencies() failed to fetch the currencies, the exchange is on maintenance'
             )
         else:
             raise BadResponse(
                 self.id +
                 ' fetchCurrencies() failed to fetch the currencies')
     currencies = self.safe_value(response, 'info')
     result = {}
     for i in range(0, len(currencies)):
         currency = currencies[i]
         id = self.safe_string(currency, 'symbol')
         # todo: will need to rethink the fees
         # to add support for multiple withdrawal/deposit methods and
         # differentiated fees for each particular method
         code = self.safe_currency_code(id)
         precision = 8  # default precision, todo: fix "magic constants"
         walletStatus = self.safe_string(currency, 'walletStatus')
         active = (walletStatus == 'normal')
         name = self.safe_string(currency, 'name')
         fee = self.safe_float(currency, 'withdrawFee')
         result[code] = {
             'id': id,
             'code': code,
             'info': currency,
             'name': name,
             'active': active,
             'fee': fee,
             'precision': precision,
             'limits': {
                 'amount': {
                     'min': self.safe_float(currency, 'minOrderAmount'),
                     'max': math.pow(10, precision),
                 },
                 'price': {
                     'min': math.pow(10, -precision),
                     'max': math.pow(10, precision),
                 },
                 'cost': {
                     'min': self.safe_float(currency, 'minOrderAmount'),
                     'max': None,
                 },
                 'withdraw': {
                     'min': self.safe_float(currency, 'minWithdrawAmount'),
                     'max': math.pow(10, precision),
                 },
                 'deposit': {
                     'min': self.safe_float(currency, 'minDepositAmount'),
                     'max': None,
                 },
             },
         }
     result = self.append_fiat_currencies(result)
     return result
Exemplo n.º 4
0
 def handle_errors(self, statusCode, statusText, url, method, responseHeaders, responseBody, response, requestHeaders, requestBody):
     if not response:
         return  # fall back to default error handler
     code = self.safe_string(response, 'code')
     if code == '0':
         return  # no error
     feedback = self.id + ' ' + responseBody
     if code is None:
         raise BadResponse(feedback)
     unknownError = [ExchangeError, feedback]
     ExceptionClass, message = self.safe_value(self.exceptions['exact'], code, unknownError)
     raise ExceptionClass(message)