@Alex_888

Как можно проверить верность (или существование) Litecoin адреса на python?

Суть в следующем, нужно проверить корректность litecoin адреса, присланного пользователем.
  • Вопрос задан
  • 255 просмотров
Решения вопроса 1
deepblack
@deepblack Куратор тега Python
Легко гуглится.
spoiler

import base58 # Base58 decoding: https://github.com/keis/base58


def bech32_decode(bech):
    charset = "qpzry9x8gf2tvdw0s3jn54khce6mua7l"
    if ((any(ord(x) < 33 or ord(x) > 126 for x in bech)) or
            (bech.lower() != bech and bech.upper() != bech)):
        return False
    bech = bech.lower()
    pos = bech.rfind('1')
    if pos < 1 or pos + 7 > len(bech) or len(bech) > 90:
        return False
    if not all(x in charset for x in bech[pos+1:]):
        return False
    hrp = bech[:pos]
    data = [charset.find(x) for x in bech[pos+1:]]
    if not bech32_verify_checksum(hrp, data):
        return False
    return True


def is_ltc_address(address): 
    if len(address) > 43 or len(address) < 26:
        return False
    if address[0] == "L":  # Legacy Non-P2SH Address
        return base58.b58decode_check(address)
    elif address[0] == "3":  # P2SH Address - Deprecated
        return False
    elif address[0] == "M":  # P2SH Address
        return base58.b58decode_check(address)
    elif address[:4] == "ltc1":  # P2WPKH Bech32 (Segwit)
        return bech32_decode(address)
    return False


https://github.com/0x9090/CrypocurrencyAddressVali...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы