commit 27af62af1144c9fdbf59759fd65a25ac2f646a42
parent 309787049b99e87de57dfb697b09713a70b8d114
Author: triesap <tyson@radroots.org>
Date: Sun, 14 Jun 2026 02:35:47 -0700
sdk: align listing address facade
- expose canonical listing address IDs from the SDK order surface
- remove stale order listing address type names from client facades
- update SDK listing fixtures to use valid deterministic seller pubkeys
- validate with cargo fmt --all -- --check, cargo check --workspace, and cargo test --workspace
Diffstat:
6 files changed, 22 insertions(+), 14 deletions(-)
diff --git a/Cargo.lock b/Cargo.lock
@@ -1516,6 +1516,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf"
[[package]]
+name = "radroots_authority"
+version = "0.1.0-alpha.2"
+dependencies = [
+ "radroots_events",
+ "thiserror 1.0.69",
+]
+
+[[package]]
name = "radroots_core"
version = "0.1.0-alpha.2"
dependencies = [
@@ -1874,6 +1882,7 @@ version = "0.1.0-alpha.2"
dependencies = [
"base64 0.22.1",
"hex",
+ "radroots_authority",
"radroots_core",
"radroots_events",
"radroots_events_codec",
diff --git a/crates/sdk/src/client.rs b/crates/sdk/src/client.rs
@@ -1989,7 +1989,7 @@ impl<'a> TradeClient<'a> {
pub fn parse_listing_address(
&self,
listing_addr: &str,
- ) -> Result<order::RadrootsOrderListingAddress, order::RadrootsOrderListingAddressError> {
+ ) -> Result<order::RadrootsListingAddress, order::RadrootsIdParseError> {
order::parse_listing_address(listing_addr)
}
diff --git a/crates/sdk/src/lib.rs b/crates/sdk/src/lib.rs
@@ -59,13 +59,12 @@ pub use radroots_events::{
RadrootsNostrEvent, RadrootsNostrEventPtr, RadrootsNostrEventRef,
draft::{RadrootsFrozenEventDraft, RadrootsSignedNostrEvent},
farm::RadrootsFarm,
+ ids::{RadrootsIdParseError, RadrootsListingAddress},
listing::RadrootsListing,
profile::{RadrootsProfile, RadrootsProfileType},
};
#[cfg(feature = "serde_json")]
-pub use radroots_events_codec::order::{
- RadrootsOrderEnvelopeParseError, RadrootsOrderListingAddress, RadrootsOrderListingAddressError,
-};
+pub use radroots_events_codec::order::RadrootsOrderEnvelopeParseError;
pub use radroots_events_codec::wire::WireEventParts;
pub use radroots_trade::listing::validation::RadrootsTradeListing as TradeListingValidateResult;
diff --git a/crates/sdk/src/order.rs b/crates/sdk/src/order.rs
@@ -1,10 +1,10 @@
+pub use radroots_events::ids::{RadrootsIdParseError, RadrootsListingAddress};
pub use radroots_events::order::*;
pub use radroots_events::trade_validation::*;
pub use radroots_events_codec::error::EventEncodeError;
#[cfg(feature = "serde_json")]
pub use radroots_events_codec::order::{
- RadrootsOrderEnvelopeParseError, RadrootsOrderEventContext, RadrootsOrderListingAddress,
- RadrootsOrderListingAddressError,
+ RadrootsOrderEnvelopeParseError, RadrootsOrderEventContext,
};
pub use radroots_trade::listing::validation::RadrootsTradeListing as TradeListingValidateResult;
@@ -269,8 +269,8 @@ pub fn parse_buyer_receipt(
#[cfg(feature = "serde_json")]
pub fn parse_listing_address(
listing_addr: &str,
-) -> Result<RadrootsOrderListingAddress, RadrootsOrderListingAddressError> {
- RadrootsOrderListingAddress::parse(listing_addr)
+) -> Result<RadrootsListingAddress, RadrootsIdParseError> {
+ RadrootsListingAddress::parse(listing_addr)
}
#[cfg(feature = "serde_json")]
diff --git a/crates/sdk/tests/client.rs b/crates/sdk/tests/client.rs
@@ -47,7 +47,7 @@ fn sample_listing() -> RadrootsListing {
d_tag: "AAAAAAAAAAAAAAAAAAAAAg".parse().expect("listing d tag"),
published_at: None,
farm: RadrootsFarmRef {
- pubkey: "seller".into(),
+ pubkey: "a".repeat(64),
d_tag: "AAAAAAAAAAAAAAAAAAAAAA".into(),
},
product: RadrootsListingProduct {
@@ -497,7 +497,7 @@ fn listing_and_order_clients_wrap_existing_sdk_facades() {
let event = RadrootsNostrEvent {
id: "listing-1".into(),
- author: "seller".into(),
+ author: listing_value.farm.pubkey.clone(),
created_at: 1,
kind: draft.as_wire_parts().kind,
tags: draft.as_wire_parts().tags.clone(),
@@ -545,7 +545,7 @@ fn listing_and_order_clients_wrap_existing_sdk_facades() {
.order()
.parse_listing_address(&listing_addr)
.expect("listing address");
- assert_eq!(parsed_addr.listing_id, listing_value.d_tag);
+ assert_eq!(parsed_addr, listing_addr);
}
#[test]
diff --git a/crates/sdk/tests/facade.rs b/crates/sdk/tests/facade.rs
@@ -50,7 +50,7 @@ fn sample_listing() -> RadrootsListing {
d_tag: "AAAAAAAAAAAAAAAAAAAAAg".parse().expect("listing d tag"),
published_at: None,
farm: RadrootsFarmRef {
- pubkey: "seller".into(),
+ pubkey: "a".repeat(64),
d_tag: "AAAAAAAAAAAAAAAAAAAAAA".into(),
},
product: RadrootsListingProduct {
@@ -112,7 +112,7 @@ fn listing_event(listing_value: &RadrootsListing) -> RadrootsNostrEvent {
let parts = listing::build_draft(listing_value).expect("listing draft");
RadrootsNostrEvent {
id: "event-1".into(),
- author: "seller".into(),
+ author: listing_value.farm.pubkey.clone(),
created_at: 1,
kind: parts.as_wire_parts().kind,
tags: parts.as_wire_parts().tags.clone(),
@@ -252,7 +252,7 @@ fn order_facade_wraps_build_parse_and_address_ops() {
assert_eq!(parts.as_wire_parts().kind, KIND_ORDER_REQUEST);
let parsed_addr = order::parse_listing_address(&listing_addr).expect("listing address");
- assert_eq!(parsed_addr.listing_id, listing_value.d_tag);
+ assert_eq!(parsed_addr, listing_addr);
let event = RadrootsNostrEvent {
id: core::iter::repeat_n('b', 64).collect(),