// file: crates/ksp-raw-transaction-lib/unit_tests/acquisition.rs // version: 1 fn canonical_transaction() -> std::option::Option { let network = match ksp_store_api::RawNetworkId::new("devnet") { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => return std::option::Option::None, }; let signature = match crate::parse_raw_transaction_signature("1".repeat(64).as_str()) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => return std::option::Option::None, }; let material = crate::RawTransactionMaterial::binary_base64( network, signature, 42, std::option::Option::None, "AQID", crate::RawTransactionWireField::Omitted, crate::RawTransactionWireField::Omitted, crate::RawTransactionWireField::Omitted, ); return match crate::canonicalize_raw_transaction(material) { std::result::Result::Ok(value) => std::option::Option::Some(value), std::result::Result::Err(_) => std::option::Option::None, }; } fn provenance() -> std::option::Option { let provider = match ksp_store_api::RawProvenanceCode::new("fixture") { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => return std::option::Option::None, }; let protocol = match ksp_store_api::RawProvenanceCode::new("fixture.protocol") { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => return std::option::Option::None, }; let method = match ksp_store_api::RawProvenanceCode::new("fixture.method") { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => return std::option::Option::None, }; let received_at = match ksp_store_api::RawTimestamp::from_unix_millis(1_700_000_000_000) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => return std::option::Option::None, }; return std::option::Option::Some(ksp_store_api::RawAcquisitionProvenance::new( provider, protocol, method, ksp_store_api::RawAcquisitionOrigin::Import, received_at, )); } #[test] fn pre_002_acquisition_preserves_producer_key_and_exact_transaction_reference() { let transaction = match canonical_transaction() { std::option::Option::Some(value) => value, std::option::Option::None => return, }; let provenance = match provenance() { std::option::Option::Some(value) => value, std::option::Option::None => return, }; let key = ksp_store_api::RawObservationKey::new([7_u8; 32]); let acquisition = crate::assemble_raw_transaction_acquisition(transaction, key, provenance); assert_eq!(acquisition.observation().observation_key(), key); assert_eq!(acquisition.observation().transaction(), acquisition.transaction().reference()); assert_eq!(std::format!("{acquisition:?}"), "RawTransactionAcquisition(..)"); let (transaction, observation) = acquisition.into_parts(); assert_eq!(observation.transaction(), transaction.reference()); return; }