Skip to content

Commit 6fe681c

Browse files
committed
Improve error logging in Builder
1 parent c000e45 commit 6fe681c

File tree

1 file changed

+30
-12
lines changed

1 file changed

+30
-12
lines changed

src/builder.rs

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)