use crate::errors::TransactionParseError;
use crate::models::input_transaction::UiTransaction;
pub use crate::models::input_transaction::OutputFormat;
pub fn encode_ui_transaction(
tx: &UiTransaction,
format: OutputFormat,
) -> Result<String, TransactionParseError> {
match format {
OutputFormat::Json { pretty } => {
if pretty {
serde_json::to_string_pretty(tx)
.map_err(|e| TransactionParseError::Serialization(e.to_string()))
} else {
serde_json::to_string(tx)
.map_err(|e| TransactionParseError::Serialization(e.to_string()))
}
}
OutputFormat::Base64 | OutputFormat::Base58 => Err(TransactionParseError::InvalidFormat(
"Base64/Base58 for UiTransaction is not supported; use wire serializer on domain Transaction"
.into(),
)),
}
}