+ /**
+ * Triggers rebroadcasts/fee-bumps of pending claims from a force-closed channel. This is
+ * crucial in preventing certain classes of pinning attacks, detecting substantial mempool
+ * feerate changes between blocks, and ensuring reliability if broadcasting fails. We recommend
+ * invoking this every 30 seconds, or lower if running in an environment with spotty
+ * connections, like on mobile.
+ */
+ public void rebroadcast_pending_claims() {
+ bindings.ChainMonitor_rebroadcast_pending_claims(this.ptr);
+ Reference.reachabilityFence(this);
+ }
+
+ /**
+ * Triggers rebroadcasts of pending claims from force-closed channels after a transaction
+ * signature generation failure.
+ *
+ * `monitor_opt` can be used as a filter to only trigger them for a specific channel monitor.
+ *
+ * Note that monitor_opt (or a relevant inner pointer) may be NULL or all-0s to represent None
+ */
+ public void signer_unblocked(@Nullable org.ldk.structs.OutPoint monitor_opt) {
+ bindings.ChainMonitor_signer_unblocked(this.ptr, monitor_opt == null ? 0 : monitor_opt.ptr);
+ Reference.reachabilityFence(this);
+ Reference.reachabilityFence(monitor_opt);
+ if (this != null) { this.ptrs_to.add(monitor_opt); };
+ }
+
+ /**
+ * Archives fully resolved channel monitors by calling [`Persist::archive_persisted_channel`].
+ *
+ * This is useful for pruning fully resolved monitors from the monitor set and primary
+ * storage so they are not kept in memory and reloaded on restart.
+ *
+ * Should be called occasionally (once every handful of blocks or on startup).
+ *
+ * Depending on the implementation of [`Persist::archive_persisted_channel`] the monitor
+ * data could be moved to an archive location or removed entirely.
+ */
+ public void archive_fully_resolved_channel_monitors() {
+ bindings.ChainMonitor_archive_fully_resolved_channel_monitors(this.ptr);
+ Reference.reachabilityFence(this);
+ }
+