2023 Mar 30
- Things left on this issue (didn’t get a lot of time to work on this today)
Finish places that need to be changed to take a reason
Make draft PR
Questions: Are all these variants unnecessary?
- Either could get rid of them or lump retry stuff under an enum? or just lump together?
Note: RecipientRejected currently also accounts for when there’s just a path failure (like in the intercepted onion tests, it’s not necessarily the recipient rejected, but there was a path failure)
Doesn’t seem like it’s easily differentiable from where
PaymentFailed
events are pushed - different retry strategies being exhausted, recipientrejected or forwarding failed
Fix tests
First fix the individual places, then the generalized functions
Prob good to add payment path failed → see pathfailed event
In
do_automatic_retries
, the retry strategy timeout is different from the normal route_params/payment_params timeoutAnother thing making it hard to do this is for example
do_automatic_retries
AutoRetry::FailOnReload
- how would we know if we reloaded?? (maybe this is answerable, but I’m defaulting here)Uh in
no_extra_retries_on_back_to_back_fail
is thebs_fail_update
actually mean bs? Like is this correct for the failure reason to be recipient rejected?
Two approaches: 1. try to refactor current test methods to include checking for a reason, 2. just write a separate test checking all the reasons and ignore it in current tests
No tests for RetryParameterError or RetryAmountOverflow (in outbound_payments.rs)