From: Jeffrey Czyz Date: Mon, 11 Oct 2021 18:18:49 +0000 (-0500) Subject: Clean up fee_insufficient computation X-Git-Tag: v0.0.102~7^2~1 X-Git-Url: http://git.bitcoin.ninja/?a=commitdiff_plain;h=1e2ca5233b5b94e2b2356c2c3c2907d79a00a585;p=rust-lightning Clean up fee_insufficient computation --- diff --git a/lightning/src/ln/onion_utils.rs b/lightning/src/ln/onion_utils.rs index 4509ee77b..37ed8c824 100644 --- a/lightning/src/ln/onion_utils.rs +++ b/lightning/src/ln/onion_utils.rs @@ -404,10 +404,12 @@ pub(super) fn process_onion_failure(secp_ctx: & let is_chan_update_invalid = match error_code & 0xff { 7 => false, 11 => amt_to_forward > chan_update.contents.htlc_minimum_msat, - 12 => { - let new_fee = amt_to_forward.checked_mul(chan_update.contents.fee_proportional_millionths as u64).and_then(|prop_fee| { (prop_fee / 1000000).checked_add(chan_update.contents.fee_base_msat as u64) }); - new_fee.is_some() && route_hop.fee_msat >= new_fee.unwrap() - } + 12 => amt_to_forward + .checked_mul(chan_update.contents.fee_proportional_millionths as u64) + .map(|prop_fee| prop_fee / 1_000_000) + .and_then(|prop_fee| prop_fee.checked_add(chan_update.contents.fee_base_msat as u64)) + .map(|fee_msats| route_hop.fee_msat >= fee_msats) + .unwrap_or(false), 13 => route_hop.cltv_expiry_delta as u16 >= chan_update.contents.cltv_expiry_delta, 14 => false, // expiry_too_soon; always valid? 20 => chan_update.contents.flags & 2 == 0,