upleb.uk

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

summaryrefslogtreecommitdiff
path: root/src/lib/client.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/client.rs')
-rw-r--r--src/lib/client.rs26
1 files changed, 25 insertions, 1 deletions
diff --git a/src/lib/client.rs b/src/lib/client.rs
index 091d68d..3fe2b57 100644
--- a/src/lib/client.rs
+++ b/src/lib/client.rs
@@ -31,7 +31,7 @@ use indicatif::{MultiProgress, ProgressBar, ProgressDrawTarget, ProgressState, P
31use mockall::*; 31use mockall::*;
32use nostr::{ 32use nostr::{
33 Event, 33 Event,
34 event::{TagKind, TagStandard}, 34 event::{TagKind, TagStandard, UnsignedEvent},
35 filter::Alphabet, 35 filter::Alphabet,
36 nips::{nip01::Coordinate, nip19::Nip19Coordinate}, 36 nips::{nip01::Coordinate, nip19::Nip19Coordinate},
37 signer::SignerBackend, 37 signer::SignerBackend,
@@ -814,6 +814,30 @@ pub async fn sign_event(
814 } 814 }
815} 815}
816 816
817pub async fn sign_draft_event(
818 draft_event: UnsignedEvent,
819 signer: &Arc<dyn NostrSigner>,
820 description: String,
821) -> Result<nostr::Event> {
822 if signer.backend() == SignerBackend::NostrConnect {
823 let term = console::Term::stderr();
824 term.write_line(&format!(
825 "signing event ({description}) with remote signer..."
826 ))?;
827 let event = signer
828 .sign_event(draft_event)
829 .await
830 .context("failed to sign event")?;
831 term.clear_last_lines(1)?;
832 Ok(event)
833 } else {
834 signer
835 .sign_event(draft_event)
836 .await
837 .context("failed to sign event")
838 }
839}
840
817pub async fn fetch_public_key(signer: &Arc<dyn NostrSigner>) -> Result<nostr::PublicKey> { 841pub async fn fetch_public_key(signer: &Arc<dyn NostrSigner>) -> Result<nostr::PublicKey> {
818 if signer.backend() == SignerBackend::NostrConnect { 842 if signer.backend() == SignerBackend::NostrConnect {
819 let term = console::Term::stderr(); 843 let term = console::Term::stderr();