From 0513dcfabdecf317021e4c49fd7cee344ce26b27 Mon Sep 17 00:00:00 2001
From: Believethehype <tobias_baur@yahoo.com>
Date: Fri, 19 Jan 2024 18:19:28 +0100
Subject: [PATCH] update to nostrsdk080

---
 examples/ollama_dvm/test_client.py            |  2 +-
 examples/tts_dvm/test_client.py               |  2 +-
 nostr_dvm/bot.py                              | 48 +++++++++----------
 nostr_dvm/dvm.py                              | 18 +++----
 nostr_dvm/tasks/discovery_inactive_follows.py |  2 +-
 nostr_dvm/utils/database_utils.py             |  2 +-
 nostr_dvm/utils/nip89_utils.py                | 10 ++--
 nostr_dvm/utils/nostr_utils.py                |  6 +--
 nostr_dvm/utils/zap_utils.py                  | 12 ++---
 setup.py                                      |  6 +--
 tests/gui/nicegui/nostrAI_search_client.py    |  4 +-
 tests/test_dvm_client.py                      |  2 +-
 12 files changed, 57 insertions(+), 57 deletions(-)

diff --git a/examples/ollama_dvm/test_client.py b/examples/ollama_dvm/test_client.py
index 183143e..b16aa35 100644
--- a/examples/ollama_dvm/test_client.py
+++ b/examples/ollama_dvm/test_client.py
@@ -68,7 +68,7 @@ def nostr_client():
                 print("[Nostr Client]: " + event.content())
 
             elif event.kind() == 4:
-                dec_text = nip04_decrypt(sk, event.pubkey(), event.content())
+                dec_text = nip04_decrypt(sk, event.author(), event.content())
                 print("[Nostr Client]: " + f"Received new msg: {dec_text}")
 
             elif event.kind() == 9735:
diff --git a/examples/tts_dvm/test_client.py b/examples/tts_dvm/test_client.py
index 88b6e61..bd211f3 100644
--- a/examples/tts_dvm/test_client.py
+++ b/examples/tts_dvm/test_client.py
@@ -75,7 +75,7 @@ def nostr_client():
                 print("[Nostr Client]: " + event.content())
 
             elif event.kind() == 4:
-                dec_text = nip04_decrypt(sk, event.pubkey(), event.content())
+                dec_text = nip04_decrypt(sk, event.author(), event.content())
                 print("[Nostr Client]: " + f"Received new msg: {dec_text}")
 
             elif event.kind() == 9735:
diff --git a/nostr_dvm/bot.py b/nostr_dvm/bot.py
index 336e96f..cde4ece 100644
--- a/nostr_dvm/bot.py
+++ b/nostr_dvm/bot.py
@@ -83,12 +83,12 @@ class Bot:
                 return
 
         def handle_dm(nostr_event):
-            sender = nostr_event.pubkey().to_hex()
+            sender = nostr_event.author().to_hex()
             if sender == self.keys.public_key().to_hex():
                 return
 
             try:
-                decrypted_text = nip04_decrypt(self.keys.secret_key(), nostr_event.pubkey(), nostr_event.content())
+                decrypted_text = nip04_decrypt(self.keys.secret_key(), nostr_event.author(), nostr_event.content())
                 user = get_or_add_user(db=self.dvm_config.DB, npub=sender, client=self.client, config=self.dvm_config)
                 print("[" + self.NAME + "] Message from " + user.name + ": " + decrypted_text)
 
@@ -152,7 +152,7 @@ class Bot:
 
                 elif decrypted_text.lower().startswith("balance"):
                     time.sleep(3.0)
