update to nostrsdk080

This commit is contained in:
Believethehype 2024-01-19 18:19:28 +01:00
parent b26851337e
commit 0513dcfabd
12 changed files with 57 additions and 57 deletions

View File

@ -68,7 +68,7 @@ def nostr_client():
print("[Nostr Client]: " + event.content()) print("[Nostr Client]: " + event.content())
elif event.kind() == 4: 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}") print("[Nostr Client]: " + f"Received new msg: {dec_text}")
elif event.kind() == 9735: elif event.kind() == 9735:

View File

@ -75,7 +75,7 @@ def nostr_client():
print("[Nostr Client]: " + event.content()) print("[Nostr Client]: " + event.content())
elif event.kind() == 4: 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}") print("[Nostr Client]: " + f"Received new msg: {dec_text}")
elif event.kind() == 9735: elif event.kind() == 9735:

View File

@ -83,12 +83,12 @@ class Bot:
return return
def handle_dm(nostr_event): 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(): if sender == self.keys.public_key().to_hex():
return return
try: 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) 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) print("[" + self.NAME + "] Message from " + user.name + ": " + decrypted_text)
@ -152,7 +152,7 @@ class Bot:
elif decrypted_text.lower().startswith("balance"): elif decrypted_text.lower().startswith("balance"):
time.sleep(3.0) 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( "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" 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" "I support both public and private Zaps, as well as Zapplepay.\n"
@ -172,12 +172,12 @@ class Bot:
else: else:
time.sleep(2.0) time.sleep(2.0)
message = "Error: " + cashu_message + ". Token has not been redeemed." 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) None).to_event(self.keys)
send_event(evt, client=self.client, dvm_config=self.dvm_config) send_event(evt, client=self.client, dvm_config=self.dvm_config)
elif decrypted_text.lower().startswith("what's the second best"): elif decrypted_text.lower().startswith("what's the second best"):
time.sleep(3.0) 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", "No, there is no second best.\n\nhttps://cdn.nostr.build/p/mYLv.mp4",
nostr_event.id()).to_event(self.keys) nostr_event.id()).to_event(self.keys)
send_event(evt, client=self.client, dvm_config=self.dvm_config) send_event(evt, client=self.client, dvm_config=self.dvm_config)
@ -212,7 +212,7 @@ class Bot:
if is_encrypted: if is_encrypted:
if ptag == self.keys.public_key().to_hex(): if ptag == self.keys.public_key().to_hex():
tags_str = nip04_decrypt(Keys.from_sk_str(dvm_config.PRIVATE_KEY).secret_key(), 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 = json.loads(tags_str)
params.append(Tag.parse(["p", ptag]).as_vec()) params.append(Tag.parse(["p", ptag]).as_vec())
params.append(Tag.parse(["encrypted"]).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 != "": 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) 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'], user = get_or_add_user(db=self.dvm_config.DB, npub=entry['npub'],
client=self.client, config=self.dvm_config) client=self.client, config=self.dvm_config)
time.sleep(2.0) 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']), PublicKey.from_hex(entry['npub']),
content, content,
None).to_event(self.keys) None).to_event(self.keys)
print(status + ": " + content) print(status + ": " + content)
print( 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) send_event(reply_event, client=self.client, dvm_config=dvm_config)
elif status == "payment-required" or status == "partial": elif status == "payment-required" or status == "partial":
@ -256,7 +256,7 @@ class Bot:
amount = int(amount_msats / 1000) amount = int(amount_msats / 1000)
entry = next((x for x in self.job_list if x['event_id'] == etag), None) 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[ 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 # if we get a bolt11, we pay and move on
user = get_or_add_user(db=self.dvm_config.DB, npub=entry["npub"], user = get_or_add_user(db=self.dvm_config.DB, npub=entry["npub"],
client=self.client, config=self.dvm_config) client=self.client, config=self.dvm_config)
@ -266,7 +266,7 @@ class Bot:
iswhitelisted=user.iswhitelisted, isblacklisted=user.isblacklisted, iswhitelisted=user.iswhitelisted, isblacklisted=user.isblacklisted,
nip05=user.nip05, lud16=user.lud16, name=user.name, nip05=user.nip05, lud16=user.lud16, name=user.name,
lastactive=Timestamp.now().as_secs()) 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"]), PublicKey.from_hex(entry["npub"]),
"Paid " + str( "Paid " + str(
amount) + " Sats from balance to DVM. New balance is " + amount) + " Sats from balance to DVM. New balance is " +
@ -280,7 +280,7 @@ class Bot:
else: else:
print("Bot payment-required") print("Bot payment-required")
time.sleep(2.0) time.sleep(2.0)
evt = EventBuilder.new_encrypted_direct_msg(self.keys, evt = EventBuilder.encrypted_direct_msg(self.keys,
PublicKey.from_hex(entry["npub"]), PublicKey.from_hex(entry["npub"]),
"Current balance: " + str( "Current balance: " + str(
user.balance) + " Sats. Balance of " + str( user.balance) + " Sats. Balance of " + str(
@ -295,7 +295,7 @@ class Bot:
bolt11 = tag.as_vec()[2] bolt11 = tag.as_vec()[2]
# else we create a zap # else we create a zap
else: 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) client=self.client, config=self.dvm_config)
print("Paying: " + user.name) print("Paying: " + user.name)
bolt11 = zaprequest(user.lud16, amount, "Zap", nostr_event, self.keys, 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) entry = next((x for x in self.job_list if x['event_id'] == etag), None)
if entry is not None and entry[ if entry is not None and entry[
'dvm_key'] == nostr_event.pubkey().to_hex(): 'dvm_key'] == nostr_event.author().to_hex():
print(entry) print(entry)
user = get_or_add_user(db=self.dvm_config.DB, npub=entry['npub'], user = get_or_add_user(db=self.dvm_config.DB, npub=entry['npub'],
client=self.client, config=self.dvm_config) client=self.client, config=self.dvm_config)
@ -341,12 +341,12 @@ class Bot:
content = nostr_event.content() content = nostr_event.content()
if is_encrypted: if is_encrypted:
if ptag == self.keys.public_key().to_hex(): 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: else:
return return
dvms = [x for x in self.dvm_config.SUPPORTED_DVMS if 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: if len(dvms) > 0:
dvm = dvms[0] dvm = dvms[0]
if dvm.dvm_config.EXTERNAL_POST_PROCESS_TYPE != PostProcessFunctionType.NONE: 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) print("[" + self.NAME + "] Received results, message to orignal sender " + user.name)
time.sleep(1.0) 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), PublicKey.from_hex(user.npub),
content, content,
None).to_event(self.keys) 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) entry = next((x for x in self.job_list if x['event_id'] == etag), None)
print(entry) print(entry)
# print(entry['dvm_key']) # print(entry['dvm_key'])
# print(str(zapped_event.pubkey().to_hex())) # print(str(zapped_event.author().to_hex()))
# print(str(zap_event.pubkey().to_hex())) # print(str(zap_event.author().to_hex()))
print(sender) print(sender)
if entry is not None and entry['is_paid'] is True and entry['dvm_key'] == 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 # if we get a bolt11, we pay and move on
@ -425,7 +425,7 @@ class Bot:
index += 1 index += 1
time.sleep(3.0) 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 (" message + "\nSelect an Index and provide an input ("
"e.g. \"2 A purple ostrich\")\nType \"index info\" to learn " "e.g. \"2 A purple ostrich\")\nType \"index info\" to learn "
"more about each DVM. (e.g. \"2 info\")\n\n" "more about each DVM. (e.g. \"2 info\")\n\n"
@ -436,7 +436,7 @@ class Bot:
def answer_blacklisted(nostr_event): def answer_blacklisted(nostr_event):
# For some reason an admin might blacklist npubs, e.g. for abusing the service # 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 " "Your are currently blocked from all "
"services.", None).to_event(self.keys) "services.", None).to_event(self.keys)
send_event(evt, client=self.client, dvm_config=dvm_config) send_event(evt, client=self.client, dvm_config=dvm_config)
@ -445,10 +445,10 @@ class Bot:
info = print_dvm_info(self.client, index) info = print_dvm_info(self.client, index)
time.sleep(2.0) time.sleep(2.0)
if info is not None: 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) info, None).to_event(self.keys)
else: 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 " + "No NIP89 Info found for " +
self.dvm_config.SUPPORTED_DVMS[index].NAME, self.dvm_config.SUPPORTED_DVMS[index].NAME,
None).to_event(self.keys) None).to_event(self.keys)
@ -463,7 +463,7 @@ class Bot:
if len(split) == 1: if len(split) == 1:
remaining_text = decrypted_text.replace(split[0], "") remaining_text = decrypted_text.replace(split[0], "")
params = remaining_text.split(" -") 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) tags.append(tag)
for i in params: for i in params:
print(i) print(i)

