@@ -1148,6 +1148,11 @@ impl<G: Deref<Target = NetworkGraph<L>>, L: Deref> ProbabilisticScorer<G, L> whe
11481148 pub fn set_scores ( & mut self , external_scores : ChannelLiquidities ) {
11491149 _ = mem:: replace ( & mut self . channel_liquidities , external_scores) ;
11501150 }
1151+
1152+ /// Returns the current scores.
1153+ pub fn scores ( & self ) -> & ChannelLiquidities {
1154+ & self . channel_liquidities
1155+ }
11511156}
11521157
11531158impl ChannelLiquidity {
@@ -3943,6 +3948,37 @@ mod tests {
39433948 Some ( 0.0 ) ) ;
39443949 }
39453950
3951+ #[ test]
3952+ fn get_scores ( ) {
3953+ let logger = TestLogger :: new ( ) ;
3954+ let network_graph = network_graph ( & logger) ;
3955+ let params = ProbabilisticScoringFeeParameters {
3956+ liquidity_penalty_multiplier_msat : 1_000 ,
3957+ ..ProbabilisticScoringFeeParameters :: zero_penalty ( )
3958+ } ;
3959+ let mut scorer = ProbabilisticScorer :: new ( ProbabilisticScoringDecayParameters :: default ( ) , & network_graph, & logger) ;
3960+ let source = source_node_id ( ) ;
3961+ let usage = ChannelUsage {
3962+ amount_msat : 500 ,
3963+ inflight_htlc_msat : 0 ,
3964+ effective_capacity : EffectiveCapacity :: Total { capacity_msat : 1_000 , htlc_maximum_msat : 1_000 } ,
3965+ } ;
3966+ let successful_path = payment_path_for_amount ( 200 ) ;
3967+ let channel = & network_graph. read_only ( ) . channel ( 42 ) . unwrap ( ) . to_owned ( ) ;
3968+ let ( info, _) = channel. as_directed_from ( & source) . unwrap ( ) ;
3969+ let candidate = CandidateRouteHop :: PublicHop ( PublicHopCandidate {
3970+ info,
3971+ short_channel_id : 41 ,
3972+ } ) ;
3973+
3974+ scorer. payment_path_successful ( & successful_path, Duration :: ZERO ) ;
3975+ assert_eq ! ( scorer. channel_penalty_msat( & candidate, usage, & params) , 301 ) ;
3976+
3977+ // Get the scores and assert that both channels are present in the returned struct.
3978+ let scores = scorer. scores ( ) ;
3979+ assert_eq ! ( scores. iter( ) . count( ) , 2 ) ;
3980+ }
3981+
39463982 #[ test]
39473983 fn combined_scorer ( ) {
39483984 let logger = TestLogger :: new ( ) ;
0 commit comments