LN-Zap / zap-android

Zap Wallet - Native android lightning wallet for node operators focused on user experience and ease of use ⚡️
MIT License
165 stars 49 forks source link

Multi path payments #299

Closed michaelWuensch closed 3 years ago

michaelWuensch commented 3 years ago

Description

Finally the PR to support Multi Path Payments! This PR does not only enable MPP, it also refactors the complete payment flow. Instead of query routes, a payment probe is send. If the probe is successful, we take the exact same route for the actual payment. If it fails, due to no route found, we fall back to MPP as a last hope to get the payment through. In this case we cannot determine the fee in advance and display the max from the settings as possible fee. The payment stuff is now moved to a PaymentUtil to make it more modular. One further change is, that the warning that you use an old LND version (below 0.11) can no longer be marked as do not show again, payments do no longer work on older versions and people should update anyway.

Motivation and Context

Address issue #289 Multi Path Payments (MPP) remove a big liquidity constraint in the lightning network, as payments are no longer limited to the maximum local balance of a single channel. This increases the success of a transaction going through. Receiving MPP has been available for a while now, but

How Has This Been Tested?

Regtest, my S9

Screenshots (if appropriate):

Types of changes

Checklist: