mirror of
https://github.com/lightningdevkit/rust-lightning.git
synced 2025-02-24 23:08:36 +01:00
Merge pull request #2715 from valentinewallace/2023-11-skimmed-fees
Complete underpaying HTLCs support
This commit is contained in:
commit
d5a0eb4270
3 changed files with 10 additions and 2 deletions
|
@ -102,9 +102,15 @@ pub struct ClaimedHTLC {
|
||||||
pub cltv_expiry: u32,
|
pub cltv_expiry: u32,
|
||||||
/// The amount (in msats) of this part of an MPP.
|
/// The amount (in msats) of this part of an MPP.
|
||||||
pub value_msat: u64,
|
pub value_msat: u64,
|
||||||
|
/// The extra fee our counterparty skimmed off the top of this HTLC, if any.
|
||||||
|
///
|
||||||
|
/// This value will always be 0 for [`ClaimedHTLC`]s serialized with LDK versions prior to
|
||||||
|
/// 0.0.119.
|
||||||
|
pub counterparty_skimmed_fee_msat: u64,
|
||||||
}
|
}
|
||||||
impl_writeable_tlv_based!(ClaimedHTLC, {
|
impl_writeable_tlv_based!(ClaimedHTLC, {
|
||||||
(0, channel_id, required),
|
(0, channel_id, required),
|
||||||
|
(1, counterparty_skimmed_fee_msat, (default_value, 0u64)),
|
||||||
(2, user_channel_id, required),
|
(2, user_channel_id, required),
|
||||||
(4, cltv_expiry, required),
|
(4, cltv_expiry, required),
|
||||||
(6, value_msat, required),
|
(6, value_msat, required),
|
||||||
|
|
|
@ -238,6 +238,7 @@ impl From<&ClaimableHTLC> for events::ClaimedHTLC {
|
||||||
user_channel_id: val.prev_hop.user_channel_id.unwrap_or(0),
|
user_channel_id: val.prev_hop.user_channel_id.unwrap_or(0),
|
||||||
cltv_expiry: val.cltv_expiry,
|
cltv_expiry: val.cltv_expiry,
|
||||||
value_msat: val.value,
|
value_msat: val.value,
|
||||||
|
counterparty_skimmed_fee_msat: val.counterparty_skimmed_fee_msat.unwrap_or(0),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -462,8 +462,9 @@ pub struct ChannelConfig {
|
||||||
/// - The counterparty will get an [`HTLCIntercepted`] event upon payment forward, and call
|
/// - The counterparty will get an [`HTLCIntercepted`] event upon payment forward, and call
|
||||||
/// [`forward_intercepted_htlc`] with less than the amount provided in
|
/// [`forward_intercepted_htlc`] with less than the amount provided in
|
||||||
/// [`HTLCIntercepted::expected_outbound_amount_msat`]. The difference between the expected and
|
/// [`HTLCIntercepted::expected_outbound_amount_msat`]. The difference between the expected and
|
||||||
/// actual forward amounts is their fee.
|
/// actual forward amounts is their fee. See
|
||||||
// TODO: link to LSP JIT channel invoice generation spec when it's merged
|
/// <https://github.com/BitcoinAndLightningLayerSpecs/lsp/tree/main/LSPS2#flow-lsp-trusts-client-model>
|
||||||
|
/// for how this feature may be used in the LSP use case.
|
||||||
///
|
///
|
||||||
/// # Note
|
/// # Note
|
||||||
/// It's important for payee wallet software to verify that [`PaymentClaimable::amount_msat`] is
|
/// It's important for payee wallet software to verify that [`PaymentClaimable::amount_msat`] is
|
||||||
|
|
Loading…
Add table
Reference in a new issue