1
- use bitcoin:: { constants, Address , Amount , Network , ScriptBuf } ;
2
-
3
- use bdk_bitcoind_rpc:: bip158:: FilterIter ;
1
+ use bdk_bitcoind_rpc:: bip158:: { Error , Event , EventInner , FilterIter } ;
4
2
use bdk_core:: { BlockId , CheckPoint } ;
5
3
use bdk_testenv:: { anyhow, bitcoind, block_id, TestEnv } ;
4
+ use bitcoin:: { constants, Address , Amount , Network , ScriptBuf } ;
6
5
use bitcoincore_rpc:: RpcApi ;
7
6
8
7
fn testenv ( ) -> anyhow:: Result < TestEnv > {
@@ -111,7 +110,6 @@ fn get_tip_and_chain_update() -> anyhow::Result<()> {
111
110
112
111
#[ test]
113
112
fn filter_iter_returns_matched_blocks ( ) -> anyhow:: Result < ( ) > {
114
- use bdk_bitcoind_rpc:: bip158:: { Event , EventInner } ;
115
113
let env = testenv ( ) ?;
116
114
let rpc = env. rpc_client ( ) ;
117
115
while rpc. get_block_count ( ) ? < 101 {
@@ -148,7 +146,6 @@ fn filter_iter_returns_matched_blocks() -> anyhow::Result<()> {
148
146
149
147
#[ test]
150
148
fn filter_iter_error_no_scripts ( ) -> anyhow:: Result < ( ) > {
151
- use bdk_bitcoind_rpc:: bip158:: Error ;
152
149
let env = testenv ( ) ?;
153
150
let _ = env. mine_blocks ( 2 , None ) ?;
154
151
@@ -163,3 +160,24 @@ fn filter_iter_error_no_scripts() -> anyhow::Result<()> {
163
160
164
161
Ok ( ( ) )
165
162
}
163
+
164
+ #[ test]
165
+ fn filter_iter_error_wrong_network ( ) -> anyhow:: Result < ( ) > {
166
+ let env = testenv ( ) ?;
167
+ let rpc = env. rpc_client ( ) ;
168
+ let _ = env. mine_blocks ( 10 , None ) ?;
169
+
170
+ // Try to initialize FilterIter with a CP on the wrong network
171
+ let block_id = BlockId {
172
+ height : 0 ,
173
+ hash : bitcoin:: hashes:: Hash :: hash ( b"wrong-hash" ) ,
174
+ } ;
175
+ let cp = CheckPoint :: new ( block_id) ;
176
+ let mut iter = FilterIter :: new_with_checkpoint ( rpc, cp) ;
177
+ let err = iter
178
+ . get_tip ( )
179
+ . expect_err ( "`get_tip` should fail to find PoA" ) ;
180
+ assert ! ( matches!( err, Error :: ReorgDepthExceeded ) ) ;
181
+
182
+ Ok ( ( ) )
183
+ }
0 commit comments