}
self.counterparty_forwarding_info = Some(CounterpartyForwardingInfo {
fee_base_msat: msg.contents.fee_base_msat,
+ inbound_fee_base_msat: self.counterparty_forwarding_info.as_ref()
+ .map(|info| info.inbound_fee_base_msat).unwrap_or(0),
fee_proportional_millionths: msg.contents.fee_proportional_millionths,
+ inbound_fee_proportional_millionths: self.counterparty_forwarding_info.as_ref()
+ .map(|info| info.inbound_fee_proportional_millionths).unwrap_or(0),
cltv_expiry_delta: msg.contents.cltv_expiry_delta
});
Ok(())
}
+ pub fn inbound_fees_update(&mut self, msg: &msgs::InboundFeesUpdate) -> Result<(), ChannelError> {
+ if let Some(info) = &mut self.counterparty_forwarding_info {
+ info.inbound_fee_base_msat = msg.inbound_forwarding_fee_base_msat;
+ info.inbound_fee_proportional_millionths = msg.inbound_forwarding_fee_proportional_millionths;
+ }
+
+ Ok(())
+ }
+
/// Begins the shutdown process, getting a message for the remote peer and returning all
/// holding cell HTLCs for payment failure.
pub fn get_shutdown<K: Deref>(&mut self, keys_provider: &K, their_features: &InitFeatures, target_feerate_sats_per_kw: Option<u32>)
0 => None,
1 => Some(CounterpartyForwardingInfo {
fee_base_msat: Readable::read(reader)?,
+ inbound_fee_base_msat: 0,
fee_proportional_millionths: Readable::read(reader)?,
+ inbound_fee_proportional_millionths: 0,
cltv_expiry_delta: Readable::read(reader)?,
}),
_ => return Err(DecodeError::InvalidValue),