Add additional derives for a few structs
[rust-lightning] / lightning / src / chain / mod.rs
index 7f99467642add8ade3a378671a4dad0fadd51598..8f27e40baeaf1e3b5d43dade8a05da0bb08dfdcb 100644 (file)
@@ -18,11 +18,15 @@ use chain::channelmonitor::{ChannelMonitor, ChannelMonitorUpdate, ChannelMonitor
 use chain::keysinterface::Sign;
 use chain::transaction::{OutPoint, TransactionData};
 
+use prelude::*;
+
 pub mod chaininterface;
 pub mod chainmonitor;
 pub mod channelmonitor;
 pub mod transaction;
 pub mod keysinterface;
+pub(crate) mod onchaintx;
+pub(crate) mod package;
 
 /// An error when accessing the chain via [`Access`].
 #[derive(Clone)]
@@ -36,7 +40,7 @@ pub enum AccessError {
 
 /// The `Access` trait defines behavior for accessing chain data and state, such as blocks and
 /// UTXOs.
-pub trait Access: Send + Sync {
+pub trait Access {
        /// Returns the transaction output of a funding transaction encoded by [`short_channel_id`].
        /// Returns an error if `genesis_hash` is for a different chain or if such a transaction output
        /// is unknown.
@@ -161,7 +165,7 @@ pub trait Confirm {
 /// [`ChannelMonitor`]: channelmonitor::ChannelMonitor
 /// [`ChannelMonitorUpdateErr`]: channelmonitor::ChannelMonitorUpdateErr
 /// [`PermanentFailure`]: channelmonitor::ChannelMonitorUpdateErr::PermanentFailure
-pub trait Watch<ChannelSigner: Sign>: Send + Sync {
+pub trait Watch<ChannelSigner: Sign> {
        /// Watches a channel identified by `funding_txo` using `monitor`.
        ///
        /// Implementations are responsible for watching the chain for the funding transaction along
@@ -207,7 +211,7 @@ pub trait Watch<ChannelSigner: Sign>: Send + Sync {
 /// [`TemporaryFailure`]: channelmonitor::ChannelMonitorUpdateErr::TemporaryFailure
 /// [BIP 157]: https://github.com/bitcoin/bips/blob/master/bip-0157.mediawiki
 /// [BIP 158]: https://github.com/bitcoin/bips/blob/master/bip-0158.mediawiki
-pub trait Filter: Send + Sync {
+pub trait Filter {
        /// Registers interest in a transaction with `txid` and having an output with `script_pubkey` as
        /// a spending condition.
        fn register_tx(&self, txid: &Txid, script_pubkey: &Script);
@@ -235,6 +239,7 @@ pub trait Filter: Send + Sync {
 ///
 /// [`ChannelMonitor`]: channelmonitor::ChannelMonitor
 /// [`ChannelMonitor::block_connected`]: channelmonitor::ChannelMonitor::block_connected
+#[derive(Clone, PartialEq, Hash)]
 pub struct WatchedOutput {
        /// First block where the transaction output may have been spent.
        pub block_hash: Option<BlockHash>,
@@ -246,7 +251,7 @@ pub struct WatchedOutput {
        pub script_pubkey: Script,
 }
 
-impl<T: Listen> Listen for std::ops::Deref<Target = T> {
+impl<T: Listen> Listen for core::ops::Deref<Target = T> {
        fn block_connected(&self, block: &Block, height: u32) {
                (**self).block_connected(block, height);
        }
@@ -256,7 +261,7 @@ impl<T: Listen> Listen for std::ops::Deref<Target = T> {
        }
 }
 
-impl<T: std::ops::Deref, U: std::ops::Deref> Listen for (T, U)
+impl<T: core::ops::Deref, U: core::ops::Deref> Listen for (T, U)
 where
        T::Target: Listen,
        U::Target: Listen,