v0.2.9-pre.002-fix.001

This commit is contained in:
2026-08-24 10:05:05 +02:00
parent 835de48cb7
commit 61fba107ef
7 changed files with 203 additions and 50 deletions

View File

@@ -1,5 +1,5 @@
// file: crates/ksp-onchain-transport-lib/src/grpc_channel.rs
// version: 1
// version: 2
/// Prepared Yellowstone gRPC channel owned by KSP Transport.
///
@@ -9,7 +9,7 @@ pub struct YellowstoneGrpcChannel {
endpoint_name: std::string::String,
provider: crate::YellowstoneGrpcProviderName,
cluster: crate::YellowstoneGrpcClusterName,
channel: tonic::transport::Channel,
_channel: tonic::transport::Channel,
}
impl YellowstoneGrpcChannel {
@@ -28,6 +28,19 @@ impl YellowstoneGrpcChannel {
.with_context("endpoint_name", endpoint.name()),
);
}
if tokio::runtime::Handle::try_current().is_err() {
ksp_logging_lib::warn!(
target: crate::TRACING_TARGET,
endpoint_name = endpoint.name(),
provider = endpoint.provider().as_str(),
cluster = endpoint.cluster().as_str(),
"Yellowstone gRPC channel preparation requires an active Tokio runtime"
);
return std::result::Result::Err(
ksp_core_lib::Error::new(crate::ERROR_CODE_GRPC_CHANNEL_FAILED, "Yellowstone gRPC channel requires an active Tokio runtime")
.with_context("endpoint_name", endpoint.name()),
);
}
let tonic_endpoint = match tonic::transport::Endpoint::from_shared(endpoint.url().as_str().to_owned()) {
std::result::Result::Ok(value) => value,
std::result::Result::Err(_) => {
@@ -60,7 +73,7 @@ impl YellowstoneGrpcChannel {
endpoint_name: endpoint.name().to_owned(),
provider: endpoint.provider().clone(),
cluster: endpoint.cluster().clone(),
channel,
_channel: channel,
});
}