@@ -11,7 +11,7 @@ use bdk_chain::{
11
11
Balance , BlockId , CanonicalizationParams , IndexedTxGraph , Merge ,
12
12
} ;
13
13
use bdk_testenv:: { anyhow, TestEnv } ;
14
- use bitcoin:: { hashes:: Hash , Block , OutPoint , ScriptBuf , WScriptHash } ;
14
+ use bitcoin:: { hashes:: Hash , Block , Network , OutPoint , ScriptBuf , WScriptHash } ;
15
15
use bitcoincore_rpc:: RpcApi ;
16
16
17
17
/// Ensure that blocks are emitted in order even after reorg.
@@ -351,7 +351,7 @@ fn tx_can_become_unconfirmed_after_reorg() -> anyhow::Result<()> {
351
351
. get_new_address ( None , None ) ?
352
352
. assume_checked ( ) ;
353
353
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 ) ?;
355
355
356
356
// setup receiver
357
357
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<()> {
867
867
868
868
Ok ( ( ) )
869
869
}
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