@@ -4235,13 +4235,19 @@ where
42354235 PersistenceNotifierGuard :: optionally_notify ( & self . total_consistency_lock , & self . persistence_notifier , || {
42364236 let mut should_persist = self . process_background_events ( ) ;
42374237
4238- let new_feerate = self . fee_estimator . bounded_sat_per_1000_weight ( ConfirmationTarget :: Normal ) ;
4238+ let normal_feerate = self . fee_estimator . bounded_sat_per_1000_weight ( ConfirmationTarget :: Normal ) ;
4239+ let min_mempool_feerate = self . fee_estimator . bounded_sat_per_1000_weight ( ConfirmationTarget :: MempoolMinimum ) ;
42394240
42404241 let per_peer_state = self . per_peer_state . read ( ) . unwrap ( ) ;
42414242 for ( _cp_id, peer_state_mutex) in per_peer_state. iter ( ) {
42424243 let mut peer_state_lock = peer_state_mutex. lock ( ) . unwrap ( ) ;
42434244 let peer_state = & mut * peer_state_lock;
42444245 for ( chan_id, chan) in peer_state. channel_by_id . iter_mut ( ) {
4246+ let new_feerate = if chan. context . get_channel_type ( ) . supports_anchors_zero_fee_htlc_tx ( ) {
4247+ min_mempool_feerate
4248+ } else {
4249+ normal_feerate
4250+ } ;
42454251 let chan_needs_persist = self . update_channel_fee ( chan_id, chan, new_feerate) ;
42464252 if chan_needs_persist == NotifyOption :: DoPersist { should_persist = NotifyOption :: DoPersist ; }
42474253 }
@@ -4271,7 +4277,8 @@ where
42714277 PersistenceNotifierGuard :: optionally_notify ( & self . total_consistency_lock , & self . persistence_notifier , || {
42724278 let mut should_persist = self . process_background_events ( ) ;
42734279
4274- let new_feerate = self . fee_estimator . bounded_sat_per_1000_weight ( ConfirmationTarget :: Normal ) ;
4280+ let normal_feerate = self . fee_estimator . bounded_sat_per_1000_weight ( ConfirmationTarget :: Normal ) ;
4281+ let min_mempool_feerate = self . fee_estimator . bounded_sat_per_1000_weight ( ConfirmationTarget :: MempoolMinimum ) ;
42754282
42764283 let mut handle_errors: Vec < ( Result < ( ) , _ > , _ ) > = Vec :: new ( ) ;
42774284 let mut timed_out_mpp_htlcs = Vec :: new ( ) ;
@@ -4284,6 +4291,11 @@ where
42844291 let pending_msg_events = & mut peer_state. pending_msg_events ;
42854292 let counterparty_node_id = * counterparty_node_id;
42864293 peer_state. channel_by_id . retain ( |chan_id, chan| {
4294+ let new_feerate = if chan. context . get_channel_type ( ) . supports_anchors_zero_fee_htlc_tx ( ) {
4295+ min_mempool_feerate
4296+ } else {
4297+ normal_feerate
4298+ } ;
42874299 let chan_needs_persist = self . update_channel_fee ( chan_id, chan, new_feerate) ;
42884300 if chan_needs_persist == NotifyOption :: DoPersist { should_persist = NotifyOption :: DoPersist ; }
42894301
0 commit comments