use bitcoin::network::constants::Network;
use bitcoin::secp256k1::PublicKey;
-use chain::channelmonitor::{ChannelMonitor, ChannelMonitorUpdate, MonitorEvent};
-use chain::keysinterface::Sign;
-use chain::transaction::{OutPoint, TransactionData};
+use crate::chain::channelmonitor::{ChannelMonitor, ChannelMonitorUpdate, MonitorEvent};
+use crate::chain::keysinterface::Sign;
+use crate::chain::transaction::{OutPoint, TransactionData};
-use prelude::*;
+use crate::prelude::*;
pub mod chaininterface;
pub mod chainmonitor;
/// if they become available at the same time.
fn best_block_updated(&self, header: &BlockHeader, height: u32);
- /// Returns transactions that should be monitored for reorganization out of the chain.
+ /// Returns transactions that should be monitored for reorganization out of the chain along
+ /// with the hash of the block as part of which had been previously confirmed.
///
/// Will include any transactions passed to [`transactions_confirmed`] that have insufficient
/// confirmations to be safe from a chain reorganization. Will not include any transactions
/// May be called to determine the subset of transactions that must still be monitored for
/// reorganization. Will be idempotent between calls but may change as a result of calls to the
/// other interface methods. Thus, this is useful to determine which transactions may need to be
- /// given to [`transaction_unconfirmed`].
+ /// 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.
///
/// [`transactions_confirmed`]: Self::transactions_confirmed
/// [`transaction_unconfirmed`]: Self::transaction_unconfirmed
- fn get_relevant_txids(&self) -> Vec<Txid>;
+ fn get_relevant_txids(&self) -> Vec<(Txid, Option<BlockHash>)>;
}
/// An enum representing the status of a channel monitor update persistence.