commit 487f7e3f389c4c7cd3ddbb715a610453b95f0e89
parent 89a9a563a7d1a6e7a2e72fcc64d2fff9fed2c1cc
Author: triesap <tyson@radroots.org>
Date: Mon, 13 Apr 2026 07:49:54 +0000
sdk: add radrootsd signer session handles
Diffstat:
8 files changed, 35 insertions(+), 24 deletions(-)
diff --git a/crates/sdk/src/adapters/mod.rs b/crates/sdk/src/adapters/mod.rs
@@ -2,7 +2,7 @@
pub mod radrootsd;
#[cfg(feature = "relay-client")]
pub mod relay;
-#[cfg(feature = "signing")]
-pub mod signing;
#[cfg(feature = "signer-adapters")]
pub mod signer;
+#[cfg(feature = "signing")]
+pub mod signing;
diff --git a/crates/sdk/src/adapters/relay.rs b/crates/sdk/src/adapters/relay.rs
@@ -4,8 +4,8 @@ use crate::WireEventParts;
use crate::adapters::signing::{SignedNostrEvent, event_builder_from_parts};
use crate::identity::RadrootsIdentity;
use radroots_nostr::prelude::{
- RadrootsNostrClient, RadrootsNostrClientOptions, RadrootsNostrError,
- RadrootsNostrEventId, RadrootsNostrOutput,
+ RadrootsNostrClient, RadrootsNostrClientOptions, RadrootsNostrError, RadrootsNostrEventId,
+ RadrootsNostrOutput,
};
pub type RelayClient = RadrootsNostrClient;
@@ -55,7 +55,9 @@ pub async fn publish_parts(
client: &RelayClient,
parts: WireEventParts,
) -> Result<RelayOutput<RelayEventId>, RelayError> {
- client.send_event_builder(event_builder_from_parts(parts)?).await
+ client
+ .send_event_builder(event_builder_from_parts(parts)?)
+ .await
}
pub async fn publish_signed_event(
diff --git a/crates/sdk/src/adapters/signer.rs b/crates/sdk/src/adapters/signer.rs
@@ -8,12 +8,12 @@ pub use radroots_nostr_connect::prelude::{
RadrootsNostrConnectResponseEnvelope, RadrootsNostrConnectUri,
};
pub use radroots_nostr_signer::prelude::{
- RadrootsNostrEmbeddedSignerBackend, RadrootsNostrSignerBackend,
- RadrootsNostrSignerBackendCapabilities, RadrootsNostrSignerCapability,
- RadrootsNostrSignerConnectEvaluation, RadrootsNostrSignerConnectProposal,
- RadrootsNostrSignerError, RadrootsNostrSignerHandledRequest,
- RadrootsNostrSignerHandledRequestOutcome, RadrootsNostrLocalSignerAvailability,
+ RadrootsNostrEmbeddedSignerBackend, RadrootsNostrLocalSignerAvailability,
RadrootsNostrLocalSignerCapability, RadrootsNostrRemoteSessionSignerCapability,
+ RadrootsNostrSignerBackend, RadrootsNostrSignerBackendCapabilities,
+ RadrootsNostrSignerCapability, RadrootsNostrSignerConnectEvaluation,
+ RadrootsNostrSignerConnectProposal, RadrootsNostrSignerError,
+ RadrootsNostrSignerHandledRequest, RadrootsNostrSignerHandledRequestOutcome,
RadrootsNostrSignerManager, RadrootsNostrSignerNip46Codec,
RadrootsNostrSignerNip46ConnectDecision, RadrootsNostrSignerNip46Handler,
RadrootsNostrSignerNip46Policy, RadrootsNostrSignerNip46Signer,
diff --git a/crates/sdk/src/adapters/signing.rs b/crates/sdk/src/adapters/signing.rs
@@ -1,8 +1,6 @@
use crate::WireEventParts;
use crate::identity::RadrootsIdentity;
-use radroots_nostr::prelude::{
- RadrootsNostrError, radroots_nostr_build_event,
-};
+use radroots_nostr::prelude::{RadrootsNostrError, radroots_nostr_build_event};
pub type SignedNostrEvent = radroots_nostr::prelude::RadrootsNostrEvent;
pub type NostrEventBuilder = radroots_nostr::prelude::RadrootsNostrEventBuilder;
diff --git a/crates/sdk/src/listing.rs b/crates/sdk/src/listing.rs
@@ -34,6 +34,8 @@ pub fn build_draft(listing: &RadrootsListing) -> Result<RadrootsListingDraft, Ev
}
#[cfg(feature = "serde_json")]
-pub fn parse_event(event: &RadrootsNostrEvent) -> Result<RadrootsListing, RadrootsTradeListingParseError> {
+pub fn parse_event(
+ event: &RadrootsNostrEvent,
+) -> Result<RadrootsListing, RadrootsTradeListingParseError> {
radroots_trade::listing::parse_listing_event(event)
}
diff --git a/crates/sdk/src/trade.rs b/crates/sdk/src/trade.rs
@@ -7,8 +7,8 @@ pub use radroots_events_codec::trade::{
};
pub use radroots_trade::listing::validation::RadrootsTradeListing as TradeListingValidateResult;
-use crate::{RadrootsNostrEvent, RadrootsNostrEventPtr, WireEventParts};
use crate::RadrootsTradeEnvelope as SdkTradeEnvelope;
+use crate::{RadrootsNostrEvent, RadrootsNostrEventPtr, WireEventParts};
#[cfg(feature = "serde_json")]
pub fn build_envelope_draft(
diff --git a/crates/sdk/tests/facade.rs b/crates/sdk/tests/facade.rs
@@ -13,9 +13,7 @@ use radroots_events::listing::{
};
use radroots_events::profile::{RadrootsProfile, RadrootsProfileType};
use radroots_events::trade::{RadrootsTradeListingValidateRequest, RadrootsTradeMessagePayload};
-use radroots_sdk::{
- RadrootsNostrEvent, farm, listing, profile, trade,
-};
+use radroots_sdk::{RadrootsNostrEvent, farm, listing, profile, trade};
fn sample_profile() -> RadrootsProfile {
RadrootsProfile {
@@ -137,10 +135,12 @@ fn farm_build_draft_wraps_farm_encoder() {
let parts = farm::build_draft(&sample_farm()).expect("farm");
assert_eq!(parts.kind, KIND_FARM);
- assert!(parts
- .tags
- .iter()
- .any(|tag| tag.first().map(|value| value.as_str()) == Some("d")));
+ assert!(
+ parts
+ .tags
+ .iter()
+ .any(|tag| tag.first().map(|value| value.as_str()) == Some("d"))
+ );
}
#[test]
@@ -166,7 +166,9 @@ fn listing_parse_rejects_non_listing_kind() {
assert!(matches!(
listing::parse_event(&event),
- Err(listing::RadrootsTradeListingParseError::InvalidKind(KIND_PROFILE))
+ Err(listing::RadrootsTradeListingParseError::InvalidKind(
+ KIND_PROFILE
+ ))
));
}
diff --git a/crates/sdk/tests/replica_ingest.rs b/crates/sdk/tests/replica_ingest.rs
@@ -57,7 +57,14 @@ fn ingest_farm(replica: &ReplicaSql<SqliteExecutor>) -> RadrootsNostrEvent {
let farm_value = sample_farm();
let author = seller_pubkey();
let parts = farm::build_draft(&farm_value).expect("farm draft");
- let event = sdk_event(1, &author, 1_720_000_000, parts.kind, parts.content, parts.tags);
+ let event = sdk_event(
+ 1,
+ &author,
+ 1_720_000_000,
+ parts.kind,
+ parts.content,
+ parts.tags,
+ );
let outcome = radroots_replica_ingest_event(replica.executor(), &event).expect("ingest farm");
assert_eq!(outcome, RadrootsReplicaIngestOutcome::Applied);
event