pub struct LiquidityManagerSync<ES: Deref + Clone, NS: Deref + Clone, CM: Deref + Clone, C: Deref + Clone, KS: Deref + Clone, TP: Deref + Clone, T: Deref + Clone>where
ES::Target: EntropySource,
NS::Target: NodeSigner,
CM::Target: AChannelManager,
C::Target: Filter,
KS::Target: KVStoreSync,
TP::Target: TimeProvider,
T::Target: BroadcasterInterface,{ /* private fields */ }Expand description
A synchroneous wrapper around LiquidityManager to be used in contexts where async is not
available.
Implementations§
Source§impl<ES: Deref + Clone, NS: Deref + Clone, CM: Deref + Clone, C: Deref + Clone, KS: Deref + Clone, T: Deref + Clone> LiquidityManagerSync<ES, NS, CM, C, KS, DefaultTimeProvider, T>where
ES::Target: EntropySource,
NS::Target: NodeSigner,
CM::Target: AChannelManager,
KS::Target: KVStoreSync,
C::Target: Filter,
T::Target: BroadcasterInterface,
impl<ES: Deref + Clone, NS: Deref + Clone, CM: Deref + Clone, C: Deref + Clone, KS: Deref + Clone, T: Deref + Clone> LiquidityManagerSync<ES, NS, CM, C, KS, DefaultTimeProvider, T>where
ES::Target: EntropySource,
NS::Target: NodeSigner,
CM::Target: AChannelManager,
KS::Target: KVStoreSync,
C::Target: Filter,
T::Target: BroadcasterInterface,
Sourcepub fn new(
entropy_source: ES,
node_signer: NS,
channel_manager: CM,
chain_source: Option<C>,
chain_params: Option<ChainParameters>,
kv_store_sync: KS,
transaction_broadcaster: T,
service_config: Option<LiquidityServiceConfig>,
client_config: Option<LiquidityClientConfig>,
) -> Result<Self, Error>
Available on crate feature time only.
pub fn new( entropy_source: ES, node_signer: NS, channel_manager: CM, chain_source: Option<C>, chain_params: Option<ChainParameters>, kv_store_sync: KS, transaction_broadcaster: T, service_config: Option<LiquidityServiceConfig>, client_config: Option<LiquidityClientConfig>, ) -> Result<Self, Error>
time only.Constructor for the LiquidityManagerSync using the default system clock
Wraps LiquidityManager::new.
Source§impl<ES: Deref + Clone, NS: Deref + Clone, CM: Deref + Clone, C: Deref + Clone, KS: Deref + Clone, TP: Deref + Clone, T: Deref + Clone> LiquidityManagerSync<ES, NS, CM, C, KS, TP, T>where
ES::Target: EntropySource,
NS::Target: NodeSigner,
CM::Target: AChannelManager,
C::Target: Filter,
KS::Target: KVStoreSync,
TP::Target: TimeProvider,
T::Target: BroadcasterInterface,
impl<ES: Deref + Clone, NS: Deref + Clone, CM: Deref + Clone, C: Deref + Clone, KS: Deref + Clone, TP: Deref + Clone, T: Deref + Clone> LiquidityManagerSync<ES, NS, CM, C, KS, TP, T>where
ES::Target: EntropySource,
NS::Target: NodeSigner,
CM::Target: AChannelManager,
C::Target: Filter,
KS::Target: KVStoreSync,
TP::Target: TimeProvider,
T::Target: BroadcasterInterface,
Sourcepub fn new_with_custom_time_provider(
entropy_source: ES,
node_signer: NS,
channel_manager: CM,
chain_source: Option<C>,
chain_params: Option<ChainParameters>,
kv_store_sync: KS,
transaction_broadcaster: T,
service_config: Option<LiquidityServiceConfig>,
client_config: Option<LiquidityClientConfig>,
time_provider: TP,
) -> Result<Self, Error>
pub fn new_with_custom_time_provider( entropy_source: ES, node_signer: NS, channel_manager: CM, chain_source: Option<C>, chain_params: Option<ChainParameters>, kv_store_sync: KS, transaction_broadcaster: T, service_config: Option<LiquidityServiceConfig>, client_config: Option<LiquidityClientConfig>, time_provider: TP, ) -> Result<Self, Error>
Constructor for the LiquidityManagerSync with a custom time provider.
Sourcepub fn lsps0_client_handler(
&self,
) -> &LSPS0ClientHandler<ES, KVStoreSyncWrapper<KS>>
pub fn lsps0_client_handler( &self, ) -> &LSPS0ClientHandler<ES, KVStoreSyncWrapper<KS>>
Returns a reference to the LSPS0 client-side handler.
Sourcepub fn lsps0_service_handler(&self) -> Option<&LSPS0ServiceHandler>
pub fn lsps0_service_handler(&self) -> Option<&LSPS0ServiceHandler>
Returns a reference to the LSPS0 server-side handler.
Sourcepub fn lsps1_client_handler(
&self,
) -> Option<&LSPS1ClientHandler<ES, KVStoreSyncWrapper<KS>>>
pub fn lsps1_client_handler( &self, ) -> Option<&LSPS1ClientHandler<ES, KVStoreSyncWrapper<KS>>>
Returns a reference to the LSPS1 client-side handler.
Sourcepub fn lsps2_client_handler(
&self,
) -> Option<&LSPS2ClientHandler<ES, KVStoreSyncWrapper<KS>>>
pub fn lsps2_client_handler( &self, ) -> Option<&LSPS2ClientHandler<ES, KVStoreSyncWrapper<KS>>>
Returns a reference to the LSPS2 client-side handler.
Sourcepub fn lsps2_service_handler<'a>(
&'a self,
) -> Option<LSPS2ServiceHandlerSync<'a, CM, KVStoreSyncWrapper<KS>, T>>
pub fn lsps2_service_handler<'a>( &'a self, ) -> Option<LSPS2ServiceHandlerSync<'a, CM, KVStoreSyncWrapper<KS>, T>>
Returns a reference to the LSPS2 server-side handler.
Sourcepub fn lsps5_client_handler(
&self,
) -> Option<&LSPS5ClientHandler<ES, KVStoreSyncWrapper<KS>>>
pub fn lsps5_client_handler( &self, ) -> Option<&LSPS5ClientHandler<ES, KVStoreSyncWrapper<KS>>>
Returns a reference to the LSPS5 client-side handler.
Sourcepub fn lsps5_service_handler(
&self,
) -> Option<&LSPS5ServiceHandler<CM, NS, KVStoreSyncWrapper<KS>, TP>>
pub fn lsps5_service_handler( &self, ) -> Option<&LSPS5ServiceHandler<CM, NS, KVStoreSyncWrapper<KS>, TP>>
Returns a reference to the LSPS5 server-side handler.
Sourcepub fn get_pending_msgs_or_needs_persist_future(&self) -> Future
pub fn get_pending_msgs_or_needs_persist_future(&self) -> Future
Returns a Future that will complete when the next batch of pending messages is ready to
be processed or we need to be repersisted.
Wraps LiquidityManager::get_pending_msgs_or_needs_persist_future.
Sourcepub fn wait_next_event(&self) -> LiquidityEvent
Available on crate feature std only.
pub fn wait_next_event(&self) -> LiquidityEvent
std only.Blocks the current thread until next event is ready and returns it.
Typically you would spawn a thread or task that calls this in a loop.
Note: Users must handle events as soon as possible to avoid an increased event queue
memory footprint. We will start dropping any generated events after
MAX_EVENT_QUEUE_SIZE has been reached.
Sourcepub fn next_event(&self) -> Option<LiquidityEvent>
pub fn next_event(&self) -> Option<LiquidityEvent>
Returns Some if an event is ready.
Wraps LiquidityManager::next_event.
Sourcepub fn get_and_clear_pending_events(&self) -> Vec<LiquidityEvent>
pub fn get_and_clear_pending_events(&self) -> Vec<LiquidityEvent>
Returns and clears all events without blocking.
Sourcepub fn persist(&self) -> Result<(), Error>
pub fn persist(&self) -> Result<(), Error>
Persists the state of the service handlers towards the given KVStoreSync implementation.
Wraps LiquidityManager::persist.
Trait Implementations§
Source§impl<ES: Deref + Clone, NS: Deref + Clone, CM: Deref + Clone, C: Deref + Clone, KS: Deref + Clone, TP: Deref + Clone, T: Deref + Clone> ALiquidityManagerSync for LiquidityManagerSync<ES, NS, CM, C, KS, TP, T>where
ES::Target: EntropySource,
NS::Target: NodeSigner,
CM::Target: AChannelManager,
C::Target: Filter,
KS::Target: KVStoreSync,
TP::Target: TimeProvider,
T::Target: BroadcasterInterface,
impl<ES: Deref + Clone, NS: Deref + Clone, CM: Deref + Clone, C: Deref + Clone, KS: Deref + Clone, TP: Deref + Clone, T: Deref + Clone> ALiquidityManagerSync for LiquidityManagerSync<ES, NS, CM, C, KS, TP, T>where
ES::Target: EntropySource,
NS::Target: NodeSigner,
CM::Target: AChannelManager,
C::Target: Filter,
KS::Target: KVStoreSync,
TP::Target: TimeProvider,
T::Target: BroadcasterInterface,
Source§type EntropySource = <ES as Deref>::Target
type EntropySource = <ES as Deref>::Target
EntropySourceSource§type ES = ES
type ES = ES
Self::EntropySource.Source§type NodeSigner = <NS as Deref>::Target
type NodeSigner = <NS as Deref>::Target
NodeSignerSource§type NS = NS
type NS = NS
Self::NodeSigner.Source§type AChannelManager = <CM as Deref>::Target
type AChannelManager = <CM as Deref>::Target
AChannelManagerSource§type CM = CM
type CM = CM
Self::AChannelManager.Source§type C = C
type C = C
Self::Filter.Source§type KVStoreSync = <KS as Deref>::Target
type KVStoreSync = <KS as Deref>::Target
KVStoreSync.Source§type KS = KS
type KS = KS
Self::KVStoreSync.Source§type TimeProvider = <TP as Deref>::Target
type TimeProvider = <TP as Deref>::Target
TimeProvider.Source§type TP = TP
type TP = TP
Self::TimeProvider.Source§type BroadcasterInterface = <T as Deref>::Target
type BroadcasterInterface = <T as Deref>::Target
BroadcasterInterface.Source§type T = T
type T = T
Self::BroadcasterInterface.Source§fn get_lm(&self) -> &LiquidityManagerSync<ES, NS, CM, C, KS, TP, T>
fn get_lm(&self) -> &LiquidityManagerSync<ES, NS, CM, C, KS, TP, T>
LiquidityManager object.Source§impl<ES: Deref + Clone, NS: Deref + Clone, CM: Deref + Clone, C: Deref + Clone, KS: Deref + Clone, TP: Deref + Clone, T: Deref + Clone> Confirm for LiquidityManagerSync<ES, NS, CM, C, KS, TP, T>where
ES::Target: EntropySource,
NS::Target: NodeSigner,
CM::Target: AChannelManager,
C::Target: Filter,
KS::Target: KVStoreSync,
TP::Target: TimeProvider,
T::Target: BroadcasterInterface,
impl<ES: Deref + Clone, NS: Deref + Clone, CM: Deref + Clone, C: Deref + Clone, KS: Deref + Clone, TP: Deref + Clone, T: Deref + Clone> Confirm for LiquidityManagerSync<ES, NS, CM, C, KS, TP, T>where
ES::Target: EntropySource,
NS::Target: NodeSigner,
CM::Target: AChannelManager,
C::Target: Filter,
KS::Target: KVStoreSync,
TP::Target: TimeProvider,
T::Target: BroadcasterInterface,
Source§fn transactions_confirmed(
&self,
header: &Header,
txdata: &TransactionData<'_>,
height: u32,
)
fn transactions_confirmed( &self, header: &Header, txdata: &TransactionData<'_>, height: u32, )
Source§fn transaction_unconfirmed(&self, txid: &Txid)
fn transaction_unconfirmed(&self, txid: &Txid)
Source§impl<ES: Deref + Clone, NS: Deref + Clone, CM: Deref + Clone, C: Deref + Clone, KS: Deref + Clone, TP: Deref + Clone, T: Deref + Clone> CustomMessageHandler for LiquidityManagerSync<ES, NS, CM, C, KS, TP, T>where
ES::Target: EntropySource,
NS::Target: NodeSigner,
CM::Target: AChannelManager,
C::Target: Filter,
KS::Target: KVStoreSync,
TP::Target: TimeProvider,
T::Target: BroadcasterInterface,
impl<ES: Deref + Clone, NS: Deref + Clone, CM: Deref + Clone, C: Deref + Clone, KS: Deref + Clone, TP: Deref + Clone, T: Deref + Clone> CustomMessageHandler for LiquidityManagerSync<ES, NS, CM, C, KS, TP, T>where
ES::Target: EntropySource,
NS::Target: NodeSigner,
CM::Target: AChannelManager,
C::Target: Filter,
KS::Target: KVStoreSync,
TP::Target: TimeProvider,
T::Target: BroadcasterInterface,
Source§fn handle_custom_message(
&self,
msg: Self::CustomMessage,
sender_node_id: PublicKey,
) -> Result<(), LightningError>
fn handle_custom_message( &self, msg: Self::CustomMessage, sender_node_id: PublicKey, ) -> Result<(), LightningError>
sender_node_id, possibly producing messages for
CustomMessageHandler::get_and_clear_pending_msg to return and thus for PeerManager
to send.Source§fn get_and_clear_pending_msg(&self) -> Vec<(PublicKey, Self::CustomMessage)>
fn get_and_clear_pending_msg(&self) -> Vec<(PublicKey, Self::CustomMessage)>
Source§fn provided_node_features(&self) -> NodeFeatures
fn provided_node_features(&self) -> NodeFeatures
NodeFeatures
which are broadcasted in our NodeAnnouncement message.Source§fn provided_init_features(&self, their_node_id: PublicKey) -> InitFeatures
fn provided_init_features(&self, their_node_id: PublicKey) -> InitFeatures
InitFeatures
which are sent in our Init message.Source§fn peer_disconnected(&self, counterparty_node_id: PublicKey)
fn peer_disconnected(&self, counterparty_node_id: PublicKey)
Source§impl<ES: Deref + Clone, NS: Deref + Clone, CM: Deref + Clone, C: Deref + Clone, KS: Deref + Clone, TP: Deref + Clone, T: Deref + Clone> CustomMessageReader for LiquidityManagerSync<ES, NS, CM, C, KS, TP, T>where
ES::Target: EntropySource,
NS::Target: NodeSigner,
CM::Target: AChannelManager,
C::Target: Filter,
KS::Target: KVStoreSync,
TP::Target: TimeProvider,
T::Target: BroadcasterInterface,
impl<ES: Deref + Clone, NS: Deref + Clone, CM: Deref + Clone, C: Deref + Clone, KS: Deref + Clone, TP: Deref + Clone, T: Deref + Clone> CustomMessageReader for LiquidityManagerSync<ES, NS, CM, C, KS, TP, T>where
ES::Target: EntropySource,
NS::Target: NodeSigner,
CM::Target: AChannelManager,
C::Target: Filter,
KS::Target: KVStoreSync,
TP::Target: TimeProvider,
T::Target: BroadcasterInterface,
Source§type CustomMessage = RawLSPSMessage
type CustomMessage = RawLSPSMessage
Source§fn read<RD: LengthLimitedRead>(
&self,
message_type: u16,
buffer: &mut RD,
) -> Result<Option<Self::CustomMessage>, DecodeError>
fn read<RD: LengthLimitedRead>( &self, message_type: u16, buffer: &mut RD, ) -> Result<Option<Self::CustomMessage>, DecodeError>
CustomMessageType. If the given message type is known to the
implementation and the message could be decoded, must return Ok(Some(message)). If the
message type is unknown to the implementation, must return Ok(None). If a decoding error
occur, must return Err(DecodeError::X) where X details the encountered error.