v0.3.13-pre.008

This commit is contained in:
2026-09-10 17:52:35 +02:00
parent 8bb530e9b4
commit 1f2720463b
18 changed files with 899 additions and 36 deletions

View File

@@ -1,5 +1,5 @@
// file: crates/ksp-worker-raw-transaction-ingest-lib/unit_tests/admission.rs
// version: 4
// version: 5
fn material(
network: &str,
@@ -262,3 +262,52 @@ async fn pre_009_full_queue_dequeue_marks_source_neutral_backpressure_observatio
assert!(!admission.take_backpressure_wait_observed());
return;
}
#[tokio::test(flavor = "current_thread")]
async fn v0_3_13_pre_008_distinct_source_keys_produce_distinct_idempotent_observation_keys() {
let (network, first_material) = match material("mainnet", 51, "AQID") {
std::option::Option::Some(value) => value,
std::option::Option::None => return,
};
let (_, second_material) = match material("mainnet", 51, "AQID") {
std::option::Option::Some(value) => value,
std::option::Option::None => return,
};
let first_provenance = match provenance() {
std::option::Option::Some(value) => value,
std::option::Option::None => return,
};
let second_provenance = match provenance() {
std::option::Option::Some(value) => value,
std::option::Option::None => return,
};
let (mut admission, sender) = crate::RawTransactionAdmission::new(2);
let first_ingress = crate::RawTransactionIngress {
material: first_material,
network: network.clone(),
provenance: first_provenance,
source_key: [11_u8; 32],
};
let second_ingress = crate::RawTransactionIngress {
material: second_material,
network: network.clone(),
provenance: second_provenance,
source_key: [12_u8; 32],
};
if sender.send(first_ingress).await.is_err() || sender.send(second_ingress).await.is_err() {
return;
}
std::mem::drop(sender);
let first = match admission.receive(&network).await {
std::result::Result::Ok(std::option::Option::Some(value)) => value,
_ => return,
};
let second = match admission.receive(&network).await {
std::result::Result::Ok(std::option::Option::Some(value)) => value,
_ => return,
};
assert_eq!(first.transaction().reference(), second.transaction().reference());
assert_eq!(first.transaction().payload().content_hash(), second.transaction().payload().content_hash());
assert_ne!(first.observation().observation_key(), second.observation().observation_key());
return;
}