async def fetch_withdrawals(self, code=None, since=None, limit=None, params={}):
    (await self.load_markets())
    if ((not ('userid' in params)) and (self.apiKey is None)):
        raise ArgumentsRequired('fetchWithdrawals() requires self.apiKey or userid argument')
    currency = None
    request = {'userid': self.apiKey}
    if (code is not None):
        currency = self.currency(code)
        request['currency'] = currency['id']
    if (since is not None):
        request['since'] = since
    if (limit is not None):
        request['limit'] = limit
    response = (await self.publicGetWithdrawals(self.extend(request, params)))
    return self.parse_transactions(response, currency, since, limit)
async def fetch_withdrawals(self, code=None, since=None, limit=None, params={}):
    (await self.load_markets())
    if ((not ('userid' in params)) and (self.apiKey is None)):
        raise ArgumentsRequired('fetchWithdrawals() requires self.apiKey or userid argument')
    currency = None
    request = {'userid': self.apiKey}
    if (code is not None):
        currency = self.currency(code)
        request['currency'] = currency['id']
    if (since is not None):
        request['since'] = since
    if (limit is not None):
        request['limit'] = limit
    response = (await self.publicGetWithdrawals(self.extend(request, params)))
    return self.parse_transactions(response, currency, since, limit)