File tree Expand file tree Collapse file tree 1 file changed +22
-1
lines changed Expand file tree Collapse file tree 1 file changed +22
-1
lines changed Original file line number Diff line number Diff line change @@ -703,7 +703,7 @@ impl FromStr for DescriptorSecretKey {
703703 if key_part. len ( ) <= 52 {
704704 let sk = bitcoin:: PrivateKey :: from_str ( key_part)
705705 . 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 } ) )
707707 } else {
708708 let ( xpriv, derivation_paths, wildcard) = parse_xkey_deriv :: < bip32:: Xpriv > ( key_part) ?;
709709 if derivation_paths. len ( ) > 1 {
@@ -1489,6 +1489,27 @@ mod test {
14891489 DescriptorPublicKey :: from_str ( "tpubDBrgjcxBxnXyL575sHdkpKohWu5qHKoQ7TJXKNrYznh5fVEGBv89hA8ENW7A8MFVpFUSvgLqc4Nj1WZcpePX6rrxviVtPowvMuGF5rdT2Vi/2/4/<0;1;>" ) . unwrap_err ( ) ;
14901490 }
14911491
1492+ #[ test]
1493+ fn test_parse_wif ( ) {
1494+ let secret_key = "[0dd03d09/0'/1/2']5HueCGU8rMjxEXxiPuD5BDku4MkFqeZyd4dZ1jvhTVqvbTLvyTJ"
1495+ . parse ( )
1496+ . unwrap ( ) ;
1497+ if let DescriptorSecretKey :: Single ( single) = secret_key {
1498+ assert_eq ! (
1499+ single. key. inner,
1500+ "0C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D"
1501+ . parse( )
1502+ . unwrap( )
1503+ ) ;
1504+ assert_eq ! (
1505+ single. origin,
1506+ Some ( ( "0dd03d09" . parse( ) . unwrap( ) , "m/0'/1/2'" . parse( ) . unwrap( ) ) )
1507+ ) ;
1508+ } else {
1509+ panic ! ( "expected a DescriptorSecretKey::Single" ) ;
1510+ }
1511+ }
1512+
14921513 #[ test]
14931514 #[ cfg( feature = "serde" ) ]
14941515 fn test_descriptor_public_key_serde ( ) {
You can’t perform that action at this time.
0 commit comments