diff options
| author | Your Name <you@example.com> | 2026-05-27 16:59:08 +0530 |
|---|---|---|
| committer | Your Name <you@example.com> | 2026-05-27 16:59:08 +0530 |
| commit | cd7d6dd7975eff18b49665f6ebcabee78b204f76 (patch) | |
| tree | d8ba012e4b324cb81868b3acdc426b8c2f007614 | |
| parent | d889b890f9e63815c178853ed98a1e31f6cec7f8 (diff) | |
Fix compile errors: enable nip04/nip46 features, fix API mismatches
- Cargo.toml: enable nip04 + nip46 features on nostr crate
- nip46.rs: secret_key() returns &SecretKey not Result, remove ? operator
- nip46.rs: EventBuilder::new takes 2 args, use .tags() for tags
- nip46.rs: fix async block in timeout map_err
- git_mirror.rs: relay_url is a field not a method
| -rw-r--r-- | Cargo.toml | 2 | ||||
| -rw-r--r-- | src/git_mirror.rs | 2 | ||||
| -rw-r--r-- | src/nip46.rs | 32 |
3 files changed, 16 insertions, 20 deletions
| @@ -7,7 +7,7 @@ license = "MIT" | |||
| 7 | 7 | ||
| 8 | [dependencies] | 8 | [dependencies] |
| 9 | nostr-sdk = "0.39" | 9 | nostr-sdk = "0.39" |
| 10 | nostr = "0.39" | 10 | nostr = { version = "0.39", features = ["nip04", "nip46"] } |
| 11 | tokio = { version = "1", features = ["full"] } | 11 | tokio = { version = "1", features = ["full"] } |
| 12 | sqlx = { version = "0.8", features = ["runtime-tokio", "sqlite"] } | 12 | sqlx = { version = "0.8", features = ["runtime-tokio", "sqlite"] } |
| 13 | toml = "0.8" | 13 | toml = "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() |