Skip to content

Commit 3c695a0

Browse files
committed
Account for LiquidityManager taking a broadcaster
1 parent f1b9c59 commit 3c695a0

File tree

4 files changed

+26
-5
lines changed

4 files changed

+26
-5
lines changed

src/builder.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1559,6 +1559,7 @@ fn build_with_store_internal(
15591559
Arc::clone(&channel_manager),
15601560
Arc::clone(&keys_manager),
15611561
Arc::clone(&chain_source),
1562+
Arc::clone(&tx_broadcaster),
15621563
Arc::clone(&kv_store),
15631564
Arc::clone(&config),
15641565
Arc::clone(&logger),

src/event.rs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1289,7 +1289,16 @@ where
12891289
}
12901290

12911291
if let Some(liquidity_source) = self.liquidity_source.as_ref() {
1292-
liquidity_source.handle_payment_forwarded(next_channel_id).await;
1292+
if let Some(skimmed_fee_msat) = skimmed_fee_msat {
1293+
liquidity_source
1294+
.handle_payment_forwarded(next_channel_id, skimmed_fee_msat)
1295+
.await;
1296+
} else {
1297+
debug_assert!(
1298+
false,
1299+
"We expect skimmed_fee_msat to be set since LDK 0.0.122"
1300+
);
1301+
}
12931302
}
12941303

12951304
let event = Event::PaymentForwarded {

src/liquidity.rs

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,9 @@ use crate::chain::ChainSource;
4343
use crate::connection::ConnectionManager;
4444
use crate::logger::{log_debug, log_error, log_info, LdkLogger, Logger};
4545
use crate::runtime::Runtime;
46-
use crate::types::{ChannelManager, DynStore, KeysManager, LiquidityManager, PeerManager, Wallet};
46+
use crate::types::{
47+
Broadcaster, ChannelManager, DynStore, KeysManager, LiquidityManager, PeerManager, Wallet,
48+
};
4749
use crate::{total_anchor_channels_reserve_sats, Config, Error};
4850

4951
const LIQUIDITY_REQUEST_TIMEOUT_SECS: u64 = 5;
@@ -141,6 +143,7 @@ where
141143
channel_manager: Arc<ChannelManager>,
142144
keys_manager: Arc<KeysManager>,
143145
chain_source: Arc<ChainSource>,
146+
tx_broadcaster: Arc<Broadcaster>,
144147
kv_store: Arc<DynStore>,
145148
config: Arc<Config>,
146149
logger: L,
@@ -152,7 +155,8 @@ where
152155
{
153156
pub(crate) fn new(
154157
wallet: Arc<Wallet>, channel_manager: Arc<ChannelManager>, keys_manager: Arc<KeysManager>,
155-
chain_source: Arc<ChainSource>, kv_store: Arc<DynStore>, config: Arc<Config>, logger: L,
158+
chain_source: Arc<ChainSource>, tx_broadcaster: Arc<Broadcaster>, kv_store: Arc<DynStore>,
159+
config: Arc<Config>, logger: L,
156160
) -> Self {
157161
let lsps1_client = None;
158162
let lsps2_client = None;
@@ -165,6 +169,7 @@ where
165169
channel_manager,
166170
keys_manager,
167171
chain_source,
172+
tx_broadcaster,
168173
kv_store,
169174
config,
170175
logger,
@@ -241,6 +246,7 @@ where
241246
Some(Arc::clone(&self.chain_source)),
242247
None,
243248
Arc::clone(&self.kv_store),
249+
Arc::clone(&self.tx_broadcaster),
244250
liquidity_service_config,
245251
liquidity_client_config,
246252
)
@@ -1302,10 +1308,14 @@ where
13021308
}
13031309
}
13041310

1305-
pub(crate) async fn handle_payment_forwarded(&self, next_channel_id: Option<ChannelId>) {
1311+
pub(crate) async fn handle_payment_forwarded(
1312+
&self, next_channel_id: Option<ChannelId>, skimmed_fee_msat: u64,
1313+
) {
13061314
if let Some(next_channel_id) = next_channel_id {
13071315
if let Some(lsps2_service_handler) = self.liquidity_manager.lsps2_service_handler() {
1308-
if let Err(e) = lsps2_service_handler.payment_forwarded(next_channel_id).await {
1316+
if let Err(e) =
1317+
lsps2_service_handler.payment_forwarded(next_channel_id, skimmed_fee_msat).await
1318+
{
13091319
log_error!(
13101320
self.logger,
13111321
"LSPS2 service failed to handle PaymentForwarded: {:?}",

src/types.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ pub(crate) type LiquidityManager = lightning_liquidity::LiquidityManager<
7777
Arc<ChainSource>,
7878
Arc<DynStore>,
7979
DefaultTimeProvider,
80+
Arc<Broadcaster>,
8081
>;
8182

8283
pub(crate) type ChannelManager = lightning::ln::channelmanager::ChannelManager<

0 commit comments

Comments
 (0)