@@ -36,6 +36,9 @@ use lightning::impl_writeable_tlv_based_enum;
3636use lightning:: ln:: channelmanager:: PaymentId ;
3737use lightning:: ln:: types:: ChannelId ;
3838use lightning:: routing:: gossip:: NodeId ;
39+ use lightning:: util:: config:: {
40+ ChannelConfigOverrides , ChannelConfigUpdate , ChannelHandshakeConfigUpdate ,
41+ } ;
3942use lightning:: util:: errors:: APIError ;
4043use lightning:: util:: ser:: { Readable , ReadableArgs , Writeable , Writer } ;
4144
@@ -1156,17 +1159,44 @@ where
11561159
11571160 let user_channel_id: u128 = rand:: thread_rng ( ) . gen :: < u128 > ( ) ;
11581161 let allow_0conf = self . config . trusted_peers_0conf . contains ( & counterparty_node_id) ;
1162+ let mut channel_override_config = None ;
1163+ if let Some ( ( lsp_node_id, _) ) = self
1164+ . liquidity_source
1165+ . as_ref ( )
1166+ . and_then ( |ls| ls. as_ref ( ) . get_lsps2_lsp_details ( ) )
1167+ {
1168+ if lsp_node_id == counterparty_node_id {
1169+ // When we're an LSPS2 client, allow claiming underpaying HTLCs as the LSP will skim off some fee. We'll
1170+ // check that they don't take too much before claiming.
1171+ //
1172+ // We also set maximum allowed inbound HTLC value in flight
1173+ // to 100%. We should eventually be able to set this on a per-channel basis, but for
1174+ // now we just bump the default for all channels.
1175+ channel_override_config = Some ( ChannelConfigOverrides {
1176+ handshake_overrides : Some ( ChannelHandshakeConfigUpdate {
1177+ max_inbound_htlc_value_in_flight_percent_of_channel : Some ( 100 ) ,
1178+ ..Default :: default ( )
1179+ } ) ,
1180+ update_overrides : Some ( ChannelConfigUpdate {
1181+ accept_underpaying_htlcs : Some ( true ) ,
1182+ ..Default :: default ( )
1183+ } ) ,
1184+ } ) ;
1185+ }
1186+ }
11591187 let res = if allow_0conf {
11601188 self . channel_manager . accept_inbound_channel_from_trusted_peer_0conf (
11611189 & temporary_channel_id,
11621190 & counterparty_node_id,
11631191 user_channel_id,
1192+ channel_override_config,
11641193 )
11651194 } else {
11661195 self . channel_manager . accept_inbound_channel (
11671196 & temporary_channel_id,
11681197 & counterparty_node_id,
11691198 user_channel_id,
1199+ channel_override_config,
11701200 )
11711201 } ;
11721202
0 commit comments