diff --git a/crud.py b/crud.py index 31495ac..8667a09 100644 --- a/crud.py +++ b/crud.py @@ -95,12 +95,6 @@ async def check_lnaddress_format(username: str) -> bool: return True # async def get_wallet_key(wallet_id: str) -> str: -# row = await maindb.fetchone("SELECT inkey FROM wallets WHERE id = ?", (wallet_id,)) -# if row is not None: -# return row[0] -# else: -# assert False, "Cannot locate wallet invoice key" -# return async def get_address_data(username: str) -> Optional[PayLink]: row = await db.fetchone( diff --git a/migrations.py b/migrations.py index 1ec85eb..d3ec18a 100644 --- a/migrations.py +++ b/migrations.py @@ -10,7 +10,8 @@ async def m001_initial(db): description TEXT NOT NULL, amount {db.big_int} NOT NULL, served_meta INTEGER NOT NULL, - served_pr INTEGER NOT NULL + served_pr INTEGER NOT NULL, + username TEXT ); """ ) @@ -97,7 +98,8 @@ async def m006_redux(db): success_url TEXT, comment_chars INTEGER DEFAULT 0, webhook_headers TEXT, - webhook_body TEXT + webhook_body TEXT, + username TEXT ); """ ) @@ -122,9 +124,10 @@ async def m006_redux(db): max, fiat_base_multiplier, webhook_headers, - webhook_body + webhook_body, + username ) - VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) """, ( row[0], @@ -142,6 +145,7 @@ async def m006_redux(db): row[12], row[13], row[14], + row[15], ), ) diff --git a/models.py b/models.py index de66d40..f8c6d98 100644 --- a/models.py +++ b/models.py @@ -23,6 +23,7 @@ class CreatePayLinkData(BaseModel): success_text: str = Query(None) success_url: str = Query(None) fiat_base_multiplier: int = Query(100, ge=1) + username: str = Query(None) class PayLink(BaseModel): @@ -41,6 +42,7 @@ class PayLink(BaseModel): comment_chars: int max: float fiat_base_multiplier: int + username: str @classmethod def from_row(cls, row: Row) -> "PayLink": @@ -73,3 +75,10 @@ class PayLink(BaseModel): return {"tag": "message", "message": self.success_text} else: return None + + async def lnurlpay_metadata(self, domain) -> LnurlPayMetadata: + text = f"Payment to {self.lnaddress}" + identifier = f"{self.lnaddress}@{domain}" + metadata = [["text/plain", text], ["text/identifier", identifier]] + + return LnurlPayMetadata(json.dumps(metadata))