[Java] Update auto-generated Java bindings to LDK 0.0.110
[ldk-java] / src / main / java / org / ldk / impl / bindings.java
index e83231c60a2a653811f4cbbbbfbe37e3b946beb2..db55dbe371f433a10484fadcac2b73bda339ff8f 100644 (file)
@@ -310,6 +310,42 @@ public class bindings {
        public static native long CResult_COption_ClosureReasonZDecodeErrorZ_get_ok(long owner);
        // struct LDKDecodeError CResult_COption_ClosureReasonZDecodeErrorZ_get_err(LDKCResult_COption_ClosureReasonZDecodeErrorZ *NONNULL_PTR owner);
        public static native long CResult_COption_ClosureReasonZDecodeErrorZ_get_err(long owner);
+       public static class LDKHTLCDestination {
+               private LDKHTLCDestination() {}
+               public final static class NextHopChannel extends LDKHTLCDestination {
+                       public byte[] node_id;
+                       public byte[] channel_id;
+                       NextHopChannel(byte[] node_id, byte[] channel_id) { this.node_id = node_id; this.channel_id = channel_id; }
+               }
+               public final static class UnknownNextHop extends LDKHTLCDestination {
+                       public long requested_forward_scid;
+                       UnknownNextHop(long requested_forward_scid) { this.requested_forward_scid = requested_forward_scid; }
+               }
+               public final static class FailedPayment extends LDKHTLCDestination {
+                       public byte[] payment_hash;
+                       FailedPayment(byte[] payment_hash) { this.payment_hash = payment_hash; }
+               }
+               static native void init();
+       }
+       static { LDKHTLCDestination.init(); }
+       public static native LDKHTLCDestination LDKHTLCDestination_ref_from_ptr(long ptr);
+       public static class LDKCOption_HTLCDestinationZ {
+               private LDKCOption_HTLCDestinationZ() {}
+               public final static class Some extends LDKCOption_HTLCDestinationZ {
+                       public long some;
+                       Some(long some) { this.some = some; }
+               }
+               public final static class None extends LDKCOption_HTLCDestinationZ {
+                       None() { }
+               }
+               static native void init();
+       }
+       static { LDKCOption_HTLCDestinationZ.init(); }
+       public static native LDKCOption_HTLCDestinationZ LDKCOption_HTLCDestinationZ_ref_from_ptr(long ptr);
+       // struct LDKCOption_HTLCDestinationZ CResult_COption_HTLCDestinationZDecodeErrorZ_get_ok(LDKCResult_COption_HTLCDestinationZDecodeErrorZ *NONNULL_PTR owner);
+       public static native long CResult_COption_HTLCDestinationZDecodeErrorZ_get_ok(long owner);
+       // struct LDKDecodeError CResult_COption_HTLCDestinationZDecodeErrorZ_get_err(LDKCResult_COption_HTLCDestinationZDecodeErrorZ *NONNULL_PTR owner);
+       public static native long CResult_COption_HTLCDestinationZDecodeErrorZ_get_err(long owner);
        public static class LDKNetworkUpdate {
                private LDKNetworkUpdate() {}
                public final static class ChannelUpdateMessage extends LDKNetworkUpdate {
@@ -413,6 +449,19 @@ public class bindings {
                        public long retry;
                        PaymentPathFailed(byte[] payment_id, byte[] payment_hash, boolean rejected_by_dest, long network_update, boolean all_paths_failed, long[] path, long short_channel_id, long retry) { this.payment_id = payment_id; this.payment_hash = payment_hash; this.rejected_by_dest = rejected_by_dest; this.network_update = network_update; this.all_paths_failed = all_paths_failed; this.path = path; this.short_channel_id = short_channel_id; this.retry = retry; }
                }
+               public final static class ProbeSuccessful extends LDKEvent {
+                       public byte[] payment_id;
+                       public byte[] payment_hash;
+                       public long[] path;
+                       ProbeSuccessful(byte[] payment_id, byte[] payment_hash, long[] path) { this.payment_id = payment_id; this.payment_hash = payment_hash; this.path = path; }
+               }
+               public final static class ProbeFailed extends LDKEvent {
+                       public byte[] payment_id;
+                       public byte[] payment_hash;
+                       public long[] path;
+                       public long short_channel_id;
+                       ProbeFailed(byte[] payment_id, byte[] payment_hash, long[] path, long short_channel_id) { this.payment_id = payment_id; this.payment_hash = payment_hash; this.path = path; this.short_channel_id = short_channel_id; }
+               }
                public final static class PendingHTLCsForwardable extends LDKEvent {
                        public long time_forwardable;
                        PendingHTLCsForwardable(long time_forwardable) { this.time_forwardable = time_forwardable; }
@@ -447,6 +496,11 @@ public class bindings {
                        public long channel_type;
                        OpenChannelRequest(byte[] temporary_channel_id, byte[] counterparty_node_id, long funding_satoshis, long push_msat, long channel_type) { this.temporary_channel_id = temporary_channel_id; this.counterparty_node_id = counterparty_node_id; this.funding_satoshis = funding_satoshis; this.push_msat = push_msat; this.channel_type = channel_type; }
                }
+               public final static class HTLCHandlingFailed extends LDKEvent {
+                       public byte[] prev_channel_id;
+                       public long failed_next_destination;
+                       HTLCHandlingFailed(byte[] prev_channel_id, long failed_next_destination) { this.prev_channel_id = prev_channel_id; this.failed_next_destination = failed_next_destination; }
+               }
                static native void init();
        }
        static { LDKEvent.init(); }
@@ -636,10 +690,12 @@ public class bindings {
        }
        static { LDKMonitorEvent.init(); }
        public static native LDKMonitorEvent LDKMonitorEvent_ref_from_ptr(long ptr);
-       // struct LDKOutPoint C2Tuple_OutPointCVec_MonitorEventZZ_get_a(LDKC2Tuple_OutPointCVec_MonitorEventZZ *NONNULL_PTR owner);
-       public static native long C2Tuple_OutPointCVec_MonitorEventZZ_get_a(long owner);
-       // struct LDKCVec_MonitorEventZ C2Tuple_OutPointCVec_MonitorEventZZ_get_b(LDKC2Tuple_OutPointCVec_MonitorEventZZ *NONNULL_PTR owner);
-       public static native long[] C2Tuple_OutPointCVec_MonitorEventZZ_get_b(long owner);
+       // struct LDKOutPoint C3Tuple_OutPointCVec_MonitorEventZPublicKeyZ_get_a(LDKC3Tuple_OutPointCVec_MonitorEventZPublicKeyZ *NONNULL_PTR owner);
+       public static native long C3Tuple_OutPointCVec_MonitorEventZPublicKeyZ_get_a(long owner);
+       // struct LDKCVec_MonitorEventZ C3Tuple_OutPointCVec_MonitorEventZPublicKeyZ_get_b(LDKC3Tuple_OutPointCVec_MonitorEventZPublicKeyZ *NONNULL_PTR owner);
+       public static native long[] C3Tuple_OutPointCVec_MonitorEventZPublicKeyZ_get_b(long owner);
+       // struct LDKPublicKey C3Tuple_OutPointCVec_MonitorEventZPublicKeyZ_get_c(LDKC3Tuple_OutPointCVec_MonitorEventZPublicKeyZ *NONNULL_PTR owner);
+       public static native byte[] C3Tuple_OutPointCVec_MonitorEventZPublicKeyZ_get_c(long owner);
        public static class LDKCOption_C2Tuple_usizeTransactionZZ {
                private LDKCOption_C2Tuple_usizeTransactionZZ() {}
                public final static class Some extends LDKCOption_C2Tuple_usizeTransactionZZ {
@@ -657,6 +713,23 @@ public class bindings {
        public static native long CResult_FixedPenaltyScorerDecodeErrorZ_get_ok(long owner);
        // struct LDKDecodeError CResult_FixedPenaltyScorerDecodeErrorZ_get_err(LDKCResult_FixedPenaltyScorerDecodeErrorZ *NONNULL_PTR owner);
        public static native long CResult_FixedPenaltyScorerDecodeErrorZ_get_err(long owner);
+       // uint64_t C2Tuple_u64u64Z_get_a(LDKC2Tuple_u64u64Z *NONNULL_PTR owner);
+       public static native long C2Tuple_u64u64Z_get_a(long owner);
+       // uint64_t C2Tuple_u64u64Z_get_b(LDKC2Tuple_u64u64Z *NONNULL_PTR owner);
+       public static native long C2Tuple_u64u64Z_get_b(long owner);
+       public static class LDKCOption_C2Tuple_u64u64ZZ {
+               private LDKCOption_C2Tuple_u64u64ZZ() {}
+               public final static class Some extends LDKCOption_C2Tuple_u64u64ZZ {
+                       public long some;
+                       Some(long some) { this.some = some; }
+               }
+               public final static class None extends LDKCOption_C2Tuple_u64u64ZZ {
+                       None() { }
+               }
+               static native void init();
+       }
+       static { LDKCOption_C2Tuple_u64u64ZZ.init(); }
+       public static native LDKCOption_C2Tuple_u64u64ZZ LDKCOption_C2Tuple_u64u64ZZ_ref_from_ptr(long ptr);
        public interface LDKLogger {
                 void log(long record);
        }
@@ -761,6 +834,11 @@ public class bindings {
                        public short port;
                        OnionV3(byte[] ed25519_pubkey, short checksum, byte version, short port) { this.ed25519_pubkey = ed25519_pubkey; this.checksum = checksum; this.version = version; this.port = port; }
                }
+               public final static class Hostname extends LDKNetAddress {
+                       public long hostname;
+                       public short port;
+                       Hostname(long hostname, short port) { this.hostname = hostname; this.port = port; }
+               }
                static native void init();
        }
        static { LDKNetAddress.init(); }
@@ -769,6 +847,10 @@ public class bindings {
        public static native long CResult_NodeAnnouncementInfoDecodeErrorZ_get_ok(long owner);
        // struct LDKDecodeError CResult_NodeAnnouncementInfoDecodeErrorZ_get_err(LDKCResult_NodeAnnouncementInfoDecodeErrorZ *NONNULL_PTR owner);
        public static native long CResult_NodeAnnouncementInfoDecodeErrorZ_get_err(long owner);
+       // struct LDKNodeAlias CResult_NodeAliasDecodeErrorZ_get_ok(LDKCResult_NodeAliasDecodeErrorZ *NONNULL_PTR owner);
+       public static native long CResult_NodeAliasDecodeErrorZ_get_ok(long owner);
+       // struct LDKDecodeError CResult_NodeAliasDecodeErrorZ_get_err(LDKCResult_NodeAliasDecodeErrorZ *NONNULL_PTR owner);
+       public static native long CResult_NodeAliasDecodeErrorZ_get_err(long owner);
        // struct LDKNodeInfo CResult_NodeInfoDecodeErrorZ_get_ok(LDKCResult_NodeInfoDecodeErrorZ *NONNULL_PTR owner);
        public static native long CResult_NodeInfoDecodeErrorZ_get_ok(long owner);
        // struct LDKDecodeError CResult_NodeInfoDecodeErrorZ_get_err(LDKCResult_NodeInfoDecodeErrorZ *NONNULL_PTR owner);
@@ -1046,7 +1128,7 @@ public class bindings {
        public static native long Watch_watch_channel(long this_arg, long funding_txo, long monitor);
        // LDKCResult_NoneChannelMonitorUpdateErrZ Watch_update_channel LDKWatch *NONNULL_PTR this_arg, struct LDKOutPoint funding_txo, struct LDKChannelMonitorUpdate update
        public static native long Watch_update_channel(long this_arg, long funding_txo, long update);
-       // LDKCVec_C2Tuple_OutPointCVec_MonitorEventZZZ Watch_release_pending_monitor_events LDKWatch *NONNULL_PTR this_arg
+       // LDKCVec_C3Tuple_OutPointCVec_MonitorEventZPublicKeyZZ Watch_release_pending_monitor_events LDKWatch *NONNULL_PTR this_arg
        public static native long[] Watch_release_pending_monitor_events(long this_arg);
        public interface LDKBroadcasterInterface {
                 void broadcast_transaction(byte[] tx);
@@ -1601,6 +1683,8 @@ public class bindings {
                 long channel_penalty_msat(long short_channel_id, long source, long target, long usage);
                 void payment_path_failed(long[] path, long short_channel_id);
                 void payment_path_successful(long[] path);
+                void probe_failed(long[] path, long short_channel_id);
+                void probe_successful(long[] path);
                 byte[] write();
        }
        public static native long LDKScore_new(LDKScore impl);
@@ -1610,6 +1694,10 @@ public class bindings {
        public static native void Score_payment_path_failed(long this_arg, long[] path, long short_channel_id);
        // void Score_payment_path_successful LDKScore *NONNULL_PTR this_arg, struct LDKCVec_RouteHopZ path
        public static native void Score_payment_path_successful(long this_arg, long[] path);
+       // void Score_probe_failed LDKScore *NONNULL_PTR this_arg, struct LDKCVec_RouteHopZ path, uint64_t short_channel_id
+       public static native void Score_probe_failed(long this_arg, long[] path, long short_channel_id);
+       // void Score_probe_successful LDKScore *NONNULL_PTR this_arg, struct LDKCVec_RouteHopZ path
+       public static native void Score_probe_successful(long this_arg, long[] path);
        // LDKCVec_u8Z Score_write LDKScore *NONNULL_PTR this_arg
        public static native byte[] Score_write(long this_arg);
        public interface LDKPersister {
@@ -1799,7 +1887,8 @@ public class bindings {
                }
                public final static class Total extends LDKEffectiveCapacity {
                        public long capacity_msat;
-                       Total(long capacity_msat) { this.capacity_msat = capacity_msat; }
+                       public long htlc_maximum_msat;
+                       Total(long capacity_msat, long htlc_maximum_msat) { this.capacity_msat = capacity_msat; this.htlc_maximum_msat = htlc_maximum_msat; }
                }
                public final static class Infinite extends LDKEffectiveCapacity {
                        Infinite() { }
@@ -2206,6 +2295,8 @@ public class bindings {
        public static native long COption_u64Z_clone_ptr(long arg);
        // struct LDKCOption_u64Z COption_u64Z_clone(const struct LDKCOption_u64Z *NONNULL_PTR orig);
        public static native long COption_u64Z_clone(long orig);
+       // void CVec_u64Z_free(struct LDKCVec_u64Z _res);
+       public static native void CVec_u64Z_free(long[] _res);
        // struct LDKCResult_PaymentParametersDecodeErrorZ CResult_PaymentParametersDecodeErrorZ_ok(struct LDKPaymentParameters o);
        public static native long CResult_PaymentParametersDecodeErrorZ_ok(long o);
        // struct LDKCResult_PaymentParametersDecodeErrorZ CResult_PaymentParametersDecodeErrorZ_err(struct LDKDecodeError e);
@@ -2294,6 +2385,28 @@ public class bindings {
        public static native long CResult_COption_ClosureReasonZDecodeErrorZ_clone_ptr(long arg);
        // struct LDKCResult_COption_ClosureReasonZDecodeErrorZ CResult_COption_ClosureReasonZDecodeErrorZ_clone(const struct LDKCResult_COption_ClosureReasonZDecodeErrorZ *NONNULL_PTR orig);
        public static native long CResult_COption_ClosureReasonZDecodeErrorZ_clone(long orig);
+       // struct LDKCOption_HTLCDestinationZ COption_HTLCDestinationZ_some(struct LDKHTLCDestination o);
+       public static native long COption_HTLCDestinationZ_some(long o);
+       // struct LDKCOption_HTLCDestinationZ COption_HTLCDestinationZ_none(void);
+       public static native long COption_HTLCDestinationZ_none();
+       // void COption_HTLCDestinationZ_free(struct LDKCOption_HTLCDestinationZ _res);
+       public static native void COption_HTLCDestinationZ_free(long _res);
+       // uintptr_t COption_HTLCDestinationZ_clone_ptr(LDKCOption_HTLCDestinationZ *NONNULL_PTR arg);
+       public static native long COption_HTLCDestinationZ_clone_ptr(long arg);
+       // struct LDKCOption_HTLCDestinationZ COption_HTLCDestinationZ_clone(const struct LDKCOption_HTLCDestinationZ *NONNULL_PTR orig);
+       public static native long COption_HTLCDestinationZ_clone(long orig);
+       // struct LDKCResult_COption_HTLCDestinationZDecodeErrorZ CResult_COption_HTLCDestinationZDecodeErrorZ_ok(struct LDKCOption_HTLCDestinationZ o);
+       public static native long CResult_COption_HTLCDestinationZDecodeErrorZ_ok(long o);
+       // struct LDKCResult_COption_HTLCDestinationZDecodeErrorZ CResult_COption_HTLCDestinationZDecodeErrorZ_err(struct LDKDecodeError e);
+       public static native long CResult_COption_HTLCDestinationZDecodeErrorZ_err(long e);
+       // bool CResult_COption_HTLCDestinationZDecodeErrorZ_is_ok(const struct LDKCResult_COption_HTLCDestinationZDecodeErrorZ *NONNULL_PTR o);
+       public static native boolean CResult_COption_HTLCDestinationZDecodeErrorZ_is_ok(long o);
+       // void CResult_COption_HTLCDestinationZDecodeErrorZ_free(struct LDKCResult_COption_HTLCDestinationZDecodeErrorZ _res);
+       public static native void CResult_COption_HTLCDestinationZDecodeErrorZ_free(long _res);
+       // uintptr_t CResult_COption_HTLCDestinationZDecodeErrorZ_clone_ptr(LDKCResult_COption_HTLCDestinationZDecodeErrorZ *NONNULL_PTR arg);
+       public static native long CResult_COption_HTLCDestinationZDecodeErrorZ_clone_ptr(long arg);
+       // struct LDKCResult_COption_HTLCDestinationZDecodeErrorZ CResult_COption_HTLCDestinationZDecodeErrorZ_clone(const struct LDKCResult_COption_HTLCDestinationZDecodeErrorZ *NONNULL_PTR orig);
+       public static native long CResult_COption_HTLCDestinationZDecodeErrorZ_clone(long orig);
        // struct LDKCOption_NetworkUpdateZ COption_NetworkUpdateZ_some(struct LDKNetworkUpdate o);
        public static native long COption_NetworkUpdateZ_some(long o);
        // struct LDKCOption_NetworkUpdateZ COption_NetworkUpdateZ_none(void);
@@ -2368,16 +2481,16 @@ public class bindings {
        public static native long CResult_NoneChannelMonitorUpdateErrZ_clone(long orig);
        // void CVec_MonitorEventZ_free(struct LDKCVec_MonitorEventZ _res);
        public static native void CVec_MonitorEventZ_free(long[] _res);
-       // uintptr_t C2Tuple_OutPointCVec_MonitorEventZZ_clone_ptr(LDKC2Tuple_OutPointCVec_MonitorEventZZ *NONNULL_PTR arg);
-       public static native long C2Tuple_OutPointCVec_MonitorEventZZ_clone_ptr(long arg);
-       // struct LDKC2Tuple_OutPointCVec_MonitorEventZZ C2Tuple_OutPointCVec_MonitorEventZZ_clone(const struct LDKC2Tuple_OutPointCVec_MonitorEventZZ *NONNULL_PTR orig);
-       public static native long C2Tuple_OutPointCVec_MonitorEventZZ_clone(long orig);
-       // struct LDKC2Tuple_OutPointCVec_MonitorEventZZ C2Tuple_OutPointCVec_MonitorEventZZ_new(struct LDKOutPoint a, struct LDKCVec_MonitorEventZ b);
-       public static native long C2Tuple_OutPointCVec_MonitorEventZZ_new(long a, long[] b);
-       // void C2Tuple_OutPointCVec_MonitorEventZZ_free(struct LDKC2Tuple_OutPointCVec_MonitorEventZZ _res);
-       public static native void C2Tuple_OutPointCVec_MonitorEventZZ_free(long _res);
-       // void CVec_C2Tuple_OutPointCVec_MonitorEventZZZ_free(struct LDKCVec_C2Tuple_OutPointCVec_MonitorEventZZZ _res);
-       public static native void CVec_C2Tuple_OutPointCVec_MonitorEventZZZ_free(long[] _res);
+       // uintptr_t C3Tuple_OutPointCVec_MonitorEventZPublicKeyZ_clone_ptr(LDKC3Tuple_OutPointCVec_MonitorEventZPublicKeyZ *NONNULL_PTR arg);
+       public static native long C3Tuple_OutPointCVec_MonitorEventZPublicKeyZ_clone_ptr(long arg);
+       // struct LDKC3Tuple_OutPointCVec_MonitorEventZPublicKeyZ C3Tuple_OutPointCVec_MonitorEventZPublicKeyZ_clone(const struct LDKC3Tuple_OutPointCVec_MonitorEventZPublicKeyZ *NONNULL_PTR orig);
+       public static native long C3Tuple_OutPointCVec_MonitorEventZPublicKeyZ_clone(long orig);
+       // struct LDKC3Tuple_OutPointCVec_MonitorEventZPublicKeyZ C3Tuple_OutPointCVec_MonitorEventZPublicKeyZ_new(struct LDKOutPoint a, struct LDKCVec_MonitorEventZ b, struct LDKPublicKey c);
+       public static native long C3Tuple_OutPointCVec_MonitorEventZPublicKeyZ_new(long a, long[] b, byte[] c);
+       // void C3Tuple_OutPointCVec_MonitorEventZPublicKeyZ_free(struct LDKC3Tuple_OutPointCVec_MonitorEventZPublicKeyZ _res);
+       public static native void C3Tuple_OutPointCVec_MonitorEventZPublicKeyZ_free(long _res);
+       // void CVec_C3Tuple_OutPointCVec_MonitorEventZPublicKeyZZ_free(struct LDKCVec_C3Tuple_OutPointCVec_MonitorEventZPublicKeyZZ _res);
+       public static native void CVec_C3Tuple_OutPointCVec_MonitorEventZPublicKeyZZ_free(long[] _res);
        // struct LDKCOption_C2Tuple_usizeTransactionZZ COption_C2Tuple_usizeTransactionZZ_some(struct LDKC2Tuple_usizeTransactionZ o);
        public static native long COption_C2Tuple_usizeTransactionZZ_some(long o);
        // struct LDKCOption_C2Tuple_usizeTransactionZZ COption_C2Tuple_usizeTransactionZZ_none(void);
@@ -2400,6 +2513,26 @@ public class bindings {
        public static native long CResult_FixedPenaltyScorerDecodeErrorZ_clone_ptr(long arg);
        // struct LDKCResult_FixedPenaltyScorerDecodeErrorZ CResult_FixedPenaltyScorerDecodeErrorZ_clone(const struct LDKCResult_FixedPenaltyScorerDecodeErrorZ *NONNULL_PTR orig);
        public static native long CResult_FixedPenaltyScorerDecodeErrorZ_clone(long orig);
+       // uintptr_t C2Tuple_u64u64Z_clone_ptr(LDKC2Tuple_u64u64Z *NONNULL_PTR arg);
+       public static native long C2Tuple_u64u64Z_clone_ptr(long arg);
+       // struct LDKC2Tuple_u64u64Z C2Tuple_u64u64Z_clone(const struct LDKC2Tuple_u64u64Z *NONNULL_PTR orig);
+       public static native long C2Tuple_u64u64Z_clone(long orig);
+       // struct LDKC2Tuple_u64u64Z C2Tuple_u64u64Z_new(uint64_t a, uint64_t b);
+       public static native long C2Tuple_u64u64Z_new(long a, long b);
+       // void C2Tuple_u64u64Z_free(struct LDKC2Tuple_u64u64Z _res);
+       public static native void C2Tuple_u64u64Z_free(long _res);
+       // struct LDKCOption_C2Tuple_u64u64ZZ COption_C2Tuple_u64u64ZZ_some(struct LDKC2Tuple_u64u64Z o);
+       public static native long COption_C2Tuple_u64u64ZZ_some(long o);
+       // struct LDKCOption_C2Tuple_u64u64ZZ COption_C2Tuple_u64u64ZZ_none(void);
+       public static native long COption_C2Tuple_u64u64ZZ_none();
+       // void COption_C2Tuple_u64u64ZZ_free(struct LDKCOption_C2Tuple_u64u64ZZ _res);
+       public static native void COption_C2Tuple_u64u64ZZ_free(long _res);
+       // uintptr_t COption_C2Tuple_u64u64ZZ_clone_ptr(LDKCOption_C2Tuple_u64u64ZZ *NONNULL_PTR arg);
+       public static native long COption_C2Tuple_u64u64ZZ_clone_ptr(long arg);
+       // struct LDKCOption_C2Tuple_u64u64ZZ COption_C2Tuple_u64u64ZZ_clone(const struct LDKCOption_C2Tuple_u64u64ZZ *NONNULL_PTR orig);
+       public static native long COption_C2Tuple_u64u64ZZ_clone(long orig);
+       // void CVec_NodeIdZ_free(struct LDKCVec_NodeIdZ _res);
+       public static native void CVec_NodeIdZ_free(long[] _res);
        // struct LDKCResult_ProbabilisticScorerDecodeErrorZ CResult_ProbabilisticScorerDecodeErrorZ_ok(struct LDKProbabilisticScorer o);
        public static native long CResult_ProbabilisticScorerDecodeErrorZ_ok(long o);
        // struct LDKCResult_ProbabilisticScorerDecodeErrorZ CResult_ProbabilisticScorerDecodeErrorZ_err(struct LDKDecodeError e);
@@ -2584,8 +2717,18 @@ public class bindings {
        public static native long CResult_NodeAnnouncementInfoDecodeErrorZ_clone_ptr(long arg);
        // struct LDKCResult_NodeAnnouncementInfoDecodeErrorZ CResult_NodeAnnouncementInfoDecodeErrorZ_clone(const struct LDKCResult_NodeAnnouncementInfoDecodeErrorZ *NONNULL_PTR orig);
        public static native long CResult_NodeAnnouncementInfoDecodeErrorZ_clone(long orig);
-       // void CVec_u64Z_free(struct LDKCVec_u64Z _res);
-       public static native void CVec_u64Z_free(long[] _res);
+       // struct LDKCResult_NodeAliasDecodeErrorZ CResult_NodeAliasDecodeErrorZ_ok(struct LDKNodeAlias o);
+       public static native long CResult_NodeAliasDecodeErrorZ_ok(long o);
+       // struct LDKCResult_NodeAliasDecodeErrorZ CResult_NodeAliasDecodeErrorZ_err(struct LDKDecodeError e);
+       public static native long CResult_NodeAliasDecodeErrorZ_err(long e);
+       // bool CResult_NodeAliasDecodeErrorZ_is_ok(const struct LDKCResult_NodeAliasDecodeErrorZ *NONNULL_PTR o);
+       public static native boolean CResult_NodeAliasDecodeErrorZ_is_ok(long o);
+       // void CResult_NodeAliasDecodeErrorZ_free(struct LDKCResult_NodeAliasDecodeErrorZ _res);
+       public static native void CResult_NodeAliasDecodeErrorZ_free(long _res);
+       // uintptr_t CResult_NodeAliasDecodeErrorZ_clone_ptr(LDKCResult_NodeAliasDecodeErrorZ *NONNULL_PTR arg);
+       public static native long CResult_NodeAliasDecodeErrorZ_clone_ptr(long arg);
+       // struct LDKCResult_NodeAliasDecodeErrorZ CResult_NodeAliasDecodeErrorZ_clone(const struct LDKCResult_NodeAliasDecodeErrorZ *NONNULL_PTR orig);
+       public static native long CResult_NodeAliasDecodeErrorZ_clone(long orig);
        // struct LDKCResult_NodeInfoDecodeErrorZ CResult_NodeInfoDecodeErrorZ_ok(struct LDKNodeInfo o);
        public static native long CResult_NodeInfoDecodeErrorZ_ok(long o);
        // struct LDKCResult_NodeInfoDecodeErrorZ CResult_NodeInfoDecodeErrorZ_err(struct LDKDecodeError e);
@@ -2890,6 +3033,8 @@ public class bindings {
        public static native long CResult_C2Tuple_PaymentHashPaymentIdZPaymentSendFailureZ_clone_ptr(long arg);
        // struct LDKCResult_C2Tuple_PaymentHashPaymentIdZPaymentSendFailureZ CResult_C2Tuple_PaymentHashPaymentIdZPaymentSendFailureZ_clone(const struct LDKCResult_C2Tuple_PaymentHashPaymentIdZPaymentSendFailureZ *NONNULL_PTR orig);
        public static native long CResult_C2Tuple_PaymentHashPaymentIdZPaymentSendFailureZ_clone(long orig);
+       // void CVec_ThirtyTwoBytesZ_free(struct LDKCVec_ThirtyTwoBytesZ _res);
+       public static native void CVec_ThirtyTwoBytesZ_free(byte[][] _res);
        // uintptr_t C2Tuple_PaymentHashPaymentSecretZ_clone_ptr(LDKC2Tuple_PaymentHashPaymentSecretZ *NONNULL_PTR arg);
        public static native long C2Tuple_PaymentHashPaymentSecretZ_clone_ptr(long arg);
        // struct LDKC2Tuple_PaymentHashPaymentSecretZ C2Tuple_PaymentHashPaymentSecretZ_clone(const struct LDKC2Tuple_PaymentHashPaymentSecretZ *NONNULL_PTR orig);
@@ -3870,6 +4015,22 @@ public class bindings {
        public static native byte[] ClosureReason_write(long obj);
        // struct LDKCResult_COption_ClosureReasonZDecodeErrorZ ClosureReason_read(struct LDKu8slice ser);
        public static native long ClosureReason_read(byte[] ser);
+       // void HTLCDestination_free(struct LDKHTLCDestination this_ptr);
+       public static native void HTLCDestination_free(long this_ptr);
+       // uintptr_t HTLCDestination_clone_ptr(LDKHTLCDestination *NONNULL_PTR arg);
+       public static native long HTLCDestination_clone_ptr(long arg);
+       // struct LDKHTLCDestination HTLCDestination_clone(const struct LDKHTLCDestination *NONNULL_PTR orig);
+       public static native long HTLCDestination_clone(long orig);
+       // struct LDKHTLCDestination HTLCDestination_next_hop_channel(struct LDKPublicKey node_id, struct LDKThirtyTwoBytes channel_id);
+       public static native long HTLCDestination_next_hop_channel(byte[] node_id, byte[] channel_id);
+       // struct LDKHTLCDestination HTLCDestination_unknown_next_hop(uint64_t requested_forward_scid);
+       public static native long HTLCDestination_unknown_next_hop(long requested_forward_scid);
+       // struct LDKHTLCDestination HTLCDestination_failed_payment(struct LDKThirtyTwoBytes payment_hash);
+       public static native long HTLCDestination_failed_payment(byte[] payment_hash);
+       // struct LDKCVec_u8Z HTLCDestination_write(const struct LDKHTLCDestination *NONNULL_PTR obj);
+       public static native byte[] HTLCDestination_write(long obj);
+       // struct LDKCResult_COption_HTLCDestinationZDecodeErrorZ HTLCDestination_read(struct LDKu8slice ser);
+       public static native long HTLCDestination_read(byte[] ser);
        // void Event_free(struct LDKEvent this_ptr);
        public static native void Event_free(long this_ptr);
        // uintptr_t Event_clone_ptr(LDKEvent *NONNULL_PTR arg);
@@ -3890,6 +4051,10 @@ public class bindings {
        public static native long Event_payment_path_successful(byte[] payment_id, byte[] payment_hash, long[] path);
        // struct LDKEvent Event_payment_path_failed(struct LDKThirtyTwoBytes payment_id, struct LDKThirtyTwoBytes payment_hash, bool rejected_by_dest, struct LDKCOption_NetworkUpdateZ network_update, bool all_paths_failed, struct LDKCVec_RouteHopZ path, struct LDKCOption_u64Z short_channel_id, struct LDKRouteParameters retry);
        public static native long Event_payment_path_failed(byte[] payment_id, byte[] payment_hash, boolean rejected_by_dest, long network_update, boolean all_paths_failed, long[] path, long short_channel_id, long retry);
+       // struct LDKEvent Event_probe_successful(struct LDKThirtyTwoBytes payment_id, struct LDKThirtyTwoBytes payment_hash, struct LDKCVec_RouteHopZ path);
+       public static native long Event_probe_successful(byte[] payment_id, byte[] payment_hash, long[] path);
+       // struct LDKEvent Event_probe_failed(struct LDKThirtyTwoBytes payment_id, struct LDKThirtyTwoBytes payment_hash, struct LDKCVec_RouteHopZ path, struct LDKCOption_u64Z short_channel_id);
+       public static native long Event_probe_failed(byte[] payment_id, byte[] payment_hash, long[] path, long short_channel_id);
        // struct LDKEvent Event_pending_htlcs_forwardable(uint64_t time_forwardable);
        public static native long Event_pending_htlcs_forwardable(long time_forwardable);
        // struct LDKEvent Event_spendable_outputs(struct LDKCVec_SpendableOutputDescriptorZ outputs);
@@ -3902,6 +4067,8 @@ public class bindings {
        public static native long Event_discard_funding(byte[] channel_id, byte[] transaction);
        // struct LDKEvent Event_open_channel_request(struct LDKThirtyTwoBytes temporary_channel_id, struct LDKPublicKey counterparty_node_id, uint64_t funding_satoshis, uint64_t push_msat, struct LDKChannelTypeFeatures channel_type);
        public static native long Event_open_channel_request(byte[] temporary_channel_id, byte[] counterparty_node_id, long funding_satoshis, long push_msat, long channel_type);
+       // struct LDKEvent Event_htlchandling_failed(struct LDKThirtyTwoBytes prev_channel_id, struct LDKHTLCDestination failed_next_destination);
+       public static native long Event_htlchandling_failed(byte[] prev_channel_id, long failed_next_destination);
        // struct LDKCVec_u8Z Event_write(const struct LDKEvent *NONNULL_PTR obj);
        public static native byte[] Event_write(long obj);
        // struct LDKCResult_COption_EventZDecodeErrorZ Event_read(struct LDKu8slice ser);
@@ -3984,6 +4151,14 @@ public class bindings {
        public static native void BigSize_set_a(long this_ptr, long val);
        // MUST_USE_RES struct LDKBigSize BigSize_new(uint64_t a_arg);
        public static native long BigSize_new(long a_arg);
+       // void Hostname_free(struct LDKHostname this_obj);
+       public static native void Hostname_free(long this_obj);
+       // uintptr_t Hostname_clone_ptr(LDKHostname *NONNULL_PTR arg);
+       public static native long Hostname_clone_ptr(long arg);
+       // struct LDKHostname Hostname_clone(const struct LDKHostname *NONNULL_PTR orig);
+       public static native long Hostname_clone(long orig);
+       // MUST_USE_RES uint8_t Hostname_len(const struct LDKHostname *NONNULL_PTR this_arg);
+       public static native byte Hostname_len(long this_arg);
        // struct LDKCResult_StringErrorZ sign(struct LDKu8slice msg, const uint8_t (*sk)[32]);
        public static native long sign(byte[] msg, byte[] sk);
        // struct LDKCResult_PublicKeyErrorZ recover_pk(struct LDKu8slice msg, struct LDKStr sig);
@@ -4064,8 +4239,16 @@ public class bindings {
        public static native boolean ChannelHandshakeConfig_get_negotiate_scid_privacy(long this_ptr);
        // void ChannelHandshakeConfig_set_negotiate_scid_privacy(struct LDKChannelHandshakeConfig *NONNULL_PTR this_ptr, bool val);
        public static native void ChannelHandshakeConfig_set_negotiate_scid_privacy(long this_ptr, boolean val);
-       // MUST_USE_RES struct LDKChannelHandshakeConfig ChannelHandshakeConfig_new(uint32_t minimum_depth_arg, uint16_t our_to_self_delay_arg, uint64_t our_htlc_minimum_msat_arg, uint8_t max_inbound_htlc_value_in_flight_percent_of_channel_arg, bool negotiate_scid_privacy_arg);
-       public static native long ChannelHandshakeConfig_new(int minimum_depth_arg, short our_to_self_delay_arg, long our_htlc_minimum_msat_arg, byte max_inbound_htlc_value_in_flight_percent_of_channel_arg, boolean negotiate_scid_privacy_arg);
+       // bool ChannelHandshakeConfig_get_announced_channel(const struct LDKChannelHandshakeConfig *NONNULL_PTR this_ptr);
+       public static native boolean ChannelHandshakeConfig_get_announced_channel(long this_ptr);
+       // void ChannelHandshakeConfig_set_announced_channel(struct LDKChannelHandshakeConfig *NONNULL_PTR this_ptr, bool val);
+       public static native void ChannelHandshakeConfig_set_announced_channel(long this_ptr, boolean val);
+       // bool ChannelHandshakeConfig_get_commit_upfront_shutdown_pubkey(const struct LDKChannelHandshakeConfig *NONNULL_PTR this_ptr);
+       public static native boolean ChannelHandshakeConfig_get_commit_upfront_shutdown_pubkey(long this_ptr);
+       // void ChannelHandshakeConfig_set_commit_upfront_shutdown_pubkey(struct LDKChannelHandshakeConfig *NONNULL_PTR this_ptr, bool val);
+       public static native void ChannelHandshakeConfig_set_commit_upfront_shutdown_pubkey(long this_ptr, boolean val);
+       // MUST_USE_RES struct LDKChannelHandshakeConfig ChannelHandshakeConfig_new(uint32_t minimum_depth_arg, uint16_t our_to_self_delay_arg, uint64_t our_htlc_minimum_msat_arg, uint8_t max_inbound_htlc_value_in_flight_percent_of_channel_arg, bool negotiate_scid_privacy_arg, bool announced_channel_arg, bool commit_upfront_shutdown_pubkey_arg);
+       public static native long ChannelHandshakeConfig_new(int minimum_depth_arg, short our_to_self_delay_arg, long our_htlc_minimum_msat_arg, byte max_inbound_htlc_value_in_flight_percent_of_channel_arg, boolean negotiate_scid_privacy_arg, boolean announced_channel_arg, boolean commit_upfront_shutdown_pubkey_arg);
        // uintptr_t ChannelHandshakeConfig_clone_ptr(LDKChannelHandshakeConfig *NONNULL_PTR arg);
        public static native long ChannelHandshakeConfig_clone_ptr(long arg);
        // struct LDKChannelHandshakeConfig ChannelHandshakeConfig_clone(const struct LDKChannelHandshakeConfig *NONNULL_PTR orig);
@@ -4136,14 +4319,6 @@ public class bindings {
        public static native short ChannelConfig_get_cltv_expiry_delta(long this_ptr);
        // void ChannelConfig_set_cltv_expiry_delta(struct LDKChannelConfig *NONNULL_PTR this_ptr, uint16_t val);
        public static native void ChannelConfig_set_cltv_expiry_delta(long this_ptr, short val);
-       // bool ChannelConfig_get_announced_channel(const struct LDKChannelConfig *NONNULL_PTR this_ptr);
-       public static native boolean ChannelConfig_get_announced_channel(long this_ptr);
-       // void ChannelConfig_set_announced_channel(struct LDKChannelConfig *NONNULL_PTR this_ptr, bool val);
-       public static native void ChannelConfig_set_announced_channel(long this_ptr, boolean val);
-       // bool ChannelConfig_get_commit_upfront_shutdown_pubkey(const struct LDKChannelConfig *NONNULL_PTR this_ptr);
-       public static native boolean ChannelConfig_get_commit_upfront_shutdown_pubkey(long this_ptr);
-       // void ChannelConfig_set_commit_upfront_shutdown_pubkey(struct LDKChannelConfig *NONNULL_PTR this_ptr, bool val);
-       public static native void ChannelConfig_set_commit_upfront_shutdown_pubkey(long this_ptr, boolean val);
        // uint64_t ChannelConfig_get_max_dust_htlc_exposure_msat(const struct LDKChannelConfig *NONNULL_PTR this_ptr);
        public static native long ChannelConfig_get_max_dust_htlc_exposure_msat(long this_ptr);
        // void ChannelConfig_set_max_dust_htlc_exposure_msat(struct LDKChannelConfig *NONNULL_PTR this_ptr, uint64_t val);
@@ -4152,8 +4327,8 @@ public class bindings {
        public static native long ChannelConfig_get_force_close_avoidance_max_fee_satoshis(long this_ptr);
        // void ChannelConfig_set_force_close_avoidance_max_fee_satoshis(struct LDKChannelConfig *NONNULL_PTR this_ptr, uint64_t val);
        public static native void ChannelConfig_set_force_close_avoidance_max_fee_satoshis(long this_ptr, long val);
-       // MUST_USE_RES struct LDKChannelConfig ChannelConfig_new(uint32_t forwarding_fee_proportional_millionths_arg, uint32_t forwarding_fee_base_msat_arg, uint16_t cltv_expiry_delta_arg, bool announced_channel_arg, bool commit_upfront_shutdown_pubkey_arg, uint64_t max_dust_htlc_exposure_msat_arg, uint64_t force_close_avoidance_max_fee_satoshis_arg);
-       public static native long ChannelConfig_new(int forwarding_fee_proportional_millionths_arg, int forwarding_fee_base_msat_arg, short cltv_expiry_delta_arg, boolean announced_channel_arg, boolean commit_upfront_shutdown_pubkey_arg, long max_dust_htlc_exposure_msat_arg, long force_close_avoidance_max_fee_satoshis_arg);
+       // MUST_USE_RES struct LDKChannelConfig ChannelConfig_new(uint32_t forwarding_fee_proportional_millionths_arg, uint32_t forwarding_fee_base_msat_arg, uint16_t cltv_expiry_delta_arg, uint64_t max_dust_htlc_exposure_msat_arg, uint64_t force_close_avoidance_max_fee_satoshis_arg);
+       public static native long ChannelConfig_new(int forwarding_fee_proportional_millionths_arg, int forwarding_fee_base_msat_arg, short cltv_expiry_delta_arg, long max_dust_htlc_exposure_msat_arg, long force_close_avoidance_max_fee_satoshis_arg);
        // uintptr_t ChannelConfig_clone_ptr(LDKChannelConfig *NONNULL_PTR arg);
        public static native long ChannelConfig_clone_ptr(long arg);
        // struct LDKChannelConfig ChannelConfig_clone(const struct LDKChannelConfig *NONNULL_PTR orig);
@@ -4166,18 +4341,18 @@ public class bindings {
        public static native long ChannelConfig_read(byte[] ser);
        // void UserConfig_free(struct LDKUserConfig this_obj);
        public static native void UserConfig_free(long this_obj);
-       // struct LDKChannelHandshakeConfig UserConfig_get_own_channel_config(const struct LDKUserConfig *NONNULL_PTR this_ptr);
-       public static native long UserConfig_get_own_channel_config(long this_ptr);
-       // void UserConfig_set_own_channel_config(struct LDKUserConfig *NONNULL_PTR this_ptr, struct LDKChannelHandshakeConfig val);
-       public static native void UserConfig_set_own_channel_config(long this_ptr, long val);
-       // struct LDKChannelHandshakeLimits UserConfig_get_peer_channel_config_limits(const struct LDKUserConfig *NONNULL_PTR this_ptr);
-       public static native long UserConfig_get_peer_channel_config_limits(long this_ptr);
-       // void UserConfig_set_peer_channel_config_limits(struct LDKUserConfig *NONNULL_PTR this_ptr, struct LDKChannelHandshakeLimits val);
-       public static native void UserConfig_set_peer_channel_config_limits(long this_ptr, long val);
-       // struct LDKChannelConfig UserConfig_get_channel_options(const struct LDKUserConfig *NONNULL_PTR this_ptr);
-       public static native long UserConfig_get_channel_options(long this_ptr);
-       // void UserConfig_set_channel_options(struct LDKUserConfig *NONNULL_PTR this_ptr, struct LDKChannelConfig val);
-       public static native void UserConfig_set_channel_options(long this_ptr, long val);
+       // struct LDKChannelHandshakeConfig UserConfig_get_channel_handshake_config(const struct LDKUserConfig *NONNULL_PTR this_ptr);
+       public static native long UserConfig_get_channel_handshake_config(long this_ptr);
+       // void UserConfig_set_channel_handshake_config(struct LDKUserConfig *NONNULL_PTR this_ptr, struct LDKChannelHandshakeConfig val);
+       public static native void UserConfig_set_channel_handshake_config(long this_ptr, long val);
+       // struct LDKChannelHandshakeLimits UserConfig_get_channel_handshake_limits(const struct LDKUserConfig *NONNULL_PTR this_ptr);
+       public static native long UserConfig_get_channel_handshake_limits(long this_ptr);
+       // void UserConfig_set_channel_handshake_limits(struct LDKUserConfig *NONNULL_PTR this_ptr, struct LDKChannelHandshakeLimits val);
+       public static native void UserConfig_set_channel_handshake_limits(long this_ptr, long val);
+       // struct LDKChannelConfig UserConfig_get_channel_config(const struct LDKUserConfig *NONNULL_PTR this_ptr);
+       public static native long UserConfig_get_channel_config(long this_ptr);
+       // void UserConfig_set_channel_config(struct LDKUserConfig *NONNULL_PTR this_ptr, struct LDKChannelConfig val);
+       public static native void UserConfig_set_channel_config(long this_ptr, long val);
        // bool UserConfig_get_accept_forwards_to_priv_channels(const struct LDKUserConfig *NONNULL_PTR this_ptr);
        public static native boolean UserConfig_get_accept_forwards_to_priv_channels(long this_ptr);
        // void UserConfig_set_accept_forwards_to_priv_channels(struct LDKUserConfig *NONNULL_PTR this_ptr, bool val);
@@ -4190,8 +4365,8 @@ public class bindings {
        public static native boolean UserConfig_get_manually_accept_inbound_channels(long this_ptr);
        // void UserConfig_set_manually_accept_inbound_channels(struct LDKUserConfig *NONNULL_PTR this_ptr, bool val);
        public static native void UserConfig_set_manually_accept_inbound_channels(long this_ptr, boolean val);
-       // MUST_USE_RES struct LDKUserConfig UserConfig_new(struct LDKChannelHandshakeConfig own_channel_config_arg, struct LDKChannelHandshakeLimits peer_channel_config_limits_arg, struct LDKChannelConfig channel_options_arg, bool accept_forwards_to_priv_channels_arg, bool accept_inbound_channels_arg, bool manually_accept_inbound_channels_arg);
-       public static native long UserConfig_new(long own_channel_config_arg, long peer_channel_config_limits_arg, long channel_options_arg, boolean accept_forwards_to_priv_channels_arg, boolean accept_inbound_channels_arg, boolean manually_accept_inbound_channels_arg);
+       // MUST_USE_RES struct LDKUserConfig UserConfig_new(struct LDKChannelHandshakeConfig channel_handshake_config_arg, struct LDKChannelHandshakeLimits channel_handshake_limits_arg, struct LDKChannelConfig channel_config_arg, bool accept_forwards_to_priv_channels_arg, bool accept_inbound_channels_arg, bool manually_accept_inbound_channels_arg);
+       public static native long UserConfig_new(long channel_handshake_config_arg, long channel_handshake_limits_arg, long channel_config_arg, boolean accept_forwards_to_priv_channels_arg, boolean accept_inbound_channels_arg, boolean manually_accept_inbound_channels_arg);
        // uintptr_t UserConfig_clone_ptr(LDKUserConfig *NONNULL_PTR arg);
        public static native long UserConfig_clone_ptr(long arg);
        // struct LDKUserConfig UserConfig_clone(const struct LDKUserConfig *NONNULL_PTR orig);
@@ -4370,7 +4545,7 @@ public class bindings {
        public static native long ChannelMonitor_clone(long orig);
        // struct LDKCVec_u8Z ChannelMonitor_write(const struct LDKChannelMonitor *NONNULL_PTR obj);
        public static native byte[] ChannelMonitor_write(long obj);
-       // MUST_USE_RES struct LDKCResult_NoneNoneZ ChannelMonitor_update_monitor(const struct LDKChannelMonitor *NONNULL_PTR this_arg, const struct LDKChannelMonitorUpdate *NONNULL_PTR updates, const struct LDKBroadcasterInterface *NONNULL_PTR broadcaster, const struct LDKFeeEstimator *NONNULL_PTR fee_estimator, const struct LDKLogger *NONNULL_PTR logger);
+       // MUST_USE_RES struct LDKCResult_NoneNoneZ ChannelMonitor_update_monitor(const struct LDKChannelMonitor *NONNULL_PTR this_arg, const struct LDKChannelMonitorUpdate *NONNULL_PTR updates, const struct LDKBroadcasterInterface *NONNULL_PTR broadcaster, struct LDKFeeEstimator fee_estimator, const struct LDKLogger *NONNULL_PTR logger);
        public static native long ChannelMonitor_update_monitor(long this_arg, long updates, long broadcaster, long fee_estimator, long logger);
        // MUST_USE_RES uint64_t ChannelMonitor_get_latest_update_id(const struct LDKChannelMonitor *NONNULL_PTR this_arg);
        public static native long ChannelMonitor_get_latest_update_id(long this_arg);
@@ -4384,6 +4559,8 @@ public class bindings {
        public static native long[] ChannelMonitor_get_and_clear_pending_monitor_events(long this_arg);
        // MUST_USE_RES struct LDKCVec_EventZ ChannelMonitor_get_and_clear_pending_events(const struct LDKChannelMonitor *NONNULL_PTR this_arg);
        public static native long[] ChannelMonitor_get_and_clear_pending_events(long this_arg);
+       // MUST_USE_RES struct LDKPublicKey ChannelMonitor_get_counterparty_node_id(const struct LDKChannelMonitor *NONNULL_PTR this_arg);
+       public static native byte[] ChannelMonitor_get_counterparty_node_id(long this_arg);
        // MUST_USE_RES struct LDKCVec_TransactionZ ChannelMonitor_get_latest_holder_commitment_txn(const struct LDKChannelMonitor *NONNULL_PTR this_arg, const struct LDKLogger *NONNULL_PTR logger);
        public static native byte[][] ChannelMonitor_get_latest_holder_commitment_txn(long this_arg, long logger);
        // MUST_USE_RES struct LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32TxOutZZZZ ChannelMonitor_block_connected(const struct LDKChannelMonitor *NONNULL_PTR this_arg, const uint8_t (*header)[80], struct LDKCVec_C2Tuple_usizeTransactionZZ txdata, uint32_t height, struct LDKBroadcasterInterface broadcaster, struct LDKFeeEstimator fee_estimator, struct LDKLogger logger);
@@ -4764,8 +4941,12 @@ public class bindings {
        public static native long ChannelDetails_get_inbound_htlc_maximum_msat(long this_ptr);
        // void ChannelDetails_set_inbound_htlc_maximum_msat(struct LDKChannelDetails *NONNULL_PTR this_ptr, struct LDKCOption_u64Z val);
        public static native void ChannelDetails_set_inbound_htlc_maximum_msat(long this_ptr, long val);
-       // MUST_USE_RES struct LDKChannelDetails ChannelDetails_new(struct LDKThirtyTwoBytes channel_id_arg, struct LDKChannelCounterparty counterparty_arg, struct LDKOutPoint funding_txo_arg, struct LDKChannelTypeFeatures channel_type_arg, struct LDKCOption_u64Z short_channel_id_arg, struct LDKCOption_u64Z outbound_scid_alias_arg, struct LDKCOption_u64Z inbound_scid_alias_arg, uint64_t channel_value_satoshis_arg, struct LDKCOption_u64Z unspendable_punishment_reserve_arg, uint64_t user_channel_id_arg, uint64_t balance_msat_arg, uint64_t outbound_capacity_msat_arg, uint64_t next_outbound_htlc_limit_msat_arg, uint64_t inbound_capacity_msat_arg, struct LDKCOption_u32Z confirmations_required_arg, struct LDKCOption_u16Z force_close_spend_delay_arg, bool is_outbound_arg, bool is_channel_ready_arg, bool is_usable_arg, bool is_public_arg, struct LDKCOption_u64Z inbound_htlc_minimum_msat_arg, struct LDKCOption_u64Z inbound_htlc_maximum_msat_arg);
-       public static native long ChannelDetails_new(byte[] channel_id_arg, long counterparty_arg, long funding_txo_arg, long channel_type_arg, long short_channel_id_arg, long outbound_scid_alias_arg, long inbound_scid_alias_arg, long channel_value_satoshis_arg, long unspendable_punishment_reserve_arg, long user_channel_id_arg, long balance_msat_arg, long outbound_capacity_msat_arg, long next_outbound_htlc_limit_msat_arg, long inbound_capacity_msat_arg, long confirmations_required_arg, long force_close_spend_delay_arg, boolean is_outbound_arg, boolean is_channel_ready_arg, boolean is_usable_arg, boolean is_public_arg, long inbound_htlc_minimum_msat_arg, long inbound_htlc_maximum_msat_arg);
+       // struct LDKChannelConfig ChannelDetails_get_config(const struct LDKChannelDetails *NONNULL_PTR this_ptr);
+       public static native long ChannelDetails_get_config(long this_ptr);
+       // void ChannelDetails_set_config(struct LDKChannelDetails *NONNULL_PTR this_ptr, struct LDKChannelConfig val);
+       public static native void ChannelDetails_set_config(long this_ptr, long val);
+       // MUST_USE_RES struct LDKChannelDetails ChannelDetails_new(struct LDKThirtyTwoBytes channel_id_arg, struct LDKChannelCounterparty counterparty_arg, struct LDKOutPoint funding_txo_arg, struct LDKChannelTypeFeatures channel_type_arg, struct LDKCOption_u64Z short_channel_id_arg, struct LDKCOption_u64Z outbound_scid_alias_arg, struct LDKCOption_u64Z inbound_scid_alias_arg, uint64_t channel_value_satoshis_arg, struct LDKCOption_u64Z unspendable_punishment_reserve_arg, uint64_t user_channel_id_arg, uint64_t balance_msat_arg, uint64_t outbound_capacity_msat_arg, uint64_t next_outbound_htlc_limit_msat_arg, uint64_t inbound_capacity_msat_arg, struct LDKCOption_u32Z confirmations_required_arg, struct LDKCOption_u16Z force_close_spend_delay_arg, bool is_outbound_arg, bool is_channel_ready_arg, bool is_usable_arg, bool is_public_arg, struct LDKCOption_u64Z inbound_htlc_minimum_msat_arg, struct LDKCOption_u64Z inbound_htlc_maximum_msat_arg, struct LDKChannelConfig config_arg);
+       public static native long ChannelDetails_new(byte[] channel_id_arg, long counterparty_arg, long funding_txo_arg, long channel_type_arg, long short_channel_id_arg, long outbound_scid_alias_arg, long inbound_scid_alias_arg, long channel_value_satoshis_arg, long unspendable_punishment_reserve_arg, long user_channel_id_arg, long balance_msat_arg, long outbound_capacity_msat_arg, long next_outbound_htlc_limit_msat_arg, long inbound_capacity_msat_arg, long confirmations_required_arg, long force_close_spend_delay_arg, boolean is_outbound_arg, boolean is_channel_ready_arg, boolean is_usable_arg, boolean is_public_arg, long inbound_htlc_minimum_msat_arg, long inbound_htlc_maximum_msat_arg, long config_arg);
        // uintptr_t ChannelDetails_clone_ptr(LDKChannelDetails *NONNULL_PTR arg);
        public static native long ChannelDetails_clone_ptr(long arg);
        // struct LDKChannelDetails ChannelDetails_clone(const struct LDKChannelDetails *NONNULL_PTR orig);
@@ -4822,10 +5003,14 @@ public class bindings {
        public static native long ChannelManager_close_channel(long this_arg, byte[] channel_id, byte[] counterparty_node_id);
        // MUST_USE_RES struct LDKCResult_NoneAPIErrorZ ChannelManager_close_channel_with_target_feerate(const struct LDKChannelManager *NONNULL_PTR this_arg, const uint8_t (*channel_id)[32], struct LDKPublicKey counterparty_node_id, uint32_t target_feerate_sats_per_1000_weight);
        public static native long ChannelManager_close_channel_with_target_feerate(long this_arg, byte[] channel_id, byte[] counterparty_node_id, int target_feerate_sats_per_1000_weight);
-       // MUST_USE_RES struct LDKCResult_NoneAPIErrorZ ChannelManager_force_close_channel(const struct LDKChannelManager *NONNULL_PTR this_arg, const uint8_t (*channel_id)[32], struct LDKPublicKey counterparty_node_id);
-       public static native long ChannelManager_force_close_channel(long this_arg, byte[] channel_id, byte[] counterparty_node_id);
-       // void ChannelManager_force_close_all_channels(const struct LDKChannelManager *NONNULL_PTR this_arg);
-       public static native void ChannelManager_force_close_all_channels(long this_arg);
+       // MUST_USE_RES struct LDKCResult_NoneAPIErrorZ ChannelManager_force_close_broadcasting_latest_txn(const struct LDKChannelManager *NONNULL_PTR this_arg, const uint8_t (*channel_id)[32], struct LDKPublicKey counterparty_node_id);
+       public static native long ChannelManager_force_close_broadcasting_latest_txn(long this_arg, byte[] channel_id, byte[] counterparty_node_id);
+       // MUST_USE_RES struct LDKCResult_NoneAPIErrorZ ChannelManager_force_close_without_broadcasting_txn(const struct LDKChannelManager *NONNULL_PTR this_arg, const uint8_t (*channel_id)[32], struct LDKPublicKey counterparty_node_id);
+       public static native long ChannelManager_force_close_without_broadcasting_txn(long this_arg, byte[] channel_id, byte[] counterparty_node_id);
+       // void ChannelManager_force_close_all_channels_broadcasting_latest_txn(const struct LDKChannelManager *NONNULL_PTR this_arg);
+       public static native void ChannelManager_force_close_all_channels_broadcasting_latest_txn(long this_arg);
+       // void ChannelManager_force_close_all_channels_without_broadcasting_txn(const struct LDKChannelManager *NONNULL_PTR this_arg);
+       public static native void ChannelManager_force_close_all_channels_without_broadcasting_txn(long this_arg);
        // MUST_USE_RES struct LDKCResult_PaymentIdPaymentSendFailureZ ChannelManager_send_payment(const struct LDKChannelManager *NONNULL_PTR this_arg, const struct LDKRoute *NONNULL_PTR route, struct LDKThirtyTwoBytes payment_hash, struct LDKThirtyTwoBytes payment_secret);
        public static native long ChannelManager_send_payment(long this_arg, long route, byte[] payment_hash, byte[] payment_secret);
        // MUST_USE_RES struct LDKCResult_NonePaymentSendFailureZ ChannelManager_retry_payment(const struct LDKChannelManager *NONNULL_PTR this_arg, const struct LDKRoute *NONNULL_PTR route, struct LDKThirtyTwoBytes payment_id);
@@ -4834,10 +5019,14 @@ public class bindings {
        public static native void ChannelManager_abandon_payment(long this_arg, byte[] payment_id);
        // MUST_USE_RES struct LDKCResult_C2Tuple_PaymentHashPaymentIdZPaymentSendFailureZ ChannelManager_send_spontaneous_payment(const struct LDKChannelManager *NONNULL_PTR this_arg, const struct LDKRoute *NONNULL_PTR route, struct LDKThirtyTwoBytes payment_preimage);
        public static native long ChannelManager_send_spontaneous_payment(long this_arg, long route, byte[] payment_preimage);
+       // MUST_USE_RES struct LDKCResult_C2Tuple_PaymentHashPaymentIdZPaymentSendFailureZ ChannelManager_send_probe(const struct LDKChannelManager *NONNULL_PTR this_arg, struct LDKCVec_RouteHopZ hops);
+       public static native long ChannelManager_send_probe(long this_arg, long[] hops);
        // MUST_USE_RES struct LDKCResult_NoneAPIErrorZ ChannelManager_funding_transaction_generated(const struct LDKChannelManager *NONNULL_PTR this_arg, const uint8_t (*temporary_channel_id)[32], struct LDKPublicKey counterparty_node_id, struct LDKTransaction funding_transaction);
        public static native long ChannelManager_funding_transaction_generated(long this_arg, byte[] temporary_channel_id, byte[] counterparty_node_id, byte[] funding_transaction);
        // void ChannelManager_broadcast_node_announcement(const struct LDKChannelManager *NONNULL_PTR this_arg, struct LDKThreeBytes rgb, struct LDKThirtyTwoBytes alias, struct LDKCVec_NetAddressZ addresses);
        public static native void ChannelManager_broadcast_node_announcement(long this_arg, byte[] rgb, byte[] alias, long[] addresses);
+       // MUST_USE_RES struct LDKCResult_NoneAPIErrorZ ChannelManager_update_channel_config(const struct LDKChannelManager *NONNULL_PTR this_arg, struct LDKPublicKey counterparty_node_id, struct LDKCVec_ThirtyTwoBytesZ channel_ids, const struct LDKChannelConfig *NONNULL_PTR config);
+       public static native long ChannelManager_update_channel_config(long this_arg, byte[] counterparty_node_id, byte[][] channel_ids, long config);
        // void ChannelManager_process_pending_htlc_forwards(const struct LDKChannelManager *NONNULL_PTR this_arg);
        public static native void ChannelManager_process_pending_htlc_forwards(long this_arg);
        // void ChannelManager_timer_tick_occurred(const struct LDKChannelManager *NONNULL_PTR this_arg);
@@ -5488,6 +5677,8 @@ public class bindings {
        public static native long NetAddress_onion_v2(byte[] a);
        // struct LDKNetAddress NetAddress_onion_v3(struct LDKThirtyTwoBytes ed25519_pubkey, uint16_t checksum, uint8_t version, uint16_t port);
        public static native long NetAddress_onion_v3(byte[] ed25519_pubkey, short checksum, byte version, short port);
+       // struct LDKNetAddress NetAddress_hostname(struct LDKHostname hostname, uint16_t port);
+       public static native long NetAddress_hostname(long hostname, short port);
        // struct LDKCVec_u8Z NetAddress_write(const struct LDKNetAddress *NONNULL_PTR obj);
        public static native byte[] NetAddress_write(long obj);
        // struct LDKCResult_NetAddressDecodeErrorZ NetAddress_read(struct LDKu8slice ser);
@@ -5624,6 +5815,10 @@ public class bindings {
        public static native long UnsignedChannelUpdate_get_htlc_minimum_msat(long this_ptr);
        // void UnsignedChannelUpdate_set_htlc_minimum_msat(struct LDKUnsignedChannelUpdate *NONNULL_PTR this_ptr, uint64_t val);
        public static native void UnsignedChannelUpdate_set_htlc_minimum_msat(long this_ptr, long val);
+       // uint64_t UnsignedChannelUpdate_get_htlc_maximum_msat(const struct LDKUnsignedChannelUpdate *NONNULL_PTR this_ptr);
+       public static native long UnsignedChannelUpdate_get_htlc_maximum_msat(long this_ptr);
+       // void UnsignedChannelUpdate_set_htlc_maximum_msat(struct LDKUnsignedChannelUpdate *NONNULL_PTR this_ptr, uint64_t val);
+       public static native void UnsignedChannelUpdate_set_htlc_maximum_msat(long this_ptr, long val);
        // uint32_t UnsignedChannelUpdate_get_fee_base_msat(const struct LDKUnsignedChannelUpdate *NONNULL_PTR this_ptr);
        public static native int UnsignedChannelUpdate_get_fee_base_msat(long this_ptr);
        // void UnsignedChannelUpdate_set_fee_base_msat(struct LDKUnsignedChannelUpdate *NONNULL_PTR this_ptr, uint32_t val);
@@ -5634,6 +5829,8 @@ public class bindings {
        public static native void UnsignedChannelUpdate_set_fee_proportional_millionths(long this_ptr, int val);
        // void UnsignedChannelUpdate_set_excess_data(struct LDKUnsignedChannelUpdate *NONNULL_PTR this_ptr, struct LDKCVec_u8Z val);
        public static native void UnsignedChannelUpdate_set_excess_data(long this_ptr, byte[] val);
+       // MUST_USE_RES struct LDKUnsignedChannelUpdate UnsignedChannelUpdate_new(struct LDKThirtyTwoBytes chain_hash_arg, uint64_t short_channel_id_arg, uint32_t timestamp_arg, uint8_t flags_arg, uint16_t cltv_expiry_delta_arg, uint64_t htlc_minimum_msat_arg, uint64_t htlc_maximum_msat_arg, uint32_t fee_base_msat_arg, uint32_t fee_proportional_millionths_arg, struct LDKCVec_u8Z excess_data_arg);
+       public static native long UnsignedChannelUpdate_new(byte[] chain_hash_arg, long short_channel_id_arg, int timestamp_arg, byte flags_arg, short cltv_expiry_delta_arg, long htlc_minimum_msat_arg, long htlc_maximum_msat_arg, int fee_base_msat_arg, int fee_proportional_millionths_arg, byte[] excess_data_arg);
        // uintptr_t UnsignedChannelUpdate_clone_ptr(LDKUnsignedChannelUpdate *NONNULL_PTR arg);
        public static native long UnsignedChannelUpdate_clone_ptr(long arg);
        // struct LDKUnsignedChannelUpdate UnsignedChannelUpdate_clone(const struct LDKUnsignedChannelUpdate *NONNULL_PTR orig);
@@ -6810,9 +7007,9 @@ public class bindings {
        public static native long ChannelUpdateInfo_get_htlc_minimum_msat(long this_ptr);
        // void ChannelUpdateInfo_set_htlc_minimum_msat(struct LDKChannelUpdateInfo *NONNULL_PTR this_ptr, uint64_t val);
        public static native void ChannelUpdateInfo_set_htlc_minimum_msat(long this_ptr, long val);
-       // struct LDKCOption_u64Z ChannelUpdateInfo_get_htlc_maximum_msat(const struct LDKChannelUpdateInfo *NONNULL_PTR this_ptr);
+       // uint64_t ChannelUpdateInfo_get_htlc_maximum_msat(const struct LDKChannelUpdateInfo *NONNULL_PTR this_ptr);
        public static native long ChannelUpdateInfo_get_htlc_maximum_msat(long this_ptr);
-       // void ChannelUpdateInfo_set_htlc_maximum_msat(struct LDKChannelUpdateInfo *NONNULL_PTR this_ptr, struct LDKCOption_u64Z val);
+       // void ChannelUpdateInfo_set_htlc_maximum_msat(struct LDKChannelUpdateInfo *NONNULL_PTR this_ptr, uint64_t val);
        public static native void ChannelUpdateInfo_set_htlc_maximum_msat(long this_ptr, long val);
        // struct LDKRoutingFees ChannelUpdateInfo_get_fees(const struct LDKChannelUpdateInfo *NONNULL_PTR this_ptr);
        public static native long ChannelUpdateInfo_get_fees(long this_ptr);
@@ -6822,7 +7019,7 @@ public class bindings {
        public static native long ChannelUpdateInfo_get_last_update_message(long this_ptr);
        // void ChannelUpdateInfo_set_last_update_message(struct LDKChannelUpdateInfo *NONNULL_PTR this_ptr, struct LDKChannelUpdate val);
        public static native void ChannelUpdateInfo_set_last_update_message(long this_ptr, long val);
-       // MUST_USE_RES struct LDKChannelUpdateInfo ChannelUpdateInfo_new(uint32_t last_update_arg, bool enabled_arg, uint16_t cltv_expiry_delta_arg, uint64_t htlc_minimum_msat_arg, struct LDKCOption_u64Z htlc_maximum_msat_arg, struct LDKRoutingFees fees_arg, struct LDKChannelUpdate last_update_message_arg);
+       // MUST_USE_RES struct LDKChannelUpdateInfo ChannelUpdateInfo_new(uint32_t last_update_arg, bool enabled_arg, uint16_t cltv_expiry_delta_arg, uint64_t htlc_minimum_msat_arg, uint64_t htlc_maximum_msat_arg, struct LDKRoutingFees fees_arg, struct LDKChannelUpdate last_update_message_arg);
        public static native long ChannelUpdateInfo_new(int last_update_arg, boolean enabled_arg, short cltv_expiry_delta_arg, long htlc_minimum_msat_arg, long htlc_maximum_msat_arg, long fees_arg, long last_update_message_arg);
        // uintptr_t ChannelUpdateInfo_clone_ptr(LDKChannelUpdateInfo *NONNULL_PTR arg);
        public static native long ChannelUpdateInfo_clone_ptr(long arg);
@@ -6896,8 +7093,8 @@ public class bindings {
        public static native long EffectiveCapacity_exact_liquidity(long liquidity_msat);
        // struct LDKEffectiveCapacity EffectiveCapacity_maximum_htlc(uint64_t amount_msat);
        public static native long EffectiveCapacity_maximum_htlc(long amount_msat);
-       // struct LDKEffectiveCapacity EffectiveCapacity_total(uint64_t capacity_msat);
-       public static native long EffectiveCapacity_total(long capacity_msat);
+       // struct LDKEffectiveCapacity EffectiveCapacity_total(uint64_t capacity_msat, struct LDKCOption_u64Z htlc_maximum_msat);
+       public static native long EffectiveCapacity_total(long capacity_msat, long htlc_maximum_msat);
        // struct LDKEffectiveCapacity EffectiveCapacity_infinite(void);
        public static native long EffectiveCapacity_infinite();
        // struct LDKEffectiveCapacity EffectiveCapacity_unknown(void);
@@ -6942,18 +7139,18 @@ public class bindings {
        public static native byte[] NodeAnnouncementInfo_get_rgb(long this_ptr);
        // void NodeAnnouncementInfo_set_rgb(struct LDKNodeAnnouncementInfo *NONNULL_PTR this_ptr, struct LDKThreeBytes val);
        public static native void NodeAnnouncementInfo_set_rgb(long this_ptr, byte[] val);
-       // const uint8_t (*NodeAnnouncementInfo_get_alias(const struct LDKNodeAnnouncementInfo *NONNULL_PTR this_ptr))[32];
-       public static native byte[] NodeAnnouncementInfo_get_alias(long this_ptr);
-       // void NodeAnnouncementInfo_set_alias(struct LDKNodeAnnouncementInfo *NONNULL_PTR this_ptr, struct LDKThirtyTwoBytes val);
-       public static native void NodeAnnouncementInfo_set_alias(long this_ptr, byte[] val);
+       // struct LDKNodeAlias NodeAnnouncementInfo_get_alias(const struct LDKNodeAnnouncementInfo *NONNULL_PTR this_ptr);
+       public static native long NodeAnnouncementInfo_get_alias(long this_ptr);
+       // void NodeAnnouncementInfo_set_alias(struct LDKNodeAnnouncementInfo *NONNULL_PTR this_ptr, struct LDKNodeAlias val);
+       public static native void NodeAnnouncementInfo_set_alias(long this_ptr, long val);
        // void NodeAnnouncementInfo_set_addresses(struct LDKNodeAnnouncementInfo *NONNULL_PTR this_ptr, struct LDKCVec_NetAddressZ val);
        public static native void NodeAnnouncementInfo_set_addresses(long this_ptr, long[] val);
        // struct LDKNodeAnnouncement NodeAnnouncementInfo_get_announcement_message(const struct LDKNodeAnnouncementInfo *NONNULL_PTR this_ptr);
        public static native long NodeAnnouncementInfo_get_announcement_message(long this_ptr);
        // void NodeAnnouncementInfo_set_announcement_message(struct LDKNodeAnnouncementInfo *NONNULL_PTR this_ptr, struct LDKNodeAnnouncement val);
        public static native void NodeAnnouncementInfo_set_announcement_message(long this_ptr, long val);
-       // MUST_USE_RES struct LDKNodeAnnouncementInfo NodeAnnouncementInfo_new(struct LDKNodeFeatures features_arg, uint32_t last_update_arg, struct LDKThreeBytes rgb_arg, struct LDKThirtyTwoBytes alias_arg, struct LDKCVec_NetAddressZ addresses_arg, struct LDKNodeAnnouncement announcement_message_arg);
-       public static native long NodeAnnouncementInfo_new(long features_arg, int last_update_arg, byte[] rgb_arg, byte[] alias_arg, long[] addresses_arg, long announcement_message_arg);
+       // MUST_USE_RES struct LDKNodeAnnouncementInfo NodeAnnouncementInfo_new(struct LDKNodeFeatures features_arg, uint32_t last_update_arg, struct LDKThreeBytes rgb_arg, struct LDKNodeAlias alias_arg, struct LDKCVec_NetAddressZ addresses_arg, struct LDKNodeAnnouncement announcement_message_arg);
+       public static native long NodeAnnouncementInfo_new(long features_arg, int last_update_arg, byte[] rgb_arg, long alias_arg, long[] addresses_arg, long announcement_message_arg);
        // uintptr_t NodeAnnouncementInfo_clone_ptr(LDKNodeAnnouncementInfo *NONNULL_PTR arg);
        public static native long NodeAnnouncementInfo_clone_ptr(long arg);
        // struct LDKNodeAnnouncementInfo NodeAnnouncementInfo_clone(const struct LDKNodeAnnouncementInfo *NONNULL_PTR orig);
@@ -6962,6 +7159,22 @@ public class bindings {
        public static native byte[] NodeAnnouncementInfo_write(long obj);
        // struct LDKCResult_NodeAnnouncementInfoDecodeErrorZ NodeAnnouncementInfo_read(struct LDKu8slice ser);
        public static native long NodeAnnouncementInfo_read(byte[] ser);
+       // void NodeAlias_free(struct LDKNodeAlias this_obj);
+       public static native void NodeAlias_free(long this_obj);
+       // const uint8_t (*NodeAlias_get_a(const struct LDKNodeAlias *NONNULL_PTR this_ptr))[32];
+       public static native byte[] NodeAlias_get_a(long this_ptr);
+       // void NodeAlias_set_a(struct LDKNodeAlias *NONNULL_PTR this_ptr, struct LDKThirtyTwoBytes val);
+       public static native void NodeAlias_set_a(long this_ptr, byte[] val);
+       // MUST_USE_RES struct LDKNodeAlias NodeAlias_new(struct LDKThirtyTwoBytes a_arg);
+       public static native long NodeAlias_new(byte[] a_arg);
+       // uintptr_t NodeAlias_clone_ptr(LDKNodeAlias *NONNULL_PTR arg);
+       public static native long NodeAlias_clone_ptr(long arg);
+       // struct LDKNodeAlias NodeAlias_clone(const struct LDKNodeAlias *NONNULL_PTR orig);
+       public static native long NodeAlias_clone(long orig);
+       // struct LDKCVec_u8Z NodeAlias_write(const struct LDKNodeAlias *NONNULL_PTR obj);
+       public static native byte[] NodeAlias_write(long obj);
+       // struct LDKCResult_NodeAliasDecodeErrorZ NodeAlias_read(struct LDKu8slice ser);
+       public static native long NodeAlias_read(byte[] ser);
        // void NodeInfo_free(struct LDKNodeInfo this_obj);
        public static native void NodeInfo_free(long this_obj);
        // void NodeInfo_set_channels(struct LDKNodeInfo *NONNULL_PTR this_ptr, struct LDKCVec_u64Z val);
@@ -7018,6 +7231,10 @@ public class bindings {
        public static native long NetworkGraph_update_channel(long this_arg, long msg);
        // MUST_USE_RES struct LDKCResult_NoneLightningErrorZ NetworkGraph_update_channel_unsigned(const struct LDKNetworkGraph *NONNULL_PTR this_arg, const struct LDKUnsignedChannelUpdate *NONNULL_PTR msg);
        public static native long NetworkGraph_update_channel_unsigned(long this_arg, long msg);
+       // MUST_USE_RES struct LDKChannelInfo ReadOnlyNetworkGraph_channel(const struct LDKReadOnlyNetworkGraph *NONNULL_PTR this_arg, uint64_t short_channel_id);
+       public static native long ReadOnlyNetworkGraph_channel(long this_arg, long short_channel_id);
+       // MUST_USE_RES struct LDKNodeInfo ReadOnlyNetworkGraph_node(const struct LDKReadOnlyNetworkGraph *NONNULL_PTR this_arg, const struct LDKNodeId *NONNULL_PTR node_id);
+       public static native long ReadOnlyNetworkGraph_node(long this_arg, long node_id);
        // MUST_USE_RES struct LDKCOption_CVec_NetAddressZZ ReadOnlyNetworkGraph_get_addresses(const struct LDKReadOnlyNetworkGraph *NONNULL_PTR this_arg, struct LDKPublicKey pubkey);
        public static native long ReadOnlyNetworkGraph_get_addresses(long this_arg, byte[] pubkey);
        // void RouteHop_free(struct LDKRouteHop this_obj);
@@ -7134,8 +7351,18 @@ public class bindings {
        public static native int PaymentParameters_get_max_total_cltv_expiry_delta(long this_ptr);
        // void PaymentParameters_set_max_total_cltv_expiry_delta(struct LDKPaymentParameters *NONNULL_PTR this_ptr, uint32_t val);
        public static native void PaymentParameters_set_max_total_cltv_expiry_delta(long this_ptr, int val);
-       // MUST_USE_RES struct LDKPaymentParameters PaymentParameters_new(struct LDKPublicKey payee_pubkey_arg, struct LDKInvoiceFeatures features_arg, struct LDKCVec_RouteHintZ route_hints_arg, struct LDKCOption_u64Z expiry_time_arg, uint32_t max_total_cltv_expiry_delta_arg);
-       public static native long PaymentParameters_new(byte[] payee_pubkey_arg, long features_arg, long[] route_hints_arg, long expiry_time_arg, int max_total_cltv_expiry_delta_arg);
+       // uint8_t PaymentParameters_get_max_path_count(const struct LDKPaymentParameters *NONNULL_PTR this_ptr);
+       public static native byte PaymentParameters_get_max_path_count(long this_ptr);
+       // void PaymentParameters_set_max_path_count(struct LDKPaymentParameters *NONNULL_PTR this_ptr, uint8_t val);
+       public static native void PaymentParameters_set_max_path_count(long this_ptr, byte val);
+       // uint8_t PaymentParameters_get_max_channel_saturation_power_of_half(const struct LDKPaymentParameters *NONNULL_PTR this_ptr);
+       public static native byte PaymentParameters_get_max_channel_saturation_power_of_half(long this_ptr);
+       // void PaymentParameters_set_max_channel_saturation_power_of_half(struct LDKPaymentParameters *NONNULL_PTR this_ptr, uint8_t val);
+       public static native void PaymentParameters_set_max_channel_saturation_power_of_half(long this_ptr, byte val);
+       // void PaymentParameters_set_previously_failed_channels(struct LDKPaymentParameters *NONNULL_PTR this_ptr, struct LDKCVec_u64Z val);
+       public static native void PaymentParameters_set_previously_failed_channels(long this_ptr, long[] val);
+       // MUST_USE_RES struct LDKPaymentParameters PaymentParameters_new(struct LDKPublicKey payee_pubkey_arg, struct LDKInvoiceFeatures features_arg, struct LDKCVec_RouteHintZ route_hints_arg, struct LDKCOption_u64Z expiry_time_arg, uint32_t max_total_cltv_expiry_delta_arg, uint8_t max_path_count_arg, uint8_t max_channel_saturation_power_of_half_arg, struct LDKCVec_u64Z previously_failed_channels_arg);
+       public static native long PaymentParameters_new(byte[] payee_pubkey_arg, long features_arg, long[] route_hints_arg, long expiry_time_arg, int max_total_cltv_expiry_delta_arg, byte max_path_count_arg, byte max_channel_saturation_power_of_half_arg, long[] previously_failed_channels_arg);
        // uintptr_t PaymentParameters_clone_ptr(LDKPaymentParameters *NONNULL_PTR arg);
        public static native long PaymentParameters_clone_ptr(long arg);
        // struct LDKPaymentParameters PaymentParameters_clone(const struct LDKPaymentParameters *NONNULL_PTR orig);
@@ -7268,6 +7495,10 @@ public class bindings {
        public static native long ProbabilisticScoringParameters_get_base_penalty_msat(long this_ptr);
        // void ProbabilisticScoringParameters_set_base_penalty_msat(struct LDKProbabilisticScoringParameters *NONNULL_PTR this_ptr, uint64_t val);
        public static native void ProbabilisticScoringParameters_set_base_penalty_msat(long this_ptr, long val);
+       // uint64_t ProbabilisticScoringParameters_get_base_penalty_amount_multiplier_msat(const struct LDKProbabilisticScoringParameters *NONNULL_PTR this_ptr);
+       public static native long ProbabilisticScoringParameters_get_base_penalty_amount_multiplier_msat(long this_ptr);
+       // void ProbabilisticScoringParameters_set_base_penalty_amount_multiplier_msat(struct LDKProbabilisticScoringParameters *NONNULL_PTR this_ptr, uint64_t val);
+       public static native void ProbabilisticScoringParameters_set_base_penalty_amount_multiplier_msat(long this_ptr, long val);
        // uint64_t ProbabilisticScoringParameters_get_liquidity_penalty_multiplier_msat(const struct LDKProbabilisticScoringParameters *NONNULL_PTR this_ptr);
        public static native long ProbabilisticScoringParameters_get_liquidity_penalty_multiplier_msat(long this_ptr);
        // void ProbabilisticScoringParameters_set_liquidity_penalty_multiplier_msat(struct LDKProbabilisticScoringParameters *NONNULL_PTR this_ptr, uint64_t val);
@@ -7276,12 +7507,18 @@ public class bindings {
        public static native long ProbabilisticScoringParameters_get_liquidity_offset_half_life(long this_ptr);
        // void ProbabilisticScoringParameters_set_liquidity_offset_half_life(struct LDKProbabilisticScoringParameters *NONNULL_PTR this_ptr, uint64_t val);
        public static native void ProbabilisticScoringParameters_set_liquidity_offset_half_life(long this_ptr, long val);
-       // uint64_t ProbabilisticScoringParameters_get_amount_penalty_multiplier_msat(const struct LDKProbabilisticScoringParameters *NONNULL_PTR this_ptr);
-       public static native long ProbabilisticScoringParameters_get_amount_penalty_multiplier_msat(long this_ptr);
-       // void ProbabilisticScoringParameters_set_amount_penalty_multiplier_msat(struct LDKProbabilisticScoringParameters *NONNULL_PTR this_ptr, uint64_t val);
-       public static native void ProbabilisticScoringParameters_set_amount_penalty_multiplier_msat(long this_ptr, long val);
-       // MUST_USE_RES struct LDKProbabilisticScoringParameters ProbabilisticScoringParameters_new(uint64_t base_penalty_msat_arg, uint64_t liquidity_penalty_multiplier_msat_arg, uint64_t liquidity_offset_half_life_arg, uint64_t amount_penalty_multiplier_msat_arg);
-       public static native long ProbabilisticScoringParameters_new(long base_penalty_msat_arg, long liquidity_penalty_multiplier_msat_arg, long liquidity_offset_half_life_arg, long amount_penalty_multiplier_msat_arg);
+       // uint64_t ProbabilisticScoringParameters_get_liquidity_penalty_amount_multiplier_msat(const struct LDKProbabilisticScoringParameters *NONNULL_PTR this_ptr);
+       public static native long ProbabilisticScoringParameters_get_liquidity_penalty_amount_multiplier_msat(long this_ptr);
+       // void ProbabilisticScoringParameters_set_liquidity_penalty_amount_multiplier_msat(struct LDKProbabilisticScoringParameters *NONNULL_PTR this_ptr, uint64_t val);
+       public static native void ProbabilisticScoringParameters_set_liquidity_penalty_amount_multiplier_msat(long this_ptr, long val);
+       // uint64_t ProbabilisticScoringParameters_get_anti_probing_penalty_msat(const struct LDKProbabilisticScoringParameters *NONNULL_PTR this_ptr);
+       public static native long ProbabilisticScoringParameters_get_anti_probing_penalty_msat(long this_ptr);
+       // void ProbabilisticScoringParameters_set_anti_probing_penalty_msat(struct LDKProbabilisticScoringParameters *NONNULL_PTR this_ptr, uint64_t val);
+       public static native void ProbabilisticScoringParameters_set_anti_probing_penalty_msat(long this_ptr, long val);
+       // uint64_t ProbabilisticScoringParameters_get_considered_impossible_penalty_msat(const struct LDKProbabilisticScoringParameters *NONNULL_PTR this_ptr);
+       public static native long ProbabilisticScoringParameters_get_considered_impossible_penalty_msat(long this_ptr);
+       // void ProbabilisticScoringParameters_set_considered_impossible_penalty_msat(struct LDKProbabilisticScoringParameters *NONNULL_PTR this_ptr, uint64_t val);
+       public static native void ProbabilisticScoringParameters_set_considered_impossible_penalty_msat(long this_ptr, long val);
        // uintptr_t ProbabilisticScoringParameters_clone_ptr(LDKProbabilisticScoringParameters *NONNULL_PTR arg);
        public static native long ProbabilisticScoringParameters_clone_ptr(long arg);
        // struct LDKProbabilisticScoringParameters ProbabilisticScoringParameters_clone(const struct LDKProbabilisticScoringParameters *NONNULL_PTR orig);
@@ -7290,6 +7527,20 @@ public class bindings {
        public static native long ProbabilisticScorer_new(long params, long network_graph, long logger);
        // void ProbabilisticScorer_debug_log_liquidity_stats(const struct LDKProbabilisticScorer *NONNULL_PTR this_arg);
        public static native void ProbabilisticScorer_debug_log_liquidity_stats(long this_arg);
+       // MUST_USE_RES struct LDKCOption_C2Tuple_u64u64ZZ ProbabilisticScorer_estimated_channel_liquidity_range(const struct LDKProbabilisticScorer *NONNULL_PTR this_arg, uint64_t scid, const struct LDKNodeId *NONNULL_PTR target);
+       public static native long ProbabilisticScorer_estimated_channel_liquidity_range(long this_arg, long scid, long target);
+       // void ProbabilisticScorer_add_banned(struct LDKProbabilisticScorer *NONNULL_PTR this_arg, const struct LDKNodeId *NONNULL_PTR node_id);
+       public static native void ProbabilisticScorer_add_banned(long this_arg, long node_id);
+       // void ProbabilisticScorer_remove_banned(struct LDKProbabilisticScorer *NONNULL_PTR this_arg, const struct LDKNodeId *NONNULL_PTR node_id);
+       public static native void ProbabilisticScorer_remove_banned(long this_arg, long node_id);
+       // void ProbabilisticScorer_set_manual_penalty(struct LDKProbabilisticScorer *NONNULL_PTR this_arg, const struct LDKNodeId *NONNULL_PTR node_id, uint64_t penalty);
+       public static native void ProbabilisticScorer_set_manual_penalty(long this_arg, long node_id, long penalty);
+       // void ProbabilisticScorer_remove_manual_penalty(struct LDKProbabilisticScorer *NONNULL_PTR this_arg, const struct LDKNodeId *NONNULL_PTR node_id);
+       public static native void ProbabilisticScorer_remove_manual_penalty(long this_arg, long node_id);
+       // void ProbabilisticScorer_clear_manual_penalties(struct LDKProbabilisticScorer *NONNULL_PTR this_arg);
+       public static native void ProbabilisticScorer_clear_manual_penalties(long this_arg);
+       // void ProbabilisticScoringParameters_add_banned_from_list(struct LDKProbabilisticScoringParameters *NONNULL_PTR this_arg, struct LDKCVec_NodeIdZ node_ids);
+       public static native void ProbabilisticScoringParameters_add_banned_from_list(long this_arg, long[] node_ids);
        // MUST_USE_RES struct LDKProbabilisticScoringParameters ProbabilisticScoringParameters_default(void);
        public static native long ProbabilisticScoringParameters_default();
        // struct LDKScore ProbabilisticScorer_as_Score(const struct LDKProbabilisticScorer *NONNULL_PTR this_arg);