nip44 encryption on noogle

This commit is contained in:
Believethehype 2024-11-27 19:26:15 +01:00
parent db9cfe381a
commit 9678c2d132
7 changed files with 51 additions and 23 deletions

View File

@ -40,13 +40,11 @@ class DVM:
uniffi_set_event_loop(asyncio.get_running_loop())
async def run_dvm(self, dvm_config, admin_config):
self.dvm_config = dvm_config
self.admin_config = admin_config
self.keys = Keys.parse(dvm_config.PRIVATE_KEY)
relaylimits = RelayLimits.disable()
opts = (
Options().relay_limits(relaylimits)) #.difficulty(28)
opts = Options().relay_limits(relaylimits) #.difficulty(28)
#self.client = Client(self.keys)
self.client = ClientBuilder().signer(NostrSigner.keys(self.keys)).opts(opts).build()
@ -94,6 +92,7 @@ class DVM:
keys = self.keys
async def handle(self, relay_url, subscription_id, nostr_event: Event):
print(nostr_event.as_json())
if self.dvm_config.LOGLEVEL.value >= LogLevel.DEBUG.value:
print(nostr_event.as_json())
if EventDefinitions.KIND_NIP90_EXTRACT_TEXT.as_u16() <= nostr_event.kind().as_u16() <= EventDefinitions.KIND_NIP90_GENERIC.as_u16():
@ -108,6 +107,7 @@ class DVM:
async def handle_nip90_job_event(nip90_event):
# decrypted encrypted events
nip90_event, use_legacy_encryption = check_and_decrypt_tags(nip90_event, self.dvm_config)
# if event is encrypted, but we can't decrypt it (e.g. because its directed to someone else), return
if nip90_event is None:

View File