View File

@ -89,7 +89,7 @@ class DVM:
if nip90_event is None: if nip90_event is None:
return 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) config=self.dvm_config)
cashu = "" cashu = ""
p_tag_str = "" p_tag_str = ""
@ -334,12 +334,12 @@ class DVM:
dvm_config=self.dvm_config, dvm_config=self.dvm_config,
) )
if amount > 0 and self.dvm_config.LNBITS_ADMIN_KEY != "": 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) client=self.client, config=self.dvm_config)
print(user.lud16 + " " + str(amount)) print(user.lud16 + " " + str(amount))
bolt11 = zaprequest(user.lud16, amount, "Couldn't finish job, returning sats", bolt11 = zaprequest(user.lud16, amount, "Couldn't finish job, returning sats",
original_event, original_event, "",
self.keys, self.dvm_config, zaptype="private") self.keys, self.dvm_config.RELAY_LIST, zaptype="private")
if bolt11 is None: if bolt11 is None:
print("Receiver has no Lightning address, can't zap back.") print("Receiver has no Lightning address, can't zap back.")
return return
@ -352,7 +352,7 @@ class DVM:
original_event = Event.from_json(original_event_as_str) original_event = Event.from_json(original_event_as_str)
request_tag = Tag.parse(["request", original_event_as_str]) request_tag = Tag.parse(["request", original_event_as_str])
e_tag = Tag.parse(["e", original_event.id().to_hex()]) 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( 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()]) original_event.kind()) + ". The task was: " + original_event.content()])
status_tag = Tag.parse(["status", "success"]) status_tag = Tag.parse(["status", "success"])
@ -372,7 +372,7 @@ class DVM:
if encrypted: if encrypted:
print(content) 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) content)
reply_event = EventBuilder(original_event.kind() + 1000, str(content), reply_tags).to_event(self.keys) 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) alt_description, reaction = build_status_reaction(status, task, amount, content)
e_tag = Tag.parse(["e", original_event.id().to_hex()]) 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]) alt_tag = Tag.parse(["alt", alt_description])
status_tag = Tag.parse(["status", status]) status_tag = Tag.parse(["status", status])
reply_tags = [e_tag, alt_tag, status_tag] reply_tags = [e_tag, alt_tag, status_tag]
@ -464,7 +464,7 @@ class DVM:
str_tags.append(element.as_vec()) str_tags.append(element.as_vec())
content = json.dumps(str_tags) 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) content)
reply_tags = encryption_tags reply_tags = encryption_tags
@ -527,7 +527,7 @@ class DVM:
dvm_config=self.dvm_config) dvm_config=self.dvm_config)
# Zapping back the user on error # Zapping back the user on error
if amount > 0 and self.dvm_config.LNBITS_ADMIN_KEY != "": 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) client=self.client, config=self.dvm_config)
print(user.lud16 + " " + str(amount)) print(user.lud16 + " " + str(amount))
bolt11 = zaprequest(user.lud16, amount, "Couldn't finish job, returning sats", job_event, user.npub, bolt11 = zaprequest(user.lud16, amount, "Couldn't finish job, returning sats", job_event, user.npub,

View File

@ -43,7 +43,7 @@ class DiscoverInactiveFollows(DVMTaskInterface):
request_form = {"jobID": event.id().to_hex()} request_form = {"jobID": event.id().to_hex()}
# default values # default values
user = event.pubkey().to_hex() user = event.author().to_hex()
since_days = 90 since_days = 90
for tag in event.tags(): for tag in event.tags():

View File

@ -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.") 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) None).to_event(keys)
send_event(evt, client=client, dvm_config=config) send_event(evt, client=client, dvm_config=config)

View File

@ -50,7 +50,7 @@ def fetch_nip89_paramters_for_deletion(keys, eventid, client, dvmconfig):
print("No dtag found") print("No dtag found")
return 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) nip89_delete_announcement(event.id().to_hex(), keys, d_tag, client, dvmconfig)
print("NIP89 announcement deleted from known relays!") print("NIP89 announcement deleted from known relays!")
else: else:
@ -85,11 +85,11 @@ def nip89_fetch_events_pubkey(client, pubkey, kind):
dvms = {} dvms = {}
for event in events: for event in events:
if dvms.get(event.pubkey().to_hex()): if dvms.get(event.author().to_hex()):
if dvms.get(event.pubkey().to_hex()).created_at().as_secs() < event.created_at().as_secs(): if dvms.get(event.author().to_hex()).created_at().as_secs() < event.created_at().as_secs():
dvms[event.pubkey().to_hex()] = event dvms[event.author().to_hex()] = event
else: else:
dvms[event.pubkey().to_hex()] = event dvms[event.author().to_hex()] = event
# should be one element of the kind now # should be one element of the kind now
for dvm in dvms: for dvm in dvms:

View File

@ -117,7 +117,7 @@ def check_and_decrypt_tags(event, dvm_config):
elif p == dvm_config.PUBLIC_KEY: elif p == dvm_config.PUBLIC_KEY:
tags_str = nip04_decrypt(Keys.from_sk_str(dvm_config.PRIVATE_KEY).secret_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 = json.loads(tags_str)
params.append(Tag.parse(["p", p]).as_vec()) params.append(Tag.parse(["p", p]).as_vec())
params.append(Tag.parse(["encrypted"]).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] p = tag.as_vec()[1]
if is_encrypted: 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, " print("[" + dvm_config.NIP89.NAME + "] Task encrypted and not addressed to this DVM, "
"skipping..") "skipping..")
return None 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(), tags_str = nip04_decrypt(Keys.from_sk_str(dvm_config.PRIVATE_KEY).secret_key(),
PublicKey.from_hex(p), event.content()) PublicKey.from_hex(p), event.content())
params = json.loads(tags_str) params = json.loads(tags_str)

