@@ -11,7 +11,7 @@ use bdk_chain::{
1111 Balance , BlockId , CanonicalizationParams , IndexedTxGraph , Merge ,
1212} ;
1313use bdk_testenv:: { anyhow, TestEnv } ;
14- use bitcoin:: { hashes:: Hash , Block , OutPoint , ScriptBuf , WScriptHash } ;
14+ use bitcoin:: { hashes:: Hash , Block , Network , OutPoint , ScriptBuf , WScriptHash } ;
1515use bitcoincore_rpc:: RpcApi ;
1616
1717/// Ensure that blocks are emitted in order even after reorg.
@@ -351,7 +351,7 @@ fn tx_can_become_unconfirmed_after_reorg() -> anyhow::Result<()> {
351351 . get_new_address ( None , None ) ?
352352 . assume_checked ( ) ;
353353 let spk_to_track = ScriptBuf :: new_p2wsh ( & WScriptHash :: all_zeros ( ) ) ;
354- let addr_to_track = Address :: from_script ( & spk_to_track, bitcoin :: Network :: Regtest ) ?;
354+ let addr_to_track = Address :: from_script ( & spk_to_track, Network :: Regtest ) ?;
355355
356356 // setup receiver
357357 let ( mut recv_chain, _) = LocalChain :: from_genesis_hash ( env. rpc_client ( ) . get_block_hash ( 0 ) ?) ;
@@ -867,3 +867,37 @@ fn test_expect_tx_evicted() -> anyhow::Result<()> {
867867
868868 Ok ( ( ) )
869869}
870+
871+ #[ test]
872+ fn detect_new_mempool_txs ( ) -> anyhow:: Result < ( ) > {
873+ let env = TestEnv :: new ( ) ?;
874+ env. mine_blocks ( 101 , None ) ?;
875+
876+ let addr = env
877+ . rpc_client ( )
878+ . get_new_address ( None , None ) ?
879+ . require_network ( Network :: Regtest ) ?;
880+
881+ let mut emitter = Emitter :: new (
882+ env. rpc_client ( ) ,
883+ CheckPoint :: new ( BlockId {
884+ height : 0 ,
885+ hash : env. rpc_client ( ) . get_block_hash ( 0 ) ?,
886+ } ) ,
887+ 0 ,
888+ NO_EXPECTED_MEMPOOL_TXIDS ,
889+ ) ;
890+
891+ while let Some ( _) = emitter. next_block ( ) ? { }
892+
893+ for n in 0 ..5 {
894+ let txid = env. send ( & addr, Amount :: ONE_BTC ) ?;
895+ let new_txs = emitter. mempool ( ) ?. new_txs ;
896+ assert ! (
897+ new_txs. iter( ) . any( |( tx, _) | tx. compute_txid( ) == txid) ,
898+ "must detect new tx {n}"
899+ ) ;
900+ }
901+
902+ Ok ( ( ) )
903+ }
0 commit comments