-                    evt = EventBuilder.new_encrypted_direct_msg(self.keys, nostr_event.pubkey(),
+                    evt = EventBuilder.encrypted_direct_msg(self.keys, nostr_event.author(),
                                                                 "Your current balance is " + str(
                                                                     user.balance) + " Sats. Zap me to add to your balance. I will use your balance interact with the DVMs for you.\n"
                                                                                     "I support both public and private Zaps, as well as Zapplepay.\n"
@@ -172,12 +172,12 @@ class Bot:
                     else:
                         time.sleep(2.0)
                         message = "Error: " + cashu_message + ". Token has not been redeemed."
-                        evt = EventBuilder.new_encrypted_direct_msg(self.keys, PublicKey.from_hex(sender), message,
+                        evt = EventBuilder.encrypted_direct_msg(self.keys, PublicKey.from_hex(sender), message,
                                                                     None).to_event(self.keys)
                         send_event(evt, client=self.client, dvm_config=self.dvm_config)
                 elif decrypted_text.lower().startswith("what's the second best"):
                     time.sleep(3.0)
-                    evt = EventBuilder.new_encrypted_direct_msg(self.keys, nostr_event.pubkey(),
+                    evt = EventBuilder.encrypted_direct_msg(self.keys, nostr_event.author(),
                                                                 "No, there is no second best.\n\nhttps://cdn.nostr.build/p/mYLv.mp4",
                                                                 nostr_event.id()).to_event(self.keys)
                     send_event(evt, client=self.client, dvm_config=self.dvm_config)
@@ -212,7 +212,7 @@ class Bot:
                 if is_encrypted:
                     if ptag == self.keys.public_key().to_hex():
                         tags_str = nip04_decrypt(Keys.from_sk_str(dvm_config.PRIVATE_KEY).secret_key(),
-                                                 nostr_event.pubkey(), nostr_event.content())
+                                                 nostr_event.author(), nostr_event.content())
                         params = json.loads(tags_str)
                         params.append(Tag.parse(["p", ptag]).as_vec())
                         params.append(Tag.parse(["encrypted"]).as_vec())
@@ -236,17 +236,17 @@ class Bot:
 
                 if status == "success" or status == "error" or status == "processing" or status == "partial" and content != "":
                     entry = next((x for x in self.job_list if x['event_id'] == etag), None)
-                    if entry is not None and entry['dvm_key'] == nostr_event.pubkey().to_hex():
+                    if entry is not None and entry['dvm_key'] == nostr_event.author().to_hex():
                         user = get_or_add_user(db=self.dvm_config.DB, npub=entry['npub'],
                                                client=self.client, config=self.dvm_config)
                         time.sleep(2.0)
-                        reply_event = EventBuilder.new_encrypted_direct_msg(self.keys,
+                        reply_event = EventBuilder.encrypted_direct_msg(self.keys,
                                                                             PublicKey.from_hex(entry['npub']),
                                                                             content,
                                                                             None).to_event(self.keys)
                         print(status + ": " + content)
                         print(
-                            "[" + self.NAME + "] Received reaction from " + nostr_event.pubkey().to_hex() + " message to orignal sender " + user.name)
+                            "[" + self.NAME + "] Received reaction from " + nostr_event.author().to_hex() + " message to orignal sender " + user.name)
                         send_event(reply_event, client=self.client, dvm_config=dvm_config)
 
                 elif status == "payment-required" or status == "partial":
@@ -256,7 +256,7 @@ class Bot:
                             amount = int(amount_msats / 1000)
                             entry = next((x for x in self.job_list if x['event_id'] == etag), None)
                             if entry is not None and entry['is_paid'] is False and entry[
-                                'dvm_key'] == nostr_event.pubkey().to_hex():
+                                'dvm_key'] == nostr_event.author().to_hex():
                                 # if we get a bolt11, we pay and move on
                                 user = get_or_add_user(db=self.dvm_config.DB, npub=entry["npub"],
                                                        client=self.client, config=self.dvm_config)
@@ -266,7 +266,7 @@ class Bot:
                                                      iswhitelisted=user.iswhitelisted, isblacklisted=user.isblacklisted,
                                                      nip05=user.nip05, lud16=user.lud16, name=user.name,
                                                      lastactive=Timestamp.now().as_secs())
-                                    evt = EventBuilder.new_encrypted_direct_msg(self.keys,
+                                    evt = EventBuilder.encrypted_direct_msg(self.keys,
                                                                                 PublicKey.from_hex(entry["npub"]),
                                                                                 "Paid " + str(
                                                                                     amount) + " Sats from balance to DVM. New balance is " +
@@ -280,7 +280,7 @@ class Bot:
                                 else:
                                     print("Bot payment-required")
                                     time.sleep(2.0)
-                                    evt = EventBuilder.new_encrypted_direct_msg(self.keys,
+                                    evt = EventBuilder.encrypted_direct_msg(self.keys,
                                                                                 PublicKey.from_hex(entry["npub"]),
                                                                                 "Current balance: " + str(
                                                                                     user.balance) + " Sats. Balance of " + str(
@@ -295,7 +295,7 @@ class Bot:
                                     bolt11 = tag.as_vec()[2]
                                 # else we create a zap
                                 else:
-                                    user = get_or_add_user(db=self.dvm_config.DB, npub=nostr_event.pubkey().to_hex(),
+                                    user = get_or_add_user(db=self.dvm_config.DB, npub=nostr_event.author().to_hex(),
                                                            client=self.client, config=self.dvm_config)
                                     print("Paying: " + user.name)
                                     bolt11 = zaprequest(user.lud16, amount, "Zap", nostr_event, self.keys,
@@ -332,7 +332,7 @@ class Bot:
 
                 entry = next((x for x in self.job_list if x['event_id'] == etag), None)
                 if entry is not None and entry[
-                    'dvm_key'] == nostr_event.pubkey().to_hex():
+                    'dvm_key'] == nostr_event.author().to_hex():
                     print(entry)
                     user = get_or_add_user(db=self.dvm_config.DB, npub=entry['npub'],
                                            client=self.client, config=self.dvm_config)
@@ -341,12 +341,12 @@ class Bot:
                     content = nostr_event.content()
                     if is_encrypted:
                         if ptag == self.keys.public_key().to_hex():
-                            content = nip04_decrypt(self.keys.secret_key(), nostr_event.pubkey(), content)
+                            content = nip04_decrypt(self.keys.secret_key(), nostr_event.author(), content)
                         else:
                             return
 
                     dvms = [x for x in self.dvm_config.SUPPORTED_DVMS if
-                            x.PUBLIC_KEY == nostr_event.pubkey().to_hex() and x.KIND == nostr_event.kind() - 1000]
+                            x.PUBLIC_KEY == nostr_event.author().to_hex() and x.KIND == nostr_event.kind() - 1000]
                     if len(dvms) > 0:
                         dvm = dvms[0]
                         if dvm.dvm_config.EXTERNAL_POST_PROCESS_TYPE != PostProcessFunctionType.NONE:
@@ -357,7 +357,7 @@ class Bot:
 
                     print("[" + self.NAME + "] Received results, message to orignal sender " + user.name)
                     time.sleep(1.0)
-                    reply_event = EventBuilder.new_encrypted_direct_msg(self.keys,
+                    reply_event = EventBuilder.encrypted_direct_msg(self.keys,
                                                                         PublicKey.from_hex(user.npub),
                                                                         content,
                                                                         None).to_event(self.keys)
@@ -383,8 +383,8 @@ class Bot:
                 entry = next((x for x in self.job_list if x['event_id'] == etag), None)
                 print(entry)
                 # print(entry['dvm_key'])
-                # print(str(zapped_event.pubkey().to_hex()))
-                # print(str(zap_event.pubkey().to_hex()))
+                # print(str(zapped_event.author().to_hex()))
+                # print(str(zap_event.author().to_hex()))
                 print(sender)
                 if entry is not None and entry['is_paid'] is True and entry['dvm_key'] == sender:
                     # if we get a bolt11, we pay and move on
@@ -425,7 +425,7 @@ class Bot:
                 index += 1
 
             time.sleep(3.0)
-            evt = EventBuilder.new_encrypted_direct_msg(self.keys, nostr_event.pubkey(),
+            evt = EventBuilder.encrypted_direct_msg(self.keys, nostr_event.author(),
                                                         message + "\nSelect an Index and provide an input ("
                                                                   "e.g. \"2 A purple ostrich\")\nType \"index info\" to learn "
                                                                   "more about each DVM. (e.g. \"2 info\")\n\n"
@@ -436,7 +436,7 @@ class Bot:
 
         def answer_blacklisted(nostr_event):
             # For some reason an admin might blacklist npubs, e.g. for abusing the service
-            evt = EventBuilder.new_encrypted_direct_msg(self.keys, nostr_event.pubkey(),
+            evt = EventBuilder.encrypted_direct_msg(self.keys, nostr_event.author(),
                                                         "Your are currently blocked from all "
                                                         "services.", None).to_event(self.keys)
             send_event(evt, client=self.client, dvm_config=dvm_config)
@@ -445,10 +445,10 @@ class Bot:
             info = print_dvm_info(self.client, index)
             time.sleep(2.0)
             if info is not None:
-                evt = EventBuilder.new_encrypted_direct_msg(self.keys, nostr_event.pubkey(),
+                evt = EventBuilder.encrypted_direct_msg(self.keys, nostr_event.author(),
                                                             info, None).to_event(self.keys)
             else:
-                evt = EventBuilder.new_encrypted_direct_msg(self.keys, nostr_event.pubkey(),
+                evt = EventBuilder.encrypted_direct_msg(self.keys, nostr_event.author(),
                                                             "No NIP89 Info found for " +
                                                             self.dvm_config.SUPPORTED_DVMS[index].NAME,
                                                             None).to_event(self.keys)
@@ -463,7 +463,7 @@ class Bot:
             if len(split) == 1:
                 remaining_text = decrypted_text.replace(split[0], "")
                 params = remaining_text.split(" -")
-                tag = Tag.parse(["param", "user", nostr_event.pubkey().to_hex()])
+                tag = Tag.parse(["param", "user", nostr_event.author().to_hex()])
                 tags.append(tag)
                 for i in params:
                     print(i)
diff --git a/nostr_dvm/dvm.py b/nostr_dvm/dvm.py
index 3cd598a..4378850 100644
--- a/nostr_dvm/dvm.py
+++ b/nostr_dvm/dvm.py
@@ -89,7 +89,7 @@ class DVM:
             if nip90_event is None:
                 return
 
-            user = get_or_add_user(self.dvm_config.DB, nip90_event.pubkey().to_hex(), client=self.client,
+            user = get_or_add_user(self.dvm_config.DB, nip90_event.author().to_hex(), client=self.client,
                                    config=self.dvm_config)
             cashu = ""
             p_tag_str = ""
@@ -334,12 +334,12 @@ class DVM:
                                                      dvm_config=self.dvm_config,
                                                      )
                             if amount > 0 and self.dvm_config.LNBITS_ADMIN_KEY != "":
-                                user = get_or_add_user(self.dvm_config.DB, original_event.pubkey().to_hex(),
+                                user = get_or_add_user(self.dvm_config.DB, original_event.author().to_hex(),
                                                        client=self.client, config=self.dvm_config)
                                 print(user.lud16 + " " + str(amount))
                                 bolt11 = zaprequest(user.lud16, amount, "Couldn't finish job, returning sats",
-                                                    original_event,
-                                                    self.keys, self.dvm_config, zaptype="private")
+                                                    original_event, "",
+                                                    self.keys, self.dvm_config.RELAY_LIST, zaptype="private")
                                 if bolt11 is None:
                                     print("Receiver has no Lightning address, can't zap back.")
                                     return
@@ -352,7 +352,7 @@ class DVM:
             original_event = Event.from_json(original_event_as_str)
             request_tag = Tag.parse(["request", original_event_as_str])
             e_tag = Tag.parse(["e", original_event.id().to_hex()])
-            p_tag = Tag.parse(["p", original_event.pubkey().to_hex()])
+            p_tag = Tag.parse(["p", original_event.author().to_hex()])
             alt_tag = Tag.parse(["alt", "This is the result of a NIP90 DVM AI task with kind " + str(
                 original_event.kind()) + ". The task was: " + original_event.content()])
             status_tag = Tag.parse(["status", "success"])
@@ -372,7 +372,7 @@ class DVM:
 
             if encrypted:
                 print(content)
-                content = nip04_encrypt(self.keys.secret_key(), PublicKey.from_hex(original_event.pubkey().to_hex()),
+                content = nip04_encrypt(self.keys.secret_key(), PublicKey.from_hex(original_event.author().to_hex()),
                                         content)
 
             reply_event = EventBuilder(original_event.kind() + 1000, str(content), reply_tags).to_event(self.keys)
@@ -389,7 +389,7 @@ class DVM:
             alt_description, reaction = build_status_reaction(status, task, amount, content)
 
             e_tag = Tag.parse(["e", original_event.id().to_hex()])
-            p_tag = Tag.parse(["p", original_event.pubkey().to_hex()])
+            p_tag = Tag.parse(["p", original_event.author().to_hex()])
             alt_tag = Tag.parse(["alt", alt_description])
             status_tag = Tag.parse(["status", status])
             reply_tags = [e_tag, alt_tag, status_tag]
@@ -464,7 +464,7 @@ class DVM:
                     str_tags.append(element.as_vec())
 
                 content = json.dumps(str_tags)
-                content = nip04_encrypt(self.keys.secret_key(), PublicKey.from_hex(original_event.pubkey().to_hex()),
+                content = nip04_encrypt(self.keys.secret_key(), PublicKey.from_hex(original_event.author().to_hex()),
                                         content)
                 reply_tags = encryption_tags
 
@@ -527,7 +527,7 @@ class DVM:
                                                  dvm_config=self.dvm_config)
                         # Zapping back the user on error
                         if amount > 0 and self.dvm_config.LNBITS_ADMIN_KEY != "":
-                            user = get_or_add_user(self.dvm_config.DB, job_event.pubkey().to_hex(),
+                            user = get_or_add_user(self.dvm_config.DB, job_event.author().to_hex(),
                                                    client=self.client, config=self.dvm_config)
                             print(user.lud16 + " " + str(amount))
                             bolt11 = zaprequest(user.lud16, amount, "Couldn't finish job, returning sats", job_event, user.npub,
diff --git a/nostr_dvm/tasks/discovery_inactive_follows.py b/nostr_dvm/tasks/discovery_inactive_follows.py
index d5e5283..13a17d8 100644
--- a/nostr_dvm/tasks/discovery_inactive_follows.py
+++ b/nostr_dvm/tasks/discovery_inactive_follows.py
@@ -43,7 +43,7 @@ class DiscoverInactiveFollows(DVMTaskInterface):
         request_form = {"jobID": event.id().to_hex()}
 
         # default values
-        user = event.pubkey().to_hex()
+        user = event.author().to_hex()
         since_days = 90
 
         for tag in event.tags():
diff --git a/nostr_dvm/utils/database_utils.py b/nostr_dvm/utils/database_utils.py
index 0572647..16e9250 100644
--- a/nostr_dvm/utils/database_utils.py
+++ b/nostr_dvm/utils/database_utils.py
@@ -179,7 +179,7 @@ def update_user_balance(db, npub, additional_sats, client, config):
 
             message = ("Added " + str(additional_sats) + " Sats to balance. New balance is " + str(new_balance) + " Sats.")
 
-            evt = EventBuilder.new_encrypted_direct_msg(keys, PublicKey.from_hex(npub), message,
+            evt = EventBuilder.encrypted_direct_msg(keys, PublicKey.from_hex(npub), message,
                                                         None).to_event(keys)
             send_event(evt, client=client, dvm_config=config)
 
diff --git a/nostr_dvm/utils/nip89_utils.py b/nostr_dvm/utils/nip89_utils.py
index 5db4530..37d5f98 100644
--- a/nostr_dvm/utils/nip89_utils.py
+++ b/nostr_dvm/utils/nip89_utils.py
@@ -50,7 +50,7 @@ def fetch_nip89_paramters_for_deletion(keys, eventid, client, dvmconfig):
             print("No dtag found")
             return
 
-        if event.pubkey().to_hex() == keys.public_key().to_hex():
+        if event.author().to_hex() == keys.public_key().to_hex():
             nip89_delete_announcement(event.id().to_hex(), keys, d_tag, client, dvmconfig)
             print("NIP89 announcement deleted from known relays!")
         else:
@@ -85,11 +85,11 @@ def nip89_fetch_events_pubkey(client, pubkey, kind):
 
     dvms = {}
     for event in events:
-        if dvms.get(event.pubkey().to_hex()):
-            if dvms.get(event.pubkey().to_hex()).created_at().as_secs() < event.created_at().as_secs():
-                dvms[event.pubkey().to_hex()] = event
+        if dvms.get(event.author().to_hex()):
+            if dvms.get(event.author().to_hex()).created_at().as_secs() < event.created_at().as_secs():
+                dvms[event.author().to_hex()] = event
         else:
-            dvms[event.pubkey().to_hex()] = event
+            dvms[event.author().to_hex()] = event
 
     # should be one element of the kind now
     for dvm in dvms:
diff --git a/nostr_dvm/utils/nostr_utils.py b/nostr_dvm/utils/nostr_utils.py
index f0a1af0..0d1a2b4 100644
--- a/nostr_dvm/utils/nostr_utils.py
+++ b/nostr_dvm/utils/nostr_utils.py
@@ -117,7 +117,7 @@ def check_and_decrypt_tags(event, dvm_config):
 
             elif p == dvm_config.PUBLIC_KEY:
                 tags_str = nip04_decrypt(Keys.from_sk_str(dvm_config.PRIVATE_KEY).secret_key(),
-                                         event.pubkey(), event.content())
+                                         event.author(), event.content())
                 params = json.loads(tags_str)
                 params.append(Tag.parse(["p", p]).as_vec())
                 params.append(Tag.parse(["encrypted"]).as_vec())
@@ -142,12 +142,12 @@ def check_and_decrypt_own_tags(event, dvm_config):
                 p = tag.as_vec()[1]
 
         if is_encrypted:
-            if dvm_config.PUBLIC_KEY != event.pubkey().to_hex():
+            if dvm_config.PUBLIC_KEY != event.author().to_hex():
                 print("[" + dvm_config.NIP89.NAME + "] Task encrypted and not addressed to this DVM, "
                                                     "skipping..")
                 return None
 
-            elif event.pubkey().to_hex() == dvm_config.PUBLIC_KEY:
+            elif event.author().to_hex() == dvm_config.PUBLIC_KEY:
                 tags_str = nip04_decrypt(Keys.from_sk_str(dvm_config.PRIVATE_KEY).secret_key(),
                                          PublicKey.from_hex(p), event.content())
                 params = json.loads(tags_str)
diff --git a/nostr_dvm/utils/zap_utils.py b/nostr_dvm/utils/zap_utils.py
index 6c1ea21..c369552 100644
--- a/nostr_dvm/utils/zap_utils.py
+++ b/nostr_dvm/utils/zap_utils.py
@@ -29,7 +29,7 @@ def parse_zap_event_tags(zap_event, keys, name, client, config):
     invoice_amount = 0
     anon = False
     message = ""
-    sender = zap_event.pubkey()
+    sender = zap_event.author()
     for tag in zap_event.tags():
         if tag.as_vec()[0] == 'bolt11':
             invoice_amount = parse_amount_from_bolt11_invoice(tag.as_vec()[1])
@@ -40,7 +40,7 @@ def parse_zap_event_tags(zap_event, keys, name, client, config):
             p_tag = tag.as_vec()[1]
         elif tag.as_vec()[0] == 'description':
             zap_request_event = Event.from_json(tag.as_vec()[1])
-            sender = check_for_zapplepay(zap_request_event.pubkey().to_hex(),
+            sender = check_for_zapplepay(zap_request_event.author().to_hex(),
                                          zap_request_event.content())
             for z_tag in zap_request_event.tags():
                 if z_tag.as_vec()[0] == 'anon':
@@ -48,10 +48,10 @@ def parse_zap_event_tags(zap_event, keys, name, client, config):
                         # print("[" + name + "] Private Zap received.")
                         decrypted_content = decrypt_private_zap_message(z_tag.as_vec()[1],
                                                                         keys.secret_key(),
-                                                                        zap_request_event.pubkey())
+                                                                        zap_request_event.author())
                         decrypted_private_event = Event.from_json(decrypted_content)
                         if decrypted_private_event.kind() == 9733:
-                            sender = decrypted_private_event.pubkey().to_hex()
+                            sender = decrypted_private_event.author().to_hex()
                             message = decrypted_private_event.content()
                             # if message != "":
                             #    print("Zap Message: " + message)
@@ -255,7 +255,7 @@ def zaprequest(lud16: str, amount: int, content, zapped_event, zapped_user, keys
         relays_tag = Tag.parse(['relays', str(relay_list)])
         lnurl_tag = Tag.parse(['lnurl', encoded_lnurl])
         if zapped_event is not None:
-            p_tag = Tag.parse(['p', zapped_event.pubkey().to_hex()])
+            p_tag = Tag.parse(['p', zapped_event.author().to_hex()])
             e_tag = Tag.parse(['e', zapped_event.id().to_hex()])
             tags = [amount_tag, relays_tag, p_tag, e_tag, lnurl_tag]
         else:
@@ -270,7 +270,7 @@ def zaprequest(lud16: str, amount: int, content, zapped_event, zapped_user, keys
             zap_request = EventBuilder(9733, content,
                                        [p_tag, e_tag]).to_event(keys).as_json()
             keys = Keys.from_sk_str(encryption_key)
-            encrypted_content = enrypt_private_zap_message(zap_request, keys.secret_key(), zapped_event.pubkey())
+            encrypted_content = enrypt_private_zap_message(zap_request, keys.secret_key(), zapped_event.author())
             anon_tag = Tag.parse(['anon', encrypted_content])
             tags.append(anon_tag)
             content = ""
diff --git a/setup.py b/setup.py
index 2b8418d..45d3363 100644
--- a/setup.py
+++ b/setup.py
@@ -1,6 +1,6 @@
 from setuptools import setup, find_packages
 
-VERSION = '0.2.0'
+VERSION = '0.2.1'
 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. '
                     'This is an early stage release. Interfaces might change/brick')
@@ -15,9 +15,9 @@ setup(
     long_description=LONG_DESCRIPTION,
     packages=find_packages(include=['nostr_dvm', 'nostr_dvm.*']),
 
-    install_requires=["nostr-sdk==0.7.1",
+    install_requires=["nostr-sdk==0.8.0",
                       "bech32",
-                      "pycryptodome==3.19.0",
+                      "pycryptodome==3.20.0",
                       "python-dotenv==1.0.0",
                       "emoji==2.8.0",
                       "eva-decord==0.6.1",
diff --git a/tests/gui/nicegui/nostrAI_search_client.py b/tests/gui/nicegui/nostrAI_search_client.py
index d6deecb..9d12805 100644
--- a/tests/gui/nicegui/nostrAI_search_client.py
+++ b/tests/gui/nicegui/nostrAI_search_client.py
@@ -104,9 +104,9 @@ def init():
 
                 listui = []
                 for event in events:
-                    nip19event = Nip19Event(event.id(), event.pubkey(), dvmconfig.DVMConfig.RELAY_LIST)
+                    nip19event = Nip19Event(event.id(), event.author(), dvmconfig.DVMConfig.RELAY_LIST)
                     nip19eventid = nip19event.to_bech32()
-                    new = {'result': event.content(), 'author': event.pubkey().to_hex(),
+                    new = {'result': event.content(), 'author': event.author().to_hex(),
                            'eventid': str(event.id().to_hex()),
                            'time': str(event.created_at().to_human_datetime()),
                            'njump': "https://njump.me/" + nip19eventid,
diff --git a/tests/test_dvm_client.py b/tests/test_dvm_client.py
index 349bf60..7f13627 100644
--- a/tests/test_dvm_client.py
+++ b/tests/test_dvm_client.py
@@ -174,7 +174,7 @@ def nostr_client():
                 print("[Nostr Client]: " + event.content())
 
             elif event.kind() == 4:
-                dec_text = nip04_decrypt(sk, event.pubkey(), event.content())
+                dec_text = nip04_decrypt(sk, event.author(), event.content())
                 print("[Nostr Client]: " + f"Received new msg: {dec_text}")
 
             elif event.kind() == 9735: