kabu_node_player/
mempool.rs1use alloy_rpc_types::Header;
2use eyre::Result;
3use kabu_core_actors::SharedState;
4use kabu_evm_db::KabuDBError;
5use kabu_evm_utils::evm_env::header_to_block_env;
6use kabu_types_blockchain::Mempool;
7use kabu_types_entities::MarketState;
8use revm::{Database, DatabaseCommit, DatabaseRef};
9use tracing::debug;
10
11pub(crate) async fn replayer_mempool_task<DB>(
12 mempool: SharedState<Mempool>,
13 market_state: SharedState<MarketState<DB>>,
14 header: Header,
15) -> Result<()>
16where
17 DB: DatabaseRef<Error = KabuDBError> + DatabaseCommit + Database<Error = KabuDBError> + Send + Sync + Clone + 'static,
18{
19 let mut mempool_guard = mempool.write().await;
20 debug!("process_mempool_task");
21
22 if !mempool_guard.is_empty() {
23 debug!("Mempool is not empty : {}", mempool_guard.len());
24 let _market_state_guard = market_state.write().await;
25
26 for (_tx_hash, mempool_tx) in mempool_guard.txs.iter_mut() {
27 if mempool_tx.mined == Some(header.number) {
28 let _block_env = header_to_block_env(&header);
29
30 }
46 }
47 } else {
48 debug!("Mempool is empty");
49 }
50 Ok(())
51}