@@ -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 {
@@ -890,13 +890,13 @@ impl<L: Deref<Target = u64>, BRT: Deref<Target = HistoricalBucketRangeTracker>,
890
890
891
891
fn decayed_offset_msat ( & self , offset_msat : u64 ) -> u64 {
892
892
self . now . duration_since ( * self . last_updated ) . as_secs ( )
893
- . checked_div ( self . half_life . as_secs ( ) )
893
+ . checked_div ( self . params . liquidity_offset_half_life . as_secs ( ) )
894
894
. and_then ( |decays| offset_msat. checked_shr ( decays as u32 ) )
895
895
. unwrap_or ( 0 )
896
896
}
897
897
}
898
898
899
- impl < L : DerefMut < Target = u64 > , BRT : DerefMut < Target = HistoricalBucketRangeTracker > , T : Time , U : DerefMut < Target = T > > DirectedChannelLiquidity < L , BRT , T , U > {
899
+ impl < L : DerefMut < Target = u64 > , BRT : DerefMut < Target = HistoricalBucketRangeTracker > , T : Time , U : DerefMut < Target = T > > DirectedChannelLiquidity < ' _ , L , BRT , T , U > {
900
900
/// Adjusts the channel liquidity balance bounds when failing to route `amount_msat`.
901
901
fn failed_at_channel < Log : Deref > ( & mut self , amount_msat : u64 , chan_descr : fmt:: Arguments , logger : & Log ) where Log :: Target : Logger {
902
902
if amount_msat < self . max_liquidity_msat ( ) {
@@ -989,22 +989,20 @@ impl<G: Deref<Target = NetworkGraph<L>>, L: Deref, T: Time> Score for Probabilis
989
989
_ => { } ,
990
990
}
991
991
992
- let liquidity_offset_half_life = self . params . liquidity_offset_half_life ;
993
992
let amount_msat = usage. amount_msat ;
994
993
let capacity_msat = usage. effective_capacity . as_msat ( )
995
994
. saturating_sub ( usage. inflight_htlc_msat ) ;
996
995
self . channel_liquidities
997
996
. get ( & short_channel_id)
998
997
. unwrap_or ( & ChannelLiquidity :: new ( ) )
999
- . as_directed ( source, target, capacity_msat, liquidity_offset_half_life )
998
+ . as_directed ( source, target, capacity_msat, & self . params )
1000
999
. penalty_msat ( amount_msat, & self . params )
1001
1000
. saturating_add ( anti_probing_penalty_msat)
1002
1001
. saturating_add ( base_penalty_msat)
1003
1002
}
1004
1003
1005
1004
fn payment_path_failed ( & mut self , path : & [ & RouteHop ] , short_channel_id : u64 ) {
1006
1005
let amount_msat = path. split_last ( ) . map ( |( hop, _) | hop. fee_msat ) . unwrap_or ( 0 ) ;
1007
- let liquidity_offset_half_life = self . params . liquidity_offset_half_life ;
1008
1006
log_trace ! ( self . logger, "Scoring path through to SCID {} as having failed at {} msat" , short_channel_id, amount_msat) ;
1009
1007
let network_graph = self . network_graph . read_only ( ) ;
1010
1008
for ( hop_idx, hop) in path. iter ( ) . enumerate ( ) {
@@ -1024,15 +1022,15 @@ impl<G: Deref<Target = NetworkGraph<L>>, L: Deref, T: Time> Score for Probabilis
1024
1022
self . channel_liquidities
1025
1023
. entry ( hop. short_channel_id )
1026
1024
. or_insert_with ( ChannelLiquidity :: new)
1027
- . as_directed_mut ( source, & target, capacity_msat, liquidity_offset_half_life )
1025
+ . as_directed_mut ( source, & target, capacity_msat, & self . params )
1028
1026
. failed_at_channel ( amount_msat, format_args ! ( "SCID {}, towards {:?}" , hop. short_channel_id, target) , & self . logger ) ;
1029
1027
break ;
1030
1028
}
1031
1029
1032
1030
self . channel_liquidities
1033
1031
. entry ( hop. short_channel_id )
1034
1032
. or_insert_with ( ChannelLiquidity :: new)
1035
- . as_directed_mut ( source, & target, capacity_msat, liquidity_offset_half_life )
1033
+ . as_directed_mut ( source, & target, capacity_msat, & self . params )
1036
1034
. failed_downstream ( amount_msat, format_args ! ( "SCID {}, towards {:?}" , hop. short_channel_id, target) , & self . logger ) ;
1037
1035
} else {
1038
1036
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)." ,
@@ -1043,7 +1041,6 @@ impl<G: Deref<Target = NetworkGraph<L>>, L: Deref, T: Time> Score for Probabilis
1043
1041
1044
1042
fn payment_path_successful ( & mut self , path : & [ & RouteHop ] ) {
1045
1043
let amount_msat = path. split_last ( ) . map ( |( hop, _) | hop. fee_msat ) . unwrap_or ( 0 ) ;
1046
- let liquidity_offset_half_life = self . params . liquidity_offset_half_life ;
1047
1044
log_trace ! ( self . logger, "Scoring path through SCID {} as having succeeded at {} msat." ,
1048
1045
path. split_last( ) . map( |( hop, _) | hop. short_channel_id) . unwrap_or( 0 ) , amount_msat) ;
1049
1046
let network_graph = self . network_graph . read_only ( ) ;
@@ -1059,7 +1056,7 @@ impl<G: Deref<Target = NetworkGraph<L>>, L: Deref, T: Time> Score for Probabilis
1059
1056
self . channel_liquidities
1060
1057
. entry ( hop. short_channel_id )
1061
1058
. or_insert_with ( ChannelLiquidity :: new)
1062
- . as_directed_mut ( source, & target, capacity_msat, liquidity_offset_half_life )
1059
+ . as_directed_mut ( source, & target, capacity_msat, & self . params )
1063
1060
. successful ( amount_msat, format_args ! ( "SCID {}, towards {:?}" , hop. short_channel_id, target) , & self . logger ) ;
1064
1061
} else {
1065
1062
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)." ,
@@ -1672,54 +1669,53 @@ mod tests {
1672
1669
1673
1670
// Update minimum liquidity.
1674
1671
1675
- let liquidity_offset_half_life = scorer. params . liquidity_offset_half_life ;
1676
1672
let liquidity = scorer. channel_liquidities . get ( & 42 ) . unwrap ( )
1677
- . as_directed ( & source, & target, 1_000 , liquidity_offset_half_life ) ;
1673
+ . as_directed ( & source, & target, 1_000 , & scorer . params ) ;
1678
1674
assert_eq ! ( liquidity. min_liquidity_msat( ) , 100 ) ;
1679
1675
assert_eq ! ( liquidity. max_liquidity_msat( ) , 300 ) ;
1680
1676
1681
1677
let liquidity = scorer. channel_liquidities . get ( & 42 ) . unwrap ( )
1682
- . as_directed ( & target, & source, 1_000 , liquidity_offset_half_life ) ;
1678
+ . as_directed ( & target, & source, 1_000 , & scorer . params ) ;
1683
1679
assert_eq ! ( liquidity. min_liquidity_msat( ) , 700 ) ;
1684
1680
assert_eq ! ( liquidity. max_liquidity_msat( ) , 900 ) ;
1685
1681
1686
1682
scorer. channel_liquidities . get_mut ( & 42 ) . unwrap ( )
1687
- . as_directed_mut ( & source, & target, 1_000 , liquidity_offset_half_life )
1683
+ . as_directed_mut ( & source, & target, 1_000 , & scorer . params )
1688
1684
. set_min_liquidity_msat ( 200 ) ;
1689
1685
1690
1686
let liquidity = scorer. channel_liquidities . get ( & 42 ) . unwrap ( )
1691
- . as_directed ( & source, & target, 1_000 , liquidity_offset_half_life ) ;
1687
+ . as_directed ( & source, & target, 1_000 , & scorer . params ) ;
1692
1688
assert_eq ! ( liquidity. min_liquidity_msat( ) , 200 ) ;
1693
1689
assert_eq ! ( liquidity. max_liquidity_msat( ) , 300 ) ;
1694
1690
1695
1691
let liquidity = scorer. channel_liquidities . get ( & 42 ) . unwrap ( )
1696
- . as_directed ( & target, & source, 1_000 , liquidity_offset_half_life ) ;
1692
+ . as_directed ( & target, & source, 1_000 , & scorer . params ) ;
1697
1693
assert_eq ! ( liquidity. min_liquidity_msat( ) , 700 ) ;
1698
1694
assert_eq ! ( liquidity. max_liquidity_msat( ) , 800 ) ;
1699
1695
1700
1696
// Update maximum liquidity.
1701
1697
1702
1698
let liquidity = scorer. channel_liquidities . get ( & 43 ) . unwrap ( )
1703
- . as_directed ( & target, & recipient, 1_000 , liquidity_offset_half_life ) ;
1699
+ . as_directed ( & target, & recipient, 1_000 , & scorer . params ) ;
1704
1700
assert_eq ! ( liquidity. min_liquidity_msat( ) , 700 ) ;
1705
1701
assert_eq ! ( liquidity. max_liquidity_msat( ) , 900 ) ;
1706
1702
1707
1703
let liquidity = scorer. channel_liquidities . get ( & 43 ) . unwrap ( )
1708
- . as_directed ( & recipient, & target, 1_000 , liquidity_offset_half_life ) ;
1704
+ . as_directed ( & recipient, & target, 1_000 , & scorer . params ) ;
1709
1705
assert_eq ! ( liquidity. min_liquidity_msat( ) , 100 ) ;
1710
1706
assert_eq ! ( liquidity. max_liquidity_msat( ) , 300 ) ;
1711
1707
1712
1708
scorer. channel_liquidities . get_mut ( & 43 ) . unwrap ( )
1713
- . as_directed_mut ( & target, & recipient, 1_000 , liquidity_offset_half_life )
1709
+ . as_directed_mut ( & target, & recipient, 1_000 , & scorer . params )
1714
1710
. set_max_liquidity_msat ( 200 ) ;
1715
1711
1716
1712
let liquidity = scorer. channel_liquidities . get ( & 43 ) . unwrap ( )
1717
- . as_directed ( & target, & recipient, 1_000 , liquidity_offset_half_life ) ;
1713
+ . as_directed ( & target, & recipient, 1_000 , & scorer . params ) ;
1718
1714
assert_eq ! ( liquidity. min_liquidity_msat( ) , 0 ) ;
1719
1715
assert_eq ! ( liquidity. max_liquidity_msat( ) , 200 ) ;
1720
1716
1721
1717
let liquidity = scorer. channel_liquidities . get ( & 43 ) . unwrap ( )
1722
- . as_directed ( & recipient, & target, 1_000 , liquidity_offset_half_life ) ;
1718
+ . as_directed ( & recipient, & target, 1_000 , & scorer . params ) ;
1723
1719
assert_eq ! ( liquidity. min_liquidity_msat( ) , 800 ) ;
1724
1720
assert_eq ! ( liquidity. max_liquidity_msat( ) , 1000 ) ;
1725
1721
}
@@ -1742,44 +1738,43 @@ mod tests {
1742
1738
assert ! ( source > target) ;
1743
1739
1744
1740
// Check initial bounds.
1745
- let liquidity_offset_half_life = scorer. params . liquidity_offset_half_life ;
1746
1741
let liquidity = scorer. channel_liquidities . get ( & 42 ) . unwrap ( )
1747
- . as_directed ( & source, & target, 1_000 , liquidity_offset_half_life ) ;
1742
+ . as_directed ( & source, & target, 1_000 , & scorer . params ) ;
1748
1743
assert_eq ! ( liquidity. min_liquidity_msat( ) , 400 ) ;
1749
1744
assert_eq ! ( liquidity. max_liquidity_msat( ) , 800 ) ;
1750
1745
1751
1746
let liquidity = scorer. channel_liquidities . get ( & 42 ) . unwrap ( )
1752
- . as_directed ( & target, & source, 1_000 , liquidity_offset_half_life ) ;
1747
+ . as_directed ( & target, & source, 1_000 , & scorer . params ) ;
1753
1748
assert_eq ! ( liquidity. min_liquidity_msat( ) , 200 ) ;
1754
1749
assert_eq ! ( liquidity. max_liquidity_msat( ) , 600 ) ;
1755
1750
1756
1751
// Reset from source to target.
1757
1752
scorer. channel_liquidities . get_mut ( & 42 ) . unwrap ( )
1758
- . as_directed_mut ( & source, & target, 1_000 , liquidity_offset_half_life )
1753
+ . as_directed_mut ( & source, & target, 1_000 , & scorer . params )
1759
1754
. set_min_liquidity_msat ( 900 ) ;
1760
1755
1761
1756
let liquidity = scorer. channel_liquidities . get ( & 42 ) . unwrap ( )
1762
- . as_directed ( & source, & target, 1_000 , liquidity_offset_half_life ) ;
1757
+ . as_directed ( & source, & target, 1_000 , & scorer . params ) ;
1763
1758
assert_eq ! ( liquidity. min_liquidity_msat( ) , 900 ) ;
1764
1759
assert_eq ! ( liquidity. max_liquidity_msat( ) , 1_000 ) ;
1765
1760
1766
1761
let liquidity = scorer. channel_liquidities . get ( & 42 ) . unwrap ( )
1767
- . as_directed ( & target, & source, 1_000 , liquidity_offset_half_life ) ;
1762
+ . as_directed ( & target, & source, 1_000 , & scorer . params ) ;
1768
1763
assert_eq ! ( liquidity. min_liquidity_msat( ) , 0 ) ;
1769
1764
assert_eq ! ( liquidity. max_liquidity_msat( ) , 100 ) ;
1770
1765
1771
1766
// Reset from target to source.
1772
1767
scorer. channel_liquidities . get_mut ( & 42 ) . unwrap ( )
1773
- . as_directed_mut ( & target, & source, 1_000 , liquidity_offset_half_life )
1768
+ . as_directed_mut ( & target, & source, 1_000 , & scorer . params )
1774
1769
. set_min_liquidity_msat ( 400 ) ;
1775
1770
1776
1771
let liquidity = scorer. channel_liquidities . get ( & 42 ) . unwrap ( )
1777
- . as_directed ( & source, & target, 1_000 , liquidity_offset_half_life ) ;
1772
+ . as_directed ( & source, & target, 1_000 , & scorer . params ) ;
1778
1773
assert_eq ! ( liquidity. min_liquidity_msat( ) , 0 ) ;
1779
1774
assert_eq ! ( liquidity. max_liquidity_msat( ) , 600 ) ;
1780
1775
1781
1776
let liquidity = scorer. channel_liquidities . get ( & 42 ) . unwrap ( )
1782
- . as_directed ( & target, & source, 1_000 , liquidity_offset_half_life ) ;
1777
+ . as_directed ( & target, & source, 1_000 , & scorer . params ) ;
1783
1778
assert_eq ! ( liquidity. min_liquidity_msat( ) , 400 ) ;
1784
1779
assert_eq ! ( liquidity. max_liquidity_msat( ) , 1_000 ) ;
1785
1780
}
@@ -1802,44 +1797,43 @@ mod tests {
1802
1797
assert ! ( source > target) ;
1803
1798
1804
1799
// Check initial bounds.
1805
- let liquidity_offset_half_life = scorer. params . liquidity_offset_half_life ;
1806
1800
let liquidity = scorer. channel_liquidities . get ( & 42 ) . unwrap ( )
1807
- . as_directed ( & source, & target, 1_000 , liquidity_offset_half_life ) ;
1801
+ . as_directed ( & source, & target, 1_000 , & scorer . params ) ;
1808
1802
assert_eq ! ( liquidity. min_liquidity_msat( ) , 400 ) ;
1809
1803
assert_eq ! ( liquidity. max_liquidity_msat( ) , 800 ) ;
1810
1804
1811
1805
let liquidity = scorer. channel_liquidities . get ( & 42 ) . unwrap ( )
1812
- . as_directed ( & target, & source, 1_000 , liquidity_offset_half_life ) ;
1806
+ . as_directed ( & target, & source, 1_000 , & scorer . params ) ;
1813
1807
assert_eq ! ( liquidity. min_liquidity_msat( ) , 200 ) ;
1814
1808
assert_eq ! ( liquidity. max_liquidity_msat( ) , 600 ) ;
1815
1809
1816
1810
// Reset from source to target.
1817
1811
scorer. channel_liquidities . get_mut ( & 42 ) . unwrap ( )
1818
- . as_directed_mut ( & source, & target, 1_000 , liquidity_offset_half_life )
1812
+ . as_directed_mut ( & source, & target, 1_000 , & scorer . params )
1819
1813
. set_max_liquidity_msat ( 300 ) ;
1820
1814
1821
1815
let liquidity = scorer. channel_liquidities . get ( & 42 ) . unwrap ( )
1822
- . as_directed ( & source, & target, 1_000 , liquidity_offset_half_life ) ;
1816
+ . as_directed ( & source, & target, 1_000 , & scorer . params ) ;
1823
1817
assert_eq ! ( liquidity. min_liquidity_msat( ) , 0 ) ;
1824
1818
assert_eq ! ( liquidity. max_liquidity_msat( ) , 300 ) ;
1825
1819
1826
1820
let liquidity = scorer. channel_liquidities . get ( & 42 ) . unwrap ( )
1827
- . as_directed ( & target, & source, 1_000 , liquidity_offset_half_life ) ;
1821
+ . as_directed ( & target, & source, 1_000 , & scorer . params ) ;
1828
1822
assert_eq ! ( liquidity. min_liquidity_msat( ) , 700 ) ;
1829
1823
assert_eq ! ( liquidity. max_liquidity_msat( ) , 1_000 ) ;
1830
1824
1831
1825
// Reset from target to source.
1832
1826
scorer. channel_liquidities . get_mut ( & 42 ) . unwrap ( )
1833
- . as_directed_mut ( & target, & source, 1_000 , liquidity_offset_half_life )
1827
+ . as_directed_mut ( & target, & source, 1_000 , & scorer . params )
1834
1828
. set_max_liquidity_msat ( 600 ) ;
1835
1829
1836
1830
let liquidity = scorer. channel_liquidities . get ( & 42 ) . unwrap ( )
1837
- . as_directed ( & source, & target, 1_000 , liquidity_offset_half_life ) ;
1831
+ . as_directed ( & source, & target, 1_000 , & scorer . params ) ;
1838
1832
assert_eq ! ( liquidity. min_liquidity_msat( ) , 400 ) ;
1839
1833
assert_eq ! ( liquidity. max_liquidity_msat( ) , 1_000 ) ;
1840
1834
1841
1835
let liquidity = scorer. channel_liquidities . get ( & 42 ) . unwrap ( )
1842
- . as_directed ( & target, & source, 1_000 , liquidity_offset_half_life ) ;
1836
+ . as_directed ( & target, & source, 1_000 , & scorer . params ) ;
1843
1837
assert_eq ! ( liquidity. min_liquidity_msat( ) , 0 ) ;
1844
1838
assert_eq ! ( liquidity. max_liquidity_msat( ) , 600 ) ;
1845
1839
}
0 commit comments