INNER CODE UNIT · Python

checksum

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

    payload, checksum = decoded[:-4], decoded[-4:]
    if hashlib.sha256(hashlib.sha256(payload).digest()).digest()[:4] != checksum:
        return None
    return payload


def bech32_polymod(values: Sequence[int]) -> int:
    """The checksum of Bech32 and Bech32m, a BCH code (BIP 173)."""
    checksum = 1
    for value in values:
        top = checksum >> 25
        checksum = (checksum & 0x1FFFFFF) << 5 ^ value
        for i, generator in enumerate(BECH32_GENERATOR):
            if (top >> i) & 1:
                checksum ^= generator
    return checksum

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…