lssa/sequencer_core/src/transaction_mempool.rs

38 lines
924 B
Rust
Raw Normal View History

2024-10-10 14:09:31 +03:00
use mempool::mempoolitem::MemPoolItem;
use serde::{Deserialize, Serialize};
use storage::{merkle_tree_public::TreeHashType, transaction::Transaction};
2024-10-10 14:09:31 +03:00
#[derive(Debug, Clone)]
2024-10-10 14:09:31 +03:00
pub struct TransactionMempool {
pub tx: Transaction,
}
impl Serialize for TransactionMempool {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
self.tx.serialize(serializer)
}
}
impl<'de> Deserialize<'de> for TransactionMempool {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
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;
2024-10-10 14:09:31 +03:00
fn identifier(&self) -> Self::Identifier {
self.tx.hash
}
}