From c5d7b7f4113865e487f4a239dd88dd478dd2c4b4 Mon Sep 17 00:00:00 2001 From: Tiago vasconcelos Date: Tue, 30 Nov 2021 21:19:05 +0000 Subject: [PATCH 01/32] wos debugging --- lnbits/extensions/lnaddress/lnurl.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lnbits/extensions/lnaddress/lnurl.py b/lnbits/extensions/lnaddress/lnurl.py index 30b8fc5a4..d14490720 100644 --- a/lnbits/extensions/lnaddress/lnurl.py +++ b/lnbits/extensions/lnaddress/lnurl.py @@ -34,7 +34,7 @@ async def lnurl_response(username: str, domain: str, request: Request): max_sendable=1000000000, metadata=await address.lnurlpay_metadata(), ) - + print("RESP", resp) return resp.dict() From de2ebf90c79c65976204d2e1923e88a875d47bc2 Mon Sep 17 00:00:00 2001 From: Tiago vasconcelos Date: Tue, 30 Nov 2021 21:41:38 +0000 Subject: [PATCH 02/32] lnurl debug --- lnbits/extensions/lnaddress/lnurl.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lnbits/extensions/lnaddress/lnurl.py b/lnbits/extensions/lnaddress/lnurl.py index d14490720..6d4bd95bf 100644 --- a/lnbits/extensions/lnaddress/lnurl.py +++ b/lnbits/extensions/lnaddress/lnurl.py @@ -34,12 +34,13 @@ async def lnurl_response(username: str, domain: str, request: Request): max_sendable=1000000000, metadata=await address.lnurlpay_metadata(), ) - print("RESP", resp) + print("RESP", resp.dict()) return resp.dict() @lnaddress_ext.get("/lnurl/cb/{address_id}", name="lnaddress.lnurl_callback") async def lnurl_callback(address_id, amount: int = Query(...)): + print("PING") address = await get_address(address_id) if not address: From 4ee86958b851a9aada085369d63e965fb2c25487 Mon Sep 17 00:00:00 2001 From: Tiago vasconcelos Date: Wed, 1 Dec 2021 09:44:19 +0000 Subject: [PATCH 03/32] text identifier --- lnbits/extensions/lnaddress/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lnbits/extensions/lnaddress/models.py b/lnbits/extensions/lnaddress/models.py index eb0984572..74161026b 100644 --- a/lnbits/extensions/lnaddress/models.py +++ b/lnbits/extensions/lnaddress/models.py @@ -51,6 +51,6 @@ class Addresses(BaseModel): async def lnurlpay_metadata(self) -> LnurlPayMetadata: text = f"Payment to {self.username}" - metadata = [["text/plain", text]] + metadata = [["text/identifier", text]] return LnurlPayMetadata(json.dumps(metadata)) From a628f125c9b50e7428f56f024dc92d4818cd49da Mon Sep 17 00:00:00 2001 From: Tiago vasconcelos Date: Wed, 1 Dec 2021 09:46:04 +0000 Subject: [PATCH 04/32] text --- lnbits/extensions/lnaddress/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lnbits/extensions/lnaddress/models.py b/lnbits/extensions/lnaddress/models.py index 74161026b..65df395de 100644 --- a/lnbits/extensions/lnaddress/models.py +++ b/lnbits/extensions/lnaddress/models.py @@ -50,7 +50,7 @@ class Addresses(BaseModel): time: int async def lnurlpay_metadata(self) -> LnurlPayMetadata: - text = f"Payment to {self.username}" + text = f"Payment to {self.username}@{self.domain}" metadata = [["text/identifier", text]] return LnurlPayMetadata(json.dumps(metadata)) From 44e0dd4c92073548cb4fe8eb657c823f0476b732 Mon Sep 17 00:00:00 2001 From: Tiago vasconcelos Date: Wed, 1 Dec 2021 09:53:00 +0000 Subject: [PATCH 05/32] try1 --- lnbits/extensions/lnaddress/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lnbits/extensions/lnaddress/models.py b/lnbits/extensions/lnaddress/models.py index 65df395de..a98d9beab 100644 --- a/lnbits/extensions/lnaddress/models.py +++ b/lnbits/extensions/lnaddress/models.py @@ -51,6 +51,6 @@ class Addresses(BaseModel): async def lnurlpay_metadata(self) -> LnurlPayMetadata: text = f"Payment to {self.username}@{self.domain}" - metadata = [["text/identifier", text]] + metadata = [["text/plain", text], ["text/identifier", "{self.username}@{self.domain}"]] return LnurlPayMetadata(json.dumps(metadata)) From 4411780f82e750464831f8bb1bbe340b4f44edeb Mon Sep 17 00:00:00 2001 From: Tiago vasconcelos Date: Wed, 1 Dec 2021 09:56:42 +0000 Subject: [PATCH 06/32] try2 --- lnbits/extensions/lnaddress/models.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lnbits/extensions/lnaddress/models.py b/lnbits/extensions/lnaddress/models.py index a98d9beab..bf124c99c 100644 --- a/lnbits/extensions/lnaddress/models.py +++ b/lnbits/extensions/lnaddress/models.py @@ -50,7 +50,8 @@ class Addresses(BaseModel): time: int async def lnurlpay_metadata(self) -> LnurlPayMetadata: - text = f"Payment to {self.username}@{self.domain}" - metadata = [["text/plain", text], ["text/identifier", "{self.username}@{self.domain}"]] + text = f"Payment to {self.username}" + identifier = f"{self.username}" + metadata = [["text/plain", text], ["text/identifier", identifier]] return LnurlPayMetadata(json.dumps(metadata)) From 52503c2ba9260ce3c59141492a41745d9fbef912 Mon Sep 17 00:00:00 2001 From: Tiago vasconcelos Date: Wed, 1 Dec 2021 10:07:34 +0000 Subject: [PATCH 07/32] debugging --- lnbits/extensions/lnaddress/lnurl.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lnbits/extensions/lnaddress/lnurl.py b/lnbits/extensions/lnaddress/lnurl.py index 6d4bd95bf..40d36e177 100644 --- a/lnbits/extensions/lnaddress/lnurl.py +++ b/lnbits/extensions/lnaddress/lnurl.py @@ -42,13 +42,14 @@ async def lnurl_response(username: str, domain: str, request: Request): async def lnurl_callback(address_id, amount: int = Query(...)): print("PING") address = await get_address(address_id) - if not address: return LnurlErrorResponse(reason=f"Address not found").dict() amount_received = amount domain = await get_domain(address.domain) + print("ADR", address) + print("DOM", domain) base_url = ( address.wallet_endpoint[:-1] From d89d80c2458abeaba290921d8ddd9d8dd84fc226 Mon Sep 17 00:00:00 2001 From: Tiago vasconcelos Date: Wed, 1 Dec 2021 10:19:59 +0000 Subject: [PATCH 08/32] more debug --- lnbits/extensions/lnaddress/models.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lnbits/extensions/lnaddress/models.py b/lnbits/extensions/lnaddress/models.py index bf124c99c..c2da2af84 100644 --- a/lnbits/extensions/lnaddress/models.py +++ b/lnbits/extensions/lnaddress/models.py @@ -3,7 +3,9 @@ from typing import Optional from fastapi.params import Query from lnurl.types import LnurlPayMetadata -from pydantic.main import BaseModel # type: ignore +from pydantic.main import BaseModel + +from lnbits.extensions.lnaddress.crud import get_domain # type: ignore class CreateDomain(BaseModel): @@ -50,8 +52,9 @@ class Addresses(BaseModel): time: int async def lnurlpay_metadata(self) -> LnurlPayMetadata: - text = f"Payment to {self.username}" - identifier = f"{self.username}" + domain = await get_domain(self.domain) + text = f"Payment to {self.username}@{domain.domain}" + identifier = f"{self.username}@{domain.domain}" metadata = [["text/plain", text], ["text/identifier", identifier]] return LnurlPayMetadata(json.dumps(metadata)) From 16b6ae461a39a203004e9c3fb0b46da0da6af8ac Mon Sep 17 00:00:00 2001 From: Tiago vasconcelos Date: Wed, 1 Dec 2021 10:23:54 +0000 Subject: [PATCH 09/32] ... --- lnbits/extensions/lnaddress/lnurl.py | 2 +- lnbits/extensions/lnaddress/models.py | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/lnbits/extensions/lnaddress/lnurl.py b/lnbits/extensions/lnaddress/lnurl.py index 40d36e177..33e90a3ea 100644 --- a/lnbits/extensions/lnaddress/lnurl.py +++ b/lnbits/extensions/lnaddress/lnurl.py @@ -32,7 +32,7 @@ async def lnurl_response(username: str, domain: str, request: Request): callback=request.url_for("lnaddress.lnurl_callback", address_id=address.id), min_sendable=1000, max_sendable=1000000000, - metadata=await address.lnurlpay_metadata(), + metadata=await address.lnurlpay_metadata(domain=domain), ) print("RESP", resp.dict()) return resp.dict() diff --git a/lnbits/extensions/lnaddress/models.py b/lnbits/extensions/lnaddress/models.py index c2da2af84..857691ee3 100644 --- a/lnbits/extensions/lnaddress/models.py +++ b/lnbits/extensions/lnaddress/models.py @@ -51,10 +51,9 @@ class Addresses(BaseModel): paid: bool time: int - async def lnurlpay_metadata(self) -> LnurlPayMetadata: - domain = await get_domain(self.domain) - text = f"Payment to {self.username}@{domain.domain}" - identifier = f"{self.username}@{domain.domain}" + async def lnurlpay_metadata(self, domain) -> LnurlPayMetadata: + text = f"Payment to {self.username}@{domain}" + identifier = f"{self.username}@{domain}" metadata = [["text/plain", text], ["text/identifier", identifier]] return LnurlPayMetadata(json.dumps(metadata)) From 860c0258c2f70201996ae5151a5ef1679de132b9 Mon Sep 17 00:00:00 2001 From: Tiago vasconcelos Date: Wed, 1 Dec 2021 10:25:21 +0000 Subject: [PATCH 10/32] .... --- lnbits/extensions/lnaddress/models.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/lnbits/extensions/lnaddress/models.py b/lnbits/extensions/lnaddress/models.py index 857691ee3..b4d453bdf 100644 --- a/lnbits/extensions/lnaddress/models.py +++ b/lnbits/extensions/lnaddress/models.py @@ -5,8 +5,6 @@ from fastapi.params import Query from lnurl.types import LnurlPayMetadata from pydantic.main import BaseModel -from lnbits.extensions.lnaddress.crud import get_domain # type: ignore - class CreateDomain(BaseModel): wallet: str = Query(...) From 35eb8cd3137f9ab8ad42f1d01d7896e6cb69420f Mon Sep 17 00:00:00 2001 From: Tiago vasconcelos Date: Wed, 1 Dec 2021 10:32:37 +0000 Subject: [PATCH 11/32] hard code indentifier --- lnbits/extensions/lnaddress/models.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lnbits/extensions/lnaddress/models.py b/lnbits/extensions/lnaddress/models.py index b4d453bdf..7922b598d 100644 --- a/lnbits/extensions/lnaddress/models.py +++ b/lnbits/extensions/lnaddress/models.py @@ -49,9 +49,9 @@ class Addresses(BaseModel): paid: bool time: int - async def lnurlpay_metadata(self, domain) -> LnurlPayMetadata: - text = f"Payment to {self.username}@{domain}" - identifier = f"{self.username}@{domain}" + async def lnurlpay_metadata(self) -> LnurlPayMetadata: + text = f"Payment to {self.username}" + identifier = f"{self.username}@lnto.name" metadata = [["text/plain", text], ["text/identifier", identifier]] return LnurlPayMetadata(json.dumps(metadata)) From f1394f369778570e9ea04103b7e42052d23cf4db Mon Sep 17 00:00:00 2001 From: Tiago vasconcelos Date: Wed, 1 Dec 2021 10:33:37 +0000 Subject: [PATCH 12/32] . --- lnbits/extensions/lnaddress/lnurl.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lnbits/extensions/lnaddress/lnurl.py b/lnbits/extensions/lnaddress/lnurl.py index 33e90a3ea..40d36e177 100644 --- a/lnbits/extensions/lnaddress/lnurl.py +++ b/lnbits/extensions/lnaddress/lnurl.py @@ -32,7 +32,7 @@ async def lnurl_response(username: str, domain: str, request: Request): callback=request.url_for("lnaddress.lnurl_callback", address_id=address.id), min_sendable=1000, max_sendable=1000000000, - metadata=await address.lnurlpay_metadata(domain=domain), + metadata=await address.lnurlpay_metadata(), ) print("RESP", resp.dict()) return resp.dict() From e21f850ef3125d3e83932afaa9331c91452f01de Mon Sep 17 00:00:00 2001 From: Tiago vasconcelos Date: Wed, 1 Dec 2021 10:37:40 +0000 Subject: [PATCH 13/32] more hard code --- lnbits/extensions/lnaddress/lnurl.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lnbits/extensions/lnaddress/lnurl.py b/lnbits/extensions/lnaddress/lnurl.py index 40d36e177..358ac0aff 100644 --- a/lnbits/extensions/lnaddress/lnurl.py +++ b/lnbits/extensions/lnaddress/lnurl.py @@ -29,7 +29,8 @@ async def lnurl_response(username: str, domain: str, request: Request): return LnurlErrorResponse(reason="Address has expired.").dict() resp = LnurlPayResponse( - callback=request.url_for("lnaddress.lnurl_callback", address_id=address.id), + # callback=request.url_for("lnaddress.lnurl_callback", address_id=address.id), + callback=f"https://fastbits.lnto.me/lnurl/cb/{address.id}", min_sendable=1000, max_sendable=1000000000, metadata=await address.lnurlpay_metadata(), From 395613040b963f5629204ffd206fed77f631bc25 Mon Sep 17 00:00:00 2001 From: Tiago vasconcelos Date: Wed, 1 Dec 2021 10:39:12 +0000 Subject: [PATCH 14/32] . --- lnbits/extensions/lnaddress/lnurl.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lnbits/extensions/lnaddress/lnurl.py b/lnbits/extensions/lnaddress/lnurl.py index 358ac0aff..d39cd7b43 100644 --- a/lnbits/extensions/lnaddress/lnurl.py +++ b/lnbits/extensions/lnaddress/lnurl.py @@ -30,7 +30,7 @@ async def lnurl_response(username: str, domain: str, request: Request): resp = LnurlPayResponse( # callback=request.url_for("lnaddress.lnurl_callback", address_id=address.id), - callback=f"https://fastbits.lnto.me/lnurl/cb/{address.id}", + callback=f"https://fastbits.lnto.me/lnaddress/lnurl/cb/{address.id}", min_sendable=1000, max_sendable=1000000000, metadata=await address.lnurlpay_metadata(), From 177cdecabfbb93f6ea33519a96da786faeac7339 Mon Sep 17 00:00:00 2001 From: Tiago vasconcelos Date: Wed, 1 Dec 2021 10:44:54 +0000 Subject: [PATCH 15/32] trying --- lnbits/extensions/lnaddress/lnurl.py | 3 +-- lnbits/extensions/lnaddress/models.py | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/lnbits/extensions/lnaddress/lnurl.py b/lnbits/extensions/lnaddress/lnurl.py index d39cd7b43..40d36e177 100644 --- a/lnbits/extensions/lnaddress/lnurl.py +++ b/lnbits/extensions/lnaddress/lnurl.py @@ -29,8 +29,7 @@ async def lnurl_response(username: str, domain: str, request: Request): return LnurlErrorResponse(reason="Address has expired.").dict() resp = LnurlPayResponse( - # callback=request.url_for("lnaddress.lnurl_callback", address_id=address.id), - callback=f"https://fastbits.lnto.me/lnaddress/lnurl/cb/{address.id}", + callback=request.url_for("lnaddress.lnurl_callback", address_id=address.id), min_sendable=1000, max_sendable=1000000000, metadata=await address.lnurlpay_metadata(), diff --git a/lnbits/extensions/lnaddress/models.py b/lnbits/extensions/lnaddress/models.py index 7922b598d..268831b38 100644 --- a/lnbits/extensions/lnaddress/models.py +++ b/lnbits/extensions/lnaddress/models.py @@ -51,7 +51,7 @@ class Addresses(BaseModel): async def lnurlpay_metadata(self) -> LnurlPayMetadata: text = f"Payment to {self.username}" - identifier = f"{self.username}@lnto.name" + identifier = f"{self.username}" metadata = [["text/plain", text], ["text/identifier", identifier]] - return LnurlPayMetadata(json.dumps(metadata)) + return LnurlPayMetadata(metadata) From 3e6a5b67201ead810f28513d71e843d9b94f04fd Mon Sep 17 00:00:00 2001 From: Tiago vasconcelos Date: Wed, 1 Dec 2021 10:47:39 +0000 Subject: [PATCH 16/32] revert --- lnbits/extensions/lnaddress/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lnbits/extensions/lnaddress/models.py b/lnbits/extensions/lnaddress/models.py index 268831b38..f850271b0 100644 --- a/lnbits/extensions/lnaddress/models.py +++ b/lnbits/extensions/lnaddress/models.py @@ -54,4 +54,4 @@ class Addresses(BaseModel): identifier = f"{self.username}" metadata = [["text/plain", text], ["text/identifier", identifier]] - return LnurlPayMetadata(metadata) + return LnurlPayMetadata(json.dumps(metadata)) From a7ceae86b4ec7edbb56b1a5143d3b1c49e19643c Mon Sep 17 00:00:00 2001 From: Tiago vasconcelos Date: Wed, 1 Dec 2021 10:58:04 +0000 Subject: [PATCH 17/32] remove identifier --- lnbits/extensions/lnaddress/models.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lnbits/extensions/lnaddress/models.py b/lnbits/extensions/lnaddress/models.py index f850271b0..fe92473a9 100644 --- a/lnbits/extensions/lnaddress/models.py +++ b/lnbits/extensions/lnaddress/models.py @@ -51,7 +51,6 @@ class Addresses(BaseModel): async def lnurlpay_metadata(self) -> LnurlPayMetadata: text = f"Payment to {self.username}" - identifier = f"{self.username}" - metadata = [["text/plain", text], ["text/identifier", identifier]] + metadata = [["text/plain", text]] return LnurlPayMetadata(json.dumps(metadata)) From e6ec5603176880ce6182c662b139d17e5a423d98 Mon Sep 17 00:00:00 2001 From: Tiago vasconcelos Date: Wed, 1 Dec 2021 11:06:56 +0000 Subject: [PATCH 18/32] adding identifier...again --- lnbits/extensions/lnaddress/lnurl.py | 4 ++-- lnbits/extensions/lnaddress/models.py | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/lnbits/extensions/lnaddress/lnurl.py b/lnbits/extensions/lnaddress/lnurl.py index 40d36e177..66ddcba08 100644 --- a/lnbits/extensions/lnaddress/lnurl.py +++ b/lnbits/extensions/lnaddress/lnurl.py @@ -32,7 +32,7 @@ async def lnurl_response(username: str, domain: str, request: Request): callback=request.url_for("lnaddress.lnurl_callback", address_id=address.id), min_sendable=1000, max_sendable=1000000000, - metadata=await address.lnurlpay_metadata(), + metadata=await address.lnurlpay_metadata(domain=domain), ) print("RESP", resp.dict()) return resp.dict() @@ -69,7 +69,7 @@ async def lnurl_callback(address_id, amount: int = Query(...)): "out": False, "amount": int(amount_received / 1000), "description_hash": hashlib.sha256( - (await address.lnurlpay_metadata()).encode("utf-8") + (await address.lnurlpay_metadata(domain=domain.domain)).encode("utf-8") ).hexdigest(), "extra": {"tag": f"Payment to {address.username}@{domain.domain}"}, }, diff --git a/lnbits/extensions/lnaddress/models.py b/lnbits/extensions/lnaddress/models.py index fe92473a9..330f04fc1 100644 --- a/lnbits/extensions/lnaddress/models.py +++ b/lnbits/extensions/lnaddress/models.py @@ -49,8 +49,9 @@ class Addresses(BaseModel): paid: bool time: int - async def lnurlpay_metadata(self) -> LnurlPayMetadata: + async def lnurlpay_metadata(self, domain) -> LnurlPayMetadata: text = f"Payment to {self.username}" - metadata = [["text/plain", text]] + identifier = f"{self.username}@{domain}" + metadata = [["text/plain", text], ["text/identifier"], identifier] return LnurlPayMetadata(json.dumps(metadata)) From 346e50cbb512f8de6fa9abb3ff4849f75e38cfd0 Mon Sep 17 00:00:00 2001 From: Tiago vasconcelos Date: Wed, 1 Dec 2021 11:10:19 +0000 Subject: [PATCH 19/32] . --- lnbits/extensions/lnaddress/models.py | 1 + 1 file changed, 1 insertion(+) diff --git a/lnbits/extensions/lnaddress/models.py b/lnbits/extensions/lnaddress/models.py index 330f04fc1..1c73f30d8 100644 --- a/lnbits/extensions/lnaddress/models.py +++ b/lnbits/extensions/lnaddress/models.py @@ -53,5 +53,6 @@ class Addresses(BaseModel): text = f"Payment to {self.username}" identifier = f"{self.username}@{domain}" metadata = [["text/plain", text], ["text/identifier"], identifier] + print(json.dumps(metadata)) return LnurlPayMetadata(json.dumps(metadata)) From 205c53d8e9d27b7fb161df0220ab02aee26e284b Mon Sep 17 00:00:00 2001 From: Tiago vasconcelos Date: Wed, 1 Dec 2021 11:11:51 +0000 Subject: [PATCH 20/32] stupid --- lnbits/extensions/lnaddress/models.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lnbits/extensions/lnaddress/models.py b/lnbits/extensions/lnaddress/models.py index 1c73f30d8..6f21278ef 100644 --- a/lnbits/extensions/lnaddress/models.py +++ b/lnbits/extensions/lnaddress/models.py @@ -52,7 +52,6 @@ class Addresses(BaseModel): async def lnurlpay_metadata(self, domain) -> LnurlPayMetadata: text = f"Payment to {self.username}" identifier = f"{self.username}@{domain}" - metadata = [["text/plain", text], ["text/identifier"], identifier] - print(json.dumps(metadata)) - + metadata = [["text/plain", text], ["text/identifier", identifier]] + return LnurlPayMetadata(json.dumps(metadata)) From 2a9a0bd7aa057794f475bbbe81cdb5f1e80ee0d6 Mon Sep 17 00:00:00 2001 From: Tiago vasconcelos Date: Wed, 1 Dec 2021 11:21:54 +0000 Subject: [PATCH 21/32] return text instead of json --- lnbits/extensions/lnaddress/lnurl.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lnbits/extensions/lnaddress/lnurl.py b/lnbits/extensions/lnaddress/lnurl.py index 66ddcba08..77eee507a 100644 --- a/lnbits/extensions/lnaddress/lnurl.py +++ b/lnbits/extensions/lnaddress/lnurl.py @@ -35,7 +35,7 @@ async def lnurl_response(username: str, domain: str, request: Request): metadata=await address.lnurlpay_metadata(domain=domain), ) print("RESP", resp.dict()) - return resp.dict() + return resp @lnaddress_ext.get("/lnurl/cb/{address_id}", name="lnaddress.lnurl_callback") @@ -82,4 +82,4 @@ async def lnurl_callback(address_id, amount: int = Query(...)): resp = LnurlPayActionResponse(pr=r["payment_request"], routes=[]) - return resp.dict() + return resp From 8cdbd02a77d68dc5f51645972adf15b25176dfc5 Mon Sep 17 00:00:00 2001 From: Tiago vasconcelos Date: Wed, 1 Dec 2021 11:27:43 +0000 Subject: [PATCH 22/32] htmlresponse --- lnbits/core/views/public_api.py | 3 ++- lnbits/extensions/lnaddress/lnurl.py | 7 ++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lnbits/core/views/public_api.py b/lnbits/core/views/public_api.py index 0f5c74e35..f8b48eccc 100644 --- a/lnbits/core/views/public_api.py +++ b/lnbits/core/views/public_api.py @@ -5,6 +5,7 @@ from urllib.parse import urlparse from fastapi import HTTPException from starlette.requests import Request +from starlette.responses import HTMLResponse from lnbits import bolt11 @@ -13,7 +14,7 @@ from ..crud import get_standalone_payment from ..tasks import api_invoice_listeners -@core_app.get("/.well-known/lnurlp/{username}") +@core_app.get("/.well-known/lnurlp/{username}", response_class=HTMLResponse) async def lnaddress(username: str, request: Request): from lnbits.extensions.lnaddress.lnurl import lnurl_response diff --git a/lnbits/extensions/lnaddress/lnurl.py b/lnbits/extensions/lnaddress/lnurl.py index 77eee507a..ba3a53ea5 100644 --- a/lnbits/extensions/lnaddress/lnurl.py +++ b/lnbits/extensions/lnaddress/lnurl.py @@ -9,6 +9,7 @@ from lnurl import ( # type: ignore LnurlPayResponse, ) from starlette.requests import Request +from starlette.responses import HTMLResponse from . import lnaddress_ext from .crud import get_address, get_address_by_username, get_domain @@ -35,10 +36,10 @@ async def lnurl_response(username: str, domain: str, request: Request): metadata=await address.lnurlpay_metadata(domain=domain), ) print("RESP", resp.dict()) - return resp + return resp.dict() -@lnaddress_ext.get("/lnurl/cb/{address_id}", name="lnaddress.lnurl_callback") +@lnaddress_ext.get("/lnurl/cb/{address_id}", name="lnaddress.lnurl_callback", response_class=HTMLResponse) async def lnurl_callback(address_id, amount: int = Query(...)): print("PING") address = await get_address(address_id) @@ -82,4 +83,4 @@ async def lnurl_callback(address_id, amount: int = Query(...)): resp = LnurlPayActionResponse(pr=r["payment_request"], routes=[]) - return resp + return resp.dict() From c24d28bff45e9ce2f3f9defcb5bbec675d1a12de Mon Sep 17 00:00:00 2001 From: Tiago vasconcelos Date: Wed, 1 Dec 2021 11:31:47 +0000 Subject: [PATCH 23/32] on more spin --- lnbits/extensions/lnaddress/lnurl.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lnbits/extensions/lnaddress/lnurl.py b/lnbits/extensions/lnaddress/lnurl.py index ba3a53ea5..3f4b99330 100644 --- a/lnbits/extensions/lnaddress/lnurl.py +++ b/lnbits/extensions/lnaddress/lnurl.py @@ -1,4 +1,5 @@ import hashlib +import json from datetime import datetime, timedelta import httpx @@ -36,7 +37,7 @@ async def lnurl_response(username: str, domain: str, request: Request): metadata=await address.lnurlpay_metadata(domain=domain), ) print("RESP", resp.dict()) - return resp.dict() + return json.dumps(resp) @lnaddress_ext.get("/lnurl/cb/{address_id}", name="lnaddress.lnurl_callback", response_class=HTMLResponse) @@ -83,4 +84,4 @@ async def lnurl_callback(address_id, amount: int = Query(...)): resp = LnurlPayActionResponse(pr=r["payment_request"], routes=[]) - return resp.dict() + return json.dumps(resp) From b6498389bc93a596d2623ab99535c0200583e28a Mon Sep 17 00:00:00 2001 From: Tiago vasconcelos Date: Wed, 1 Dec 2021 11:33:38 +0000 Subject: [PATCH 24/32] . --- lnbits/extensions/lnaddress/lnurl.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lnbits/extensions/lnaddress/lnurl.py b/lnbits/extensions/lnaddress/lnurl.py index 3f4b99330..8ddc59f75 100644 --- a/lnbits/extensions/lnaddress/lnurl.py +++ b/lnbits/extensions/lnaddress/lnurl.py @@ -37,7 +37,7 @@ async def lnurl_response(username: str, domain: str, request: Request): metadata=await address.lnurlpay_metadata(domain=domain), ) print("RESP", resp.dict()) - return json.dumps(resp) + return json.dumps(resp.dict()) @lnaddress_ext.get("/lnurl/cb/{address_id}", name="lnaddress.lnurl_callback", response_class=HTMLResponse) @@ -84,4 +84,4 @@ async def lnurl_callback(address_id, amount: int = Query(...)): resp = LnurlPayActionResponse(pr=r["payment_request"], routes=[]) - return json.dumps(resp) + return json.dumps(resp.dict()) From 55cb78710b90c0768d5853012581024d8346e278 Mon Sep 17 00:00:00 2001 From: Tiago vasconcelos Date: Wed, 1 Dec 2021 11:40:03 +0000 Subject: [PATCH 25/32] added tag --- lnbits/extensions/lnaddress/lnurl.py | 1 + 1 file changed, 1 insertion(+) diff --git a/lnbits/extensions/lnaddress/lnurl.py b/lnbits/extensions/lnaddress/lnurl.py index 8ddc59f75..995da0b43 100644 --- a/lnbits/extensions/lnaddress/lnurl.py +++ b/lnbits/extensions/lnaddress/lnurl.py @@ -31,6 +31,7 @@ async def lnurl_response(username: str, domain: str, request: Request): return LnurlErrorResponse(reason="Address has expired.").dict() resp = LnurlPayResponse( + tag="payRequest", callback=request.url_for("lnaddress.lnurl_callback", address_id=address.id), min_sendable=1000, max_sendable=1000000000, From 3fd519e9dc2af68d3d829f4d5db656450647f9d1 Mon Sep 17 00:00:00 2001 From: Tiago vasconcelos Date: Wed, 1 Dec 2021 11:49:04 +0000 Subject: [PATCH 26/32] revert to JSON return --- lnbits/extensions/lnaddress/lnurl.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lnbits/extensions/lnaddress/lnurl.py b/lnbits/extensions/lnaddress/lnurl.py index 995da0b43..527898fd8 100644 --- a/lnbits/extensions/lnaddress/lnurl.py +++ b/lnbits/extensions/lnaddress/lnurl.py @@ -38,7 +38,7 @@ async def lnurl_response(username: str, domain: str, request: Request): metadata=await address.lnurlpay_metadata(domain=domain), ) print("RESP", resp.dict()) - return json.dumps(resp.dict()) + return resp.dict() @lnaddress_ext.get("/lnurl/cb/{address_id}", name="lnaddress.lnurl_callback", response_class=HTMLResponse) @@ -85,4 +85,4 @@ async def lnurl_callback(address_id, amount: int = Query(...)): resp = LnurlPayActionResponse(pr=r["payment_request"], routes=[]) - return json.dumps(resp.dict()) + return resp.dict() From 9cc3aaa7a2bff8c76137b364d3628da810e17e8c Mon Sep 17 00:00:00 2001 From: Tiago vasconcelos Date: Wed, 1 Dec 2021 11:50:45 +0000 Subject: [PATCH 27/32] . --- lnbits/core/views/public_api.py | 2 +- lnbits/extensions/lnaddress/lnurl.py | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/lnbits/core/views/public_api.py b/lnbits/core/views/public_api.py index f8b48eccc..5f8be4e2f 100644 --- a/lnbits/core/views/public_api.py +++ b/lnbits/core/views/public_api.py @@ -14,7 +14,7 @@ from ..crud import get_standalone_payment from ..tasks import api_invoice_listeners -@core_app.get("/.well-known/lnurlp/{username}", response_class=HTMLResponse) +@core_app.get("/.well-known/lnurlp/{username}") async def lnaddress(username: str, request: Request): from lnbits.extensions.lnaddress.lnurl import lnurl_response diff --git a/lnbits/extensions/lnaddress/lnurl.py b/lnbits/extensions/lnaddress/lnurl.py index 527898fd8..22f4f33d6 100644 --- a/lnbits/extensions/lnaddress/lnurl.py +++ b/lnbits/extensions/lnaddress/lnurl.py @@ -31,7 +31,6 @@ async def lnurl_response(username: str, domain: str, request: Request): return LnurlErrorResponse(reason="Address has expired.").dict() resp = LnurlPayResponse( - tag="payRequest", callback=request.url_for("lnaddress.lnurl_callback", address_id=address.id), min_sendable=1000, max_sendable=1000000000, @@ -41,7 +40,7 @@ async def lnurl_response(username: str, domain: str, request: Request): return resp.dict() -@lnaddress_ext.get("/lnurl/cb/{address_id}", name="lnaddress.lnurl_callback", response_class=HTMLResponse) +@lnaddress_ext.get("/lnurl/cb/{address_id}", name="lnaddress.lnurl_callback") async def lnurl_callback(address_id, amount: int = Query(...)): print("PING") address = await get_address(address_id) From 7b8c9cfdc5d581aa50b511f2fd64d78db72ac12d Mon Sep 17 00:00:00 2001 From: Tiago vasconcelos Date: Wed, 1 Dec 2021 12:19:55 +0000 Subject: [PATCH 28/32] ditch lnurl lib --- lnbits/extensions/lnaddress/lnurl.py | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/lnbits/extensions/lnaddress/lnurl.py b/lnbits/extensions/lnaddress/lnurl.py index 22f4f33d6..855bfdd2f 100644 --- a/lnbits/extensions/lnaddress/lnurl.py +++ b/lnbits/extensions/lnaddress/lnurl.py @@ -30,14 +30,16 @@ async def lnurl_response(username: str, domain: str, request: Request): if now > expiration: return LnurlErrorResponse(reason="Address has expired.").dict() - resp = LnurlPayResponse( - callback=request.url_for("lnaddress.lnurl_callback", address_id=address.id), - min_sendable=1000, - max_sendable=1000000000, - metadata=await address.lnurlpay_metadata(domain=domain), - ) - print("RESP", resp.dict()) - return resp.dict() + resp = { + "tag": "payRequest", + "callback": request.url_for("lnaddress.lnurl_callback", address_id=address.id), + "metadata": await address.lnurlpay_metadata(domain=domain), + "minSendable": 1000, + "maxSendable": 1000000000, + } + + print("RESP", resp) + return json.dumps(resp) @lnaddress_ext.get("/lnurl/cb/{address_id}", name="lnaddress.lnurl_callback") @@ -82,6 +84,7 @@ async def lnurl_callback(address_id, amount: int = Query(...)): except AssertionError as e: return LnurlErrorResponse(reason="ERROR") - resp = LnurlPayActionResponse(pr=r["payment_request"], routes=[]) + # resp = LnurlPayActionResponse(pr=r["payment_request"], routes=[]) + resp = {"pr": r["payment_request"], "routes": []} - return resp.dict() + return json.dumps(resp) From 35f24b828d4f8639c474806ef6c427a4cd129c92 Mon Sep 17 00:00:00 2001 From: Tiago vasconcelos Date: Wed, 1 Dec 2021 12:25:51 +0000 Subject: [PATCH 29/32] . --- lnbits/extensions/lnaddress/lnurl.py | 1 - 1 file changed, 1 deletion(-) diff --git a/lnbits/extensions/lnaddress/lnurl.py b/lnbits/extensions/lnaddress/lnurl.py index 855bfdd2f..0e4534354 100644 --- a/lnbits/extensions/lnaddress/lnurl.py +++ b/lnbits/extensions/lnaddress/lnurl.py @@ -31,7 +31,6 @@ async def lnurl_response(username: str, domain: str, request: Request): return LnurlErrorResponse(reason="Address has expired.").dict() resp = { - "tag": "payRequest", "callback": request.url_for("lnaddress.lnurl_callback", address_id=address.id), "metadata": await address.lnurlpay_metadata(domain=domain), "minSendable": 1000, From 4790bf21b2ed51dedfd0ab91b640395ea4471693 Mon Sep 17 00:00:00 2001 From: Tiago vasconcelos Date: Wed, 1 Dec 2021 12:27:47 +0000 Subject: [PATCH 30/32] .. --- lnbits/extensions/lnaddress/lnurl.py | 1 + 1 file changed, 1 insertion(+) diff --git a/lnbits/extensions/lnaddress/lnurl.py b/lnbits/extensions/lnaddress/lnurl.py index 0e4534354..855bfdd2f 100644 --- a/lnbits/extensions/lnaddress/lnurl.py +++ b/lnbits/extensions/lnaddress/lnurl.py @@ -31,6 +31,7 @@ async def lnurl_response(username: str, domain: str, request: Request): return LnurlErrorResponse(reason="Address has expired.").dict() resp = { + "tag": "payRequest", "callback": request.url_for("lnaddress.lnurl_callback", address_id=address.id), "metadata": await address.lnurlpay_metadata(domain=domain), "minSendable": 1000, From 2302937fc9a9fc7cc7ad572b10c79df5c1a06882 Mon Sep 17 00:00:00 2001 From: Tiago vasconcelos Date: Wed, 1 Dec 2021 12:28:42 +0000 Subject: [PATCH 31/32] .. --- lnbits/extensions/lnaddress/lnurl.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lnbits/extensions/lnaddress/lnurl.py b/lnbits/extensions/lnaddress/lnurl.py index 855bfdd2f..1277c07ea 100644 --- a/lnbits/extensions/lnaddress/lnurl.py +++ b/lnbits/extensions/lnaddress/lnurl.py @@ -39,7 +39,7 @@ async def lnurl_response(username: str, domain: str, request: Request): } print("RESP", resp) - return json.dumps(resp) + return resp @lnaddress_ext.get("/lnurl/cb/{address_id}", name="lnaddress.lnurl_callback") @@ -87,4 +87,4 @@ async def lnurl_callback(address_id, amount: int = Query(...)): # resp = LnurlPayActionResponse(pr=r["payment_request"], routes=[]) resp = {"pr": r["payment_request"], "routes": []} - return json.dumps(resp) + return resp From d1a9960acb5eecfecb2431cabac89eea040bd56c Mon Sep 17 00:00:00 2001 From: Tiago vasconcelos Date: Wed, 1 Dec 2021 19:41:17 +0000 Subject: [PATCH 32/32] clean prints --- lnbits/extensions/lnaddress/lnurl.py | 4 +--- lnbits/extensions/lnaddress/tasks.py | 4 ++-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/lnbits/extensions/lnaddress/lnurl.py b/lnbits/extensions/lnaddress/lnurl.py index 1277c07ea..471403153 100644 --- a/lnbits/extensions/lnaddress/lnurl.py +++ b/lnbits/extensions/lnaddress/lnurl.py @@ -52,9 +52,7 @@ async def lnurl_callback(address_id, amount: int = Query(...)): amount_received = amount domain = await get_domain(address.domain) - print("ADR", address) - print("DOM", domain) - + base_url = ( address.wallet_endpoint[:-1] if address.wallet_endpoint.endswith("/") diff --git a/lnbits/extensions/lnaddress/tasks.py b/lnbits/extensions/lnaddress/tasks.py index f962f4abb..9702c70b6 100644 --- a/lnbits/extensions/lnaddress/tasks.py +++ b/lnbits/extensions/lnaddress/tasks.py @@ -47,7 +47,7 @@ async def on_invoice_paid(payment: Payment) -> None: await payment.set_pending(False) await set_address_paid(payment_hash=payment.payment_hash) - await call_webhook_on_paid(payment.payment_hash) + await call_webhook_on_paid(payment_hash=payment.payment_hash) elif "renew lnaddress" == payment.extra.get("tag"): @@ -55,7 +55,7 @@ async def on_invoice_paid(payment: Payment) -> None: await set_address_renewed( address_id=payment.extra["id"], duration=payment.extra["duration"] ) - await call_webhook_on_paid(payment.payment_hash) + await call_webhook_on_paid(payment_hash=payment.payment_hash) else: return