Package org.ldk.structs
Class Watch
- java.lang.Object
-
- org.ldk.structs.Watch
-
public class Watch extends Object
The `Watch` trait defines behavior for watching on-chain activity pertaining to channels as blocks are connected and disconnected. Each channel is associated with a [`ChannelMonitor`]. Implementations of this trait are responsible for maintaining a set of monitors such that they can be updated accordingly as channel state changes and HTLCs are resolved. See method documentation for specific requirements. Implementations **must** ensure that updates are successfully applied and persisted upon method completion. If an update fails with a [`PermanentFailure`], then it must immediately shut down without taking any further action such as persisting the current state. If an implementation maintains multiple instances of a channel's monitor (e.g., by storing backup copies), then it must ensure that updates are applied across all instances. Otherwise, it could result in a revoked transaction being broadcast, allowing the counterparty to claim all funds in the channel. See [`ChannelMonitorUpdateErr`] for more details about how to handle multiple instances. [`ChannelMonitor`]: channelmonitor::ChannelMonitor [`ChannelMonitorUpdateErr`]: channelmonitor::ChannelMonitorUpdateErr [`PermanentFailure`]: channelmonitor::ChannelMonitorUpdateErr::PermanentFailure
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
Watch.WatchInterface
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
finalize()
static Watch
new_impl(Watch.WatchInterface arg)
MonitorEvent[]
release_pending_monitor_events()
Returns any monitor events since the last call.Result_NoneChannelMonitorUpdateErrZ
update_channel(OutPoint funding_txo, ChannelMonitorUpdate update)
Updates a channel identified by `funding_txo` by applying `update` to its monitor.Result_NoneChannelMonitorUpdateErrZ
watch_channel(OutPoint funding_txo, ChannelMonitor monitor)
Watches a channel identified by `funding_txo` using `monitor`.
-
-
-
Method Detail
-
finalize
protected void finalize() throws Throwable
-
new_impl
public static Watch new_impl(Watch.WatchInterface arg)
-
watch_channel
public Result_NoneChannelMonitorUpdateErrZ 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. [`get_outputs_to_watch`]: channelmonitor::ChannelMonitor::get_outputs_to_watch [`block_connected`]: channelmonitor::ChannelMonitor::block_connected [`block_disconnected`]: channelmonitor::ChannelMonitor::block_disconnected
-
update_channel
public Result_NoneChannelMonitorUpdateErrZ update_channel(OutPoint funding_txo, ChannelMonitorUpdate update)
Updates a channel identified by `funding_txo` by applying `update` to its monitor. Implementations must call [`update_monitor`] with the given update. See [`ChannelMonitorUpdateErr`] for invariants around returning an error. [`update_monitor`]: channelmonitor::ChannelMonitor::update_monitor [`ChannelMonitorUpdateErr`]: channelmonitor::ChannelMonitorUpdateErr
-
release_pending_monitor_events
public MonitorEvent[] release_pending_monitor_events()
Returns any monitor events since the last call. Subsequent calls must only return new events.
-
-