async def fetch_deposit_address(self, code, params={}):
    (await self.load_markets())
    if ((not ('userid' in params)) and (self.apiKey is None)):
        raise ArgumentsRequired('fetchDepositAddress() requires self.apiKey or userid argument')
    currency = self.currency(code)
    request = {'userid': self.apiKey, 'code': currency['id']}
    response = (await self.publicGetDepositaddress(request))
    address = self.safe_string(response[0], 'address')
    tag = self.safe_string(response[0], 'tag')
    chainType = self.safe_string(response[0], 'chainType')
    self.check_address(address)
    return {'currency': code, 'address': address, 'tag': tag, 'chainType': chainType, 'info': response}
async def fetch_deposit_address(self, code, params={}):
    (await self.load_markets())
    if ((not ('userid' in params)) and (self.apiKey is None)):
        raise ArgumentsRequired('fetchDepositAddress() requires self.apiKey or userid argument')
    currency = self.currency(code)
    request = {'userid': self.apiKey, 'code': currency['id']}
    response = (await self.publicGetDepositaddress(request))
    address = self.safe_string(response[0], 'address')
    tag = self.safe_string(response[0], 'tag')
    chainType = self.safe_string(response[0], 'chainType')
    self.check_address(address)
    return {'currency': code, 'address': address, 'tag': tag, 'chainType': chainType, 'info': response}