Package org.ldk.structs
Interface Watch.WatchInterface
-
- Enclosing class:
- Watch
public static interface Watch.WatchInterface
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description ThreeTuple_OutPointCVec_MonitorEventZPublicKeyZ[]release_pending_monitor_events()Returns any monitor events since the last call.ChannelMonitorUpdateStatusupdate_channel(OutPoint funding_txo, ChannelMonitorUpdate update)Updates a channel identified by `funding_txo` by applying `update` to its monitor.Result_ChannelMonitorUpdateStatusNoneZwatch_channel(OutPoint funding_txo, ChannelMonitor monitor)Watches a channel identified by `funding_txo` using `monitor`.
-
-
-
Method Detail
-
watch_channel
Result_ChannelMonitorUpdateStatusNoneZ watch_channel(OutPoint funding_txo, ChannelMonitor monitor)
Watches a channel identified by `funding_txo` using `monitor`. Implementations are responsible for watching the chain for the funding transaction along with any spends of outputs returned by [`get_outputs_to_watch`]. In practice, this means calling [`block_connected`] and [`block_disconnected`] on the monitor. A return of `Err(())` indicates that the channel should immediately be force-closed without broadcasting the funding transaction. If the given `funding_txo` has previously been registered via `watch_channel`, `Err(())` must be returned. [`get_outputs_to_watch`]: channelmonitor::ChannelMonitor::get_outputs_to_watch [`block_connected`]: channelmonitor::ChannelMonitor::block_connected [`block_disconnected`]: channelmonitor::ChannelMonitor::block_disconnected
-
update_channel
ChannelMonitorUpdateStatus update_channel(OutPoint funding_txo, ChannelMonitorUpdate update)
Updates a channel identified by `funding_txo` by applying `update` to its monitor. Implementations must call [`ChannelMonitor::update_monitor`] with the given update. This may fail (returning an `Err(())`), in which case this should return [`ChannelMonitorUpdateStatus::InProgress`] (and the update should never complete). This generally implies the channel has been closed (either by the funding outpoint being spent on-chain or the [`ChannelMonitor`] having decided to do so and broadcasted a transaction), and the [`ChannelManager`] state will be updated once it sees the funding spend on-chain. In general, persistence failures should be retried after returning [`ChannelMonitorUpdateStatus::InProgress`] and eventually complete. If a failure truly cannot be retried, the node should shut down immediately after returning [`ChannelMonitorUpdateStatus::UnrecoverableError`], see its documentation for more info. [`ChannelManager`]: crate::ln::channelmanager::ChannelManager
-
release_pending_monitor_events
ThreeTuple_OutPointCVec_MonitorEventZPublicKeyZ[] release_pending_monitor_events()
Returns any monitor events since the last call. Subsequent calls must only return new events. Note that after any block- or transaction-connection calls to a [`ChannelMonitor`], no further events may be returned here until the [`ChannelMonitor`] has been fully persisted to disk. For details on asynchronous [`ChannelMonitor`] updating and returning [`MonitorEvent::Completed`] here, see [`ChannelMonitorUpdateStatus::InProgress`].
-
-