@@ -159,7 +159,8 @@ pub(super) fn compute_payinfo(
159
159
let mut curr_base_fee: u64 = 0 ;
160
160
let mut curr_prop_mil: u64 = 0 ;
161
161
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 ( ) {
163
164
// In the future, we'll want to take the intersection of all supported features for the
164
165
// `BlindedPayInfo`, but there are no features in that context right now.
165
166
if tlvs. features . requires_unknown_bits_from ( & BlindedHopFeatures :: empty ( ) ) { return Err ( ( ) ) }
@@ -183,11 +184,8 @@ pub(super) fn compute_payinfo(
183
184
. ok_or ( ( ) ) ?;
184
185
185
186
cltv_expiry_delta = cltv_expiry_delta. checked_add ( tlvs. payment_relay . cltv_expiry_delta ) . ok_or ( ( ) ) ?;
186
- }
187
187
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 ;
191
189
// Get an iterator over `(curr_hop_tlvs..last_intermediate_hop_tlvs]`.
192
190
let next_nodes = intermediate_nodes. iter ( )
193
191
. enumerate ( )
@@ -208,8 +206,6 @@ pub(super) fn compute_payinfo(
208
206
}
209
207
htlc_minimum_msat = core:: cmp:: max ( htlc_min_candidate, htlc_minimum_msat) ;
210
208
}
211
- htlc_minimum_msat =
212
- core:: cmp:: max ( payee_tlvs. payment_constraints . htlc_minimum_msat as u128 , htlc_minimum_msat) ;
213
209
214
210
Ok ( BlindedPayInfo {
215
211
fee_base_msat : u32:: try_from ( curr_base_fee) . map_err ( |_| ( ) ) ?,
0 commit comments