app

Local-first trade for farms and co-ops
git clone https://radroots.dev/git/app.git
Log | Files | Refs | README | LICENSE

commit 05e1f3408b692c7d09de788cecae067cb7c82f33
parent 6091f15ce2b48e4146d17ebc465d253937db9569
Author: triesap <tyson@radroots.org>
Date:   Thu,  9 Apr 2026 22:08:01 +0000

remote-signer: avoid nested runtime reentry

Diffstat:
Mcrates/remote-signer/src/protocol.rs | 41+++++++++--------------------------------
1 file changed, 9 insertions(+), 32 deletions(-)

diff --git a/crates/remote-signer/src/protocol.rs b/crates/remote-signer/src/protocol.rs @@ -80,11 +80,7 @@ pub fn radroots_app_remote_signer_connect_pending( input: &str, ) -> Result<RadrootsAppRemoteSignerPendingSession, RadrootsAppRemoteSignerError> { let target = radroots_app_remote_signer_preview(input)?; - let runtime = Builder::new_current_thread() - .enable_all() - .build() - .map_err(|error| RadrootsAppRemoteSignerError::ConnectFailed(error.to_string()))?; - runtime.block_on(connect_pending_session(target)) + connect_pending_session(target) } pub fn radroots_app_remote_signer_poll_pending_session( @@ -153,16 +149,7 @@ pub fn radroots_app_remote_signer_sign_kind1_note_with_progress<F>( where F: FnMut(RadrootsAppRemoteSignerProgressUpdate), { - let runtime = Builder::new_current_thread() - .enable_all() - .build() - .map_err(|error| RadrootsAppRemoteSignerError::ConnectFailed(error.to_string()))?; - runtime.block_on(sign_kind1_note( - record, - client_secret_key_hex, - content, - &mut progress, - )) + sign_kind1_note(record, client_secret_key_hex, content, &mut progress) } pub fn radroots_app_remote_signer_sign_unsigned_event( @@ -187,19 +174,10 @@ pub fn radroots_app_remote_signer_sign_unsigned_event_with_progress<F>( where F: FnMut(RadrootsAppRemoteSignerProgressUpdate), { - let runtime = Builder::new_current_thread() - .enable_all() - .build() - .map_err(|error| RadrootsAppRemoteSignerError::ConnectFailed(error.to_string()))?; - runtime.block_on(sign_unsigned_event( - record, - client_secret_key_hex, - unsigned_event, - &mut progress, - )) + sign_unsigned_event(record, client_secret_key_hex, unsigned_event, &mut progress) } -async fn connect_pending_session( +fn connect_pending_session( target: RadrootsAppRemoteSignerTarget, ) -> Result<RadrootsAppRemoteSignerPendingSession, RadrootsAppRemoteSignerError> { let client_identity = RadrootsIdentity::generate(); @@ -210,8 +188,7 @@ async fn connect_pending_session( RadrootsNostrConnectMethod::Connect, connect_request, CONNECT_TIMEOUT, - ) - .await?; + )?; match response { RadrootsNostrConnectResponse::ConnectAcknowledged @@ -244,7 +221,7 @@ fn connect_request_for_target( }) } -async fn sign_kind1_note<F>( +fn sign_kind1_note<F>( record: &RadrootsAppRemoteSignerSessionRecord, client_secret_key_hex: &str, content: &str, @@ -265,10 +242,10 @@ where })?; let unsigned_event = EventBuilder::text_note(content.trim()) .build(parse_public_key_hex(user_identity.public_key_hex.as_str())?); - sign_unsigned_event(record, client_secret_key_hex, unsigned_event, progress).await + sign_unsigned_event(record, client_secret_key_hex, unsigned_event, progress) } -async fn sign_unsigned_event<F>( +fn sign_unsigned_event<F>( record: &RadrootsAppRemoteSignerSessionRecord, client_secret_key_hex: &str, unsigned_event: UnsignedEvent, @@ -306,7 +283,7 @@ where } } -async fn execute_request( +fn execute_request( client_identity: &RadrootsIdentity, target: &RadrootsAppRemoteSignerTarget, method: RadrootsNostrConnectMethod,