@@ -1252,6 +1252,27 @@ DirectedChannelLiquidity< L, BRT, T> {
12521252		liquidity_penalty_msat. saturating_add ( amount_penalty_msat) 
12531253	} 
12541254
1255+ 	fn  success_probability ( 
1256+ 		& self ,  usage :  ChannelUsage ,  score_params :  & ProbabilisticScoringFeeParameters 
1257+ 	)  -> f64  { 
1258+ 		let  amount_msat = usage. amount_msat ; 
1259+ 		let  available_capacity = self . capacity_msat ; 
1260+ 		let  max_liquidity_msat = self . max_liquidity_msat ( ) ; 
1261+ 		let  min_liquidity_msat = core:: cmp:: min ( self . min_liquidity_msat ( ) ,  max_liquidity_msat) ; 
1262+ 
1263+ 		if  amount_msat <= min_liquidity_msat { 
1264+ 			1.0 
1265+ 		}  else  if  amount_msat >= max_liquidity_msat { 
1266+ 			0.0 
1267+ 		}  else  { 
1268+ 			let  ( numerator,  denominator)  = success_probability ( 
1269+ 				amount_msat,  min_liquidity_msat,  max_liquidity_msat,  available_capacity, 
1270+ 				score_params,  false 
1271+ 			) ; 
1272+ 			numerator as  f64  / denominator as  f64 
1273+ 		} 
1274+ 	} 
1275+ 
12551276	/// Returns the lower bound of the channel liquidity balance in this direction. 
12561277#[ inline( always) ]  
12571278	fn  min_liquidity_msat ( & self )  -> u64  { 
@@ -1391,6 +1412,17 @@ impl<G: Deref<Target = NetworkGraph<L>>, L: Deref> ScoreLookUp for Probabilistic
13911412			. saturating_add ( base_penalty_msat) 
13921413	} 
13931414
1415+ 	fn  channel_success_probability ( 
1416+ 		& self ,  short_channel_id :  u64 ,  info :  & DirectedChannelInfo ,  usage :  ChannelUsage , 
1417+ 		score_params :  & ProbabilisticScoringFeeParameters 
1418+ 	)  -> f64  { 
1419+ 		self . channel_liquidities 
1420+ 			. get ( & short_channel_id) 
1421+ 			. unwrap_or ( & ChannelLiquidity :: new ( Duration :: ZERO ) ) 
1422+ 			. as_directed ( info. source ( ) ,  info. target ( ) ,  usage. effective_capacity . as_msat ( ) ) 
1423+ 			. success_probability ( usage,  score_params) 
1424+ 	} 
1425+ 
13941426	fn  channel_balance_certainty ( & self ,  short_channel_id :  u64 ,  info :  & DirectedChannelInfo )  -> f64  { 
13951427		self . channel_liquidities 
13961428			. get ( & short_channel_id) 
0 commit comments