diff options
Diffstat (limited to 'src/client.rs')
| -rw-r--r-- | src/client.rs | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/src/client.rs b/src/client.rs index 9dba528..44abb29 100644 --- a/src/client.rs +++ b/src/client.rs | |||
| @@ -19,7 +19,7 @@ use indicatif::{MultiProgress, ProgressBar, ProgressState, ProgressStyle}; | |||
| 19 | #[cfg(test)] | 19 | #[cfg(test)] |
| 20 | use mockall::*; | 20 | use mockall::*; |
| 21 | use nostr::Event; | 21 | use nostr::Event; |
| 22 | use nostr_sdk::NostrSigner; | 22 | use nostr_sdk::{EventBuilder, NostrSigner}; |
| 23 | 23 | ||
| 24 | #[allow(clippy::struct_field_names)] | 24 | #[allow(clippy::struct_field_names)] |
| 25 | pub struct Client { | 25 | pub struct Client { |
| @@ -292,3 +292,32 @@ fn get_dedup_events(relay_results: Vec<Result<Vec<nostr::Event>>>) -> Vec<Event> | |||
| 292 | } | 292 | } |
| 293 | dedup_events | 293 | dedup_events |
| 294 | } | 294 | } |
| 295 | |||
| 296 | pub async fn sign_event(event_builder: EventBuilder, signer: &NostrSigner) -> Result<nostr::Event> { | ||
| 297 | if signer.r#type().eq(&nostr_signer::NostrSignerType::NIP46) { | ||
| 298 | let term = console::Term::stderr(); | ||
| 299 | term.write_line("signing event with remote signer...")?; | ||
| 300 | let event = signer | ||
| 301 | .sign_event_builder(event_builder) | ||
| 302 | .await | ||
| 303 | .context("failed to sign event")?; | ||
| 304 | term.clear_last_lines(1)?; | ||
| 305 | Ok(event) | ||
| 306 | } else { | ||
| 307 | signer | ||
| 308 | .sign_event_builder(event_builder) | ||
| 309 | .await | ||
| 310 | .context("failed to sign event") | ||
| 311 | } | ||
| 312 | } | ||
| 313 | |||
| 314 | pub async fn fetch_public_key(signer: &NostrSigner) -> Result<nostr::PublicKey> { | ||
| 315 | let term = console::Term::stderr(); | ||
| 316 | term.write_line("fetching npub from remote signer...")?; | ||
| 317 | let public_key = signer | ||
| 318 | .public_key() | ||
| 319 | .await | ||
| 320 | .context("failed to get npub from remote signer")?; | ||
| 321 | term.clear_last_lines(1)?; | ||
| 322 | Ok(public_key) | ||
| 323 | } | ||