pub trait Score {
fn channel_penalty_msat(
&self,
short_channel_id: u64,
send_amt_msat: u64,
capacity_msat: u64,
source: &NodeId,
target: &NodeId
) -> u64;
fn payment_path_failed(&mut self, path: &[&RouteHop], short_channel_id: u64);
fn payment_path_successful(&mut self, path: &[&RouteHop]);
}
Expand description
An interface used to score payment channels for path finding.
Scoring is in terms of fees willing to be paid in order to avoid routing through a channel.
Required methods
Returns the fee in msats willing to be paid to avoid routing send_amt_msat
through the
given channel in the direction from source
to target
.
The channel’s capacity (less any other MPP parts that are also being considered for use in
the same payment) is given by capacity_msat
. It may be determined from various sources
such as a chain data, network gossip, or invoice hints. For invoice hints, a capacity near
u64::max_value
is given to indicate sufficient capacity for the invoice’s full amount.
Thus, implementations should be overflow-safe.
Handles updating channel penalties after failing to route through a channel.
fn payment_path_successful(&mut self, path: &[&RouteHop])
fn payment_path_successful(&mut self, path: &[&RouteHop])
Handles updating channel penalties after successfully routing along a path.