use neptune_consensus::transaction::transaction_kernel::TransactionKernel;
use neptune_consensus::transaction::validity::neptune_proof::NeptuneProof;
use crate::primitive_witness_update::PrimitiveWitnessUpdate;
use crate::transaction_kernel_id::TransactionKernelId;
use crate::transaction_kernel_id::Txid;
#[derive(Debug, Clone)]
pub enum MempoolUpdateJob {
PrimitiveWitness(PrimitiveWitnessUpdate),
ProofCollection(PrimitiveWitnessUpdate),
SingleProof {
old_kernel: TransactionKernel,
old_single_proof: NeptuneProof,
},
}
impl MempoolUpdateJob {
pub fn txid(&self) -> TransactionKernelId {
match self {
MempoolUpdateJob::PrimitiveWitness(primitive_witness_update) => {
primitive_witness_update.old_primitive_witness.kernel.txid()
}
MempoolUpdateJob::ProofCollection(primitive_witness_update) => {
primitive_witness_update.old_primitive_witness.kernel.txid()
}
MempoolUpdateJob::SingleProof { old_kernel, .. } => old_kernel.txid(),
}
}
}