From d27ece735e2bc4b3f1272c7b33e389435cfc8aa1 Mon Sep 17 00:00:00 2001 From: Vlad Stan Date: Fri, 3 Feb 2023 17:42:10 +0200 Subject: [PATCH] fix: `NIP20` duplicate event --- client_manager.py | 10 +++++++--- tests/fixture/clients.json | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/client_manager.py b/client_manager.py index f9bd595..0e63d5f 100644 --- a/client_manager.py +++ b/client_manager.py @@ -4,7 +4,7 @@ from typing import Any, Callable, List from fastapi import WebSocket from loguru import logger -from .crud import create_event, delete_events, get_events +from .crud import create_event, delete_events, get_event, get_events from .models import NostrEvent, NostrEventType, NostrFilter @@ -81,8 +81,12 @@ class NostrClientConnection: if e.is_delete_event(): await self.__delete_event(e) resp_nip20 += [True, ""] - except Exception as ex: - resp_nip20 += [False, f"error: failed to create event"] + except ValueError: + resp_nip20 += [False, "invalid: wrong event `id` or `sig`"] + except Exception: + event = await get_event("111", e.id) + # todo: handle NIP20 in detail + resp_nip20 += [event != None, f"error: failed to create event"] await self.websocket.send_text(json.dumps(resp_nip20)) diff --git a/tests/fixture/clients.json b/tests/fixture/clients.json index 08a056e..5badd42 100644 --- a/tests/fixture/clients.json +++ b/tests/fixture/clients.json @@ -39,7 +39,7 @@ "post01_response_duplicate": [ "ok", "05741bda9079cdf66f3be977a4d31287366470d1337b1aeb09506da4fbf7cd85", - false, + true, "error: failed to create event" ], "post02": [