1 package org.ldk.structs;
3 import org.ldk.impl.bindings;
4 import org.ldk.enums.*;
6 import java.util.Arrays;
7 import java.lang.ref.Reference;
8 import javax.annotation.Nullable;
12 * Features used within a `node_announcement` message.
14 @SuppressWarnings("unchecked") // We correctly assign various generic arrays
15 public class NodeFeatures extends CommonBase {
16 NodeFeatures(Object _dummy, long ptr) { super(ptr); }
17 @Override @SuppressWarnings("deprecation")
18 protected void finalize() throws Throwable {
20 if (ptr != 0) { bindings.NodeFeatures_free(ptr); }
24 * Checks if two NodeFeaturess contain equal inner contents.
25 * This ignores pointers and is_owned flags and looks at the values in fields.
26 * Two objects with NULL inner values will be considered "equal" here.
28 public boolean eq(NodeFeatures b) {
29 boolean ret = bindings.NodeFeatures_eq(this.ptr, b == null ? 0 : b.ptr);
30 Reference.reachabilityFence(this);
31 Reference.reachabilityFence(b);
36 @Override public boolean equals(Object o) {
37 if (!(o instanceof NodeFeatures)) return false;
38 return this.eq((NodeFeatures)o);
41 long ret = bindings.NodeFeatures_clone_ptr(this.ptr);
42 Reference.reachabilityFence(this);
47 * Creates a copy of the NodeFeatures
49 public NodeFeatures clone() {
50 long ret = bindings.NodeFeatures_clone(this.ptr);
51 Reference.reachabilityFence(this);
52 if (ret >= 0 && ret <= 4096) { return null; }
53 org.ldk.structs.NodeFeatures ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.NodeFeatures(null, ret); }
54 ret_hu_conv.ptrs_to.add(this);
59 * Create a blank Features with no features set
61 public static NodeFeatures empty() {
62 long ret = bindings.NodeFeatures_empty();
63 if (ret >= 0 && ret <= 4096) { return null; }
64 org.ldk.structs.NodeFeatures ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.NodeFeatures(null, ret); }
65 ret_hu_conv.ptrs_to.add(ret_hu_conv);
70 * Creates a Features with the bits set which are known by the implementation
72 public static NodeFeatures known() {
73 long ret = bindings.NodeFeatures_known();
74 if (ret >= 0 && ret <= 4096) { return null; }
75 org.ldk.structs.NodeFeatures ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.NodeFeatures(null, ret); }
76 ret_hu_conv.ptrs_to.add(ret_hu_conv);
81 * Returns true if this `Features` object contains unknown feature flags which are set as
84 public boolean requires_unknown_bits() {
85 boolean ret = bindings.NodeFeatures_requires_unknown_bits(this.ptr);
86 Reference.reachabilityFence(this);
91 * Serialize the NodeFeatures object into a byte array which can be read by NodeFeatures_read
93 public byte[] write() {
94 byte[] ret = bindings.NodeFeatures_write(this.ptr);
95 Reference.reachabilityFence(this);
100 * Read a NodeFeatures from a byte array, created by NodeFeatures_write
102 public static Result_NodeFeaturesDecodeErrorZ read(byte[] ser) {
103 long ret = bindings.NodeFeatures_read(ser);
104 Reference.reachabilityFence(ser);
105 if (ret >= 0 && ret <= 4096) { return null; }
106 Result_NodeFeaturesDecodeErrorZ ret_hu_conv = Result_NodeFeaturesDecodeErrorZ.constr_from_ptr(ret);
111 * Set this feature as optional.
113 public void set_data_loss_protect_optional() {
114 bindings.NodeFeatures_set_data_loss_protect_optional(this.ptr);
115 Reference.reachabilityFence(this);
119 * Set this feature as required.
121 public void set_data_loss_protect_required() {
122 bindings.NodeFeatures_set_data_loss_protect_required(this.ptr);
123 Reference.reachabilityFence(this);
127 * Checks if this feature is supported.
129 public boolean supports_data_loss_protect() {
130 boolean ret = bindings.NodeFeatures_supports_data_loss_protect(this.ptr);
131 Reference.reachabilityFence(this);
136 * Checks if this feature is required.
138 public boolean requires_data_loss_protect() {
139 boolean ret = bindings.NodeFeatures_requires_data_loss_protect(this.ptr);
140 Reference.reachabilityFence(this);
145 * Set this feature as optional.
147 public void set_upfront_shutdown_script_optional() {
148 bindings.NodeFeatures_set_upfront_shutdown_script_optional(this.ptr);
149 Reference.reachabilityFence(this);
153 * Set this feature as required.
155 public void set_upfront_shutdown_script_required() {
156 bindings.NodeFeatures_set_upfront_shutdown_script_required(this.ptr);
157 Reference.reachabilityFence(this);
161 * Checks if this feature is supported.
163 public boolean supports_upfront_shutdown_script() {
164 boolean ret = bindings.NodeFeatures_supports_upfront_shutdown_script(this.ptr);
165 Reference.reachabilityFence(this);
170 * Checks if this feature is required.
172 public boolean requires_upfront_shutdown_script() {
173 boolean ret = bindings.NodeFeatures_requires_upfront_shutdown_script(this.ptr);
174 Reference.reachabilityFence(this);
179 * Set this feature as optional.
181 public void set_gossip_queries_optional() {
182 bindings.NodeFeatures_set_gossip_queries_optional(this.ptr);
183 Reference.reachabilityFence(this);
187 * Set this feature as required.
189 public void set_gossip_queries_required() {
190 bindings.NodeFeatures_set_gossip_queries_required(this.ptr);
191 Reference.reachabilityFence(this);
195 * Checks if this feature is supported.
197 public boolean supports_gossip_queries() {
198 boolean ret = bindings.NodeFeatures_supports_gossip_queries(this.ptr);
199 Reference.reachabilityFence(this);
204 * Checks if this feature is required.
206 public boolean requires_gossip_queries() {
207 boolean ret = bindings.NodeFeatures_requires_gossip_queries(this.ptr);
208 Reference.reachabilityFence(this);
213 * Set this feature as optional.
215 public void set_variable_length_onion_optional() {
216 bindings.NodeFeatures_set_variable_length_onion_optional(this.ptr);
217 Reference.reachabilityFence(this);
221 * Set this feature as required.
223 public void set_variable_length_onion_required() {
224 bindings.NodeFeatures_set_variable_length_onion_required(this.ptr);
225 Reference.reachabilityFence(this);
229 * Checks if this feature is supported.
231 public boolean supports_variable_length_onion() {
232 boolean ret = bindings.NodeFeatures_supports_variable_length_onion(this.ptr);
233 Reference.reachabilityFence(this);
238 * Checks if this feature is required.
240 public boolean requires_variable_length_onion() {
241 boolean ret = bindings.NodeFeatures_requires_variable_length_onion(this.ptr);
242 Reference.reachabilityFence(this);
247 * Set this feature as optional.
249 public void set_static_remote_key_optional() {
250 bindings.NodeFeatures_set_static_remote_key_optional(this.ptr);
251 Reference.reachabilityFence(this);
255 * Set this feature as required.
257 public void set_static_remote_key_required() {
258 bindings.NodeFeatures_set_static_remote_key_required(this.ptr);
259 Reference.reachabilityFence(this);
263 * Checks if this feature is supported.
265 public boolean supports_static_remote_key() {
266 boolean ret = bindings.NodeFeatures_supports_static_remote_key(this.ptr);
267 Reference.reachabilityFence(this);
272 * Checks if this feature is required.
274 public boolean requires_static_remote_key() {
275 boolean ret = bindings.NodeFeatures_requires_static_remote_key(this.ptr);
276 Reference.reachabilityFence(this);
281 * Set this feature as optional.
283 public void set_payment_secret_optional() {
284 bindings.NodeFeatures_set_payment_secret_optional(this.ptr);
285 Reference.reachabilityFence(this);
289 * Set this feature as required.
291 public void set_payment_secret_required() {
292 bindings.NodeFeatures_set_payment_secret_required(this.ptr);
293 Reference.reachabilityFence(this);
297 * Checks if this feature is supported.
299 public boolean supports_payment_secret() {
300 boolean ret = bindings.NodeFeatures_supports_payment_secret(this.ptr);
301 Reference.reachabilityFence(this);
306 * Checks if this feature is required.
308 public boolean requires_payment_secret() {
309 boolean ret = bindings.NodeFeatures_requires_payment_secret(this.ptr);
310 Reference.reachabilityFence(this);
315 * Set this feature as optional.
317 public void set_basic_mpp_optional() {
318 bindings.NodeFeatures_set_basic_mpp_optional(this.ptr);
319 Reference.reachabilityFence(this);
323 * Set this feature as required.
325 public void set_basic_mpp_required() {
326 bindings.NodeFeatures_set_basic_mpp_required(this.ptr);
327 Reference.reachabilityFence(this);
331 * Checks if this feature is supported.
333 public boolean supports_basic_mpp() {
334 boolean ret = bindings.NodeFeatures_supports_basic_mpp(this.ptr);
335 Reference.reachabilityFence(this);
340 * Checks if this feature is required.
342 public boolean requires_basic_mpp() {
343 boolean ret = bindings.NodeFeatures_requires_basic_mpp(this.ptr);
344 Reference.reachabilityFence(this);
349 * Set this feature as optional.
351 public void set_wumbo_optional() {
352 bindings.NodeFeatures_set_wumbo_optional(this.ptr);
353 Reference.reachabilityFence(this);
357 * Set this feature as required.
359 public void set_wumbo_required() {
360 bindings.NodeFeatures_set_wumbo_required(this.ptr);
361 Reference.reachabilityFence(this);
365 * Checks if this feature is supported.
367 public boolean supports_wumbo() {
368 boolean ret = bindings.NodeFeatures_supports_wumbo(this.ptr);
369 Reference.reachabilityFence(this);
374 * Checks if this feature is required.
376 public boolean requires_wumbo() {
377 boolean ret = bindings.NodeFeatures_requires_wumbo(this.ptr);
378 Reference.reachabilityFence(this);
383 * Set this feature as optional.
385 public void set_shutdown_any_segwit_optional() {
386 bindings.NodeFeatures_set_shutdown_any_segwit_optional(this.ptr);
387 Reference.reachabilityFence(this);
391 * Set this feature as required.
393 public void set_shutdown_any_segwit_required() {
394 bindings.NodeFeatures_set_shutdown_any_segwit_required(this.ptr);
395 Reference.reachabilityFence(this);
399 * Checks if this feature is supported.
401 public boolean supports_shutdown_anysegwit() {
402 boolean ret = bindings.NodeFeatures_supports_shutdown_anysegwit(this.ptr);
403 Reference.reachabilityFence(this);
408 * Checks if this feature is required.
410 public boolean requires_shutdown_anysegwit() {
411 boolean ret = bindings.NodeFeatures_requires_shutdown_anysegwit(this.ptr);
412 Reference.reachabilityFence(this);
417 * Set this feature as optional.
419 public void set_channel_type_optional() {
420 bindings.NodeFeatures_set_channel_type_optional(this.ptr);
421 Reference.reachabilityFence(this);
425 * Set this feature as required.
427 public void set_channel_type_required() {
428 bindings.NodeFeatures_set_channel_type_required(this.ptr);
429 Reference.reachabilityFence(this);
433 * Checks if this feature is supported.
435 public boolean supports_channel_type() {
436 boolean ret = bindings.NodeFeatures_supports_channel_type(this.ptr);
437 Reference.reachabilityFence(this);
442 * Checks if this feature is required.
444 public boolean requires_channel_type() {
445 boolean ret = bindings.NodeFeatures_requires_channel_type(this.ptr);
446 Reference.reachabilityFence(this);
451 * Set this feature as optional.
453 public void set_scid_privacy_optional() {
454 bindings.NodeFeatures_set_scid_privacy_optional(this.ptr);
455 Reference.reachabilityFence(this);
459 * Set this feature as required.
461 public void set_scid_privacy_required() {
462 bindings.NodeFeatures_set_scid_privacy_required(this.ptr);
463 Reference.reachabilityFence(this);
467 * Checks if this feature is supported.
469 public boolean supports_scid_privacy() {
470 boolean ret = bindings.NodeFeatures_supports_scid_privacy(this.ptr);
471 Reference.reachabilityFence(this);
476 * Checks if this feature is required.
478 public boolean requires_scid_privacy() {
479 boolean ret = bindings.NodeFeatures_requires_scid_privacy(this.ptr);
480 Reference.reachabilityFence(this);
485 * Set this feature as optional.
487 public void set_zero_conf_optional() {
488 bindings.NodeFeatures_set_zero_conf_optional(this.ptr);
489 Reference.reachabilityFence(this);
493 * Set this feature as required.
495 public void set_zero_conf_required() {
496 bindings.NodeFeatures_set_zero_conf_required(this.ptr);
497 Reference.reachabilityFence(this);
501 * Checks if this feature is supported.
503 public boolean supports_zero_conf() {
504 boolean ret = bindings.NodeFeatures_supports_zero_conf(this.ptr);
505 Reference.reachabilityFence(this);
510 * Checks if this feature is required.
512 public boolean requires_zero_conf() {
513 boolean ret = bindings.NodeFeatures_requires_zero_conf(this.ptr);
514 Reference.reachabilityFence(this);
519 * Set this feature as optional.
521 public void set_keysend_optional() {
522 bindings.NodeFeatures_set_keysend_optional(this.ptr);
523 Reference.reachabilityFence(this);
527 * Set this feature as required.
529 public void set_keysend_required() {
530 bindings.NodeFeatures_set_keysend_required(this.ptr);
531 Reference.reachabilityFence(this);
535 * Checks if this feature is supported.
537 public boolean supports_keysend() {
538 boolean ret = bindings.NodeFeatures_supports_keysend(this.ptr);
539 Reference.reachabilityFence(this);
544 * Checks if this feature is required.
546 public boolean requires_keysend() {
547 boolean ret = bindings.NodeFeatures_requires_keysend(this.ptr);
548 Reference.reachabilityFence(this);