Skip to content

Commit 0ba1356

Browse files
Error when overpaying an intercepted forward
1 parent 2a3960c commit 0ba1356

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

lightning/src/ln/channelmanager.rs

+5-2
Original file line numberDiff line numberDiff line change
@@ -3532,14 +3532,17 @@ where
35323532
err: format!("Payment with intercept id {} not found", log_bytes!(intercept_id.0))
35333533
})?;
35343534

3535+
let skimmed_fee_msat =
3536+
payment.forward_info.outgoing_amt_msat.checked_sub(amt_to_forward_msat)
3537+
.ok_or_else(|| APIError::APIMisuseError {
3538+
err: format!("Attempted to forward intercept with id {} with amount {} msat, maximum forward amount was {} msat", log_bytes!(intercept_id.0), amt_to_forward_msat, payment.forward_info.outgoing_amt_msat)
3539+
})?;
35353540
let routing = match payment.forward_info.routing {
35363541
PendingHTLCRouting::Forward { onion_packet, .. } => {
35373542
PendingHTLCRouting::Forward { onion_packet, short_channel_id: next_hop_scid }
35383543
},
35393544
_ => unreachable!() // Only `PendingHTLCRouting::Forward`s are intercepted
35403545
};
3541-
let skimmed_fee_msat =
3542-
payment.forward_info.outgoing_amt_msat.saturating_sub(amt_to_forward_msat);
35433546
let pending_htlc_info = PendingHTLCInfo {
35443547
skimmed_fee_msat: if skimmed_fee_msat == 0 { None } else { Some(skimmed_fee_msat) },
35453548
outgoing_amt_msat: amt_to_forward_msat, routing, ..payment.forward_info

0 commit comments

Comments
 (0)