@@ -534,15 +534,15 @@ struct ChannelLiquidity<T: Time> {
534
534
535
535
/// A snapshot of [`ChannelLiquidity`] in one direction assuming a certain channel capacity and
536
536
/// decayed with a given half life.
537
- struct DirectedChannelLiquidity < L : Deref < Target = u64 > , BRT : Deref < Target = HistoricalBucketRangeTracker > , T : Time , U : Deref < Target = T > > {
537
+ struct DirectedChannelLiquidity < ' a , L : Deref < Target = u64 > , BRT : Deref < Target = HistoricalBucketRangeTracker > , T : Time , U : Deref < Target = T > > {
538
538
min_liquidity_offset_msat : L ,
539
539
max_liquidity_offset_msat : L ,
540
540
min_liquidity_offset_history : BRT ,
541
541
max_liquidity_offset_history : BRT ,
542
542
capacity_msat : u64 ,
543
543
last_updated : U ,
544
544
now : T ,
545
- half_life : Duration ,
545
+ params : & ' a ProbabilisticScoringParameters ,
546
546
}
547
547
548
548
impl < G : Deref < Target = NetworkGraph < L > > , L : Deref , T : Time > ProbabilisticScorerUsingTime < G , L , T > where L :: Target : Logger {
@@ -574,7 +574,7 @@ impl<G: Deref<Target = NetworkGraph<L>>, L: Deref, T: Time> ProbabilisticScorerU
574
574
let log_direction = |source, target| {
575
575
if let Some ( ( directed_info, _) ) = chan_debug. as_directed_to ( target) {
576
576
let amt = directed_info. effective_capacity ( ) . as_msat ( ) ;
577
- let dir_liq = liq. as_directed ( source, target, amt, self . params . liquidity_offset_half_life ) ;
577
+ let dir_liq = liq. as_directed ( source, target, amt, & self . params ) ;
578
578
log_debug ! ( self . logger, "Liquidity from {:?} to {:?} via {} is in the range ({}, {})" ,
579
579
source, target, scid, dir_liq. min_liquidity_msat( ) , dir_liq. max_liquidity_msat( ) ) ;
580
580
} else {
@@ -599,7 +599,7 @@ impl<G: Deref<Target = NetworkGraph<L>>, L: Deref, T: Time> ProbabilisticScorerU
599
599
if let Some ( liq) = self . channel_liquidities . get ( & scid) {
600
600
if let Some ( ( directed_info, source) ) = chan. as_directed_to ( target) {
601
601
let amt = directed_info. effective_capacity ( ) . as_msat ( ) ;
602
- let dir_liq = liq. as_directed ( source, target, amt, self . params . liquidity_offset_half_life ) ;
602
+ let dir_liq = liq. as_directed ( source, target, amt, & self . params ) ;
603
603
return Some ( ( dir_liq. min_liquidity_msat ( ) , dir_liq. max_liquidity_msat ( ) ) ) ;
604
604
}
605
605
}
@@ -691,9 +691,9 @@ impl<T: Time> ChannelLiquidity<T> {
691
691
692
692
/// Returns a view of the channel liquidity directed from `source` to `target` assuming
693
693
/// `capacity_msat`.
694
- fn as_directed (
695
- & self , source : & NodeId , target : & NodeId , capacity_msat : u64 , half_life : Duration
696
- ) -> DirectedChannelLiquidity < & u64 , & HistoricalBucketRangeTracker , T , & T > {
694
+ fn as_directed < ' a > (
695
+ & self , source : & NodeId , target : & NodeId , capacity_msat : u64 , params : & ' a ProbabilisticScoringParameters
696
+ ) -> DirectedChannelLiquidity < ' a , & u64 , & HistoricalBucketRangeTracker , T , & T > {
697
697
let ( min_liquidity_offset_msat, max_liquidity_offset_msat, min_liquidity_offset_history, max_liquidity_offset_history) =
698
698
if source < target {
699
699
( & self . min_liquidity_offset_msat , & self . max_liquidity_offset_msat ,
@@ -711,15 +711,15 @@ impl<T: Time> ChannelLiquidity<T> {
711
711
capacity_msat,
712
712
last_updated : & self . last_updated ,
713
713
now : T :: now ( ) ,
714
- half_life ,
714
+ params ,
715
715
}
716
716
}
717
717
718
718
/// Returns a mutable view of the channel liquidity directed from `source` to `target` assuming
719
719
/// `capacity_msat`.
720
- fn as_directed_mut (
721
- & mut self , source : & NodeId , target : & NodeId , capacity_msat : u64 , half_life : Duration
722
- ) -> DirectedChannelLiquidity < & mut u64 , & mut HistoricalBucketRangeTracker , T , & mut T > {
720
+ fn as_directed_mut < ' a > (
721
+ & mut self , source : & NodeId , target : & NodeId , capacity_msat : u64 , params : & ' a ProbabilisticScoringParameters
722
+ ) -> DirectedChannelLiquidity < ' a , & mut u64 , & mut HistoricalBucketRangeTracker , T , & mut T > {
723
723
let ( min_liquidity_offset_msat, max_liquidity_offset_msat, min_liquidity_offset_history, max_liquidity_offset_history) =
724
724
if source < target {
725
725
( & mut self . min_liquidity_offset_msat , & mut self . max_liquidity_offset_msat ,
@@ -737,7 +737,7 @@ impl<T: Time> ChannelLiquidity<T> {
737
737
capacity_msat,
738
738
last_updated : & mut self . last_updated ,
739
739
now : T :: now ( ) ,
740
- half_life ,
740
+ params ,
741
741
}
742
742
}
743
743
}
@@ -754,7 +754,7 @@ const PRECISION_LOWER_BOUND_DENOMINATOR: u64 = approx::LOWER_BITS_BOUND;
754
754
const AMOUNT_PENALTY_DIVISOR : u64 = 1 << 20 ;
755
755
const BASE_AMOUNT_PENALTY_DIVISOR : u64 = 1 << 30 ;
756
756
757
- impl < L : Deref < Target = u64 > , BRT : Deref < Target = HistoricalBucketRangeTracker > , T : Time , U : Deref < Target = T > > DirectedChannelLiquidity < L , BRT , T , U > {
757
+ impl < L : Deref < Target = u64 > , BRT : Deref < Target = HistoricalBucketRangeTracker > , T : Time , U : Deref < Target = T > > DirectedChannelLiquidity < ' _ , L , BRT , T , U > {
758
758
/// Returns a liquidity penalty for routing the given HTLC `amount_msat` through the channel in
759
759
/// this direction.
760
760
fn penalty_msat ( & self , amount_msat : u64 , params : & ProbabilisticScoringParameters ) -> u64 {
@@ -892,13 +892,13 @@ impl<L: Deref<Target = u64>, BRT: Deref<Target = HistoricalBucketRangeTracker>,
892
892
893
893
fn decayed_offset_msat ( & self , offset_msat : u64 ) -> u64 {
894
894
self . now . duration_since ( * self . last_updated ) . as_secs ( )
895
- . checked_div ( self . half_life . as_secs ( ) )
895
+ . checked_div ( self . params . liquidity_offset_half_life . as_secs ( ) )
896
896
. and_then ( |decays| offset_msat. checked_shr ( decays as u32 ) )
897
897
. unwrap_or ( 0 )
898
898
}
899
899
}
900
900
901
- impl < L : DerefMut < Target = u64 > , BRT : DerefMut < Target = HistoricalBucketRangeTracker > , T : Time , U : DerefMut < Target = T > > DirectedChannelLiquidity < L , BRT , T , U > {
901
+ impl < L : DerefMut < Target = u64 > , BRT : DerefMut < Target = HistoricalBucketRangeTracker > , T : Time , U : DerefMut < Target = T > > DirectedChannelLiquidity < ' _ , L , BRT , T , U > {
902
902
/// Adjusts the channel liquidity balance bounds when failing to route `amount_msat`.
903
903
fn failed_at_channel < Log : Deref > ( & mut self , amount_msat : u64 , chan_descr : fmt:: Arguments , logger : & Log ) where Log :: Target : Logger {
904
904
if amount_msat < self . max_liquidity_msat ( ) {
@@ -995,22 +995,20 @@ impl<G: Deref<Target = NetworkGraph<L>>, L: Deref, T: Time> Score for Probabilis
995
995
_ => { } ,
996
996
}
997
997
998
- let liquidity_offset_half_life = self . params . liquidity_offset_half_life ;
999
998
let amount_msat = usage. amount_msat ;
1000
999
let capacity_msat = usage. effective_capacity . as_msat ( )
1001
1000
. saturating_sub ( usage. inflight_htlc_msat ) ;
1002
1001
self . channel_liquidities
1003
1002
. get ( & short_channel_id)
1004
1003
. unwrap_or ( & ChannelLiquidity :: new ( ) )
1005
- . as_directed ( source, target, capacity_msat, liquidity_offset_half_life )
1004
+ . as_directed ( source, target, capacity_msat, & self . params )
1006
1005
. penalty_msat ( amount_msat, & self . params )
1007
1006
. saturating_add ( anti_probing_penalty_msat)
1008
1007
. saturating_add ( base_penalty_msat)
1009
1008
}
1010
1009
1011
1010
fn payment_path_failed ( & mut self , path : & [ & RouteHop ] , short_channel_id : u64 ) {
1012
1011
let amount_msat = path. split_last ( ) . map ( |( hop, _) | hop. fee_msat ) . unwrap_or ( 0 ) ;
1013
- let liquidity_offset_half_life = self . params . liquidity_offset_half_life ;
1014
1012
log_trace ! ( self . logger, "Scoring path through to SCID {} as having failed at {} msat" , short_channel_id, amount_msat) ;
1015
1013
let network_graph = self . network_graph . read_only ( ) ;
1016
1014
for ( hop_idx, hop) in path. iter ( ) . enumerate ( ) {
@@ -1030,15 +1028,15 @@ impl<G: Deref<Target = NetworkGraph<L>>, L: Deref, T: Time> Score for Probabilis
1030
1028
self . channel_liquidities
1031
1029
. entry ( hop. short_channel_id )
1032
1030
. or_insert_with ( ChannelLiquidity :: new)
1033
- . as_directed_mut ( source, & target, capacity_msat, liquidity_offset_half_life )
1031
+ . as_directed_mut ( source, & target, capacity_msat, & self . params )
1034
1032
. failed_at_channel ( amount_msat, format_args ! ( "SCID {}, towards {:?}" , hop. short_channel_id, target) , & self . logger ) ;
1035
1033
break ;
1036
1034
}
1037
1035
1038
1036
self . channel_liquidities
1039
1037
. entry ( hop. short_channel_id )
1040
1038
. or_insert_with ( ChannelLiquidity :: new)
1041
- . as_directed_mut ( source, & target, capacity_msat, liquidity_offset_half_life )
1039
+ . as_directed_mut ( source, & target, capacity_msat, & self . params )
1042
1040
. failed_downstream ( amount_msat, format_args ! ( "SCID {}, towards {:?}" , hop. short_channel_id, target) , & self . logger ) ;
1043
1041
} else {
1044
1042
log_debug ! ( self . logger, "Not able to penalize channel with SCID {} as we do not have graph info for it (likely a route-hint last-hop)." ,
@@ -1049,7 +1047,6 @@ impl<G: Deref<Target = NetworkGraph<L>>, L: Deref, T: Time> Score for Probabilis
1049
1047
1050
1048
fn payment_path_successful ( & mut self , path : & [ & RouteHop ] ) {
1051
1049
let amount_msat = path. split_last ( ) . map ( |( hop, _) | hop. fee_msat ) . unwrap_or ( 0 ) ;
1052
- let liquidity_offset_half_life = self . params . liquidity_offset_half_life ;
1053
1050
log_trace ! ( self . logger, "Scoring path through SCID {} as having succeeded at {} msat." ,
1054
1051
path. split_last( ) . map( |( hop, _) | hop. short_channel_id) . unwrap_or( 0 ) , amount_msat) ;
1055
1052
let network_graph = self . network_graph . read_only ( ) ;
@@ -1065,7 +1062,7 @@ impl<G: Deref<Target = NetworkGraph<L>>, L: Deref, T: Time> Score for Probabilis
1065
1062
self . channel_liquidities
1066
1063
. entry ( hop. short_channel_id )
1067
1064
. or_insert_with ( ChannelLiquidity :: new)
1068
- . as_directed_mut ( source, & target, capacity_msat, liquidity_offset_half_life )
1065
+ . as_directed_mut ( source, & target, capacity_msat, & self . params )
1069
1066
. successful ( amount_msat, format_args ! ( "SCID {}, towards {:?}" , hop. short_channel_id, target) , & self . logger ) ;
1070
1067
} else {
1071
1068
log_debug ! ( self . logger, "Not able to learn for channel with SCID {} as we do not have graph info for it (likely a route-hint last-hop)." ,
@@ -1678,54 +1675,53 @@ mod tests {
1678
1675
1679
1676
// Update minimum liquidity.
1680
1677
1681
- let liquidity_offset_half_life = scorer. params . liquidity_offset_half_life ;
1682
1678
let liquidity = scorer. channel_liquidities . get ( & 42 ) . unwrap ( )
1683
- . as_directed ( & source, & target, 1_000 , liquidity_offset_half_life ) ;
1679
+ . as_directed ( & source, & target, 1_000 , & scorer . params ) ;
1684
1680
assert_eq ! ( liquidity. min_liquidity_msat( ) , 100 ) ;
1685
1681
assert_eq ! ( liquidity. max_liquidity_msat( ) , 300 ) ;
1686
1682
1687
1683
let liquidity = scorer. channel_liquidities . get ( & 42 ) . unwrap ( )
1688
- . as_directed ( & target, & source, 1_000 , liquidity_offset_half_life ) ;
1684
+ . as_directed ( & target, & source, 1_000 , & scorer . params ) ;
1689
1685
assert_eq ! ( liquidity. min_liquidity_msat( ) , 700 ) ;
1690
1686
assert_eq ! ( liquidity. max_liquidity_msat( ) , 900 ) ;
1691
1687
1692
1688
scorer. channel_liquidities . get_mut ( & 42 ) . unwrap ( )
1693
- . as_directed_mut ( & source, & target, 1_000 , liquidity_offset_half_life )
1689
+ . as_directed_mut ( & source, & target, 1_000 , & scorer . params )
1694
1690
. set_min_liquidity_msat ( 200 ) ;
1695
1691
1696
1692
let liquidity = scorer. channel_liquidities . get ( & 42 ) . unwrap ( )
1697
- . as_directed ( & source, & target, 1_000 , liquidity_offset_half_life ) ;
1693
+ . as_directed ( & source, & target, 1_000 , & scorer . params ) ;
1698
1694
assert_eq ! ( liquidity. min_liquidity_msat( ) , 200 ) ;
1699
1695
assert_eq ! ( liquidity. max_liquidity_msat( ) , 300 ) ;
1700
1696
1701
1697
let liquidity = scorer. channel_liquidities . get ( & 42 ) . unwrap ( )
1702
- . as_directed ( & target, & source, 1_000 , liquidity_offset_half_life ) ;
1698
+ . as_directed ( & target, & source, 1_000 , & scorer . params ) ;
1703
1699
assert_eq ! ( liquidity. min_liquidity_msat( ) , 700 ) ;
1704
1700
assert_eq ! ( liquidity. max_liquidity_msat( ) , 800 ) ;
1705
1701
1706
1702
// Update maximum liquidity.
1707
1703
1708
1704
let liquidity = scorer. channel_liquidities . get ( & 43 ) . unwrap ( )
1709
- . as_directed ( & target, & recipient, 1_000 , liquidity_offset_half_life ) ;
1705
+ . as_directed ( & target, & recipient, 1_000 , & scorer . params ) ;
1710
1706
assert_eq ! ( liquidity. min_liquidity_msat( ) , 700 ) ;
1711
1707
assert_eq ! ( liquidity. max_liquidity_msat( ) , 900 ) ;
1712
1708
1713
1709
let liquidity = scorer. channel_liquidities . get ( & 43 ) . unwrap ( )
1714
- . as_directed ( & recipient, & target, 1_000 , liquidity_offset_half_life ) ;
1710
+ . as_directed ( & recipient, & target, 1_000 , & scorer . params ) ;
1715
1711
assert_eq ! ( liquidity. min_liquidity_msat( ) , 100 ) ;
1716
1712
assert_eq ! ( liquidity. max_liquidity_msat( ) , 300 ) ;
1717
1713
1718
1714
scorer. channel_liquidities . get_mut ( & 43 ) . unwrap ( )
1719
- . as_directed_mut ( & target, & recipient, 1_000 , liquidity_offset_half_life )
1715
+ . as_directed_mut ( & target, & recipient, 1_000 , & scorer . params )
1720
1716
. set_max_liquidity_msat ( 200 ) ;
1721
1717
1722
1718
let liquidity = scorer. channel_liquidities . get ( & 43 ) . unwrap ( )
1723
- . as_directed ( & target, & recipient, 1_000 , liquidity_offset_half_life ) ;
1719
+ . as_directed ( & target, & recipient, 1_000 , & scorer . params ) ;
1724
1720
assert_eq ! ( liquidity. min_liquidity_msat( ) , 0 ) ;
1725
1721
assert_eq ! ( liquidity. max_liquidity_msat( ) , 200 ) ;
1726
1722
1727
1723
let liquidity = scorer. channel_liquidities . get ( & 43 ) . unwrap ( )
1728
- . as_directed ( & recipient, & target, 1_000 , liquidity_offset_half_life ) ;
1724
+ . as_directed ( & recipient, & target, 1_000 , & scorer . params ) ;
1729
1725
assert_eq ! ( liquidity. min_liquidity_msat( ) , 800 ) ;
1730
1726
assert_eq ! ( liquidity. max_liquidity_msat( ) , 1000 ) ;
1731
1727
}
@@ -1748,44 +1744,43 @@ mod tests {
1748
1744
assert ! ( source > target) ;
1749
1745
1750
1746
// Check initial bounds.
1751
- let liquidity_offset_half_life = scorer. params . liquidity_offset_half_life ;
1752
1747
let liquidity = scorer. channel_liquidities . get ( & 42 ) . unwrap ( )
1753
- . as_directed ( & source, & target, 1_000 , liquidity_offset_half_life ) ;
1748
+ . as_directed ( & source, & target, 1_000 , & scorer . params ) ;
1754
1749
assert_eq ! ( liquidity. min_liquidity_msat( ) , 400 ) ;
1755
1750
assert_eq ! ( liquidity. max_liquidity_msat( ) , 800 ) ;
1756
1751
1757
1752
let liquidity = scorer. channel_liquidities . get ( & 42 ) . unwrap ( )
1758
- . as_directed ( & target, & source, 1_000 , liquidity_offset_half_life ) ;
1753
+ . as_directed ( & target, & source, 1_000 , & scorer . params ) ;
1759
1754
assert_eq ! ( liquidity. min_liquidity_msat( ) , 200 ) ;
1760
1755
assert_eq ! ( liquidity. max_liquidity_msat( ) , 600 ) ;
1761
1756
1762
1757
// Reset from source to target.
1763
1758
scorer. channel_liquidities . get_mut ( & 42 ) . unwrap ( )
1764
- . as_directed_mut ( & source, & target, 1_000 , liquidity_offset_half_life )
1759
+ . as_directed_mut ( & source, & target, 1_000 , & scorer . params )
1765
1760
. set_min_liquidity_msat ( 900 ) ;
1766
1761
1767
1762
let liquidity = scorer. channel_liquidities . get ( & 42 ) . unwrap ( )
1768
- . as_directed ( & source, & target, 1_000 , liquidity_offset_half_life ) ;
1763
+ . as_directed ( & source, & target, 1_000 , & scorer . params ) ;
1769
1764
assert_eq ! ( liquidity. min_liquidity_msat( ) , 900 ) ;
1770
1765
assert_eq ! ( liquidity. max_liquidity_msat( ) , 1_000 ) ;
1771
1766
1772
1767
let liquidity = scorer. channel_liquidities . get ( & 42 ) . unwrap ( )
1773
- . as_directed ( & target, & source, 1_000 , liquidity_offset_half_life ) ;
1768
+ . as_directed ( & target, & source, 1_000 , & scorer . params ) ;
1774
1769
assert_eq ! ( liquidity. min_liquidity_msat( ) , 0 ) ;
1775
1770
assert_eq ! ( liquidity. max_liquidity_msat( ) , 100 ) ;
1776
1771
1777
1772
// Reset from target to source.
1778
1773
scorer. channel_liquidities . get_mut ( & 42 ) . unwrap ( )
1779
- . as_directed_mut ( & target, & source, 1_000 , liquidity_offset_half_life )
1774
+ . as_directed_mut ( & target, & source, 1_000 , & scorer . params )
1780
1775
. set_min_liquidity_msat ( 400 ) ;
1781
1776
1782
1777
let liquidity = scorer. channel_liquidities . get ( & 42 ) . unwrap ( )
1783
- . as_directed ( & source, & target, 1_000 , liquidity_offset_half_life ) ;
1778
+ . as_directed ( & source, & target, 1_000 , & scorer . params ) ;
1784
1779
assert_eq ! ( liquidity. min_liquidity_msat( ) , 0 ) ;
1785
1780
assert_eq ! ( liquidity. max_liquidity_msat( ) , 600 ) ;
1786
1781
1787
1782
let liquidity = scorer. channel_liquidities . get ( & 42 ) . unwrap ( )
1788
- . as_directed ( & target, & source, 1_000 , liquidity_offset_half_life ) ;
1783
+ . as_directed ( & target, & source, 1_000 , & scorer . params ) ;
1789
1784
assert_eq ! ( liquidity. min_liquidity_msat( ) , 400 ) ;
1790
1785
assert_eq ! ( liquidity. max_liquidity_msat( ) , 1_000 ) ;
1791
1786
}
@@ -1808,44 +1803,43 @@ mod tests {
1808
1803
assert ! ( source > target) ;
1809
1804
1810
1805
// Check initial bounds.
1811
- let liquidity_offset_half_life = scorer. params . liquidity_offset_half_life ;
1812
1806
let liquidity = scorer. channel_liquidities . get ( & 42 ) . unwrap ( )
1813
- . as_directed ( & source, & target, 1_000 , liquidity_offset_half_life ) ;
1807
+ . as_directed ( & source, & target, 1_000 , & scorer . params ) ;
1814
1808
assert_eq ! ( liquidity. min_liquidity_msat( ) , 400 ) ;
1815
1809
assert_eq ! ( liquidity. max_liquidity_msat( ) , 800 ) ;
1816
1810
1817
1811
let liquidity = scorer. channel_liquidities . get ( & 42 ) . unwrap ( )
1818
- . as_directed ( & target, & source, 1_000 , liquidity_offset_half_life ) ;
1812
+ . as_directed ( & target, & source, 1_000 , & scorer . params ) ;
1819
1813
assert_eq ! ( liquidity. min_liquidity_msat( ) , 200 ) ;
1820
1814
assert_eq ! ( liquidity. max_liquidity_msat( ) , 600 ) ;
1821
1815
1822
1816
// Reset from source to target.
1823
1817
scorer. channel_liquidities . get_mut ( & 42 ) . unwrap ( )
1824
- . as_directed_mut ( & source, & target, 1_000 , liquidity_offset_half_life )
1818
+ . as_directed_mut ( & source, & target, 1_000 , & scorer . params )
1825
1819
. set_max_liquidity_msat ( 300 ) ;
1826
1820
1827
1821
let liquidity = scorer. channel_liquidities . get ( & 42 ) . unwrap ( )
1828
- . as_directed ( & source, & target, 1_000 , liquidity_offset_half_life ) ;
1822
+ . as_directed ( & source, & target, 1_000 , & scorer . params ) ;
1829
1823
assert_eq ! ( liquidity. min_liquidity_msat( ) , 0 ) ;
1830
1824
assert_eq ! ( liquidity. max_liquidity_msat( ) , 300 ) ;
1831
1825
1832
1826
let liquidity = scorer. channel_liquidities . get ( & 42 ) . unwrap ( )
1833
- . as_directed ( & target, & source, 1_000 , liquidity_offset_half_life ) ;
1827
+ . as_directed ( & target, & source, 1_000 , & scorer . params ) ;
1834
1828
assert_eq ! ( liquidity. min_liquidity_msat( ) , 700 ) ;
1835
1829
assert_eq ! ( liquidity. max_liquidity_msat( ) , 1_000 ) ;
1836
1830
1837
1831
// Reset from target to source.
1838
1832
scorer. channel_liquidities . get_mut ( & 42 ) . unwrap ( )
1839
- . as_directed_mut ( & target, & source, 1_000 , liquidity_offset_half_life )
1833
+ . as_directed_mut ( & target, & source, 1_000 , & scorer . params )
1840
1834
. set_max_liquidity_msat ( 600 ) ;
1841
1835
1842
1836
let liquidity = scorer. channel_liquidities . get ( & 42 ) . unwrap ( )
1843
- . as_directed ( & source, & target, 1_000 , liquidity_offset_half_life ) ;
1837
+ . as_directed ( & source, & target, 1_000 , & scorer . params ) ;
1844
1838
assert_eq ! ( liquidity. min_liquidity_msat( ) , 400 ) ;
1845
1839
assert_eq ! ( liquidity. max_liquidity_msat( ) , 1_000 ) ;
1846
1840
1847
1841
let liquidity = scorer. channel_liquidities . get ( & 42 ) . unwrap ( )
1848
- . as_directed ( & target, & source, 1_000 , liquidity_offset_half_life ) ;
1842
+ . as_directed ( & target, & source, 1_000 , & scorer . params ) ;
1849
1843
assert_eq ! ( liquidity. min_liquidity_msat( ) , 0 ) ;
1850
1844
assert_eq ! ( liquidity. max_liquidity_msat( ) , 600 ) ;
1851
1845
}
0 commit comments