@@ -32,7 +32,9 @@ fn get_bitcoind() -> &'static BitcoinD {
32
32
) ;
33
33
let mut conf = bitcoind:: Conf :: default ( ) ;
34
34
conf. network = "regtest" ;
35
- BitcoinD :: with_conf ( bitcoind_exe, & conf) . unwrap ( )
35
+ let bitcoind = BitcoinD :: with_conf ( bitcoind_exe, & conf) . unwrap ( ) ;
36
+ std:: thread:: sleep ( Duration :: from_secs ( 3 ) ) ;
37
+ bitcoind
36
38
} )
37
39
}
38
40
@@ -46,7 +48,9 @@ fn get_electrsd() -> &'static ElectrsD {
46
48
let mut conf = electrsd:: Conf :: default ( ) ;
47
49
conf. http_enabled = true ;
48
50
conf. network = "regtest" ;
49
- ElectrsD :: with_conf ( electrs_exe, & bitcoind, & conf) . unwrap ( )
51
+ let electrsd = ElectrsD :: with_conf ( electrs_exe, & bitcoind, & conf) . unwrap ( ) ;
52
+ std:: thread:: sleep ( Duration :: from_secs ( 3 ) ) ;
53
+ electrsd
50
54
} )
51
55
}
52
56
@@ -60,16 +64,19 @@ fn generate_blocks_and_wait(num: usize) {
60
64
}
61
65
62
66
fn wait_for_block ( min_height : usize ) {
63
- let mut header = get_electrsd ( ) . client . block_headers_subscribe ( ) . unwrap ( ) ;
67
+ let mut cur_height = get_electrsd ( ) . client . block_headers_subscribe ( ) . map_or ( 0 , |header| header. height ) ;
68
+
64
69
loop {
65
- if header . height >= min_height {
70
+ if cur_height >= min_height {
66
71
break ;
67
72
}
68
- header = exponential_backoff_poll ( || {
69
- get_electrsd ( ) . trigger ( ) . unwrap ( ) ;
70
- get_electrsd ( ) . client . ping ( ) . unwrap ( ) ;
71
- get_electrsd ( ) . client . block_headers_pop ( ) . unwrap ( )
73
+ let header = exponential_backoff_poll ( || {
74
+ get_electrsd ( ) . trigger ( ) . expect ( "failed to trigger electrsd" ) ;
75
+ get_electrsd ( ) . client . ping ( ) . expect ( "failed to ping electrsd" ) ;
76
+ get_electrsd ( ) . client . block_headers_pop ( ) . expect ( "failed to pop block header" )
72
77
} ) ;
78
+
79
+ cur_height = header. height ;
73
80
}
74
81
}
75
82
0 commit comments