INNER CODE UNIT · Python

base58_decode

bee-san/pyWhat · pywhat/bitcoin.py:28

def base58_decode(text: str) -> bytes:
    """Decode Base58 text. Raises ValueError if it is not Base58."""
    number = 0
    for char in text:
        digit = BASE58_ALPHABET.find(char)
        if digit < 0:
            raise ValueError(f"{char!r} is not a Base58 character")
        number = number * 58 + digit
    # Every leading "1" stands for a leading zero byte
    zeros = len(text) - len(text.lstrip(BASE58_ALPHABET[0]))
    return bytes(zeros) + number.to_bytes((number.bit_length() + 7) // 8, "big")


def base58check_decode(text: str) -> Optional[bytes]:
    """The payload of Base58Check text, or None if its checksum is wrong."""
    try:
        decoded = base58_decode(text)
    except ValueError:

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…