mirror of
https://github.com/lightningdevkit/rust-lightning.git
synced 2025-03-09 02:09:38 +01:00
Merge pull request #2831 from jkczyz/2024-01-fix-cltv-expiry-delta
Use consistent `cltv_expiry_delta` in `ForwardTlvs`
This commit is contained in:
commit
fbeb7ac9e1
2 changed files with 20 additions and 13 deletions
|
@ -97,12 +97,24 @@ pub struct PaymentConstraints {
|
|||
pub htlc_minimum_msat: u64,
|
||||
}
|
||||
|
||||
impl From<CounterpartyForwardingInfo> for PaymentRelay {
|
||||
fn from(info: CounterpartyForwardingInfo) -> Self {
|
||||
impl TryFrom<CounterpartyForwardingInfo> for PaymentRelay {
|
||||
type Error = ();
|
||||
|
||||
fn try_from(info: CounterpartyForwardingInfo) -> Result<Self, ()> {
|
||||
let CounterpartyForwardingInfo {
|
||||
fee_base_msat, fee_proportional_millionths, cltv_expiry_delta
|
||||
} = info;
|
||||
Self { cltv_expiry_delta, fee_proportional_millionths, fee_base_msat }
|
||||
|
||||
// Avoid exposing esoteric CLTV expiry deltas
|
||||
let cltv_expiry_delta = match cltv_expiry_delta {
|
||||
0..=40 => 40,
|
||||
41..=80 => 80,
|
||||
81..=144 => 144,
|
||||
145..=216 => 216,
|
||||
_ => return Err(()),
|
||||
};
|
||||
|
||||
Ok(Self { cltv_expiry_delta, fee_proportional_millionths, fee_base_msat })
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -114,19 +114,14 @@ impl<G: Deref<Target = NetworkGraph<L>> + Clone, L: Deref, S: Deref, SP: Sized,
|
|||
None => return None,
|
||||
};
|
||||
let payment_relay: PaymentRelay = match details.counterparty.forwarding_info {
|
||||
Some(forwarding_info) => forwarding_info.into(),
|
||||
Some(forwarding_info) => match forwarding_info.try_into() {
|
||||
Ok(payment_relay) => payment_relay,
|
||||
Err(()) => return None,
|
||||
},
|
||||
None => return None,
|
||||
};
|
||||
|
||||
// Avoid exposing esoteric CLTV expiry deltas
|
||||
let cltv_expiry_delta = match payment_relay.cltv_expiry_delta {
|
||||
0..=40 => 40u32,
|
||||
41..=80 => 80u32,
|
||||
81..=144 => 144u32,
|
||||
145..=216 => 216u32,
|
||||
_ => return None,
|
||||
};
|
||||
|
||||
let cltv_expiry_delta = payment_relay.cltv_expiry_delta as u32;
|
||||
let payment_constraints = PaymentConstraints {
|
||||
max_cltv_expiry: tlvs.payment_constraints.max_cltv_expiry + cltv_expiry_delta,
|
||||
htlc_minimum_msat: details.inbound_htlc_minimum_msat.unwrap_or(0),
|
||||
|
|
Loading…
Add table
Reference in a new issue