# Path: bitcoinlib/config/config.py
# NETWORK_DENOMINATORS = {  # source: https://en.bitcoin.it/wiki/Units, https://en.wikipedia.org/wiki/Metric_prefix
#     0.00000000000001: 'µsat',
#     0.00000000001: 'msat',
#     0.000000001: 'n',
#     0.00000001: 'sat',
#     0.0000001: 'fin',
#     0.000001: 'µ',
#     0.001: 'm',
#     0.01: 'c',
#     0.1: 'd',
#     1: '',
#     10: 'da',
#     100: 'h',
#     1000: 'k',
#     1000000: 'M',
#     1000000000: 'G',
#     1000000000000: 'T',
#     1000000000000000: 'P',
#     1000000000000000000: 'E',
#     1000000000000000000000: 'Z',
#     1000000000000000000000000: 'Y',
# }


from bitcoinlib.networks import *
from bitcoinlib.config.config import NETWORK_DENOMINATORS
        >>> Value('13000000 Doge').str('auto')  # Yeah, mega Dogecoins...
        '13.00000000 MDOGE'

        >>> Value('2100000000').str('auto')
        '2.10000000 GBTC'

        >>> Value('1.5 BTC').str(currency_repr='symbol')
        '1.50000000 ₿'

        >>> Value('1.5 BTC').str(currency_repr='name')
        '1.50000000 bitcoins'

        :param denominator: Denominator as integer or string. Such as 0.001 or m for milli, 1000 or k for kilo, etc. See NETWORK_DENOMINATORS for list of available denominator symbols. If not provided the default self.denominator value is used. Use value 'auto' to automatically determine best denominator for human readability.
        :type denominator: int, float, str
        :param decimals: Number of decimals to use
        :type decimals: float
        :param currency_repr: Representation of currency. I.e. code: BTC, name: bitcoins, symbol: ₿
        :type currency_repr: str

        :return str:
        """
        if denominator is None:
            denominator = self.denominator
        elif denominator == 'auto':
            # First try denominator=1 and smallest denominator (satoshi)
            if 0.001 <= self.value < 1000:
                denominator = 1
            elif 1 <= self.value / self.network.denominator < 1000:
                denominator = self.network.denominator
            else:  # Try other frequently used denominators

# Path: bitcoinlib/config/config.py
# NETWORK_DENOMINATORS = {  # source: https://en.bitcoin.it/wiki/Units, https://en.wikipedia.org/wiki/Metric_prefix
#     0.00000000000001: 'µsat',
#     0.00000000001: 'msat',
#     0.000000001: 'n',
#     0.00000001: 'sat',
#     0.0000001: 'fin',
#     0.000001: 'µ',
#     0.001: 'm',
#     0.01: 'c',
#     0.1: 'd',
#     1: '',
#     10: 'da',
#     100: 'h',
#     1000: 'k',
#     1000000: 'M',
#     1000000000: 'G',
#     1000000000000: 'T',
#     1000000000000000: 'P',
#     1000000000000000000: 'E',
#     1000000000000000000000: 'Z',
#     1000000000000000000000000: 'Y',
# }


# Path: bitcoinlib/values.py
from bitcoinlib.networks import *
from bitcoinlib.config.config import NETWORK_DENOMINATORS

        >>> Value('13000000 Doge').str('auto')  # Yeah, mega Dogecoins...
        '13.00000000 MDOGE'

        >>> Value('2100000000').str('auto')
        '2.10000000 GBTC'

        >>> Value('1.5 BTC').str(currency_repr='symbol')
        '1.50000000 ₿'

        >>> Value('1.5 BTC').str(currency_repr='name')
        '1.50000000 bitcoins'

        :param denominator: Denominator as integer or string. Such as 0.001 or m for milli, 1000 or k for kilo, etc. See NETWORK_DENOMINATORS for list of available denominator symbols. If not provided the default self.denominator value is used. Use value 'auto' to automatically determine best denominator for human readability.
        :type denominator: int, float, str
        :param decimals: Number of decimals to use
        :type decimals: float
        :param currency_repr: Representation of currency. I.e. code: BTC, name: bitcoins, symbol: ₿
        :type currency_repr: str

        :return str:
        """
        if denominator is None:
            denominator = self.denominator
        elif denominator == 'auto':
            # First try denominator=1 and smallest denominator (satoshi)
            if 0.001 <= self.value < 1000:
                denominator = 1
            elif 1 <= self.value / self.network.denominator < 1000:
                denominator = self.network.denominator
            else:  # Try other frequently used denominators

                for den, symb in NETWORK_DENOMINATORS.items():