@@ -63,7 +63,7 @@ def test_address(self):
63
63
64
64
65
65
class RedeemScriptTest (TestCase ):
66
- def test_redeem_script (self ):
66
+ def test_nonstandard_redeemscript (self ):
67
67
hex_redeem_script = "4752210223136797cb0d7596cb5bd476102fe3aface2a06338e1afabffacf8c3cab4883c210385c865e61e275ba6fda4a3167180fc5a6b607150ff18797ee44737cd0d34507b52ae"
68
68
stream = BytesIO (bytes .fromhex (hex_redeem_script ))
69
69
redeem_script = RedeemScript .parse (stream )
@@ -75,6 +75,24 @@ def test_redeem_script(self):
75
75
self .assertEqual (redeem_script .address (network = "testnet" ), want )
76
76
self .assertEqual (redeem_script .address (network = "signet" ), want )
77
77
78
+ def test_standard_redeemscript (self ):
79
+ # This was tested against bitcoin core v0.22
80
+ # https://github.com/buidl-bitcoin/buidl-python/issues/123
81
+ redeem_script_hex = "522102be8d4de672b4d6149616962a7d193b702e608a1ed65aaa44f432ff9dd902252f21036ec4565fb304b0fc8e2cdd56e477816ab703e06d52f87279bf0cbdb9fa4941b221038fc14c8dd5a15828bd4fb0e206e443e3ac6e3e3782fbf6f0a1ff969a9ec8f28f53ae"
82
+ rs_obj = RedeemScript .parse_hex (redeem_script_hex )
83
+ self .assertEqual (
84
+ "2NAaGqgaZicBUXuA2iZc6ssxLEsS4sZwdwz" , rs_obj .address ("testnet" )
85
+ )
86
+ self .assertEqual ((2 , 3 ), rs_obj .get_quorum ())
87
+ self .assertTrue (rs_obj .is_p2sh_multisig ())
88
+ pubkeys_wanted_hex = (
89
+ "02be8d4de672b4d6149616962a7d193b702e608a1ed65aaa44f432ff9dd902252f" ,
90
+ "036ec4565fb304b0fc8e2cdd56e477816ab703e06d52f87279bf0cbdb9fa4941b2" ,
91
+ "038fc14c8dd5a15828bd4fb0e206e443e3ac6e3e3782fbf6f0a1ff969a9ec8f28f" ,
92
+ )
93
+ for cnt , pubkey_bytes in enumerate (rs_obj .signing_pubkeys ()):
94
+ self .assertEqual (pubkey_bytes .hex (), pubkeys_wanted_hex [cnt ])
95
+
78
96
def test_create_p2sh_multisig (self ):
79
97
BASE_PATH = "m/45h/0"
80
98
0 commit comments