@@ -36,6 +36,9 @@ use lightning::impl_writeable_tlv_based_enum;
36
36
use lightning:: ln:: channelmanager:: PaymentId ;
37
37
use lightning:: ln:: types:: ChannelId ;
38
38
use lightning:: routing:: gossip:: NodeId ;
39
+ use lightning:: util:: config:: {
40
+ ChannelConfigOverrides , ChannelConfigUpdate , ChannelHandshakeConfigUpdate ,
41
+ } ;
39
42
use lightning:: util:: errors:: APIError ;
40
43
use lightning:: util:: ser:: { Readable , ReadableArgs , Writeable , Writer } ;
41
44
@@ -1156,17 +1159,44 @@ where
1156
1159
1157
1160
let user_channel_id: u128 = rand:: thread_rng ( ) . gen :: < u128 > ( ) ;
1158
1161
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
+ }
1159
1187
let res = if allow_0conf {
1160
1188
self . channel_manager . accept_inbound_channel_from_trusted_peer_0conf (
1161
1189
& temporary_channel_id,
1162
1190
& counterparty_node_id,
1163
1191
user_channel_id,
1192
+ channel_override_config,
1164
1193
)
1165
1194
} else {
1166
1195
self . channel_manager . accept_inbound_channel (
1167
1196
& temporary_channel_id,
1168
1197
& counterparty_node_id,
1169
1198
user_channel_id,
1199
+ channel_override_config,
1170
1200
)
1171
1201
} ;
1172
1202
0 commit comments