diff --git a/derive/src/derive.rs b/derive/src/derive.rs index 6932eb4..95372db 100644 --- a/derive/src/derive.rs +++ b/derive/src/derive.rs @@ -22,6 +22,7 @@ use std::cmp::Ordering; use std::collections::BTreeSet; +use std::fmt::Display; use std::num::ParseIntError; use std::str::FromStr; @@ -356,7 +357,7 @@ pub trait Derive { } } -pub trait DeriveKey: Derive { +pub trait DeriveKey: Derive + Clone + Display { fn xpub_spec(&self) -> &XpubAccount; } diff --git a/descriptors/src/descriptor.rs b/descriptors/src/descriptor.rs index 8ce8f18..bc88988 100644 --- a/descriptors/src/descriptor.rs +++ b/descriptors/src/descriptor.rs @@ -85,7 +85,7 @@ impl TaprootKeySig { pub fn new(key: XOnlyPk, sig: Bip340Sig) -> Self { TaprootKeySig { key, sig } } } -pub trait Descriptor: DeriveScripts { +pub trait Descriptor: DeriveScripts + Clone + Display { fn class(&self) -> SpkClass; #[inline] fn is_taproot(&self) -> bool { self.class().is_taproot() } diff --git a/descriptors/src/segwit.rs b/descriptors/src/segwit.rs index 456ebc3..e378a0b 100644 --- a/descriptors/src/segwit.rs +++ b/descriptors/src/segwit.rs @@ -98,6 +98,6 @@ impl Descriptor for Wpkh { } } -impl Display for Wpkh { +impl Display for Wpkh { fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { write!(f, "wpkh({})", self.0) } } diff --git a/descriptors/src/taproot.rs b/descriptors/src/taproot.rs index c3262db..e5cf436 100644 --- a/descriptors/src/taproot.rs +++ b/descriptors/src/taproot.rs @@ -100,7 +100,7 @@ impl Descriptor for TrKey { } } -impl Display for TrKey { +impl Display for TrKey { fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { write!(f, "tr({})", self.0) } }