@@ -337,6 +337,7 @@ where
337337{
338338 inner : KeysManager ,
339339 wallet : Arc < Wallet < D , L > > ,
340+ logger : L ,
340341}
341342
342343impl < D , L : Deref > WalletKeysManager < D , L >
@@ -350,10 +351,10 @@ where
350351 /// `starting_time_nanos`.
351352 pub fn new (
352353 seed : & [ u8 ; 32 ] , starting_time_secs : u64 , starting_time_nanos : u32 ,
353- wallet : Arc < Wallet < D , L > > ,
354+ wallet : Arc < Wallet < D , L > > , logger : L ,
354355 ) -> Self {
355356 let inner = KeysManager :: new ( seed, starting_time_secs, starting_time_nanos) ;
356- Self { inner, wallet }
357+ Self { inner, wallet, logger }
357358 }
358359
359360 /// See [`KeysManager::spend_spendable_outputs`] for documentation on this method.
@@ -450,20 +451,35 @@ where
450451 }
451452
452453 fn get_destination_script ( & self ) -> Script {
453- let address =
454- self . wallet . get_new_address ( ) . expect ( "Failed to retrieve new address from wallet." ) ;
454+ let address = self . wallet . get_new_address ( ) . unwrap_or_else ( |e| {
455+ log_error ! ( self . logger, "Failed to retrieve new address from wallet: {}" , e) ;
456+ panic ! ( "Failed to retrieve new address from wallet" ) ;
457+ } ) ;
455458 address. script_pubkey ( )
456459 }
457460
458461 fn get_shutdown_scriptpubkey ( & self ) -> ShutdownScript {
459- let address =
460- self . wallet . get_new_address ( ) . expect ( "Failed to retrieve new address from wallet." ) ;
462+ let address = self . wallet . get_new_address ( ) . unwrap_or_else ( |e| {
463+ log_error ! ( self . logger, "Failed to retrieve new address from wallet: {}" , e) ;
464+ panic ! ( "Failed to retrieve new address from wallet" ) ;
465+ } ) ;
466+
461467 match address. payload {
462468 bitcoin:: util:: address:: Payload :: WitnessProgram { version, program } => {
463- return ShutdownScript :: new_witness_program ( version, & program)
464- . expect ( "Invalid shutdown script." ) ;
469+ return ShutdownScript :: new_witness_program ( version, & program) . unwrap_or_else (
470+ |e| {
471+ log_error ! ( self . logger, "Invalid shutdown script: {:?}" , e) ;
472+ panic ! ( "Invalid shutdown script." ) ;
473+ } ,
474+ ) ;
475+ }
476+ _ => {
477+ log_error ! (
478+ self . logger,
479+ "Tried to use a non-witness address. This must not ever happen."
480+ ) ;
481+ panic ! ( "Tried to use a non-witness address. This must not ever happen." ) ;
465482 }
466- _ => panic ! ( "Tried to use a non-witness address. This must not ever happen." ) ,
467483 }
468484 }
469485}
0 commit comments