Clean up assertions, new Clone impls, ThreeBytes
[ldk-java] / src / main / java / org / ldk / impl / bindings.java
index 46a0f028f198f0489bce5465ff075784d7b33f53..ceecb73da3817946a0784f88140e55fc9cdc3c89 100644 (file)
@@ -26,8 +26,6 @@ public class bindings {
        public static native long vec_slice_len(long vec);
        public static native long new_empty_slice_vec();
 
-       public static native long LDKSecretKey_new();
-
        static { LDKAccessError.values(); /* Force enum statics to run */ }
        static { LDKChannelMonitorUpdateErr.values(); /* Force enum statics to run */ }
        static { LDKConfirmationTarget.values(); /* Force enum statics to run */ }
@@ -47,8 +45,7 @@ public class bindings {
        public static native long LDKC2TupleTempl_ThirtyTwoBytes__CVecTempl_TxOut_new(byte[] a, long b);
        public static native long LDKC2TupleTempl_u64__u64_new(long a, long b);
        public static native VecOrSliceDef LDKCVecTempl_Signature_arr_info(long vec_ptr);
-       public static native long LDKCVecTempl_Signature_new(long[] elems);
-       public static native long LDKC2TupleTempl_Signature__CVecTempl_Signature_new(long a, long b);
+       public static native long LDKC2TupleTempl_Signature__CVecTempl_Signature_new(byte[] a, long b);
        public static native boolean LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ_result_ok(long arg);
        public static native long LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ_get_inner(long arg);
        public static native boolean LDKCResult_SignatureNoneZ_result_ok(long arg);
@@ -87,7 +84,7 @@ public class bindings {
        public static native long LDKC3TupleTempl_ChannelAnnouncement__ChannelUpdate__ChannelUpdate_new(long a, long b, long c);
        public static native boolean LDKCResult_NonePeerHandleErrorZ_result_ok(long arg);
        public static native long LDKCResult_NonePeerHandleErrorZ_get_inner(long arg);
-       public static native long LDKC2TupleTempl_HTLCOutputInCommitment__Signature_new(long a, long b);
+       public static native long LDKC2TupleTempl_HTLCOutputInCommitment__Signature_new(long a, byte[] b);
        public static class LDKSpendableOutputDescriptor {
                private LDKSpendableOutputDescriptor() {}
                public final static class StaticOutput extends LDKSpendableOutputDescriptor {
@@ -283,8 +280,8 @@ public class bindings {
        }
        public static native long LDKMessageSendEventsProvider_new(LDKMessageSendEventsProvider impl);
        public static native LDKMessageSendEventsProvider LDKMessageSendEventsProvider_get_obj_from_jcalls(long val);
-       // LDKCVec_MessageSendEventZ LDKMessageSendEventsProvider_call_get_and_clear_pending_msg_events LDKMessageSendEventsProvider* arg
-       public static native long LDKMessageSendEventsProvider_call_get_and_clear_pending_msg_events(long arg);
+       // LDKCVec_MessageSendEventZ MessageSendEventsProvider_call_get_and_clear_pending_msg_events LDKMessageSendEventsProvider* this_arg
+       public static native long MessageSendEventsProvider_call_get_and_clear_pending_msg_events(long this_arg);
        public static native VecOrSliceDef LDKCVecTempl_Event_arr_info(long vec_ptr);
        public static native long LDKCVecTempl_Event_new(long[] elems);
        public interface LDKEventsProvider {
@@ -292,8 +289,8 @@ public class bindings {
        }
        public static native long LDKEventsProvider_new(LDKEventsProvider impl);
        public static native LDKEventsProvider LDKEventsProvider_get_obj_from_jcalls(long val);
-       // LDKCVec_EventZ LDKEventsProvider_call_get_and_clear_pending_events LDKEventsProvider* arg
-       public static native long LDKEventsProvider_call_get_and_clear_pending_events(long arg);
+       // LDKCVec_EventZ EventsProvider_call_get_and_clear_pending_events LDKEventsProvider* this_arg
+       public static native long EventsProvider_call_get_and_clear_pending_events(long this_arg);
        public interface LDKLogger {
                 void log(String record);
        }
@@ -306,8 +303,8 @@ public class bindings {
        }
        public static native long LDKAccess_new(LDKAccess impl);
        public static native LDKAccess LDKAccess_get_obj_from_jcalls(long val);
-       // LDKCResult_TxOutAccessErrorZ LDKAccess_call_get_utxo LDKAccess* arg, const uint8_t (*genesis_hash)[32], uint64_t short_channel_id
-       public static native long LDKAccess_call_get_utxo(long arg, byte[] genesis_hash, long short_channel_id);
+       // LDKCResult_TxOutAccessErrorZ Access_call_get_utxo LDKAccess* this_arg, const uint8_t (*genesis_hash)[32], uint64_t short_channel_id
+       public static native long Access_call_get_utxo(long this_arg, byte[] genesis_hash, long short_channel_id);
        public static native long[] LDKCVecTempl_HTLCOutputInCommitment_arr_info(long vec_ptr);
        public static native long LDKCVecTempl_HTLCOutputInCommitment_new(long[] elems);
        public interface LDKChannelKeys {
@@ -325,28 +322,28 @@ public class bindings {
        }
        public static native long LDKChannelKeys_new(LDKChannelKeys impl);
        public static native LDKChannelKeys LDKChannelKeys_get_obj_from_jcalls(long val);
-       // LDKPublicKey LDKChannelKeys_call_get_per_commitment_point LDKChannelKeys* arg, uint64_t idx
-       public static native byte[] LDKChannelKeys_call_get_per_commitment_point(long arg, long idx);
-       // LDKThirtyTwoBytes LDKChannelKeys_call_release_commitment_secret LDKChannelKeys* arg, uint64_t idx
-       public static native byte[] LDKChannelKeys_call_release_commitment_secret(long arg, long idx);
-       // LDKC2Tuple_u64u64Z LDKChannelKeys_call_key_derivation_params LDKChannelKeys* arg
-       public static native long LDKChannelKeys_call_key_derivation_params(long arg);
-       // LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ LDKChannelKeys_call_sign_counterparty_commitment LDKChannelKeys* arg, uint32_t feerate_per_kw, LDKTransaction commitment_tx, const LDKPreCalculatedTxCreationKeys *keys, LDKCVec_HTLCOutputInCommitmentZ htlcs
-       public static native long LDKChannelKeys_call_sign_counterparty_commitment(long arg, int feerate_per_kw, long commitment_tx, long keys, long htlcs);
-       // LDKCResult_SignatureNoneZ LDKChannelKeys_call_sign_holder_commitment LDKChannelKeys* arg, const LDKHolderCommitmentTransaction *holder_commitment_tx
-       public static native long LDKChannelKeys_call_sign_holder_commitment(long arg, long holder_commitment_tx);
-       // LDKCResult_CVec_SignatureZNoneZ LDKChannelKeys_call_sign_holder_commitment_htlc_transactions LDKChannelKeys* arg, const LDKHolderCommitmentTransaction *holder_commitment_tx
-       public static native long LDKChannelKeys_call_sign_holder_commitment_htlc_transactions(long arg, long holder_commitment_tx);
-       // LDKCResult_SignatureNoneZ LDKChannelKeys_call_sign_justice_transaction LDKChannelKeys* arg, LDKTransaction justice_tx, uintptr_t input, uint64_t amount, const uint8_t (*per_commitment_key)[32], const LDKHTLCOutputInCommitment *htlc
-       public static native long LDKChannelKeys_call_sign_justice_transaction(long arg, long justice_tx, long input, long amount, byte[] per_commitment_key, long htlc);
-       // LDKCResult_SignatureNoneZ LDKChannelKeys_call_sign_counterparty_htlc_transaction LDKChannelKeys* arg, LDKTransaction htlc_tx, uintptr_t input, uint64_t amount, LDKPublicKey per_commitment_point, const LDKHTLCOutputInCommitment *htlc
-       public static native long LDKChannelKeys_call_sign_counterparty_htlc_transaction(long arg, long htlc_tx, long input, long amount, byte[] per_commitment_point, long htlc);
-       // LDKCResult_SignatureNoneZ LDKChannelKeys_call_sign_closing_transaction LDKChannelKeys* arg, LDKTransaction closing_tx
-       public static native long LDKChannelKeys_call_sign_closing_transaction(long arg, long closing_tx);
-       // LDKCResult_SignatureNoneZ LDKChannelKeys_call_sign_channel_announcement LDKChannelKeys* arg, const LDKUnsignedChannelAnnouncement *msg
-       public static native long LDKChannelKeys_call_sign_channel_announcement(long arg, long msg);
-       // void LDKChannelKeys_call_on_accept LDKChannelKeys* arg, const LDKChannelPublicKeys *channel_points, uint16_t counterparty_selected_contest_delay, uint16_t holder_selected_contest_delay
-       public static native void LDKChannelKeys_call_on_accept(long arg, long channel_points, short counterparty_selected_contest_delay, short holder_selected_contest_delay);
+       // LDKPublicKey ChannelKeys_call_get_per_commitment_point LDKChannelKeys* this_arg, uint64_t idx
+       public static native byte[] ChannelKeys_call_get_per_commitment_point(long this_arg, long idx);
+       // LDKThirtyTwoBytes ChannelKeys_call_release_commitment_secret LDKChannelKeys* this_arg, uint64_t idx
+       public static native byte[] ChannelKeys_call_release_commitment_secret(long this_arg, long idx);
+       // LDKC2Tuple_u64u64Z ChannelKeys_call_key_derivation_params LDKChannelKeys* this_arg
+       public static native long ChannelKeys_call_key_derivation_params(long this_arg);
+       // LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ ChannelKeys_call_sign_counterparty_commitment LDKChannelKeys* this_arg, uint32_t feerate_per_kw, LDKTransaction commitment_tx, const LDKPreCalculatedTxCreationKeys *keys, LDKCVec_HTLCOutputInCommitmentZ htlcs
+       public static native long ChannelKeys_call_sign_counterparty_commitment(long this_arg, int feerate_per_kw, long commitment_tx, long keys, long htlcs);
+       // LDKCResult_SignatureNoneZ ChannelKeys_call_sign_holder_commitment LDKChannelKeys* this_arg, const LDKHolderCommitmentTransaction *holder_commitment_tx
+       public static native long ChannelKeys_call_sign_holder_commitment(long this_arg, long holder_commitment_tx);
+       // LDKCResult_CVec_SignatureZNoneZ ChannelKeys_call_sign_holder_commitment_htlc_transactions LDKChannelKeys* this_arg, const LDKHolderCommitmentTransaction *holder_commitment_tx
+       public static native long ChannelKeys_call_sign_holder_commitment_htlc_transactions(long this_arg, long holder_commitment_tx);
+       // LDKCResult_SignatureNoneZ ChannelKeys_call_sign_justice_transaction LDKChannelKeys* this_arg, LDKTransaction justice_tx, uintptr_t input, uint64_t amount, const uint8_t (*per_commitment_key)[32], const LDKHTLCOutputInCommitment *htlc
+       public static native long ChannelKeys_call_sign_justice_transaction(long this_arg, long justice_tx, long input, long amount, byte[] per_commitment_key, long htlc);
+       // LDKCResult_SignatureNoneZ ChannelKeys_call_sign_counterparty_htlc_transaction LDKChannelKeys* this_arg, LDKTransaction htlc_tx, uintptr_t input, uint64_t amount, LDKPublicKey per_commitment_point, const LDKHTLCOutputInCommitment *htlc
+       public static native long ChannelKeys_call_sign_counterparty_htlc_transaction(long this_arg, long htlc_tx, long input, long amount, byte[] per_commitment_point, long htlc);
+       // LDKCResult_SignatureNoneZ ChannelKeys_call_sign_closing_transaction LDKChannelKeys* this_arg, LDKTransaction closing_tx
+       public static native long ChannelKeys_call_sign_closing_transaction(long this_arg, long closing_tx);
+       // LDKCResult_SignatureNoneZ ChannelKeys_call_sign_channel_announcement LDKChannelKeys* this_arg, const LDKUnsignedChannelAnnouncement *msg
+       public static native long ChannelKeys_call_sign_channel_announcement(long this_arg, long msg);
+       // void ChannelKeys_call_on_accept LDKChannelKeys* this_arg, const LDKChannelPublicKeys *channel_points, uint16_t counterparty_selected_contest_delay, uint16_t holder_selected_contest_delay
+       public static native void ChannelKeys_call_on_accept(long this_arg, long channel_points, short counterparty_selected_contest_delay, short holder_selected_contest_delay);
        public static native long[] LDKCVecTempl_MonitorEvent_arr_info(long vec_ptr);
        public static native long LDKCVecTempl_MonitorEvent_new(long[] elems);
        public interface LDKWatch {
@@ -356,36 +353,36 @@ public class bindings {
        }
        public static native long LDKWatch_new(LDKWatch impl);
        public static native LDKWatch LDKWatch_get_obj_from_jcalls(long val);
-       // LDKCResult_NoneChannelMonitorUpdateErrZ LDKWatch_call_watch_channel LDKWatch* arg, LDKOutPoint funding_txo, LDKChannelMonitor monitor
-       public static native long LDKWatch_call_watch_channel(long arg, long funding_txo, long monitor);
-       // LDKCResult_NoneChannelMonitorUpdateErrZ LDKWatch_call_update_channel LDKWatch* arg, LDKOutPoint funding_txo, LDKChannelMonitorUpdate update
-       public static native long LDKWatch_call_update_channel(long arg, long funding_txo, long update);
-       // LDKCVec_MonitorEventZ LDKWatch_call_release_pending_monitor_events LDKWatch* arg
-       public static native long LDKWatch_call_release_pending_monitor_events(long arg);
+       // LDKCResult_NoneChannelMonitorUpdateErrZ Watch_call_watch_channel LDKWatch* this_arg, LDKOutPoint funding_txo, LDKChannelMonitor monitor
+       public static native long Watch_call_watch_channel(long this_arg, long funding_txo, long monitor);
+       // LDKCResult_NoneChannelMonitorUpdateErrZ Watch_call_update_channel LDKWatch* this_arg, LDKOutPoint funding_txo, LDKChannelMonitorUpdate update
+       public static native long Watch_call_update_channel(long this_arg, long funding_txo, long update);
+       // LDKCVec_MonitorEventZ Watch_call_release_pending_monitor_events LDKWatch* this_arg
+       public static native long Watch_call_release_pending_monitor_events(long this_arg);
        public interface LDKFilter {
                 void register_tx(byte[] txid, long script_pubkey);
                 void register_output(long outpoint, long script_pubkey);
        }
        public static native long LDKFilter_new(LDKFilter impl);
        public static native LDKFilter LDKFilter_get_obj_from_jcalls(long val);
-       // void LDKFilter_call_register_tx LDKFilter* arg, const uint8_t (*txid)[32], LDKu8slice script_pubkey
-       public static native void LDKFilter_call_register_tx(long arg, byte[] txid, long script_pubkey);
-       // void LDKFilter_call_register_output LDKFilter* arg, const LDKOutPoint *outpoint, LDKu8slice script_pubkey
-       public static native void LDKFilter_call_register_output(long arg, long outpoint, long script_pubkey);
+       // void Filter_call_register_tx LDKFilter* this_arg, const uint8_t (*txid)[32], LDKu8slice script_pubkey
+       public static native void Filter_call_register_tx(long this_arg, byte[] txid, long script_pubkey);
+       // void Filter_call_register_output LDKFilter* this_arg, const LDKOutPoint *outpoint, LDKu8slice script_pubkey
+       public static native void Filter_call_register_output(long this_arg, long outpoint, long script_pubkey);
        public interface LDKBroadcasterInterface {
                 void broadcast_transaction(long tx);
        }
        public static native long LDKBroadcasterInterface_new(LDKBroadcasterInterface impl);
        public static native LDKBroadcasterInterface LDKBroadcasterInterface_get_obj_from_jcalls(long val);
-       // void LDKBroadcasterInterface_call_broadcast_transaction LDKBroadcasterInterface* arg, LDKTransaction tx
-       public static native void LDKBroadcasterInterface_call_broadcast_transaction(long arg, long tx);
+       // void BroadcasterInterface_call_broadcast_transaction LDKBroadcasterInterface* this_arg, LDKTransaction tx
+       public static native void BroadcasterInterface_call_broadcast_transaction(long this_arg, long tx);
        public interface LDKFeeEstimator {
                 int get_est_sat_per_1000_weight(LDKConfirmationTarget confirmation_target);
        }
        public static native long LDKFeeEstimator_new(LDKFeeEstimator impl);
        public static native LDKFeeEstimator LDKFeeEstimator_get_obj_from_jcalls(long val);
-       // uint32_t LDKFeeEstimator_call_get_est_sat_per_1000_weight LDKFeeEstimator* arg, LDKConfirmationTarget confirmation_target
-       public static native int LDKFeeEstimator_call_get_est_sat_per_1000_weight(long arg, LDKConfirmationTarget confirmation_target);
+       // uint32_t FeeEstimator_call_get_est_sat_per_1000_weight LDKFeeEstimator* this_arg, LDKConfirmationTarget confirmation_target
+       public static native int FeeEstimator_call_get_est_sat_per_1000_weight(long this_arg, LDKConfirmationTarget confirmation_target);
        public static native VecOrSliceDef LDKCVecTempl_C2TupleTempl_usize__Transaction_arr_info(long vec_ptr);
        public static native long LDKCVecTempl_C2TupleTempl_usize__Transaction_new(long[] elems);
        public static native VecOrSliceDef LDKCVecTempl_Transaction_arr_info(long vec_ptr);
@@ -393,7 +390,7 @@ public class bindings {
        public static native VecOrSliceDef LDKCVecTempl_C2TupleTempl_ThirtyTwoBytes__CVecTempl_TxOut_arr_info(long vec_ptr);
        public static native long LDKCVecTempl_C2TupleTempl_ThirtyTwoBytes__CVecTempl_TxOut_new(long[] elems);
        public interface LDKKeysInterface {
-                long get_node_secret();
+                byte[] get_node_secret();
                 long get_destination_script();
                 byte[] get_shutdown_pubkey();
                 long get_channel_keys(boolean inbound, long channel_value_satoshis);
@@ -401,16 +398,16 @@ public class bindings {
        }
        public static native long LDKKeysInterface_new(LDKKeysInterface impl);
        public static native LDKKeysInterface LDKKeysInterface_get_obj_from_jcalls(long val);
-       // LDKSecretKey LDKKeysInterface_call_get_node_secret LDKKeysInterface* arg
-       public static native long LDKKeysInterface_call_get_node_secret(long arg);
-       // LDKCVec_u8Z LDKKeysInterface_call_get_destination_script LDKKeysInterface* arg
-       public static native long LDKKeysInterface_call_get_destination_script(long arg);
-       // LDKPublicKey LDKKeysInterface_call_get_shutdown_pubkey LDKKeysInterface* arg
-       public static native byte[] LDKKeysInterface_call_get_shutdown_pubkey(long arg);
-       // LDKChannelKeys LDKKeysInterface_call_get_channel_keys LDKKeysInterface* arg, bool inbound, uint64_t channel_value_satoshis
-       public static native long LDKKeysInterface_call_get_channel_keys(long arg, boolean inbound, long channel_value_satoshis);
-       // LDKThirtyTwoBytes LDKKeysInterface_call_get_secure_random_bytes LDKKeysInterface* arg
-       public static native byte[] LDKKeysInterface_call_get_secure_random_bytes(long arg);
+       // LDKSecretKey KeysInterface_call_get_node_secret LDKKeysInterface* this_arg
+       public static native byte[] KeysInterface_call_get_node_secret(long this_arg);
+       // LDKCVec_u8Z KeysInterface_call_get_destination_script LDKKeysInterface* this_arg
+       public static native long KeysInterface_call_get_destination_script(long this_arg);
+       // LDKPublicKey KeysInterface_call_get_shutdown_pubkey LDKKeysInterface* this_arg
+       public static native byte[] KeysInterface_call_get_shutdown_pubkey(long this_arg);
+       // LDKChannelKeys KeysInterface_call_get_channel_keys LDKKeysInterface* this_arg, bool inbound, uint64_t channel_value_satoshis
+       public static native long KeysInterface_call_get_channel_keys(long this_arg, boolean inbound, long channel_value_satoshis);
+       // LDKThirtyTwoBytes KeysInterface_call_get_secure_random_bytes LDKKeysInterface* this_arg
+       public static native byte[] KeysInterface_call_get_secure_random_bytes(long this_arg);
        public static native long[] LDKCVecTempl_ChannelDetails_arr_info(long vec_ptr);
        public static native long LDKCVecTempl_ChannelDetails_new(long[] elems);
        public static class LDKNetAddress {
@@ -466,44 +463,44 @@ public class bindings {
        }
        public static native long LDKChannelMessageHandler_new(LDKChannelMessageHandler impl, LDKMessageSendEventsProvider MessageSendEventsProvider);
        public static native LDKChannelMessageHandler LDKChannelMessageHandler_get_obj_from_jcalls(long val);
-       // void LDKChannelMessageHandler_call_handle_open_channel LDKChannelMessageHandler* arg, LDKPublicKey their_node_id, LDKInitFeatures their_features, const LDKOpenChannel *msg
-       public static native void LDKChannelMessageHandler_call_handle_open_channel(long arg, byte[] their_node_id, long their_features, long msg);
-       // void LDKChannelMessageHandler_call_handle_accept_channel LDKChannelMessageHandler* arg, LDKPublicKey their_node_id, LDKInitFeatures their_features, const LDKAcceptChannel *msg
-       public static native void LDKChannelMessageHandler_call_handle_accept_channel(long arg, byte[] their_node_id, long their_features, long msg);
-       // void LDKChannelMessageHandler_call_handle_funding_created LDKChannelMessageHandler* arg, LDKPublicKey their_node_id, const LDKFundingCreated *msg
-       public static native void LDKChannelMessageHandler_call_handle_funding_created(long arg, byte[] their_node_id, long msg);
-       // void LDKChannelMessageHandler_call_handle_funding_signed LDKChannelMessageHandler* arg, LDKPublicKey their_node_id, const LDKFundingSigned *msg
-       public static native void LDKChannelMessageHandler_call_handle_funding_signed(long arg, byte[] their_node_id, long msg);
-       // void LDKChannelMessageHandler_call_handle_funding_locked LDKChannelMessageHandler* arg, LDKPublicKey their_node_id, const LDKFundingLocked *msg
-       public static native void LDKChannelMessageHandler_call_handle_funding_locked(long arg, byte[] their_node_id, long msg);
-       // void LDKChannelMessageHandler_call_handle_shutdown LDKChannelMessageHandler* arg, LDKPublicKey their_node_id, const LDKShutdown *msg
-       public static native void LDKChannelMessageHandler_call_handle_shutdown(long arg, byte[] their_node_id, long msg);
-       // void LDKChannelMessageHandler_call_handle_closing_signed LDKChannelMessageHandler* arg, LDKPublicKey their_node_id, const LDKClosingSigned *msg
-       public static native void LDKChannelMessageHandler_call_handle_closing_signed(long arg, byte[] their_node_id, long msg);
-       // void LDKChannelMessageHandler_call_handle_update_add_htlc LDKChannelMessageHandler* arg, LDKPublicKey their_node_id, const LDKUpdateAddHTLC *msg
-       public static native void LDKChannelMessageHandler_call_handle_update_add_htlc(long arg, byte[] their_node_id, long msg);
-       // void LDKChannelMessageHandler_call_handle_update_fulfill_htlc LDKChannelMessageHandler* arg, LDKPublicKey their_node_id, const LDKUpdateFulfillHTLC *msg
-       public static native void LDKChannelMessageHandler_call_handle_update_fulfill_htlc(long arg, byte[] their_node_id, long msg);
-       // void LDKChannelMessageHandler_call_handle_update_fail_htlc LDKChannelMessageHandler* arg, LDKPublicKey their_node_id, const LDKUpdateFailHTLC *msg
-       public static native void LDKChannelMessageHandler_call_handle_update_fail_htlc(long arg, byte[] their_node_id, long msg);
-       // void LDKChannelMessageHandler_call_handle_update_fail_malformed_htlc LDKChannelMessageHandler* arg, LDKPublicKey their_node_id, const LDKUpdateFailMalformedHTLC *msg
-       public static native void LDKChannelMessageHandler_call_handle_update_fail_malformed_htlc(long arg, byte[] their_node_id, long msg);
-       // void LDKChannelMessageHandler_call_handle_commitment_signed LDKChannelMessageHandler* arg, LDKPublicKey their_node_id, const LDKCommitmentSigned *msg
-       public static native void LDKChannelMessageHandler_call_handle_commitment_signed(long arg, byte[] their_node_id, long msg);
-       // void LDKChannelMessageHandler_call_handle_revoke_and_ack LDKChannelMessageHandler* arg, LDKPublicKey their_node_id, const LDKRevokeAndACK *msg
-       public static native void LDKChannelMessageHandler_call_handle_revoke_and_ack(long arg, byte[] their_node_id, long msg);
-       // void LDKChannelMessageHandler_call_handle_update_fee LDKChannelMessageHandler* arg, LDKPublicKey their_node_id, const LDKUpdateFee *msg
-       public static native void LDKChannelMessageHandler_call_handle_update_fee(long arg, byte[] their_node_id, long msg);
-       // void LDKChannelMessageHandler_call_handle_announcement_signatures LDKChannelMessageHandler* arg, LDKPublicKey their_node_id, const LDKAnnouncementSignatures *msg
-       public static native void LDKChannelMessageHandler_call_handle_announcement_signatures(long arg, byte[] their_node_id, long msg);
-       // void LDKChannelMessageHandler_call_peer_disconnected LDKChannelMessageHandler* arg, LDKPublicKey their_node_id, bool no_connection_possible
-       public static native void LDKChannelMessageHandler_call_peer_disconnected(long arg, byte[] their_node_id, boolean no_connection_possible);
-       // void LDKChannelMessageHandler_call_peer_connected LDKChannelMessageHandler* arg, LDKPublicKey their_node_id, const LDKInit *msg
-       public static native void LDKChannelMessageHandler_call_peer_connected(long arg, byte[] their_node_id, long msg);
-       // void LDKChannelMessageHandler_call_handle_channel_reestablish LDKChannelMessageHandler* arg, LDKPublicKey their_node_id, const LDKChannelReestablish *msg
-       public static native void LDKChannelMessageHandler_call_handle_channel_reestablish(long arg, byte[] their_node_id, long msg);
-       // void LDKChannelMessageHandler_call_handle_error LDKChannelMessageHandler* arg, LDKPublicKey their_node_id, const LDKErrorMessage *msg
-       public static native void LDKChannelMessageHandler_call_handle_error(long arg, byte[] their_node_id, long msg);
+       // void ChannelMessageHandler_call_handle_open_channel LDKChannelMessageHandler* this_arg, LDKPublicKey their_node_id, LDKInitFeatures their_features, const LDKOpenChannel *msg
+       public static native void ChannelMessageHandler_call_handle_open_channel(long this_arg, byte[] their_node_id, long their_features, long msg);
+       // void ChannelMessageHandler_call_handle_accept_channel LDKChannelMessageHandler* this_arg, LDKPublicKey their_node_id, LDKInitFeatures their_features, const LDKAcceptChannel *msg
+       public static native void ChannelMessageHandler_call_handle_accept_channel(long this_arg, byte[] their_node_id, long their_features, long msg);
+       // void ChannelMessageHandler_call_handle_funding_created LDKChannelMessageHandler* this_arg, LDKPublicKey their_node_id, const LDKFundingCreated *msg
+       public static native void ChannelMessageHandler_call_handle_funding_created(long this_arg, byte[] their_node_id, long msg);
+       // void ChannelMessageHandler_call_handle_funding_signed LDKChannelMessageHandler* this_arg, LDKPublicKey their_node_id, const LDKFundingSigned *msg
+       public static native void ChannelMessageHandler_call_handle_funding_signed(long this_arg, byte[] their_node_id, long msg);
+       // void ChannelMessageHandler_call_handle_funding_locked LDKChannelMessageHandler* this_arg, LDKPublicKey their_node_id, const LDKFundingLocked *msg
+       public static native void ChannelMessageHandler_call_handle_funding_locked(long this_arg, byte[] their_node_id, long msg);
+       // void ChannelMessageHandler_call_handle_shutdown LDKChannelMessageHandler* this_arg, LDKPublicKey their_node_id, const LDKShutdown *msg
+       public static native void ChannelMessageHandler_call_handle_shutdown(long this_arg, byte[] their_node_id, long msg);
+       // void ChannelMessageHandler_call_handle_closing_signed LDKChannelMessageHandler* this_arg, LDKPublicKey their_node_id, const LDKClosingSigned *msg
+       public static native void ChannelMessageHandler_call_handle_closing_signed(long this_arg, byte[] their_node_id, long msg);
+       // void ChannelMessageHandler_call_handle_update_add_htlc LDKChannelMessageHandler* this_arg, LDKPublicKey their_node_id, const LDKUpdateAddHTLC *msg
+       public static native void ChannelMessageHandler_call_handle_update_add_htlc(long this_arg, byte[] their_node_id, long msg);
+       // void ChannelMessageHandler_call_handle_update_fulfill_htlc LDKChannelMessageHandler* this_arg, LDKPublicKey their_node_id, const LDKUpdateFulfillHTLC *msg
+       public static native void ChannelMessageHandler_call_handle_update_fulfill_htlc(long this_arg, byte[] their_node_id, long msg);
+       // void ChannelMessageHandler_call_handle_update_fail_htlc LDKChannelMessageHandler* this_arg, LDKPublicKey their_node_id, const LDKUpdateFailHTLC *msg
+       public static native void ChannelMessageHandler_call_handle_update_fail_htlc(long this_arg, byte[] their_node_id, long msg);
+       // void ChannelMessageHandler_call_handle_update_fail_malformed_htlc LDKChannelMessageHandler* this_arg, LDKPublicKey their_node_id, const LDKUpdateFailMalformedHTLC *msg
+       public static native void ChannelMessageHandler_call_handle_update_fail_malformed_htlc(long this_arg, byte[] their_node_id, long msg);
+       // void ChannelMessageHandler_call_handle_commitment_signed LDKChannelMessageHandler* this_arg, LDKPublicKey their_node_id, const LDKCommitmentSigned *msg
+       public static native void ChannelMessageHandler_call_handle_commitment_signed(long this_arg, byte[] their_node_id, long msg);
+       // void ChannelMessageHandler_call_handle_revoke_and_ack LDKChannelMessageHandler* this_arg, LDKPublicKey their_node_id, const LDKRevokeAndACK *msg
+       public static native void ChannelMessageHandler_call_handle_revoke_and_ack(long this_arg, byte[] their_node_id, long msg);
+       // void ChannelMessageHandler_call_handle_update_fee LDKChannelMessageHandler* this_arg, LDKPublicKey their_node_id, const LDKUpdateFee *msg
+       public static native void ChannelMessageHandler_call_handle_update_fee(long this_arg, byte[] their_node_id, long msg);
+       // void ChannelMessageHandler_call_handle_announcement_signatures LDKChannelMessageHandler* this_arg, LDKPublicKey their_node_id, const LDKAnnouncementSignatures *msg
+       public static native void ChannelMessageHandler_call_handle_announcement_signatures(long this_arg, byte[] their_node_id, long msg);
+       // void ChannelMessageHandler_call_peer_disconnected LDKChannelMessageHandler* this_arg, LDKPublicKey their_node_id, bool no_connection_possible
+       public static native void ChannelMessageHandler_call_peer_disconnected(long this_arg, byte[] their_node_id, boolean no_connection_possible);
+       // void ChannelMessageHandler_call_peer_connected LDKChannelMessageHandler* this_arg, LDKPublicKey their_node_id, const LDKInit *msg
+       public static native void ChannelMessageHandler_call_peer_connected(long this_arg, byte[] their_node_id, long msg);
+       // void ChannelMessageHandler_call_handle_channel_reestablish LDKChannelMessageHandler* this_arg, LDKPublicKey their_node_id, const LDKChannelReestablish *msg
+       public static native void ChannelMessageHandler_call_handle_channel_reestablish(long this_arg, byte[] their_node_id, long msg);
+       // void ChannelMessageHandler_call_handle_error LDKChannelMessageHandler* this_arg, LDKPublicKey their_node_id, const LDKErrorMessage *msg
+       public static native void ChannelMessageHandler_call_handle_error(long this_arg, byte[] their_node_id, long msg);
        public static native long[] LDKCVecTempl_ChannelMonitor_arr_info(long vec_ptr);
        public static native long LDKCVecTempl_ChannelMonitor_new(long[] elems);
        public static native VecOrSliceDef LDKCVecTempl_u64_arr_info(long vec_ptr);
@@ -533,20 +530,20 @@ public class bindings {
        }
        public static native long LDKRoutingMessageHandler_new(LDKRoutingMessageHandler impl);
        public static native LDKRoutingMessageHandler LDKRoutingMessageHandler_get_obj_from_jcalls(long val);
-       // LDKCResult_boolLightningErrorZ LDKRoutingMessageHandler_call_handle_node_announcement LDKRoutingMessageHandler* arg, const LDKNodeAnnouncement *msg
-       public static native long LDKRoutingMessageHandler_call_handle_node_announcement(long arg, long msg);
-       // LDKCResult_boolLightningErrorZ LDKRoutingMessageHandler_call_handle_channel_announcement LDKRoutingMessageHandler* arg, const LDKChannelAnnouncement *msg
-       public static native long LDKRoutingMessageHandler_call_handle_channel_announcement(long arg, long msg);
-       // LDKCResult_boolLightningErrorZ LDKRoutingMessageHandler_call_handle_channel_update LDKRoutingMessageHandler* arg, const LDKChannelUpdate *msg
-       public static native long LDKRoutingMessageHandler_call_handle_channel_update(long arg, long msg);
-       // void LDKRoutingMessageHandler_call_handle_htlc_fail_channel_update LDKRoutingMessageHandler* arg, const LDKHTLCFailChannelUpdate *update
-       public static native void LDKRoutingMessageHandler_call_handle_htlc_fail_channel_update(long arg, long update);
-       // LDKCVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ LDKRoutingMessageHandler_call_get_next_channel_announcements LDKRoutingMessageHandler* arg, uint64_t starting_point, uint8_t batch_amount
-       public static native long LDKRoutingMessageHandler_call_get_next_channel_announcements(long arg, long starting_point, byte batch_amount);
-       // LDKCVec_NodeAnnouncementZ LDKRoutingMessageHandler_call_get_next_node_announcements LDKRoutingMessageHandler* arg, LDKPublicKey starting_point, uint8_t batch_amount
-       public static native long LDKRoutingMessageHandler_call_get_next_node_announcements(long arg, byte[] starting_point, byte batch_amount);
-       // bool LDKRoutingMessageHandler_call_should_request_full_sync LDKRoutingMessageHandler* arg, LDKPublicKey node_id
-       public static native boolean LDKRoutingMessageHandler_call_should_request_full_sync(long arg, byte[] node_id);
+       // LDKCResult_boolLightningErrorZ RoutingMessageHandler_call_handle_node_announcement LDKRoutingMessageHandler* this_arg, const LDKNodeAnnouncement *msg
+       public static native long RoutingMessageHandler_call_handle_node_announcement(long this_arg, long msg);
+       // LDKCResult_boolLightningErrorZ RoutingMessageHandler_call_handle_channel_announcement LDKRoutingMessageHandler* this_arg, const LDKChannelAnnouncement *msg
+       public static native long RoutingMessageHandler_call_handle_channel_announcement(long this_arg, long msg);
+       // LDKCResult_boolLightningErrorZ RoutingMessageHandler_call_handle_channel_update LDKRoutingMessageHandler* this_arg, const LDKChannelUpdate *msg
+       public static native long RoutingMessageHandler_call_handle_channel_update(long this_arg, long msg);
+       // void RoutingMessageHandler_call_handle_htlc_fail_channel_update LDKRoutingMessageHandler* this_arg, const LDKHTLCFailChannelUpdate *update
+       public static native void RoutingMessageHandler_call_handle_htlc_fail_channel_update(long this_arg, long update);
+       // LDKCVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ RoutingMessageHandler_call_get_next_channel_announcements LDKRoutingMessageHandler* this_arg, uint64_t starting_point, uint8_t batch_amount
+       public static native long RoutingMessageHandler_call_get_next_channel_announcements(long this_arg, long starting_point, byte batch_amount);
+       // LDKCVec_NodeAnnouncementZ RoutingMessageHandler_call_get_next_node_announcements LDKRoutingMessageHandler* this_arg, LDKPublicKey starting_point, uint8_t batch_amount
+       public static native long RoutingMessageHandler_call_get_next_node_announcements(long this_arg, byte[] starting_point, byte batch_amount);
+       // bool RoutingMessageHandler_call_should_request_full_sync LDKRoutingMessageHandler* this_arg, LDKPublicKey node_id
+       public static native boolean RoutingMessageHandler_call_should_request_full_sync(long this_arg, byte[] node_id);
        public interface LDKSocketDescriptor {
                 long send_data(long data, boolean resume_read);
                 void disconnect_socket();
@@ -555,12 +552,12 @@ public class bindings {
        }
        public static native long LDKSocketDescriptor_new(LDKSocketDescriptor impl);
        public static native LDKSocketDescriptor LDKSocketDescriptor_get_obj_from_jcalls(long val);
-       // uintptr_t LDKSocketDescriptor_call_send_data LDKSocketDescriptor* arg, LDKu8slice data, bool resume_read
-       public static native long LDKSocketDescriptor_call_send_data(long arg, long data, boolean resume_read);
-       // void LDKSocketDescriptor_call_disconnect_socket LDKSocketDescriptor* arg
-       public static native void LDKSocketDescriptor_call_disconnect_socket(long arg);
-       // uint64_t LDKSocketDescriptor_call_hash LDKSocketDescriptor* arg
-       public static native long LDKSocketDescriptor_call_hash(long arg);
+       // uintptr_t SocketDescriptor_call_send_data LDKSocketDescriptor* this_arg, LDKu8slice data, bool resume_read
+       public static native long SocketDescriptor_call_send_data(long this_arg, long data, boolean resume_read);
+       // void SocketDescriptor_call_disconnect_socket LDKSocketDescriptor* this_arg
+       public static native void SocketDescriptor_call_disconnect_socket(long this_arg);
+       // uint64_t SocketDescriptor_call_hash LDKSocketDescriptor* this_arg
+       public static native long SocketDescriptor_call_hash(long this_arg);
        public static native VecOrSliceDef LDKCVecTempl_PublicKey_arr_info(long vec_ptr);
        public static native boolean LDKCResult_CVec_u8ZPeerHandleErrorZ_result_ok(long arg);
        public static native long LDKCResult_CVec_u8ZPeerHandleErrorZ_get_inner(long arg);
@@ -647,11 +644,11 @@ public class bindings {
        // extern const void (*CResult_SecretKeySecpErrorZ_free)(LDKCResult_SecretKeySecpErrorZ);
        public static native void CResult_SecretKeySecpErrorZ_free(long arg);
        // extern const LDKCResult_SecretKeySecpErrorZ (*CResult_SecretKeySecpErrorZ_ok)(LDKSecretKey);
-       public static native long CResult_SecretKeySecpErrorZ_ok(long arg);
+       public static native long CResult_SecretKeySecpErrorZ_ok(byte[] arg);
        // extern const void (*CResult_SignatureNoneZ_free)(LDKCResult_SignatureNoneZ);
        public static native void CResult_SignatureNoneZ_free(long arg);
        // extern const LDKCResult_SignatureNoneZ (*CResult_SignatureNoneZ_ok)(LDKSignature);
-       public static native long CResult_SignatureNoneZ_ok(long arg);
+       public static native long CResult_SignatureNoneZ_ok(byte[] arg);
        // extern const LDKCResult_TxCreationKeysSecpErrorZ (*CResult_TxCreationKeysSecpErrorZ_err)(LDKSecp256k1Error);
        public static native long CResult_TxCreationKeysSecpErrorZ_err(LDKSecp256k1Error arg);
        // extern const void (*CResult_TxCreationKeysSecpErrorZ_free)(LDKCResult_TxCreationKeysSecpErrorZ);
@@ -745,7 +742,7 @@ public class bindings {
        // LDKC2Tuple_u64u64Z C2Tuple_u64u64Z_new(uint64_t a, uint64_t b);
        public static native long C2Tuple_u64u64Z_new(long a, long b);
        // LDKC2Tuple_SignatureCVec_SignatureZZ C2Tuple_SignatureCVec_SignatureZZ_new(LDKSignature a, LDKCVec_SignatureZ b);
-       public static native long C2Tuple_SignatureCVec_SignatureZZ_new(long a, long b);
+       public static native long C2Tuple_SignatureCVec_SignatureZZ_new(byte[] a, long b);
        // LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ_err(void);
        public static native long CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ_err();
        // LDKCResult_SignatureNoneZ CResult_SignatureNoneZ_err(void);
@@ -761,7 +758,7 @@ public class bindings {
        // LDKCResult_NonePeerHandleErrorZ CResult_NonePeerHandleErrorZ_ok(void);
        public static native long CResult_NonePeerHandleErrorZ_ok();
        // LDKC2Tuple_HTLCOutputInCommitmentSignatureZ C2Tuple_HTLCOutputInCommitmentSignatureZ_new(LDKHTLCOutputInCommitment a, LDKSignature b);
-       public static native long C2Tuple_HTLCOutputInCommitmentSignatureZ_new(long a, long b);
+       public static native long C2Tuple_HTLCOutputInCommitmentSignatureZ_new(long a, byte[] b);
        // void Event_free(LDKEvent this_ptr);
        public static native void Event_free(long this_ptr);
        // void MessageSendEvent_free(LDKMessageSendEvent this_ptr);
@@ -985,29 +982,29 @@ public class bindings {
        // const uint8_t (*InMemoryChannelKeys_get_funding_key(const LDKInMemoryChannelKeys *this_ptr))[32];
        public static native byte[] InMemoryChannelKeys_get_funding_key(long this_ptr);
        // void InMemoryChannelKeys_set_funding_key(LDKInMemoryChannelKeys *this_ptr, LDKSecretKey val);
-       public static native void InMemoryChannelKeys_set_funding_key(long this_ptr, long val);
+       public static native void InMemoryChannelKeys_set_funding_key(long this_ptr, byte[] val);
        // const uint8_t (*InMemoryChannelKeys_get_revocation_base_key(const LDKInMemoryChannelKeys *this_ptr))[32];
        public static native byte[] InMemoryChannelKeys_get_revocation_base_key(long this_ptr);
        // void InMemoryChannelKeys_set_revocation_base_key(LDKInMemoryChannelKeys *this_ptr, LDKSecretKey val);
-       public static native void InMemoryChannelKeys_set_revocation_base_key(long this_ptr, long val);
+       public static native void InMemoryChannelKeys_set_revocation_base_key(long this_ptr, byte[] val);
        // const uint8_t (*InMemoryChannelKeys_get_payment_key(const LDKInMemoryChannelKeys *this_ptr))[32];
        public static native byte[] InMemoryChannelKeys_get_payment_key(long this_ptr);
        // void InMemoryChannelKeys_set_payment_key(LDKInMemoryChannelKeys *this_ptr, LDKSecretKey val);
-       public static native void InMemoryChannelKeys_set_payment_key(long this_ptr, long val);
+       public static native void InMemoryChannelKeys_set_payment_key(long this_ptr, byte[] val);
        // const uint8_t (*InMemoryChannelKeys_get_delayed_payment_base_key(const LDKInMemoryChannelKeys *this_ptr))[32];
        public static native byte[] InMemoryChannelKeys_get_delayed_payment_base_key(long this_ptr);
        // void InMemoryChannelKeys_set_delayed_payment_base_key(LDKInMemoryChannelKeys *this_ptr, LDKSecretKey val);
-       public static native void InMemoryChannelKeys_set_delayed_payment_base_key(long this_ptr, long val);
+       public static native void InMemoryChannelKeys_set_delayed_payment_base_key(long this_ptr, byte[] val);
        // const uint8_t (*InMemoryChannelKeys_get_htlc_base_key(const LDKInMemoryChannelKeys *this_ptr))[32];
        public static native byte[] InMemoryChannelKeys_get_htlc_base_key(long this_ptr);
        // void InMemoryChannelKeys_set_htlc_base_key(LDKInMemoryChannelKeys *this_ptr, LDKSecretKey val);
-       public static native void InMemoryChannelKeys_set_htlc_base_key(long this_ptr, long val);
+       public static native void InMemoryChannelKeys_set_htlc_base_key(long this_ptr, byte[] val);
        // const uint8_t (*InMemoryChannelKeys_get_commitment_seed(const LDKInMemoryChannelKeys *this_ptr))[32];
        public static native byte[] InMemoryChannelKeys_get_commitment_seed(long this_ptr);
        // void InMemoryChannelKeys_set_commitment_seed(LDKInMemoryChannelKeys *this_ptr, LDKThirtyTwoBytes val);
        public static native void InMemoryChannelKeys_set_commitment_seed(long this_ptr, byte[] val);
        // MUST_USE_RES LDKInMemoryChannelKeys InMemoryChannelKeys_new(LDKSecretKey funding_key, LDKSecretKey revocation_base_key, LDKSecretKey payment_key, LDKSecretKey delayed_payment_base_key, LDKSecretKey htlc_base_key, LDKThirtyTwoBytes commitment_seed, uint64_t channel_value_satoshis, LDKC2Tuple_u64u64Z key_derivation_params);
-       public static native long InMemoryChannelKeys_new(long funding_key, long revocation_base_key, long payment_key, long delayed_payment_base_key, long htlc_base_key, byte[] commitment_seed, long channel_value_satoshis, long key_derivation_params);
+       public static native long InMemoryChannelKeys_new(byte[] funding_key, byte[] revocation_base_key, byte[] payment_key, byte[] delayed_payment_base_key, byte[] htlc_base_key, byte[] commitment_seed, long channel_value_satoshis, long key_derivation_params);
        // MUST_USE_RES LDKChannelPublicKeys InMemoryChannelKeys_counterparty_pubkeys(const LDKInMemoryChannelKeys *this_arg);
        public static native long InMemoryChannelKeys_counterparty_pubkeys(long this_arg);
        // MUST_USE_RES uint16_t InMemoryChannelKeys_counterparty_selected_contest_delay(const LDKInMemoryChannelKeys *this_arg);
@@ -1032,6 +1029,8 @@ public class bindings {
        public static native void ChannelManager_free(long this_ptr);
        // void ChannelDetails_free(LDKChannelDetails this_ptr);
        public static native void ChannelDetails_free(long this_ptr);
+       // LDKChannelDetails ChannelDetails_clone(const LDKChannelDetails *orig);
+       public static native long ChannelDetails_clone(long orig);
        // const uint8_t (*ChannelDetails_get_channel_id(const LDKChannelDetails *this_ptr))[32];
        public static native byte[] ChannelDetails_get_channel_id(long this_ptr);
        // void ChannelDetails_set_channel_id(LDKChannelDetails *this_ptr, LDKThirtyTwoBytes val);
@@ -1085,7 +1084,7 @@ public class bindings {
        // void ChannelManager_funding_transaction_generated(const LDKChannelManager *this_arg, const uint8_t (*temporary_channel_id)[32], LDKOutPoint funding_txo);
        public static native void ChannelManager_funding_transaction_generated(long this_arg, byte[] temporary_channel_id, long funding_txo);
        // void ChannelManager_broadcast_node_announcement(const LDKChannelManager *this_arg, LDKThreeBytes rgb, LDKThirtyTwoBytes alias, LDKCVec_NetAddressZ addresses);
-       public static native void ChannelManager_broadcast_node_announcement(long this_arg, long rgb, byte[] alias, long addresses);
+       public static native void ChannelManager_broadcast_node_announcement(long this_arg, byte[] rgb, byte[] alias, long addresses);
        // void ChannelManager_process_pending_htlc_forwards(const LDKChannelManager *this_arg);
        public static native void ChannelManager_process_pending_htlc_forwards(long this_arg);
        // void ChannelManager_timer_chan_freshness_every_min(const LDKChannelManager *this_arg);
@@ -1140,6 +1139,8 @@ public class bindings {
        public static native void DecodeError_free(long this_ptr);
        // void Init_free(LDKInit this_ptr);
        public static native void Init_free(long this_ptr);
+       // LDKInit Init_clone(const LDKInit *orig);
+       public static native long Init_clone(long orig);
        // void ErrorMessage_free(LDKErrorMessage this_ptr);
        public static native void ErrorMessage_free(long this_ptr);
        // LDKErrorMessage ErrorMessage_clone(const LDKErrorMessage *orig);
@@ -1156,6 +1157,8 @@ public class bindings {
        public static native long ErrorMessage_new(byte[] channel_id_arg, long data_arg);
        // void Ping_free(LDKPing this_ptr);
        public static native void Ping_free(long this_ptr);
+       // LDKPing Ping_clone(const LDKPing *orig);
+       public static native long Ping_clone(long orig);
        // uint16_t Ping_get_ponglen(const LDKPing *this_ptr);
        public static native short Ping_get_ponglen(long this_ptr);
        // void Ping_set_ponglen(LDKPing *this_ptr, uint16_t val);
@@ -1168,6 +1171,8 @@ public class bindings {
        public static native long Ping_new(short ponglen_arg, short byteslen_arg);
        // void Pong_free(LDKPong this_ptr);
        public static native void Pong_free(long this_ptr);
+       // LDKPong Pong_clone(const LDKPong *orig);
+       public static native long Pong_clone(long orig);
        // uint16_t Pong_get_byteslen(const LDKPong *this_ptr);
        public static native short Pong_get_byteslen(long this_ptr);
        // void Pong_set_byteslen(LDKPong *this_ptr, uint16_t val);
@@ -1327,11 +1332,11 @@ public class bindings {
        // void FundingCreated_set_funding_output_index(LDKFundingCreated *this_ptr, uint16_t val);
        public static native void FundingCreated_set_funding_output_index(long this_ptr, short val);
        // LDKSignature FundingCreated_get_signature(const LDKFundingCreated *this_ptr);
-       public static native long FundingCreated_get_signature(long this_ptr);
+       public static native byte[] FundingCreated_get_signature(long this_ptr);
        // void FundingCreated_set_signature(LDKFundingCreated *this_ptr, LDKSignature val);
-       public static native void FundingCreated_set_signature(long this_ptr, long val);
+       public static native void FundingCreated_set_signature(long this_ptr, byte[] val);
        // MUST_USE_RES LDKFundingCreated FundingCreated_new(LDKThirtyTwoBytes temporary_channel_id_arg, LDKThirtyTwoBytes funding_txid_arg, uint16_t funding_output_index_arg, LDKSignature signature_arg);
-       public static native long FundingCreated_new(byte[] temporary_channel_id_arg, byte[] funding_txid_arg, short funding_output_index_arg, long signature_arg);
+       public static native long FundingCreated_new(byte[] temporary_channel_id_arg, byte[] funding_txid_arg, short funding_output_index_arg, byte[] signature_arg);
        // void FundingSigned_free(LDKFundingSigned this_ptr);
        public static native void FundingSigned_free(long this_ptr);
        // LDKFundingSigned FundingSigned_clone(const LDKFundingSigned *orig);
@@ -1341,11 +1346,11 @@ public class bindings {
        // void FundingSigned_set_channel_id(LDKFundingSigned *this_ptr, LDKThirtyTwoBytes val);
        public static native void FundingSigned_set_channel_id(long this_ptr, byte[] val);
        // LDKSignature FundingSigned_get_signature(const LDKFundingSigned *this_ptr);
-       public static native long FundingSigned_get_signature(long this_ptr);
+       public static native byte[] FundingSigned_get_signature(long this_ptr);
        // void FundingSigned_set_signature(LDKFundingSigned *this_ptr, LDKSignature val);
-       public static native void FundingSigned_set_signature(long this_ptr, long val);
+       public static native void FundingSigned_set_signature(long this_ptr, byte[] val);
        // MUST_USE_RES LDKFundingSigned FundingSigned_new(LDKThirtyTwoBytes channel_id_arg, LDKSignature signature_arg);
-       public static native long FundingSigned_new(byte[] channel_id_arg, long signature_arg);
+       public static native long FundingSigned_new(byte[] channel_id_arg, byte[] signature_arg);
        // void FundingLocked_free(LDKFundingLocked this_ptr);
        public static native void FundingLocked_free(long this_ptr);
        // LDKFundingLocked FundingLocked_clone(const LDKFundingLocked *orig);
@@ -1387,11 +1392,11 @@ public class bindings {
        // void ClosingSigned_set_fee_satoshis(LDKClosingSigned *this_ptr, uint64_t val);
        public static native void ClosingSigned_set_fee_satoshis(long this_ptr, long val);
        // LDKSignature ClosingSigned_get_signature(const LDKClosingSigned *this_ptr);
-       public static native long ClosingSigned_get_signature(long this_ptr);
+       public static native byte[] ClosingSigned_get_signature(long this_ptr);
        // void ClosingSigned_set_signature(LDKClosingSigned *this_ptr, LDKSignature val);
-       public static native void ClosingSigned_set_signature(long this_ptr, long val);
+       public static native void ClosingSigned_set_signature(long this_ptr, byte[] val);
        // MUST_USE_RES LDKClosingSigned ClosingSigned_new(LDKThirtyTwoBytes channel_id_arg, uint64_t fee_satoshis_arg, LDKSignature signature_arg);
-       public static native long ClosingSigned_new(byte[] channel_id_arg, long fee_satoshis_arg, long signature_arg);
+       public static native long ClosingSigned_new(byte[] channel_id_arg, long fee_satoshis_arg, byte[] signature_arg);
        // void UpdateAddHTLC_free(LDKUpdateAddHTLC this_ptr);
        public static native void UpdateAddHTLC_free(long this_ptr);
        // LDKUpdateAddHTLC UpdateAddHTLC_clone(const LDKUpdateAddHTLC *orig);
@@ -1471,13 +1476,13 @@ public class bindings {
        // void CommitmentSigned_set_channel_id(LDKCommitmentSigned *this_ptr, LDKThirtyTwoBytes val);
        public static native void CommitmentSigned_set_channel_id(long this_ptr, byte[] val);
        // LDKSignature CommitmentSigned_get_signature(const LDKCommitmentSigned *this_ptr);
-       public static native long CommitmentSigned_get_signature(long this_ptr);
+       public static native byte[] CommitmentSigned_get_signature(long this_ptr);
        // void CommitmentSigned_set_signature(LDKCommitmentSigned *this_ptr, LDKSignature val);
-       public static native void CommitmentSigned_set_signature(long this_ptr, long val);
+       public static native void CommitmentSigned_set_signature(long this_ptr, byte[] val);
        // void CommitmentSigned_set_htlc_signatures(LDKCommitmentSigned *this_ptr, LDKCVec_SignatureZ val);
        public static native void CommitmentSigned_set_htlc_signatures(long this_ptr, long val);
        // MUST_USE_RES LDKCommitmentSigned CommitmentSigned_new(LDKThirtyTwoBytes channel_id_arg, LDKSignature signature_arg, LDKCVec_SignatureZ htlc_signatures_arg);
-       public static native long CommitmentSigned_new(byte[] channel_id_arg, long signature_arg, long htlc_signatures_arg);
+       public static native long CommitmentSigned_new(byte[] channel_id_arg, byte[] signature_arg, long htlc_signatures_arg);
        // void RevokeAndACK_free(LDKRevokeAndACK this_ptr);
        public static native void RevokeAndACK_free(long this_ptr);
        // LDKRevokeAndACK RevokeAndACK_clone(const LDKRevokeAndACK *orig);
@@ -1553,15 +1558,15 @@ public class bindings {
        // void AnnouncementSignatures_set_short_channel_id(LDKAnnouncementSignatures *this_ptr, uint64_t val);
        public static native void AnnouncementSignatures_set_short_channel_id(long this_ptr, long val);
        // LDKSignature AnnouncementSignatures_get_node_signature(const LDKAnnouncementSignatures *this_ptr);
-       public static native long AnnouncementSignatures_get_node_signature(long this_ptr);
+       public static native byte[] AnnouncementSignatures_get_node_signature(long this_ptr);
        // void AnnouncementSignatures_set_node_signature(LDKAnnouncementSignatures *this_ptr, LDKSignature val);
-       public static native void AnnouncementSignatures_set_node_signature(long this_ptr, long val);
+       public static native void AnnouncementSignatures_set_node_signature(long this_ptr, byte[] val);
        // LDKSignature AnnouncementSignatures_get_bitcoin_signature(const LDKAnnouncementSignatures *this_ptr);
-       public static native long AnnouncementSignatures_get_bitcoin_signature(long this_ptr);
+       public static native byte[] AnnouncementSignatures_get_bitcoin_signature(long this_ptr);
        // void AnnouncementSignatures_set_bitcoin_signature(LDKAnnouncementSignatures *this_ptr, LDKSignature val);
-       public static native void AnnouncementSignatures_set_bitcoin_signature(long this_ptr, long val);
+       public static native void AnnouncementSignatures_set_bitcoin_signature(long this_ptr, byte[] val);
        // MUST_USE_RES LDKAnnouncementSignatures AnnouncementSignatures_new(LDKThirtyTwoBytes channel_id_arg, uint64_t short_channel_id_arg, LDKSignature node_signature_arg, LDKSignature bitcoin_signature_arg);
-       public static native long AnnouncementSignatures_new(byte[] channel_id_arg, long short_channel_id_arg, long node_signature_arg, long bitcoin_signature_arg);
+       public static native long AnnouncementSignatures_new(byte[] channel_id_arg, long short_channel_id_arg, byte[] node_signature_arg, byte[] bitcoin_signature_arg);
        // void NetAddress_free(LDKNetAddress this_ptr);
        public static native void NetAddress_free(long this_ptr);
        // void UnsignedNodeAnnouncement_free(LDKUnsignedNodeAnnouncement this_ptr);
@@ -1583,7 +1588,7 @@ public class bindings {
        // const uint8_t (*UnsignedNodeAnnouncement_get_rgb(const LDKUnsignedNodeAnnouncement *this_ptr))[3];
        public static native byte[] UnsignedNodeAnnouncement_get_rgb(long this_ptr);
        // void UnsignedNodeAnnouncement_set_rgb(LDKUnsignedNodeAnnouncement *this_ptr, LDKThreeBytes val);
-       public static native void UnsignedNodeAnnouncement_set_rgb(long this_ptr, long val);
+       public static native void UnsignedNodeAnnouncement_set_rgb(long this_ptr, byte[] val);
        // const uint8_t (*UnsignedNodeAnnouncement_get_alias(const LDKUnsignedNodeAnnouncement *this_ptr))[32];
        public static native byte[] UnsignedNodeAnnouncement_get_alias(long this_ptr);
        // void UnsignedNodeAnnouncement_set_alias(LDKUnsignedNodeAnnouncement *this_ptr, LDKThirtyTwoBytes val);
@@ -1595,15 +1600,15 @@ public class bindings {
        // LDKNodeAnnouncement NodeAnnouncement_clone(const LDKNodeAnnouncement *orig);
        public static native long NodeAnnouncement_clone(long orig);
        // LDKSignature NodeAnnouncement_get_signature(const LDKNodeAnnouncement *this_ptr);
-       public static native long NodeAnnouncement_get_signature(long this_ptr);
+       public static native byte[] NodeAnnouncement_get_signature(long this_ptr);
        // void NodeAnnouncement_set_signature(LDKNodeAnnouncement *this_ptr, LDKSignature val);
-       public static native void NodeAnnouncement_set_signature(long this_ptr, long val);
+       public static native void NodeAnnouncement_set_signature(long this_ptr, byte[] val);
        // LDKUnsignedNodeAnnouncement NodeAnnouncement_get_contents(const LDKNodeAnnouncement *this_ptr);
        public static native long NodeAnnouncement_get_contents(long this_ptr);
        // void NodeAnnouncement_set_contents(LDKNodeAnnouncement *this_ptr, LDKUnsignedNodeAnnouncement val);
        public static native void NodeAnnouncement_set_contents(long this_ptr, long val);
        // MUST_USE_RES LDKNodeAnnouncement NodeAnnouncement_new(LDKSignature signature_arg, LDKUnsignedNodeAnnouncement contents_arg);
-       public static native long NodeAnnouncement_new(long signature_arg, long contents_arg);
+       public static native long NodeAnnouncement_new(byte[] signature_arg, long contents_arg);
        // void UnsignedChannelAnnouncement_free(LDKUnsignedChannelAnnouncement this_ptr);
        public static native void UnsignedChannelAnnouncement_free(long this_ptr);
        // LDKUnsignedChannelAnnouncement UnsignedChannelAnnouncement_clone(const LDKUnsignedChannelAnnouncement *orig);
@@ -1641,27 +1646,27 @@ public class bindings {
        // LDKChannelAnnouncement ChannelAnnouncement_clone(const LDKChannelAnnouncement *orig);
        public static native long ChannelAnnouncement_clone(long orig);
        // LDKSignature ChannelAnnouncement_get_node_signature_1(const LDKChannelAnnouncement *this_ptr);
-       public static native long ChannelAnnouncement_get_node_signature_1(long this_ptr);
+       public static native byte[] ChannelAnnouncement_get_node_signature_1(long this_ptr);
        // void ChannelAnnouncement_set_node_signature_1(LDKChannelAnnouncement *this_ptr, LDKSignature val);
-       public static native void ChannelAnnouncement_set_node_signature_1(long this_ptr, long val);
+       public static native void ChannelAnnouncement_set_node_signature_1(long this_ptr, byte[] val);
        // LDKSignature ChannelAnnouncement_get_node_signature_2(const LDKChannelAnnouncement *this_ptr);
-       public static native long ChannelAnnouncement_get_node_signature_2(long this_ptr);
+       public static native byte[] ChannelAnnouncement_get_node_signature_2(long this_ptr);
        // void ChannelAnnouncement_set_node_signature_2(LDKChannelAnnouncement *this_ptr, LDKSignature val);
-       public static native void ChannelAnnouncement_set_node_signature_2(long this_ptr, long val);
+       public static native void ChannelAnnouncement_set_node_signature_2(long this_ptr, byte[] val);
        // LDKSignature ChannelAnnouncement_get_bitcoin_signature_1(const LDKChannelAnnouncement *this_ptr);
-       public static native long ChannelAnnouncement_get_bitcoin_signature_1(long this_ptr);
+       public static native byte[] ChannelAnnouncement_get_bitcoin_signature_1(long this_ptr);
        // void ChannelAnnouncement_set_bitcoin_signature_1(LDKChannelAnnouncement *this_ptr, LDKSignature val);
-       public static native void ChannelAnnouncement_set_bitcoin_signature_1(long this_ptr, long val);
+       public static native void ChannelAnnouncement_set_bitcoin_signature_1(long this_ptr, byte[] val);
        // LDKSignature ChannelAnnouncement_get_bitcoin_signature_2(const LDKChannelAnnouncement *this_ptr);
-       public static native long ChannelAnnouncement_get_bitcoin_signature_2(long this_ptr);
+       public static native byte[] ChannelAnnouncement_get_bitcoin_signature_2(long this_ptr);
        // void ChannelAnnouncement_set_bitcoin_signature_2(LDKChannelAnnouncement *this_ptr, LDKSignature val);
-       public static native void ChannelAnnouncement_set_bitcoin_signature_2(long this_ptr, long val);
+       public static native void ChannelAnnouncement_set_bitcoin_signature_2(long this_ptr, byte[] val);
        // LDKUnsignedChannelAnnouncement ChannelAnnouncement_get_contents(const LDKChannelAnnouncement *this_ptr);
        public static native long ChannelAnnouncement_get_contents(long this_ptr);
        // void ChannelAnnouncement_set_contents(LDKChannelAnnouncement *this_ptr, LDKUnsignedChannelAnnouncement val);
        public static native void ChannelAnnouncement_set_contents(long this_ptr, long val);
        // MUST_USE_RES LDKChannelAnnouncement ChannelAnnouncement_new(LDKSignature node_signature_1_arg, LDKSignature node_signature_2_arg, LDKSignature bitcoin_signature_1_arg, LDKSignature bitcoin_signature_2_arg, LDKUnsignedChannelAnnouncement contents_arg);
-       public static native long ChannelAnnouncement_new(long node_signature_1_arg, long node_signature_2_arg, long bitcoin_signature_1_arg, long bitcoin_signature_2_arg, long contents_arg);
+       public static native long ChannelAnnouncement_new(byte[] node_signature_1_arg, byte[] node_signature_2_arg, byte[] bitcoin_signature_1_arg, byte[] bitcoin_signature_2_arg, long contents_arg);
        // void UnsignedChannelUpdate_free(LDKUnsignedChannelUpdate this_ptr);
        public static native void UnsignedChannelUpdate_free(long this_ptr);
        // LDKUnsignedChannelUpdate UnsignedChannelUpdate_clone(const LDKUnsignedChannelUpdate *orig);
@@ -1703,15 +1708,15 @@ public class bindings {
        // LDKChannelUpdate ChannelUpdate_clone(const LDKChannelUpdate *orig);
        public static native long ChannelUpdate_clone(long orig);
        // LDKSignature ChannelUpdate_get_signature(const LDKChannelUpdate *this_ptr);
-       public static native long ChannelUpdate_get_signature(long this_ptr);
+       public static native byte[] ChannelUpdate_get_signature(long this_ptr);
        // void ChannelUpdate_set_signature(LDKChannelUpdate *this_ptr, LDKSignature val);
-       public static native void ChannelUpdate_set_signature(long this_ptr, long val);
+       public static native void ChannelUpdate_set_signature(long this_ptr, byte[] val);
        // LDKUnsignedChannelUpdate ChannelUpdate_get_contents(const LDKChannelUpdate *this_ptr);
        public static native long ChannelUpdate_get_contents(long this_ptr);
        // void ChannelUpdate_set_contents(LDKChannelUpdate *this_ptr, LDKUnsignedChannelUpdate val);
        public static native void ChannelUpdate_set_contents(long this_ptr, long val);
        // MUST_USE_RES LDKChannelUpdate ChannelUpdate_new(LDKSignature signature_arg, LDKUnsignedChannelUpdate contents_arg);
-       public static native long ChannelUpdate_new(long signature_arg, long contents_arg);
+       public static native long ChannelUpdate_new(byte[] signature_arg, long contents_arg);
        // void QueryChannelRange_free(LDKQueryChannelRange this_ptr);
        public static native void QueryChannelRange_free(long this_ptr);
        // LDKQueryChannelRange QueryChannelRange_clone(const LDKQueryChannelRange *orig);
@@ -1989,7 +1994,7 @@ public class bindings {
        // void PeerManager_free(LDKPeerManager this_ptr);
        public static native void PeerManager_free(long this_ptr);
        // MUST_USE_RES LDKPeerManager PeerManager_new(LDKMessageHandler message_handler, LDKSecretKey our_node_secret, const uint8_t (*ephemeral_random_data)[32], LDKLogger logger);
-       public static native long PeerManager_new(long message_handler, long our_node_secret, byte[] ephemeral_random_data, long logger);
+       public static native long PeerManager_new(long message_handler, byte[] our_node_secret, byte[] ephemeral_random_data, long logger);
        // MUST_USE_RES LDKCVec_PublicKeyZ PeerManager_get_peer_node_ids(const LDKPeerManager *this_arg);
        public static native long PeerManager_get_peer_node_ids(long this_arg);
        // MUST_USE_RES LDKCResult_CVec_u8ZPeerHandleErrorZ PeerManager_new_outbound_connection(const LDKPeerManager *this_arg, LDKPublicKey their_node_id, LDKSocketDescriptor descriptor);
@@ -2127,9 +2132,9 @@ public class bindings {
        // void HolderCommitmentTransaction_set_unsigned_tx(LDKHolderCommitmentTransaction *this_ptr, LDKTransaction val);
        public static native void HolderCommitmentTransaction_set_unsigned_tx(long this_ptr, long val);
        // LDKSignature HolderCommitmentTransaction_get_counterparty_sig(const LDKHolderCommitmentTransaction *this_ptr);
-       public static native long HolderCommitmentTransaction_get_counterparty_sig(long this_ptr);
+       public static native byte[] HolderCommitmentTransaction_get_counterparty_sig(long this_ptr);
        // void HolderCommitmentTransaction_set_counterparty_sig(LDKHolderCommitmentTransaction *this_ptr, LDKSignature val);
-       public static native void HolderCommitmentTransaction_set_counterparty_sig(long this_ptr, long val);
+       public static native void HolderCommitmentTransaction_set_counterparty_sig(long this_ptr, byte[] val);
        // uint32_t HolderCommitmentTransaction_get_feerate_per_kw(const LDKHolderCommitmentTransaction *this_ptr);
        public static native int HolderCommitmentTransaction_get_feerate_per_kw(long this_ptr);
        // void HolderCommitmentTransaction_set_feerate_per_kw(LDKHolderCommitmentTransaction *this_ptr, uint32_t val);
@@ -2137,13 +2142,13 @@ public class bindings {
        // void HolderCommitmentTransaction_set_per_htlc(LDKHolderCommitmentTransaction *this_ptr, LDKCVec_C2Tuple_HTLCOutputInCommitmentSignatureZZ val);
        public static native void HolderCommitmentTransaction_set_per_htlc(long this_ptr, long val);
        // MUST_USE_RES LDKHolderCommitmentTransaction HolderCommitmentTransaction_new_missing_holder_sig(LDKTransaction unsigned_tx, LDKSignature counterparty_sig, LDKPublicKey holder_funding_key, LDKPublicKey counterparty_funding_key, LDKTxCreationKeys keys, uint32_t feerate_per_kw, LDKCVec_C2Tuple_HTLCOutputInCommitmentSignatureZZ htlc_data);
-       public static native long HolderCommitmentTransaction_new_missing_holder_sig(long unsigned_tx, long counterparty_sig, byte[] holder_funding_key, byte[] counterparty_funding_key, long keys, int feerate_per_kw, long htlc_data);
+       public static native long HolderCommitmentTransaction_new_missing_holder_sig(long unsigned_tx, byte[] counterparty_sig, byte[] holder_funding_key, byte[] counterparty_funding_key, long keys, int feerate_per_kw, long htlc_data);
        // MUST_USE_RES LDKTxCreationKeys HolderCommitmentTransaction_trust_key_derivation(const LDKHolderCommitmentTransaction *this_arg);
        public static native long HolderCommitmentTransaction_trust_key_derivation(long this_arg);
        // MUST_USE_RES LDKThirtyTwoBytes HolderCommitmentTransaction_txid(const LDKHolderCommitmentTransaction *this_arg);
        public static native byte[] HolderCommitmentTransaction_txid(long this_arg);
        // MUST_USE_RES LDKSignature HolderCommitmentTransaction_get_holder_sig(const LDKHolderCommitmentTransaction *this_arg, const uint8_t (*funding_key)[32], LDKu8slice funding_redeemscript, uint64_t channel_value_satoshis);
-       public static native long HolderCommitmentTransaction_get_holder_sig(long this_arg, byte[] funding_key, long funding_redeemscript, long channel_value_satoshis);
+       public static native byte[] HolderCommitmentTransaction_get_holder_sig(long this_arg, byte[] funding_key, long funding_redeemscript, long channel_value_satoshis);
        // MUST_USE_RES LDKCResult_CVec_SignatureZNoneZ HolderCommitmentTransaction_get_htlc_sigs(const LDKHolderCommitmentTransaction *this_arg, const uint8_t (*htlc_base_key)[32], uint16_t counterparty_selected_contest_delay);
        public static native long HolderCommitmentTransaction_get_htlc_sigs(long this_arg, byte[] htlc_base_key, short counterparty_selected_contest_delay);
        // LDKCVec_u8Z HolderCommitmentTransaction_write(const LDKHolderCommitmentTransaction *obj);
@@ -2200,6 +2205,8 @@ public class bindings {
        public static native long Route_read(long ser);
        // void RouteHint_free(LDKRouteHint this_ptr);
        public static native void RouteHint_free(long this_ptr);
+       // LDKRouteHint RouteHint_clone(const LDKRouteHint *orig);
+       public static native long RouteHint_clone(long orig);
        // LDKPublicKey RouteHint_get_src_node_id(const LDKRouteHint *this_ptr);
        public static native byte[] RouteHint_get_src_node_id(long this_ptr);
        // void RouteHint_set_src_node_id(LDKRouteHint *this_ptr, LDKPublicKey val);
@@ -2327,7 +2334,7 @@ public class bindings {
        // const uint8_t (*NodeAnnouncementInfo_get_rgb(const LDKNodeAnnouncementInfo *this_ptr))[3];
        public static native byte[] NodeAnnouncementInfo_get_rgb(long this_ptr);
        // void NodeAnnouncementInfo_set_rgb(LDKNodeAnnouncementInfo *this_ptr, LDKThreeBytes val);
-       public static native void NodeAnnouncementInfo_set_rgb(long this_ptr, long val);
+       public static native void NodeAnnouncementInfo_set_rgb(long this_ptr, byte[] val);
        // const uint8_t (*NodeAnnouncementInfo_get_alias(const LDKNodeAnnouncementInfo *this_ptr))[32];
        public static native byte[] NodeAnnouncementInfo_get_alias(long this_ptr);
        // void NodeAnnouncementInfo_set_alias(LDKNodeAnnouncementInfo *this_ptr, LDKThirtyTwoBytes val);
@@ -2339,7 +2346,7 @@ public class bindings {
        // void NodeAnnouncementInfo_set_announcement_message(LDKNodeAnnouncementInfo *this_ptr, LDKNodeAnnouncement val);
        public static native void NodeAnnouncementInfo_set_announcement_message(long this_ptr, long val);
        // MUST_USE_RES LDKNodeAnnouncementInfo NodeAnnouncementInfo_new(LDKNodeFeatures features_arg, uint32_t last_update_arg, LDKThreeBytes rgb_arg, LDKThirtyTwoBytes alias_arg, LDKCVec_NetAddressZ addresses_arg, LDKNodeAnnouncement announcement_message_arg);
-       public static native long NodeAnnouncementInfo_new(long features_arg, int last_update_arg, long rgb_arg, byte[] alias_arg, long addresses_arg, long 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);
        // LDKCVec_u8Z NodeAnnouncementInfo_write(const LDKNodeAnnouncementInfo *obj);
        public static native long NodeAnnouncementInfo_write(long obj);
        // LDKNodeAnnouncementInfo NodeAnnouncementInfo_read(LDKu8slice ser);