Reference.reachabilityFence(this);
if (ret >= 0 && ret <= 4096) { return null; }
EventHandler ret_hu_conv = new EventHandler(null, ret);
- ret_hu_conv.ptrs_to.add(this);
+ if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(this); };
return ret_hu_conv;
}
Reference.reachabilityFence(arg);
if (ret >= 0 && ret <= 4096) { return null; }
Result_NetworkGraphDecodeErrorZ ret_hu_conv = Result_NetworkGraphDecodeErrorZ.constr_from_ptr(ret);
- ret_hu_conv.ptrs_to.add(arg);
+ if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(arg); };
return ret_hu_conv;
}
Reference.reachabilityFence(logger);
if (ret >= 0 && ret <= 4096) { return null; }
org.ldk.structs.NetworkGraph ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.NetworkGraph(null, ret); }
- ret_hu_conv.ptrs_to.add(ret_hu_conv);
- ret_hu_conv.ptrs_to.add(logger);
+ if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(ret_hu_conv); };
+ if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(logger); };
return ret_hu_conv;
}
Reference.reachabilityFence(this);
if (ret >= 0 && ret <= 4096) { return null; }
org.ldk.structs.ReadOnlyNetworkGraph ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.ReadOnlyNetworkGraph(null, ret); }
- ret_hu_conv.ptrs_to.add(this);
+ if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(this); };
return ret_hu_conv;
}
Reference.reachabilityFence(this);
if (ret >= 0 && ret <= 4096) { return null; }
org.ldk.structs.Option_u32Z ret_hu_conv = org.ldk.structs.Option_u32Z.constr_from_ptr(ret);
- ret_hu_conv.ptrs_to.add(this);
+ if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(this); };
return ret_hu_conv;
}
* routing messages from a source using a protocol other than the lightning P2P protocol.
*/
public Result_NoneLightningErrorZ update_node_from_announcement(NodeAnnouncement msg) {
- long ret = bindings.NetworkGraph_update_node_from_announcement(this.ptr, msg == null ? 0 : msg.ptr & ~1);
+ long ret = bindings.NetworkGraph_update_node_from_announcement(this.ptr, msg == null ? 0 : msg.ptr);
Reference.reachabilityFence(this);
Reference.reachabilityFence(msg);
if (ret >= 0 && ret <= 4096) { return null; }
Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret);
- this.ptrs_to.add(msg);
+ if (this != null) { this.ptrs_to.add(msg); };
return ret_hu_conv;
}
* peers.
*/
public Result_NoneLightningErrorZ update_node_from_unsigned_announcement(UnsignedNodeAnnouncement msg) {
- long ret = bindings.NetworkGraph_update_node_from_unsigned_announcement(this.ptr, msg == null ? 0 : msg.ptr & ~1);
+ long ret = bindings.NetworkGraph_update_node_from_unsigned_announcement(this.ptr, msg == null ? 0 : msg.ptr);
Reference.reachabilityFence(this);
Reference.reachabilityFence(msg);
if (ret >= 0 && ret <= 4096) { return null; }
Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret);
- this.ptrs_to.add(msg);
+ if (this != null) { this.ptrs_to.add(msg); };
return ret_hu_conv;
}
* the corresponding UTXO exists on chain and is correctly-formatted.
*/
public Result_NoneLightningErrorZ update_channel_from_announcement(ChannelAnnouncement msg, Option_AccessZ chain_access) {
- long ret = bindings.NetworkGraph_update_channel_from_announcement(this.ptr, msg == null ? 0 : msg.ptr & ~1, chain_access.ptr);
+ long ret = bindings.NetworkGraph_update_channel_from_announcement(this.ptr, msg == null ? 0 : msg.ptr, chain_access.ptr);
Reference.reachabilityFence(this);
Reference.reachabilityFence(msg);
Reference.reachabilityFence(chain_access);
if (ret >= 0 && ret <= 4096) { return null; }
Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret);
- this.ptrs_to.add(msg);
- this.ptrs_to.add(chain_access);
+ if (this != null) { this.ptrs_to.add(msg); };
+ if (this != null) { this.ptrs_to.add(chain_access); };
return ret_hu_conv;
}
* the corresponding UTXO exists on chain and is correctly-formatted.
*/
public Result_NoneLightningErrorZ update_channel_from_unsigned_announcement(UnsignedChannelAnnouncement msg, Option_AccessZ chain_access) {
- long ret = bindings.NetworkGraph_update_channel_from_unsigned_announcement(this.ptr, msg == null ? 0 : msg.ptr & ~1, chain_access.ptr);
+ long ret = bindings.NetworkGraph_update_channel_from_unsigned_announcement(this.ptr, msg == null ? 0 : msg.ptr, chain_access.ptr);
Reference.reachabilityFence(this);
Reference.reachabilityFence(msg);
Reference.reachabilityFence(chain_access);
if (ret >= 0 && ret <= 4096) { return null; }
Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret);
- this.ptrs_to.add(msg);
- this.ptrs_to.add(chain_access);
+ if (this != null) { this.ptrs_to.add(msg); };
+ if (this != null) { this.ptrs_to.add(chain_access); };
return ret_hu_conv;
}
* All other parameters as used in [`msgs::UnsignedChannelAnnouncement`] fields.
*/
public Result_NoneLightningErrorZ add_channel_from_partial_announcement(long short_channel_id, long timestamp, ChannelFeatures features, byte[] node_id_1, byte[] node_id_2) {
- long ret = bindings.NetworkGraph_add_channel_from_partial_announcement(this.ptr, short_channel_id, timestamp, features == null ? 0 : features.ptr & ~1, InternalUtils.check_arr_len(node_id_1, 33), InternalUtils.check_arr_len(node_id_2, 33));
+ long ret = bindings.NetworkGraph_add_channel_from_partial_announcement(this.ptr, short_channel_id, timestamp, features == null ? 0 : features.ptr, InternalUtils.check_arr_len(node_id_1, 33), InternalUtils.check_arr_len(node_id_2, 33));
Reference.reachabilityFence(this);
Reference.reachabilityFence(short_channel_id);
Reference.reachabilityFence(timestamp);
Reference.reachabilityFence(node_id_2);
if (ret >= 0 && ret <= 4096) { return null; }
Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret);
+ if (this != null) { this.ptrs_to.add(features); };
return ret_hu_conv;
}
}
/**
- * Marks a node in the graph as failed.
+ * Marks a node in the graph as permanently failed, effectively removing it and its channels
+ * from local storage.
*/
- public void node_failed(byte[] _node_id, boolean is_permanent) {
- bindings.NetworkGraph_node_failed(this.ptr, InternalUtils.check_arr_len(_node_id, 33), is_permanent);
+ public void node_failed_permanent(byte[] node_id) {
+ bindings.NetworkGraph_node_failed_permanent(this.ptr, InternalUtils.check_arr_len(node_id, 33));
Reference.reachabilityFence(this);
- Reference.reachabilityFence(_node_id);
- Reference.reachabilityFence(is_permanent);
+ Reference.reachabilityFence(node_id);
}
/**
* Note that for users of the `lightning-background-processor` crate this method may be
* automatically called regularly for you.
*
+ * This method will also cause us to stop tracking removed nodes and channels if they have been
+ * in the map for a while so that these can be resynced from gossip in the future.
+ *
* This method is only available with the `std` feature. See
- * [`NetworkGraph::remove_stale_channels_with_time`] for `no-std` use.
+ * [`NetworkGraph::remove_stale_channels_and_tracking_with_time`] for `no-std` use.
*/
- public void remove_stale_channels() {
- bindings.NetworkGraph_remove_stale_channels(this.ptr);
+ public void remove_stale_channels_and_tracking() {
+ bindings.NetworkGraph_remove_stale_channels_and_tracking(this.ptr);
Reference.reachabilityFence(this);
}
* updates every two weeks, the non-normative section of BOLT 7 currently suggests that
* pruning occur for updates which are at least two weeks old, which we implement here.
*
+ * This method will also cause us to stop tracking removed nodes and channels if they have been
+ * in the map for a while so that these can be resynced from gossip in the future.
+ *
* This function takes the current unix time as an argument. For users with the `std` feature
- * enabled, [`NetworkGraph::remove_stale_channels`] may be preferable.
+ * enabled, [`NetworkGraph::remove_stale_channels_and_tracking`] may be preferable.
*/
- public void remove_stale_channels_with_time(long current_time_unix) {
- bindings.NetworkGraph_remove_stale_channels_with_time(this.ptr, current_time_unix);
+ public void remove_stale_channels_and_tracking_with_time(long current_time_unix) {
+ bindings.NetworkGraph_remove_stale_channels_and_tracking_with_time(this.ptr, current_time_unix);
Reference.reachabilityFence(this);
Reference.reachabilityFence(current_time_unix);
}
* materially in the future will be rejected.
*/
public Result_NoneLightningErrorZ update_channel(ChannelUpdate msg) {
- long ret = bindings.NetworkGraph_update_channel(this.ptr, msg == null ? 0 : msg.ptr & ~1);
+ long ret = bindings.NetworkGraph_update_channel(this.ptr, msg == null ? 0 : msg.ptr);
Reference.reachabilityFence(this);
Reference.reachabilityFence(msg);
if (ret >= 0 && ret <= 4096) { return null; }
Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret);
- this.ptrs_to.add(msg);
+ if (this != null) { this.ptrs_to.add(msg); };
return ret_hu_conv;
}
* materially in the future will be rejected.
*/
public Result_NoneLightningErrorZ update_channel_unsigned(UnsignedChannelUpdate msg) {
- long ret = bindings.NetworkGraph_update_channel_unsigned(this.ptr, msg == null ? 0 : msg.ptr & ~1);
+ long ret = bindings.NetworkGraph_update_channel_unsigned(this.ptr, msg == null ? 0 : msg.ptr);
Reference.reachabilityFence(this);
Reference.reachabilityFence(msg);
if (ret >= 0 && ret <= 4096) { return null; }
Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret);
- this.ptrs_to.add(msg);
+ if (this != null) { this.ptrs_to.add(msg); };
return ret_hu_conv;
}