mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-02-23 14:40:30 +01:00
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.
25 lines
667 B
Go
25 lines
667 B
Go
package lnd
|
|
|
|
import (
|
|
"github.com/btcsuite/btcd/chaincfg/chainhash"
|
|
"github.com/lightningnetwork/lnd/lnwallet"
|
|
)
|
|
|
|
// sweeperWallet is a wrapper around the LightningWallet that implements the
|
|
// sweeper's Wallet interface.
|
|
type sweeperWallet struct {
|
|
*lnwallet.LightningWallet
|
|
}
|
|
|
|
// newSweeperWallet creates a new sweeper wallet from the given
|
|
// LightningWallet.
|
|
func newSweeperWallet(w *lnwallet.LightningWallet) *sweeperWallet {
|
|
return &sweeperWallet{
|
|
LightningWallet: w,
|
|
}
|
|
}
|
|
|
|
// CancelRebroadcast cancels the rebroadcast of the given transaction.
|
|
func (s *sweeperWallet) CancelRebroadcast(txid chainhash.Hash) {
|
|
s.Cfg.Rebroadcaster.MarkAsConfirmed(txid)
|
|
}
|