X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning%2Fsrc%2Fchain%2Fmod.rs;h=33d4826fef210b849b61818fd9ba241aad2a9971;hb=f4ab077a6938e5a2a28e33c25011cb80ce0a6611;hp=bb80440d116a5a11286c41745d9b55e2c07137a5;hpb=31042ab7d524d75a1e9eb34080c1bdc666c9101e;p=rust-lightning diff --git a/lightning/src/chain/mod.rs b/lightning/src/chain/mod.rs index bb80440d..33d4826f 100644 --- a/lightning/src/chain/mod.rs +++ b/lightning/src/chain/mod.rs @@ -17,11 +17,11 @@ use bitcoin::hash_types::{BlockHash, Txid}; 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; @@ -171,7 +171,8 @@ pub trait Confirm { /// 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 @@ -180,11 +181,13 @@ pub trait Confirm { /// 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; + fn get_relevant_txids(&self) -> Vec<(Txid, Option)>; } /// An enum representing the status of a channel monitor update persistence.