]> git.bitcoin.ninja Git - rust-lightning/commit
Expose an event when a payment has failed and retries complete
authorMatt Corallo <git@bluematt.me>
Fri, 10 Dec 2021 00:28:24 +0000 (00:28 +0000)
committerMatt Corallo <git@bluematt.me>
Wed, 15 Dec 2021 03:57:13 +0000 (03:57 +0000)
commit7782d0a1ef9fb4e9d26f78a042da16939708d697
tree0f3aec9c17085aff7ed34d49d921557d640c5e42
parent0b3240ee6a6e1baeafaed9e766997098be588358
Expose an event when a payment has failed and retries complete

When a payment fails, a payer needs to know when they can consider
a payment as fully-failed, and when only some of the HTLCs in the
payment have failed. This isn't possible with the current event
scheme, as discovered recently and as described in the previous
commit.

This adds a new event which describes when a payment is fully and
irrevocably failed, generating it only after the payment has
expired or been marked as expired with
`ChannelManager::mark_retries_exceeded` *and* all HTLCs for it
have failed. With this, a payer can more simply deduce when a
payment has failed and use that to remove payment state or
finalize a payment failure.
lightning/src/ln/channelmanager.rs
lightning/src/ln/functional_test_utils.rs
lightning/src/ln/functional_tests.rs
lightning/src/ln/payment_tests.rs
lightning/src/util/events.rs