示例#1
0
def address_p2wpkh(pubkey: bytes, hrp: str) -> str:
    pubkeyhash = ecdsa_hash_pubkey(pubkey)
    address = bech32.encode(hrp, _BECH32_WITVER, pubkeyhash)
    if address is None:
        raise AddressError(FailureType.ProcessError,
                           'Invalid address')
    return address
示例#2
0
 def test_valid_address(self):
     """Test whether valid addresses decode to the correct output."""
     for (address, hexscript) in VALID_ADDRESS:
         hrp = "tb" if address.startswith("tb1") else "bc"
         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)
示例#3
0
def address_p2wsh(witness_script_hash: bytes, hrp: str) -> str:
    address = bech32.encode(hrp, _BECH32_WITVER, witness_script_hash)
    if address is None:
        raise AddressError(FailureType.ProcessError, "Invalid address")
    return address
示例#4
0
def address_p2wpkh(pubkey: bytes, coin: CoinInfo) -> str:
    pubkeyhash = ecdsa_hash_pubkey(pubkey, coin)
    address = bech32.encode(coin.bech32_prefix, _BECH32_WITVER, pubkeyhash)
    if address is None:
        raise AddressError(FailureType.ProcessError, "Invalid address")
    return address
示例#5
0
def encode_bech32_address(prefix: str, script: bytes) -> str:
    address = bech32.encode(prefix, _BECH32_WITVER, script)
    if address is None:
        raise wire.ProcessError("Invalid address")
    return address
示例#6
0
 def test_invalid_address_enc(self):
     """Test whether address encoding fails on invalid input."""
     for hrp, version, length in INVALID_ADDRESS_ENC:
         code = bech32.encode(hrp, version, [0] * length)
         self.assertIsNone(code)
示例#7
0
def encode_bech32_address(prefix: str, witver: int, script: bytes) -> str:
    assert witver in _BECH32_WITVERS
    address = bech32.encode(prefix, witver, script)
    if address is None:
        raise wire.ProcessError("Invalid address")
    return address