v0.3.15-pre.006-fix.003

This commit is contained in:
2026-09-13 17:11:21 +02:00
parent f12e67bdc7
commit 487bcbf0c1
10 changed files with 101 additions and 33 deletions

View File

@@ -1,5 +1,5 @@
// file: crates/ksp-app-raw-transaction-ingest-desk/src/route_inventory.rs
// version: 2
// version: 3
//! Config-only logical route inventory for Raw Transaction Ingest Desk.
@@ -16,6 +16,7 @@ struct RouteCapabilities {
has_standard_logs: bool,
has_standard_block: bool,
has_helius_transaction: bool,
helius_source_declared: bool,
helius_source_missing_secret: bool,
yellowstone_source_missing_secret: bool,
}
@@ -199,6 +200,9 @@ fn build_profile_inventory(
crate::RawIngestRouteUnavailableReason::ProfileUnresolved,
);
}
if component_id == crate::COMPOSITE_COMPONENT_ID_TRANSPORT_HELIUS {
capabilities.helius_source_declared = true;
}
if component.resolved().file_id().as_str() != ksp_config_lib::FILE_ID_STD_TRANSPORT {
return unavailable_profile(
profile_id,
@@ -257,7 +261,7 @@ fn build_configured_profile_routes(capabilities: &RouteCapabilities, network: &s
} else {
crate::RawIngestRouteUnavailableReason::MissingHeliusTransactionCapability
};
return vec![
let mut routes = vec![
route_with_requirements(
crate::RawIngestRouteId::YellowstoneHydrated,
network,
@@ -279,20 +283,23 @@ fn build_configured_profile_routes(capabilities: &RouteCapabilities, network: &s
network,
&[(capabilities.has_standard_block, crate::RawIngestRouteUnavailableReason::MissingWsBlockCapability)],
),
route_with_requirements(
];
if capabilities.helius_source_declared {
routes.push(route_with_requirements(
crate::RawIngestRouteId::HeliusTransactionHydrated,
network,
&[
(capabilities.has_helius_transaction, helius_reason),
(capabilities.has_get_transaction, crate::RawIngestRouteUnavailableReason::MissingHttpGetTransaction),
],
),
route_with_requirements(
crate::RawIngestRouteId::HttpBlockPolling,
network,
&[(capabilities.has_http_block_scan, crate::RawIngestRouteUnavailableReason::MissingHttpBlockScan)],
),
];
));
}
routes.push(route_with_requirements(
crate::RawIngestRouteId::HttpBlockPolling,
network,
&[(capabilities.has_http_block_scan, crate::RawIngestRouteUnavailableReason::MissingHttpBlockScan)],
));
return routes;
}
fn route_with_requirements(