@ -16,7 +16,7 @@ class DVMConfig:
FIX_COST: float = None
PER_UNIT_COST: float = None
RELAY_LIST = [
RELAY_LIST = ["wss://relay.primal.net",
"wss://nostr.mom",
"wss://nostr.oxtr.dev",
]

View File

@ -207,8 +207,8 @@ def playground():
advanced_search_wine = build_advanced_search_wine("Nostr.wine Search", "discovery_content_searchwine")
advanced_search_wine.run()
profile_search = build_user_search("Profile Searcher", "profile_search")
profile_search.run()
#profile_search = build_user_search("Profile Searcher", "profile_search")
#profile_search.run()

View File

@ -947,7 +947,6 @@ async function unfollow_all(results) {
let relayopts = new Options().relayLimits(limits);
let dbclient = new ClientBuilder().signer(signer).opts(relayopts).build()
await dbclient.addRelay("wss://relay.damus.io");
await dbclient.addRelay("wss://purplepag.es");
await dbclient.connect()
let found = false
let element
@ -1027,7 +1026,6 @@ async function unfollow(result) {
let relayopts = new Options().relayLimits(limits);
let dbclient = new ClientBuilder().signer(signer).opts(relayopts).build()
await dbclient.addRelay("wss://relay.damus.io");
await dbclient.addRelay("wss://purplepag.es");
await dbclient.connect()
console.log(result.authorid)
let found = false

View File

@ -320,7 +320,14 @@ export default {
} else {
await this.sign_in_anon()
}
await this.getnip89s()
await this.getnip89s()
await this.reconcile_all_profiles(store.state.pubkey)
let nwc = loadNWCObject()
this.hasNWC = false
@ -397,7 +404,7 @@ export default {
console.log("SIGNER: " + this.signer.toString())
let limits = RelayLimits.disable()
let opts = new Options().waitForSend(false).connectionTimeout(Duration.fromSecs(5)).relayLimits(limits);
let opts = new Options().relayLimits(limits);
let client = new ClientBuilder().signer(this.signer).opts(opts).build()
@ -416,10 +423,7 @@ export default {
localStorage.setItem('nostr-key', pubkey.toHex())
console.log("Client Nip46 connected")
await this.get_user_info(pubkey)
if (launch) {
await this.reconcile_all_profiles(pubkey)
}
console.log(pubkey.toBech32())
//await this.reconcile_all_profiles()
@ -683,7 +687,8 @@ export default {
async getnip89s() {
//let keys = Keys.generate()
let keys = Keys.parse(store.state.nooglekey)
let keys = Keys.parse(import.meta.env.VITE_NOOGLE_PK)
// let keys = Keys.parse(store.state.nooglekey)
let signer = NostrSigner.keys(keys)
let client = new ClientBuilder().signer(signer).build()
@ -872,7 +877,7 @@ export default {
dbclient = new ClientBuilder().signer(signer).database(await db).opts(relayopts).build()
await dbclient.addRelay("wss://relay.damus.io");
await dbclient.addRelay("wss://purplepag.es");
await dbclient.addRelay("wss://relay.primal.net");
await dbclient.connect()
store.commit('set_dbclient', dbclient)

View File

@ -158,23 +158,30 @@ async function send_search_request(msg) {
let contentwine = await signer.nip44Encrypt(PublicKey.parse(winesearch), tags_as_str, NIP44Version.V2)
let contentprofile = await signer.nip44Encrypt(PublicKey.parse(profilesearch), tags_profile_as_str, NIP44Version.V2)
let relays = ["relays"]
for (let relay of store.state.relays) {
relays.push(relay)
}
let tags_nb = [
["p", nostrbadnsearch],
["encrypted"],
["client", "noogle"]
]
tags_nb.push(relays)
let tags_wine = [
["p", winesearch],
["encrypted"],
["client", "noogle"]
]
tags_wine.push(relays)
let tags_profile = [
["p", profilesearch],
["encrypted"],
["client", "noogle"]
]
tags_profile.push(relays)
let res;
@ -208,6 +215,8 @@ async function send_search_request(msg) {
res = await client.sendEventBuilder(evt)
requestid = res.toHex()
console.log(requestid)
let res2 = await client.sendEventBuilder(evt2)
requestid2 = res2.toHex()
@ -302,8 +311,16 @@ async function listen() {
if (is_encrypted) {
let signer = store.state.signer
if (ptag === store.state.pubkey.toHex()) {
let tags_str = await signer.nip44Decrypt(event.author, event.content)
let tags_str = ""
try{
tags_str = await signer.nip44Decrypt(event.author, event.content)
console.log(tags_str)
}
catch(e){
tags_str = await signer.nip04Decrypt(event.author, event.content)
console.log(tags_str)
}
let params = JSON.parse(tags_str)
params.push(Tag.parse(["p", ptag]).asVec())
params.push(Tag.parse(["encrypted"]).asVec())
@ -387,11 +404,20 @@ async function listen() {
} else if (event.kind === 6302) {
let entries = []
//console.log("6302:", event.content);
let content = ""
if (is_encrypted) {
let signer = store.state.signer
if (ptag === store.state.pubkey.toHex()) {
content = await signer.nip44Decrypt(event.author, event.content)
try{
content = await signer.nip44Decrypt(event.author, event.content)
console.log("nip44")
}
catch(e){
content = await signer.nip04Decrypt(event.author, event.content)
console.log("nip04")
}
}
}
@ -399,7 +425,6 @@ async function listen() {
try {
let event_etags = JSON.parse(content)
console.log(event_etags)
if (event_etags.length > 0) {
for (let etag of event_etags) {
const eventid = EventId.parse(etag[1]).toHex() //a bit unnecessary
@ -452,8 +477,8 @@ async function listen() {
store.commit('set_active_search_dvms', dvms)
console.log("Events from" + event.author.toHex())
store.commit('set_search_results', items)
} catch {
} catch(e) {
console.log(e)
}
} else if (event.kind === 6303) {
let entries = []

View File

@ -32,8 +32,8 @@ const store = createStore({
results: [],
profile_results: [],
relays: ["wss://relay.primal.net",
"wss://nostr.mom", "wss://nostr.oxtr.dev",
"wss://relay.nostr.net"
"wss://nostr.mom",
"wss://nostr.oxtr.dev",
],
}
},