6 namespace org { namespace ldk { namespace structs {
10 * Features used within a `node_announcement` message.
12 public class NodeFeatures : CommonBase {
13 internal NodeFeatures(object _dummy, long ptr) : base(ptr) { }
15 if (ptr != 0) { bindings.NodeFeatures_free(ptr); }
19 * Checks if two NodeFeaturess contain equal inner contents.
20 * This ignores pointers and is_owned flags and looks at the values in fields.
21 * Two objects with NULL inner values will be considered "equal" here.
23 public bool eq(org.ldk.structs.NodeFeatures b) {
24 bool ret = bindings.NodeFeatures_eq(this.ptr, b == null ? 0 : b.ptr);
27 if (this != null) { this.ptrs_to.AddLast(b); };
31 public override bool Equals(object o) {
32 if (!(o is NodeFeatures)) return false;
33 return this.eq((NodeFeatures)o);
35 internal long clone_ptr() {
36 long ret = bindings.NodeFeatures_clone_ptr(this.ptr);
42 * Creates a copy of the NodeFeatures
44 public NodeFeatures clone() {
45 long ret = bindings.NodeFeatures_clone(this.ptr);
47 if (ret >= 0 && ret <= 4096) { return null; }
48 org.ldk.structs.NodeFeatures ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.NodeFeatures(null, ret); }
49 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); };
54 * Create a blank Features with no features set
56 public static NodeFeatures empty() {
57 long ret = bindings.NodeFeatures_empty();
58 if (ret >= 0 && ret <= 4096) { return null; }
59 org.ldk.structs.NodeFeatures ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.NodeFeatures(null, ret); }
60 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); };
65 * Returns true if this `Features` object contains required features unknown by `other`.
67 public bool requires_unknown_bits_from(org.ldk.structs.NodeFeatures other) {
68 bool ret = bindings.NodeFeatures_requires_unknown_bits_from(this.ptr, other == null ? 0 : other.ptr);
71 if (this != null) { this.ptrs_to.AddLast(other); };
76 * Returns true if this `Features` object contains unknown feature flags which are set as
79 public bool requires_unknown_bits() {
80 bool ret = bindings.NodeFeatures_requires_unknown_bits(this.ptr);
86 * Sets a required custom feature bit. Errors if `bit` is outside the custom range as defined
87 * by [bLIP 2] or if it is a known `T` feature.
89 * Note: Required bits are even. If an odd bit is given, then the corresponding even bit will
90 * be set instead (i.e., `bit - 1`).
92 * [bLIP 2]: https://github.com/lightning/blips/blob/master/blip-0002.md#feature-bits
94 public Result_NoneNoneZ set_required_custom_bit(long bit) {
95 long ret = bindings.NodeFeatures_set_required_custom_bit(this.ptr, bit);
98 if (ret >= 0 && ret <= 4096) { return null; }
99 Result_NoneNoneZ ret_hu_conv = Result_NoneNoneZ.constr_from_ptr(ret);
104 * Sets an optional custom feature bit. Errors if `bit` is outside the custom range as defined
105 * by [bLIP 2] or if it is a known `T` feature.
107 * Note: Optional bits are odd. If an even bit is given, then the corresponding odd bit will be
108 * set instead (i.e., `bit + 1`).
110 * [bLIP 2]: https://github.com/lightning/blips/blob/master/blip-0002.md#feature-bits
112 public Result_NoneNoneZ set_optional_custom_bit(long bit) {
113 long ret = bindings.NodeFeatures_set_optional_custom_bit(this.ptr, bit);
116 if (ret >= 0 && ret <= 4096) { return null; }
117 Result_NoneNoneZ ret_hu_conv = Result_NoneNoneZ.constr_from_ptr(ret);
122 * Serialize the NodeFeatures object into a byte array which can be read by NodeFeatures_read
124 public byte[] write() {
125 byte[] ret = bindings.NodeFeatures_write(this.ptr);
131 * Read a NodeFeatures from a byte array, created by NodeFeatures_write
133 public static Result_NodeFeaturesDecodeErrorZ read(byte[] ser) {
134 long ret = bindings.NodeFeatures_read(ser);
136 if (ret >= 0 && ret <= 4096) { return null; }
137 Result_NodeFeaturesDecodeErrorZ ret_hu_conv = Result_NodeFeaturesDecodeErrorZ.constr_from_ptr(ret);
142 * Set this feature as optional.
144 public void set_data_loss_protect_optional() {
145 bindings.NodeFeatures_set_data_loss_protect_optional(this.ptr);
150 * Set this feature as required.
152 public void set_data_loss_protect_required() {
153 bindings.NodeFeatures_set_data_loss_protect_required(this.ptr);
158 * Checks if this feature is supported.
160 public bool supports_data_loss_protect() {
161 bool ret = bindings.NodeFeatures_supports_data_loss_protect(this.ptr);
167 * Checks if this feature is required.
169 public bool requires_data_loss_protect() {
170 bool ret = bindings.NodeFeatures_requires_data_loss_protect(this.ptr);
176 * Set this feature as optional.
178 public void set_upfront_shutdown_script_optional() {
179 bindings.NodeFeatures_set_upfront_shutdown_script_optional(this.ptr);
184 * Set this feature as required.
186 public void set_upfront_shutdown_script_required() {
187 bindings.NodeFeatures_set_upfront_shutdown_script_required(this.ptr);
192 * Checks if this feature is supported.
194 public bool supports_upfront_shutdown_script() {
195 bool ret = bindings.NodeFeatures_supports_upfront_shutdown_script(this.ptr);
201 * Checks if this feature is required.
203 public bool requires_upfront_shutdown_script() {
204 bool ret = bindings.NodeFeatures_requires_upfront_shutdown_script(this.ptr);
210 * Set this feature as optional.
212 public void set_gossip_queries_optional() {
213 bindings.NodeFeatures_set_gossip_queries_optional(this.ptr);
218 * Set this feature as required.
220 public void set_gossip_queries_required() {
221 bindings.NodeFeatures_set_gossip_queries_required(this.ptr);
226 * Checks if this feature is supported.
228 public bool supports_gossip_queries() {
229 bool ret = bindings.NodeFeatures_supports_gossip_queries(this.ptr);
235 * Checks if this feature is required.
237 public bool requires_gossip_queries() {
238 bool ret = bindings.NodeFeatures_requires_gossip_queries(this.ptr);
244 * Set this feature as optional.
246 public void set_variable_length_onion_optional() {
247 bindings.NodeFeatures_set_variable_length_onion_optional(this.ptr);
252 * Set this feature as required.
254 public void set_variable_length_onion_required() {
255 bindings.NodeFeatures_set_variable_length_onion_required(this.ptr);
260 * Checks if this feature is supported.
262 public bool supports_variable_length_onion() {
263 bool ret = bindings.NodeFeatures_supports_variable_length_onion(this.ptr);
269 * Checks if this feature is required.
271 public bool requires_variable_length_onion() {
272 bool ret = bindings.NodeFeatures_requires_variable_length_onion(this.ptr);
278 * Set this feature as optional.
280 public void set_static_remote_key_optional() {
281 bindings.NodeFeatures_set_static_remote_key_optional(this.ptr);
286 * Set this feature as required.
288 public void set_static_remote_key_required() {
289 bindings.NodeFeatures_set_static_remote_key_required(this.ptr);
294 * Checks if this feature is supported.
296 public bool supports_static_remote_key() {
297 bool ret = bindings.NodeFeatures_supports_static_remote_key(this.ptr);
303 * Checks if this feature is required.
305 public bool requires_static_remote_key() {
306 bool ret = bindings.NodeFeatures_requires_static_remote_key(this.ptr);
312 * Set this feature as optional.
314 public void set_payment_secret_optional() {
315 bindings.NodeFeatures_set_payment_secret_optional(this.ptr);
320 * Set this feature as required.
322 public void set_payment_secret_required() {
323 bindings.NodeFeatures_set_payment_secret_required(this.ptr);
328 * Checks if this feature is supported.
330 public bool supports_payment_secret() {
331 bool ret = bindings.NodeFeatures_supports_payment_secret(this.ptr);
337 * Checks if this feature is required.
339 public bool requires_payment_secret() {
340 bool ret = bindings.NodeFeatures_requires_payment_secret(this.ptr);
346 * Set this feature as optional.
348 public void set_basic_mpp_optional() {
349 bindings.NodeFeatures_set_basic_mpp_optional(this.ptr);
354 * Set this feature as required.
356 public void set_basic_mpp_required() {
357 bindings.NodeFeatures_set_basic_mpp_required(this.ptr);
362 * Checks if this feature is supported.
364 public bool supports_basic_mpp() {
365 bool ret = bindings.NodeFeatures_supports_basic_mpp(this.ptr);
371 * Checks if this feature is required.
373 public bool requires_basic_mpp() {
374 bool ret = bindings.NodeFeatures_requires_basic_mpp(this.ptr);
380 * Set this feature as optional.
382 public void set_wumbo_optional() {
383 bindings.NodeFeatures_set_wumbo_optional(this.ptr);
388 * Set this feature as required.
390 public void set_wumbo_required() {
391 bindings.NodeFeatures_set_wumbo_required(this.ptr);
396 * Checks if this feature is supported.
398 public bool supports_wumbo() {
399 bool ret = bindings.NodeFeatures_supports_wumbo(this.ptr);
405 * Checks if this feature is required.
407 public bool requires_wumbo() {
408 bool ret = bindings.NodeFeatures_requires_wumbo(this.ptr);
414 * Set this feature as optional.
416 public void set_anchors_nonzero_fee_htlc_tx_optional() {
417 bindings.NodeFeatures_set_anchors_nonzero_fee_htlc_tx_optional(this.ptr);
422 * Set this feature as required.
424 public void set_anchors_nonzero_fee_htlc_tx_required() {
425 bindings.NodeFeatures_set_anchors_nonzero_fee_htlc_tx_required(this.ptr);
430 * Checks if this feature is supported.
432 public bool supports_anchors_nonzero_fee_htlc_tx() {
433 bool ret = bindings.NodeFeatures_supports_anchors_nonzero_fee_htlc_tx(this.ptr);
439 * Checks if this feature is required.
441 public bool requires_anchors_nonzero_fee_htlc_tx() {
442 bool ret = bindings.NodeFeatures_requires_anchors_nonzero_fee_htlc_tx(this.ptr);
448 * Set this feature as optional.
450 public void set_anchors_zero_fee_htlc_tx_optional() {
451 bindings.NodeFeatures_set_anchors_zero_fee_htlc_tx_optional(this.ptr);
456 * Set this feature as required.
458 public void set_anchors_zero_fee_htlc_tx_required() {
459 bindings.NodeFeatures_set_anchors_zero_fee_htlc_tx_required(this.ptr);
464 * Checks if this feature is supported.
466 public bool supports_anchors_zero_fee_htlc_tx() {
467 bool ret = bindings.NodeFeatures_supports_anchors_zero_fee_htlc_tx(this.ptr);
473 * Checks if this feature is required.
475 public bool requires_anchors_zero_fee_htlc_tx() {
476 bool ret = bindings.NodeFeatures_requires_anchors_zero_fee_htlc_tx(this.ptr);
482 * Set this feature as optional.
484 public void set_shutdown_any_segwit_optional() {
485 bindings.NodeFeatures_set_shutdown_any_segwit_optional(this.ptr);
490 * Set this feature as required.
492 public void set_shutdown_any_segwit_required() {
493 bindings.NodeFeatures_set_shutdown_any_segwit_required(this.ptr);
498 * Checks if this feature is supported.
500 public bool supports_shutdown_anysegwit() {
501 bool ret = bindings.NodeFeatures_supports_shutdown_anysegwit(this.ptr);
507 * Checks if this feature is required.
509 public bool requires_shutdown_anysegwit() {
510 bool ret = bindings.NodeFeatures_requires_shutdown_anysegwit(this.ptr);
516 * Set this feature as optional.
518 public void set_onion_messages_optional() {
519 bindings.NodeFeatures_set_onion_messages_optional(this.ptr);
524 * Set this feature as required.
526 public void set_onion_messages_required() {
527 bindings.NodeFeatures_set_onion_messages_required(this.ptr);
532 * Checks if this feature is supported.
534 public bool supports_onion_messages() {
535 bool ret = bindings.NodeFeatures_supports_onion_messages(this.ptr);
541 * Checks if this feature is required.
543 public bool requires_onion_messages() {
544 bool ret = bindings.NodeFeatures_requires_onion_messages(this.ptr);
550 * Set this feature as optional.
552 public void set_channel_type_optional() {
553 bindings.NodeFeatures_set_channel_type_optional(this.ptr);
558 * Set this feature as required.
560 public void set_channel_type_required() {
561 bindings.NodeFeatures_set_channel_type_required(this.ptr);
566 * Checks if this feature is supported.
568 public bool supports_channel_type() {
569 bool ret = bindings.NodeFeatures_supports_channel_type(this.ptr);
575 * Checks if this feature is required.
577 public bool requires_channel_type() {
578 bool ret = bindings.NodeFeatures_requires_channel_type(this.ptr);
584 * Set this feature as optional.
586 public void set_scid_privacy_optional() {
587 bindings.NodeFeatures_set_scid_privacy_optional(this.ptr);
592 * Set this feature as required.
594 public void set_scid_privacy_required() {
595 bindings.NodeFeatures_set_scid_privacy_required(this.ptr);
600 * Checks if this feature is supported.
602 public bool supports_scid_privacy() {
603 bool ret = bindings.NodeFeatures_supports_scid_privacy(this.ptr);
609 * Checks if this feature is required.
611 public bool requires_scid_privacy() {
612 bool ret = bindings.NodeFeatures_requires_scid_privacy(this.ptr);
618 * Set this feature as optional.
620 public void set_zero_conf_optional() {
621 bindings.NodeFeatures_set_zero_conf_optional(this.ptr);
626 * Set this feature as required.
628 public void set_zero_conf_required() {
629 bindings.NodeFeatures_set_zero_conf_required(this.ptr);
634 * Checks if this feature is supported.
636 public bool supports_zero_conf() {
637 bool ret = bindings.NodeFeatures_supports_zero_conf(this.ptr);
643 * Checks if this feature is required.
645 public bool requires_zero_conf() {
646 bool ret = bindings.NodeFeatures_requires_zero_conf(this.ptr);
652 * Set this feature as optional.
654 public void set_keysend_optional() {
655 bindings.NodeFeatures_set_keysend_optional(this.ptr);
660 * Set this feature as required.
662 public void set_keysend_required() {
663 bindings.NodeFeatures_set_keysend_required(this.ptr);
668 * Checks if this feature is supported.
670 public bool supports_keysend() {
671 bool ret = bindings.NodeFeatures_supports_keysend(this.ptr);
677 * Checks if this feature is required.
679 public bool requires_keysend() {
680 bool ret = bindings.NodeFeatures_requires_keysend(this.ptr);