File tree 1 file changed +23
-1
lines changed
1 file changed +23
-1
lines changed Original file line number Diff line number Diff line change @@ -703,7 +703,7 @@ impl FromStr for DescriptorSecretKey {
703
703
if key_part. len ( ) <= 52 {
704
704
let sk = bitcoin:: PrivateKey :: from_str ( key_part)
705
705
. map_err ( |_| DescriptorKeyParseError ( "Error while parsing a WIF private key" ) ) ?;
706
- Ok ( DescriptorSecretKey :: Single ( SinglePriv { key : sk, origin : None } ) )
706
+ Ok ( DescriptorSecretKey :: Single ( SinglePriv { key : sk, origin } ) )
707
707
} else {
708
708
let ( xpriv, derivation_paths, wildcard) = parse_xkey_deriv :: < bip32:: Xpriv > ( key_part) ?;
709
709
if derivation_paths. len ( ) > 1 {
@@ -1489,6 +1489,28 @@ mod test {
1489
1489
DescriptorPublicKey :: from_str ( "tpubDBrgjcxBxnXyL575sHdkpKohWu5qHKoQ7TJXKNrYznh5fVEGBv89hA8ENW7A8MFVpFUSvgLqc4Nj1WZcpePX6rrxviVtPowvMuGF5rdT2Vi/2/4/<0;1;>" ) . unwrap_err ( ) ;
1490
1490
}
1491
1491
1492
+ #[ test]
1493
+ fn test_parse_wif ( ) {
1494
+ let secret_key = DescriptorSecretKey :: from_str (
1495
+ "[0dd03d09/0'/1/2']5HueCGU8rMjxEXxiPuD5BDku4MkFqeZyd4dZ1jvhTVqvbTLvyTJ" ,
1496
+ )
1497
+ . unwrap ( ) ;
1498
+ if let DescriptorSecretKey :: Single ( single) = secret_key {
1499
+ assert_eq ! (
1500
+ single. key. inner,
1501
+ "0C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D"
1502
+ . parse( )
1503
+ . unwrap( )
1504
+ ) ;
1505
+ assert_eq ! (
1506
+ single. origin,
1507
+ Some ( ( "0dd03d09" . parse( ) . unwrap( ) , "m/0'/1/2'" . parse( ) . unwrap( ) ) )
1508
+ ) ;
1509
+ } else {
1510
+ panic ! ( "expected a DescriptorSecretKey::Single" ) ;
1511
+ }
1512
+ }
1513
+
1492
1514
#[ test]
1493
1515
#[ cfg( feature = "serde" ) ]
1494
1516
fn test_descriptor_public_key_serde ( ) {
You can’t perform that action at this time.
0 commit comments