From efb2eef32371a2837c0377708d13bff915958f55 Mon Sep 17 00:00:00 2001 From: Vlad Stan Date: Wed, 7 Aug 2024 17:26:20 +0300 Subject: [PATCH] fix: nostr zaps (#63) --- nostr/key.py | 3 +-- tasks.py | 9 ++++++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/nostr/key.py b/nostr/key.py index 8ac3680..6713b64 100644 --- a/nostr/key.py +++ b/nostr/key.py @@ -91,9 +91,8 @@ class PrivateKey: def encrypt_dm(self, dm: EncryptedDirectMessage) -> None: assert dm.recipient_pubkey, "Recipient public key must be set" - assert dm.cleartext_content, "Cleartext content must be set" dm.content = self.encrypt_message( - message=dm.cleartext_content, public_key_hex=dm.recipient_pubkey + message=dm.cleartext_content or "", public_key_hex=dm.recipient_pubkey ) def decrypt_message(self, encoded_message: str, public_key_hex: str) -> str: diff --git a/tasks.py b/tasks.py index 71b450f..c695f5a 100644 --- a/tasks.py +++ b/tasks.py @@ -125,8 +125,15 @@ async def send_zap(payment: Payment): tags.append([t, tag[0]]) tags.append(["bolt11", payment.bolt11]) tags.append(["description", nostr]) + + pubkey = next((pk[1] for pk in tags if pk[0] == "p"), None) + assert pubkey, "Cannot create zap receipt. Recepient pubkey is missing." zap_receipt = EncryptedDirectMessage( - kind=9735, tags=tags, content=payment.extra.get("comment") or "" + kind=9735, + recipient_pubkey=pubkey, + tags=tags, + content=payment.extra.get("comment") or "", + cleartext_content=payment.extra.get("comment") or "", ) settings = await get_or_create_lnurlp_settings()