diff --git a/fundingmanager.go b/fundingmanager.go index b5127c0f..50519116 100644 --- a/fundingmanager.go +++ b/fundingmanager.go @@ -2111,10 +2111,12 @@ func (f *fundingManager) addToRouterGraph(completeChan *channeldb.OpenChannel, // We'll obtain the max HTLC value we can forward in our direction, as // we'll use this value within our ChannelUpdate. This value must be <= - // channel capacity and <= the maximum in-flight msats set by the peer, so - // we default to max in-flight msats as this value will always be <= - // channel capacity. + // channel capacity and <= the maximum in-flight msats set by the peer. fwdMaxHTLC := completeChan.LocalChanCfg.MaxPendingAmount + capacityMSat := lnwire.NewMSatFromSatoshis(completeChan.Capacity) + if fwdMaxHTLC > capacityMSat { + fwdMaxHTLC = capacityMSat + } ann, err := f.newChanAnnouncement( f.cfg.IDKey, completeChan.IdentityPub, @@ -2285,12 +2287,15 @@ func (f *fundingManager) annAfterSixConfs(completeChan *channeldb.OpenChannel, // HTLC it deems economically relevant. fwdMinHTLC := completeChan.LocalChanCfg.MinHTLC - // We'll obtain the max HTLC value we can forward in our direction, as - // we'll use this value within our ChannelUpdate. This value must be <= - // channel capacity and <= the maximum in-flight msats set by the peer, - // so we default to max in-flight msats as this value will always be <= - // channel capacity. + // We'll obtain the max HTLC value we can forward in our + // direction, as we'll use this value within our ChannelUpdate. + // This value must be <= channel capacity and <= the maximum + // in-flight msats set by the peer. fwdMaxHTLC := completeChan.LocalChanCfg.MaxPendingAmount + capacityMSat := lnwire.NewMSatFromSatoshis(completeChan.Capacity) + if fwdMaxHTLC > capacityMSat { + fwdMaxHTLC = capacityMSat + } // Create and broadcast the proofs required to make this channel // public and usable for other nodes for routing.