mirror of
https://github.com/lightningdevkit/rust-lightning.git
synced 2025-02-24 23:08:36 +01:00
Add ChannelMonitor::get_relevant_txids
Define an Electrum-friendly interface for ChannelMonitor where txids of relevant transactions can be obtained. For any of these transactions that are re-orged out of the chain, users must call transaction_unconfirmed.
This commit is contained in:
parent
65e588fd92
commit
c57bf73a02
2 changed files with 23 additions and 0 deletions
|
@ -1385,6 +1385,19 @@ impl<Signer: Sign> ChannelMonitor<Signer> {
|
|||
self.inner.lock().unwrap().update_best_block(
|
||||
header, height, broadcaster, fee_estimator, logger)
|
||||
}
|
||||
|
||||
/// Returns the set of txids that should be monitored for re-organization out of the chain.
|
||||
pub fn get_relevant_txids(&self) -> Vec<Txid> {
|
||||
let inner = self.inner.lock().unwrap();
|
||||
let mut txids: Vec<Txid> = inner.onchain_events_waiting_threshold_conf
|
||||
.iter()
|
||||
.map(|entry| entry.txid)
|
||||
.chain(inner.onchain_tx_handler.get_relevant_txids().into_iter())
|
||||
.collect();
|
||||
txids.sort_unstable();
|
||||
txids.dedup();
|
||||
txids
|
||||
}
|
||||
}
|
||||
|
||||
impl<Signer: Sign> ChannelMonitorImpl<Signer> {
|
||||
|
|
|
@ -945,6 +945,16 @@ impl<ChannelSigner: Sign> OnchainTxHandler<ChannelSigner> {
|
|||
}
|
||||
}
|
||||
|
||||
pub(crate) fn get_relevant_txids(&self) -> Vec<Txid> {
|
||||
let mut txids: Vec<Txid> = self.onchain_events_waiting_threshold_conf
|
||||
.iter()
|
||||
.map(|entry| entry.txid)
|
||||
.collect();
|
||||
txids.sort_unstable();
|
||||
txids.dedup();
|
||||
txids
|
||||
}
|
||||
|
||||
pub(crate) fn provide_latest_holder_tx(&mut self, tx: HolderCommitmentTransaction) {
|
||||
self.prev_holder_commitment = Some(replace(&mut self.holder_commitment, tx));
|
||||
self.holder_htlc_sigs = None;
|
||||
|
|
Loading…
Add table
Reference in a new issue