Allow holder commitment and HTLC signature requests to fail
[rust-lightning] / lightning / src / chain / mod.rs
index 239f7c91dbc5d09c433db0ccf53306ca43385034..368dd8497b037e4821c0c41b0de7f3e7585d8042 100644 (file)
@@ -17,7 +17,8 @@ use bitcoin::network::constants::Network;
 use bitcoin::secp256k1::PublicKey;
 
 use crate::chain::channelmonitor::{ChannelMonitor, ChannelMonitorUpdate, MonitorEvent};
-use crate::sign::WriteableEcdsaChannelSigner;
+use crate::ln::ChannelId;
+use crate::sign::ecdsa::WriteableEcdsaChannelSigner;
 use crate::chain::transaction::{OutPoint, TransactionData};
 
 use crate::prelude::*;
@@ -152,7 +153,7 @@ pub trait Confirm {
        /// blocks.
        fn best_block_updated(&self, header: &Header, height: u32);
        /// Returns transactions that must be monitored for reorganization out of the chain along
-       /// with the hash of the block as part of which it had been previously confirmed.
+       /// with the height and the hash of the block as part of which it had been previously confirmed.
        ///
        /// Note that the returned `Option<BlockHash>` might be `None` for channels created with LDK
        /// 0.0.112 and prior, in which case you need to manually track previous confirmations.
@@ -167,12 +168,12 @@ pub trait Confirm {
        /// given to [`transaction_unconfirmed`].
        ///
        /// If any of the returned transactions are confirmed in a block other than the one with the
-       /// given hash, they need to be unconfirmed and reconfirmed via [`transaction_unconfirmed`] and
-       /// [`transactions_confirmed`], respectively.
+       /// given hash at the given height, they need to be unconfirmed and reconfirmed via
+       /// [`transaction_unconfirmed`] and [`transactions_confirmed`], respectively.
        ///
        /// [`transactions_confirmed`]: Self::transactions_confirmed
        /// [`transaction_unconfirmed`]: Self::transaction_unconfirmed
-       fn get_relevant_txids(&self) -> Vec<(Txid, Option<BlockHash>)>;
+       fn get_relevant_txids(&self) -> Vec<(Txid, u32, Option<BlockHash>)>;
 }
 
 /// An enum representing the status of a channel monitor update persistence.
@@ -297,7 +298,7 @@ pub trait Watch<ChannelSigner: WriteableEcdsaChannelSigner> {
        ///
        /// For details on asynchronous [`ChannelMonitor`] updating and returning
        /// [`MonitorEvent::Completed`] here, see [`ChannelMonitorUpdateStatus::InProgress`].
-       fn release_pending_monitor_events(&self) -> Vec<(OutPoint, Vec<MonitorEvent>, Option<PublicKey>)>;
+       fn release_pending_monitor_events(&self) -> Vec<(OutPoint, ChannelId, Vec<MonitorEvent>, Option<PublicKey>)>;
 }
 
 /// The `Filter` trait defines behavior for indicating chain activity of interest pertaining to
@@ -357,7 +358,7 @@ pub struct WatchedOutput {
        pub script_pubkey: ScriptBuf,
 }
 
-impl<T: Listen> Listen for core::ops::Deref<Target = T> {
+impl<T: Listen> Listen for dyn core::ops::Deref<Target = T> {
        fn filtered_block_connected(&self, header: &Header, txdata: &TransactionData, height: u32) {
                (**self).filtered_block_connected(header, txdata, height);
        }