- .and_then(|channel| channel.as_directed_to(&target).map(|(d, _)| d.effective_capacity()))
- .unwrap_or(EffectiveCapacity::Unknown)
- .as_msat();
+ .and_then(|channel| channel.as_directed_to(&target));
+
+ // Only score announced channels.
+ if let Some((channel, source)) = channel_directed_from_source {
+ let capacity_msat = channel.effective_capacity().as_msat();
+ if hop.short_channel_id == short_channel_id {
+ self.channel_liquidities
+ .entry(hop.short_channel_id)
+ .or_insert_with(ChannelLiquidity::new)
+ .as_directed_mut(source, &target, capacity_msat)
+ .failed_at_channel(amount_msat);
+ break;
+ }