From a667aefe0e9c06a5935888bb931c08579c2c21a6 Mon Sep 17 00:00:00 2001 From: Believethehype <1097224+believethehype@users.noreply.github.com> Date: Fri, 24 May 2024 10:11:18 +0200 Subject: [PATCH] use pow for deletion --- nostr_dvm/utils/admin_utils.py | 3 ++- nostr_dvm/utils/nip89_utils.py | 13 ++++++++++++- setup.py | 2 +- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/nostr_dvm/utils/admin_utils.py b/nostr_dvm/utils/admin_utils.py index ec2b3ac..37b96e9 100644 --- a/nostr_dvm/utils/admin_utils.py +++ b/nostr_dvm/utils/admin_utils.py @@ -24,6 +24,7 @@ class AdminConfig: DELETEUSER: bool = False LISTDATABASE: bool = False ClEANDB: bool = False + POW: bool = False INDEX: str = "1" USERNPUBS: list = [] @@ -93,7 +94,7 @@ def admin_make_database_updates(adminconfig: AdminConfig = None, dvmconfig: DVMC event_id = adminconfig.EVENTID keys = Keys.parse( adminconfig.PRIVKEY) # Private key from sender of Event (e.g. the key of an nip89 announcement you want to delete) - fetch_nip89_parameters_for_deletion(keys, event_id, client, dvmconfig) + fetch_nip89_parameters_for_deletion(keys, event_id, client, dvmconfig, adminconfig.POW) if adminconfig.DELETE_NIP88: event_id = adminconfig.EVENTID diff --git a/nostr_dvm/utils/nip89_utils.py b/nostr_dvm/utils/nip89_utils.py index 31b76ce..a81999b 100644 --- a/nostr_dvm/utils/nip89_utils.py +++ b/nostr_dvm/utils/nip89_utils.py @@ -34,7 +34,7 @@ def nip89_announce_tasks(dvm_config, client): print("Announced NIP 89 for " + dvm_config.NIP89.NAME) -def fetch_nip89_parameters_for_deletion(keys, eventid, client, dvmconfig): +def fetch_nip89_parameters_for_deletion(keys, eventid, client, dvmconfig, pow=False): idfilter = Filter().id(EventId.from_hex(eventid)).limit(1) nip89events = client.get_events_of([idfilter], timedelta(seconds=dvmconfig.RELAY_TIMEOUT)) d_tag = "" @@ -52,6 +52,8 @@ def fetch_nip89_parameters_for_deletion(keys, eventid, client, dvmconfig): if event.author().to_hex() == keys.public_key().to_hex(): nip89_delete_announcement(event.id().to_hex(), keys, d_tag, client, dvmconfig) + if pow: + nip89_delete_announcement_pow(event.id().to_hex(), keys, d_tag, client, dvmconfig) print("NIP89 announcement deleted from known relays!") else: print("Privatekey does not belong to event") @@ -62,6 +64,15 @@ def nip89_delete_announcement(eid: str, keys: Keys, dtag: str, client: Client, c a_tag = Tag.parse( ["a", str(EventDefinitions.KIND_ANNOUNCEMENT.as_u64()) + ":" + keys.public_key().to_hex() + ":" + dtag]) event = EventBuilder(Kind(5), "", [e_tag, a_tag]).to_event(keys) + print(f"POW event: {event.as_json()}") + send_event(event, client, config) + +def nip89_delete_announcement_pow(eid: str, keys: Keys, dtag: str, client: Client, config): + e_tag = Tag.parse(["e", eid]) + a_tag = Tag.parse( + ["a", str(EventDefinitions.KIND_ANNOUNCEMENT.as_u64()) + ":" + keys.public_key().to_hex() + ":" + dtag]) + event = EventBuilder(Kind(5), "", [e_tag, a_tag]).to_pow_event(keys, 28) + print(f"POW event: {event.as_json()}") send_event(event, client, config) diff --git a/setup.py b/setup.py index dc51a4a..9e84948 100644 --- a/setup.py +++ b/setup.py @@ -1,6 +1,6 @@ from setuptools import setup, find_packages -VERSION = '0.4.6' +VERSION = '0.4.7' DESCRIPTION = 'A framework to build and run Nostr NIP90 Data Vending Machines' LONG_DESCRIPTION = ('A framework to build and run Nostr NIP90 Data Vending Machines. See the github repository for more information')