commit 5d0fe65a0984a7c901994b5c8a32ed0de097be10
parent 4ef4e07e485124c262e4b4a2e7093f801bb53d53
Author: triesap <tyson@radroots.org>
Date: Tue, 6 Jan 2026 15:09:02 +0000
events-codec: Enforce base64 d_tag rules in list set tags
- Validate farm/coop/resource list set d_tags on encode/decode
- Allow non-base64 list sets like member_of without extra checks
- Add helpers to parse embedded base64 IDs
- Add unit tests for invalid list set d_tags
Diffstat:
1 file changed, 2 insertions(+), 0 deletions(-)
diff --git a/trade/src/listing/dvm.rs b/trade/src/listing/dvm.rs
@@ -4,6 +4,7 @@
use alloc::{string::String, vec::Vec};
use radroots_events::{RadrootsNostrEventPtr, kinds::KIND_PROFILE};
+use radroots_events_codec::d_tag::is_d_tag_base64url;
#[cfg(feature = "ts-rs")]
use ts_rs::TS;
@@ -223,6 +224,7 @@ impl TradeListingAddress {
if kind == KIND_PROFILE as u16
|| seller_pubkey.trim().is_empty()
|| listing_id.trim().is_empty()
+ || !is_d_tag_base64url(&listing_id)
{
return Err(TradeListingAddressError::InvalidFormat);
}