Fix clippy lint and formatting for `Xpriv::derive_xpriv` and `Xpriv::derive_xpub` calls

This commit is contained in:
Daniel Roberts 2025-06-17 14:37:23 -05:00
parent 9d4381c8fe
commit c7bdec14fb
6 changed files with 11 additions and 14 deletions

View File

@ -46,7 +46,7 @@ fn main() {
// generate first receiving address at m/0/0 // generate first receiving address at m/0/0
// manually creating indexes this time // manually creating indexes this time
let zero = ChildNumber::ZERO_NORMAL; let zero = ChildNumber::ZERO_NORMAL;
let public_key = xpub.derive_xpub(&secp, &[zero, zero]).unwrap().public_key; let public_key = xpub.derive_xpub(&secp, [zero, zero]).unwrap().public_key;
let address = Address::p2wpkh(CompressedPublicKey(public_key), KnownHrp::Mainnet); let address = Address::p2wpkh(CompressedPublicKey(public_key), KnownHrp::Mainnet);
println!("First receiving address: {address}"); println!("First receiving address: {address}");
} }

View File

@ -67,7 +67,7 @@ fn get_external_address_xpriv<C: Signing>(
let external_index = ChildNumber::ZERO_NORMAL; let external_index = ChildNumber::ZERO_NORMAL;
let idx = ChildNumber::from_normal_idx(index).expect("valid index number"); let idx = ChildNumber::from_normal_idx(index).expect("valid index number");
child_xpriv.derive_xpriv(secp, &[external_index, idx]).expect("only deriving two more steps") child_xpriv.derive_xpriv(secp, [external_index, idx]).expect("only deriving two more steps")
} }
// Derive the internal address xpriv. // Derive the internal address xpriv.
@ -83,7 +83,7 @@ fn get_internal_address_xpriv<C: Signing>(
let internal_index = ChildNumber::ONE_NORMAL; let internal_index = ChildNumber::ONE_NORMAL;
let idx = ChildNumber::from_normal_idx(index).expect("valid index number"); let idx = ChildNumber::from_normal_idx(index).expect("valid index number");
child_xpriv.derive_xpriv(secp, &[internal_index, idx]).expect("only deriving two more steps") child_xpriv.derive_xpriv(secp, [internal_index, idx]).expect("only deriving two more steps")
} }
// The address to send to. // The address to send to.

View File

@ -260,7 +260,7 @@ impl WatchOnly {
secp: &Secp256k1<C>, secp: &Secp256k1<C>,
) -> Result<(CompressedPublicKey, Address, DerivationPath)> { ) -> Result<(CompressedPublicKey, Address, DerivationPath)> {
let path = [ChildNumber::ONE_NORMAL, ChildNumber::ZERO_NORMAL]; let path = [ChildNumber::ONE_NORMAL, ChildNumber::ZERO_NORMAL];
let derived = self.account_0_xpub.derive_xpub(secp, &path)?; let derived = self.account_0_xpub.derive_xpub(secp, path)?;
let pk = derived.to_public_key(); let pk = derived.to_public_key();
let addr = Address::p2wpkh(pk, NETWORK); let addr = Address::p2wpkh(pk, NETWORK);

View File

@ -65,7 +65,7 @@ fn get_external_address_xpriv<C: Signing>(
let external_index = ChildNumber::ZERO_NORMAL; let external_index = ChildNumber::ZERO_NORMAL;
let idx = ChildNumber::from_normal_idx(index).expect("valid index number"); let idx = ChildNumber::from_normal_idx(index).expect("valid index number");
child_xpriv.derive_xpriv(secp, &[external_index, idx]).expect("only deriving two more steps") child_xpriv.derive_xpriv(secp, [external_index, idx]).expect("only deriving two more steps")
} }
// Derive the internal address xpriv. // Derive the internal address xpriv.
@ -81,7 +81,7 @@ fn get_internal_address_xpriv<C: Signing>(
let internal_index = ChildNumber::ONE_NORMAL; let internal_index = ChildNumber::ONE_NORMAL;
let idx = ChildNumber::from_normal_idx(index).expect("valid index number"); let idx = ChildNumber::from_normal_idx(index).expect("valid index number");
child_xpriv.derive_xpriv(secp, &[internal_index, idx]).expect("only deriving two more steps") child_xpriv.derive_xpriv(secp, [internal_index, idx]).expect("only deriving two more steps")
} }
// Get the Taproot Key Origin. // Get the Taproot Key Origin.

View File

@ -298,7 +298,7 @@ fn generate_bip86_key_spend_tx(
.ok_or("missing Taproot key origin")?; .ok_or("missing Taproot key origin")?;
let secret_key = let secret_key =
master_xpriv.derive_xpriv(secp, &derivation_path)?.to_private_key().inner; master_xpriv.derive_xpriv(secp, derivation_path)?.to_private_key().inner;
sign_psbt_taproot( sign_psbt_taproot(
secret_key, secret_key,
input.tap_internal_key.unwrap(), input.tap_internal_key.unwrap(),
@ -540,7 +540,7 @@ impl BenefactorWallet {
.ok_or("missing Taproot key origin")?; .ok_or("missing Taproot key origin")?;
let secret_key = self let secret_key = self
.master_xpriv .master_xpriv
.derive_xpriv(&self.secp, &derivation_path) .derive_xpriv(&self.secp, derivation_path)
.expect("derivation path is short") .expect("derivation path is short")
.to_private_key() .to_private_key()
.inner; .inner;
@ -664,11 +664,8 @@ impl BeneficiaryWallet {
for (x_only_pubkey, (leaf_hashes, (_, derivation_path))) in for (x_only_pubkey, (leaf_hashes, (_, derivation_path))) in
&psbt.inputs[0].tap_key_origins.clone() &psbt.inputs[0].tap_key_origins.clone()
{ {
let secret_key = self let secret_key =
.master_xpriv self.master_xpriv.derive_xpriv(&self.secp, derivation_path)?.to_private_key().inner;
.derive_xpriv(&self.secp, &derivation_path)?
.to_private_key()
.inner;
for lh in leaf_hashes { for lh in leaf_hashes {
let sighash_type = TapSighashType::All; let sighash_type = TapSighashType::All;
let hash = SighashCache::new(&unsigned_tx).taproot_script_spend_signature_hash( let hash = SighashCache::new(&unsigned_tx).taproot_script_spend_signature_hash(

View File

@ -814,7 +814,7 @@ impl GetKey for Xpriv {
KeyRequest::XOnlyPubkey(_) => Err(GetKeyError::NotSupported), KeyRequest::XOnlyPubkey(_) => Err(GetKeyError::NotSupported),
KeyRequest::Bip32((fingerprint, path)) => { KeyRequest::Bip32((fingerprint, path)) => {
let key = if self.fingerprint(secp) == *fingerprint { let key = if self.fingerprint(secp) == *fingerprint {
let k = self.derive_xpriv(secp, &path).map_err(GetKeyError::Bip32)?; let k = self.derive_xpriv(secp, path).map_err(GetKeyError::Bip32)?;
Some(k.to_private_key()) Some(k.to_private_key())
} else if self.parent_fingerprint == *fingerprint } else if self.parent_fingerprint == *fingerprint
&& !path.is_empty() && !path.is_empty()