v0.3.13-pre.002

This commit is contained in:
2026-09-10 09:50:42 +02:00
parent ee0359efd5
commit 793178b345
15 changed files with 976 additions and 41 deletions

View File

@@ -1,5 +1,5 @@
// file: crates/ksp-onchain-transport-lib/unit_tests/grpc_subscribe.rs
// version: 5
// version: 6
fn filter_name(value: &str) -> crate::YellowstoneSubscribeFilterName {
return crate::YellowstoneSubscribeFilterName::new(value).expect("fixture filter name must validate");
@@ -138,6 +138,37 @@ fn yellowstone_subscribe_common_bounds_reject_before_wire_conversion() {
assert!(filters.insert_account_filter(excess_name, crate::YellowstoneSubscribeAccountFilter::new()).is_err());
}
#[test]
fn yellowstone_subscribe_request_identity_is_order_stable_exact_and_debug_redacted() {
let mut first = crate::YellowstoneSubscribeRequest::new();
let mut second = crate::YellowstoneSubscribeRequest::new();
let mut changed = crate::YellowstoneSubscribeRequest::new();
let mut filter_a = crate::YellowstoneSubscribeTransactionFilter::new();
filter_a.set_failed(std::option::Option::Some(false));
let mut filter_b = crate::YellowstoneSubscribeTransactionFilter::new();
filter_b.set_vote(std::option::Option::Some(false));
assert!(first.insert_transaction_filter(filter_name("identity-filter-beta-canary"), filter_b.clone()).is_ok());
assert!(first.insert_transaction_filter(filter_name("identity-filter-alpha-canary"), filter_a.clone()).is_ok());
assert!(second.insert_transaction_filter(filter_name("identity-filter-alpha-canary"), filter_a.clone()).is_ok());
assert!(second.insert_transaction_filter(filter_name("identity-filter-beta-canary"), filter_b.clone()).is_ok());
filter_a.set_failed(std::option::Option::Some(true));
assert!(changed.insert_transaction_filter(filter_name("identity-filter-alpha-canary"), filter_a).is_ok());
assert!(changed.insert_transaction_filter(filter_name("identity-filter-beta-canary"), filter_b).is_ok());
first.set_commitment(std::option::Option::Some(crate::SolanaCommitment::Confirmed));
second.set_commitment(std::option::Option::Some(crate::SolanaCommitment::Confirmed));
changed.set_commitment(std::option::Option::Some(crate::SolanaCommitment::Confirmed));
let first_identity = first.identity().expect("first request identity must build");
let second_identity = second.identity().expect("second request identity must build");
let changed_identity = changed.identity().expect("changed request identity must build");
assert_eq!(first_identity, second_identity);
assert_ne!(first_identity, changed_identity);
let debug = std::format!("{first_identity:?}");
assert!(debug.contains("byte_len"));
assert!(!debug.contains("identity-filter-alpha-canary"));
assert!(!debug.contains("identity-filter-beta-canary"));
return;
}
#[test]
fn yellowstone_subscribe_debug_omits_filter_names_and_future_payloads() {
let mut request = crate::YellowstoneSubscribeRequest::new();