@@ -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,15 +64,22 @@ 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 header = match get_electrsd ( ) . client . block_headers_subscribe ( ) {
68
+ Ok ( header) => header,
69
+ Err ( _) => {
70
+ std:: thread:: sleep ( Duration :: from_secs ( 3 ) ) ;
71
+ get_electrsd ( ) . client . block_headers_subscribe ( ) . expect ( "failed to subscribe to block headers" )
72
+ }
73
+ } ;
74
+
64
75
loop {
65
76
if header. height >= min_height {
66
77
break ;
67
78
}
68
79
header = exponential_backoff_poll ( || {
69
- get_electrsd ( ) . trigger ( ) . unwrap ( ) ;
70
- get_electrsd ( ) . client . ping ( ) . unwrap ( ) ;
71
- get_electrsd ( ) . client . block_headers_pop ( ) . unwrap ( )
80
+ get_electrsd ( ) . trigger ( ) . expect ( "failed to trigger electrsd" ) ;
81
+ get_electrsd ( ) . client . ping ( ) . expect ( "failed to ping electrsd" ) ;
82
+ get_electrsd ( ) . client . block_headers_pop ( ) . expect ( "failed to pop block header" )
72
83
} ) ;
73
84
}
74
85
}
0 commit comments