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

Give the option to add route hints / set private flag for invoices #274

Closed mandelmonkey closed 3 years ago

mandelmonkey commented 3 years ago

When creating an invoice we can flag the private flag and thus the invoice will not include route hints for private channels

Description

A simple toggle when creating an invoice to let the user include route hints, I understand zap calls the LND make invoice rpc call, so it would just need to set isPrivate to 1 and LND will include route hints in the invoice

Context

I use zap to connect to my LND node, however my LND node only has one private channel, when I make an invoice using Zap, the invoice cannot be paid as the sender can not find a route due to my private channel. LND allows you to set isPrivate when generating an invoice to allow routine to be possible.

Wallet such as Nayuta Core only have private channels as well as people running LND on lower end hardware or run nodes that don't want to be routing nodes all use private channels, current Zap does not work with them.

Possible Implementation

A simple toggle when creating an invoice? or an option in advanced settings to always set private flag to true when making an invoice?

michaelWuensch commented 3 years ago

Hi, thanks for your feedback. I think I'll go with the option in advanced settings, as most people won't need it. Personally I think nodes with only private channels are a dead end for liquidity and lightning in general and should be avoided if possible.

mandelmonkey commented 3 years ago

For reference it's for a mobile node that has lnd running on android but can't be a routing node as it doesn't have an open public IP address, they use Zap as a way to connect to that node running on local host

On Sat, 5 Dec 2020, 10:26 Michael Wünsch, notifications@github.com wrote:

Hi, thanks for your feedback. I think I'll go with the option in advanced settings, as most people won't need it. Personally I think nodes with only private channels are a dead end for liquidity and lightning in general and should be avoided if possible.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/LN-Zap/zap-android/issues/274#issuecomment-739179562, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABSECN4PA6P5VENIW6RRCJTSTIDGHANCNFSM4UL7MORQ .

michaelWuensch commented 3 years ago

@mandelmonkey I have created a PR for this now. With this PR routing hints are enabled by default. You can disable them in the advanced settings. Tested it on regtest and it worked.

mandelmonkey commented 3 years ago

Awesome, thanks!

On Sat, 5 Dec 2020, 11:55 Michael Wünsch, notifications@github.com wrote:

@mandelmonkey https://github.com/mandelmonkey I have created a PR for this now. With this PR routing hints are enabled by default. You can disable them in the advanced settings. Tested it on regtest and it worked.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/LN-Zap/zap-android/issues/274#issuecomment-739241459, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABSECN2DIG274P5SJF5L3P3STINTDANCNFSM4UL7MORQ .

michaelWuensch commented 3 years ago

I just released a new version that includes this change.

mandelmonkey commented 3 years ago

Great thanks for the quick turn around

On Sat, Dec 5, 2020 at 12:47 PM Michael Wünsch notifications@github.com wrote:

Closed #274 https://github.com/LN-Zap/zap-android/issues/274.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/LN-Zap/zap-android/issues/274#event-4075570870, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABSECN4NEWO5YK6TIMGBZ3LSTITWBANCNFSM4UL7MORQ .

mandelmonkey commented 3 years ago

It seems there is an edge case where the flag is not respected, when Zap receives an LNURL Withdraw Request and generates an invoice for it, it seems that the private flag is not being set?

michaelWuensch commented 3 years ago

@mandelmonkey

Ah, thanks for pointing that out. I just included a fix in #308 which also makes all the private channel stuff available (when opening channels)

mandelmonkey commented 3 years ago

@michaelWuensch amazing thanks!

kiwiidb commented 3 years ago

Just wanted to say I think Zap Android wallet still does not include routing hints if you only have private channels.

michaelWuensch commented 3 years ago

@kiwiidb thanks for the notice, I will have a look at it again an test it.

kiwiidb commented 3 years ago

Upon further testing it seems the issue is with LND and not with Zap.