mirror of
https://github.com/lightningdevkit/rust-lightning.git
synced 2025-02-27 00:06:34 +01:00
If we remove an HTLC (or fee update), commit, and receive our counterparty's `revoke_and_ack`, we remove all knowledge of said HTLC (or fee update). However, the latest local commitment transaction that we can broadcast still contains the HTLC (or old fee), thus we are not eligible for initiating the `closing_signed` negotiation if we're shutting down and are generally expecting a counterparty `commitment_signed` immediately. Because we don't have any tracking of these updates in the `Channel` (only the `ChannelMonitor` is aware of the HTLC being in our latest local commitment transaction), we'd previously send a `closing_signed` too early, causing LDK<->LDK channels with an HTLC pending towards the channel initiator at the time of `shutdown` to always fail to cooperatively close. To fix this race, we add an additional unpersisted bool to `Channel` and use that to gate sending the initial `closing_signed`. |
||
---|---|---|
.. | ||
async_signer_tests.rs | ||
blinded_payment_tests.rs | ||
chan_utils.rs | ||
chanmon_update_fail_tests.rs | ||
channel.rs | ||
channel_id.rs | ||
channelmanager.rs | ||
features.rs | ||
functional_test_utils.rs | ||
functional_tests.rs | ||
inbound_payment.rs | ||
mod.rs | ||
monitor_tests.rs | ||
msgs.rs | ||
onion_route_tests.rs | ||
onion_utils.rs | ||
outbound_payment.rs | ||
payment_tests.rs | ||
peer_channel_encryptor.rs | ||
peer_handler.rs | ||
priv_short_conf_tests.rs | ||
reload_tests.rs | ||
reorg_tests.rs | ||
script.rs | ||
shutdown_tests.rs | ||
wire.rs |