v0.3.8-pre.009

This commit is contained in:
2026-09-03 20:44:21 +02:00
parent 8c23625fee
commit 32c4b67541
25 changed files with 1319 additions and 44 deletions

View File

@@ -1,5 +1,5 @@
// file: crates/ksp-store-api/unit_tests/model/raw_inspection.rs
// version: 1
// version: 2
//! Unit tests for backend-neutral RAW inspection contracts.
@@ -154,3 +154,118 @@ fn account_summary_exposes_length_only_and_enforces_raw_account_bound() {
assert!(crate::RawAccountStateSummary::try_new(reference, 1000, crate::Pubkey::new_from_array([0x43_u8; 32]), false, 9, 16_777_217,).is_err());
return;
}
#[test]
fn observation_inspection_queries_require_network_coherence_and_exact_entity_filters() {
let network = match network() {
std::option::Option::Some(value) => value,
std::option::Option::None => return,
};
let other_network = match crate::RawNetworkId::new("devnet".to_owned()) {
std::result::Result::Ok(value) => value,
std::result::Result::Err(_) => return,
};
let limit = match crate::RawPageLimit::new(25) {
std::result::Result::Ok(value) => value,
std::result::Result::Err(_) => return,
};
let page = crate::RawInspectionPageRequest::new(125, limit);
let transaction_reference = crate::RawTransactionReference::new(network.clone(), crate::RawTransactionSignature::new([0x51_u8; 64]));
let transaction = crate::RawTransactionObservationInspectionQuery::try_new(
network.clone(),
std::option::Option::Some(transaction_reference.clone()),
crate::RawSortDirection::Descending,
page,
);
assert!(transaction.is_ok());
let transaction = match transaction {
std::result::Result::Ok(value) => value,
std::result::Result::Err(_) => return,
};
assert_eq!(transaction.page().offset(), 125);
assert_eq!(transaction.transaction(), std::option::Option::Some(&transaction_reference));
assert!(
crate::RawTransactionObservationInspectionQuery::try_new(
other_network.clone(),
std::option::Option::Some(transaction_reference),
crate::RawSortDirection::Ascending,
page,
)
.is_err()
);
let account_reference =
crate::RawAccountStateReference::new(network.clone(), crate::Pubkey::new_from_array([0x52_u8; 32]), 99, crate::RawContentHash::new([0x53_u8; 32]));
let account = crate::RawAccountObservationInspectionQuery::try_new(
network,
std::option::Option::Some(account_reference.clone()),
crate::RawSortDirection::Ascending,
page,
);
assert!(account.is_ok());
let account = match account {
std::result::Result::Ok(value) => value,
std::result::Result::Err(_) => return,
};
assert_eq!(account.account(), std::option::Option::Some(&account_reference));
let mismatched_account = crate::RawAccountStateReference::new(
other_network.clone(),
crate::Pubkey::new_from_array([0x54_u8; 32]),
100,
crate::RawContentHash::new([0x55_u8; 32]),
);
assert!(
crate::RawAccountObservationInspectionQuery::try_new(
other_network,
std::option::Option::Some(account_reference),
crate::RawSortDirection::Ascending,
page,
)
.is_err()
);
let _ = mismatched_account;
return;
}
#[test]
fn observation_summaries_expose_safe_provenance_without_raw_entity_bytes() {
let network = match network() {
std::option::Option::Some(value) => value,
std::option::Option::None => return,
};
let provider = match crate::RawProvenanceCode::new("publicnode".to_owned()) {
std::result::Result::Ok(value) => value,
std::result::Result::Err(_) => return,
};
let protocol = match crate::RawProvenanceCode::new("solana-json-rpc".to_owned()) {
std::result::Result::Ok(value) => value,
std::result::Result::Err(_) => return,
};
let method = match crate::RawProvenanceCode::new("getTransaction".to_owned()) {
std::result::Result::Ok(value) => value,
std::result::Result::Err(_) => return,
};
let received_at = match crate::RawTimestamp::from_unix_millis(1_750_000_000_000) {
std::result::Result::Ok(value) => value,
std::result::Result::Err(_) => return,
};
let provenance = crate::RawAcquisitionProvenance::new(provider, protocol, method, crate::RawAcquisitionOrigin::Backfill, received_at);
let transaction_reference = crate::RawTransactionReference::new(network.clone(), crate::RawTransactionSignature::new([0x61_u8; 64]));
let transaction =
crate::RawTransactionObservationSummary::new(crate::RawObservationKey::new([0x62_u8; 32]), transaction_reference.clone(), provenance.clone());
assert_eq!(transaction.transaction(), &transaction_reference);
assert_eq!(transaction.provenance().received_at(), received_at);
let account_reference =
crate::RawAccountStateReference::new(network, crate::Pubkey::new_from_array([0x63_u8; 32]), 700, crate::RawContentHash::new([0x64_u8; 32]));
let account = crate::RawAccountObservationSummary::new(
crate::RawObservationKey::new([0x65_u8; 32]),
account_reference.clone(),
provenance,
std::option::Option::Some(true),
std::option::Option::Some(crate::RawTransactionSignature::new([0x66_u8; 64])),
std::option::Option::Some(u64::MAX),
);
assert_eq!(account.account(), &account_reference);
assert_eq!(account.is_startup(), std::option::Option::Some(true));
assert_eq!(account.write_version(), std::option::Option::Some(u64::MAX));
return;
}