diff --git a/docs/release-notes/release-notes-0.18.0.md b/docs/release-notes/release-notes-0.18.0.md index 098fbd585..adde7c4b2 100644 --- a/docs/release-notes/release-notes-0.18.0.md +++ b/docs/release-notes/release-notes-0.18.0.md @@ -65,6 +65,11 @@ * [Properly handle un-acked updates for exhausted watchtower sessions](https://github.com/lightningnetwork/lnd/pull/8233) +* [Allow `shutdown`s while HTLCs are in-flight](https://github.com/lightningnetwork/lnd/pull/8167). + This change fixes an issue where we would force-close channels when receiving + a `shutdown` message if there were currently HTLCs on the channel. After this + change, the shutdown procedure should be compliant with BOLT2 requirements. + # New Features ## Functional Enhancements @@ -123,6 +128,12 @@ file](https://github.com/lightningnetwork/lnd/pull/8188). The corresponding `lncli getdebuginfo` command was also added. +* Add a [new flag](https://github.com/lightningnetwork/lnd/pull/8167) to the + `CloseChannel` RPC method that instructs the client to not wait for the + closing transaction to be negotiated. This should be used if you don't care + about the txid and don't want the calling code to block while the channel + drains the active HTLCs. + ## lncli Additions * Deprecate `bumpclosefee` for `bumpforceclosefee` to accommodate for the fact diff --git a/peer/brontide.go b/peer/brontide.go index d362b1391..ea58936ca 100644 --- a/peer/brontide.go +++ b/peer/brontide.go @@ -3636,12 +3636,13 @@ func (p *Brontide) handleCloseMsg(msg *closeMsg) { oShutdown.WhenSome(func(msg lnwire.Shutdown) { // if the link is nil it means we can immediately queue // the Shutdown message since we don't have to wait for - // commitment transaction synchronization + // commitment transaction synchronization. if link == nil { p.queueMsg(typed, nil) return } - // When we have a Shutdown to send, we defer it til the + + // When we have a Shutdown to send, we defer it till the // next time we send a CommitSig to remain spec // compliant. link.OnCommitOnce(htlcswitch.Outgoing, func() {