mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-06-29 10:09:08 +02:00
Merge pull request #7819 from ziggie1984/abandonchannel-rebroadcaster
Cancel the Rebroadcasting of a Transaction when Abandoning a Channel
This commit is contained in:
11
rpcserver.go
11
rpcserver.go
@ -2740,12 +2740,21 @@ func abandonChanFromGraph(chanGraph *channeldb.ChannelGraph,
|
||||
func (r *rpcServer) abandonChan(chanPoint *wire.OutPoint,
|
||||
bestHeight uint32) error {
|
||||
|
||||
// Before we remove the channel we cancel the rebroadcasting of the
|
||||
// transaction. If this transaction does not exist in the rebroadcast
|
||||
// queue anymore it is a noop.
|
||||
txid, err := chainhash.NewHash(chanPoint.Hash[:])
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
r.server.cc.Wallet.CancelRebroadcast(*txid)
|
||||
|
||||
// Abandoning a channel is a three-step process: remove from the open
|
||||
// channel state, remove from the graph, remove from the contract
|
||||
// court. Between any step it's possible that the users restarts the
|
||||
// process all over again. As a result, each of the steps below are
|
||||
// intended to be idempotent.
|
||||
err := r.server.chanStateDB.AbandonChannel(chanPoint, bestHeight)
|
||||
err = r.server.chanStateDB.AbandonChannel(chanPoint, bestHeight)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
Reference in New Issue
Block a user