upleb.uk

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

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Cargo.toml2
-rw-r--r--src/git_mirror.rs2
-rw-r--r--src/nip46.rs32
3 files changed, 16 insertions, 20 deletions
diff --git a/Cargo.toml b/Cargo.toml
index 2c6be46..78130f3 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -7,7 +7,7 @@ license = "MIT"
7 7
8[dependencies] 8[dependencies]
9nostr-sdk = "0.39" 9nostr-sdk = "0.39"
10nostr = "0.39" 10nostr = { version = "0.39", features = ["nip04", "nip46"] }
11tokio = { version = "1", features = ["full"] } 11tokio = { version = "1", features = ["full"] }
12sqlx = { version = "0.8", features = ["runtime-tokio", "sqlite"] } 12sqlx = { version = "0.8", features = ["runtime-tokio", "sqlite"] }
13toml = "0.8" 13toml = "0.8"
diff --git a/src/git_mirror.rs b/src/git_mirror.rs
index cdf853e..47b0efb 100644
--- a/src/git_mirror.rs
+++ b/src/git_mirror.rs
@@ -78,7 +78,7 @@ impl GitMirror {
78 ); 78 );
79 79
80 if let Some(ref event) = state_event { 80 if let Some(ref event) = state_event {
81 let relay_url = server.relay_url(); 81 let relay_url = server.relay_url.clone();
82 if let Ok(url) = RelayUrl::parse(&relay_url) { 82 if let Ok(url) = RelayUrl::parse(&relay_url) {
83 let urls = vec![url]; 83 let urls = vec![url];
84 if let Err(e) = nostr_client.send_event_to(urls, event.clone()).await { 84 if let Err(e) = nostr_client.send_event_to(urls, event.clone()).await {
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()