v0.3.12-pre.004-fix.001

This commit is contained in:
2026-09-09 11:55:36 +02:00
parent 531ca851c4
commit df1dbbb8fb
5 changed files with 133 additions and 16 deletions

View File

@@ -1,5 +1,5 @@
// file: crates/ksp-worker-raw-transaction-ingest-lib/src/runtime_resources.rs
// version: 4
// version: 5
#[cfg(test)]
use sha2::Digest; // rust-rules: trait-import
@@ -386,7 +386,7 @@ fn project_yellowstone_signal<T: RawTransactionIngestYellowstoneSignalView>(
#[cfg(test)]
enum RawTransactionIngestHydrationOutcome {
Available(crate::RawTransactionIngress),
Available(std::boxed::Box<crate::RawTransactionIngress>),
Missing(ksp_store_lib::RawTransactionReference),
}
@@ -434,12 +434,11 @@ async fn hydrate_yellowstone_signal(
if transaction.slot() != signal.slot {
return std::result::Result::Err(crate::runtime_error("hydration.slot_mismatch"));
}
if let std::option::Option::Some(expected_index) = signal.transaction_index {
if let ksp_onchain_transport_lib::SolanaWireField::Value(actual_index) = transaction.transaction_index() {
if expected_index != u64::from(*actual_index) {
return std::result::Result::Err(crate::runtime_error("hydration.transaction_index_mismatch"));
}
}
if let std::option::Option::Some(expected_index) = signal.transaction_index
&& let ksp_onchain_transport_lib::SolanaWireField::Value(actual_index) = transaction.transaction_index()
&& expected_index != u64::from(*actual_index)
{
return std::result::Result::Err(crate::runtime_error("hydration.transaction_index_mismatch"));
}
let transaction_data = match transaction.transaction() {
ksp_onchain_transport_lib::SolanaEncodedTransaction::Binary { data, encoding }
@@ -482,12 +481,12 @@ async fn hydrate_yellowstone_signal(
}),
map_hydration_wire_field(transaction.transaction_index(), |value| return *value),
);
return std::result::Result::Ok(RawTransactionIngestHydrationOutcome::Available(crate::RawTransactionIngress {
return std::result::Result::Ok(RawTransactionIngestHydrationOutcome::Available(std::boxed::Box::new(crate::RawTransactionIngress {
material,
network: signal.network,
provenance,
source_key,
}));
})));
}
#[cfg(test)]