Add EncodedTransaction::Raw
This commit is contained in:
@@ -132,6 +132,8 @@ pub struct TransactionWithStatusMeta {
|
||||
pub enum TransactionEncoding {
|
||||
Binary,
|
||||
Json,
|
||||
JsonParsed, // same as Json in 1.1
|
||||
Raw,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
|
||||
@@ -139,11 +141,13 @@ pub enum TransactionEncoding {
|
||||
pub enum EncodedTransaction {
|
||||
Binary(String),
|
||||
Json(RpcTransaction),
|
||||
Raw(Transaction),
|
||||
}
|
||||
|
||||
impl EncodedTransaction {
|
||||
pub fn encode(transaction: Transaction, encoding: TransactionEncoding) -> Self {
|
||||
if encoding == TransactionEncoding::Json {
|
||||
match encoding {
|
||||
TransactionEncoding::Json | TransactionEncoding::JsonParsed => {
|
||||
EncodedTransaction::Json(RpcTransaction {
|
||||
signatures: transaction
|
||||
.signatures
|
||||
@@ -171,10 +175,11 @@ impl EncodedTransaction {
|
||||
.collect(),
|
||||
},
|
||||
})
|
||||
} else {
|
||||
EncodedTransaction::Binary(
|
||||
}
|
||||
TransactionEncoding::Binary => EncodedTransaction::Binary(
|
||||
bs58::encode(bincode::serialize(&transaction).unwrap()).into_string(),
|
||||
)
|
||||
),
|
||||
TransactionEncoding::Raw => EncodedTransaction::Raw(transaction),
|
||||
}
|
||||
}
|
||||
pub fn decode(&self) -> Option<Transaction> {
|
||||
@@ -184,6 +189,7 @@ impl EncodedTransaction {
|
||||
.into_vec()
|
||||
.ok()
|
||||
.and_then(|bytes| bincode::deserialize(&bytes).ok()),
|
||||
EncodedTransaction::Raw(transaction) => Some(transaction.clone()),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user