mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-07-12 14:12:27 +02:00
sweep: remove conflicted sweep txns from the rebroadcaster
In this commit, we an existing gap in our rebroadcast handling logic. As is, if we're trying to sweep a transaction and a conflicting transaction is mined (timeout lands on chain, anchor swept), then we'll continue to try to rebroadcast the tx in the background. To resolve this, we give the sweeper a new closure function that it can use to mark conflicted transactions as no longer requiring rebroadcast.
This commit is contained in:
@ -555,6 +555,9 @@ func (s *UtxoSweeper) removeLastSweepDescendants(spendingTx *wire.MsgTx) error {
|
||||
// Transaction wasn't found in the wallet, may have already
|
||||
// been replaced/removed.
|
||||
if sweepTx == nil {
|
||||
// If it was removed, then we'll play it safe and mark
|
||||
// it as no longer need to be rebroadcasted.
|
||||
s.cfg.Wallet.CancelRebroadcast(sweepHash)
|
||||
continue
|
||||
}
|
||||
|
||||
@ -579,6 +582,10 @@ func (s *UtxoSweeper) removeLastSweepDescendants(spendingTx *wire.MsgTx) error {
|
||||
if err != nil {
|
||||
log.Warnf("unable to remove descendants: %v", err)
|
||||
}
|
||||
|
||||
// If this transaction was conflicting, then we'll stop
|
||||
// rebroadcasting it in the background.
|
||||
s.cfg.Wallet.CancelRebroadcast(sweepHash)
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user