View File

@ -29,7 +29,7 @@ def parse_zap_event_tags(zap_event, keys, name, client, config):
invoice_amount = 0 invoice_amount = 0
anon = False anon = False
message = "" message = ""
sender = zap_event.pubkey() sender = zap_event.author()
for tag in zap_event.tags(): for tag in zap_event.tags():
if tag.as_vec()[0] == 'bolt11': if tag.as_vec()[0] == 'bolt11':
invoice_amount = parse_amount_from_bolt11_invoice(tag.as_vec()[1]) 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] p_tag = tag.as_vec()[1]
elif tag.as_vec()[0] == 'description': elif tag.as_vec()[0] == 'description':
zap_request_event = Event.from_json(tag.as_vec()[1]) 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()) zap_request_event.content())
for z_tag in zap_request_event.tags(): for z_tag in zap_request_event.tags():
if z_tag.as_vec()[0] == 'anon': 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.") # print("[" + name + "] Private Zap received.")
decrypted_content = decrypt_private_zap_message(z_tag.as_vec()[1], decrypted_content = decrypt_private_zap_message(z_tag.as_vec()[1],
keys.secret_key(), keys.secret_key(),
zap_request_event.pubkey()) zap_request_event.author())
decrypted_private_event = Event.from_json(decrypted_content) decrypted_private_event = Event.from_json(decrypted_content)
if decrypted_private_event.kind() == 9733: 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() message = decrypted_private_event.content()
# if message != "": # if message != "":
# print("Zap Message: " + 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)]) relays_tag = Tag.parse(['relays', str(relay_list)])
lnurl_tag = Tag.parse(['lnurl', encoded_lnurl]) lnurl_tag = Tag.parse(['lnurl', encoded_lnurl])
if zapped_event is not None: 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()]) e_tag = Tag.parse(['e', zapped_event.id().to_hex()])
tags = [amount_tag, relays_tag, p_tag, e_tag, lnurl_tag] tags = [amount_tag, relays_tag, p_tag, e_tag, lnurl_tag]
else: else:
@ -270,7 +270,7 @@ def zaprequest(lud16: str, amount: int, content, zapped_event, zapped_user, keys
zap_request = EventBuilder(9733, content, zap_request = EventBuilder(9733, content,
[p_tag, e_tag]).to_event(keys).as_json() [p_tag, e_tag]).to_event(keys).as_json()
keys = Keys.from_sk_str(encryption_key) 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]) anon_tag = Tag.parse(['anon', encrypted_content])
tags.append(anon_tag) tags.append(anon_tag)
content = "" content = ""

