64
64
assert_raises_rpc_error ,
65
65
connect_nodes_bi ,
66
66
)
67
-
67
+ from test_framework .segwit_addr import (
68
+ encode ,
69
+ decode ,
70
+ )
68
71
69
72
class AddressTypeTest (BitcoinTestFramework ):
70
73
def set_test_params (self ):
@@ -97,6 +100,13 @@ def get_balances(self, confirmed=True):
97
100
else :
98
101
return [self .nodes [i ].getunconfirmedbalance () for i in range (4 )]
99
102
103
+ # Quick test of python bech32 implementation
104
+ def test_python_bech32 (self , addr ):
105
+ hrp = addr [:4 ]
106
+ assert_equal (hrp , "bcrt" )
107
+ (witver , witprog ) = decode (hrp , addr )
108
+ assert_equal (encode (hrp , witver , witprog ), addr )
109
+
100
110
def test_address (self , node , address , multisig , typ ):
101
111
"""Run sanity checks on an address."""
102
112
info = self .nodes [node ].getaddressinfo (address )
@@ -121,6 +131,7 @@ def test_address(self, node, address, multisig, typ):
121
131
assert_equal (info ['witness_version' ], 0 )
122
132
assert_equal (len (info ['witness_program' ]), 40 )
123
133
assert 'pubkey' in info
134
+ self .test_python_bech32 (info ["address" ])
124
135
elif typ == 'legacy' :
125
136
# P2SH-multisig
126
137
assert info ['isscript' ]
@@ -146,6 +157,7 @@ def test_address(self, node, address, multisig, typ):
146
157
assert_equal (info ['witness_version' ], 0 )
147
158
assert_equal (len (info ['witness_program' ]), 64 )
148
159
assert 'pubkeys' in info
160
+ self .test_python_bech32 (info ["address" ])
149
161
else :
150
162
# Unknown type
151
163
assert False
0 commit comments