async def cancel_order(self, id, symbol=None, params={}):
    if (symbol is None):
        raise ArgumentsRequired((self.id + ' cancelOrder requires a symbol argument'))
    (await self.load_markets())
    market = self.market(symbol)
    request = {'orderId': id, 'currencyPair': market['id']}
    response = (await self.privatePostExchangeCancellimit(self.extend(request, params)))
    message = self.safe_string(response, 'message', self.json(response))
    if ('success' in response):
        if (not response['success']):
            raise InvalidOrder(message)
        elif ('cancelled' in response):
            if response['cancelled']:
                return {'status': 'canceled', 'info': response}
            else:
                raise OrderNotFound(message)
    raise ExchangeError(((self.id + ' cancelOrder() failed: ') + self.json(response)))
async def cancel_order(self, id, symbol=None, params={}):
    if (symbol is None):
        raise ArgumentsRequired((self.id + ' cancelOrder requires a symbol argument'))
    (await self.load_markets())
    market = self.market(symbol)
    request = {'orderId': id, 'currencyPair': market['id']}
    response = (await self.privatePostExchangeCancellimit(self.extend(request, params)))
    message = self.safe_string(response, 'message', self.json(response))
    if ('success' in response):
        if (not response['success']):
            raise InvalidOrder(message)
        elif ('cancelled' in response):
            if response['cancelled']:
                return {'status': 'canceled', 'info': response}
            else:
                raise OrderNotFound(message)
    raise ExchangeError(((self.id + ' cancelOrder() failed: ') + self.json(response)))