upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/src/nip46.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/nip46.rs')
-rw-r--r--src/nip46.rs32
1 files changed, 14 insertions, 18 deletions
diff --git a/src/nip46.rs b/src/nip46.rs
index c3b1e86..e115df6 100644
--- a/src/nip46.rs
+++ b/src/nip46.rs
@@ -95,7 +95,7 @@ impl Nip46Client {
95 let pairing_uri = Self::build_pairing_uri(&client_keys, &self.relays); 95 let pairing_uri = Self::build_pairing_uri(&client_keys, &self.relays);
96 96
97 self.db 97 self.db
98 .upsert_nip46_session(&pk_hex, &client_keys.secret_key()?.to_hex(), None, false) 98 .upsert_nip46_session(&pk_hex, &client_keys.secret_key().to_hex(), None, false)
99 .await?; 99 .await?;
100 100
101 Session { 101 Session {
@@ -190,7 +190,7 @@ impl Nip46Client {
190 }; 190 };
191 191
192 let decrypted = nip04::decrypt( 192 let decrypted = nip04::decrypt(
193 session.client_keys.secret_key()?, 193 session.client_keys.secret_key(),
194 &event.pubkey, 194 &event.pubkey,
195 &event.content, 195 &event.content,
196 ) 196 )
@@ -232,7 +232,7 @@ impl Nip46Client {
232 let _ = db 232 let _ = db
233 .upsert_nip46_session( 233 .upsert_nip46_session(
234 &pk_hex, 234 &pk_hex,
235 &session.client_keys.secret_key()?.to_hex(), 235 &session.client_keys.secret_key().to_hex(),
236 Some(&signer_hex), 236 Some(&signer_hex),
237 true, 237 true,
238 ) 238 )
@@ -307,13 +307,10 @@ impl Nip46Client {
307 let message_json = message.as_json(); 307 let message_json = message.as_json();
308 308
309 let encrypted = 309 let encrypted =
310 nip04::encrypt(session.client_keys.secret_key()?, &signer_pubkey, &message_json)?; 310 nip04::encrypt(session.client_keys.secret_key(), &signer_pubkey, &message_json)?;
311 311
312 let event_builder = EventBuilder::new( 312 let event_builder = EventBuilder::new(Kind::Custom(24133), &encrypted)
313 Kind::Custom(24133), 313 .tags([Tag::public_key(signer_pubkey)]);
314 &encrypted,
315 [Tag::public_key(signer_pubkey)],
316 );
317 let event = event_builder.sign_with_keys(&session.client_keys)?; 314 let event = event_builder.sign_with_keys(&session.client_keys)?;
318 315
319 let request_id = message.id().to_string(); 316 let request_id = message.id().to_string();
@@ -340,15 +337,14 @@ impl Nip46Client {
340 Err(_) => Err(anyhow::anyhow!("signing request channel dropped")), 337 Err(_) => Err(anyhow::anyhow!("signing request channel dropped")),
341 } 338 }
342 }) 339 })
343 .await 340 .await;
344 .map_err(|_| { 341
345 { 342 if result.is_err() {
346 let pending_id = request_id.clone(); 343 let mut pending = self.pending.write().await;
347 async move { 344 pending.remove(&request_id);
348 let mut pending = self.pending.write().await; 345 }
349 pending.remove(&pending_id); 346
350 } 347 result.map_err(|_| {
351 }
352 anyhow::anyhow!( 348 anyhow::anyhow!(
353 "NIP-46 signing request timed out after {}s", 349 "NIP-46 signing request timed out after {}s",
354 timeout.as_secs() 350 timeout.as_secs()