ckb-tx-pool 1.2.2

CKB Tx-pool stores transactions, which is designed for CKB Two Step Transaction Confirmation mechanism
Documentation
use crate::service::{BlockAssemblerMessage, TxPoolService};
use std::sync::Arc;

pub(crate) async fn process(service: TxPoolService, message: &BlockAssemblerMessage) {
    match message {
        BlockAssemblerMessage::Pending => {
            if let Some(ref block_assembler) = service.block_assembler {
                block_assembler.update_proposals(&service.tx_pool).await;
            }
        }
        BlockAssemblerMessage::Proposed => {
            if let Some(ref block_assembler) = service.block_assembler
                && let Err(e) = block_assembler.update_transactions(&service.tx_pool).await
            {
                ckb_logger::error!("block_assembler update_transactions error {}", e);
            }
        }
        BlockAssemblerMessage::Uncle => {
            if let Some(ref block_assembler) = service.block_assembler {
                block_assembler.update_uncles().await;
            }
        }
        BlockAssemblerMessage::Reset(snapshot) => {
            if let Some(ref block_assembler) = service.block_assembler
                && let Err(e) = block_assembler.update_blank(Arc::clone(snapshot)).await
            {
                ckb_logger::error!("block_assembler update_blank error {}", e);
            }
        }
    }
}