pub trait Score {
// Required methods
fn channel_penalty_msat(
&self,
short_channel_id: u64,
source: &NodeId,
target: &NodeId,
usage: ChannelUsage
) -> u64;
fn payment_path_failed(&mut self, path: &Path, short_channel_id: u64);
fn payment_path_successful(&mut self, path: &Path);
fn probe_failed(&mut self, path: &Path, short_channel_id: u64);
fn probe_successful(&mut self, path: &Path);
}
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§
sourcefn channel_penalty_msat(
&self,
short_channel_id: u64,
source: &NodeId,
target: &NodeId,
usage: ChannelUsage
) -> u64
fn channel_penalty_msat( &self, short_channel_id: u64, source: &NodeId, target: &NodeId, usage: ChannelUsage ) -> u64
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.
sourcefn payment_path_failed(&mut self, path: &Path, short_channel_id: u64)
fn payment_path_failed(&mut self, path: &Path, short_channel_id: u64)
Handles updating channel penalties after failing to route through a channel.
sourcefn payment_path_successful(&mut self, path: &Path)
fn payment_path_successful(&mut self, path: &Path)
Handles updating channel penalties after successfully routing along a path.
sourcefn probe_failed(&mut self, path: &Path, short_channel_id: u64)
fn probe_failed(&mut self, path: &Path, short_channel_id: u64)
Handles updating channel penalties after a probe over the given path failed.
sourcefn probe_successful(&mut self, path: &Path)
fn probe_successful(&mut self, path: &Path)
Handles updating channel penalties after a probe over the given path succeeded.