@@ -337,6 +337,7 @@ where
337
337
{
338
338
inner : KeysManager ,
339
339
wallet : Arc < Wallet < D , L > > ,
340
+ logger : L ,
340
341
}
341
342
342
343
impl < D , L : Deref > WalletKeysManager < D , L >
@@ -350,10 +351,10 @@ where
350
351
/// `starting_time_nanos`.
351
352
pub fn new (
352
353
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 ,
354
355
) -> Self {
355
356
let inner = KeysManager :: new ( seed, starting_time_secs, starting_time_nanos) ;
356
- Self { inner, wallet }
357
+ Self { inner, wallet, logger }
357
358
}
358
359
359
360
/// See [`KeysManager::spend_spendable_outputs`] for documentation on this method.
@@ -450,20 +451,35 @@ where
450
451
}
451
452
452
453
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
+ } ) ;
455
458
address. script_pubkey ( )
456
459
}
457
460
458
461
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
+
461
467
match address. payload {
462
468
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." ) ;
465
482
}
466
- _ => panic ! ( "Tried to use a non-witness address. This must not ever happen." ) ,
467
483
}
468
484
}
469
485
}
0 commit comments