@@ -142,8 +142,8 @@ pub struct LiquidityManager<
142
142
provider_config : Option < LiquidityProviderConfig > ,
143
143
channel_manager : Arc < ChannelManager < M , T , ES , NS , SP , F , R , L > > ,
144
144
chain_source : Option < C > ,
145
- genesis_hash : BlockHash ,
146
- best_block : RwLock < BestBlock > ,
145
+ genesis_hash : Option < BlockHash > ,
146
+ best_block : Option < RwLock < BestBlock > > ,
147
147
}
148
148
149
149
impl <
@@ -183,7 +183,7 @@ where
183
183
pub fn new (
184
184
entropy_source : ES , provider_config : Option < LiquidityProviderConfig > ,
185
185
channel_manager : Arc < ChannelManager < M , T , ES , NS , SP , F , R , L > > , chain_source : Option < C > ,
186
- chain_params : ChainParameters ,
186
+ chain_params : Option < ChainParameters > ,
187
187
) -> Self
188
188
where {
189
189
let pending_messages = Arc :: new ( Mutex :: new ( vec ! [ ] ) ) ;
@@ -229,8 +229,9 @@ where {
229
229
provider_config,
230
230
channel_manager,
231
231
chain_source,
232
- genesis_hash : genesis_block ( chain_params. network ) . header . block_hash ( ) ,
233
- best_block : RwLock :: new ( chain_params. best_block ) ,
232
+ genesis_hash : chain_params
233
+ . map ( |chain_params| genesis_block ( chain_params. network ) . header . block_hash ( ) ) ,
234
+ best_block : chain_params. map ( |chain_params| RwLock :: new ( chain_params. best_block ) ) ,
234
235
}
235
236
}
236
237
@@ -684,8 +685,8 @@ where
684
685
& self , header : & bitcoin:: BlockHeader , txdata : & chain:: transaction:: TransactionData ,
685
686
height : u32 ,
686
687
) {
687
- {
688
- let best_block = self . best_block . read ( ) . unwrap ( ) ;
688
+ if let Some ( best_block ) = & self . best_block {
689
+ let best_block = best_block. read ( ) . unwrap ( ) ;
689
690
assert_eq ! ( best_block. block_hash( ) , header. prev_blockhash,
690
691
"Blocks must be connected in chain-order - the connected header must build on the last connected header" ) ;
691
692
assert_eq ! ( best_block. height( ) , height - 1 ,
@@ -698,8 +699,8 @@ where
698
699
699
700
fn block_disconnected ( & self , header : & bitcoin:: BlockHeader , height : u32 ) {
700
701
let new_height = height - 1 ;
701
- {
702
- let mut best_block = self . best_block . write ( ) . unwrap ( ) ;
702
+ if let Some ( best_block ) = & self . best_block {
703
+ let mut best_block = best_block. write ( ) . unwrap ( ) ;
703
704
assert_eq ! ( best_block. block_hash( ) , header. block_hash( ) ,
704
705
"Blocks must be disconnected in chain-order - the disconnected header must be the last connected header" ) ;
705
706
assert_eq ! ( best_block. height( ) , height,
0 commit comments