File tree Expand file tree Collapse file tree 1 file changed +12
-1
lines changed Expand file tree Collapse file tree 1 file changed +12
-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,17 @@ 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 ( "[0dd03d09/0'/1/2']5HueCGU8rMjxEXxiPuD5BDku4MkFqeZyd4dZ1jvhTVqvbTLvyTJ" ) . unwrap ( ) ;
1495
+ if let DescriptorSecretKey :: Single ( single) = secret_key {
1496
+ assert_eq ! ( single. key. inner, "0C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D" . parse( ) . unwrap( ) ) ;
1497
+ assert_eq ! ( single. origin, Some ( ( "0dd03d09" . parse( ) . unwrap( ) , "m/0'/1/2'" . parse( ) . unwrap( ) ) ) ) ;
1498
+ } else {
1499
+ panic ! ( "expected a DescriptorSecretKey::Single" ) ;
1500
+ }
1501
+ }
1502
+
1492
1503
#[ test]
1493
1504
#[ cfg( feature = "serde" ) ]
1494
1505
fn test_descriptor_public_key_serde ( ) {
You can’t perform that action at this time.
0 commit comments