@@ -24,7 +24,7 @@ use common::{
2424 generate_listening_addresses, open_channel, open_channel_push_amt, open_channel_with_all,
2525 premine_and_distribute_funds, premine_blocks, prepare_rbf, random_chain_source, random_config,
2626 random_listening_addresses, setup_bitcoind_and_electrsd, setup_builder, setup_node,
27- setup_two_nodes, splice_in_with_all , skip_if_cbf , wait_for_cbf_sync, wait_for_tx,
27+ setup_two_nodes, skip_if_cbf , splice_in_with_all , wait_for_cbf_sync, wait_for_tx,
2828 TestChainSource , TestStoreType , TestSyncStore ,
2929} ;
3030use electrsd:: corepc_node:: Node as BitcoinD ;
@@ -2911,7 +2911,8 @@ async fn fee_rate_estimation_after_manual_sync_cbf() {
29112911 )
29122912 . await ;
29132913
2914- wait_for_cbf_sync ( & node) . await ;
2914+ wait_for_cbf_sync ( & node, || node. status ( ) . latest_fee_rate_cache_update_timestamp . is_some ( ) )
2915+ . await ;
29152916 let first_fee_update = node. status ( ) . latest_fee_rate_cache_update_timestamp ;
29162917 assert ! ( first_fee_update. is_some( ) ) ;
29172918
@@ -2941,7 +2942,10 @@ async fn repeated_manual_sync_cbf() {
29412942 )
29422943 . await ;
29432944
2944- wait_for_cbf_sync ( & node) . await ;
2945+ wait_for_cbf_sync ( & node, || {
2946+ node. list_balances ( ) . spendable_onchain_balance_sats == premine_amount_sat
2947+ } )
2948+ . await ;
29452949 assert_eq ! ( node. list_balances( ) . spendable_onchain_balance_sats, premine_amount_sat) ;
29462950
29472951 // Regression: the second manual sync must not block forever.
@@ -2986,7 +2990,10 @@ async fn start_stop_reinit_cbf() {
29862990 )
29872991 . await ;
29882992
2989- wait_for_cbf_sync ( & node) . await ;
2993+ wait_for_cbf_sync ( & node, || {
2994+ node. list_balances ( ) . spendable_onchain_balance_sats == expected_amount. to_sat ( )
2995+ } )
2996+ . await ;
29902997 assert_eq ! ( node. list_balances( ) . spendable_onchain_balance_sats, expected_amount. to_sat( ) ) ;
29912998
29922999 node. stop ( ) . unwrap ( ) ;
@@ -3014,7 +3021,11 @@ async fn start_stop_reinit_cbf() {
30143021 expected_amount. to_sat( )
30153022 ) ;
30163023
3017- wait_for_cbf_sync ( & reinitialized_node) . await ;
3024+ wait_for_cbf_sync ( & reinitialized_node, || {
3025+ reinitialized_node. list_balances ( ) . spendable_onchain_balance_sats
3026+ == expected_amount. to_sat ( )
3027+ } )
3028+ . await ;
30183029 assert_eq ! (
30193030 reinitialized_node. list_balances( ) . spendable_onchain_balance_sats,
30203031 expected_amount. to_sat( )
@@ -3044,7 +3055,10 @@ async fn onchain_wallet_recovery_cbf() {
30443055 )
30453056 . await ;
30463057
3047- wait_for_cbf_sync ( & original_node) . await ;
3058+ wait_for_cbf_sync ( & original_node, || {
3059+ original_node. list_balances ( ) . spendable_onchain_balance_sats == premine_amount_sat
3060+ } )
3061+ . await ;
30483062 assert_eq ! ( original_node. list_balances( ) . spendable_onchain_balance_sats, premine_amount_sat) ;
30493063
30503064 let addr_2 = original_node. onchain_payment ( ) . new_address ( ) . unwrap ( ) ;
@@ -3060,7 +3074,10 @@ async fn onchain_wallet_recovery_cbf() {
30603074
30613075 generate_blocks_and_wait ( & bitcoind. client , & electrsd. client , 1 ) . await ;
30623076
3063- wait_for_cbf_sync ( & original_node) . await ;
3077+ wait_for_cbf_sync ( & original_node, || {
3078+ original_node. list_balances ( ) . spendable_onchain_balance_sats == premine_amount_sat * 2
3079+ } )
3080+ . await ;
30643081 assert_eq ! (
30653082 original_node. list_balances( ) . spendable_onchain_balance_sats,
30663083 premine_amount_sat * 2
@@ -3075,7 +3092,10 @@ async fn onchain_wallet_recovery_cbf() {
30753092 recovered_config. recovery_mode = true ;
30763093 let recovered_node = setup_node ( & chain_source, recovered_config) ;
30773094
3078- wait_for_cbf_sync ( & recovered_node) . await ;
3095+ wait_for_cbf_sync ( & recovered_node, || {
3096+ recovered_node. list_balances ( ) . spendable_onchain_balance_sats == premine_amount_sat * 2
3097+ } )
3098+ . await ;
30793099 assert_eq ! (
30803100 recovered_node. list_balances( ) . spendable_onchain_balance_sats,
30813101 premine_amount_sat * 2
@@ -3098,7 +3118,10 @@ async fn onchain_wallet_recovery_cbf() {
30983118
30993119 generate_blocks_and_wait ( & bitcoind. client , & electrsd. client , 1 ) . await ;
31003120
3101- wait_for_cbf_sync ( & recovered_node) . await ;
3121+ wait_for_cbf_sync ( & recovered_node, || {
3122+ recovered_node. list_balances ( ) . spendable_onchain_balance_sats == premine_amount_sat * 3
3123+ } )
3124+ . await ;
31023125 assert_eq ! (
31033126 recovered_node. list_balances( ) . spendable_onchain_balance_sats,
31043127 premine_amount_sat * 3
@@ -3125,7 +3148,10 @@ async fn onchain_send_receive_cbf() {
31253148 )
31263149 . await ;
31273150
3128- wait_for_cbf_sync ( & node_a) . await ;
3151+ wait_for_cbf_sync ( & node_a, || {
3152+ node_a. list_balances ( ) . spendable_onchain_balance_sats == premine_amount_sat
3153+ } )
3154+ . await ;
31293155 node_b. sync_wallets ( ) . unwrap ( ) ;
31303156 assert_eq ! ( node_a. list_balances( ) . spendable_onchain_balance_sats, premine_amount_sat) ;
31313157 assert_eq ! ( node_b. list_balances( ) . spendable_onchain_balance_sats, premine_amount_sat) ;
@@ -3156,7 +3182,7 @@ async fn onchain_send_receive_cbf() {
31563182
31573183 // Mine the transaction so CBF can see it.
31583184 generate_blocks_and_wait ( & bitcoind. client , & electrsd. client , 6 ) . await ;
3159- wait_for_cbf_sync ( & node_a) . await ;
3185+ wait_for_cbf_sync ( & node_a, || node_a . payment ( & PaymentId ( txid . to_byte_array ( ) ) ) . is_some ( ) ) . await ;
31603186 node_b. sync_wallets ( ) . unwrap ( ) ;
31613187
31623188 let payment_id = PaymentId ( txid. to_byte_array ( ) ) ;
@@ -3201,7 +3227,7 @@ async fn onchain_send_receive_cbf() {
32013227 wait_for_tx ( & electrsd. client , txid) . await ;
32023228
32033229 generate_blocks_and_wait ( & bitcoind. client , & electrsd. client , 6 ) . await ;
3204- wait_for_cbf_sync ( & node_a) . await ;
3230+ wait_for_cbf_sync ( & node_a, || node_a . list_balances ( ) . spendable_onchain_balance_sats == 0 ) . await ;
32053231 node_b. sync_wallets ( ) . unwrap ( ) ;
32063232
32073233 assert_eq ! ( node_a. list_balances( ) . spendable_onchain_balance_sats, 0 ) ;
0 commit comments