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 an `init` message.
14 @SuppressWarnings("unchecked") // We correctly assign various generic arrays
15 public class InitFeatures extends CommonBase {
16 InitFeatures(Object _dummy, long ptr) { super(ptr); }
17 @Override @SuppressWarnings("deprecation")
18 protected void finalize() throws Throwable {
20 if (ptr != 0) { bindings.InitFeatures_free(ptr); }
24 * Checks if two InitFeaturess 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(InitFeatures b) {
29 boolean ret = bindings.InitFeatures_eq(this.ptr, b == null ? 0 : b.ptr & ~1);
30 Reference.reachabilityFence(this);
31 Reference.reachabilityFence(b);
36 @Override public boolean equals(Object o) {
37 if (!(o instanceof InitFeatures)) return false;
38 return this.eq((InitFeatures)o);
41 long ret = bindings.InitFeatures_clone_ptr(this.ptr);
42 Reference.reachabilityFence(this);
47 * Creates a copy of the InitFeatures
49 public InitFeatures clone() {
50 long ret = bindings.InitFeatures_clone(this.ptr);
51 Reference.reachabilityFence(this);
52 if (ret >= 0 && ret <= 4096) { return null; }
53 org.ldk.structs.InitFeatures ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.InitFeatures(null, ret); }
54 ret_hu_conv.ptrs_to.add(this);
59 * Create a blank Features with no features set
61 public static InitFeatures empty() {
62 long ret = bindings.InitFeatures_empty();
63 if (ret >= 0 && ret <= 4096) { return null; }
64 org.ldk.structs.InitFeatures ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.InitFeatures(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 InitFeatures known() {
73 long ret = bindings.InitFeatures_known();
74 if (ret >= 0 && ret <= 4096) { return null; }
75 org.ldk.structs.InitFeatures ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.InitFeatures(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.InitFeatures_requires_unknown_bits(this.ptr);
86 Reference.reachabilityFence(this);
91 * Serialize the InitFeatures object into a byte array which can be read by InitFeatures_read
93 public byte[] write() {
94 byte[] ret = bindings.InitFeatures_write(this.ptr);
95 Reference.reachabilityFence(this);
100 * Read a InitFeatures from a byte array, created by InitFeatures_write
102 public static Result_InitFeaturesDecodeErrorZ read(byte[] ser) {
103 long ret = bindings.InitFeatures_read(ser);
104 Reference.reachabilityFence(ser);
105 if (ret >= 0 && ret <= 4096) { return null; }
106 Result_InitFeaturesDecodeErrorZ ret_hu_conv = Result_InitFeaturesDecodeErrorZ.constr_from_ptr(ret);
111 * Set this feature as optional.
113 public void set_data_loss_protect_optional() {
114 bindings.InitFeatures_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.InitFeatures_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.InitFeatures_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.InitFeatures_requires_data_loss_protect(this.ptr);
140 Reference.reachabilityFence(this);
145 * Set this feature as optional.
147 public void set_initial_routing_sync_optional() {
148 bindings.InitFeatures_set_initial_routing_sync_optional(this.ptr);
149 Reference.reachabilityFence(this);
153 * Set this feature as required.
155 public void set_initial_routing_sync_required() {
156 bindings.InitFeatures_set_initial_routing_sync_required(this.ptr);
157 Reference.reachabilityFence(this);
161 * Checks if this feature is supported.
163 public boolean initial_routing_sync() {
164 boolean ret = bindings.InitFeatures_initial_routing_sync(this.ptr);
165 Reference.reachabilityFence(this);
170 * Set this feature as optional.
172 public void set_upfront_shutdown_script_optional() {
173 bindings.InitFeatures_set_upfront_shutdown_script_optional(this.ptr);
174 Reference.reachabilityFence(this);
178 * Set this feature as required.
180 public void set_upfront_shutdown_script_required() {
181 bindings.InitFeatures_set_upfront_shutdown_script_required(this.ptr);
182 Reference.reachabilityFence(this);
186 * Checks if this feature is supported.
188 public boolean supports_upfront_shutdown_script() {
189 boolean ret = bindings.InitFeatures_supports_upfront_shutdown_script(this.ptr);
190 Reference.reachabilityFence(this);
195 * Checks if this feature is required.
197 public boolean requires_upfront_shutdown_script() {
198 boolean ret = bindings.InitFeatures_requires_upfront_shutdown_script(this.ptr);
199 Reference.reachabilityFence(this);
204 * Set this feature as optional.
206 public void set_gossip_queries_optional() {
207 bindings.InitFeatures_set_gossip_queries_optional(this.ptr);
208 Reference.reachabilityFence(this);
212 * Set this feature as required.
214 public void set_gossip_queries_required() {
215 bindings.InitFeatures_set_gossip_queries_required(this.ptr);
216 Reference.reachabilityFence(this);
220 * Checks if this feature is supported.
222 public boolean supports_gossip_queries() {
223 boolean ret = bindings.InitFeatures_supports_gossip_queries(this.ptr);
224 Reference.reachabilityFence(this);
229 * Checks if this feature is required.
231 public boolean requires_gossip_queries() {
232 boolean ret = bindings.InitFeatures_requires_gossip_queries(this.ptr);
233 Reference.reachabilityFence(this);
238 * Set this feature as optional.
240 public void set_variable_length_onion_optional() {
241 bindings.InitFeatures_set_variable_length_onion_optional(this.ptr);
242 Reference.reachabilityFence(this);
246 * Set this feature as required.
248 public void set_variable_length_onion_required() {
249 bindings.InitFeatures_set_variable_length_onion_required(this.ptr);
250 Reference.reachabilityFence(this);
254 * Checks if this feature is supported.
256 public boolean supports_variable_length_onion() {
257 boolean ret = bindings.InitFeatures_supports_variable_length_onion(this.ptr);
258 Reference.reachabilityFence(this);
263 * Checks if this feature is required.
265 public boolean requires_variable_length_onion() {
266 boolean ret = bindings.InitFeatures_requires_variable_length_onion(this.ptr);
267 Reference.reachabilityFence(this);
272 * Set this feature as optional.
274 public void set_static_remote_key_optional() {
275 bindings.InitFeatures_set_static_remote_key_optional(this.ptr);
276 Reference.reachabilityFence(this);
280 * Set this feature as required.
282 public void set_static_remote_key_required() {
283 bindings.InitFeatures_set_static_remote_key_required(this.ptr);
284 Reference.reachabilityFence(this);
288 * Checks if this feature is supported.
290 public boolean supports_static_remote_key() {
291 boolean ret = bindings.InitFeatures_supports_static_remote_key(this.ptr);
292 Reference.reachabilityFence(this);
297 * Checks if this feature is required.
299 public boolean requires_static_remote_key() {
300 boolean ret = bindings.InitFeatures_requires_static_remote_key(this.ptr);
301 Reference.reachabilityFence(this);
306 * Set this feature as optional.
308 public void set_payment_secret_optional() {
309 bindings.InitFeatures_set_payment_secret_optional(this.ptr);
310 Reference.reachabilityFence(this);
314 * Set this feature as required.
316 public void set_payment_secret_required() {
317 bindings.InitFeatures_set_payment_secret_required(this.ptr);
318 Reference.reachabilityFence(this);
322 * Checks if this feature is supported.
324 public boolean supports_payment_secret() {
325 boolean ret = bindings.InitFeatures_supports_payment_secret(this.ptr);
326 Reference.reachabilityFence(this);
331 * Checks if this feature is required.
333 public boolean requires_payment_secret() {
334 boolean ret = bindings.InitFeatures_requires_payment_secret(this.ptr);
335 Reference.reachabilityFence(this);
340 * Set this feature as optional.
342 public void set_basic_mpp_optional() {
343 bindings.InitFeatures_set_basic_mpp_optional(this.ptr);
344 Reference.reachabilityFence(this);
348 * Set this feature as required.
350 public void set_basic_mpp_required() {
351 bindings.InitFeatures_set_basic_mpp_required(this.ptr);
352 Reference.reachabilityFence(this);
356 * Checks if this feature is supported.
358 public boolean supports_basic_mpp() {
359 boolean ret = bindings.InitFeatures_supports_basic_mpp(this.ptr);
360 Reference.reachabilityFence(this);
365 * Checks if this feature is required.
367 public boolean requires_basic_mpp() {
368 boolean ret = bindings.InitFeatures_requires_basic_mpp(this.ptr);
369 Reference.reachabilityFence(this);
374 * Set this feature as optional.
376 public void set_wumbo_optional() {
377 bindings.InitFeatures_set_wumbo_optional(this.ptr);
378 Reference.reachabilityFence(this);
382 * Set this feature as required.
384 public void set_wumbo_required() {
385 bindings.InitFeatures_set_wumbo_required(this.ptr);
386 Reference.reachabilityFence(this);
390 * Checks if this feature is supported.
392 public boolean supports_wumbo() {
393 boolean ret = bindings.InitFeatures_supports_wumbo(this.ptr);
394 Reference.reachabilityFence(this);
399 * Checks if this feature is required.
401 public boolean requires_wumbo() {
402 boolean ret = bindings.InitFeatures_requires_wumbo(this.ptr);
403 Reference.reachabilityFence(this);
408 * Set this feature as optional.
410 public void set_shutdown_any_segwit_optional() {
411 bindings.InitFeatures_set_shutdown_any_segwit_optional(this.ptr);
412 Reference.reachabilityFence(this);
416 * Set this feature as required.
418 public void set_shutdown_any_segwit_required() {
419 bindings.InitFeatures_set_shutdown_any_segwit_required(this.ptr);
420 Reference.reachabilityFence(this);
424 * Checks if this feature is supported.
426 public boolean supports_shutdown_anysegwit() {
427 boolean ret = bindings.InitFeatures_supports_shutdown_anysegwit(this.ptr);
428 Reference.reachabilityFence(this);
433 * Checks if this feature is required.
435 public boolean requires_shutdown_anysegwit() {
436 boolean ret = bindings.InitFeatures_requires_shutdown_anysegwit(this.ptr);
437 Reference.reachabilityFence(this);
442 * Set this feature as optional.
444 public void set_channel_type_optional() {
445 bindings.InitFeatures_set_channel_type_optional(this.ptr);
446 Reference.reachabilityFence(this);
450 * Set this feature as required.
452 public void set_channel_type_required() {
453 bindings.InitFeatures_set_channel_type_required(this.ptr);
454 Reference.reachabilityFence(this);
458 * Checks if this feature is supported.
460 public boolean supports_channel_type() {
461 boolean ret = bindings.InitFeatures_supports_channel_type(this.ptr);
462 Reference.reachabilityFence(this);
467 * Checks if this feature is required.
469 public boolean requires_channel_type() {
470 boolean ret = bindings.InitFeatures_requires_channel_type(this.ptr);
471 Reference.reachabilityFence(this);
476 * Set this feature as optional.
478 public void set_scid_privacy_optional() {
479 bindings.InitFeatures_set_scid_privacy_optional(this.ptr);
480 Reference.reachabilityFence(this);
484 * Set this feature as required.
486 public void set_scid_privacy_required() {
487 bindings.InitFeatures_set_scid_privacy_required(this.ptr);
488 Reference.reachabilityFence(this);
492 * Checks if this feature is supported.
494 public boolean supports_scid_privacy() {
495 boolean ret = bindings.InitFeatures_supports_scid_privacy(this.ptr);
496 Reference.reachabilityFence(this);
501 * Checks if this feature is required.
503 public boolean requires_scid_privacy() {
504 boolean ret = bindings.InitFeatures_requires_scid_privacy(this.ptr);
505 Reference.reachabilityFence(this);
510 * Set this feature as optional.
512 public void set_zero_conf_optional() {
513 bindings.InitFeatures_set_zero_conf_optional(this.ptr);
514 Reference.reachabilityFence(this);
518 * Set this feature as required.
520 public void set_zero_conf_required() {
521 bindings.InitFeatures_set_zero_conf_required(this.ptr);
522 Reference.reachabilityFence(this);
526 * Checks if this feature is supported.
528 public boolean supports_zero_conf() {
529 boolean ret = bindings.InitFeatures_supports_zero_conf(this.ptr);
530 Reference.reachabilityFence(this);
535 * Checks if this feature is required.
537 public boolean requires_zero_conf() {
538 boolean ret = bindings.InitFeatures_requires_zero_conf(this.ptr);
539 Reference.reachabilityFence(this);