v0.3.10-pre.004

This commit is contained in:
2026-09-06 17:15:51 +02:00
parent 8309d829cc
commit e19a202565
20 changed files with 949 additions and 56 deletions

View File

@@ -1,5 +1,5 @@
// file: crates/ksp-raw-transaction-lib/src/canonical.rs
// version: 1
// version: 2
use sha2::Digest; // rust-rules: trait-import
@@ -75,6 +75,26 @@ impl crate::RawTransactionMaterial {
version,
};
}
/// Creates complete source-neutral RAW v1 material from a Base64 transaction wire that embeds its own canonical signature array.
pub fn binary_base64_with_embedded_signature(
network: ksp_store_api::RawNetworkId,
slot: u64,
block_time: std::option::Option<i64>,
transaction_data: impl std::convert::Into<std::string::String>,
meta: crate::RawTransactionWireField<serde_json::Value>,
version: crate::RawTransactionWireField<crate::RawTransactionVersion>,
transaction_index: crate::RawTransactionWireField<u32>,
) -> ksp_core_lib::Result<Self> {
let transaction_data = transaction_data.into();
let signature = crate::extract_raw_transaction_signature_from_binary_base64(transaction_data.as_str());
return match signature {
std::result::Result::Ok(signature) => {
std::result::Result::Ok(Self { block_time, meta, network, signature, slot, transaction_data, transaction_index, version })
},
std::result::Result::Err(error) => std::result::Result::Err(error),
};
}
}
impl std::fmt::Debug for crate::RawTransactionMaterial {