Rather than `ChannelMonitor` only being clonable when the signer is
clonable, we require all signers to be clonable and then make all
`ChannelMonitor`s clonable.
pub(super) inner: Mutex<ChannelMonitorImpl<Signer>>,
}
-impl<Signer: EcdsaChannelSigner> Clone for ChannelMonitor<Signer> where Signer: Clone {
+impl<Signer: EcdsaChannelSigner> Clone for ChannelMonitor<Signer> {
fn clone(&self) -> Self {
let inner = self.inner.lock().unwrap().clone();
ChannelMonitor::from_impl(inner)
/// policies in order to be secure. Please refer to the [VLS Policy
/// Controls](https://gitlab.com/lightning-signer/validating-lightning-signer/-/blob/main/docs/policy-controls.md)
/// for an example of such policies.
-pub trait EcdsaChannelSigner: ChannelSigner {
+pub trait EcdsaChannelSigner: ChannelSigner + Clone {
/// Create a signature for a counterparty's commitment transaction and associated HTLC transactions.
///
/// Note that if signing fails or is rejected, the channel will be force-closed.
}
}
-// Ensure that EcdsaChannelSigner can have a vtable
-#[test]
+// Ensure that EcdsaChannelSigner can have a vtable - not required in bindings
+/*#[test]
pub fn dyn_sign() {
let _signer: Box<dyn EcdsaChannelSigner>;
-}
+}*/
#[cfg(ldk_bench)]
pub mod benches {