use common::{merkle_tree_public::TreeHashType, transaction::Transaction}; use mempool::mempoolitem::MemPoolItem; use serde::{Deserialize, Serialize}; #[derive(Debug, Clone)] pub struct TransactionMempool { pub tx: Transaction, } impl From for TransactionMempool { fn from(value: Transaction) -> Self { Self { tx: value } } } impl Serialize for TransactionMempool { fn serialize(&self, serializer: S) -> Result where S: serde::Serializer, { self.tx.serialize(serializer) } } impl<'de> Deserialize<'de> for TransactionMempool { fn deserialize(deserializer: D) -> Result where D: serde::Deserializer<'de>, { match Transaction::deserialize(deserializer) { Ok(tx) => Ok(TransactionMempool { tx }), Err(err) => Err(err), } } } impl MemPoolItem for TransactionMempool { type Identifier = TreeHashType; fn identifier(&self) -> Self::Identifier { self.tx.hash } }