From: benthecarman Date: Wed, 31 May 2023 22:47:54 +0000 (-0500) Subject: Impl PartialEq and Debug for InMemorySigner X-Git-Tag: v0.0.116-alpha1~24^2 X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=commitdiff_plain;h=a8a7fc1092692610a44b5dfbf1f683dbf2451d4f;p=rust-lightning Impl PartialEq and Debug for InMemorySigner These are needed for being able to compare a ChannelMonitor and are just nice to haves for developers. --- diff --git a/lightning/src/sign/mod.rs b/lightning/src/sign/mod.rs index 226a2bab7..da2451086 100644 --- a/lightning/src/sign/mod.rs +++ b/lightning/src/sign/mod.rs @@ -689,6 +689,7 @@ pub trait SignerProvider { /// /// This implementation performs no policy checks and is insufficient by itself as /// a secure external signer. +#[derive(Debug)] pub struct InMemorySigner { /// Holder secret key in the 2-of-2 multisig script of a channel. This key also backs the /// holder's anchor output in a commitment transaction, if one is present. @@ -718,6 +719,21 @@ pub struct InMemorySigner { rand_bytes_index: AtomicCounter, } +impl PartialEq for InMemorySigner { + fn eq(&self, other: &Self) -> bool { + self.funding_key == other.funding_key && + self.revocation_base_key == other.revocation_base_key && + self.payment_key == other.payment_key && + self.delayed_payment_base_key == other.delayed_payment_base_key && + self.htlc_base_key == other.htlc_base_key && + self.commitment_seed == other.commitment_seed && + self.holder_channel_pubkeys == other.holder_channel_pubkeys && + self.channel_parameters == other.channel_parameters && + self.channel_value_satoshis == other.channel_value_satoshis && + self.channel_keys_id == other.channel_keys_id + } +} + impl Clone for InMemorySigner { fn clone(&self) -> Self { Self { diff --git a/lightning/src/util/atomic_counter.rs b/lightning/src/util/atomic_counter.rs index 81cc1f496..d2e014113 100644 --- a/lightning/src/util/atomic_counter.rs +++ b/lightning/src/util/atomic_counter.rs @@ -5,6 +5,7 @@ compile_error!("We need at least 32-bit pointers for atomic counter (and to have use core::sync::atomic::{AtomicUsize, Ordering}; +#[derive(Debug)] pub(crate) struct AtomicCounter { // Usize needs to be at least 32 bits to avoid overflowing both low and high. If usize is 64 // bits we will never realistically count into high: