Skip to content

Commit c949634

Browse files
Error when overpaying an intercepted forward
1 parent ce78cc4 commit c949634

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

lightning/src/ln/channelmanager.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3536,14 +3536,17 @@ where
35363536
err: format!("Payment with intercept id {} not found", log_bytes!(intercept_id.0))
35373537
})?;
35383538

3539+
let skimmed_fee_msat =
3540+
payment.forward_info.outgoing_amt_msat.checked_sub(amt_to_forward_msat)
3541+
.ok_or_else(|| APIError::APIMisuseError {
3542+
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)
3543+
})?;
35393544
let routing = match payment.forward_info.routing {
35403545
PendingHTLCRouting::Forward { onion_packet, .. } => {
35413546
PendingHTLCRouting::Forward { onion_packet, short_channel_id: next_hop_scid }
35423547
},
35433548
_ => unreachable!() // Only `PendingHTLCRouting::Forward`s are intercepted
35443549
};
3545-
let skimmed_fee_msat =
3546-
payment.forward_info.outgoing_amt_msat.saturating_sub(amt_to_forward_msat);
35473550
let pending_htlc_info = PendingHTLCInfo {
35483551
skimmed_fee_msat: if skimmed_fee_msat == 0 { None } else { Some(skimmed_fee_msat) },
35493552
outgoing_amt_msat: amt_to_forward_msat, routing, ..payment.forward_info

0 commit comments

Comments
 (0)