@@ -10,6 +10,7 @@ use std::ops::Deref;
1010use std:: pin:: Pin ;
1111use std:: str:: FromStr ;
1212use std:: sync:: { Arc , Mutex } ;
13+ use std:: time:: Instant ;
1314
1415use bdk_chain:: spk_client:: { FullScanRequest , SyncRequest } ;
1516use bdk_wallet:: descriptor:: ExtendedDescriptor ;
@@ -320,7 +321,28 @@ impl Wallet {
320321 pub ( crate ) fn get_balances (
321322 & self , total_anchor_channels_reserve_sats : u64 ,
322323 ) -> Result < ( u64 , u64 ) , Error > {
323- let balance = self . inner . lock ( ) . unwrap ( ) . balance ( ) ;
324+ let lock_wait_start = Instant :: now ( ) ;
325+ log_info ! (
326+ self . logger,
327+ "Wallet get_balances starting (reserve_sats={})" ,
328+ total_anchor_channels_reserve_sats,
329+ ) ;
330+ let locked_wallet = self . inner . lock ( ) . unwrap ( ) ;
331+ let lock_wait_ms = lock_wait_start. elapsed ( ) . as_millis ( ) ;
332+ log_info ! (
333+ self . logger,
334+ "Wallet get_balances acquired wallet lock in {}ms" ,
335+ lock_wait_ms,
336+ ) ;
337+ let balance_start = Instant :: now ( ) ;
338+ let balance = locked_wallet. balance ( ) ;
339+ let balance_ms = balance_start. elapsed ( ) . as_millis ( ) ;
340+ log_info ! (
341+ self . logger,
342+ "Wallet get_balances fetched BDK balance in {}ms" ,
343+ balance_ms,
344+ ) ;
345+ drop ( locked_wallet) ;
324346
325347 // Make sure `list_confirmed_utxos` returns at least one `Utxo` we could use to spend/bump
326348 // Anchors if we have any confirmed amounts.
@@ -332,7 +354,14 @@ impl Wallet {
332354 ) ;
333355 }
334356
335- self . get_balances_inner ( balance, total_anchor_channels_reserve_sats)
357+ let balances = self . get_balances_inner ( balance, total_anchor_channels_reserve_sats) ?;
358+ log_info ! (
359+ self . logger,
360+ "Wallet get_balances computed balances total_sats={} spendable_sats={}" ,
361+ balances. 0 ,
362+ balances. 1 ,
363+ ) ;
364+ Ok ( balances)
336365 }
337366
338367 fn get_balances_inner (
0 commit comments