commit 0e3e3fd13b7a90328f0deec614b1d1909c7484f2
parent 87360aff7a4e32e6e7a8c454d1acf48e0ce34523
Author: triesap <tyson@radroots.org>
Date: Tue, 26 May 2026 09:19:11 +0000
runtime: mark relay ingest as network source
Diffstat:
2 files changed, 53 insertions(+), 10 deletions(-)
diff --git a/crates/launchers/desktop/src/runtime.rs b/crates/launchers/desktop/src/runtime.rs
@@ -5852,7 +5852,7 @@ fn direct_relay_event_listing_addr(
}
fn direct_relay_event_source_runtime(_kind: u16, _d_tag: Option<&str>) -> SourceRuntime {
- SourceRuntime::Cli
+ SourceRuntime::Network
}
fn relay_event_kind(event: &RadrootsNostrEvent) -> u16 {
@@ -8424,21 +8424,21 @@ mod tests {
}
#[test]
- fn direct_relay_trade_events_keep_cli_source_runtime_for_app_shaped_d_tags() {
+ fn direct_relay_trade_events_use_network_source_runtime_for_app_shaped_d_tags() {
let app_shaped_d_tag =
super::d_tag_from_uuid(Uuid::from_u128(0x12345678123446789123456781234567));
assert_eq!(
direct_relay_event_source_runtime(30340, Some(app_shaped_d_tag.as_str())),
- SourceRuntime::Cli
+ SourceRuntime::Network
);
assert_eq!(
direct_relay_event_source_runtime(30402, Some(app_shaped_d_tag.as_str())),
- SourceRuntime::Cli
+ SourceRuntime::Network
);
assert_eq!(
direct_relay_event_source_runtime(30403, Some(app_shaped_d_tag.as_str())),
- SourceRuntime::Cli
+ SourceRuntime::Network
);
}
@@ -8832,7 +8832,10 @@ mod tests {
)
.expect("delivery json");
- assert_eq!(listing_import.source_runtime, SourceRuntime::Cli.as_str());
+ assert_eq!(
+ listing_import.source_runtime,
+ SourceRuntime::Network.as_str()
+ );
assert_eq!(listing_import.outbox_status, "none");
assert_eq!(delivery["state"], json!("observed"));
assert_eq!(delivery["acknowledged_relays"], json!([]));
@@ -8988,7 +8991,10 @@ mod tests {
)
.expect("delivery json");
- assert_eq!(listing_import.source_runtime, SourceRuntime::Cli.as_str());
+ assert_eq!(
+ listing_import.source_runtime,
+ SourceRuntime::Network.as_str()
+ );
assert_eq!(listing_import.outbox_status, "none");
assert_eq!(delivery["state"], json!("observed"));
assert_eq!(delivery["acknowledged_relays"], json!([]));
diff --git a/crates/shared/sqlite/src/local_interop.rs b/crates/shared/sqlite/src/local_interop.rs
@@ -2329,8 +2329,8 @@ mod tests {
use std::collections::BTreeSet;
use radroots_app_models::{
- BuyerContext, BuyerOrderStatus, FarmOrderMethod, OrderStatus, OrdersFilter,
- OrdersScreenQueryState, ProductAvailabilityState,
+ BuyerContext, BuyerOrderStatus, FarmId, FarmOrderMethod, OrderStatus, OrdersFilter,
+ OrdersScreenQueryState, ProductAvailabilityState, ProductId,
};
use radroots_core::{
RadrootsCoreCurrency, RadrootsCoreDecimal, RadrootsCoreMoney, RadrootsCoreUnit,
@@ -2359,7 +2359,7 @@ mod tests {
use super::{
KIND_FARM, KIND_LISTING, KIND_ORDER_REQUEST, deterministic_farm_id,
- deterministic_product_id, projected_order_id,
+ deterministic_product_id, projected_farm_id, projected_order_id, projected_product_id,
};
use crate::{AppSqliteStore, DatabaseTarget};
@@ -2674,6 +2674,43 @@ mod tests {
output
}
+ #[test]
+ fn app_shaped_keys_use_uuid_projection_only_for_app_runtime() {
+ let owner_pubkey = "projection-owner-pubkey";
+ let farm_uuid = Uuid::from_u128(0x11111111111141118111111111111111);
+ let product_uuid = Uuid::from_u128(0x22222222222242228222222222222222);
+ let farm_key = app_d_tag_from_uuid(farm_uuid);
+ let listing_key = app_d_tag_from_uuid(product_uuid);
+
+ assert_eq!(
+ projected_farm_id(SourceRuntime::App, Some(owner_pubkey), farm_key.as_str()),
+ Some(FarmId::from(farm_uuid))
+ );
+ assert_eq!(
+ projected_product_id(SourceRuntime::App, Some(owner_pubkey), listing_key.as_str()),
+ Some(ProductId::from(product_uuid))
+ );
+ assert_eq!(
+ projected_farm_id(
+ SourceRuntime::Network,
+ Some(owner_pubkey),
+ farm_key.as_str()
+ ),
+ Some(deterministic_farm_id(Some(owner_pubkey), farm_key.as_str()))
+ );
+ assert_eq!(
+ projected_product_id(
+ SourceRuntime::Network,
+ Some(owner_pubkey),
+ listing_key.as_str()
+ ),
+ Some(deterministic_product_id(
+ Some(owner_pubkey),
+ listing_key.as_str()
+ ))
+ );
+ }
+
fn app_local_work_record(
record_id: &str,
farm_key: &str,