// file: crates/ksp-raw-transaction-lib/tests/public_api.rs // version: 1 #[test] fn pre_002_common_raw_contract_is_consumable_from_crate_root() { assert_eq!(ksp_raw_transaction_lib::RAW_TRANSACTION_FORMAT_ID, "ksp.solana.raw_transaction"); assert_eq!(ksp_raw_transaction_lib::RAW_TRANSACTION_FORMAT_VERSION, 1); assert_eq!(ksp_raw_transaction_lib::MIN_RAW_TRANSACTION_SIGNATURE_TEXT_BYTES, 64); assert_eq!(ksp_raw_transaction_lib::MAX_RAW_TRANSACTION_SIGNATURE_TEXT_BYTES, 88); let network = match ksp_store_api::RawNetworkId::new("devnet") { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => return, }; let signature = match ksp_raw_transaction_lib::parse_raw_transaction_signature("1".repeat(64).as_str()) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => return, }; let material = ksp_raw_transaction_lib::RawTransactionMaterial::binary_base64( network, signature, 5, std::option::Option::None, "AQID", ksp_raw_transaction_lib::RawTransactionWireField::Null, ksp_raw_transaction_lib::RawTransactionWireField::Value(ksp_raw_transaction_lib::RawTransactionVersion::Legacy), ksp_raw_transaction_lib::RawTransactionWireField::Omitted, ); let transaction = ksp_raw_transaction_lib::canonicalize_raw_transaction(material); assert!(transaction.is_ok()); return; } #[test] fn pre_002_acquisition_assembly_accepts_store_api_producer_owned_metadata() { let network = match ksp_store_api::RawNetworkId::new("devnet") { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => return, }; let signature = match ksp_raw_transaction_lib::parse_raw_transaction_signature("1".repeat(64).as_str()) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => return, }; let material = ksp_raw_transaction_lib::RawTransactionMaterial::binary_base64( network, signature, 5, std::option::Option::None, "AQID", ksp_raw_transaction_lib::RawTransactionWireField::Omitted, ksp_raw_transaction_lib::RawTransactionWireField::Omitted, ksp_raw_transaction_lib::RawTransactionWireField::Omitted, ); let transaction = match ksp_raw_transaction_lib::canonicalize_raw_transaction(material) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => return, }; let provider = match ksp_store_api::RawProvenanceCode::new("fixture") { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => return, }; let protocol = match ksp_store_api::RawProvenanceCode::new("fixture.protocol") { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => return, }; let method = match ksp_store_api::RawProvenanceCode::new("fixture.method") { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => return, }; let received_at = match ksp_store_api::RawTimestamp::from_unix_millis(1) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => return, }; let provenance = ksp_store_api::RawAcquisitionProvenance::new(provider, protocol, method, ksp_store_api::RawAcquisitionOrigin::Import, received_at); let acquisition = ksp_raw_transaction_lib::assemble_raw_transaction_acquisition(transaction, ksp_store_api::RawObservationKey::new([9_u8; 32]), provenance); assert_eq!(acquisition.transaction().reference(), acquisition.observation().transaction()); return; }