diff --git a/src/lib.rs b/src/lib.rs index 4919017..8778d60 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -25,3 +25,4 @@ mod transport; mod utils; pub use transport::message_handler::{LiquidityManager, LiquidityProviderConfig}; +pub use transport::msgs; diff --git a/src/transport/message_handler.rs b/src/transport/message_handler.rs index 2f28124..939b4f5 100644 --- a/src/transport/message_handler.rs +++ b/src/transport/message_handler.rs @@ -67,7 +67,8 @@ pub struct LiquidityManager< pending_messages: Arc>>, pending_events: Arc, request_id_to_method_map: Mutex>, - lsps0_message_handler: LSPS0MessageHandler, + /// lsps0 message handler + pub lsps0_message_handler: LSPS0MessageHandler, provider_config: Option, channel_manager: Arc>, } diff --git a/src/transport/msgs.rs b/src/transport/msgs.rs index fcd166c..24bd92e 100644 --- a/src/transport/msgs.rs +++ b/src/transport/msgs.rs @@ -1,3 +1,4 @@ +#![allow(missing_docs)] use lightning::impl_writeable_msg; use lightning::ln::wire; use serde::de; diff --git a/src/transport/protocol.rs b/src/transport/protocol.rs index bc9c118..4c9fe2a 100644 --- a/src/transport/protocol.rs +++ b/src/transport/protocol.rs @@ -45,19 +45,21 @@ where self.pending_messages.lock().unwrap().push((counterparty_node_id, message.into())); } - fn handle_request( + /// Return LSPS0Response + /// + /// Typically the return will not send out to any where just for verification or inspectation + /// in service for advanced features or logging + pub fn handle_request( &self, request_id: RequestId, request: LSPS0Request, counterparty_node_id: &PublicKey, - ) -> Result<(), lightning::ln::msgs::LightningError> { + ) -> Result { match request { LSPS0Request::ListProtocols(_) => { - let msg = LSPS0Message::Response( - request_id, - LSPS0Response::ListProtocols(ListProtocolsResponse { - protocols: self.protocols.clone(), - }), - ); + let resp = LSPS0Response::ListProtocols(ListProtocolsResponse { + protocols: self.protocols.clone(), + }); + let msg = LSPS0Message::Response(request_id, resp.clone()); self.enqueue_message(*counterparty_node_id, msg); - Ok(()) + Ok(resp) } } } @@ -92,7 +94,8 @@ where ) -> Result<(), LightningError> { match message { LSPS0Message::Request(request_id, request) => { - self.handle_request(request_id, request, counterparty_node_id) + self.handle_request(request_id, request, counterparty_node_id)?; + Ok(()) } LSPS0Message::Response(_, response) => { self.handle_response(response, counterparty_node_id)