pub enum ChannelMonitorUpdateErr {
TemporaryFailure,
PermanentFailure,
}
An error enum representing a failure to persist a channel monitor update.
Used to indicate a temporary failure (eg connection to a watchtower failed, but is expected
to succeed at some point in the future).
Such a failure will "freeze" a channel, preventing us from revoking old states or
submitting new commitment transactions to the remote party.
ChannelManager::test_restore_channel_monitor can be used to retry the update(s) and restore
the channel to an operational state.
Note that continuing to operate when no copy of the updated ChannelMonitor could be
persisted is unsafe - if you failed to store the update on your own local disk you should
instead return PermanentFailure to force closure of the channel ASAP.
Even when a channel has been "frozen" updates to the ChannelMonitor can continue to occur
(eg if an inbound HTLC which we forwarded was claimed upstream resulting in us attempting
to claim it on this channel) and those updates must be applied wherever they can be. At
least one such updated ChannelMonitor must be persisted otherwise PermanentFailure should
be returned to get things on-chain ASAP using only the in-memory copy. Obviously updates to
the channel which would invalidate previous ChannelMonitors are not made when a channel has
been "frozen".
Note that even if updates made after TemporaryFailure succeed you must still call
test_restore_channel_monitor to ensure you have the latest monitor and re-enable normal
channel operation.
Used to indicate no further channel monitor updates will be allowed (eg we've moved on to a
different watchtower and cannot update with all watchtowers that were previously informed
of this channel). This will force-close the channel in question.
Should also be used to indicate a failure to update the local copy of the channel monitor.
Performs copy-assignment from source
. Read more
Creates owned data from borrowed data, usually by cloning. Read more
🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
🔬 This is a nightly-only experimental API. (try_from
)
The type returned in the event of a conversion error.
🔬 This is a nightly-only experimental API. (try_from
)
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
🔬 This is a nightly-only experimental API. (try_from
)
The type returned in the event of a conversion error.
🔬 This is a nightly-only experimental API. (try_from
)
🔬 This is a nightly-only experimental API. (get_type_id
)
this method will likely be replaced by an associated static