async def fetch_currencies(self, params={}):
    '\n        fetches all available currencies on an exchange\n        :param dict params: extra parameters specific to the bitvavo api endpoint\n        :returns dict: an associative dictionary of currencies\n        '
    response = (await self.fetch_currencies_from_cache(params))
    result = {}
    for i in range(0, len(response)):
        currency = response[i]
        id = self.safe_string(currency, 'symbol')
        code = self.safe_currency_code(id)
        depositStatus = self.safe_value(currency, 'depositStatus')
        deposit = (depositStatus == 'OK')
        withdrawalStatus = self.safe_value(currency, 'withdrawalStatus')
        withdrawal = (withdrawalStatus == 'OK')
        active = (deposit and withdrawal)
        name = self.safe_string(currency, 'name')
        precision = self.safe_integer(currency, 'decimals', 8)
        result[code] = {'id': id, 'info': currency, 'code': code, 'name': name, 'active': active, 'deposit': deposit, 'withdraw': withdrawal, 'fee': self.safe_number(currency, 'withdrawalFee'), 'precision': precision, 'limits': {'amount': {'min': None, 'max': None}, 'withdraw': {'min': self.safe_number(currency, 'withdrawalMinAmount'), 'max': None}}}
    return result
fetches all available currencies on an exchange
:param dict params: extra parameters specific to the bitvavo api endpoint
:returns dict: an associative dictionary of currencies
async def fetch_currencies(self, params={}):
    '\n        fetches all available currencies on an exchange\n        :param dict params: extra parameters specific to the bitvavo api endpoint\n        :returns dict: an associative dictionary of currencies\n        '
    response = (await self.fetch_currencies_from_cache(params))
    result = {}
    for i in range(0, len(response)):
        currency = response[i]
        id = self.safe_string(currency, 'symbol')
        code = self.safe_currency_code(id)
        depositStatus = self.safe_value(currency, 'depositStatus')
        deposit = (depositStatus == 'OK')
        withdrawalStatus = self.safe_value(currency, 'withdrawalStatus')
        withdrawal = (withdrawalStatus == 'OK')
        active = (deposit and withdrawal)
        name = self.safe_string(currency, 'name')
        precision = self.safe_integer(currency, 'decimals', 8)
        result[code] = {'id': id, 'info': currency, 'code': code, 'name': name, 'active': active, 'deposit': deposit, 'withdraw': withdrawal, 'fee': self.safe_number(currency, 'withdrawalFee'), 'precision': precision, 'limits': {'amount': {'min': None, 'max': None}, 'withdraw': {'min': self.safe_number(currency, 'withdrawalMinAmount'), 'max': None}}}
    return result