[Java] Update auto-generated bindings to 0.0.117
[ldk-java] / src / main / java / org / ldk / structs / NodeFeatures.java
1 package org.ldk.structs;
2
3 import org.ldk.impl.bindings;
4 import org.ldk.enums.*;
5 import org.ldk.util.*;
6 import java.util.Arrays;
7 import java.lang.ref.Reference;
8 import javax.annotation.Nullable;
9
10
11 /**
12  * Features used within a `node_announcement` message.
13  */
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 {
19                 super.finalize();
20                 if (ptr != 0) { bindings.NodeFeatures_free(ptr); }
21         }
22
23         /**
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.
27          */
28         public boolean eq(org.ldk.structs.NodeFeatures b) {
29                 boolean ret = bindings.NodeFeatures_eq(this.ptr, b == null ? 0 : b.ptr);
30                 Reference.reachabilityFence(this);
31                 Reference.reachabilityFence(b);
32                 if (this != null) { this.ptrs_to.add(b); };
33                 return ret;
34         }
35
36         @Override public boolean equals(Object o) {
37                 if (!(o instanceof NodeFeatures)) return false;
38                 return this.eq((NodeFeatures)o);
39         }
40         long clone_ptr() {
41                 long ret = bindings.NodeFeatures_clone_ptr(this.ptr);
42                 Reference.reachabilityFence(this);
43                 return ret;
44         }
45
46         /**
47          * Creates a copy of the NodeFeatures
48          */
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                 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(this); };
55                 return ret_hu_conv;
56         }
57
58         /**
59          * Create a blank Features with no features set
60          */
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                 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(ret_hu_conv); };
66                 return ret_hu_conv;
67         }
68
69         /**
70          * Returns true if this `Features` object contains required features unknown by `other`.
71          */
72         public boolean requires_unknown_bits_from(org.ldk.structs.NodeFeatures other) {
73                 boolean ret = bindings.NodeFeatures_requires_unknown_bits_from(this.ptr, other == null ? 0 : other.ptr);
74                 Reference.reachabilityFence(this);
75                 Reference.reachabilityFence(other);
76                 if (this != null) { this.ptrs_to.add(other); };
77                 return ret;
78         }
79
80         /**
81          * Returns true if this `Features` object contains unknown feature flags which are set as
82          * \"required\".
83          */
84         public boolean requires_unknown_bits() {
85                 boolean ret = bindings.NodeFeatures_requires_unknown_bits(this.ptr);
86                 Reference.reachabilityFence(this);
87                 return ret;
88         }
89
90         /**
91          * Sets a required feature bit. Errors if `bit` is outside the feature range as defined
92          * by [BOLT 9].
93          * 
94          * Note: Required bits are even. If an odd bit is given, then the corresponding even bit will
95          * be set instead (i.e., `bit - 1`).
96          * 
97          * [BOLT 9]: https://github.com/lightning/bolts/blob/master/09-features.md
98          */
99         public Result_NoneNoneZ set_required_feature_bit(long bit) {
100                 long ret = bindings.NodeFeatures_set_required_feature_bit(this.ptr, bit);
101                 Reference.reachabilityFence(this);
102                 Reference.reachabilityFence(bit);
103                 if (ret >= 0 && ret <= 4096) { return null; }
104                 Result_NoneNoneZ ret_hu_conv = Result_NoneNoneZ.constr_from_ptr(ret);
105                 return ret_hu_conv;
106         }
107
108         /**
109          * Sets an optional feature bit. Errors if `bit` is outside the feature range as defined
110          * by [BOLT 9].
111          * 
112          * Note: Optional bits are odd. If an even bit is given, then the corresponding odd bit will be
113          * set instead (i.e., `bit + 1`).
114          * 
115          * [BOLT 9]: https://github.com/lightning/bolts/blob/master/09-features.md
116          */
117         public Result_NoneNoneZ set_optional_feature_bit(long bit) {
118                 long ret = bindings.NodeFeatures_set_optional_feature_bit(this.ptr, bit);
119                 Reference.reachabilityFence(this);
120                 Reference.reachabilityFence(bit);
121                 if (ret >= 0 && ret <= 4096) { return null; }
122                 Result_NoneNoneZ ret_hu_conv = Result_NoneNoneZ.constr_from_ptr(ret);
123                 return ret_hu_conv;
124         }
125
126         /**
127          * Sets a required custom feature bit. Errors if `bit` is outside the custom range as defined
128          * by [bLIP 2] or if it is a known `T` feature.
129          * 
130          * Note: Required bits are even. If an odd bit is given, then the corresponding even bit will
131          * be set instead (i.e., `bit - 1`).
132          * 
133          * [bLIP 2]: https://github.com/lightning/blips/blob/master/blip-0002.md#feature-bits
134          */
135         public Result_NoneNoneZ set_required_custom_bit(long bit) {
136                 long ret = bindings.NodeFeatures_set_required_custom_bit(this.ptr, bit);
137                 Reference.reachabilityFence(this);
138                 Reference.reachabilityFence(bit);
139                 if (ret >= 0 && ret <= 4096) { return null; }
140                 Result_NoneNoneZ ret_hu_conv = Result_NoneNoneZ.constr_from_ptr(ret);
141                 return ret_hu_conv;
142         }
143
144         /**
145          * Sets an optional custom feature bit. Errors if `bit` is outside the custom range as defined
146          * by [bLIP 2] or if it is a known `T` feature.
147          * 
148          * Note: Optional bits are odd. If an even bit is given, then the corresponding odd bit will be
149          * set instead (i.e., `bit + 1`).
150          * 
151          * [bLIP 2]: https://github.com/lightning/blips/blob/master/blip-0002.md#feature-bits
152          */
153         public Result_NoneNoneZ set_optional_custom_bit(long bit) {
154                 long ret = bindings.NodeFeatures_set_optional_custom_bit(this.ptr, bit);
155                 Reference.reachabilityFence(this);
156                 Reference.reachabilityFence(bit);
157                 if (ret >= 0 && ret <= 4096) { return null; }
158                 Result_NoneNoneZ ret_hu_conv = Result_NoneNoneZ.constr_from_ptr(ret);
159                 return ret_hu_conv;
160         }
161
162         /**
163          * Serialize the NodeFeatures object into a byte array which can be read by NodeFeatures_read
164          */
165         public byte[] write() {
166                 byte[] ret = bindings.NodeFeatures_write(this.ptr);
167                 Reference.reachabilityFence(this);
168                 return ret;
169         }
170
171         /**
172          * Read a NodeFeatures from a byte array, created by NodeFeatures_write
173          */
174         public static Result_NodeFeaturesDecodeErrorZ read(byte[] ser) {
175                 long ret = bindings.NodeFeatures_read(ser);
176                 Reference.reachabilityFence(ser);
177                 if (ret >= 0 && ret <= 4096) { return null; }
178                 Result_NodeFeaturesDecodeErrorZ ret_hu_conv = Result_NodeFeaturesDecodeErrorZ.constr_from_ptr(ret);
179                 return ret_hu_conv;
180         }
181
182         /**
183          * Set this feature as optional.
184          */
185         public void set_data_loss_protect_optional() {
186                 bindings.NodeFeatures_set_data_loss_protect_optional(this.ptr);
187                 Reference.reachabilityFence(this);
188         }
189
190         /**
191          * Set this feature as required.
192          */
193         public void set_data_loss_protect_required() {
194                 bindings.NodeFeatures_set_data_loss_protect_required(this.ptr);
195                 Reference.reachabilityFence(this);
196         }
197
198         /**
199          * Checks if this feature is supported.
200          */
201         public boolean supports_data_loss_protect() {
202                 boolean ret = bindings.NodeFeatures_supports_data_loss_protect(this.ptr);
203                 Reference.reachabilityFence(this);
204                 return ret;
205         }
206
207         /**
208          * Checks if this feature is required.
209          */
210         public boolean requires_data_loss_protect() {
211                 boolean ret = bindings.NodeFeatures_requires_data_loss_protect(this.ptr);
212                 Reference.reachabilityFence(this);
213                 return ret;
214         }
215
216         /**
217          * Set this feature as optional.
218          */
219         public void set_upfront_shutdown_script_optional() {
220                 bindings.NodeFeatures_set_upfront_shutdown_script_optional(this.ptr);
221                 Reference.reachabilityFence(this);
222         }
223
224         /**
225          * Set this feature as required.
226          */
227         public void set_upfront_shutdown_script_required() {
228                 bindings.NodeFeatures_set_upfront_shutdown_script_required(this.ptr);
229                 Reference.reachabilityFence(this);
230         }
231
232         /**
233          * Checks if this feature is supported.
234          */
235         public boolean supports_upfront_shutdown_script() {
236                 boolean ret = bindings.NodeFeatures_supports_upfront_shutdown_script(this.ptr);
237                 Reference.reachabilityFence(this);
238                 return ret;
239         }
240
241         /**
242          * Checks if this feature is required.
243          */
244         public boolean requires_upfront_shutdown_script() {
245                 boolean ret = bindings.NodeFeatures_requires_upfront_shutdown_script(this.ptr);
246                 Reference.reachabilityFence(this);
247                 return ret;
248         }
249
250         /**
251          * Set this feature as optional.
252          */
253         public void set_gossip_queries_optional() {
254                 bindings.NodeFeatures_set_gossip_queries_optional(this.ptr);
255                 Reference.reachabilityFence(this);
256         }
257
258         /**
259          * Set this feature as required.
260          */
261         public void set_gossip_queries_required() {
262                 bindings.NodeFeatures_set_gossip_queries_required(this.ptr);
263                 Reference.reachabilityFence(this);
264         }
265
266         /**
267          * Checks if this feature is supported.
268          */
269         public boolean supports_gossip_queries() {
270                 boolean ret = bindings.NodeFeatures_supports_gossip_queries(this.ptr);
271                 Reference.reachabilityFence(this);
272                 return ret;
273         }
274
275         /**
276          * Checks if this feature is required.
277          */
278         public boolean requires_gossip_queries() {
279                 boolean ret = bindings.NodeFeatures_requires_gossip_queries(this.ptr);
280                 Reference.reachabilityFence(this);
281                 return ret;
282         }
283
284         /**
285          * Set this feature as optional.
286          */
287         public void set_variable_length_onion_optional() {
288                 bindings.NodeFeatures_set_variable_length_onion_optional(this.ptr);
289                 Reference.reachabilityFence(this);
290         }
291
292         /**
293          * Set this feature as required.
294          */
295         public void set_variable_length_onion_required() {
296                 bindings.NodeFeatures_set_variable_length_onion_required(this.ptr);
297                 Reference.reachabilityFence(this);
298         }
299
300         /**
301          * Checks if this feature is supported.
302          */
303         public boolean supports_variable_length_onion() {
304                 boolean ret = bindings.NodeFeatures_supports_variable_length_onion(this.ptr);
305                 Reference.reachabilityFence(this);
306                 return ret;
307         }
308
309         /**
310          * Checks if this feature is required.
311          */
312         public boolean requires_variable_length_onion() {
313                 boolean ret = bindings.NodeFeatures_requires_variable_length_onion(this.ptr);
314                 Reference.reachabilityFence(this);
315                 return ret;
316         }
317
318         /**
319          * Set this feature as optional.
320          */
321         public void set_static_remote_key_optional() {
322                 bindings.NodeFeatures_set_static_remote_key_optional(this.ptr);
323                 Reference.reachabilityFence(this);
324         }
325
326         /**
327          * Set this feature as required.
328          */
329         public void set_static_remote_key_required() {
330                 bindings.NodeFeatures_set_static_remote_key_required(this.ptr);
331                 Reference.reachabilityFence(this);
332         }
333
334         /**
335          * Checks if this feature is supported.
336          */
337         public boolean supports_static_remote_key() {
338                 boolean ret = bindings.NodeFeatures_supports_static_remote_key(this.ptr);
339                 Reference.reachabilityFence(this);
340                 return ret;
341         }
342
343         /**
344          * Checks if this feature is required.
345          */
346         public boolean requires_static_remote_key() {
347                 boolean ret = bindings.NodeFeatures_requires_static_remote_key(this.ptr);
348                 Reference.reachabilityFence(this);
349                 return ret;
350         }
351
352         /**
353          * Set this feature as optional.
354          */
355         public void set_payment_secret_optional() {
356                 bindings.NodeFeatures_set_payment_secret_optional(this.ptr);
357                 Reference.reachabilityFence(this);
358         }
359
360         /**
361          * Set this feature as required.
362          */
363         public void set_payment_secret_required() {
364                 bindings.NodeFeatures_set_payment_secret_required(this.ptr);
365                 Reference.reachabilityFence(this);
366         }
367
368         /**
369          * Checks if this feature is supported.
370          */
371         public boolean supports_payment_secret() {
372                 boolean ret = bindings.NodeFeatures_supports_payment_secret(this.ptr);
373                 Reference.reachabilityFence(this);
374                 return ret;
375         }
376
377         /**
378          * Checks if this feature is required.
379          */
380         public boolean requires_payment_secret() {
381                 boolean ret = bindings.NodeFeatures_requires_payment_secret(this.ptr);
382                 Reference.reachabilityFence(this);
383                 return ret;
384         }
385
386         /**
387          * Set this feature as optional.
388          */
389         public void set_basic_mpp_optional() {
390                 bindings.NodeFeatures_set_basic_mpp_optional(this.ptr);
391                 Reference.reachabilityFence(this);
392         }
393
394         /**
395          * Set this feature as required.
396          */
397         public void set_basic_mpp_required() {
398                 bindings.NodeFeatures_set_basic_mpp_required(this.ptr);
399                 Reference.reachabilityFence(this);
400         }
401
402         /**
403          * Checks if this feature is supported.
404          */
405         public boolean supports_basic_mpp() {
406                 boolean ret = bindings.NodeFeatures_supports_basic_mpp(this.ptr);
407                 Reference.reachabilityFence(this);
408                 return ret;
409         }
410
411         /**
412          * Checks if this feature is required.
413          */
414         public boolean requires_basic_mpp() {
415                 boolean ret = bindings.NodeFeatures_requires_basic_mpp(this.ptr);
416                 Reference.reachabilityFence(this);
417                 return ret;
418         }
419
420         /**
421          * Set this feature as optional.
422          */
423         public void set_wumbo_optional() {
424                 bindings.NodeFeatures_set_wumbo_optional(this.ptr);
425                 Reference.reachabilityFence(this);
426         }
427
428         /**
429          * Set this feature as required.
430          */
431         public void set_wumbo_required() {
432                 bindings.NodeFeatures_set_wumbo_required(this.ptr);
433                 Reference.reachabilityFence(this);
434         }
435
436         /**
437          * Checks if this feature is supported.
438          */
439         public boolean supports_wumbo() {
440                 boolean ret = bindings.NodeFeatures_supports_wumbo(this.ptr);
441                 Reference.reachabilityFence(this);
442                 return ret;
443         }
444
445         /**
446          * Checks if this feature is required.
447          */
448         public boolean requires_wumbo() {
449                 boolean ret = bindings.NodeFeatures_requires_wumbo(this.ptr);
450                 Reference.reachabilityFence(this);
451                 return ret;
452         }
453
454         /**
455          * Set this feature as optional.
456          */
457         public void set_anchors_nonzero_fee_htlc_tx_optional() {
458                 bindings.NodeFeatures_set_anchors_nonzero_fee_htlc_tx_optional(this.ptr);
459                 Reference.reachabilityFence(this);
460         }
461
462         /**
463          * Set this feature as required.
464          */
465         public void set_anchors_nonzero_fee_htlc_tx_required() {
466                 bindings.NodeFeatures_set_anchors_nonzero_fee_htlc_tx_required(this.ptr);
467                 Reference.reachabilityFence(this);
468         }
469
470         /**
471          * Checks if this feature is supported.
472          */
473         public boolean supports_anchors_nonzero_fee_htlc_tx() {
474                 boolean ret = bindings.NodeFeatures_supports_anchors_nonzero_fee_htlc_tx(this.ptr);
475                 Reference.reachabilityFence(this);
476                 return ret;
477         }
478
479         /**
480          * Checks if this feature is required.
481          */
482         public boolean requires_anchors_nonzero_fee_htlc_tx() {
483                 boolean ret = bindings.NodeFeatures_requires_anchors_nonzero_fee_htlc_tx(this.ptr);
484                 Reference.reachabilityFence(this);
485                 return ret;
486         }
487
488         /**
489          * Set this feature as optional.
490          */
491         public void set_anchors_zero_fee_htlc_tx_optional() {
492                 bindings.NodeFeatures_set_anchors_zero_fee_htlc_tx_optional(this.ptr);
493                 Reference.reachabilityFence(this);
494         }
495
496         /**
497          * Set this feature as required.
498          */
499         public void set_anchors_zero_fee_htlc_tx_required() {
500                 bindings.NodeFeatures_set_anchors_zero_fee_htlc_tx_required(this.ptr);
501                 Reference.reachabilityFence(this);
502         }
503
504         /**
505          * Checks if this feature is supported.
506          */
507         public boolean supports_anchors_zero_fee_htlc_tx() {
508                 boolean ret = bindings.NodeFeatures_supports_anchors_zero_fee_htlc_tx(this.ptr);
509                 Reference.reachabilityFence(this);
510                 return ret;
511         }
512
513         /**
514          * Checks if this feature is required.
515          */
516         public boolean requires_anchors_zero_fee_htlc_tx() {
517                 boolean ret = bindings.NodeFeatures_requires_anchors_zero_fee_htlc_tx(this.ptr);
518                 Reference.reachabilityFence(this);
519                 return ret;
520         }
521
522         /**
523          * Set this feature as optional.
524          */
525         public void set_shutdown_any_segwit_optional() {
526                 bindings.NodeFeatures_set_shutdown_any_segwit_optional(this.ptr);
527                 Reference.reachabilityFence(this);
528         }
529
530         /**
531          * Set this feature as required.
532          */
533         public void set_shutdown_any_segwit_required() {
534                 bindings.NodeFeatures_set_shutdown_any_segwit_required(this.ptr);
535                 Reference.reachabilityFence(this);
536         }
537
538         /**
539          * Checks if this feature is supported.
540          */
541         public boolean supports_shutdown_anysegwit() {
542                 boolean ret = bindings.NodeFeatures_supports_shutdown_anysegwit(this.ptr);
543                 Reference.reachabilityFence(this);
544                 return ret;
545         }
546
547         /**
548          * Checks if this feature is required.
549          */
550         public boolean requires_shutdown_anysegwit() {
551                 boolean ret = bindings.NodeFeatures_requires_shutdown_anysegwit(this.ptr);
552                 Reference.reachabilityFence(this);
553                 return ret;
554         }
555
556         /**
557          * Set this feature as optional.
558          */
559         public void set_taproot_optional() {
560                 bindings.NodeFeatures_set_taproot_optional(this.ptr);
561                 Reference.reachabilityFence(this);
562         }
563
564         /**
565          * Set this feature as required.
566          */
567         public void set_taproot_required() {
568                 bindings.NodeFeatures_set_taproot_required(this.ptr);
569                 Reference.reachabilityFence(this);
570         }
571
572         /**
573          * Checks if this feature is supported.
574          */
575         public boolean supports_taproot() {
576                 boolean ret = bindings.NodeFeatures_supports_taproot(this.ptr);
577                 Reference.reachabilityFence(this);
578                 return ret;
579         }
580
581         /**
582          * Checks if this feature is required.
583          */
584         public boolean requires_taproot() {
585                 boolean ret = bindings.NodeFeatures_requires_taproot(this.ptr);
586                 Reference.reachabilityFence(this);
587                 return ret;
588         }
589
590         /**
591          * Set this feature as optional.
592          */
593         public void set_onion_messages_optional() {
594                 bindings.NodeFeatures_set_onion_messages_optional(this.ptr);
595                 Reference.reachabilityFence(this);
596         }
597
598         /**
599          * Set this feature as required.
600          */
601         public void set_onion_messages_required() {
602                 bindings.NodeFeatures_set_onion_messages_required(this.ptr);
603                 Reference.reachabilityFence(this);
604         }
605
606         /**
607          * Checks if this feature is supported.
608          */
609         public boolean supports_onion_messages() {
610                 boolean ret = bindings.NodeFeatures_supports_onion_messages(this.ptr);
611                 Reference.reachabilityFence(this);
612                 return ret;
613         }
614
615         /**
616          * Checks if this feature is required.
617          */
618         public boolean requires_onion_messages() {
619                 boolean ret = bindings.NodeFeatures_requires_onion_messages(this.ptr);
620                 Reference.reachabilityFence(this);
621                 return ret;
622         }
623
624         /**
625          * Set this feature as optional.
626          */
627         public void set_channel_type_optional() {
628                 bindings.NodeFeatures_set_channel_type_optional(this.ptr);
629                 Reference.reachabilityFence(this);
630         }
631
632         /**
633          * Set this feature as required.
634          */
635         public void set_channel_type_required() {
636                 bindings.NodeFeatures_set_channel_type_required(this.ptr);
637                 Reference.reachabilityFence(this);
638         }
639
640         /**
641          * Checks if this feature is supported.
642          */
643         public boolean supports_channel_type() {
644                 boolean ret = bindings.NodeFeatures_supports_channel_type(this.ptr);
645                 Reference.reachabilityFence(this);
646                 return ret;
647         }
648
649         /**
650          * Checks if this feature is required.
651          */
652         public boolean requires_channel_type() {
653                 boolean ret = bindings.NodeFeatures_requires_channel_type(this.ptr);
654                 Reference.reachabilityFence(this);
655                 return ret;
656         }
657
658         /**
659          * Set this feature as optional.
660          */
661         public void set_scid_privacy_optional() {
662                 bindings.NodeFeatures_set_scid_privacy_optional(this.ptr);
663                 Reference.reachabilityFence(this);
664         }
665
666         /**
667          * Set this feature as required.
668          */
669         public void set_scid_privacy_required() {
670                 bindings.NodeFeatures_set_scid_privacy_required(this.ptr);
671                 Reference.reachabilityFence(this);
672         }
673
674         /**
675          * Checks if this feature is supported.
676          */
677         public boolean supports_scid_privacy() {
678                 boolean ret = bindings.NodeFeatures_supports_scid_privacy(this.ptr);
679                 Reference.reachabilityFence(this);
680                 return ret;
681         }
682
683         /**
684          * Checks if this feature is required.
685          */
686         public boolean requires_scid_privacy() {
687                 boolean ret = bindings.NodeFeatures_requires_scid_privacy(this.ptr);
688                 Reference.reachabilityFence(this);
689                 return ret;
690         }
691
692         /**
693          * Set this feature as optional.
694          */
695         public void set_zero_conf_optional() {
696                 bindings.NodeFeatures_set_zero_conf_optional(this.ptr);
697                 Reference.reachabilityFence(this);
698         }
699
700         /**
701          * Set this feature as required.
702          */
703         public void set_zero_conf_required() {
704                 bindings.NodeFeatures_set_zero_conf_required(this.ptr);
705                 Reference.reachabilityFence(this);
706         }
707
708         /**
709          * Checks if this feature is supported.
710          */
711         public boolean supports_zero_conf() {
712                 boolean ret = bindings.NodeFeatures_supports_zero_conf(this.ptr);
713                 Reference.reachabilityFence(this);
714                 return ret;
715         }
716
717         /**
718          * Checks if this feature is required.
719          */
720         public boolean requires_zero_conf() {
721                 boolean ret = bindings.NodeFeatures_requires_zero_conf(this.ptr);
722                 Reference.reachabilityFence(this);
723                 return ret;
724         }
725
726         /**
727          * Set this feature as optional.
728          */
729         public void set_keysend_optional() {
730                 bindings.NodeFeatures_set_keysend_optional(this.ptr);
731                 Reference.reachabilityFence(this);
732         }
733
734         /**
735          * Set this feature as required.
736          */
737         public void set_keysend_required() {
738                 bindings.NodeFeatures_set_keysend_required(this.ptr);
739                 Reference.reachabilityFence(this);
740         }
741
742         /**
743          * Checks if this feature is supported.
744          */
745         public boolean supports_keysend() {
746                 boolean ret = bindings.NodeFeatures_supports_keysend(this.ptr);
747                 Reference.reachabilityFence(this);
748                 return ret;
749         }
750
751         /**
752          * Checks if this feature is required.
753          */
754         public boolean requires_keysend() {
755                 boolean ret = bindings.NodeFeatures_requires_keysend(this.ptr);
756                 Reference.reachabilityFence(this);
757                 return ret;
758         }
759
760 }