@@ -159,7 +159,8 @@ pub(super) fn compute_payinfo(
159159 let mut curr_base_fee: u64 = 0 ;
160160 let mut curr_prop_mil: u64 = 0 ;
161161 let mut cltv_expiry_delta: u16 = 0 ;
162- for ( _, tlvs) in intermediate_nodes. iter ( ) . rev ( ) {
162+ let mut htlc_minimum_msat = payee_tlvs. payment_constraints . htlc_minimum_msat as u128 ;
163+ for ( idx, ( _, tlvs) ) in intermediate_nodes. iter ( ) . enumerate ( ) . rev ( ) {
163164 // In the future, we'll want to take the intersection of all supported features for the
164165 // `BlindedPayInfo`, but there are no features in that context right now.
165166 if tlvs. features . requires_unknown_bits_from ( & BlindedHopFeatures :: empty ( ) ) { return Err ( ( ) ) }
@@ -183,11 +184,8 @@ pub(super) fn compute_payinfo(
183184 . ok_or ( ( ) ) ?;
184185
185186 cltv_expiry_delta = cltv_expiry_delta. checked_add ( tlvs. payment_relay . cltv_expiry_delta ) . ok_or ( ( ) ) ?;
186- }
187187
188- let mut htlc_minimum_msat = 0 ;
189- for ( idx, node) in intermediate_nodes. iter ( ) . map ( |( _, tlvs) | tlvs) . enumerate ( ) {
190- let mut htlc_min_candidate = node. payment_constraints . htlc_minimum_msat as u128 ;
188+ let mut htlc_min_candidate = tlvs. payment_constraints . htlc_minimum_msat as u128 ;
191189 // Get an iterator over `(curr_hop_tlvs..last_intermediate_hop_tlvs]`.
192190 let next_nodes = intermediate_nodes. iter ( )
193191 . enumerate ( )
@@ -208,8 +206,6 @@ pub(super) fn compute_payinfo(
208206 }
209207 htlc_minimum_msat = core:: cmp:: max ( htlc_min_candidate, htlc_minimum_msat) ;
210208 }
211- htlc_minimum_msat =
212- core:: cmp:: max ( payee_tlvs. payment_constraints . htlc_minimum_msat as u128 , htlc_minimum_msat) ;
213209
214210 Ok ( BlindedPayInfo {
215211 fee_base_msat : u32:: try_from ( curr_base_fee) . map_err ( |_| ( ) ) ?,
0 commit comments