// file: crates/ksp-onchain-transport-lib/unit_tests/rpc_common.rs // version: 2 #[test] fn shared_context_configs_preserve_commitment_and_min_context_slot() { let commitment = crate::SolanaCommitmentConfig::new(std::option::Option::Some(crate::SolanaCommitment::Finalized)); assert_eq!(commitment.to_json_value(), serde_json::json!({"commitment":"finalized"})); let context = crate::SolanaContextConfig::new(std::option::Option::Some(crate::SolanaCommitment::Confirmed), std::option::Option::Some(42)); assert_eq!(context.to_json_value(), serde_json::json!({"commitment":"confirmed","minContextSlot":42})); } #[test] fn rpc_context_preserves_nullable_api_version() { let with_version = crate::SolanaRpcContext::decode_wire("fixture", serde_json::json!({"slot":10,"apiVersion":"4.2.1"})).expect("context must decode"); assert_eq!(with_version.slot(), 10); assert_eq!(with_version.api_version(), std::option::Option::Some("4.2.1")); let response = crate::SolanaRpcResponse::new(with_version, 7_u64); assert_eq!(response.value(), &7_u64); let without_version = crate::SolanaRpcContext::decode_wire("fixture", serde_json::json!({"slot":11})).expect("context must decode"); assert_eq!(without_version.api_version(), std::option::Option::None); }