View File

@ -1,6 +1,6 @@
from setuptools import setup, find_packages 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' 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. ' LONG_DESCRIPTION = ('A framework to build and run Nostr NIP90 Data Vending Machines. '
'This is an early stage release. Interfaces might change/brick') 'This is an early stage release. Interfaces might change/brick')
@ -15,9 +15,9 @@ setup(
long_description=LONG_DESCRIPTION, long_description=LONG_DESCRIPTION,
packages=find_packages(include=['nostr_dvm', 'nostr_dvm.*']), packages=find_packages(include=['nostr_dvm', 'nostr_dvm.*']),
install_requires=["nostr-sdk==0.7.1", install_requires=["nostr-sdk==0.8.0",
"bech32", "bech32",
"pycryptodome==3.19.0", "pycryptodome==3.20.0",
"python-dotenv==1.0.0", "python-dotenv==1.0.0",
"emoji==2.8.0", "emoji==2.8.0",
"eva-decord==0.6.1", "eva-decord==0.6.1",

View File

@ -104,9 +104,9 @@ def init():
listui = [] listui = []
for event in events: 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() 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()), 'eventid': str(event.id().to_hex()),
'time': str(event.created_at().to_human_datetime()), 'time': str(event.created_at().to_human_datetime()),
'njump': "https://njump.me/" + nip19eventid, 'njump': "https://njump.me/" + nip19eventid,

View File

@ -174,7 +174,7 @@ def nostr_client():
print("[Nostr Client]: " + event.content()) print("[Nostr Client]: " + event.content())
elif event.kind() == 4: 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}") print("[Nostr Client]: " + f"Received new msg: {dec_text}")
elif event.kind() == 9735: elif event.kind() == 9735: