diff --git a/Cargo.toml b/Cargo.toml index b9069d2f..b34134fc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,8 +7,8 @@ authors = ["Alekos Filini ", "Riccardo Casatta { { Some(self.clone()) } - Descriptor::Bare(ms) | Descriptor::Sh(ms) + Descriptor::Bare(ms) + if psbt_input.redeem_script.is_some() + && &ms.encode(deriv_ctx) == psbt_input.redeem_script.as_ref().unwrap() => + { + Some(self.clone()) + } + Descriptor::Sh(ms) if psbt_input.redeem_script.is_some() && &ms.encode(deriv_ctx) == psbt_input.redeem_script.as_ref().unwrap() => { diff --git a/src/descriptor/policy.rs b/src/descriptor/policy.rs index a41a650e..a8e22586 100644 --- a/src/descriptor/policy.rs +++ b/src/descriptor/policy.rs @@ -820,9 +820,8 @@ impl ExtractPolicy for Descriptor { | Descriptor::Pkh(pubkey) | Descriptor::Wpkh(pubkey) | Descriptor::ShWpkh(pubkey) => Ok(Some(signature(pubkey, signers, secp))), - Descriptor::Bare(inner) | Descriptor::Sh(inner) => { - Ok(inner.extract_policy(signers, secp)?) - } + Descriptor::Bare(inner) => Ok(inner.extract_policy(signers, secp)?), + Descriptor::Sh(inner) => Ok(inner.extract_policy(signers, secp)?), Descriptor::Wsh(inner) | Descriptor::ShWsh(inner) => { Ok(inner.extract_policy(signers, secp)?) }