def test_invalid_address(self): """Test whether invalid addresses fail to decode.""" for test in INVALID_ADDRESS: witver, _ = bech32.decode("bc", test) self.assertIsNone(witver) witver, _ = bech32.decode("tb", test) self.assertIsNone(witver)
def test_valid_address(self): """Test whether valid addresses decode to the correct output.""" for (address, hexscript) in VALID_ADDRESS: hrp = "bc" witver, witprog = bech32.decode(hrp, address) if witver is None: hrp = "tb" witver, witprog = bech32.decode(hrp, address) self.assertIsNotNone(witver) scriptpubkey = segwit_scriptpubkey(witver, witprog) self.assertEqual(scriptpubkey, unhexlify(hexscript)) addr = bech32.encode(hrp, witver, witprog) self.assertEqual(address.lower(), addr)
def decode_bech32_address(prefix: str, address: str) -> tuple[int, bytes]: witver, raw = bech32.decode(prefix, address) if witver not in _BECH32_WITVERS: raise wire.ProcessError("Invalid address witness program") assert witver is not None assert raw is not None return witver, bytes(raw)
def decode_bech32_address(prefix: str, address: str) -> tuple[int, bytes]: witver, raw = bech32.decode(prefix, address) if witver not in _BECH32_WITVERS: raise wire.DataError("Invalid address witness program") assert witver is not None assert raw is not None # check that P2TR address encodes a valid BIP340 public key if witver == 1 and not bip340.verify_publickey(raw): raise wire.DataError("Invalid Taproot witness program") return witver, raw
def decode_bech32_address(prefix: str, address: str) -> bytes: witver, raw = bech32.decode(prefix, address) if witver != _BECH32_WITVER: raise AddressError(FailureType.ProcessError, "Invalid address witness program") return bytes(raw)
def decode_bech32_address(prefix: str, address: str) -> bytes: witver, raw = bech32.decode(prefix, address) if witver != _BECH32_WITVER: raise wire.ProcessError("Invalid address witness program") assert raw is not None return bytes(raw)