From: Vishal Menon Date: Tue, 18 May 2021 18:49:15 +0000 (+0530) Subject: Corrected key origin prefix to contain full path of the key derived X-Git-Tag: v0.3.0~54 X-Git-Url: http://internal-gitweb-vhost/script/%22https:/enum.HexToArrayError.html?a=commitdiff_plain;h=c42bf3c561d7ef323987df7df1e1d8bd80fac630;p=bdk-cli Corrected key origin prefix to contain full path of the key derived --- diff --git a/src/lib.rs b/src/lib.rs index 8ad0162..f74c014 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -890,22 +890,10 @@ pub fn handle_key_subcommand( let deriv_path: DerivationPath = DerivationPath::from_str(path.as_str())?; let derived_xprv = &xprv.derive_priv(&secp, &deriv_path)?; - let deriv_path_len = (&deriv_path).as_ref().len(); - let normal_suffix_len = (&deriv_path) - .into_iter() - .rev() - .take_while(|c| c.is_normal()) - .count(); - - let deriv_path_hardened = - DerivationPath::from(&deriv_path[..(deriv_path_len - normal_suffix_len)]); - let deriv_path_normal = - DerivationPath::from(&deriv_path[(deriv_path_len - normal_suffix_len)..]); - - let origin: KeySource = (xprv.fingerprint(&secp), deriv_path_hardened); + let origin: KeySource = (xprv.fingerprint(&secp), deriv_path); let derived_xprv_desc_key: DescriptorKey = - derived_xprv.into_descriptor_key(Some(origin), deriv_path_normal)?; + derived_xprv.into_descriptor_key(Some(origin), DerivationPath::default())?; if let Secret(desc_seckey, _, _) = derived_xprv_desc_key { let desc_pubkey = desc_seckey.as_public(&secp).unwrap(); @@ -1279,8 +1267,8 @@ mod test { let xpub = result_obj.get("xpub").unwrap().as_str().unwrap(); let xprv = result_obj.get("xprv").unwrap().as_str().unwrap(); - assert_eq!(&xpub, &"[566844c5/84'/1'/0']tpubDFeqiDkfwR1tAhPxsXSZMfEmfpDhwhLyhLKZgmeBvuBkZQusoWeL62oGg2oTNGcENeKdwuGepAB85eMvyLemabYe9PSqv6cr5mFXktHc3Ka/0/*"); - assert_eq!(&xprv, &"[566844c5/84'/1'/0']tprv8ixoZoiRo3LDHENAysmxxFaf6nhmnNA582inQFbtWdPMivf7B7pjuYBQVuLC5bkM7tJZEDbfoivENsGZPBnQg1n52Kuc1P8X2Ei3XJuJX7c/0/*"); + assert_eq!(&xpub, &"[566844c5/84'/1'/0'/0]tpubDFeqiDkfwR1tAhPxsXSZMfEmfpDhwhLyhLKZgmeBvuBkZQusoWeL62oGg2oTNGcENeKdwuGepAB85eMvyLemabYe9PSqv6cr5mFXktHc3Ka/*"); + assert_eq!(&xprv, &"[566844c5/84'/1'/0'/0]tprv8ixoZoiRo3LDHENAysmxxFaf6nhmnNA582inQFbtWdPMivf7B7pjuYBQVuLC5bkM7tJZEDbfoivENsGZPBnQg1n52Kuc1P8X2Ei3XJuJX7c/*"); } #[cfg(feature = "compiler")]