Skip to content

Commit 0f17d59

Browse files
Lightning liquidity manager now may receive an Option<TimeProvider>
1 parent fc18eb9 commit 0f17d59

File tree

2 files changed

+30
-9
lines changed

2 files changed

+30
-9
lines changed

lightning-liquidity/src/manager.rs

+29-9
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ use crate::lsps0::client::LSPS0ClientHandler;
77
use crate::lsps0::msgs::LSPS0Message;
88
use crate::lsps0::ser::{
99
LSPSMessage, LSPSMethod, LSPSProtocolMessageHandler, LSPSRequestId, LSPSResponseError,
10-
RawLSPSMessage, JSONRPC_INVALID_MESSAGE_ERROR_CODE, JSONRPC_INVALID_MESSAGE_ERROR_MESSAGE,
11-
LSPS_MESSAGE_TYPE_ID,
10+
RawLSPSMessage, TimeProvider, JSONRPC_INVALID_MESSAGE_ERROR_CODE,
11+
JSONRPC_INVALID_MESSAGE_ERROR_MESSAGE, LSPS_MESSAGE_TYPE_ID,
1212
};
1313
use crate::lsps0::service::LSPS0ServiceHandler;
1414
use crate::message_queue::{MessageQueue, ProcessMessagesCallback};
@@ -128,7 +128,7 @@ where
128128
pub fn new(
129129
entropy_source: ES, channel_manager: CM, chain_source: Option<C>,
130130
chain_params: Option<ChainParameters>, service_config: Option<LiquidityServiceConfig>,
131-
client_config: Option<LiquidityClientConfig>,
131+
client_config: Option<LiquidityClientConfig>, time_provider: Option<Arc<dyn TimeProvider>>,
132132
) -> Self
133133
where {
134134
let pending_messages = Arc::new(MessageQueue::new());
@@ -154,12 +154,32 @@ where {
154154
{
155155
supported_protocols.push(number);
156156
}
157-
LSPS2ServiceHandler::new(
158-
Arc::clone(&pending_messages),
159-
Arc::clone(&pending_events),
160-
channel_manager.clone(),
161-
config.clone(),
162-
)
157+
if time_provider.is_some() {
158+
// Always use custom time provider if provided
159+
LSPS2ServiceHandler::new_with_custom_time_provider(
160+
Arc::clone(&pending_messages),
161+
Arc::clone(&pending_events),
162+
channel_manager.clone(),
163+
config.clone(),
164+
time_provider.unwrap(),
165+
)
166+
} else {
167+
#[cfg(feature = "time")]
168+
{
169+
// Use default new if time feature is enabled and no custom provider
170+
LSPS2ServiceHandler::new(
171+
Arc::clone(&pending_messages),
172+
Arc::clone(&pending_events),
173+
channel_manager.clone(),
174+
config.clone(),
175+
)
176+
}
177+
#[cfg(not(feature = "time"))]
178+
{
179+
// Panic if no time provider and time feature is not enabled
180+
panic!("A custom time_provider must be provided if the 'time' feature is not enabled.");
181+
}
182+
}
163183
})
164184
});
165185

lightning-liquidity/tests/common/mod.rs

+1
Original file line numberDiff line numberDiff line change
@@ -460,6 +460,7 @@ pub(crate) fn create_liquidity_node(
460460
Some(chain_params),
461461
service_config,
462462
client_config,
463+
None,
463464
));
464465
let msg_handler = MessageHandler {
465466
chan_handler: Arc::new(test_utils::TestChannelMessageHandler::new(

0 commit comments

Comments
 (0)