@@ -389,7 +389,7 @@ pub(super) struct Channel<Signer: Sign> {
389
389
pub ( super ) counterparty_max_htlc_value_in_flight_msat : u64 ,
390
390
#[ cfg( not( test) ) ]
391
391
counterparty_max_htlc_value_in_flight_msat : u64 ,
392
- //get_holder_max_htlc_value_in_flight_msat() : u64,
392
+ holder_max_htlc_value_percentage : u64 ,
393
393
/// minimum channel reserve for self to maintain - set by them.
394
394
counterparty_selected_channel_reserve_satoshis : u64 ,
395
395
// get_holder_selected_channel_reserve_satoshis(channel_value_sats: u64): u64
@@ -483,8 +483,8 @@ macro_rules! secp_check {
483
483
484
484
impl < Signer : Sign > Channel < Signer > {
485
485
// Convert constants + channel value to limits:
486
- fn get_holder_max_htlc_value_in_flight_msat ( channel_value_satoshis : u64 ) -> u64 {
487
- channel_value_satoshis * 1000 / 10 //TODO
486
+ fn get_holder_max_htlc_value_in_flight_msat ( & self ) -> u64 {
487
+ self . channel_value_satoshis * 1000 * self . holder_max_htlc_value_percentage / 100
488
488
}
489
489
490
490
/// Returns a minimum channel reserve value the remote needs to maintain,
@@ -582,6 +582,7 @@ impl<Signer: Sign> Channel<Signer> {
582
582
counterparty_max_htlc_value_in_flight_msat : 0 ,
583
583
counterparty_selected_channel_reserve_satoshis : 0 ,
584
584
counterparty_htlc_minimum_msat : 0 ,
585
+ holder_max_htlc_value_percentage : config. own_channel_config . our_htlc_max_in_flight_percentage ,
585
586
holder_htlc_minimum_msat : if config. own_channel_config . our_htlc_minimum_msat == 0 { 1 } else { config. own_channel_config . our_htlc_minimum_msat } ,
586
587
counterparty_max_accepted_htlcs : 0 ,
587
588
minimum_depth : 0 , // Filled in in accept_channel
@@ -820,6 +821,7 @@ impl<Signer: Sign> Channel<Signer> {
820
821
counterparty_max_htlc_value_in_flight_msat : cmp:: min ( msg. max_htlc_value_in_flight_msat , msg. funding_satoshis * 1000 ) ,
821
822
counterparty_selected_channel_reserve_satoshis : msg. channel_reserve_satoshis ,
822
823
counterparty_htlc_minimum_msat : msg. htlc_minimum_msat ,
824
+ holder_max_htlc_value_percentage : config. own_channel_config . our_htlc_max_in_flight_percentage ,
823
825
holder_htlc_minimum_msat : if config. own_channel_config . our_htlc_minimum_msat == 0 { 1 } else { config. own_channel_config . our_htlc_minimum_msat } ,
824
826
counterparty_max_accepted_htlcs : msg. max_accepted_htlcs ,
825
827
minimum_depth : config. own_channel_config . minimum_depth ,
@@ -1941,7 +1943,7 @@ impl<Signer: Sign> Channel<Signer> {
1941
1943
if inbound_htlc_count + 1 > OUR_MAX_HTLCS as u32 {
1942
1944
return Err ( ChannelError :: Close ( format ! ( "Remote tried to push more than our max accepted HTLCs ({})" , OUR_MAX_HTLCS ) ) ) ;
1943
1945
}
1944
- let holder_max_htlc_value_in_flight_msat = Channel :: < Signer > :: get_holder_max_htlc_value_in_flight_msat ( self . channel_value_satoshis ) ;
1946
+ let holder_max_htlc_value_in_flight_msat = self . get_holder_max_htlc_value_in_flight_msat ( ) ;
1945
1947
if htlc_inbound_value_msat + msg. amount_msat > holder_max_htlc_value_in_flight_msat {
1946
1948
return Err ( ChannelError :: Close ( format ! ( "Remote HTLC add would put them over our max HTLC value ({})" , holder_max_htlc_value_in_flight_msat) ) ) ;
1947
1949
}
@@ -3328,7 +3330,7 @@ impl<Signer: Sign> Channel<Signer> {
3328
3330
3329
3331
/// Allowed in any state (including after shutdown)
3330
3332
pub fn get_announced_htlc_max_msat ( & self ) -> u64 {
3331
- Channel :: < Signer > :: get_holder_max_htlc_value_in_flight_msat ( self . channel_value_satoshis )
3333
+ self . get_holder_max_htlc_value_in_flight_msat ( )
3332
3334
}
3333
3335
3334
3336
/// Allowed in any state (including after shutdown)
@@ -3692,7 +3694,7 @@ impl<Signer: Sign> Channel<Signer> {
3692
3694
funding_satoshis : self . channel_value_satoshis ,
3693
3695
push_msat : self . channel_value_satoshis * 1000 - self . value_to_self_msat ,
3694
3696
dust_limit_satoshis : self . holder_dust_limit_satoshis ,
3695
- max_htlc_value_in_flight_msat : Channel :: < Signer > :: get_holder_max_htlc_value_in_flight_msat ( self . channel_value_satoshis ) ,
3697
+ max_htlc_value_in_flight_msat : self . get_holder_max_htlc_value_in_flight_msat ( ) ,
3696
3698
channel_reserve_satoshis : Channel :: < Signer > :: get_holder_selected_channel_reserve_satoshis ( self . channel_value_satoshis ) ,
3697
3699
htlc_minimum_msat : self . holder_htlc_minimum_msat ,
3698
3700
feerate_per_kw : self . feerate_per_kw as u32 ,
@@ -3726,7 +3728,7 @@ impl<Signer: Sign> Channel<Signer> {
3726
3728
msgs:: AcceptChannel {
3727
3729
temporary_channel_id : self . channel_id ,
3728
3730
dust_limit_satoshis : self . holder_dust_limit_satoshis ,
3729
- max_htlc_value_in_flight_msat : Channel :: < Signer > :: get_holder_max_htlc_value_in_flight_msat ( self . channel_value_satoshis ) ,
3731
+ max_htlc_value_in_flight_msat : self . get_holder_max_htlc_value_in_flight_msat ( ) ,
3730
3732
channel_reserve_satoshis : Channel :: < Signer > :: get_holder_selected_channel_reserve_satoshis ( self . channel_value_satoshis ) ,
3731
3733
htlc_minimum_msat : self . holder_htlc_minimum_msat ,
3732
3734
minimum_depth : self . minimum_depth ,
@@ -4495,6 +4497,7 @@ impl<Signer: Sign> Writeable for Channel<Signer> {
4495
4497
self . counterparty_dust_limit_satoshis . write ( writer) ?;
4496
4498
self . holder_dust_limit_satoshis . write ( writer) ?;
4497
4499
self . counterparty_max_htlc_value_in_flight_msat . write ( writer) ?;
4500
+ self . holder_max_htlc_value_percentage . write ( writer) ?;
4498
4501
self . counterparty_selected_channel_reserve_satoshis . write ( writer) ?;
4499
4502
self . counterparty_htlc_minimum_msat . write ( writer) ?;
4500
4503
self . holder_htlc_minimum_msat . write ( writer) ?;
@@ -4665,6 +4668,7 @@ impl<'a, Signer: Sign, K: Deref> ReadableArgs<&'a K> for Channel<Signer>
4665
4668
let counterparty_dust_limit_satoshis = Readable :: read ( reader) ?;
4666
4669
let holder_dust_limit_satoshis = Readable :: read ( reader) ?;
4667
4670
let counterparty_max_htlc_value_in_flight_msat = Readable :: read ( reader) ?;
4671
+ let holder_max_htlc_value_percentage = Readable :: read ( reader) ?;
4668
4672
let counterparty_selected_channel_reserve_satoshis = Readable :: read ( reader) ?;
4669
4673
let counterparty_htlc_minimum_msat = Readable :: read ( reader) ?;
4670
4674
let holder_htlc_minimum_msat = Readable :: read ( reader) ?;
@@ -4745,6 +4749,7 @@ impl<'a, Signer: Sign, K: Deref> ReadableArgs<&'a K> for Channel<Signer>
4745
4749
counterparty_dust_limit_satoshis,
4746
4750
holder_dust_limit_satoshis,
4747
4751
counterparty_max_htlc_value_in_flight_msat,
4752
+ holder_max_htlc_value_percentage,
4748
4753
counterparty_selected_channel_reserve_satoshis,
4749
4754
counterparty_htlc_minimum_msat,
4750
4755
holder_htlc_minimum_msat,
0 commit comments