From cbf9c78e8ce4c3d0b27ad3d47c420797f93d0f3e Mon Sep 17 00:00:00 2001 From: caryoscelus Date: Sun, 23 Jul 2023 09:31:46 +0000 Subject: [PATCH] helper function: quickly check if a string looks like a valid Bitcoin address --- src/Crypt/CryptBitcoin.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/Crypt/CryptBitcoin.py b/src/Crypt/CryptBitcoin.py index 68b2caa2..a0807187 100644 --- a/src/Crypt/CryptBitcoin.py +++ b/src/Crypt/CryptBitcoin.py @@ -99,3 +99,16 @@ def verify(data, valid_address, sign, lib_verify=None): # Verify data using add return sign_address in valid_address else: # One possible address return sign_address == valid_address + +def isValidAddress(addr): + '''Check if provided address is valid bitcoin address''' + if addr[0] != '1': + # no support for new-style addrs + return False + from base58 import b58decode + bs = b58decode(addr) + main = bs[:-4] + checksum = bs[-4:] + h1 = hashlib.sha256(main).digest() + h2 = hashlib.sha256(h1).digest() + return h2[:4] == checksum