@@ -413,15 +413,21 @@ fn build_with_store_internal<K: KVStore + Sync + Send + 'static>(
413413 } ;
414414
415415 let xprv = bitcoin:: util:: bip32:: ExtendedPrivKey :: new_master ( config. network , & seed_bytes)
416- . map_err ( |_| BuildError :: InvalidSeedBytes ) ?;
416+ . map_err ( |e| {
417+ log_error ! ( logger, "Failed to derive master secret: {}" , e) ;
418+ BuildError :: InvalidSeedBytes
419+ } ) ?;
417420
418421 let wallet_name = bdk:: wallet:: wallet_name_from_descriptor (
419422 Bip84 ( xprv, bdk:: KeychainKind :: External ) ,
420423 Some ( Bip84 ( xprv, bdk:: KeychainKind :: Internal ) ) ,
421424 config. network ,
422425 & Secp256k1 :: new ( ) ,
423426 )
424- . map_err ( |_| BuildError :: WalletSetupFailed ) ?;
427+ . map_err ( |e| {
428+ log_error ! ( logger, "Failed to derive wallet name: {}" , e) ;
429+ BuildError :: WalletSetupFailed
430+ } ) ?;
425431
426432 let database_path = format ! ( "{}/bdk_wallet_{}.sqlite" , config. storage_dir_path, wallet_name) ;
427433 let database = SqliteDatabase :: new ( database_path) ;
@@ -432,7 +438,10 @@ fn build_with_store_internal<K: KVStore + Sync + Send + 'static>(
432438 config. network ,
433439 database,
434440 )
435- . map_err ( |_| BuildError :: WalletSetupFailed ) ?;
441+ . map_err ( |e| {
442+ log_error ! ( logger, "Failed to set up wallet: {}" , e) ;
443+ BuildError :: WalletSetupFailed
444+ } ) ?;
436445
437446 let ( blockchain, tx_sync) = match chain_data_source_config {
438447 Some ( ChainDataSourceConfig :: Esplora ( server_url) ) => {
@@ -466,9 +475,11 @@ fn build_with_store_internal<K: KVStore + Sync + Send + 'static>(
466475 ) ) ;
467476
468477 // Initialize the KeysManager
469- let cur_time = SystemTime :: now ( )
470- . duration_since ( SystemTime :: UNIX_EPOCH )
471- . map_err ( |_| BuildError :: InvalidSystemTime ) ?;
478+ let cur_time = SystemTime :: now ( ) . duration_since ( SystemTime :: UNIX_EPOCH ) . map_err ( |e| {
479+ log_error ! ( logger, "Failed to get current time: {}" , e) ;
480+ BuildError :: InvalidSystemTime
481+ } ) ?;
482+
472483 let ldk_seed_bytes: [ u8 ; 32 ] = xprv. private_key . secret_bytes ( ) ;
473484 let keys_manager = Arc :: new ( KeysManager :: new (
474485 & ldk_seed_bytes,
@@ -609,10 +620,6 @@ fn build_with_store_internal<K: KVStore + Sync + Send + 'static>(
609620 ) ) ;
610621 let ephemeral_bytes: [ u8 ; 32 ] = keys_manager. get_secure_random_bytes ( ) ;
611622
612- let cur_time = SystemTime :: now ( )
613- . duration_since ( SystemTime :: UNIX_EPOCH )
614- . map_err ( |_| BuildError :: InvalidSystemTime ) ?;
615-
616623 // Initialize the GossipSource
617624 // Use the configured gossip source, if the user set one, otherwise default to P2PNetwork.
618625 let gossip_source_config = gossip_source_config. unwrap_or ( & GossipSourceConfig :: P2PNetwork ) ;
@@ -628,7 +635,10 @@ fn build_with_store_internal<K: KVStore + Sync + Send + 'static>(
628635 Arc :: clone ( & kv_store) ,
629636 Arc :: clone ( & logger) ,
630637 )
631- . map_err ( |_| BuildError :: WriteFailed ) ?;
638+ . map_err ( |e| {
639+ log_error ! ( logger, "Failed writing to store: {}" , e) ;
640+ BuildError :: WriteFailed
641+ } ) ?;
632642 p2p_source
633643 }
634644 GossipSourceConfig :: RapidGossipSync ( rgs_server) => {
@@ -664,9 +674,17 @@ fn build_with_store_internal<K: KVStore + Sync + Send + 'static>(
664674 }
665675 } ;
666676
677+ let cur_time = SystemTime :: now ( ) . duration_since ( SystemTime :: UNIX_EPOCH ) . map_err ( |e| {
678+ log_error ! ( logger, "Failed to get current time: {}" , e) ;
679+ BuildError :: InvalidSystemTime
680+ } ) ?;
681+
667682 let peer_manager = Arc :: new ( PeerManager :: new (
668683 msg_handler,
669- cur_time. as_secs ( ) . try_into ( ) . map_err ( |_| BuildError :: InvalidSystemTime ) ?,
684+ cur_time. as_secs ( ) . try_into ( ) . map_err ( |e| {
685+ log_error ! ( logger, "Failed to get current time: {}" , e) ;
686+ BuildError :: InvalidSystemTime
687+ } ) ?,
670688 & ephemeral_bytes,
671689 Arc :: clone ( & logger) ,
672690 IgnoringMessageHandler { } ,
0 commit comments