1
0

lnurl: better handle unimplemented lnurl subtypes

fixes https://github.com/spesmilo/electrum/issues/7971
This commit is contained in:
SomberNight
2022-09-20 16:00:20 +00:00
parent 20bcb15480
commit e5f21fb7b5
2 changed files with 8 additions and 5 deletions

View File

@@ -237,9 +237,12 @@ class SendScreen(CScreen, Logger):
def set_lnurl6(self, lnurl: str): def set_lnurl6(self, lnurl: str):
url = decode_lnurl(lnurl) url = decode_lnurl(lnurl)
domain = urlparse(url).netloc domain = urlparse(url).netloc
# FIXME network request blocking GUI thread: try:
lnurl_data = Network.run_from_another_thread(request_lnurl(url)) # FIXME network request blocking GUI thread:
if not lnurl_data: lnurl_data = Network.run_from_another_thread(request_lnurl(url))
except LNURLError as e:
self.app.show_error(f"LNURL request encountered error: {e}")
self.do_clear()
return return
self.lnurl_data = lnurl_data self.lnurl_data = lnurl_data
self.address = "invoice from lnurl" self.address = "invoice from lnurl"

View File

@@ -66,11 +66,11 @@ async def _request_lnurl(url: str) -> dict:
return response return response
async def request_lnurl(url: str) -> Optional[LNURL6Data]: async def request_lnurl(url: str) -> LNURL6Data:
lnurl_dict = await _request_lnurl(url) lnurl_dict = await _request_lnurl(url)
tag = lnurl_dict.get('tag') tag = lnurl_dict.get('tag')
if tag != 'payRequest': # only LNURL6 is handled atm if tag != 'payRequest': # only LNURL6 is handled atm
return None raise LNURLError(f"Unknown subtype of lnurl. tag={tag}")
metadata = lnurl_dict.get('metadata') metadata = lnurl_dict.get('metadata')
metadata_plaintext = "" metadata_plaintext = ""
for m in metadata: for m in metadata: