mirror of
https://github.com/lightningdevkit/rust-lightning.git
synced 2025-03-15 15:39:09 +01:00
Add config knob for accepting underpaying HTLCs
See ChannelConfig::accept_underpaying_htlcs
This commit is contained in:
parent
672d666ef4
commit
85a5b31bb8
1 changed files with 31 additions and 0 deletions
|
@ -397,6 +397,34 @@ pub struct ChannelConfig {
|
|||
/// [`Normal`]: crate::chain::chaininterface::ConfirmationTarget::Normal
|
||||
/// [`Background`]: crate::chain::chaininterface::ConfirmationTarget::Background
|
||||
pub force_close_avoidance_max_fee_satoshis: u64,
|
||||
/// If set, allows this channel's counterparty to skim an additional fee off this node's inbound
|
||||
/// HTLCs. Useful for liquidity providers to offload on-chain channel costs to end users.
|
||||
///
|
||||
/// Usage:
|
||||
/// - The payee will set this option and set its invoice route hints to use [intercept scids]
|
||||
/// generated by this channel's counterparty.
|
||||
/// - The counterparty will get an [`HTLCIntercepted`] event upon payment forward, and call
|
||||
/// [`forward_intercepted_htlc`] with less than the amount provided in
|
||||
/// [`HTLCIntercepted::expected_outbound_amount_msat`]. The difference between the expected and
|
||||
/// actual forward amounts is their fee.
|
||||
// TODO: link to LSP JIT channel invoice generation spec when it's merged
|
||||
///
|
||||
/// # Note
|
||||
/// It's important for payee wallet software to verify that [`PaymentClaimable::amount_msat`] is
|
||||
/// as-expected if this feature is activated, otherwise they may lose money!
|
||||
///
|
||||
/// # Note
|
||||
/// Switching this config flag on may break compatibility with versions of LDK prior to 0.0.116.
|
||||
///
|
||||
/// Default value: false.
|
||||
///
|
||||
/// [intercept scids]: crate::ln::channelmanager::ChannelManager::get_intercept_scid
|
||||
/// [`forward_intercepted_htlc`]: crate::ln::channelmanager::ChannelManager::forward_intercepted_htlc
|
||||
/// [`HTLCIntercepted`]: crate::events::Event::HTLCIntercepted
|
||||
/// [`HTLCIntercepted::expected_outbound_amount_msat`]: crate::events::Event::HTLCIntercepted::expected_outbound_amount_msat
|
||||
/// [`PaymentClaimable::amount_msat`]: crate::events::Event::PaymentClaimable::amount_msat
|
||||
// TODO: link to bLIP when it's merged
|
||||
pub accept_underpaying_htlcs: bool,
|
||||
}
|
||||
|
||||
impl ChannelConfig {
|
||||
|
@ -429,12 +457,14 @@ impl Default for ChannelConfig {
|
|||
cltv_expiry_delta: 6 * 12, // 6 blocks/hour * 12 hours
|
||||
max_dust_htlc_exposure_msat: 5_000_000,
|
||||
force_close_avoidance_max_fee_satoshis: 1000,
|
||||
accept_underpaying_htlcs: false,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl_writeable_tlv_based!(ChannelConfig, {
|
||||
(0, forwarding_fee_proportional_millionths, required),
|
||||
(1, accept_underpaying_htlcs, (default_value, false)),
|
||||
(2, forwarding_fee_base_msat, required),
|
||||
(4, cltv_expiry_delta, required),
|
||||
(6, max_dust_htlc_exposure_msat, required),
|
||||
|
@ -543,6 +573,7 @@ impl crate::util::ser::Readable for LegacyChannelConfig {
|
|||
cltv_expiry_delta,
|
||||
force_close_avoidance_max_fee_satoshis,
|
||||
forwarding_fee_base_msat,
|
||||
accept_underpaying_htlcs: false,
|
||||
},
|
||||
announced_channel,
|
||||
commit_upfront_shutdown_pubkey,
|
||||
|
|
Loading…
Add table
Reference in a new issue