Update auto-generated bindings
[ldk-java] / src / main / java / org / ldk / impl / bindings.java
index b89d336c2b478c68ad584e17bee3883ed18ef445..3812dff6e915709bd8533a2a44daac7d10b0b62a 100644 (file)
@@ -9,10 +9,9 @@ public class bindings {
 
        public static native long LDKSecretKey_new();
 
-       public enum LDKChainError {
-          LDKChainError_NotSupported,
-          LDKChainError_NotWatched,
-          LDKChainError_UnknownTx,
+       public enum LDKAccessError {
+          LDKAccessError_UnknownChain,
+          LDKAccessError_UnknownTx,
        }
        public enum LDKChannelMonitorUpdateErr {
           LDKChannelMonitorUpdateErr_TemporaryFailure,
@@ -59,42 +58,43 @@ public class bindings {
                 void log(String record);
        }
        public static native long LDKLogger_new(LDKLogger impl);
-       public interface LDKChainWatchInterface {
-                void install_watch_tx(byte[] txid, long script_pub_key);
-                void install_watch_outpoint(long outpoint, long out_script);
-                void watch_all_txn();
-                long get_chain_utxo(long genesis_hash, long unspent_tx_output_identifier);
-                long filter_block(long block);
-                long reentered();
+       public interface LDKAccess {
+                long get_utxo(byte[] genesis_hash, long short_channel_id);
        }
-       public static native long LDKChainWatchInterface_new(LDKChainWatchInterface impl);
-       public interface LDKBroadcasterInterface {
-                void broadcast_transaction(long tx);
-       }
-       public static native long LDKBroadcasterInterface_new(LDKBroadcasterInterface impl);
-       public interface LDKChainListener {
-                void block_connected(byte[] header, int height, long txn_matched, long indexes_of_txn_matched);
-                void block_disconnected(byte[] header, int disconnected_height);
-       }
-       public static native long LDKChainListener_new(LDKChainListener impl);
-       public interface LDKFeeEstimator {
-                int get_est_sat_per_1000_weight(LDKConfirmationTarget confirmation_target);
-       }
-       public static native long LDKFeeEstimator_new(LDKFeeEstimator impl);
+       public static native long LDKAccess_new(LDKAccess impl);
        public interface LDKChannelKeys {
                 long get_per_commitment_point(long idx);
                 long release_commitment_secret(long idx);
                 long key_derivation_params();
-                long sign_remote_commitment(int feerate_per_kw, long commitment_tx, long keys, long htlcs);
-                long sign_local_commitment(long local_commitment_tx);
-                long sign_local_commitment_htlc_transactions(long local_commitment_tx);
+                long sign_counterparty_commitment(int feerate_per_kw, long commitment_tx, long keys, long htlcs);
+                long sign_holder_commitment(long holder_commitment_tx);
+                long sign_holder_commitment_htlc_transactions(long holder_commitment_tx);
                 long sign_justice_transaction(long justice_tx, long input, long amount, byte[] per_commitment_key, long htlc);
-                long sign_remote_htlc_transaction(long htlc_tx, long input, long amount, long per_commitment_point, long htlc);
+                long sign_counterparty_htlc_transaction(long htlc_tx, long input, long amount, long per_commitment_point, long htlc);
                 long sign_closing_transaction(long closing_tx);
                 long sign_channel_announcement(long msg);
-                void on_accept(long channel_points, short remote_to_self_delay, short local_to_self_delay);
+                void on_accept(long channel_points, short counterparty_selected_contest_delay, short holder_selected_contest_delay);
        }
        public static native long LDKChannelKeys_new(LDKChannelKeys impl);
+       public interface LDKWatch {
+                long watch_channel(long funding_txo, long monitor);
+                long update_channel(long funding_txo, long update);
+                long release_pending_monitor_events();
+       }
+       public static native long LDKWatch_new(LDKWatch impl);
+       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 interface LDKBroadcasterInterface {
+                void broadcast_transaction(long tx);
+       }
+       public static native long LDKBroadcasterInterface_new(LDKBroadcasterInterface impl);
+       public interface LDKFeeEstimator {
+                int get_est_sat_per_1000_weight(LDKConfirmationTarget confirmation_target);
+       }
+       public static native long LDKFeeEstimator_new(LDKFeeEstimator impl);
        public interface LDKKeysInterface {
                 long get_node_secret();
                 long get_destination_script();
@@ -103,12 +103,6 @@ public class bindings {
                 long get_secure_random_bytes();
        }
        public static native long LDKKeysInterface_new(LDKKeysInterface impl);
-       public interface LDKManyChannelMonitor {
-                long add_monitor(long funding_txo, long monitor);
-                long update_monitor(long funding_txo, long monitor);
-                long get_and_clear_pending_monitor_events();
-       }
-       public static native long LDKManyChannelMonitor_new(LDKManyChannelMonitor impl);
        public interface LDKChannelMessageHandler {
                 void handle_open_channel(long their_node_id, long their_features, long msg);
                 void handle_accept_channel(long their_node_id, long their_features, long msg);
@@ -152,22 +146,16 @@ public class bindings {
        public static native void C2Tuple_HTLCOutputInCommitmentSignatureZ_free(long arg);
        /// extern const void (*C2Tuple_OutPointScriptZ_free)(LDKC2Tuple_OutPointScriptZ);
        public static native void C2Tuple_OutPointScriptZ_free(long arg);
-       /// extern const void (*C2Tuple_Scriptu64Z_free)(LDKC2Tuple_Scriptu64Z);
-       public static native void C2Tuple_Scriptu64Z_free(long arg);
        /// extern const void (*C2Tuple_SignatureCVec_SignatureZZ_free)(LDKC2Tuple_SignatureCVec_SignatureZZ);
        public static native void C2Tuple_SignatureCVec_SignatureZZ_free(long arg);
-       /// extern const void (*C2Tuple_Txidu32Z_free)(LDKC2Tuple_Txidu32Z);
-       public static native void C2Tuple_Txidu32Z_free(long arg);
+       /// extern const void (*C2Tuple_TxidCVec_TxOutZZ_free)(LDKC2Tuple_TxidCVec_TxOutZZ);
+       public static native void C2Tuple_TxidCVec_TxOutZZ_free(long arg);
        /// extern const void (*C2Tuple_u64u64Z_free)(LDKC2Tuple_u64u64Z);
        public static native void C2Tuple_u64u64Z_free(long arg);
+       /// extern const void (*C2Tuple_usizeTransactionZ_free)(LDKC2Tuple_usizeTransactionZ);
+       public static native void C2Tuple_usizeTransactionZ_free(long arg);
        /// extern const void (*C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ_free)(LDKC3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ);
        public static native void C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ_free(long arg);
-       /// extern const LDKCResult_C2Tuple_Scriptu64ZChainErrorZ (*CResult_C2Tuple_Scriptu64ZChainErrorZ_err)(LDKChainError);
-       public static native long CResult_C2Tuple_Scriptu64ZChainErrorZ_err(LDKChainError arg);
-       /// extern const void (*CResult_C2Tuple_Scriptu64ZChainErrorZ_free)(LDKCResult_C2Tuple_Scriptu64ZChainErrorZ);
-       public static native void CResult_C2Tuple_Scriptu64ZChainErrorZ_free(long arg);
-       /// extern const LDKCResult_C2Tuple_Scriptu64ZChainErrorZ (*CResult_C2Tuple_Scriptu64ZChainErrorZ_ok)(LDKC2Tuple_Scriptu64Z);
-       public static native long CResult_C2Tuple_Scriptu64ZChainErrorZ_ok(long arg);
        /// extern const void (*CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ_free)(LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ);
        public static native void CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ_free(long arg);
        /// extern const LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ (*CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ_ok)(LDKC2Tuple_SignatureCVec_SignatureZZ);
@@ -202,12 +190,24 @@ public class bindings {
        public static native long CResult_NonePeerHandleErrorZ_err(long arg);
        /// extern const void (*CResult_NonePeerHandleErrorZ_free)(LDKCResult_NonePeerHandleErrorZ);
        public static native void CResult_NonePeerHandleErrorZ_free(long arg);
+       /// extern const LDKCResult_PublicKeySecpErrorZ (*CResult_PublicKeySecpErrorZ_err)(LDKSecp256k1Error);
+       public static native long CResult_PublicKeySecpErrorZ_err(LDKSecp256k1Error arg);
+       /// extern const void (*CResult_PublicKeySecpErrorZ_free)(LDKCResult_PublicKeySecpErrorZ);
+       public static native void CResult_PublicKeySecpErrorZ_free(long arg);
+       /// extern const LDKCResult_PublicKeySecpErrorZ (*CResult_PublicKeySecpErrorZ_ok)(LDKPublicKey);
+       public static native long CResult_PublicKeySecpErrorZ_ok(long arg);
        /// extern const LDKCResult_RouteLightningErrorZ (*CResult_RouteLightningErrorZ_err)(LDKLightningError);
        public static native long CResult_RouteLightningErrorZ_err(long arg);
        /// extern const void (*CResult_RouteLightningErrorZ_free)(LDKCResult_RouteLightningErrorZ);
        public static native void CResult_RouteLightningErrorZ_free(long arg);
        /// extern const LDKCResult_RouteLightningErrorZ (*CResult_RouteLightningErrorZ_ok)(LDKRoute);
        public static native long CResult_RouteLightningErrorZ_ok(long arg);
+       /// extern const LDKCResult_SecretKeySecpErrorZ (*CResult_SecretKeySecpErrorZ_err)(LDKSecp256k1Error);
+       public static native long CResult_SecretKeySecpErrorZ_err(LDKSecp256k1Error arg);
+       /// 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);
        /// 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);
@@ -218,6 +218,12 @@ public class bindings {
        public static native void CResult_TxCreationKeysSecpErrorZ_free(long arg);
        /// extern const LDKCResult_TxCreationKeysSecpErrorZ (*CResult_TxCreationKeysSecpErrorZ_ok)(LDKTxCreationKeys);
        public static native long CResult_TxCreationKeysSecpErrorZ_ok(long arg);
+       /// extern const LDKCResult_TxOutAccessErrorZ (*CResult_TxOutAccessErrorZ_err)(LDKAccessError);
+       public static native long CResult_TxOutAccessErrorZ_err(LDKAccessError arg);
+       /// extern const void (*CResult_TxOutAccessErrorZ_free)(LDKCResult_TxOutAccessErrorZ);
+       public static native void CResult_TxOutAccessErrorZ_free(long arg);
+       /// extern const LDKCResult_TxOutAccessErrorZ (*CResult_TxOutAccessErrorZ_ok)(LDKTxOut);
+       public static native long CResult_TxOutAccessErrorZ_ok(long arg);
        /// extern const LDKCResult_boolLightningErrorZ (*CResult_boolLightningErrorZ_err)(LDKLightningError);
        public static native long CResult_boolLightningErrorZ_err(long arg);
        /// extern const void (*CResult_boolLightningErrorZ_free)(LDKCResult_boolLightningErrorZ);
@@ -232,6 +238,10 @@ public class bindings {
        public static native long CResult_boolPeerHandleErrorZ_ok(boolean arg);
        /// extern const void (*CVec_C2Tuple_HTLCOutputInCommitmentSignatureZZ_free)(LDKCVec_C2Tuple_HTLCOutputInCommitmentSignatureZZ);
        public static native void CVec_C2Tuple_HTLCOutputInCommitmentSignatureZZ_free(long arg);
+       /// extern const void (*CVec_C2Tuple_TxidCVec_TxOutZZZ_free)(LDKCVec_C2Tuple_TxidCVec_TxOutZZZ);
+       public static native void CVec_C2Tuple_TxidCVec_TxOutZZZ_free(long arg);
+       /// extern const void (*CVec_C2Tuple_usizeTransactionZZ_free)(LDKCVec_C2Tuple_usizeTransactionZZ);
+       public static native void CVec_C2Tuple_usizeTransactionZZ_free(long arg);
        /// extern const void (*CVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ_free)(LDKCVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ);
        public static native void CVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ_free(long arg);
        /// extern const void (*CVec_CVec_RouteHopZZ_free)(LDKCVec_CVec_RouteHopZZ);
@@ -264,6 +274,8 @@ public class bindings {
        public static native void CVec_SpendableOutputDescriptorZ_free(long arg);
        /// extern const void (*CVec_TransactionZ_free)(LDKCVec_TransactionZ);
        public static native void CVec_TransactionZ_free(long arg);
+       /// extern const void (*CVec_TxOutZ_free)(LDKCVec_TxOutZ);
+       public static native void CVec_TxOutZ_free(long arg);
        /// extern const void (*CVec_UpdateAddHTLCZ_free)(LDKCVec_UpdateAddHTLCZ);
        public static native void CVec_UpdateAddHTLCZ_free(long arg);
        /// extern const void (*CVec_UpdateFailHTLCZ_free)(LDKCVec_UpdateFailHTLCZ);
@@ -276,14 +288,20 @@ public class bindings {
        public static native void CVec_u64Z_free(long arg);
        /// extern const void (*CVec_u8Z_free)(LDKCVec_u8Z);
        public static native void CVec_u8Z_free(long arg);
-       /// extern const void (*CVec_usizeZ_free)(LDKCVec_usizeZ);
-       public static native void CVec_usizeZ_free(long arg);
+       /// void Transaction_free(LDKTransaction _res);
+       public static native void Transaction_free(long _res);
        /// void TxOut_free(LDKTxOut _res);
        public static native void TxOut_free(long _res);
-       /// LDKC2Tuple_Txidu32Z C2Tuple_Txidu32Z_new(LDKThirtyTwoBytes a, uint32_t b);
-       public static native long C2Tuple_Txidu32Z_new(long a, int b);
-       /// LDKC2Tuple_Scriptu64Z C2Tuple_Scriptu64Z_new(LDKCVec_u8Z a, uint64_t b);
-       public static native long C2Tuple_Scriptu64Z_new(long a, long b);
+       /// LDKC2Tuple_usizeTransactionZ C2Tuple_usizeTransactionZ_new(uintptr_t a, LDKTransaction b);
+       public static native long C2Tuple_usizeTransactionZ_new(long a, long b);
+       /// LDKCResult_NoneChannelMonitorUpdateErrZ CResult_NoneChannelMonitorUpdateErrZ_ok(void);
+       public static native long CResult_NoneChannelMonitorUpdateErrZ_ok();
+       /// LDKCResult_NoneMonitorUpdateErrorZ CResult_NoneMonitorUpdateErrorZ_ok(void);
+       public static native long CResult_NoneMonitorUpdateErrorZ_ok();
+       /// LDKC2Tuple_OutPointScriptZ C2Tuple_OutPointScriptZ_new(LDKOutPoint a, LDKCVec_u8Z b);
+       public static native long C2Tuple_OutPointScriptZ_new(long a, long b);
+       /// LDKC2Tuple_TxidCVec_TxOutZZ C2Tuple_TxidCVec_TxOutZZ_new(LDKThirtyTwoBytes a, LDKCVec_TxOutZ b);
+       public static native long C2Tuple_TxidCVec_TxOutZZ_new(long a, long b);
        /// 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);
@@ -298,12 +316,6 @@ public class bindings {
        public static native long CResult_NoneAPIErrorZ_ok();
        /// LDKCResult_NonePaymentSendFailureZ CResult_NonePaymentSendFailureZ_ok(void);
        public static native long CResult_NonePaymentSendFailureZ_ok();
-       /// LDKCResult_NoneChannelMonitorUpdateErrZ CResult_NoneChannelMonitorUpdateErrZ_ok(void);
-       public static native long CResult_NoneChannelMonitorUpdateErrZ_ok();
-       /// LDKCResult_NoneMonitorUpdateErrorZ CResult_NoneMonitorUpdateErrorZ_ok(void);
-       public static native long CResult_NoneMonitorUpdateErrorZ_ok();
-       /// LDKC2Tuple_OutPointScriptZ C2Tuple_OutPointScriptZ_new(LDKOutPoint a, LDKCVec_u8Z b);
-       public static native long C2Tuple_OutPointScriptZ_new(long a, long b);
        /// LDKC3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ_new(LDKChannelAnnouncement a, LDKChannelUpdate b, LDKChannelUpdate c);
        public static native long C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ_new(long a, long b, long c);
        /// LDKCResult_NonePeerHandleErrorZ CResult_NonePeerHandleErrorZ_ok(void);
@@ -428,46 +440,66 @@ public class bindings {
        public static native long UserConfig_new(long own_channel_config_arg, long peer_channel_config_limits_arg, long channel_options_arg);
        /// MUST_USE_RES LDKUserConfig UserConfig_default(void);
        public static native long UserConfig_default();
-       /// void ChainWatchInterface_free(LDKChainWatchInterface this_ptr);
-       public static native void ChainWatchInterface_free(long this_ptr);
+       /// void Access_free(LDKAccess this_ptr);
+       public static native void Access_free(long this_ptr);
+       /// void Watch_free(LDKWatch this_ptr);
+       public static native void Watch_free(long this_ptr);
+       /// void Filter_free(LDKFilter this_ptr);
+       public static native void Filter_free(long this_ptr);
        /// void BroadcasterInterface_free(LDKBroadcasterInterface this_ptr);
        public static native void BroadcasterInterface_free(long this_ptr);
-       /// void ChainListener_free(LDKChainListener this_ptr);
-       public static native void ChainListener_free(long this_ptr);
        /// void FeeEstimator_free(LDKFeeEstimator this_ptr);
        public static native void FeeEstimator_free(long this_ptr);
-       /// void ChainWatchedUtil_free(LDKChainWatchedUtil this_ptr);
-       public static native void ChainWatchedUtil_free(long this_ptr);
-       /// MUST_USE_RES LDKChainWatchedUtil ChainWatchedUtil_new(void);
-       public static native long ChainWatchedUtil_new();
-       /// MUST_USE_RES bool ChainWatchedUtil_register_tx(LDKChainWatchedUtil *this_arg, const uint8_t (*txid)[32], LDKu8slice script_pub_key);
-       public static native boolean ChainWatchedUtil_register_tx(long this_arg, byte[] txid, long script_pub_key);
-       /// MUST_USE_RES bool ChainWatchedUtil_register_outpoint(LDKChainWatchedUtil *this_arg, LDKC2Tuple_Txidu32Z outpoint, LDKu8slice _script_pub_key);
-       public static native boolean ChainWatchedUtil_register_outpoint(long this_arg, long outpoint, long _script_pub_key);
-       /// MUST_USE_RES bool ChainWatchedUtil_watch_all(LDKChainWatchedUtil *this_arg);
-       public static native boolean ChainWatchedUtil_watch_all(long this_arg);
-       /// MUST_USE_RES bool ChainWatchedUtil_does_match_tx(const LDKChainWatchedUtil *this_arg, LDKTransaction tx);
-       public static native boolean ChainWatchedUtil_does_match_tx(long this_arg, long tx);
-       /// void BlockNotifier_free(LDKBlockNotifier this_ptr);
-       public static native void BlockNotifier_free(long this_ptr);
-       /// MUST_USE_RES LDKBlockNotifier BlockNotifier_new(LDKChainWatchInterface chain_monitor);
-       public static native long BlockNotifier_new(long chain_monitor);
-       /// void BlockNotifier_register_listener(const LDKBlockNotifier *this_arg, LDKChainListener listener);
-       public static native void BlockNotifier_register_listener(long this_arg, long listener);
-       /// void BlockNotifier_block_connected(const LDKBlockNotifier *this_arg, LDKu8slice block, uint32_t height);
-       public static native void BlockNotifier_block_connected(long this_arg, long block, int height);
-       /// MUST_USE_RES bool BlockNotifier_block_connected_checked(const LDKBlockNotifier *this_arg, const uint8_t (*header)[80], uint32_t height, LDKCVec_TransactionZ txn_matched, LDKusizeslice indexes_of_txn_matched);
-       public static native boolean BlockNotifier_block_connected_checked(long this_arg, byte[] header, int height, long txn_matched, long indexes_of_txn_matched);
-       /// void BlockNotifier_block_disconnected(const LDKBlockNotifier *this_arg, const uint8_t (*header)[80], uint32_t disconnected_height);
-       public static native void BlockNotifier_block_disconnected(long this_arg, byte[] header, int disconnected_height);
-       /// void ChainWatchInterfaceUtil_free(LDKChainWatchInterfaceUtil this_ptr);
-       public static native void ChainWatchInterfaceUtil_free(long this_ptr);
-       /// LDKChainWatchInterface ChainWatchInterfaceUtil_as_ChainWatchInterface(const LDKChainWatchInterfaceUtil *this_arg);
-       public static native long ChainWatchInterfaceUtil_as_ChainWatchInterface(long this_arg);
-       /// MUST_USE_RES LDKChainWatchInterfaceUtil ChainWatchInterfaceUtil_new(LDKNetwork network);
-       public static native long ChainWatchInterfaceUtil_new(LDKNetwork network);
-       /// MUST_USE_RES bool ChainWatchInterfaceUtil_does_match_tx(const LDKChainWatchInterfaceUtil *this_arg, LDKTransaction tx);
-       public static native boolean ChainWatchInterfaceUtil_does_match_tx(long this_arg, long tx);
+       /// void ChainMonitor_free(LDKChainMonitor this_ptr);
+       public static native void ChainMonitor_free(long this_ptr);
+       /// void ChainMonitor_block_connected(const LDKChainMonitor *this_arg, const uint8_t (*header)[80], LDKCVec_C2Tuple_usizeTransactionZZ txdata, uint32_t height);
+       public static native void ChainMonitor_block_connected(long this_arg, byte[] header, long txdata, int height);
+       /// void ChainMonitor_block_disconnected(const LDKChainMonitor *this_arg, const uint8_t (*header)[80], uint32_t disconnected_height);
+       public static native void ChainMonitor_block_disconnected(long this_arg, byte[] header, int disconnected_height);
+       /// MUST_USE_RES LDKChainMonitor ChainMonitor_new(LDKFilter *chain_source, LDKBroadcasterInterface broadcaster, LDKLogger logger, LDKFeeEstimator feeest);
+       public static native long ChainMonitor_new(long chain_source, long broadcaster, long logger, long feeest);
+       /// LDKWatch ChainMonitor_as_Watch(const LDKChainMonitor *this_arg);
+       public static native long ChainMonitor_as_Watch(long this_arg);
+       /// LDKEventsProvider ChainMonitor_as_EventsProvider(const LDKChainMonitor *this_arg);
+       public static native long ChainMonitor_as_EventsProvider(long this_arg);
+       /// void ChannelMonitorUpdate_free(LDKChannelMonitorUpdate this_ptr);
+       public static native void ChannelMonitorUpdate_free(long this_ptr);
+       /// uint64_t ChannelMonitorUpdate_get_update_id(const LDKChannelMonitorUpdate *this_ptr);
+       public static native long ChannelMonitorUpdate_get_update_id(long this_ptr);
+       /// void ChannelMonitorUpdate_set_update_id(LDKChannelMonitorUpdate *this_ptr, uint64_t val);
+       public static native void ChannelMonitorUpdate_set_update_id(long this_ptr, long val);
+       /// LDKCVec_u8Z ChannelMonitorUpdate_write(const LDKChannelMonitorUpdate *obj);
+       public static native long ChannelMonitorUpdate_write(long obj);
+       /// LDKChannelMonitorUpdate ChannelMonitorUpdate_read(LDKu8slice ser);
+       public static native long ChannelMonitorUpdate_read(long ser);
+       /// void MonitorUpdateError_free(LDKMonitorUpdateError this_ptr);
+       public static native void MonitorUpdateError_free(long this_ptr);
+       /// void MonitorEvent_free(LDKMonitorEvent this_ptr);
+       public static native void MonitorEvent_free(long this_ptr);
+       /// void HTLCUpdate_free(LDKHTLCUpdate this_ptr);
+       public static native void HTLCUpdate_free(long this_ptr);
+       /// LDKCVec_u8Z HTLCUpdate_write(const LDKHTLCUpdate *obj);
+       public static native long HTLCUpdate_write(long obj);
+       /// LDKHTLCUpdate HTLCUpdate_read(LDKu8slice ser);
+       public static native long HTLCUpdate_read(long ser);
+       /// void ChannelMonitor_free(LDKChannelMonitor this_ptr);
+       public static native void ChannelMonitor_free(long this_ptr);
+       /// MUST_USE_RES LDKCResult_NoneMonitorUpdateErrorZ ChannelMonitor_update_monitor(LDKChannelMonitor *this_arg, LDKChannelMonitorUpdate updates, const LDKBroadcasterInterface *broadcaster, const LDKLogger *logger);
+       public static native long ChannelMonitor_update_monitor(long this_arg, long updates, long broadcaster, long logger);
+       /// MUST_USE_RES uint64_t ChannelMonitor_get_latest_update_id(const LDKChannelMonitor *this_arg);
+       public static native long ChannelMonitor_get_latest_update_id(long this_arg);
+       /// MUST_USE_RES LDKC2Tuple_OutPointScriptZ ChannelMonitor_get_funding_txo(const LDKChannelMonitor *this_arg);
+       public static native long ChannelMonitor_get_funding_txo(long this_arg);
+       /// MUST_USE_RES LDKCVec_MonitorEventZ ChannelMonitor_get_and_clear_pending_monitor_events(LDKChannelMonitor *this_arg);
+       public static native long ChannelMonitor_get_and_clear_pending_monitor_events(long this_arg);
+       /// MUST_USE_RES LDKCVec_EventZ ChannelMonitor_get_and_clear_pending_events(LDKChannelMonitor *this_arg);
+       public static native long ChannelMonitor_get_and_clear_pending_events(long this_arg);
+       /// MUST_USE_RES LDKCVec_TransactionZ ChannelMonitor_get_latest_holder_commitment_txn(LDKChannelMonitor *this_arg, const LDKLogger *logger);
+       public static native long ChannelMonitor_get_latest_holder_commitment_txn(long this_arg, long logger);
+       /// MUST_USE_RES LDKCVec_C2Tuple_TxidCVec_TxOutZZZ ChannelMonitor_block_connected(LDKChannelMonitor *this_arg, const uint8_t (*header)[80], LDKCVec_C2Tuple_usizeTransactionZZ txdata, uint32_t height, LDKBroadcasterInterface broadcaster, LDKFeeEstimator fee_estimator, LDKLogger logger);
+       public static native long ChannelMonitor_block_connected(long this_arg, byte[] header, long txdata, int height, long broadcaster, long fee_estimator, long logger);
+       /// void ChannelMonitor_block_disconnected(LDKChannelMonitor *this_arg, const uint8_t (*header)[80], uint32_t height, LDKBroadcasterInterface broadcaster, LDKFeeEstimator fee_estimator, LDKLogger logger);
+       public static native void ChannelMonitor_block_disconnected(long this_arg, byte[] header, int height, long broadcaster, long fee_estimator, long logger);
        /// void OutPoint_free(LDKOutPoint this_ptr);
        public static native void OutPoint_free(long this_ptr);
        /// const uint8_t (*OutPoint_get_txid(const LDKOutPoint *this_ptr))[32];
@@ -520,12 +552,12 @@ public class bindings {
        public static native void InMemoryChannelKeys_set_commitment_seed(long this_ptr, long 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, long commitment_seed, long channel_value_satoshis, long key_derivation_params);
-       /// MUST_USE_RES LDKChannelPublicKeys InMemoryChannelKeys_remote_pubkeys(const LDKInMemoryChannelKeys *this_arg);
-       public static native long InMemoryChannelKeys_remote_pubkeys(long this_arg);
-       /// MUST_USE_RES uint16_t InMemoryChannelKeys_remote_to_self_delay(const LDKInMemoryChannelKeys *this_arg);
-       public static native short InMemoryChannelKeys_remote_to_self_delay(long this_arg);
-       /// MUST_USE_RES uint16_t InMemoryChannelKeys_local_to_self_delay(const LDKInMemoryChannelKeys *this_arg);
-       public static native short InMemoryChannelKeys_local_to_self_delay(long this_arg);
+       /// 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);
+       public static native short InMemoryChannelKeys_counterparty_selected_contest_delay(long this_arg);
+       /// MUST_USE_RES uint16_t InMemoryChannelKeys_holder_selected_contest_delay(const LDKInMemoryChannelKeys *this_arg);
+       public static native short InMemoryChannelKeys_holder_selected_contest_delay(long this_arg);
        /// LDKChannelKeys InMemoryChannelKeys_as_ChannelKeys(const LDKInMemoryChannelKeys *this_arg);
        public static native long InMemoryChannelKeys_as_ChannelKeys(long this_arg);
        /// LDKCVec_u8Z InMemoryChannelKeys_write(const LDKInMemoryChannelKeys *obj);
@@ -578,8 +610,8 @@ public class bindings {
        public static native void ChannelDetails_set_is_live(long this_ptr, boolean val);
        /// void PaymentSendFailure_free(LDKPaymentSendFailure this_ptr);
        public static native void PaymentSendFailure_free(long this_ptr);
-       /// MUST_USE_RES LDKChannelManager ChannelManager_new(LDKNetwork network, LDKFeeEstimator fee_est, LDKManyChannelMonitor monitor, LDKBroadcasterInterface tx_broadcaster, LDKLogger logger, LDKKeysInterface keys_manager, LDKUserConfig config, uintptr_t current_blockchain_height);
-       public static native long ChannelManager_new(LDKNetwork network, long fee_est, long monitor, long tx_broadcaster, long logger, long keys_manager, long config, long current_blockchain_height);
+       /// MUST_USE_RES LDKChannelManager ChannelManager_new(LDKNetwork network, LDKFeeEstimator fee_est, LDKWatch chain_monitor, LDKBroadcasterInterface tx_broadcaster, LDKLogger logger, LDKKeysInterface keys_manager, LDKUserConfig config, uintptr_t current_blockchain_height);
+       public static native long ChannelManager_new(LDKNetwork network, long fee_est, long chain_monitor, long tx_broadcaster, long logger, long keys_manager, long config, long current_blockchain_height);
        /// MUST_USE_RES LDKCResult_NoneAPIErrorZ ChannelManager_create_channel(const LDKChannelManager *this_arg, LDKPublicKey their_network_key, uint64_t channel_value_satoshis, uint64_t push_msat, uint64_t user_id, LDKUserConfig override_config);
        public static native long ChannelManager_create_channel(long this_arg, long their_network_key, long channel_value_satoshis, long push_msat, long user_id, long override_config);
        /// MUST_USE_RES LDKCVec_ChannelDetailsZ ChannelManager_list_channels(const LDKChannelManager *this_arg);
@@ -614,8 +646,10 @@ public class bindings {
        public static native long ChannelManager_as_MessageSendEventsProvider(long this_arg);
        /// LDKEventsProvider ChannelManager_as_EventsProvider(const LDKChannelManager *this_arg);
        public static native long ChannelManager_as_EventsProvider(long this_arg);
-       /// LDKChainListener ChannelManager_as_ChainListener(const LDKChannelManager *this_arg);
-       public static native long ChannelManager_as_ChainListener(long this_arg);
+       /// void ChannelManager_block_connected(const LDKChannelManager *this_arg, const uint8_t (*header)[80], LDKCVec_C2Tuple_usizeTransactionZZ txdata, uint32_t height);
+       public static native void ChannelManager_block_connected(long this_arg, byte[] header, long txdata, int height);
+       /// void ChannelManager_block_disconnected(const LDKChannelManager *this_arg, const uint8_t (*header)[80]);
+       public static native void ChannelManager_block_disconnected(long this_arg, byte[] header);
        /// LDKChannelMessageHandler ChannelManager_as_ChannelMessageHandler(const LDKChannelManager *this_arg);
        public static native long ChannelManager_as_ChannelMessageHandler(long this_arg);
        /// void ChannelManagerReadArgs_free(LDKChannelManagerReadArgs this_ptr);
@@ -628,10 +662,10 @@ public class bindings {
        public static native long ChannelManagerReadArgs_get_fee_estimator(long this_ptr);
        /// void ChannelManagerReadArgs_set_fee_estimator(LDKChannelManagerReadArgs *this_ptr, LDKFeeEstimator val);
        public static native void ChannelManagerReadArgs_set_fee_estimator(long this_ptr, long val);
-       /// const LDKManyChannelMonitor *ChannelManagerReadArgs_get_monitor(const LDKChannelManagerReadArgs *this_ptr);
-       public static native long ChannelManagerReadArgs_get_monitor(long this_ptr);
-       /// void ChannelManagerReadArgs_set_monitor(LDKChannelManagerReadArgs *this_ptr, LDKManyChannelMonitor val);
-       public static native void ChannelManagerReadArgs_set_monitor(long this_ptr, long val);
+       /// const LDKWatch *ChannelManagerReadArgs_get_chain_monitor(const LDKChannelManagerReadArgs *this_ptr);
+       public static native long ChannelManagerReadArgs_get_chain_monitor(long this_ptr);
+       /// void ChannelManagerReadArgs_set_chain_monitor(LDKChannelManagerReadArgs *this_ptr, LDKWatch val);
+       public static native void ChannelManagerReadArgs_set_chain_monitor(long this_ptr, long val);
        /// const LDKBroadcasterInterface *ChannelManagerReadArgs_get_tx_broadcaster(const LDKChannelManagerReadArgs *this_ptr);
        public static native long ChannelManagerReadArgs_get_tx_broadcaster(long this_ptr);
        /// void ChannelManagerReadArgs_set_tx_broadcaster(LDKChannelManagerReadArgs *this_ptr, LDKBroadcasterInterface val);
@@ -644,44 +678,8 @@ public class bindings {
        public static native long ChannelManagerReadArgs_get_default_config(long this_ptr);
        /// void ChannelManagerReadArgs_set_default_config(LDKChannelManagerReadArgs *this_ptr, LDKUserConfig val);
        public static native void ChannelManagerReadArgs_set_default_config(long this_ptr, long val);
-       /// MUST_USE_RES LDKChannelManagerReadArgs ChannelManagerReadArgs_new(LDKKeysInterface keys_manager, LDKFeeEstimator fee_estimator, LDKManyChannelMonitor monitor, LDKBroadcasterInterface tx_broadcaster, LDKLogger logger, LDKUserConfig default_config, LDKCVec_ChannelMonitorZ channel_monitors);
-       public static native long ChannelManagerReadArgs_new(long keys_manager, long fee_estimator, long monitor, long tx_broadcaster, long logger, long default_config, long channel_monitors);
-       /// void ChannelMonitorUpdate_free(LDKChannelMonitorUpdate this_ptr);
-       public static native void ChannelMonitorUpdate_free(long this_ptr);
-       /// uint64_t ChannelMonitorUpdate_get_update_id(const LDKChannelMonitorUpdate *this_ptr);
-       public static native long ChannelMonitorUpdate_get_update_id(long this_ptr);
-       /// void ChannelMonitorUpdate_set_update_id(LDKChannelMonitorUpdate *this_ptr, uint64_t val);
-       public static native void ChannelMonitorUpdate_set_update_id(long this_ptr, long val);
-       /// LDKCVec_u8Z ChannelMonitorUpdate_write(const LDKChannelMonitorUpdate *obj);
-       public static native long ChannelMonitorUpdate_write(long obj);
-       /// LDKChannelMonitorUpdate ChannelMonitorUpdate_read(LDKu8slice ser);
-       public static native long ChannelMonitorUpdate_read(long ser);
-       /// void MonitorUpdateError_free(LDKMonitorUpdateError this_ptr);
-       public static native void MonitorUpdateError_free(long this_ptr);
-       /// void MonitorEvent_free(LDKMonitorEvent this_ptr);
-       public static native void MonitorEvent_free(long this_ptr);
-       /// void HTLCUpdate_free(LDKHTLCUpdate this_ptr);
-       public static native void HTLCUpdate_free(long this_ptr);
-       /// LDKCVec_u8Z HTLCUpdate_write(const LDKHTLCUpdate *obj);
-       public static native long HTLCUpdate_write(long obj);
-       /// LDKHTLCUpdate HTLCUpdate_read(LDKu8slice ser);
-       public static native long HTLCUpdate_read(long ser);
-       /// void ChannelMonitor_free(LDKChannelMonitor this_ptr);
-       public static native void ChannelMonitor_free(long this_ptr);
-       /// void ManyChannelMonitor_free(LDKManyChannelMonitor this_ptr);
-       public static native void ManyChannelMonitor_free(long this_ptr);
-       /// MUST_USE_RES LDKCResult_NoneMonitorUpdateErrorZ ChannelMonitor_update_monitor(LDKChannelMonitor *this_arg, LDKChannelMonitorUpdate updates, const LDKBroadcasterInterface *broadcaster, const LDKLogger *logger);
-       public static native long ChannelMonitor_update_monitor(long this_arg, long updates, long broadcaster, long logger);
-       /// MUST_USE_RES uint64_t ChannelMonitor_get_latest_update_id(const LDKChannelMonitor *this_arg);
-       public static native long ChannelMonitor_get_latest_update_id(long this_arg);
-       /// MUST_USE_RES LDKC2Tuple_OutPointScriptZ ChannelMonitor_get_funding_txo(const LDKChannelMonitor *this_arg);
-       public static native long ChannelMonitor_get_funding_txo(long this_arg);
-       /// MUST_USE_RES LDKCVec_MonitorEventZ ChannelMonitor_get_and_clear_pending_monitor_events(LDKChannelMonitor *this_arg);
-       public static native long ChannelMonitor_get_and_clear_pending_monitor_events(long this_arg);
-       /// MUST_USE_RES LDKCVec_EventZ ChannelMonitor_get_and_clear_pending_events(LDKChannelMonitor *this_arg);
-       public static native long ChannelMonitor_get_and_clear_pending_events(long this_arg);
-       /// MUST_USE_RES LDKCVec_TransactionZ ChannelMonitor_get_latest_local_commitment_txn(LDKChannelMonitor *this_arg, const LDKLogger *logger);
-       public static native long ChannelMonitor_get_latest_local_commitment_txn(long this_arg, long logger);
+       /// MUST_USE_RES LDKChannelManagerReadArgs ChannelManagerReadArgs_new(LDKKeysInterface keys_manager, LDKFeeEstimator fee_estimator, LDKWatch chain_monitor, LDKBroadcasterInterface tx_broadcaster, LDKLogger logger, LDKUserConfig default_config, LDKCVec_ChannelMonitorZ channel_monitors);
+       public static native long ChannelManagerReadArgs_new(long keys_manager, long fee_estimator, long chain_monitor, long tx_broadcaster, long logger, long default_config, long channel_monitors);
        /// void DecodeError_free(LDKDecodeError this_ptr);
        public static native void DecodeError_free(long this_ptr);
        /// void Init_free(LDKInit this_ptr);
@@ -1076,6 +1074,10 @@ public class bindings {
        public static native void NetAddress_free(long this_ptr);
        /// void UnsignedNodeAnnouncement_free(LDKUnsignedNodeAnnouncement this_ptr);
        public static native void UnsignedNodeAnnouncement_free(long this_ptr);
+       /// LDKNodeFeatures UnsignedNodeAnnouncement_get_features(const LDKUnsignedNodeAnnouncement *this_ptr);
+       public static native long UnsignedNodeAnnouncement_get_features(long this_ptr);
+       /// void UnsignedNodeAnnouncement_set_features(LDKUnsignedNodeAnnouncement *this_ptr, LDKNodeFeatures val);
+       public static native void UnsignedNodeAnnouncement_set_features(long this_ptr, long val);
        /// uint32_t UnsignedNodeAnnouncement_get_timestamp(const LDKUnsignedNodeAnnouncement *this_ptr);
        public static native int UnsignedNodeAnnouncement_get_timestamp(long this_ptr);
        /// void UnsignedNodeAnnouncement_set_timestamp(LDKUnsignedNodeAnnouncement *this_ptr, uint32_t val);
@@ -1108,6 +1110,10 @@ public class bindings {
        public static native long NodeAnnouncement_new(long signature_arg, long contents_arg);
        /// void UnsignedChannelAnnouncement_free(LDKUnsignedChannelAnnouncement this_ptr);
        public static native void UnsignedChannelAnnouncement_free(long this_ptr);
+       /// LDKChannelFeatures UnsignedChannelAnnouncement_get_features(const LDKUnsignedChannelAnnouncement *this_ptr);
+       public static native long UnsignedChannelAnnouncement_get_features(long this_ptr);
+       /// void UnsignedChannelAnnouncement_set_features(LDKUnsignedChannelAnnouncement *this_ptr, LDKChannelFeatures val);
+       public static native void UnsignedChannelAnnouncement_set_features(long this_ptr, long val);
        /// const uint8_t (*UnsignedChannelAnnouncement_get_chain_hash(const LDKUnsignedChannelAnnouncement *this_ptr))[32];
        public static native byte[] UnsignedChannelAnnouncement_get_chain_hash(long this_ptr);
        /// void UnsignedChannelAnnouncement_set_chain_hash(LDKUnsignedChannelAnnouncement *this_ptr, LDKThirtyTwoBytes val);
@@ -1202,6 +1208,82 @@ public class bindings {
        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);
+       /// void QueryChannelRange_free(LDKQueryChannelRange this_ptr);
+       public static native void QueryChannelRange_free(long this_ptr);
+       /// const uint8_t (*QueryChannelRange_get_chain_hash(const LDKQueryChannelRange *this_ptr))[32];
+       public static native byte[] QueryChannelRange_get_chain_hash(long this_ptr);
+       /// void QueryChannelRange_set_chain_hash(LDKQueryChannelRange *this_ptr, LDKThirtyTwoBytes val);
+       public static native void QueryChannelRange_set_chain_hash(long this_ptr, long val);
+       /// uint32_t QueryChannelRange_get_first_blocknum(const LDKQueryChannelRange *this_ptr);
+       public static native int QueryChannelRange_get_first_blocknum(long this_ptr);
+       /// void QueryChannelRange_set_first_blocknum(LDKQueryChannelRange *this_ptr, uint32_t val);
+       public static native void QueryChannelRange_set_first_blocknum(long this_ptr, int val);
+       /// uint32_t QueryChannelRange_get_number_of_blocks(const LDKQueryChannelRange *this_ptr);
+       public static native int QueryChannelRange_get_number_of_blocks(long this_ptr);
+       /// void QueryChannelRange_set_number_of_blocks(LDKQueryChannelRange *this_ptr, uint32_t val);
+       public static native void QueryChannelRange_set_number_of_blocks(long this_ptr, int val);
+       /// MUST_USE_RES LDKQueryChannelRange QueryChannelRange_new(LDKThirtyTwoBytes chain_hash_arg, uint32_t first_blocknum_arg, uint32_t number_of_blocks_arg);
+       public static native long QueryChannelRange_new(long chain_hash_arg, int first_blocknum_arg, int number_of_blocks_arg);
+       /// void ReplyChannelRange_free(LDKReplyChannelRange this_ptr);
+       public static native void ReplyChannelRange_free(long this_ptr);
+       /// const uint8_t (*ReplyChannelRange_get_chain_hash(const LDKReplyChannelRange *this_ptr))[32];
+       public static native byte[] ReplyChannelRange_get_chain_hash(long this_ptr);
+       /// void ReplyChannelRange_set_chain_hash(LDKReplyChannelRange *this_ptr, LDKThirtyTwoBytes val);
+       public static native void ReplyChannelRange_set_chain_hash(long this_ptr, long val);
+       /// uint32_t ReplyChannelRange_get_first_blocknum(const LDKReplyChannelRange *this_ptr);
+       public static native int ReplyChannelRange_get_first_blocknum(long this_ptr);
+       /// void ReplyChannelRange_set_first_blocknum(LDKReplyChannelRange *this_ptr, uint32_t val);
+       public static native void ReplyChannelRange_set_first_blocknum(long this_ptr, int val);
+       /// uint32_t ReplyChannelRange_get_number_of_blocks(const LDKReplyChannelRange *this_ptr);
+       public static native int ReplyChannelRange_get_number_of_blocks(long this_ptr);
+       /// void ReplyChannelRange_set_number_of_blocks(LDKReplyChannelRange *this_ptr, uint32_t val);
+       public static native void ReplyChannelRange_set_number_of_blocks(long this_ptr, int val);
+       /// bool ReplyChannelRange_get_full_information(const LDKReplyChannelRange *this_ptr);
+       public static native boolean ReplyChannelRange_get_full_information(long this_ptr);
+       /// void ReplyChannelRange_set_full_information(LDKReplyChannelRange *this_ptr, bool val);
+       public static native void ReplyChannelRange_set_full_information(long this_ptr, boolean val);
+       /// void ReplyChannelRange_set_short_channel_ids(LDKReplyChannelRange *this_ptr, LDKCVec_u64Z val);
+       public static native void ReplyChannelRange_set_short_channel_ids(long this_ptr, long val);
+       /// MUST_USE_RES LDKReplyChannelRange ReplyChannelRange_new(LDKThirtyTwoBytes chain_hash_arg, uint32_t first_blocknum_arg, uint32_t number_of_blocks_arg, bool full_information_arg, LDKCVec_u64Z short_channel_ids_arg);
+       public static native long ReplyChannelRange_new(long chain_hash_arg, int first_blocknum_arg, int number_of_blocks_arg, boolean full_information_arg, long short_channel_ids_arg);
+       /// void QueryShortChannelIds_free(LDKQueryShortChannelIds this_ptr);
+       public static native void QueryShortChannelIds_free(long this_ptr);
+       /// const uint8_t (*QueryShortChannelIds_get_chain_hash(const LDKQueryShortChannelIds *this_ptr))[32];
+       public static native byte[] QueryShortChannelIds_get_chain_hash(long this_ptr);
+       /// void QueryShortChannelIds_set_chain_hash(LDKQueryShortChannelIds *this_ptr, LDKThirtyTwoBytes val);
+       public static native void QueryShortChannelIds_set_chain_hash(long this_ptr, long val);
+       /// void QueryShortChannelIds_set_short_channel_ids(LDKQueryShortChannelIds *this_ptr, LDKCVec_u64Z val);
+       public static native void QueryShortChannelIds_set_short_channel_ids(long this_ptr, long val);
+       /// MUST_USE_RES LDKQueryShortChannelIds QueryShortChannelIds_new(LDKThirtyTwoBytes chain_hash_arg, LDKCVec_u64Z short_channel_ids_arg);
+       public static native long QueryShortChannelIds_new(long chain_hash_arg, long short_channel_ids_arg);
+       /// void ReplyShortChannelIdsEnd_free(LDKReplyShortChannelIdsEnd this_ptr);
+       public static native void ReplyShortChannelIdsEnd_free(long this_ptr);
+       /// const uint8_t (*ReplyShortChannelIdsEnd_get_chain_hash(const LDKReplyShortChannelIdsEnd *this_ptr))[32];
+       public static native byte[] ReplyShortChannelIdsEnd_get_chain_hash(long this_ptr);
+       /// void ReplyShortChannelIdsEnd_set_chain_hash(LDKReplyShortChannelIdsEnd *this_ptr, LDKThirtyTwoBytes val);
+       public static native void ReplyShortChannelIdsEnd_set_chain_hash(long this_ptr, long val);
+       /// bool ReplyShortChannelIdsEnd_get_full_information(const LDKReplyShortChannelIdsEnd *this_ptr);
+       public static native boolean ReplyShortChannelIdsEnd_get_full_information(long this_ptr);
+       /// void ReplyShortChannelIdsEnd_set_full_information(LDKReplyShortChannelIdsEnd *this_ptr, bool val);
+       public static native void ReplyShortChannelIdsEnd_set_full_information(long this_ptr, boolean val);
+       /// MUST_USE_RES LDKReplyShortChannelIdsEnd ReplyShortChannelIdsEnd_new(LDKThirtyTwoBytes chain_hash_arg, bool full_information_arg);
+       public static native long ReplyShortChannelIdsEnd_new(long chain_hash_arg, boolean full_information_arg);
+       /// void GossipTimestampFilter_free(LDKGossipTimestampFilter this_ptr);
+       public static native void GossipTimestampFilter_free(long this_ptr);
+       /// const uint8_t (*GossipTimestampFilter_get_chain_hash(const LDKGossipTimestampFilter *this_ptr))[32];
+       public static native byte[] GossipTimestampFilter_get_chain_hash(long this_ptr);
+       /// void GossipTimestampFilter_set_chain_hash(LDKGossipTimestampFilter *this_ptr, LDKThirtyTwoBytes val);
+       public static native void GossipTimestampFilter_set_chain_hash(long this_ptr, long val);
+       /// uint32_t GossipTimestampFilter_get_first_timestamp(const LDKGossipTimestampFilter *this_ptr);
+       public static native int GossipTimestampFilter_get_first_timestamp(long this_ptr);
+       /// void GossipTimestampFilter_set_first_timestamp(LDKGossipTimestampFilter *this_ptr, uint32_t val);
+       public static native void GossipTimestampFilter_set_first_timestamp(long this_ptr, int val);
+       /// uint32_t GossipTimestampFilter_get_timestamp_range(const LDKGossipTimestampFilter *this_ptr);
+       public static native int GossipTimestampFilter_get_timestamp_range(long this_ptr);
+       /// void GossipTimestampFilter_set_timestamp_range(LDKGossipTimestampFilter *this_ptr, uint32_t val);
+       public static native void GossipTimestampFilter_set_timestamp_range(long this_ptr, int val);
+       /// MUST_USE_RES LDKGossipTimestampFilter GossipTimestampFilter_new(LDKThirtyTwoBytes chain_hash_arg, uint32_t first_timestamp_arg, uint32_t timestamp_range_arg);
+       public static native long GossipTimestampFilter_new(long chain_hash_arg, int first_timestamp_arg, int timestamp_range_arg);
        /// void ErrorAction_free(LDKErrorAction this_ptr);
        public static native void ErrorAction_free(long this_ptr);
        /// void LightningError_free(LDKLightningError this_ptr);
@@ -1346,6 +1428,26 @@ public class bindings {
        public static native long NodeAnnouncement_write(long obj);
        /// LDKNodeAnnouncement NodeAnnouncement_read(LDKu8slice ser);
        public static native long NodeAnnouncement_read(long ser);
+       /// LDKQueryShortChannelIds QueryShortChannelIds_read(LDKu8slice ser);
+       public static native long QueryShortChannelIds_read(long ser);
+       /// LDKCVec_u8Z QueryShortChannelIds_write(const LDKQueryShortChannelIds *obj);
+       public static native long QueryShortChannelIds_write(long obj);
+       /// LDKReplyShortChannelIdsEnd ReplyShortChannelIdsEnd_read(LDKu8slice ser);
+       public static native long ReplyShortChannelIdsEnd_read(long ser);
+       /// LDKCVec_u8Z ReplyShortChannelIdsEnd_write(const LDKReplyShortChannelIdsEnd *obj);
+       public static native long ReplyShortChannelIdsEnd_write(long obj);
+       /// LDKQueryChannelRange QueryChannelRange_read(LDKu8slice ser);
+       public static native long QueryChannelRange_read(long ser);
+       /// LDKCVec_u8Z QueryChannelRange_write(const LDKQueryChannelRange *obj);
+       public static native long QueryChannelRange_write(long obj);
+       /// LDKReplyChannelRange ReplyChannelRange_read(LDKu8slice ser);
+       public static native long ReplyChannelRange_read(long ser);
+       /// LDKCVec_u8Z ReplyChannelRange_write(const LDKReplyChannelRange *obj);
+       public static native long ReplyChannelRange_write(long obj);
+       /// LDKGossipTimestampFilter GossipTimestampFilter_read(LDKu8slice ser);
+       public static native long GossipTimestampFilter_read(long ser);
+       /// LDKCVec_u8Z GossipTimestampFilter_write(const LDKGossipTimestampFilter *obj);
+       public static native long GossipTimestampFilter_write(long obj);
        /// void MessageHandler_free(LDKMessageHandler this_ptr);
        public static native void MessageHandler_free(long this_ptr);
        /// const LDKChannelMessageHandler *MessageHandler_get_chan_handler(const LDKMessageHandler *this_ptr);
@@ -1390,6 +1492,14 @@ public class bindings {
        public static native void PeerManager_timer_tick_occured(long this_arg);
        /// LDKThirtyTwoBytes build_commitment_secret(const uint8_t (*commitment_seed)[32], uint64_t idx);
        public static native long build_commitment_secret(byte[] commitment_seed, long idx);
+       /// LDKCResult_SecretKeySecpErrorZ derive_private_key(LDKPublicKey per_commitment_point, const uint8_t (*base_secret)[32]);
+       public static native long derive_private_key(long per_commitment_point, byte[] base_secret);
+       /// LDKCResult_PublicKeySecpErrorZ derive_public_key(LDKPublicKey per_commitment_point, LDKPublicKey base_point);
+       public static native long derive_public_key(long per_commitment_point, long base_point);
+       /// LDKCResult_SecretKeySecpErrorZ derive_private_revocation_key(const uint8_t (*per_commitment_secret)[32], const uint8_t (*countersignatory_revocation_base_secret)[32]);
+       public static native long derive_private_revocation_key(byte[] per_commitment_secret, byte[] countersignatory_revocation_base_secret);
+       /// LDKCResult_PublicKeySecpErrorZ derive_public_revocation_key(LDKPublicKey per_commitment_point, LDKPublicKey countersignatory_revocation_base_point);
+       public static native long derive_public_revocation_key(long per_commitment_point, long countersignatory_revocation_base_point);
        /// void TxCreationKeys_free(LDKTxCreationKeys this_ptr);
        public static native void TxCreationKeys_free(long this_ptr);
        /// LDKPublicKey TxCreationKeys_get_per_commitment_point(const LDKTxCreationKeys *this_ptr);
@@ -1400,20 +1510,20 @@ public class bindings {
        public static native long TxCreationKeys_get_revocation_key(long this_ptr);
        /// void TxCreationKeys_set_revocation_key(LDKTxCreationKeys *this_ptr, LDKPublicKey val);
        public static native void TxCreationKeys_set_revocation_key(long this_ptr, long val);
-       /// LDKPublicKey TxCreationKeys_get_a_htlc_key(const LDKTxCreationKeys *this_ptr);
-       public static native long TxCreationKeys_get_a_htlc_key(long this_ptr);
-       /// void TxCreationKeys_set_a_htlc_key(LDKTxCreationKeys *this_ptr, LDKPublicKey val);
-       public static native void TxCreationKeys_set_a_htlc_key(long this_ptr, long val);
-       /// LDKPublicKey TxCreationKeys_get_b_htlc_key(const LDKTxCreationKeys *this_ptr);
-       public static native long TxCreationKeys_get_b_htlc_key(long this_ptr);
-       /// void TxCreationKeys_set_b_htlc_key(LDKTxCreationKeys *this_ptr, LDKPublicKey val);
-       public static native void TxCreationKeys_set_b_htlc_key(long this_ptr, long val);
-       /// LDKPublicKey TxCreationKeys_get_a_delayed_payment_key(const LDKTxCreationKeys *this_ptr);
-       public static native long TxCreationKeys_get_a_delayed_payment_key(long this_ptr);
-       /// void TxCreationKeys_set_a_delayed_payment_key(LDKTxCreationKeys *this_ptr, LDKPublicKey val);
-       public static native void TxCreationKeys_set_a_delayed_payment_key(long this_ptr, long val);
-       /// MUST_USE_RES LDKTxCreationKeys TxCreationKeys_new(LDKPublicKey per_commitment_point_arg, LDKPublicKey revocation_key_arg, LDKPublicKey a_htlc_key_arg, LDKPublicKey b_htlc_key_arg, LDKPublicKey a_delayed_payment_key_arg);
-       public static native long TxCreationKeys_new(long per_commitment_point_arg, long revocation_key_arg, long a_htlc_key_arg, long b_htlc_key_arg, long a_delayed_payment_key_arg);
+       /// LDKPublicKey TxCreationKeys_get_broadcaster_htlc_key(const LDKTxCreationKeys *this_ptr);
+       public static native long TxCreationKeys_get_broadcaster_htlc_key(long this_ptr);
+       /// void TxCreationKeys_set_broadcaster_htlc_key(LDKTxCreationKeys *this_ptr, LDKPublicKey val);
+       public static native void TxCreationKeys_set_broadcaster_htlc_key(long this_ptr, long val);
+       /// LDKPublicKey TxCreationKeys_get_countersignatory_htlc_key(const LDKTxCreationKeys *this_ptr);
+       public static native long TxCreationKeys_get_countersignatory_htlc_key(long this_ptr);
+       /// void TxCreationKeys_set_countersignatory_htlc_key(LDKTxCreationKeys *this_ptr, LDKPublicKey val);
+       public static native void TxCreationKeys_set_countersignatory_htlc_key(long this_ptr, long val);
+       /// LDKPublicKey TxCreationKeys_get_broadcaster_delayed_payment_key(const LDKTxCreationKeys *this_ptr);
+       public static native long TxCreationKeys_get_broadcaster_delayed_payment_key(long this_ptr);
+       /// void TxCreationKeys_set_broadcaster_delayed_payment_key(LDKTxCreationKeys *this_ptr, LDKPublicKey val);
+       public static native void TxCreationKeys_set_broadcaster_delayed_payment_key(long this_ptr, long val);
+       /// MUST_USE_RES LDKTxCreationKeys TxCreationKeys_new(LDKPublicKey per_commitment_point_arg, LDKPublicKey revocation_key_arg, LDKPublicKey broadcaster_htlc_key_arg, LDKPublicKey countersignatory_htlc_key_arg, LDKPublicKey broadcaster_delayed_payment_key_arg);
+       public static native long TxCreationKeys_new(long per_commitment_point_arg, long revocation_key_arg, long broadcaster_htlc_key_arg, long countersignatory_htlc_key_arg, long broadcaster_delayed_payment_key_arg);
        /// LDKCVec_u8Z TxCreationKeys_write(const LDKTxCreationKeys *obj);
        public static native long TxCreationKeys_write(long obj);
        /// LDKTxCreationKeys TxCreationKeys_read(LDKu8slice ser);
@@ -1454,10 +1564,10 @@ public class bindings {
        public static native long ChannelPublicKeys_write(long obj);
        /// LDKChannelPublicKeys ChannelPublicKeys_read(LDKu8slice ser);
        public static native long ChannelPublicKeys_read(long ser);
-       /// MUST_USE_RES LDKCResult_TxCreationKeysSecpErrorZ TxCreationKeys_derive_new(LDKPublicKey per_commitment_point, LDKPublicKey a_delayed_payment_base, LDKPublicKey a_htlc_base, LDKPublicKey b_revocation_base, LDKPublicKey b_htlc_base);
-       public static native long TxCreationKeys_derive_new(long per_commitment_point, long a_delayed_payment_base, long a_htlc_base, long b_revocation_base, long b_htlc_base);
-       /// LDKCVec_u8Z get_revokeable_redeemscript(LDKPublicKey revocation_key, uint16_t to_self_delay, LDKPublicKey delayed_payment_key);
-       public static native long get_revokeable_redeemscript(long revocation_key, short to_self_delay, long delayed_payment_key);
+       /// MUST_USE_RES LDKCResult_TxCreationKeysSecpErrorZ TxCreationKeys_derive_new(LDKPublicKey per_commitment_point, LDKPublicKey broadcaster_delayed_payment_base, LDKPublicKey broadcaster_htlc_base, LDKPublicKey countersignatory_revocation_base, LDKPublicKey countersignatory_htlc_base);
+       public static native long TxCreationKeys_derive_new(long per_commitment_point, long broadcaster_delayed_payment_base, long broadcaster_htlc_base, long countersignatory_revocation_base, long countersignatory_htlc_base);
+       /// LDKCVec_u8Z get_revokeable_redeemscript(LDKPublicKey revocation_key, uint16_t contest_delay, LDKPublicKey broadcaster_delayed_payment_key);
+       public static native long get_revokeable_redeemscript(long revocation_key, short contest_delay, long broadcaster_delayed_payment_key);
        /// void HTLCOutputInCommitment_free(LDKHTLCOutputInCommitment this_ptr);
        public static native void HTLCOutputInCommitment_free(long this_ptr);
        /// bool HTLCOutputInCommitment_get_offered(const LDKHTLCOutputInCommitment *this_ptr);
@@ -1482,40 +1592,40 @@ public class bindings {
        public static native long HTLCOutputInCommitment_read(long ser);
        /// LDKCVec_u8Z get_htlc_redeemscript(const LDKHTLCOutputInCommitment *htlc, const LDKTxCreationKeys *keys);
        public static native long get_htlc_redeemscript(long htlc, long keys);
-       /// LDKCVec_u8Z make_funding_redeemscript(LDKPublicKey a, LDKPublicKey b);
-       public static native long make_funding_redeemscript(long a, long b);
-       /// LDKCVec_u8Z build_htlc_transaction(const uint8_t (*prev_hash)[32], uint32_t feerate_per_kw, uint16_t to_self_delay, const LDKHTLCOutputInCommitment *htlc, LDKPublicKey a_delayed_payment_key, LDKPublicKey revocation_key);
-       public static native long build_htlc_transaction(byte[] prev_hash, int feerate_per_kw, short to_self_delay, long htlc, long a_delayed_payment_key, long revocation_key);
-       /// void LocalCommitmentTransaction_free(LDKLocalCommitmentTransaction this_ptr);
-       public static native void LocalCommitmentTransaction_free(long this_ptr);
-       /// LDKCVec_u8Z LocalCommitmentTransaction_get_unsigned_tx(const LDKLocalCommitmentTransaction *this_ptr);
-       public static native long LocalCommitmentTransaction_get_unsigned_tx(long this_ptr);
-       /// void LocalCommitmentTransaction_set_unsigned_tx(LDKLocalCommitmentTransaction *this_ptr, LDKCVec_u8Z val);
-       public static native void LocalCommitmentTransaction_set_unsigned_tx(long this_ptr, long val);
-       /// LDKSignature LocalCommitmentTransaction_get_their_sig(const LDKLocalCommitmentTransaction *this_ptr);
-       public static native long LocalCommitmentTransaction_get_their_sig(long this_ptr);
-       /// void LocalCommitmentTransaction_set_their_sig(LDKLocalCommitmentTransaction *this_ptr, LDKSignature val);
-       public static native void LocalCommitmentTransaction_set_their_sig(long this_ptr, long val);
-       /// uint32_t LocalCommitmentTransaction_get_feerate_per_kw(const LDKLocalCommitmentTransaction *this_ptr);
-       public static native int LocalCommitmentTransaction_get_feerate_per_kw(long this_ptr);
-       /// void LocalCommitmentTransaction_set_feerate_per_kw(LDKLocalCommitmentTransaction *this_ptr, uint32_t val);
-       public static native void LocalCommitmentTransaction_set_feerate_per_kw(long this_ptr, int val);
-       /// void LocalCommitmentTransaction_set_per_htlc(LDKLocalCommitmentTransaction *this_ptr, LDKCVec_C2Tuple_HTLCOutputInCommitmentSignatureZZ val);
-       public static native void LocalCommitmentTransaction_set_per_htlc(long this_ptr, long val);
-       /// MUST_USE_RES LDKLocalCommitmentTransaction LocalCommitmentTransaction_new_missing_local_sig(LDKCVec_u8Z unsigned_tx, LDKSignature their_sig, LDKPublicKey our_funding_key, LDKPublicKey their_funding_key, LDKTxCreationKeys local_keys, uint32_t feerate_per_kw, LDKCVec_C2Tuple_HTLCOutputInCommitmentSignatureZZ htlc_data);
-       public static native long LocalCommitmentTransaction_new_missing_local_sig(long unsigned_tx, long their_sig, long our_funding_key, long their_funding_key, long local_keys, int feerate_per_kw, long htlc_data);
-       /// MUST_USE_RES LDKTxCreationKeys LocalCommitmentTransaction_trust_key_derivation(const LDKLocalCommitmentTransaction *this_arg);
-       public static native long LocalCommitmentTransaction_trust_key_derivation(long this_arg);
-       /// MUST_USE_RES LDKThirtyTwoBytes LocalCommitmentTransaction_txid(const LDKLocalCommitmentTransaction *this_arg);
-       public static native long LocalCommitmentTransaction_txid(long this_arg);
-       /// MUST_USE_RES LDKSignature LocalCommitmentTransaction_get_local_sig(const LDKLocalCommitmentTransaction *this_arg, const uint8_t (*funding_key)[32], LDKu8slice funding_redeemscript, uint64_t channel_value_satoshis);
-       public static native long LocalCommitmentTransaction_get_local_sig(long this_arg, byte[] funding_key, long funding_redeemscript, long channel_value_satoshis);
-       /// MUST_USE_RES LDKCResult_CVec_SignatureZNoneZ LocalCommitmentTransaction_get_htlc_sigs(const LDKLocalCommitmentTransaction *this_arg, const uint8_t (*htlc_base_key)[32], uint16_t local_csv);
-       public static native long LocalCommitmentTransaction_get_htlc_sigs(long this_arg, byte[] htlc_base_key, short local_csv);
-       /// LDKCVec_u8Z LocalCommitmentTransaction_write(const LDKLocalCommitmentTransaction *obj);
-       public static native long LocalCommitmentTransaction_write(long obj);
-       /// LDKLocalCommitmentTransaction LocalCommitmentTransaction_read(LDKu8slice ser);
-       public static native long LocalCommitmentTransaction_read(long ser);
+       /// LDKCVec_u8Z make_funding_redeemscript(LDKPublicKey broadcaster, LDKPublicKey countersignatory);
+       public static native long make_funding_redeemscript(long broadcaster, long countersignatory);
+       /// LDKTransaction build_htlc_transaction(const uint8_t (*prev_hash)[32], uint32_t feerate_per_kw, uint16_t contest_delay, const LDKHTLCOutputInCommitment *htlc, LDKPublicKey broadcaster_delayed_payment_key, LDKPublicKey revocation_key);
+       public static native long build_htlc_transaction(byte[] prev_hash, int feerate_per_kw, short contest_delay, long htlc, long broadcaster_delayed_payment_key, long revocation_key);
+       /// void HolderCommitmentTransaction_free(LDKHolderCommitmentTransaction this_ptr);
+       public static native void HolderCommitmentTransaction_free(long this_ptr);
+       /// LDKTransaction HolderCommitmentTransaction_get_unsigned_tx(const LDKHolderCommitmentTransaction *this_ptr);
+       public static native long HolderCommitmentTransaction_get_unsigned_tx(long this_ptr);
+       /// 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);
+       /// void HolderCommitmentTransaction_set_counterparty_sig(LDKHolderCommitmentTransaction *this_ptr, LDKSignature val);
+       public static native void HolderCommitmentTransaction_set_counterparty_sig(long this_ptr, long 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);
+       public static native void HolderCommitmentTransaction_set_feerate_per_kw(long this_ptr, int val);
+       /// 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, long holder_funding_key, long 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 long 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);
+       /// 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);
+       public static native long HolderCommitmentTransaction_write(long obj);
+       /// LDKHolderCommitmentTransaction HolderCommitmentTransaction_read(LDKu8slice ser);
+       public static native long HolderCommitmentTransaction_read(long ser);
        /// void InitFeatures_free(LDKInitFeatures this_ptr);
        public static native void InitFeatures_free(long this_ptr);
        /// void NodeFeatures_free(LDKNodeFeatures this_ptr);
@@ -1528,10 +1638,18 @@ public class bindings {
        public static native long RouteHop_get_pubkey(long this_ptr);
        /// void RouteHop_set_pubkey(LDKRouteHop *this_ptr, LDKPublicKey val);
        public static native void RouteHop_set_pubkey(long this_ptr, long val);
+       /// LDKNodeFeatures RouteHop_get_node_features(const LDKRouteHop *this_ptr);
+       public static native long RouteHop_get_node_features(long this_ptr);
+       /// void RouteHop_set_node_features(LDKRouteHop *this_ptr, LDKNodeFeatures val);
+       public static native void RouteHop_set_node_features(long this_ptr, long val);
        /// uint64_t RouteHop_get_short_channel_id(const LDKRouteHop *this_ptr);
        public static native long RouteHop_get_short_channel_id(long this_ptr);
        /// void RouteHop_set_short_channel_id(LDKRouteHop *this_ptr, uint64_t val);
        public static native void RouteHop_set_short_channel_id(long this_ptr, long val);
+       /// LDKChannelFeatures RouteHop_get_channel_features(const LDKRouteHop *this_ptr);
+       public static native long RouteHop_get_channel_features(long this_ptr);
+       /// void RouteHop_set_channel_features(LDKRouteHop *this_ptr, LDKChannelFeatures val);
+       public static native void RouteHop_set_channel_features(long this_ptr, long val);
        /// uint64_t RouteHop_get_fee_msat(const LDKRouteHop *this_ptr);
        public static native long RouteHop_get_fee_msat(long this_ptr);
        /// void RouteHop_set_fee_msat(LDKRouteHop *this_ptr, uint64_t val);
@@ -1540,6 +1658,8 @@ public class bindings {
        public static native int RouteHop_get_cltv_expiry_delta(long this_ptr);
        /// void RouteHop_set_cltv_expiry_delta(LDKRouteHop *this_ptr, uint32_t val);
        public static native void RouteHop_set_cltv_expiry_delta(long this_ptr, int val);
+       /// MUST_USE_RES LDKRouteHop RouteHop_new(LDKPublicKey pubkey_arg, LDKNodeFeatures node_features_arg, uint64_t short_channel_id_arg, LDKChannelFeatures channel_features_arg, uint64_t fee_msat_arg, uint32_t cltv_expiry_delta_arg);
+       public static native long RouteHop_new(long pubkey_arg, long node_features_arg, long short_channel_id_arg, long channel_features_arg, long fee_msat_arg, int cltv_expiry_delta_arg);
        /// void Route_free(LDKRoute this_ptr);
        public static native void Route_free(long this_ptr);
        /// void Route_set_paths(LDKRoute *this_ptr, LDKCVec_CVec_RouteHopZZ val);
@@ -1582,10 +1702,10 @@ public class bindings {
        public static native void LockedNetworkGraph_free(long this_ptr);
        /// void NetGraphMsgHandler_free(LDKNetGraphMsgHandler this_ptr);
        public static native void NetGraphMsgHandler_free(long this_ptr);
-       /// MUST_USE_RES LDKNetGraphMsgHandler NetGraphMsgHandler_new(LDKChainWatchInterface chain_monitor, LDKLogger logger);
-       public static native long NetGraphMsgHandler_new(long chain_monitor, long logger);
-       /// MUST_USE_RES LDKNetGraphMsgHandler NetGraphMsgHandler_from_net_graph(LDKChainWatchInterface chain_monitor, LDKLogger logger, LDKNetworkGraph network_graph);
-       public static native long NetGraphMsgHandler_from_net_graph(long chain_monitor, long logger, long network_graph);
+       /// MUST_USE_RES LDKNetGraphMsgHandler NetGraphMsgHandler_new(LDKAccess *chain_access, LDKLogger logger);
+       public static native long NetGraphMsgHandler_new(long chain_access, long logger);
+       /// MUST_USE_RES LDKNetGraphMsgHandler NetGraphMsgHandler_from_net_graph(LDKAccess *chain_access, LDKLogger logger, LDKNetworkGraph network_graph);
+       public static native long NetGraphMsgHandler_from_net_graph(long chain_access, long logger, long network_graph);
        /// MUST_USE_RES LDKLockedNetworkGraph NetGraphMsgHandler_read_locked_graph(const LDKNetGraphMsgHandler *this_arg);
        public static native long NetGraphMsgHandler_read_locked_graph(long this_arg);
        /// MUST_USE_RES LDKNetworkGraph LockedNetworkGraph_graph(const LDKLockedNetworkGraph *this_arg);
@@ -1610,12 +1730,20 @@ public class bindings {
        public static native long DirectionalChannelInfo_get_htlc_minimum_msat(long this_ptr);
        /// void DirectionalChannelInfo_set_htlc_minimum_msat(LDKDirectionalChannelInfo *this_ptr, uint64_t val);
        public static native void DirectionalChannelInfo_set_htlc_minimum_msat(long this_ptr, long val);
+       /// LDKChannelUpdate DirectionalChannelInfo_get_last_update_message(const LDKDirectionalChannelInfo *this_ptr);
+       public static native long DirectionalChannelInfo_get_last_update_message(long this_ptr);
+       /// void DirectionalChannelInfo_set_last_update_message(LDKDirectionalChannelInfo *this_ptr, LDKChannelUpdate val);
+       public static native void DirectionalChannelInfo_set_last_update_message(long this_ptr, long val);
        /// LDKCVec_u8Z DirectionalChannelInfo_write(const LDKDirectionalChannelInfo *obj);
        public static native long DirectionalChannelInfo_write(long obj);
        /// LDKDirectionalChannelInfo DirectionalChannelInfo_read(LDKu8slice ser);
        public static native long DirectionalChannelInfo_read(long ser);
        /// void ChannelInfo_free(LDKChannelInfo this_ptr);
        public static native void ChannelInfo_free(long this_ptr);
+       /// LDKChannelFeatures ChannelInfo_get_features(const LDKChannelInfo *this_ptr);
+       public static native long ChannelInfo_get_features(long this_ptr);
+       /// void ChannelInfo_set_features(LDKChannelInfo *this_ptr, LDKChannelFeatures val);
+       public static native void ChannelInfo_set_features(long this_ptr, long val);
        /// LDKPublicKey ChannelInfo_get_node_one(const LDKChannelInfo *this_ptr);
        public static native long ChannelInfo_get_node_one(long this_ptr);
        /// void ChannelInfo_set_node_one(LDKChannelInfo *this_ptr, LDKPublicKey val);
@@ -1632,6 +1760,10 @@ public class bindings {
        public static native long ChannelInfo_get_two_to_one(long this_ptr);
        /// void ChannelInfo_set_two_to_one(LDKChannelInfo *this_ptr, LDKDirectionalChannelInfo val);
        public static native void ChannelInfo_set_two_to_one(long this_ptr, long val);
+       /// LDKChannelAnnouncement ChannelInfo_get_announcement_message(const LDKChannelInfo *this_ptr);
+       public static native long ChannelInfo_get_announcement_message(long this_ptr);
+       /// void ChannelInfo_set_announcement_message(LDKChannelInfo *this_ptr, LDKChannelAnnouncement val);
+       public static native void ChannelInfo_set_announcement_message(long this_ptr, long val);
        /// LDKCVec_u8Z ChannelInfo_write(const LDKChannelInfo *obj);
        public static native long ChannelInfo_write(long obj);
        /// LDKChannelInfo ChannelInfo_read(LDKu8slice ser);
@@ -1654,6 +1786,10 @@ public class bindings {
        public static native long RoutingFees_write(long obj);
        /// void NodeAnnouncementInfo_free(LDKNodeAnnouncementInfo this_ptr);
        public static native void NodeAnnouncementInfo_free(long this_ptr);
+       /// LDKNodeFeatures NodeAnnouncementInfo_get_features(const LDKNodeAnnouncementInfo *this_ptr);
+       public static native long NodeAnnouncementInfo_get_features(long this_ptr);
+       /// void NodeAnnouncementInfo_set_features(LDKNodeAnnouncementInfo *this_ptr, LDKNodeFeatures val);
+       public static native void NodeAnnouncementInfo_set_features(long this_ptr, long val);
        /// uint32_t NodeAnnouncementInfo_get_last_update(const LDKNodeAnnouncementInfo *this_ptr);
        public static native int NodeAnnouncementInfo_get_last_update(long this_ptr);
        /// void NodeAnnouncementInfo_set_last_update(LDKNodeAnnouncementInfo *this_ptr, uint32_t val);
@@ -1668,6 +1804,12 @@ public class bindings {
        public static native void NodeAnnouncementInfo_set_alias(long this_ptr, long val);
        /// void NodeAnnouncementInfo_set_addresses(LDKNodeAnnouncementInfo *this_ptr, LDKCVec_NetAddressZ val);
        public static native void NodeAnnouncementInfo_set_addresses(long this_ptr, long val);
+       /// LDKNodeAnnouncement NodeAnnouncementInfo_get_announcement_message(const LDKNodeAnnouncementInfo *this_ptr);
+       public static native long NodeAnnouncementInfo_get_announcement_message(long this_ptr);
+       /// 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, long 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);