@@ -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 ) ?) ;
@@ -868,3 +868,37 @@ fn test_expect_tx_evicted() -> anyhow::Result<()> {
868868
869869 Ok ( ( ) )
870870}
871+
872+ #[ test]
873+ fn detect_new_mempool_txs ( ) -> anyhow:: Result < ( ) > {
874+ let env = TestEnv :: new ( ) ?;
875+ env. mine_blocks ( 101 , None ) ?;
876+
877+ let addr = env
878+ . rpc_client ( )
879+ . get_new_address ( None , None ) ?
880+ . require_network ( Network :: Regtest ) ?;
881+
882+ let mut emitter = Emitter :: new (
883+ env. rpc_client ( ) ,
884+ CheckPoint :: new ( BlockId {
885+ height : 0 ,
886+ hash : env. rpc_client ( ) . get_block_hash ( 0 ) ?,
887+ } ) ,
888+ 0 ,
889+ NO_EXPECTED_MEMPOOL_TXIDS ,
890+ ) ;
891+
892+ while let Some ( _) = emitter. next_block ( ) ? { }
893+
894+ for n in 0 ..5 {
895+ let txid = env. send ( & addr, Amount :: ONE_BTC ) ?;
896+ let new_txs = emitter. mempool ( ) ?. new_txs ;
897+ assert ! (
898+ new_txs. iter( ) . any( |( tx, _) | tx. compute_txid( ) == txid) ,
899+ "must detect new tx {n}"
900+ ) ;
901+ }
902+
903+ Ok ( ( ) )
904+ }
0 commit comments