Skip to content

Commit 82605af

Browse files
committed
f Account for accept_inbound_channel allowing override params
.. we now apply the LSPS2 client-side overrides on a per-counterparty basis, not as soon as we act as an LSP client
1 parent 7cbc970 commit 82605af

File tree

2 files changed

+30
-11
lines changed

2 files changed

+30
-11
lines changed

src/builder.rs

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1187,17 +1187,6 @@ fn build_with_store_internal(
11871187
};
11881188

11891189
let mut user_config = default_user_config(&config);
1190-
if liquidity_source_config.and_then(|lsc| lsc.lsps2_client.as_ref()).is_some() {
1191-
// Generally allow claiming underpaying HTLCs as the LSP will skim off some fee. We'll
1192-
// check that they don't take too much before claiming.
1193-
user_config.channel_config.accept_underpaying_htlcs = true;
1194-
1195-
// FIXME: When we're an LSPS2 client, set maximum allowed inbound HTLC value in flight
1196-
// to 100%. We should eventually be able to set this on a per-channel basis, but for
1197-
// now we just bump the default for all channels.
1198-
user_config.channel_handshake_config.max_inbound_htlc_value_in_flight_percent_of_channel =
1199-
100;
1200-
}
12011190

12021191
if liquidity_source_config.and_then(|lsc| lsc.lsps2_service.as_ref()).is_some() {
12031192
// If we act as an LSPS2 service, we need to to be able to intercept HTLCs and forward the

src/event.rs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ use lightning::impl_writeable_tlv_based_enum;
3636
use lightning::ln::channelmanager::PaymentId;
3737
use lightning::ln::types::ChannelId;
3838
use lightning::routing::gossip::NodeId;
39+
use lightning::util::config::{
40+
ChannelConfigOverrides, ChannelConfigUpdate, ChannelHandshakeConfigUpdate,
41+
};
3942
use lightning::util::errors::APIError;
4043
use 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

Comments
 (0)