[Java] Correct trivial race condition in HumanObjectPeerTest
[ldk-java] / ts / bindings.c.body
index a82a5733771fb60c911d1cadacd0f926fc94b47b..1e18b430510367c1783751aaac8d5942cf2d8018 100644 (file)
@@ -320,6 +320,31 @@ static inline int32_t LDKSiPrefix_to_js(LDKSiPrefix val) {
                default: abort();
        }
 }
+uint32_t __attribute__((export_name("TS_LDKBech32Error_ty_from_ptr"))) TS_LDKBech32Error_ty_from_ptr(uint32_t ptr) {
+       LDKBech32Error *obj = (LDKBech32Error*)(ptr & ~1);
+       switch(obj->tag) {
+               case LDKBech32Error_MissingSeparator: return 0;
+               case LDKBech32Error_InvalidChecksum: return 1;
+               case LDKBech32Error_InvalidLength: return 2;
+               case LDKBech32Error_InvalidChar: return 3;
+               case LDKBech32Error_InvalidData: return 4;
+               case LDKBech32Error_InvalidPadding: return 5;
+               case LDKBech32Error_MixedCase: return 6;
+               default: abort();
+       }
+}
+int32_t __attribute__((export_name("TS_LDKBech32Error_InvalidChar_get_invalid_char"))) TS_LDKBech32Error_InvalidChar_get_invalid_char(uint32_t ptr) {
+       LDKBech32Error *obj = (LDKBech32Error*)(ptr & ~1);
+       assert(obj->tag == LDKBech32Error_InvalidChar);
+                       int32_t invalid_char_conv = obj->invalid_char;
+       return invalid_char_conv;
+}
+int8_t __attribute__((export_name("TS_LDKBech32Error_InvalidData_get_invalid_data"))) TS_LDKBech32Error_InvalidData_get_invalid_data(uint32_t ptr) {
+       LDKBech32Error *obj = (LDKBech32Error*)(ptr & ~1);
+       assert(obj->tag == LDKBech32Error_InvalidData);
+                       int8_t invalid_data_conv = obj->invalid_data;
+       return invalid_data_conv;
+}
 static inline LDKCVec_u8Z CVec_u8Z_clone(const LDKCVec_u8Z *orig) {
        LDKCVec_u8Z ret = { .data = MALLOC(sizeof(int8_t) * orig->datalen, "LDKCVec_u8Z clone bytes"), .datalen = orig->datalen };
        memcpy(ret.data, orig->data, sizeof(int8_t) * ret.datalen);
@@ -336,8 +361,8 @@ struct LDKCVec_u8Z TxOut_get_script_pubkey (struct LDKTxOut* thing) {       return CVe
 
 uint64_t TxOut_get_value (struct LDKTxOut* thing) {    return thing->value;}int64_t  __attribute__((export_name("TS_TxOut_get_value"))) TS_TxOut_get_value(uint32_t thing) {
        LDKTxOut* thing_conv = (LDKTxOut*)(thing & ~1);
-       int64_t ret_val = TxOut_get_value(thing_conv);
-       return ret_val;
+       int64_t ret_conv = TxOut_get_value(thing_conv);
+       return ret_conv;
 }
 
 static inline void CResult_NoneNoneZ_get_ok(LDKCResult_NoneNoneZ *NONNULL_PTR owner){
@@ -547,7 +572,8 @@ uint32_t __attribute__((export_name("TS_LDKCOption_u32Z_ty_from_ptr"))) TS_LDKCO
 int32_t __attribute__((export_name("TS_LDKCOption_u32Z_Some_get_some"))) TS_LDKCOption_u32Z_Some_get_some(uint32_t ptr) {
        LDKCOption_u32Z *obj = (LDKCOption_u32Z*)(ptr & ~1);
        assert(obj->tag == LDKCOption_u32Z_Some);
-       return obj->some;
+                       int32_t some_conv = obj->some;
+       return some_conv;
 }
 static inline struct LDKHTLCOutputInCommitment CResult_HTLCOutputInCommitmentDecodeErrorZ_get_ok(LDKCResult_HTLCOutputInCommitmentDecodeErrorZ *NONNULL_PTR owner){
 CHECK(owner->result_ok);
@@ -1053,7 +1079,8 @@ uint32_t __attribute__((export_name("TS_LDKCOption_u64Z_ty_from_ptr"))) TS_LDKCO
 int64_t __attribute__((export_name("TS_LDKCOption_u64Z_Some_get_some"))) TS_LDKCOption_u64Z_Some_get_some(uint32_t ptr) {
        LDKCOption_u64Z *obj = (LDKCOption_u64Z*)(ptr & ~1);
        assert(obj->tag == LDKCOption_u64Z_Some);
-       return obj->some;
+                       int64_t some_conv = obj->some;
+       return some_conv;
 }
 static inline struct LDKPaymentParameters CResult_PaymentParametersDecodeErrorZ_get_ok(LDKCResult_PaymentParametersDecodeErrorZ *NONNULL_PTR owner){
 CHECK(owner->result_ok);
@@ -1239,8 +1266,8 @@ static inline uintptr_t C2Tuple_usizeTransactionZ_get_a(LDKC2Tuple_usizeTransact
 }
 uint32_t  __attribute__((export_name("TS_C2Tuple_usizeTransactionZ_get_a"))) TS_C2Tuple_usizeTransactionZ_get_a(uint32_t owner) {
        LDKC2Tuple_usizeTransactionZ* owner_conv = (LDKC2Tuple_usizeTransactionZ*)(owner & ~1);
-       uint32_t ret_val = C2Tuple_usizeTransactionZ_get_a(owner_conv);
-       return ret_val;
+       uint32_t ret_conv = C2Tuple_usizeTransactionZ_get_a(owner_conv);
+       return ret_conv;
 }
 
 static inline struct LDKTransaction C2Tuple_usizeTransactionZ_get_b(LDKC2Tuple_usizeTransactionZ *NONNULL_PTR owner){
@@ -1333,7 +1360,8 @@ uint32_t __attribute__((export_name("TS_LDKMonitorEvent_UpdateCompleted_get_fund
 int64_t __attribute__((export_name("TS_LDKMonitorEvent_UpdateCompleted_get_monitor_update_id"))) TS_LDKMonitorEvent_UpdateCompleted_get_monitor_update_id(uint32_t ptr) {
        LDKMonitorEvent *obj = (LDKMonitorEvent*)(ptr & ~1);
        assert(obj->tag == LDKMonitorEvent_UpdateCompleted);
-       return obj->update_completed.monitor_update_id;
+                       int64_t monitor_update_id_conv = obj->update_completed.monitor_update_id;
+       return monitor_update_id_conv;
 }
 uint32_t __attribute__((export_name("TS_LDKMonitorEvent_UpdateFailed_get_update_failed"))) TS_LDKMonitorEvent_UpdateFailed_get_update_failed(uint32_t ptr) {
        LDKMonitorEvent *obj = (LDKMonitorEvent*)(ptr & ~1);
@@ -1464,12 +1492,14 @@ uint32_t __attribute__((export_name("TS_LDKNetworkUpdate_ChannelUpdateMessage_ge
 int64_t __attribute__((export_name("TS_LDKNetworkUpdate_ChannelClosed_get_short_channel_id"))) TS_LDKNetworkUpdate_ChannelClosed_get_short_channel_id(uint32_t ptr) {
        LDKNetworkUpdate *obj = (LDKNetworkUpdate*)(ptr & ~1);
        assert(obj->tag == LDKNetworkUpdate_ChannelClosed);
-       return obj->channel_closed.short_channel_id;
+                       int64_t short_channel_id_conv = obj->channel_closed.short_channel_id;
+       return short_channel_id_conv;
 }
 jboolean __attribute__((export_name("TS_LDKNetworkUpdate_ChannelClosed_get_is_permanent"))) TS_LDKNetworkUpdate_ChannelClosed_get_is_permanent(uint32_t ptr) {
        LDKNetworkUpdate *obj = (LDKNetworkUpdate*)(ptr & ~1);
        assert(obj->tag == LDKNetworkUpdate_ChannelClosed);
-       return obj->channel_closed.is_permanent;
+                       jboolean is_permanent_conv = obj->channel_closed.is_permanent;
+       return is_permanent_conv;
 }
 int8_tArray __attribute__((export_name("TS_LDKNetworkUpdate_NodeFailure_get_node_id"))) TS_LDKNetworkUpdate_NodeFailure_get_node_id(uint32_t ptr) {
        LDKNetworkUpdate *obj = (LDKNetworkUpdate*)(ptr & ~1);
@@ -1481,7 +1511,8 @@ int8_tArray __attribute__((export_name("TS_LDKNetworkUpdate_NodeFailure_get_node
 jboolean __attribute__((export_name("TS_LDKNetworkUpdate_NodeFailure_get_is_permanent"))) TS_LDKNetworkUpdate_NodeFailure_get_is_permanent(uint32_t ptr) {
        LDKNetworkUpdate *obj = (LDKNetworkUpdate*)(ptr & ~1);
        assert(obj->tag == LDKNetworkUpdate_NodeFailure);
-       return obj->node_failure.is_permanent;
+                       jboolean is_permanent_conv = obj->node_failure.is_permanent;
+       return is_permanent_conv;
 }
 uint32_t __attribute__((export_name("TS_LDKCOption_NetworkUpdateZ_ty_from_ptr"))) TS_LDKCOption_NetworkUpdateZ_ty_from_ptr(uint32_t ptr) {
        LDKCOption_NetworkUpdateZ *obj = (LDKCOption_NetworkUpdateZ*)(ptr & ~1);
@@ -1609,7 +1640,8 @@ int8_tArray __attribute__((export_name("TS_LDKEvent_FundingGenerationReady_get_t
 int64_t __attribute__((export_name("TS_LDKEvent_FundingGenerationReady_get_channel_value_satoshis"))) TS_LDKEvent_FundingGenerationReady_get_channel_value_satoshis(uint32_t ptr) {
        LDKEvent *obj = (LDKEvent*)(ptr & ~1);
        assert(obj->tag == LDKEvent_FundingGenerationReady);
-       return obj->funding_generation_ready.channel_value_satoshis;
+                       int64_t channel_value_satoshis_conv = obj->funding_generation_ready.channel_value_satoshis;
+       return channel_value_satoshis_conv;
 }
 int8_tArray __attribute__((export_name("TS_LDKEvent_FundingGenerationReady_get_output_script"))) TS_LDKEvent_FundingGenerationReady_get_output_script(uint32_t ptr) {
        LDKEvent *obj = (LDKEvent*)(ptr & ~1);
@@ -1622,7 +1654,8 @@ int8_tArray __attribute__((export_name("TS_LDKEvent_FundingGenerationReady_get_o
 int64_t __attribute__((export_name("TS_LDKEvent_FundingGenerationReady_get_user_channel_id"))) TS_LDKEvent_FundingGenerationReady_get_user_channel_id(uint32_t ptr) {
        LDKEvent *obj = (LDKEvent*)(ptr & ~1);
        assert(obj->tag == LDKEvent_FundingGenerationReady);
-       return obj->funding_generation_ready.user_channel_id;
+                       int64_t user_channel_id_conv = obj->funding_generation_ready.user_channel_id;
+       return user_channel_id_conv;
 }
 int8_tArray __attribute__((export_name("TS_LDKEvent_PaymentReceived_get_payment_hash"))) TS_LDKEvent_PaymentReceived_get_payment_hash(uint32_t ptr) {
        LDKEvent *obj = (LDKEvent*)(ptr & ~1);
@@ -1634,7 +1667,8 @@ int8_tArray __attribute__((export_name("TS_LDKEvent_PaymentReceived_get_payment_
 int64_t __attribute__((export_name("TS_LDKEvent_PaymentReceived_get_amt"))) TS_LDKEvent_PaymentReceived_get_amt(uint32_t ptr) {
        LDKEvent *obj = (LDKEvent*)(ptr & ~1);
        assert(obj->tag == LDKEvent_PaymentReceived);
-       return obj->payment_received.amt;
+                       int64_t amt_conv = obj->payment_received.amt;
+       return amt_conv;
 }
 uint32_t __attribute__((export_name("TS_LDKEvent_PaymentReceived_get_purpose"))) TS_LDKEvent_PaymentReceived_get_purpose(uint32_t ptr) {
        LDKEvent *obj = (LDKEvent*)(ptr & ~1);
@@ -1686,7 +1720,8 @@ int8_tArray __attribute__((export_name("TS_LDKEvent_PaymentPathFailed_get_paymen
 jboolean __attribute__((export_name("TS_LDKEvent_PaymentPathFailed_get_rejected_by_dest"))) TS_LDKEvent_PaymentPathFailed_get_rejected_by_dest(uint32_t ptr) {
        LDKEvent *obj = (LDKEvent*)(ptr & ~1);
        assert(obj->tag == LDKEvent_PaymentPathFailed);
-       return obj->payment_path_failed.rejected_by_dest;
+                       jboolean rejected_by_dest_conv = obj->payment_path_failed.rejected_by_dest;
+       return rejected_by_dest_conv;
 }
 uint32_t __attribute__((export_name("TS_LDKEvent_PaymentPathFailed_get_network_update"))) TS_LDKEvent_PaymentPathFailed_get_network_update(uint32_t ptr) {
        LDKEvent *obj = (LDKEvent*)(ptr & ~1);
@@ -1697,7 +1732,8 @@ uint32_t __attribute__((export_name("TS_LDKEvent_PaymentPathFailed_get_network_u
 jboolean __attribute__((export_name("TS_LDKEvent_PaymentPathFailed_get_all_paths_failed"))) TS_LDKEvent_PaymentPathFailed_get_all_paths_failed(uint32_t ptr) {
        LDKEvent *obj = (LDKEvent*)(ptr & ~1);
        assert(obj->tag == LDKEvent_PaymentPathFailed);
-       return obj->payment_path_failed.all_paths_failed;
+                       jboolean all_paths_failed_conv = obj->payment_path_failed.all_paths_failed;
+       return all_paths_failed_conv;
 }
 uint32_tArray __attribute__((export_name("TS_LDKEvent_PaymentPathFailed_get_path"))) TS_LDKEvent_PaymentPathFailed_get_path(uint32_t ptr) {
        LDKEvent *obj = (LDKEvent*)(ptr & ~1);
@@ -1754,7 +1790,8 @@ int8_tArray __attribute__((export_name("TS_LDKEvent_PaymentFailed_get_payment_ha
 int64_t __attribute__((export_name("TS_LDKEvent_PendingHTLCsForwardable_get_time_forwardable"))) TS_LDKEvent_PendingHTLCsForwardable_get_time_forwardable(uint32_t ptr) {
        LDKEvent *obj = (LDKEvent*)(ptr & ~1);
        assert(obj->tag == LDKEvent_PendingHTLCsForwardable);
-       return obj->pending_htl_cs_forwardable.time_forwardable;
+                       int64_t time_forwardable_conv = obj->pending_htl_cs_forwardable.time_forwardable;
+       return time_forwardable_conv;
 }
 uint32_tArray __attribute__((export_name("TS_LDKEvent_SpendableOutputs_get_outputs"))) TS_LDKEvent_SpendableOutputs_get_outputs(uint32_t ptr) {
        LDKEvent *obj = (LDKEvent*)(ptr & ~1);
@@ -1779,7 +1816,8 @@ uint32_t __attribute__((export_name("TS_LDKEvent_PaymentForwarded_get_fee_earned
 jboolean __attribute__((export_name("TS_LDKEvent_PaymentForwarded_get_claim_from_onchain_tx"))) TS_LDKEvent_PaymentForwarded_get_claim_from_onchain_tx(uint32_t ptr) {
        LDKEvent *obj = (LDKEvent*)(ptr & ~1);
        assert(obj->tag == LDKEvent_PaymentForwarded);
-       return obj->payment_forwarded.claim_from_onchain_tx;
+                       jboolean claim_from_onchain_tx_conv = obj->payment_forwarded.claim_from_onchain_tx;
+       return claim_from_onchain_tx_conv;
 }
 int8_tArray __attribute__((export_name("TS_LDKEvent_ChannelClosed_get_channel_id"))) TS_LDKEvent_ChannelClosed_get_channel_id(uint32_t ptr) {
        LDKEvent *obj = (LDKEvent*)(ptr & ~1);
@@ -1791,7 +1829,8 @@ int8_tArray __attribute__((export_name("TS_LDKEvent_ChannelClosed_get_channel_id
 int64_t __attribute__((export_name("TS_LDKEvent_ChannelClosed_get_user_channel_id"))) TS_LDKEvent_ChannelClosed_get_user_channel_id(uint32_t ptr) {
        LDKEvent *obj = (LDKEvent*)(ptr & ~1);
        assert(obj->tag == LDKEvent_ChannelClosed);
-       return obj->channel_closed.user_channel_id;
+                       int64_t user_channel_id_conv = obj->channel_closed.user_channel_id;
+       return user_channel_id_conv;
 }
 uint32_t __attribute__((export_name("TS_LDKEvent_ChannelClosed_get_reason"))) TS_LDKEvent_ChannelClosed_get_reason(uint32_t ptr) {
        LDKEvent *obj = (LDKEvent*)(ptr & ~1);
@@ -1864,12 +1903,25 @@ int8_tArray __attribute__((export_name("TS_LDKEvent_OpenChannelRequest_get_count
 int64_t __attribute__((export_name("TS_LDKEvent_OpenChannelRequest_get_funding_satoshis"))) TS_LDKEvent_OpenChannelRequest_get_funding_satoshis(uint32_t ptr) {
        LDKEvent *obj = (LDKEvent*)(ptr & ~1);
        assert(obj->tag == LDKEvent_OpenChannelRequest);
-       return obj->open_channel_request.funding_satoshis;
+                       int64_t funding_satoshis_conv = obj->open_channel_request.funding_satoshis;
+       return funding_satoshis_conv;
 }
 int64_t __attribute__((export_name("TS_LDKEvent_OpenChannelRequest_get_push_msat"))) TS_LDKEvent_OpenChannelRequest_get_push_msat(uint32_t ptr) {
        LDKEvent *obj = (LDKEvent*)(ptr & ~1);
        assert(obj->tag == LDKEvent_OpenChannelRequest);
-       return obj->open_channel_request.push_msat;
+                       int64_t push_msat_conv = obj->open_channel_request.push_msat;
+       return push_msat_conv;
+}
+uint32_t __attribute__((export_name("TS_LDKEvent_OpenChannelRequest_get_channel_type"))) TS_LDKEvent_OpenChannelRequest_get_channel_type(uint32_t ptr) {
+       LDKEvent *obj = (LDKEvent*)(ptr & ~1);
+       assert(obj->tag == LDKEvent_OpenChannelRequest);
+                       LDKChannelTypeFeatures channel_type_var = obj->open_channel_request.channel_type;
+                       uint32_t channel_type_ref = 0;
+                       CHECK((((uintptr_t)channel_type_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
+                       CHECK((((uintptr_t)&channel_type_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
+                       CHECK_INNER_FIELD_ACCESS_OR_NULL(channel_type_var);
+                       channel_type_ref = (uintptr_t)channel_type_var.inner & ~1;
+       return channel_type_ref;
 }
 uint32_t __attribute__((export_name("TS_LDKCOption_EventZ_ty_from_ptr"))) TS_LDKCOption_EventZ_ty_from_ptr(uint32_t ptr) {
        LDKCOption_EventZ *obj = (LDKCOption_EventZ*)(ptr & ~1);
@@ -1996,6 +2048,7 @@ uint32_t __attribute__((export_name("TS_LDKMessageSendEvent_ty_from_ptr"))) TS_L
                case LDKMessageSendEvent_SendChannelRangeQuery: return 16;
                case LDKMessageSendEvent_SendShortIdsQuery: return 17;
                case LDKMessageSendEvent_SendReplyChannelRange: return 18;
+               case LDKMessageSendEvent_SendGossipTimestampFilter: return 19;
                default: abort();
        }
 }
@@ -2326,6 +2379,24 @@ uint32_t __attribute__((export_name("TS_LDKMessageSendEvent_SendReplyChannelRang
                        msg_ref = (uintptr_t)msg_var.inner & ~1;
        return msg_ref;
 }
+int8_tArray __attribute__((export_name("TS_LDKMessageSendEvent_SendGossipTimestampFilter_get_node_id"))) TS_LDKMessageSendEvent_SendGossipTimestampFilter_get_node_id(uint32_t ptr) {
+       LDKMessageSendEvent *obj = (LDKMessageSendEvent*)(ptr & ~1);
+       assert(obj->tag == LDKMessageSendEvent_SendGossipTimestampFilter);
+                       int8_tArray node_id_arr = init_int8_tArray(33, __LINE__);
+                       memcpy(node_id_arr->elems, obj->send_gossip_timestamp_filter.node_id.compressed_form, 33);
+       return node_id_arr;
+}
+uint32_t __attribute__((export_name("TS_LDKMessageSendEvent_SendGossipTimestampFilter_get_msg"))) TS_LDKMessageSendEvent_SendGossipTimestampFilter_get_msg(uint32_t ptr) {
+       LDKMessageSendEvent *obj = (LDKMessageSendEvent*)(ptr & ~1);
+       assert(obj->tag == LDKMessageSendEvent_SendGossipTimestampFilter);
+                       LDKGossipTimestampFilter msg_var = obj->send_gossip_timestamp_filter.msg;
+                       uint32_t msg_ref = 0;
+                       CHECK((((uintptr_t)msg_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
+                       CHECK((((uintptr_t)&msg_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
+                       CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var);
+                       msg_ref = (uintptr_t)msg_var.inner & ~1;
+       return msg_ref;
+}
 static inline LDKCVec_MessageSendEventZ CVec_MessageSendEventZ_clone(const LDKCVec_MessageSendEventZ *orig) {
        LDKCVec_MessageSendEventZ ret = { .data = MALLOC(sizeof(LDKMessageSendEvent) * orig->datalen, "LDKCVec_MessageSendEventZ clone bytes"), .datalen = orig->datalen };
        for (size_t i = 0; i < ret.datalen; i++) {
@@ -2438,76 +2509,6 @@ uint32_t  __attribute__((export_name("TS_CResult_ScorerDecodeErrorZ_get_err")))
        return ret_ref;
 }
 
-static inline struct LDKProbabilisticScoringParameters CResult_ProbabilisticScoringParametersDecodeErrorZ_get_ok(LDKCResult_ProbabilisticScoringParametersDecodeErrorZ *NONNULL_PTR owner){
-CHECK(owner->result_ok);
-       return ProbabilisticScoringParameters_clone(&*owner->contents.result);
-}
-uint32_t  __attribute__((export_name("TS_CResult_ProbabilisticScoringParametersDecodeErrorZ_get_ok"))) TS_CResult_ProbabilisticScoringParametersDecodeErrorZ_get_ok(uint32_t owner) {
-       LDKCResult_ProbabilisticScoringParametersDecodeErrorZ* owner_conv = (LDKCResult_ProbabilisticScoringParametersDecodeErrorZ*)(owner & ~1);
-       LDKProbabilisticScoringParameters ret_var = CResult_ProbabilisticScoringParametersDecodeErrorZ_get_ok(owner_conv);
-       uint32_t ret_ref = 0;
-       CHECK((((uintptr_t)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
-       CHECK((((uintptr_t)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
-       CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var);
-       ret_ref = (uintptr_t)ret_var.inner;
-       if (ret_var.is_owned) {
-               ret_ref |= 1;
-       }
-       return ret_ref;
-}
-
-static inline struct LDKDecodeError CResult_ProbabilisticScoringParametersDecodeErrorZ_get_err(LDKCResult_ProbabilisticScoringParametersDecodeErrorZ *NONNULL_PTR owner){
-CHECK(!owner->result_ok);
-       return DecodeError_clone(&*owner->contents.err);
-}
-uint32_t  __attribute__((export_name("TS_CResult_ProbabilisticScoringParametersDecodeErrorZ_get_err"))) TS_CResult_ProbabilisticScoringParametersDecodeErrorZ_get_err(uint32_t owner) {
-       LDKCResult_ProbabilisticScoringParametersDecodeErrorZ* owner_conv = (LDKCResult_ProbabilisticScoringParametersDecodeErrorZ*)(owner & ~1);
-       LDKDecodeError ret_var = CResult_ProbabilisticScoringParametersDecodeErrorZ_get_err(owner_conv);
-       uint32_t ret_ref = 0;
-       CHECK((((uintptr_t)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
-       CHECK((((uintptr_t)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
-       CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var);
-       ret_ref = (uintptr_t)ret_var.inner;
-       if (ret_var.is_owned) {
-               ret_ref |= 1;
-       }
-       return ret_ref;
-}
-
-static inline struct LDKProbabilisticScoringParameters C2Tuple_ProbabilisticScoringParametersNetworkGraphZ_get_a(LDKC2Tuple_ProbabilisticScoringParametersNetworkGraphZ *NONNULL_PTR owner){
-       return ProbabilisticScoringParameters_clone(&owner->a);
-}
-uint32_t  __attribute__((export_name("TS_C2Tuple_ProbabilisticScoringParametersNetworkGraphZ_get_a"))) TS_C2Tuple_ProbabilisticScoringParametersNetworkGraphZ_get_a(uint32_t owner) {
-       LDKC2Tuple_ProbabilisticScoringParametersNetworkGraphZ* owner_conv = (LDKC2Tuple_ProbabilisticScoringParametersNetworkGraphZ*)(owner & ~1);
-       LDKProbabilisticScoringParameters ret_var = C2Tuple_ProbabilisticScoringParametersNetworkGraphZ_get_a(owner_conv);
-       uint32_t ret_ref = 0;
-       CHECK((((uintptr_t)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
-       CHECK((((uintptr_t)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
-       CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var);
-       ret_ref = (uintptr_t)ret_var.inner;
-       if (ret_var.is_owned) {
-               ret_ref |= 1;
-       }
-       return ret_ref;
-}
-
-static inline struct LDKNetworkGraph C2Tuple_ProbabilisticScoringParametersNetworkGraphZ_get_b(LDKC2Tuple_ProbabilisticScoringParametersNetworkGraphZ *NONNULL_PTR owner){
-       return NetworkGraph_clone(&owner->b);
-}
-uint32_t  __attribute__((export_name("TS_C2Tuple_ProbabilisticScoringParametersNetworkGraphZ_get_b"))) TS_C2Tuple_ProbabilisticScoringParametersNetworkGraphZ_get_b(uint32_t owner) {
-       LDKC2Tuple_ProbabilisticScoringParametersNetworkGraphZ* owner_conv = (LDKC2Tuple_ProbabilisticScoringParametersNetworkGraphZ*)(owner & ~1);
-       LDKNetworkGraph ret_var = C2Tuple_ProbabilisticScoringParametersNetworkGraphZ_get_b(owner_conv);
-       uint32_t ret_ref = 0;
-       CHECK((((uintptr_t)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
-       CHECK((((uintptr_t)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
-       CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var);
-       ret_ref = (uintptr_t)ret_var.inner;
-       if (ret_var.is_owned) {
-               ret_ref |= 1;
-       }
-       return ret_ref;
-}
-
 static inline struct LDKProbabilisticScorer *CResult_ProbabilisticScorerDecodeErrorZ_get_ok(LDKCResult_ProbabilisticScorerDecodeErrorZ *NONNULL_PTR owner){
 CHECK(owner->result_ok);
        return &*owner->contents.result;
@@ -2970,7 +2971,8 @@ static void LDKBaseSign_JCalls_free(void* this_arg) {
 }
 LDKPublicKey get_per_commitment_point_LDKBaseSign_jcall(const void* this_arg, uint64_t idx) {
        LDKBaseSign_JCalls *j_calls = (LDKBaseSign_JCalls*) this_arg;
-       int8_tArray ret = (int8_tArray)js_invoke_function_1(j_calls->instance_ptr, 0, (uint32_t)idx);
+       int64_t idx_conv = idx;
+       int8_tArray ret = (int8_tArray)js_invoke_function_1(j_calls->instance_ptr, 0, (uint32_t)idx_conv);
        LDKPublicKey ret_ref;
        CHECK(ret->arr_len == 33);
        memcpy(ret_ref.compressed_form, ret->elems, 33); FREE(ret);
@@ -2978,7 +2980,8 @@ LDKPublicKey get_per_commitment_point_LDKBaseSign_jcall(const void* this_arg, ui
 }
 LDKThirtyTwoBytes release_commitment_secret_LDKBaseSign_jcall(const void* this_arg, uint64_t idx) {
        LDKBaseSign_JCalls *j_calls = (LDKBaseSign_JCalls*) this_arg;
-       int8_tArray ret = (int8_tArray)js_invoke_function_1(j_calls->instance_ptr, 1, (uint32_t)idx);
+       int64_t idx_conv = idx;
+       int8_tArray ret = (int8_tArray)js_invoke_function_1(j_calls->instance_ptr, 1, (uint32_t)idx_conv);
        LDKThirtyTwoBytes ret_ref;
        CHECK(ret->arr_len == 32);
        memcpy(ret_ref.data, ret->elems, 32); FREE(ret);
@@ -3054,9 +3057,10 @@ LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ sign_counterparty_commitment_L
 }
 LDKCResult_NoneNoneZ validate_counterparty_revocation_LDKBaseSign_jcall(const void* this_arg, uint64_t idx, const uint8_t (* secret)[32]) {
        LDKBaseSign_JCalls *j_calls = (LDKBaseSign_JCalls*) this_arg;
+       int64_t idx_conv = idx;
        int8_tArray secret_arr = init_int8_tArray(32, __LINE__);
        memcpy(secret_arr->elems, *secret, 32);
-       uint32_t ret = js_invoke_function_2(j_calls->instance_ptr, 5, (uint32_t)idx, (uint32_t)secret_arr);
+       uint32_t ret = js_invoke_function_2(j_calls->instance_ptr, 5, (uint32_t)idx_conv, (uint32_t)secret_arr);
        void* ret_ptr = (void*)(((uintptr_t)ret) & ~1);
        CHECK_ACCESS(ret_ptr);
        LDKCResult_NoneNoneZ ret_conv = *(LDKCResult_NoneNoneZ*)(ret_ptr);
@@ -3088,9 +3092,11 @@ LDKCResult_SignatureNoneZ sign_justice_revoked_output_LDKBaseSign_jcall(const vo
        int8_tArray justice_tx_arr = init_int8_tArray(justice_tx_var.datalen, __LINE__);
        memcpy(justice_tx_arr->elems, justice_tx_var.data, justice_tx_var.datalen);
        Transaction_free(justice_tx_var);
+       uint32_t input_conv = input;
+       int64_t amount_conv = amount;
        int8_tArray per_commitment_key_arr = init_int8_tArray(32, __LINE__);
        memcpy(per_commitment_key_arr->elems, *per_commitment_key, 32);
-       uint32_t ret = js_invoke_function_4(j_calls->instance_ptr, 7, (uint32_t)justice_tx_arr, (uint32_t)input, (uint32_t)amount, (uint32_t)per_commitment_key_arr);
+       uint32_t ret = js_invoke_function_4(j_calls->instance_ptr, 7, (uint32_t)justice_tx_arr, (uint32_t)input_conv, (uint32_t)amount_conv, (uint32_t)per_commitment_key_arr);
        void* ret_ptr = (void*)(((uintptr_t)ret) & ~1);
        CHECK_ACCESS(ret_ptr);
        LDKCResult_SignatureNoneZ ret_conv = *(LDKCResult_SignatureNoneZ*)(ret_ptr);
@@ -3103,6 +3109,8 @@ LDKCResult_SignatureNoneZ sign_justice_revoked_htlc_LDKBaseSign_jcall(const void
        int8_tArray justice_tx_arr = init_int8_tArray(justice_tx_var.datalen, __LINE__);
        memcpy(justice_tx_arr->elems, justice_tx_var.data, justice_tx_var.datalen);
        Transaction_free(justice_tx_var);
+       uint32_t input_conv = input;
+       int64_t amount_conv = amount;
        int8_tArray per_commitment_key_arr = init_int8_tArray(32, __LINE__);
        memcpy(per_commitment_key_arr->elems, *per_commitment_key, 32);
        LDKHTLCOutputInCommitment htlc_var = *htlc;
@@ -3115,7 +3123,7 @@ LDKCResult_SignatureNoneZ sign_justice_revoked_htlc_LDKBaseSign_jcall(const void
        if (htlc_var.is_owned) {
                htlc_ref |= 1;
        }
-       uint32_t ret = js_invoke_function_5(j_calls->instance_ptr, 8, (uint32_t)justice_tx_arr, (uint32_t)input, (uint32_t)amount, (uint32_t)per_commitment_key_arr, (uint32_t)htlc_ref);
+       uint32_t ret = js_invoke_function_5(j_calls->instance_ptr, 8, (uint32_t)justice_tx_arr, (uint32_t)input_conv, (uint32_t)amount_conv, (uint32_t)per_commitment_key_arr, (uint32_t)htlc_ref);
        void* ret_ptr = (void*)(((uintptr_t)ret) & ~1);
        CHECK_ACCESS(ret_ptr);
        LDKCResult_SignatureNoneZ ret_conv = *(LDKCResult_SignatureNoneZ*)(ret_ptr);
@@ -3128,6 +3136,8 @@ LDKCResult_SignatureNoneZ sign_counterparty_htlc_transaction_LDKBaseSign_jcall(c
        int8_tArray htlc_tx_arr = init_int8_tArray(htlc_tx_var.datalen, __LINE__);
        memcpy(htlc_tx_arr->elems, htlc_tx_var.data, htlc_tx_var.datalen);
        Transaction_free(htlc_tx_var);
+       uint32_t input_conv = input;
+       int64_t amount_conv = amount;
        int8_tArray per_commitment_point_arr = init_int8_tArray(33, __LINE__);
        memcpy(per_commitment_point_arr->elems, per_commitment_point.compressed_form, 33);
        LDKHTLCOutputInCommitment htlc_var = *htlc;
@@ -3140,7 +3150,7 @@ LDKCResult_SignatureNoneZ sign_counterparty_htlc_transaction_LDKBaseSign_jcall(c
        if (htlc_var.is_owned) {
                htlc_ref |= 1;
        }
-       uint32_t ret = js_invoke_function_5(j_calls->instance_ptr, 9, (uint32_t)htlc_tx_arr, (uint32_t)input, (uint32_t)amount, (uint32_t)per_commitment_point_arr, (uint32_t)htlc_ref);
+       uint32_t ret = js_invoke_function_5(j_calls->instance_ptr, 9, (uint32_t)htlc_tx_arr, (uint32_t)input_conv, (uint32_t)amount_conv, (uint32_t)per_commitment_point_arr, (uint32_t)htlc_ref);
        void* ret_ptr = (void*)(((uintptr_t)ret) & ~1);
        CHECK_ACCESS(ret_ptr);
        LDKCResult_SignatureNoneZ ret_conv = *(LDKCResult_SignatureNoneZ*)(ret_ptr);
@@ -3688,7 +3698,8 @@ uint32_t __attribute__((export_name("TS_LDKCOption_u16Z_ty_from_ptr"))) TS_LDKCO
 int16_t __attribute__((export_name("TS_LDKCOption_u16Z_Some_get_some"))) TS_LDKCOption_u16Z_Some_get_some(uint32_t ptr) {
        LDKCOption_u16Z *obj = (LDKCOption_u16Z*)(ptr & ~1);
        assert(obj->tag == LDKCOption_u16Z_Some);
-       return obj->some;
+                       int16_t some_conv = obj->some;
+       return some_conv;
 }
 uint32_t __attribute__((export_name("TS_LDKAPIError_ty_from_ptr"))) TS_LDKAPIError_ty_from_ptr(uint32_t ptr) {
        LDKAPIError *obj = (LDKAPIError*)(ptr & ~1);
@@ -3719,7 +3730,8 @@ jstring __attribute__((export_name("TS_LDKAPIError_FeeRateTooHigh_get_err"))) TS
 int32_t __attribute__((export_name("TS_LDKAPIError_FeeRateTooHigh_get_feerate"))) TS_LDKAPIError_FeeRateTooHigh_get_feerate(uint32_t ptr) {
        LDKAPIError *obj = (LDKAPIError*)(ptr & ~1);
        assert(obj->tag == LDKAPIError_FeeRateTooHigh);
-       return obj->fee_rate_too_high.feerate;
+                       int32_t feerate_conv = obj->fee_rate_too_high.feerate;
+       return feerate_conv;
 }
 jstring __attribute__((export_name("TS_LDKAPIError_RouteError_get_err"))) TS_LDKAPIError_RouteError_get_err(uint32_t ptr) {
        LDKAPIError *obj = (LDKAPIError*)(ptr & ~1);
@@ -3993,7 +4005,8 @@ int8_tArray __attribute__((export_name("TS_LDKNetAddress_IPv4_get_addr"))) TS_LD
 int16_t __attribute__((export_name("TS_LDKNetAddress_IPv4_get_port"))) TS_LDKNetAddress_IPv4_get_port(uint32_t ptr) {
        LDKNetAddress *obj = (LDKNetAddress*)(ptr & ~1);
        assert(obj->tag == LDKNetAddress_IPv4);
-       return obj->i_pv4.port;
+                       int16_t port_conv = obj->i_pv4.port;
+       return port_conv;
 }
 int8_tArray __attribute__((export_name("TS_LDKNetAddress_IPv6_get_addr"))) TS_LDKNetAddress_IPv6_get_addr(uint32_t ptr) {
        LDKNetAddress *obj = (LDKNetAddress*)(ptr & ~1);
@@ -4005,7 +4018,8 @@ int8_tArray __attribute__((export_name("TS_LDKNetAddress_IPv6_get_addr"))) TS_LD
 int16_t __attribute__((export_name("TS_LDKNetAddress_IPv6_get_port"))) TS_LDKNetAddress_IPv6_get_port(uint32_t ptr) {
        LDKNetAddress *obj = (LDKNetAddress*)(ptr & ~1);
        assert(obj->tag == LDKNetAddress_IPv6);
-       return obj->i_pv6.port;
+                       int16_t port_conv = obj->i_pv6.port;
+       return port_conv;
 }
 int8_tArray __attribute__((export_name("TS_LDKNetAddress_OnionV2_get_onion_v2"))) TS_LDKNetAddress_OnionV2_get_onion_v2(uint32_t ptr) {
        LDKNetAddress *obj = (LDKNetAddress*)(ptr & ~1);
@@ -4024,17 +4038,20 @@ int8_tArray __attribute__((export_name("TS_LDKNetAddress_OnionV3_get_ed25519_pub
 int16_t __attribute__((export_name("TS_LDKNetAddress_OnionV3_get_checksum"))) TS_LDKNetAddress_OnionV3_get_checksum(uint32_t ptr) {
        LDKNetAddress *obj = (LDKNetAddress*)(ptr & ~1);
        assert(obj->tag == LDKNetAddress_OnionV3);
-       return obj->onion_v3.checksum;
+                       int16_t checksum_conv = obj->onion_v3.checksum;
+       return checksum_conv;
 }
 int8_t __attribute__((export_name("TS_LDKNetAddress_OnionV3_get_version"))) TS_LDKNetAddress_OnionV3_get_version(uint32_t ptr) {
        LDKNetAddress *obj = (LDKNetAddress*)(ptr & ~1);
        assert(obj->tag == LDKNetAddress_OnionV3);
-       return obj->onion_v3.version;
+                       int8_t version_conv = obj->onion_v3.version;
+       return version_conv;
 }
 int16_t __attribute__((export_name("TS_LDKNetAddress_OnionV3_get_port"))) TS_LDKNetAddress_OnionV3_get_port(uint32_t ptr) {
        LDKNetAddress *obj = (LDKNetAddress*)(ptr & ~1);
        assert(obj->tag == LDKNetAddress_OnionV3);
-       return obj->onion_v3.port;
+                       int16_t port_conv = obj->onion_v3.port;
+       return port_conv;
 }
 static inline LDKCVec_NetAddressZ CVec_NetAddressZ_clone(const LDKCVec_NetAddressZ *orig) {
        LDKCVec_NetAddressZ ret = { .data = MALLOC(sizeof(LDKNetAddress) * orig->datalen, "LDKCVec_NetAddressZ clone bytes"), .datalen = orig->datalen };
@@ -4578,7 +4595,9 @@ LDKShutdownScript get_shutdown_scriptpubkey_LDKKeysInterface_jcall(const void* t
 }
 LDKSign get_channel_signer_LDKKeysInterface_jcall(const void* this_arg, bool inbound, uint64_t channel_value_satoshis) {
        LDKKeysInterface_JCalls *j_calls = (LDKKeysInterface_JCalls*) this_arg;
-       uint32_t ret = js_invoke_function_2(j_calls->instance_ptr, 21, (uint32_t)inbound, (uint32_t)channel_value_satoshis);
+       jboolean inbound_conv = inbound;
+       int64_t channel_value_satoshis_conv = channel_value_satoshis;
+       uint32_t ret = js_invoke_function_2(j_calls->instance_ptr, 21, (uint32_t)inbound_conv, (uint32_t)channel_value_satoshis_conv);
        void* ret_ptr = (void*)(((uintptr_t)ret) & ~1);
        CHECK_ACCESS(ret_ptr);
        LDKSign ret_conv = *(LDKSign*)(ret_ptr);
@@ -4806,8 +4825,8 @@ int32_t  __attribute__((export_name("TS_FeeEstimator_get_est_sat_per_1000_weight
        if (!(this_arg & 1)) { CHECK_ACCESS(this_arg_ptr); }
        LDKFeeEstimator* this_arg_conv = (LDKFeeEstimator*)this_arg_ptr;
        LDKConfirmationTarget confirmation_target_conv = LDKConfirmationTarget_from_js(confirmation_target);
-       int32_t ret_val = (this_arg_conv->get_est_sat_per_1000_weight)(this_arg_conv->this_arg, confirmation_target_conv);
-       return ret_val;
+       int32_t ret_conv = (this_arg_conv->get_est_sat_per_1000_weight)(this_arg_conv->this_arg, confirmation_target_conv);
+       return ret_conv;
 }
 
 typedef struct LDKLogger_JCalls {
@@ -5036,8 +5055,8 @@ int16_t  __attribute__((export_name("TS_Type_type_id"))) TS_Type_type_id(uint32_
        void* this_arg_ptr = (void*)(((uintptr_t)this_arg) & ~1);
        if (!(this_arg & 1)) { CHECK_ACCESS(this_arg_ptr); }
        LDKType* this_arg_conv = (LDKType*)this_arg_ptr;
-       int16_t ret_val = (this_arg_conv->type_id)(this_arg_conv->this_arg);
-       return ret_val;
+       int16_t ret_conv = (this_arg_conv->type_id)(this_arg_conv->this_arg);
+       return ret_conv;
 }
 
 jstring  __attribute__((export_name("TS_Type_debug_str"))) TS_Type_debug_str(uint32_t this_arg) {
@@ -5162,32 +5181,110 @@ uint32_t  __attribute__((export_name("TS_CResult_PaymentIdPaymentErrorZ_get_err"
        return ret_ref;
 }
 
-static inline enum LDKSiPrefix CResult_SiPrefixNoneZ_get_ok(LDKCResult_SiPrefixNoneZ *NONNULL_PTR owner){
+uint32_t __attribute__((export_name("TS_LDKParseError_ty_from_ptr"))) TS_LDKParseError_ty_from_ptr(uint32_t ptr) {
+       LDKParseError *obj = (LDKParseError*)(ptr & ~1);
+       switch(obj->tag) {
+               case LDKParseError_Bech32Error: return 0;
+               case LDKParseError_ParseAmountError: return 1;
+               case LDKParseError_MalformedSignature: return 2;
+               case LDKParseError_BadPrefix: return 3;
+               case LDKParseError_UnknownCurrency: return 4;
+               case LDKParseError_UnknownSiPrefix: return 5;
+               case LDKParseError_MalformedHRP: return 6;
+               case LDKParseError_TooShortDataPart: return 7;
+               case LDKParseError_UnexpectedEndOfTaggedFields: return 8;
+               case LDKParseError_DescriptionDecodeError: return 9;
+               case LDKParseError_PaddingError: return 10;
+               case LDKParseError_IntegerOverflowError: return 11;
+               case LDKParseError_InvalidSegWitProgramLength: return 12;
+               case LDKParseError_InvalidPubKeyHashLength: return 13;
+               case LDKParseError_InvalidScriptHashLength: return 14;
+               case LDKParseError_InvalidRecoveryId: return 15;
+               case LDKParseError_InvalidSliceLength: return 16;
+               case LDKParseError_Skip: return 17;
+               default: abort();
+       }
+}
+uint32_t __attribute__((export_name("TS_LDKParseError_Bech32Error_get_bech32_error"))) TS_LDKParseError_Bech32Error_get_bech32_error(uint32_t ptr) {
+       LDKParseError *obj = (LDKParseError*)(ptr & ~1);
+       assert(obj->tag == LDKParseError_Bech32Error);
+                       uint32_t bech32_error_ref = ((uintptr_t)&obj->bech32_error) | 1;
+       return bech32_error_ref;
+}
+int32_t __attribute__((export_name("TS_LDKParseError_ParseAmountError_get_parse_amount_error"))) TS_LDKParseError_ParseAmountError_get_parse_amount_error(uint32_t ptr) {
+       LDKParseError *obj = (LDKParseError*)(ptr & ~1);
+       assert(obj->tag == LDKParseError_ParseAmountError);
+                       /*obj->parse_amount_error*/
+       return 0;
+}
+uint32_t __attribute__((export_name("TS_LDKParseError_MalformedSignature_get_malformed_signature"))) TS_LDKParseError_MalformedSignature_get_malformed_signature(uint32_t ptr) {
+       LDKParseError *obj = (LDKParseError*)(ptr & ~1);
+       assert(obj->tag == LDKParseError_MalformedSignature);
+                       uint32_t malformed_signature_conv = LDKSecp256k1Error_to_js(obj->malformed_signature);
+       return malformed_signature_conv;
+}
+int32_t __attribute__((export_name("TS_LDKParseError_DescriptionDecodeError_get_description_decode_error"))) TS_LDKParseError_DescriptionDecodeError_get_description_decode_error(uint32_t ptr) {
+       LDKParseError *obj = (LDKParseError*)(ptr & ~1);
+       assert(obj->tag == LDKParseError_DescriptionDecodeError);
+                       /*obj->description_decode_error*/
+       return 0;
+}
+jstring __attribute__((export_name("TS_LDKParseError_InvalidSliceLength_get_invalid_slice_length"))) TS_LDKParseError_InvalidSliceLength_get_invalid_slice_length(uint32_t ptr) {
+       LDKParseError *obj = (LDKParseError*)(ptr & ~1);
+       assert(obj->tag == LDKParseError_InvalidSliceLength);
+                       LDKStr invalid_slice_length_str = obj->invalid_slice_length;
+                       jstring invalid_slice_length_conv = str_ref_to_ts(invalid_slice_length_str.chars, invalid_slice_length_str.len);
+       return invalid_slice_length_conv;
+}
+static inline enum LDKSiPrefix CResult_SiPrefixParseErrorZ_get_ok(LDKCResult_SiPrefixParseErrorZ *NONNULL_PTR owner){
 CHECK(owner->result_ok);
        return SiPrefix_clone(&*owner->contents.result);
 }
-uint32_t  __attribute__((export_name("TS_CResult_SiPrefixNoneZ_get_ok"))) TS_CResult_SiPrefixNoneZ_get_ok(uint32_t owner) {
-       LDKCResult_SiPrefixNoneZ* owner_conv = (LDKCResult_SiPrefixNoneZ*)(owner & ~1);
-       uint32_t ret_conv = LDKSiPrefix_to_js(CResult_SiPrefixNoneZ_get_ok(owner_conv));
+uint32_t  __attribute__((export_name("TS_CResult_SiPrefixParseErrorZ_get_ok"))) TS_CResult_SiPrefixParseErrorZ_get_ok(uint32_t owner) {
+       LDKCResult_SiPrefixParseErrorZ* owner_conv = (LDKCResult_SiPrefixParseErrorZ*)(owner & ~1);
+       uint32_t ret_conv = LDKSiPrefix_to_js(CResult_SiPrefixParseErrorZ_get_ok(owner_conv));
        return ret_conv;
 }
 
-static inline void CResult_SiPrefixNoneZ_get_err(LDKCResult_SiPrefixNoneZ *NONNULL_PTR owner){
+static inline struct LDKParseError CResult_SiPrefixParseErrorZ_get_err(LDKCResult_SiPrefixParseErrorZ *NONNULL_PTR owner){
 CHECK(!owner->result_ok);
-       return *owner->contents.err;
+       return ParseError_clone(&*owner->contents.err);
 }
-void  __attribute__((export_name("TS_CResult_SiPrefixNoneZ_get_err"))) TS_CResult_SiPrefixNoneZ_get_err(uint32_t owner) {
-       LDKCResult_SiPrefixNoneZ* owner_conv = (LDKCResult_SiPrefixNoneZ*)(owner & ~1);
-       CResult_SiPrefixNoneZ_get_err(owner_conv);
+uint32_t  __attribute__((export_name("TS_CResult_SiPrefixParseErrorZ_get_err"))) TS_CResult_SiPrefixParseErrorZ_get_err(uint32_t owner) {
+       LDKCResult_SiPrefixParseErrorZ* owner_conv = (LDKCResult_SiPrefixParseErrorZ*)(owner & ~1);
+       LDKParseError *ret_copy = MALLOC(sizeof(LDKParseError), "LDKParseError");
+       *ret_copy = CResult_SiPrefixParseErrorZ_get_err(owner_conv);
+       uint32_t ret_ref = (uintptr_t)ret_copy;
+       return ret_ref;
 }
 
-static inline struct LDKInvoice CResult_InvoiceNoneZ_get_ok(LDKCResult_InvoiceNoneZ *NONNULL_PTR owner){
+uint32_t __attribute__((export_name("TS_LDKParseOrSemanticError_ty_from_ptr"))) TS_LDKParseOrSemanticError_ty_from_ptr(uint32_t ptr) {
+       LDKParseOrSemanticError *obj = (LDKParseOrSemanticError*)(ptr & ~1);
+       switch(obj->tag) {
+               case LDKParseOrSemanticError_ParseError: return 0;
+               case LDKParseOrSemanticError_SemanticError: return 1;
+               default: abort();
+       }
+}
+uint32_t __attribute__((export_name("TS_LDKParseOrSemanticError_ParseError_get_parse_error"))) TS_LDKParseOrSemanticError_ParseError_get_parse_error(uint32_t ptr) {
+       LDKParseOrSemanticError *obj = (LDKParseOrSemanticError*)(ptr & ~1);
+       assert(obj->tag == LDKParseOrSemanticError_ParseError);
+                       uint32_t parse_error_ref = ((uintptr_t)&obj->parse_error) | 1;
+       return parse_error_ref;
+}
+uint32_t __attribute__((export_name("TS_LDKParseOrSemanticError_SemanticError_get_semantic_error"))) TS_LDKParseOrSemanticError_SemanticError_get_semantic_error(uint32_t ptr) {
+       LDKParseOrSemanticError *obj = (LDKParseOrSemanticError*)(ptr & ~1);
+       assert(obj->tag == LDKParseOrSemanticError_SemanticError);
+                       uint32_t semantic_error_conv = LDKSemanticError_to_js(obj->semantic_error);
+       return semantic_error_conv;
+}
+static inline struct LDKInvoice CResult_InvoiceParseOrSemanticErrorZ_get_ok(LDKCResult_InvoiceParseOrSemanticErrorZ *NONNULL_PTR owner){
 CHECK(owner->result_ok);
        return Invoice_clone(&*owner->contents.result);
 }
-uint32_t  __attribute__((export_name("TS_CResult_InvoiceNoneZ_get_ok"))) TS_CResult_InvoiceNoneZ_get_ok(uint32_t owner) {
-       LDKCResult_InvoiceNoneZ* owner_conv = (LDKCResult_InvoiceNoneZ*)(owner & ~1);
-       LDKInvoice ret_var = CResult_InvoiceNoneZ_get_ok(owner_conv);
+uint32_t  __attribute__((export_name("TS_CResult_InvoiceParseOrSemanticErrorZ_get_ok"))) TS_CResult_InvoiceParseOrSemanticErrorZ_get_ok(uint32_t owner) {
+       LDKCResult_InvoiceParseOrSemanticErrorZ* owner_conv = (LDKCResult_InvoiceParseOrSemanticErrorZ*)(owner & ~1);
+       LDKInvoice ret_var = CResult_InvoiceParseOrSemanticErrorZ_get_ok(owner_conv);
        uint32_t ret_ref = 0;
        CHECK((((uintptr_t)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
        CHECK((((uintptr_t)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
@@ -5199,22 +5296,25 @@ uint32_t  __attribute__((export_name("TS_CResult_InvoiceNoneZ_get_ok"))) TS_CRes
        return ret_ref;
 }
 
-static inline void CResult_InvoiceNoneZ_get_err(LDKCResult_InvoiceNoneZ *NONNULL_PTR owner){
+static inline struct LDKParseOrSemanticError CResult_InvoiceParseOrSemanticErrorZ_get_err(LDKCResult_InvoiceParseOrSemanticErrorZ *NONNULL_PTR owner){
 CHECK(!owner->result_ok);
-       return *owner->contents.err;
+       return ParseOrSemanticError_clone(&*owner->contents.err);
 }
-void  __attribute__((export_name("TS_CResult_InvoiceNoneZ_get_err"))) TS_CResult_InvoiceNoneZ_get_err(uint32_t owner) {
-       LDKCResult_InvoiceNoneZ* owner_conv = (LDKCResult_InvoiceNoneZ*)(owner & ~1);
-       CResult_InvoiceNoneZ_get_err(owner_conv);
+uint32_t  __attribute__((export_name("TS_CResult_InvoiceParseOrSemanticErrorZ_get_err"))) TS_CResult_InvoiceParseOrSemanticErrorZ_get_err(uint32_t owner) {
+       LDKCResult_InvoiceParseOrSemanticErrorZ* owner_conv = (LDKCResult_InvoiceParseOrSemanticErrorZ*)(owner & ~1);
+       LDKParseOrSemanticError *ret_copy = MALLOC(sizeof(LDKParseOrSemanticError), "LDKParseOrSemanticError");
+       *ret_copy = CResult_InvoiceParseOrSemanticErrorZ_get_err(owner_conv);
+       uint32_t ret_ref = (uintptr_t)ret_copy;
+       return ret_ref;
 }
 
-static inline struct LDKSignedRawInvoice CResult_SignedRawInvoiceNoneZ_get_ok(LDKCResult_SignedRawInvoiceNoneZ *NONNULL_PTR owner){
+static inline struct LDKSignedRawInvoice CResult_SignedRawInvoiceParseErrorZ_get_ok(LDKCResult_SignedRawInvoiceParseErrorZ *NONNULL_PTR owner){
 CHECK(owner->result_ok);
        return SignedRawInvoice_clone(&*owner->contents.result);
 }
-uint32_t  __attribute__((export_name("TS_CResult_SignedRawInvoiceNoneZ_get_ok"))) TS_CResult_SignedRawInvoiceNoneZ_get_ok(uint32_t owner) {
-       LDKCResult_SignedRawInvoiceNoneZ* owner_conv = (LDKCResult_SignedRawInvoiceNoneZ*)(owner & ~1);
-       LDKSignedRawInvoice ret_var = CResult_SignedRawInvoiceNoneZ_get_ok(owner_conv);
+uint32_t  __attribute__((export_name("TS_CResult_SignedRawInvoiceParseErrorZ_get_ok"))) TS_CResult_SignedRawInvoiceParseErrorZ_get_ok(uint32_t owner) {
+       LDKCResult_SignedRawInvoiceParseErrorZ* owner_conv = (LDKCResult_SignedRawInvoiceParseErrorZ*)(owner & ~1);
+       LDKSignedRawInvoice ret_var = CResult_SignedRawInvoiceParseErrorZ_get_ok(owner_conv);
        uint32_t ret_ref = 0;
        CHECK((((uintptr_t)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
        CHECK((((uintptr_t)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
@@ -5226,13 +5326,16 @@ uint32_t  __attribute__((export_name("TS_CResult_SignedRawInvoiceNoneZ_get_ok"))
        return ret_ref;
 }
 
-static inline void CResult_SignedRawInvoiceNoneZ_get_err(LDKCResult_SignedRawInvoiceNoneZ *NONNULL_PTR owner){
+static inline struct LDKParseError CResult_SignedRawInvoiceParseErrorZ_get_err(LDKCResult_SignedRawInvoiceParseErrorZ *NONNULL_PTR owner){
 CHECK(!owner->result_ok);
-       return *owner->contents.err;
+       return ParseError_clone(&*owner->contents.err);
 }
-void  __attribute__((export_name("TS_CResult_SignedRawInvoiceNoneZ_get_err"))) TS_CResult_SignedRawInvoiceNoneZ_get_err(uint32_t owner) {
-       LDKCResult_SignedRawInvoiceNoneZ* owner_conv = (LDKCResult_SignedRawInvoiceNoneZ*)(owner & ~1);
-       CResult_SignedRawInvoiceNoneZ_get_err(owner_conv);
+uint32_t  __attribute__((export_name("TS_CResult_SignedRawInvoiceParseErrorZ_get_err"))) TS_CResult_SignedRawInvoiceParseErrorZ_get_err(uint32_t owner) {
+       LDKCResult_SignedRawInvoiceParseErrorZ* owner_conv = (LDKCResult_SignedRawInvoiceParseErrorZ*)(owner & ~1);
+       LDKParseError *ret_copy = MALLOC(sizeof(LDKParseError), "LDKParseError");
+       *ret_copy = CResult_SignedRawInvoiceParseErrorZ_get_err(owner_conv);
+       uint32_t ret_ref = (uintptr_t)ret_copy;
+       return ret_ref;
 }
 
 static inline struct LDKRawInvoice C3Tuple_RawInvoice_u832InvoiceSignatureZ_get_a(LDKC3Tuple_RawInvoice_u832InvoiceSignatureZ *NONNULL_PTR owner){
@@ -5616,8 +5719,8 @@ static inline uint32_t C2Tuple_u32ScriptZ_get_a(LDKC2Tuple_u32ScriptZ *NONNULL_P
 }
 int32_t  __attribute__((export_name("TS_C2Tuple_u32ScriptZ_get_a"))) TS_C2Tuple_u32ScriptZ_get_a(uint32_t owner) {
        LDKC2Tuple_u32ScriptZ* owner_conv = (LDKC2Tuple_u32ScriptZ*)(owner & ~1);
-       int32_t ret_val = C2Tuple_u32ScriptZ_get_a(owner_conv);
-       return ret_val;
+       int32_t ret_conv = C2Tuple_u32ScriptZ_get_a(owner_conv);
+       return ret_conv;
 }
 
 static inline struct LDKCVec_u8Z C2Tuple_u32ScriptZ_get_b(LDKC2Tuple_u32ScriptZ *NONNULL_PTR owner){
@@ -5687,8 +5790,8 @@ static inline uint32_t C2Tuple_u32TxOutZ_get_a(LDKC2Tuple_u32TxOutZ *NONNULL_PTR
 }
 int32_t  __attribute__((export_name("TS_C2Tuple_u32TxOutZ_get_a"))) TS_C2Tuple_u32TxOutZ_get_a(uint32_t owner) {
        LDKC2Tuple_u32TxOutZ* owner_conv = (LDKC2Tuple_u32TxOutZ*)(owner & ~1);
-       int32_t ret_val = C2Tuple_u32TxOutZ_get_a(owner_conv);
-       return ret_val;
+       int32_t ret_conv = C2Tuple_u32TxOutZ_get_a(owner_conv);
+       return ret_conv;
 }
 
 static inline struct LDKTxOut C2Tuple_u32TxOutZ_get_b(LDKC2Tuple_u32TxOutZ *NONNULL_PTR owner){
@@ -5757,37 +5860,44 @@ uint32_t __attribute__((export_name("TS_LDKBalance_ty_from_ptr"))) TS_LDKBalance
 int64_t __attribute__((export_name("TS_LDKBalance_ClaimableOnChannelClose_get_claimable_amount_satoshis"))) TS_LDKBalance_ClaimableOnChannelClose_get_claimable_amount_satoshis(uint32_t ptr) {
        LDKBalance *obj = (LDKBalance*)(ptr & ~1);
        assert(obj->tag == LDKBalance_ClaimableOnChannelClose);
-       return obj->claimable_on_channel_close.claimable_amount_satoshis;
+                       int64_t claimable_amount_satoshis_conv = obj->claimable_on_channel_close.claimable_amount_satoshis;
+       return claimable_amount_satoshis_conv;
 }
 int64_t __attribute__((export_name("TS_LDKBalance_ClaimableAwaitingConfirmations_get_claimable_amount_satoshis"))) TS_LDKBalance_ClaimableAwaitingConfirmations_get_claimable_amount_satoshis(uint32_t ptr) {
        LDKBalance *obj = (LDKBalance*)(ptr & ~1);
        assert(obj->tag == LDKBalance_ClaimableAwaitingConfirmations);
-       return obj->claimable_awaiting_confirmations.claimable_amount_satoshis;
+                       int64_t claimable_amount_satoshis_conv = obj->claimable_awaiting_confirmations.claimable_amount_satoshis;
+       return claimable_amount_satoshis_conv;
 }
 int32_t __attribute__((export_name("TS_LDKBalance_ClaimableAwaitingConfirmations_get_confirmation_height"))) TS_LDKBalance_ClaimableAwaitingConfirmations_get_confirmation_height(uint32_t ptr) {
        LDKBalance *obj = (LDKBalance*)(ptr & ~1);
        assert(obj->tag == LDKBalance_ClaimableAwaitingConfirmations);
-       return obj->claimable_awaiting_confirmations.confirmation_height;
+                       int32_t confirmation_height_conv = obj->claimable_awaiting_confirmations.confirmation_height;
+       return confirmation_height_conv;
 }
 int64_t __attribute__((export_name("TS_LDKBalance_ContentiousClaimable_get_claimable_amount_satoshis"))) TS_LDKBalance_ContentiousClaimable_get_claimable_amount_satoshis(uint32_t ptr) {
        LDKBalance *obj = (LDKBalance*)(ptr & ~1);
        assert(obj->tag == LDKBalance_ContentiousClaimable);
-       return obj->contentious_claimable.claimable_amount_satoshis;
+                       int64_t claimable_amount_satoshis_conv = obj->contentious_claimable.claimable_amount_satoshis;
+       return claimable_amount_satoshis_conv;
 }
 int32_t __attribute__((export_name("TS_LDKBalance_ContentiousClaimable_get_timeout_height"))) TS_LDKBalance_ContentiousClaimable_get_timeout_height(uint32_t ptr) {
        LDKBalance *obj = (LDKBalance*)(ptr & ~1);
        assert(obj->tag == LDKBalance_ContentiousClaimable);
-       return obj->contentious_claimable.timeout_height;
+                       int32_t timeout_height_conv = obj->contentious_claimable.timeout_height;
+       return timeout_height_conv;
 }
 int64_t __attribute__((export_name("TS_LDKBalance_MaybeClaimableHTLCAwaitingTimeout_get_claimable_amount_satoshis"))) TS_LDKBalance_MaybeClaimableHTLCAwaitingTimeout_get_claimable_amount_satoshis(uint32_t ptr) {
        LDKBalance *obj = (LDKBalance*)(ptr & ~1);
        assert(obj->tag == LDKBalance_MaybeClaimableHTLCAwaitingTimeout);
-       return obj->maybe_claimable_htlc_awaiting_timeout.claimable_amount_satoshis;
+                       int64_t claimable_amount_satoshis_conv = obj->maybe_claimable_htlc_awaiting_timeout.claimable_amount_satoshis;
+       return claimable_amount_satoshis_conv;
 }
 int32_t __attribute__((export_name("TS_LDKBalance_MaybeClaimableHTLCAwaitingTimeout_get_claimable_height"))) TS_LDKBalance_MaybeClaimableHTLCAwaitingTimeout_get_claimable_height(uint32_t ptr) {
        LDKBalance *obj = (LDKBalance*)(ptr & ~1);
        assert(obj->tag == LDKBalance_MaybeClaimableHTLCAwaitingTimeout);
-       return obj->maybe_claimable_htlc_awaiting_timeout.claimable_height;
+                       int32_t claimable_height_conv = obj->maybe_claimable_htlc_awaiting_timeout.claimable_height;
+       return claimable_height_conv;
 }
 static inline LDKCVec_BalanceZ CVec_BalanceZ_clone(const LDKCVec_BalanceZ *orig) {
        LDKCVec_BalanceZ ret = { .data = MALLOC(sizeof(LDKBalance) * orig->datalen, "LDKCVec_BalanceZ clone bytes"), .datalen = orig->datalen };
@@ -5912,8 +6022,8 @@ CHECK(owner->result_ok);
 }
 jboolean  __attribute__((export_name("TS_CResult_boolLightningErrorZ_get_ok"))) TS_CResult_boolLightningErrorZ_get_ok(uint32_t owner) {
        LDKCResult_boolLightningErrorZ* owner_conv = (LDKCResult_boolLightningErrorZ*)(owner & ~1);
-       jboolean ret_val = CResult_boolLightningErrorZ_get_ok(owner_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_boolLightningErrorZ_get_ok(owner_conv);
+       return ret_conv;
 }
 
 static inline struct LDKLightningError CResult_boolLightningErrorZ_get_err(LDKCResult_boolLightningErrorZ *NONNULL_PTR owner){
@@ -5999,6 +6109,20 @@ static inline LDKCVec_NodeAnnouncementZ CVec_NodeAnnouncementZ_clone(const LDKCV
        }
        return ret;
 }
+uint32_t __attribute__((export_name("TS_LDKCOption_NetAddressZ_ty_from_ptr"))) TS_LDKCOption_NetAddressZ_ty_from_ptr(uint32_t ptr) {
+       LDKCOption_NetAddressZ *obj = (LDKCOption_NetAddressZ*)(ptr & ~1);
+       switch(obj->tag) {
+               case LDKCOption_NetAddressZ_Some: return 0;
+               case LDKCOption_NetAddressZ_None: return 1;
+               default: abort();
+       }
+}
+uint32_t __attribute__((export_name("TS_LDKCOption_NetAddressZ_Some_get_some"))) TS_LDKCOption_NetAddressZ_Some_get_some(uint32_t ptr) {
+       LDKCOption_NetAddressZ *obj = (LDKCOption_NetAddressZ*)(ptr & ~1);
+       assert(obj->tag == LDKCOption_NetAddressZ_Some);
+                       uint32_t some_ref = ((uintptr_t)&obj->some) | 1;
+       return some_ref;
+}
 static inline struct LDKCVec_u8Z CResult_CVec_u8ZPeerHandleErrorZ_get_ok(LDKCResult_CVec_u8ZPeerHandleErrorZ *NONNULL_PTR owner){
 CHECK(owner->result_ok);
        return CVec_u8Z_clone(&*owner->contents.result);
@@ -6063,8 +6187,8 @@ CHECK(owner->result_ok);
 }
 jboolean  __attribute__((export_name("TS_CResult_boolPeerHandleErrorZ_get_ok"))) TS_CResult_boolPeerHandleErrorZ_get_ok(uint32_t owner) {
        LDKCResult_boolPeerHandleErrorZ* owner_conv = (LDKCResult_boolPeerHandleErrorZ*)(owner & ~1);
-       jboolean ret_val = CResult_boolPeerHandleErrorZ_get_ok(owner_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_boolPeerHandleErrorZ_get_ok(owner_conv);
+       return ret_conv;
 }
 
 static inline struct LDKPeerHandleError CResult_boolPeerHandleErrorZ_get_err(LDKCResult_boolPeerHandleErrorZ *NONNULL_PTR owner){
@@ -6165,7 +6289,8 @@ LDKCResult_TxOutAccessErrorZ get_utxo_LDKAccess_jcall(const void* this_arg, cons
        LDKAccess_JCalls *j_calls = (LDKAccess_JCalls*) this_arg;
        int8_tArray genesis_hash_arr = init_int8_tArray(32, __LINE__);
        memcpy(genesis_hash_arr->elems, *genesis_hash, 32);
-       uint32_t ret = js_invoke_function_2(j_calls->instance_ptr, 31, (uint32_t)genesis_hash_arr, (uint32_t)short_channel_id);
+       int64_t short_channel_id_conv = short_channel_id;
+       uint32_t ret = js_invoke_function_2(j_calls->instance_ptr, 31, (uint32_t)genesis_hash_arr, (uint32_t)short_channel_id_conv);
        void* ret_ptr = (void*)(((uintptr_t)ret) & ~1);
        CHECK_ACCESS(ret_ptr);
        LDKCResult_TxOutAccessErrorZ ret_conv = *(LDKCResult_TxOutAccessErrorZ*)(ret_ptr);
@@ -6220,6 +6345,10 @@ uint32_t __attribute__((export_name("TS_LDKCOption_AccessZ_Some_get_some"))) TS_
                        LDKAccess* some_ret = MALLOC(sizeof(LDKAccess), "LDKAccess");
                        *some_ret = obj->some;
                        // WARNING: We likely need to clone here, but no clone is available, so we just do it for Java instances
+                       if ((*some_ret).free == LDKAccess_JCalls_free) {
+                               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+                               LDKAccess_JCalls_cloned(&(*some_ret));
+                       }
        return (uint32_t)some_ret;
 }
 static inline struct LDKChannelUpdateInfo CResult_ChannelUpdateInfoDecodeErrorZ_get_ok(LDKCResult_ChannelUpdateInfoDecodeErrorZ *NONNULL_PTR owner){
@@ -7857,6 +7986,10 @@ uint32_t __attribute__((export_name("TS_LDKCOption_FilterZ_Some_get_some"))) TS_
                        LDKFilter* some_ret = MALLOC(sizeof(LDKFilter), "LDKFilter");
                        *some_ret = obj->some;
                        // WARNING: We likely need to clone here, but no clone is available, so we just do it for Java instances
+                       if ((*some_ret).free == LDKFilter_JCalls_free) {
+                               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+                               LDKFilter_JCalls_cloned(&(*some_ret));
+                       }
        return (uint32_t)some_ret;
 }
 static inline struct LDKLockedChannelMonitor *CResult_LockedChannelMonitorNoneZ_get_ok(LDKCResult_LockedChannelMonitorNoneZ *NONNULL_PTR owner){
@@ -8049,6 +8182,10 @@ void  __attribute__((export_name("TS_EventsProvider_process_pending_events"))) T
        void* handler_ptr = (void*)(((uintptr_t)handler) & ~1);
        CHECK_ACCESS(handler_ptr);
        LDKEventHandler handler_conv = *(LDKEventHandler*)(handler_ptr);
+       if (handler_conv.free == LDKEventHandler_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKEventHandler_JCalls_cloned(&handler_conv);
+       }
        (this_arg_conv->process_pending_events)(this_arg_conv->this_arg, handler_conv);
 }
 
@@ -8067,13 +8204,15 @@ void block_connected_LDKListen_jcall(const void* this_arg, LDKu8slice block, uin
        LDKu8slice block_var = block;
        int8_tArray block_arr = init_int8_tArray(block_var.datalen, __LINE__);
        memcpy(block_arr->elems, block_var.data, block_var.datalen);
-       js_invoke_function_2(j_calls->instance_ptr, 37, (uint32_t)block_arr, (uint32_t)height);
+       int32_t height_conv = height;
+       js_invoke_function_2(j_calls->instance_ptr, 37, (uint32_t)block_arr, (uint32_t)height_conv);
 }
 void block_disconnected_LDKListen_jcall(const void* this_arg, const uint8_t (* header)[80], uint32_t height) {
        LDKListen_JCalls *j_calls = (LDKListen_JCalls*) this_arg;
        int8_tArray header_arr = init_int8_tArray(80, __LINE__);
        memcpy(header_arr->elems, *header, 80);
-       js_invoke_function_2(j_calls->instance_ptr, 38, (uint32_t)header_arr, (uint32_t)height);
+       int32_t height_conv = height;
+       js_invoke_function_2(j_calls->instance_ptr, 38, (uint32_t)header_arr, (uint32_t)height_conv);
 }
 static void LDKListen_JCalls_cloned(LDKListen* new_obj) {
        LDKListen_JCalls *j_calls = (LDKListen_JCalls*) new_obj->this_arg;
@@ -8143,7 +8282,8 @@ void transactions_confirmed_LDKConfirm_jcall(const void* this_arg, const uint8_t
        }
        
        FREE(txdata_var.data);
-       js_invoke_function_3(j_calls->instance_ptr, 39, (uint32_t)header_arr, (uint32_t)txdata_arr, (uint32_t)height);
+       int32_t height_conv = height;
+       js_invoke_function_3(j_calls->instance_ptr, 39, (uint32_t)header_arr, (uint32_t)txdata_arr, (uint32_t)height_conv);
 }
 void transaction_unconfirmed_LDKConfirm_jcall(const void* this_arg, const uint8_t (* txid)[32]) {
        LDKConfirm_JCalls *j_calls = (LDKConfirm_JCalls*) this_arg;
@@ -8155,7 +8295,8 @@ void best_block_updated_LDKConfirm_jcall(const void* this_arg, const uint8_t (*
        LDKConfirm_JCalls *j_calls = (LDKConfirm_JCalls*) this_arg;
        int8_tArray header_arr = init_int8_tArray(80, __LINE__);
        memcpy(header_arr->elems, *header, 80);
-       js_invoke_function_2(j_calls->instance_ptr, 41, (uint32_t)header_arr, (uint32_t)height);
+       int32_t height_conv = height;
+       js_invoke_function_2(j_calls->instance_ptr, 41, (uint32_t)header_arr, (uint32_t)height_conv);
 }
 LDKCVec_TxidZ get_relevant_txids_LDKConfirm_jcall(const void* this_arg) {
        LDKConfirm_JCalls *j_calls = (LDKConfirm_JCalls*) this_arg;
@@ -8717,7 +8858,8 @@ void peer_disconnected_LDKChannelMessageHandler_jcall(const void* this_arg, LDKP
        LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg;
        int8_tArray their_node_id_arr = init_int8_tArray(33, __LINE__);
        memcpy(their_node_id_arr->elems, their_node_id.compressed_form, 33);
-       js_invoke_function_2(j_calls->instance_ptr, 60, (uint32_t)their_node_id_arr, (uint32_t)no_connection_possible);
+       jboolean no_connection_possible_conv = no_connection_possible;
+       js_invoke_function_2(j_calls->instance_ptr, 60, (uint32_t)their_node_id_arr, (uint32_t)no_connection_possible_conv);
 }
 void peer_connected_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKInit * msg) {
        LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg;
@@ -9186,7 +9328,9 @@ LDKCResult_boolLightningErrorZ handle_channel_update_LDKRoutingMessageHandler_jc
 }
 LDKCVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ get_next_channel_announcements_LDKRoutingMessageHandler_jcall(const void* this_arg, uint64_t starting_point, uint8_t batch_amount) {
        LDKRoutingMessageHandler_JCalls *j_calls = (LDKRoutingMessageHandler_JCalls*) this_arg;
-       uint32_tArray ret = (uint32_tArray)js_invoke_function_2(j_calls->instance_ptr, 68, (uint32_t)starting_point, (uint32_t)batch_amount);
+       int64_t starting_point_conv = starting_point;
+       int8_t batch_amount_conv = batch_amount;
+       uint32_tArray ret = (uint32_tArray)js_invoke_function_2(j_calls->instance_ptr, 68, (uint32_t)starting_point_conv, (uint32_t)batch_amount_conv);
        LDKCVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ ret_constr;
        ret_constr.datalen = ret->arr_len;
        if (ret_constr.datalen > 0)
@@ -9208,7 +9352,8 @@ LDKCVec_NodeAnnouncementZ get_next_node_announcements_LDKRoutingMessageHandler_j
        LDKRoutingMessageHandler_JCalls *j_calls = (LDKRoutingMessageHandler_JCalls*) this_arg;
        int8_tArray starting_point_arr = init_int8_tArray(33, __LINE__);
        memcpy(starting_point_arr->elems, starting_point.compressed_form, 33);
-       uint32_tArray ret = (uint32_tArray)js_invoke_function_2(j_calls->instance_ptr, 69, (uint32_t)starting_point_arr, (uint32_t)batch_amount);
+       int8_t batch_amount_conv = batch_amount;
+       uint32_tArray ret = (uint32_tArray)js_invoke_function_2(j_calls->instance_ptr, 69, (uint32_t)starting_point_arr, (uint32_t)batch_amount_conv);
        LDKCVec_NodeAnnouncementZ ret_constr;
        ret_constr.datalen = ret->arr_len;
        if (ret_constr.datalen > 0)
@@ -9226,7 +9371,7 @@ LDKCVec_NodeAnnouncementZ get_next_node_announcements_LDKRoutingMessageHandler_j
        }
        return ret_constr;
 }
-void sync_routing_table_LDKRoutingMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKInit * init) {
+void peer_connected_LDKRoutingMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKInit * init) {
        LDKRoutingMessageHandler_JCalls *j_calls = (LDKRoutingMessageHandler_JCalls*) this_arg;
        int8_tArray their_node_id_arr = init_int8_tArray(33, __LINE__);
        memcpy(their_node_id_arr->elems, their_node_id.compressed_form, 33);
@@ -9339,7 +9484,7 @@ static inline LDKRoutingMessageHandler LDKRoutingMessageHandler_init (JSValue o,
                .handle_channel_update = handle_channel_update_LDKRoutingMessageHandler_jcall,
                .get_next_channel_announcements = get_next_channel_announcements_LDKRoutingMessageHandler_jcall,
                .get_next_node_announcements = get_next_node_announcements_LDKRoutingMessageHandler_jcall,
-               .sync_routing_table = sync_routing_table_LDKRoutingMessageHandler_jcall,
+               .peer_connected = peer_connected_LDKRoutingMessageHandler_jcall,
                .handle_reply_channel_range = handle_reply_channel_range_LDKRoutingMessageHandler_jcall,
                .handle_reply_short_channel_ids_end = handle_reply_short_channel_ids_end_LDKRoutingMessageHandler_jcall,
                .handle_query_channel_range = handle_query_channel_range_LDKRoutingMessageHandler_jcall,
@@ -9440,7 +9585,7 @@ uint32_tArray  __attribute__((export_name("TS_RoutingMessageHandler_get_next_nod
        return ret_arr;
 }
 
-void  __attribute__((export_name("TS_RoutingMessageHandler_sync_routing_table"))) TS_RoutingMessageHandler_sync_routing_table(uint32_t this_arg, int8_tArray their_node_id, uint32_t init) {
+void  __attribute__((export_name("TS_RoutingMessageHandler_peer_connected"))) TS_RoutingMessageHandler_peer_connected(uint32_t this_arg, int8_tArray their_node_id, uint32_t init) {
        void* this_arg_ptr = (void*)(((uintptr_t)this_arg) & ~1);
        if (!(this_arg & 1)) { CHECK_ACCESS(this_arg_ptr); }
        LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)this_arg_ptr;
@@ -9451,7 +9596,7 @@ void  __attribute__((export_name("TS_RoutingMessageHandler_sync_routing_table"))
        init_conv.inner = (void*)(init & (~1));
        init_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(init_conv);
-       (this_arg_conv->sync_routing_table)(this_arg_conv->this_arg, their_node_id_ref, &init_conv);
+       (this_arg_conv->peer_connected)(this_arg_conv->this_arg, their_node_id_ref, &init_conv);
 }
 
 uint32_t  __attribute__((export_name("TS_RoutingMessageHandler_handle_reply_channel_range"))) TS_RoutingMessageHandler_handle_reply_channel_range(uint32_t this_arg, int8_tArray their_node_id, uint32_t msg) {
@@ -9534,10 +9679,11 @@ static void LDKCustomMessageReader_JCalls_free(void* this_arg) {
 }
 LDKCResult_COption_TypeZDecodeErrorZ read_LDKCustomMessageReader_jcall(const void* this_arg, uint16_t message_type, LDKu8slice buffer) {
        LDKCustomMessageReader_JCalls *j_calls = (LDKCustomMessageReader_JCalls*) this_arg;
+       int16_t message_type_conv = message_type;
        LDKu8slice buffer_var = buffer;
        int8_tArray buffer_arr = init_int8_tArray(buffer_var.datalen, __LINE__);
        memcpy(buffer_arr->elems, buffer_var.data, buffer_var.datalen);
-       uint32_t ret = js_invoke_function_2(j_calls->instance_ptr, 75, (uint32_t)message_type, (uint32_t)buffer_arr);
+       uint32_t ret = js_invoke_function_2(j_calls->instance_ptr, 75, (uint32_t)message_type_conv, (uint32_t)buffer_arr);
        void* ret_ptr = (void*)(((uintptr_t)ret) & ~1);
        CHECK_ACCESS(ret_ptr);
        LDKCResult_COption_TypeZDecodeErrorZ ret_conv = *(LDKCResult_COption_TypeZDecodeErrorZ*)(ret_ptr);
@@ -9653,6 +9799,10 @@ uint32_t  __attribute__((export_name("TS_CustomMessageHandler_handle_custom_mess
        void* msg_ptr = (void*)(((uintptr_t)msg) & ~1);
        CHECK_ACCESS(msg_ptr);
        LDKType msg_conv = *(LDKType*)(msg_ptr);
+       if (msg_conv.free == LDKType_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKType_JCalls_cloned(&msg_conv);
+       }
        LDKPublicKey sender_node_id_ref;
        CHECK(sender_node_id->arr_len == 33);
        memcpy(sender_node_id_ref.compressed_form, sender_node_id->elems, 33); FREE(sender_node_id);
@@ -9694,7 +9844,8 @@ uintptr_t send_data_LDKSocketDescriptor_jcall(void* this_arg, LDKu8slice data, b
        LDKu8slice data_var = data;
        int8_tArray data_arr = init_int8_tArray(data_var.datalen, __LINE__);
        memcpy(data_arr->elems, data_var.data, data_var.datalen);
-       return js_invoke_function_2(j_calls->instance_ptr, 78, (uint32_t)data_arr, (uint32_t)resume_read);
+       jboolean resume_read_conv = resume_read;
+       return js_invoke_function_2(j_calls->instance_ptr, 78, (uint32_t)data_arr, (uint32_t)resume_read_conv);
 }
 void disconnect_socket_LDKSocketDescriptor_jcall(void* this_arg) {
        LDKSocketDescriptor_JCalls *j_calls = (LDKSocketDescriptor_JCalls*) this_arg;
@@ -9742,8 +9893,8 @@ uint32_t  __attribute__((export_name("TS_SocketDescriptor_send_data"))) TS_Socke
        LDKu8slice data_ref;
        data_ref.datalen = data->arr_len;
        data_ref.data = data->elems /* XXX data leaks */;
-       uint32_t ret_val = (this_arg_conv->send_data)(this_arg_conv->this_arg, data_ref, resume_read);
-       return ret_val;
+       uint32_t ret_conv = (this_arg_conv->send_data)(this_arg_conv->this_arg, data_ref, resume_read);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_SocketDescriptor_disconnect_socket"))) TS_SocketDescriptor_disconnect_socket(uint32_t this_arg) {
@@ -9757,8 +9908,8 @@ int64_t  __attribute__((export_name("TS_SocketDescriptor_hash"))) TS_SocketDescr
        void* this_arg_ptr = (void*)(((uintptr_t)this_arg) & ~1);
        if (!(this_arg & 1)) { CHECK_ACCESS(this_arg_ptr); }
        LDKSocketDescriptor* this_arg_conv = (LDKSocketDescriptor*)this_arg_ptr;
-       int64_t ret_val = (this_arg_conv->hash)(this_arg_conv->this_arg);
-       return ret_val;
+       int64_t ret_conv = (this_arg_conv->hash)(this_arg_conv->this_arg);
+       return ret_conv;
 }
 
 uint32_t __attribute__((export_name("TS_LDKEffectiveCapacity_ty_from_ptr"))) TS_LDKEffectiveCapacity_ty_from_ptr(uint32_t ptr) {
@@ -9775,17 +9926,20 @@ uint32_t __attribute__((export_name("TS_LDKEffectiveCapacity_ty_from_ptr"))) TS_
 int64_t __attribute__((export_name("TS_LDKEffectiveCapacity_ExactLiquidity_get_liquidity_msat"))) TS_LDKEffectiveCapacity_ExactLiquidity_get_liquidity_msat(uint32_t ptr) {
        LDKEffectiveCapacity *obj = (LDKEffectiveCapacity*)(ptr & ~1);
        assert(obj->tag == LDKEffectiveCapacity_ExactLiquidity);
-       return obj->exact_liquidity.liquidity_msat;
+                       int64_t liquidity_msat_conv = obj->exact_liquidity.liquidity_msat;
+       return liquidity_msat_conv;
 }
 int64_t __attribute__((export_name("TS_LDKEffectiveCapacity_MaximumHTLC_get_amount_msat"))) TS_LDKEffectiveCapacity_MaximumHTLC_get_amount_msat(uint32_t ptr) {
        LDKEffectiveCapacity *obj = (LDKEffectiveCapacity*)(ptr & ~1);
        assert(obj->tag == LDKEffectiveCapacity_MaximumHTLC);
-       return obj->maximum_htlc.amount_msat;
+                       int64_t amount_msat_conv = obj->maximum_htlc.amount_msat;
+       return amount_msat_conv;
 }
 int64_t __attribute__((export_name("TS_LDKEffectiveCapacity_Total_get_capacity_msat"))) TS_LDKEffectiveCapacity_Total_get_capacity_msat(uint32_t ptr) {
        LDKEffectiveCapacity *obj = (LDKEffectiveCapacity*)(ptr & ~1);
        assert(obj->tag == LDKEffectiveCapacity_Total);
-       return obj->total.capacity_msat;
+                       int64_t capacity_msat_conv = obj->total.capacity_msat;
+       return capacity_msat_conv;
 }
 typedef struct LDKScore_JCalls {
        atomic_size_t refcnt;
@@ -9799,6 +9953,9 @@ static void LDKScore_JCalls_free(void* this_arg) {
 }
 uint64_t channel_penalty_msat_LDKScore_jcall(const void* this_arg, uint64_t short_channel_id, uint64_t send_amt_msat, uint64_t capacity_msat, const LDKNodeId * source, const LDKNodeId * target) {
        LDKScore_JCalls *j_calls = (LDKScore_JCalls*) this_arg;
+       int64_t short_channel_id_conv = short_channel_id;
+       int64_t send_amt_msat_conv = send_amt_msat;
+       int64_t capacity_msat_conv = capacity_msat;
        LDKNodeId source_var = *source;
        uint32_t source_ref = 0;
        source_var = NodeId_clone(&source_var);
@@ -9819,7 +9976,7 @@ uint64_t channel_penalty_msat_LDKScore_jcall(const void* this_arg, uint64_t shor
        if (target_var.is_owned) {
                target_ref |= 1;
        }
-       return js_invoke_function_5(j_calls->instance_ptr, 82, (uint32_t)short_channel_id, (uint32_t)send_amt_msat, (uint32_t)capacity_msat, (uint32_t)source_ref, (uint32_t)target_ref);
+       return js_invoke_function_5(j_calls->instance_ptr, 82, (uint32_t)short_channel_id_conv, (uint32_t)send_amt_msat_conv, (uint32_t)capacity_msat_conv, (uint32_t)source_ref, (uint32_t)target_ref);
 }
 void payment_path_failed_LDKScore_jcall(void* this_arg, LDKCVec_RouteHopZ path, uint64_t short_channel_id) {
        LDKScore_JCalls *j_calls = (LDKScore_JCalls*) this_arg;
@@ -9841,7 +9998,8 @@ void payment_path_failed_LDKScore_jcall(void* this_arg, LDKCVec_RouteHopZ path,
        }
        
        FREE(path_var.data);
-       js_invoke_function_2(j_calls->instance_ptr, 83, (uint32_t)path_arr, (uint32_t)short_channel_id);
+       int64_t short_channel_id_conv = short_channel_id;
+       js_invoke_function_2(j_calls->instance_ptr, 83, (uint32_t)path_arr, (uint32_t)short_channel_id_conv);
 }
 void payment_path_successful_LDKScore_jcall(void* this_arg, LDKCVec_RouteHopZ path) {
        LDKScore_JCalls *j_calls = (LDKScore_JCalls*) this_arg;
@@ -9910,8 +10068,8 @@ int64_t  __attribute__((export_name("TS_Score_channel_penalty_msat"))) TS_Score_
        target_conv.inner = (void*)(target & (~1));
        target_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(target_conv);
-       int64_t ret_val = (this_arg_conv->channel_penalty_msat)(this_arg_conv->this_arg, short_channel_id, send_amt_msat, capacity_msat, &source_conv, &target_conv);
-       return ret_val;
+       int64_t ret_conv = (this_arg_conv->channel_penalty_msat)(this_arg_conv->this_arg, short_channel_id, send_amt_msat, capacity_msat, &source_conv, &target_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_Score_payment_path_failed"))) TS_Score_payment_path_failed(uint32_t this_arg, uint32_tArray path, int64_t short_channel_id) {
@@ -9986,7 +10144,11 @@ LDKScore lock_LDKLockableScore_jcall(const void* this_arg) {
        uint32_t ret = js_invoke_function_0(j_calls->instance_ptr, 86);
        void* ret_ptr = (void*)(((uintptr_t)ret) & ~1);
        CHECK_ACCESS(ret_ptr);
-       LDKScore ret_conv = *(LDKScore*)(ret_ptr);// WARNING: we may need a move here but no clone is available for LDKScore
+       LDKScore ret_conv = *(LDKScore*)(ret_ptr);
+       if (ret_conv.free == LDKScore_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKScore_JCalls_cloned(&ret_conv);
+       }// WARNING: we may need a move here but no clone is available for LDKScore
        
        return ret_conv;
 }
@@ -10420,6 +10582,35 @@ jstring  __attribute__((export_name("TS__ldk_c_bindings_get_compiled_version")))
        return ret_conv;
 }
 
+static inline uintptr_t Bech32Error_clone_ptr(LDKBech32Error *NONNULL_PTR arg) {
+       LDKBech32Error *ret_copy = MALLOC(sizeof(LDKBech32Error), "LDKBech32Error");
+       *ret_copy = Bech32Error_clone(arg);
+uint32_t ret_ref = (uintptr_t)ret_copy;
+       return ret_ref;
+}
+uint32_t  __attribute__((export_name("TS_Bech32Error_clone_ptr"))) TS_Bech32Error_clone_ptr(uint32_t arg) {
+       LDKBech32Error* arg_conv = (LDKBech32Error*)arg;
+       uint32_t ret_conv = Bech32Error_clone_ptr(arg_conv);
+       return ret_conv;
+}
+
+uint32_t  __attribute__((export_name("TS_Bech32Error_clone"))) TS_Bech32Error_clone(uint32_t orig) {
+       LDKBech32Error* orig_conv = (LDKBech32Error*)orig;
+       LDKBech32Error *ret_copy = MALLOC(sizeof(LDKBech32Error), "LDKBech32Error");
+       *ret_copy = Bech32Error_clone(orig_conv);
+       uint32_t ret_ref = (uintptr_t)ret_copy;
+       return ret_ref;
+}
+
+void  __attribute__((export_name("TS_Bech32Error_free"))) TS_Bech32Error_free(uint32_t o) {
+       if ((o & 1) != 0) return;
+       void* o_ptr = (void*)(((uintptr_t)o) & ~1);
+       CHECK_ACCESS(o_ptr);
+       LDKBech32Error o_conv = *(LDKBech32Error*)(o_ptr);
+       FREE((void*)o);
+       Bech32Error_free(o_conv);
+}
+
 void  __attribute__((export_name("TS_Transaction_free"))) TS_Transaction_free(int8_tArray _res) {
        LDKTransaction _res_ref;
        _res_ref.datalen = _res->arr_len;
@@ -10455,8 +10646,8 @@ static inline uintptr_t TxOut_clone_ptr(LDKTxOut *NONNULL_PTR arg) {
 }
 uint32_t  __attribute__((export_name("TS_TxOut_clone_ptr"))) TS_TxOut_clone_ptr(uint32_t arg) {
        LDKTxOut* arg_conv = (LDKTxOut*)(arg & ~1);
-       uint32_t ret_val = TxOut_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = TxOut_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_TxOut_clone"))) TS_TxOut_clone(uint32_t orig) {
@@ -10485,8 +10676,8 @@ uint32_t  __attribute__((export_name("TS_CResult_NoneNoneZ_err"))) TS_CResult_No
 
 jboolean  __attribute__((export_name("TS_CResult_NoneNoneZ_is_ok"))) TS_CResult_NoneNoneZ_is_ok(uint32_t o) {
        LDKCResult_NoneNoneZ* o_conv = (LDKCResult_NoneNoneZ*)(o & ~1);
-       jboolean ret_val = CResult_NoneNoneZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_NoneNoneZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_NoneNoneZ_free"))) TS_CResult_NoneNoneZ_free(uint32_t _res) {
@@ -10505,8 +10696,8 @@ static inline uintptr_t CResult_NoneNoneZ_clone_ptr(LDKCResult_NoneNoneZ *NONNUL
 }
 uint32_t  __attribute__((export_name("TS_CResult_NoneNoneZ_clone_ptr"))) TS_CResult_NoneNoneZ_clone_ptr(uint32_t arg) {
        LDKCResult_NoneNoneZ* arg_conv = (LDKCResult_NoneNoneZ*)(arg & ~1);
-       uint32_t ret_val = CResult_NoneNoneZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_NoneNoneZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_NoneNoneZ_clone"))) TS_CResult_NoneNoneZ_clone(uint32_t orig) {
@@ -10540,8 +10731,8 @@ uint32_t  __attribute__((export_name("TS_CResult_CounterpartyCommitmentSecretsDe
 
 jboolean  __attribute__((export_name("TS_CResult_CounterpartyCommitmentSecretsDecodeErrorZ_is_ok"))) TS_CResult_CounterpartyCommitmentSecretsDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_CounterpartyCommitmentSecretsDecodeErrorZ* o_conv = (LDKCResult_CounterpartyCommitmentSecretsDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_CounterpartyCommitmentSecretsDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_CounterpartyCommitmentSecretsDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_CounterpartyCommitmentSecretsDecodeErrorZ_free"))) TS_CResult_CounterpartyCommitmentSecretsDecodeErrorZ_free(uint32_t _res) {
@@ -10560,8 +10751,8 @@ static inline uintptr_t CResult_CounterpartyCommitmentSecretsDecodeErrorZ_clone_
 }
 uint32_t  __attribute__((export_name("TS_CResult_CounterpartyCommitmentSecretsDecodeErrorZ_clone_ptr"))) TS_CResult_CounterpartyCommitmentSecretsDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_CounterpartyCommitmentSecretsDecodeErrorZ* arg_conv = (LDKCResult_CounterpartyCommitmentSecretsDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_CounterpartyCommitmentSecretsDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_CounterpartyCommitmentSecretsDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_CounterpartyCommitmentSecretsDecodeErrorZ_clone"))) TS_CResult_CounterpartyCommitmentSecretsDecodeErrorZ_clone(uint32_t orig) {
@@ -10589,8 +10780,8 @@ uint32_t  __attribute__((export_name("TS_CResult_SecretKeyErrorZ_err"))) TS_CRes
 
 jboolean  __attribute__((export_name("TS_CResult_SecretKeyErrorZ_is_ok"))) TS_CResult_SecretKeyErrorZ_is_ok(uint32_t o) {
        LDKCResult_SecretKeyErrorZ* o_conv = (LDKCResult_SecretKeyErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_SecretKeyErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_SecretKeyErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_SecretKeyErrorZ_free"))) TS_CResult_SecretKeyErrorZ_free(uint32_t _res) {
@@ -10609,8 +10800,8 @@ static inline uintptr_t CResult_SecretKeyErrorZ_clone_ptr(LDKCResult_SecretKeyEr
 }
 uint32_t  __attribute__((export_name("TS_CResult_SecretKeyErrorZ_clone_ptr"))) TS_CResult_SecretKeyErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_SecretKeyErrorZ* arg_conv = (LDKCResult_SecretKeyErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_SecretKeyErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_SecretKeyErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_SecretKeyErrorZ_clone"))) TS_CResult_SecretKeyErrorZ_clone(uint32_t orig) {
@@ -10638,8 +10829,8 @@ uint32_t  __attribute__((export_name("TS_CResult_PublicKeyErrorZ_err"))) TS_CRes
 
 jboolean  __attribute__((export_name("TS_CResult_PublicKeyErrorZ_is_ok"))) TS_CResult_PublicKeyErrorZ_is_ok(uint32_t o) {
        LDKCResult_PublicKeyErrorZ* o_conv = (LDKCResult_PublicKeyErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_PublicKeyErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_PublicKeyErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_PublicKeyErrorZ_free"))) TS_CResult_PublicKeyErrorZ_free(uint32_t _res) {
@@ -10658,8 +10849,8 @@ static inline uintptr_t CResult_PublicKeyErrorZ_clone_ptr(LDKCResult_PublicKeyEr
 }
 uint32_t  __attribute__((export_name("TS_CResult_PublicKeyErrorZ_clone_ptr"))) TS_CResult_PublicKeyErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_PublicKeyErrorZ* arg_conv = (LDKCResult_PublicKeyErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_PublicKeyErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_PublicKeyErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_PublicKeyErrorZ_clone"))) TS_CResult_PublicKeyErrorZ_clone(uint32_t orig) {
@@ -10693,8 +10884,8 @@ uint32_t  __attribute__((export_name("TS_CResult_TxCreationKeysDecodeErrorZ_err"
 
 jboolean  __attribute__((export_name("TS_CResult_TxCreationKeysDecodeErrorZ_is_ok"))) TS_CResult_TxCreationKeysDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_TxCreationKeysDecodeErrorZ* o_conv = (LDKCResult_TxCreationKeysDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_TxCreationKeysDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_TxCreationKeysDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_TxCreationKeysDecodeErrorZ_free"))) TS_CResult_TxCreationKeysDecodeErrorZ_free(uint32_t _res) {
@@ -10713,8 +10904,8 @@ static inline uintptr_t CResult_TxCreationKeysDecodeErrorZ_clone_ptr(LDKCResult_
 }
 uint32_t  __attribute__((export_name("TS_CResult_TxCreationKeysDecodeErrorZ_clone_ptr"))) TS_CResult_TxCreationKeysDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_TxCreationKeysDecodeErrorZ* arg_conv = (LDKCResult_TxCreationKeysDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_TxCreationKeysDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_TxCreationKeysDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_TxCreationKeysDecodeErrorZ_clone"))) TS_CResult_TxCreationKeysDecodeErrorZ_clone(uint32_t orig) {
@@ -10748,8 +10939,8 @@ uint32_t  __attribute__((export_name("TS_CResult_ChannelPublicKeysDecodeErrorZ_e
 
 jboolean  __attribute__((export_name("TS_CResult_ChannelPublicKeysDecodeErrorZ_is_ok"))) TS_CResult_ChannelPublicKeysDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_ChannelPublicKeysDecodeErrorZ* o_conv = (LDKCResult_ChannelPublicKeysDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_ChannelPublicKeysDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_ChannelPublicKeysDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_ChannelPublicKeysDecodeErrorZ_free"))) TS_CResult_ChannelPublicKeysDecodeErrorZ_free(uint32_t _res) {
@@ -10768,8 +10959,8 @@ static inline uintptr_t CResult_ChannelPublicKeysDecodeErrorZ_clone_ptr(LDKCResu
 }
 uint32_t  __attribute__((export_name("TS_CResult_ChannelPublicKeysDecodeErrorZ_clone_ptr"))) TS_CResult_ChannelPublicKeysDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_ChannelPublicKeysDecodeErrorZ* arg_conv = (LDKCResult_ChannelPublicKeysDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_ChannelPublicKeysDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_ChannelPublicKeysDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_ChannelPublicKeysDecodeErrorZ_clone"))) TS_CResult_ChannelPublicKeysDecodeErrorZ_clone(uint32_t orig) {
@@ -10799,8 +10990,8 @@ uint32_t  __attribute__((export_name("TS_CResult_TxCreationKeysErrorZ_err"))) TS
 
 jboolean  __attribute__((export_name("TS_CResult_TxCreationKeysErrorZ_is_ok"))) TS_CResult_TxCreationKeysErrorZ_is_ok(uint32_t o) {
        LDKCResult_TxCreationKeysErrorZ* o_conv = (LDKCResult_TxCreationKeysErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_TxCreationKeysErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_TxCreationKeysErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_TxCreationKeysErrorZ_free"))) TS_CResult_TxCreationKeysErrorZ_free(uint32_t _res) {
@@ -10819,8 +11010,8 @@ static inline uintptr_t CResult_TxCreationKeysErrorZ_clone_ptr(LDKCResult_TxCrea
 }
 uint32_t  __attribute__((export_name("TS_CResult_TxCreationKeysErrorZ_clone_ptr"))) TS_CResult_TxCreationKeysErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_TxCreationKeysErrorZ* arg_conv = (LDKCResult_TxCreationKeysErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_TxCreationKeysErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_TxCreationKeysErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_TxCreationKeysErrorZ_clone"))) TS_CResult_TxCreationKeysErrorZ_clone(uint32_t orig) {
@@ -10861,8 +11052,8 @@ uint32_t ret_ref = (uintptr_t)ret_copy;
 }
 uint32_t  __attribute__((export_name("TS_COption_u32Z_clone_ptr"))) TS_COption_u32Z_clone_ptr(uint32_t arg) {
        LDKCOption_u32Z* arg_conv = (LDKCOption_u32Z*)arg;
-       uint32_t ret_val = COption_u32Z_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = COption_u32Z_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_COption_u32Z_clone"))) TS_COption_u32Z_clone(uint32_t orig) {
@@ -10897,8 +11088,8 @@ uint32_t  __attribute__((export_name("TS_CResult_HTLCOutputInCommitmentDecodeErr
 
 jboolean  __attribute__((export_name("TS_CResult_HTLCOutputInCommitmentDecodeErrorZ_is_ok"))) TS_CResult_HTLCOutputInCommitmentDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_HTLCOutputInCommitmentDecodeErrorZ* o_conv = (LDKCResult_HTLCOutputInCommitmentDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_HTLCOutputInCommitmentDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_HTLCOutputInCommitmentDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_HTLCOutputInCommitmentDecodeErrorZ_free"))) TS_CResult_HTLCOutputInCommitmentDecodeErrorZ_free(uint32_t _res) {
@@ -10917,8 +11108,8 @@ static inline uintptr_t CResult_HTLCOutputInCommitmentDecodeErrorZ_clone_ptr(LDK
 }
 uint32_t  __attribute__((export_name("TS_CResult_HTLCOutputInCommitmentDecodeErrorZ_clone_ptr"))) TS_CResult_HTLCOutputInCommitmentDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_HTLCOutputInCommitmentDecodeErrorZ* arg_conv = (LDKCResult_HTLCOutputInCommitmentDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_HTLCOutputInCommitmentDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_HTLCOutputInCommitmentDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_HTLCOutputInCommitmentDecodeErrorZ_clone"))) TS_CResult_HTLCOutputInCommitmentDecodeErrorZ_clone(uint32_t orig) {
@@ -10967,8 +11158,8 @@ uint32_t  __attribute__((export_name("TS_CResult_CounterpartyChannelTransactionP
 
 jboolean  __attribute__((export_name("TS_CResult_CounterpartyChannelTransactionParametersDecodeErrorZ_is_ok"))) TS_CResult_CounterpartyChannelTransactionParametersDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_CounterpartyChannelTransactionParametersDecodeErrorZ* o_conv = (LDKCResult_CounterpartyChannelTransactionParametersDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_CounterpartyChannelTransactionParametersDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_CounterpartyChannelTransactionParametersDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_CounterpartyChannelTransactionParametersDecodeErrorZ_free"))) TS_CResult_CounterpartyChannelTransactionParametersDecodeErrorZ_free(uint32_t _res) {
@@ -10987,8 +11178,8 @@ static inline uintptr_t CResult_CounterpartyChannelTransactionParametersDecodeEr
 }
 uint32_t  __attribute__((export_name("TS_CResult_CounterpartyChannelTransactionParametersDecodeErrorZ_clone_ptr"))) TS_CResult_CounterpartyChannelTransactionParametersDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_CounterpartyChannelTransactionParametersDecodeErrorZ* arg_conv = (LDKCResult_CounterpartyChannelTransactionParametersDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_CounterpartyChannelTransactionParametersDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_CounterpartyChannelTransactionParametersDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_CounterpartyChannelTransactionParametersDecodeErrorZ_clone"))) TS_CResult_CounterpartyChannelTransactionParametersDecodeErrorZ_clone(uint32_t orig) {
@@ -11022,8 +11213,8 @@ uint32_t  __attribute__((export_name("TS_CResult_ChannelTransactionParametersDec
 
 jboolean  __attribute__((export_name("TS_CResult_ChannelTransactionParametersDecodeErrorZ_is_ok"))) TS_CResult_ChannelTransactionParametersDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_ChannelTransactionParametersDecodeErrorZ* o_conv = (LDKCResult_ChannelTransactionParametersDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_ChannelTransactionParametersDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_ChannelTransactionParametersDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_ChannelTransactionParametersDecodeErrorZ_free"))) TS_CResult_ChannelTransactionParametersDecodeErrorZ_free(uint32_t _res) {
@@ -11042,8 +11233,8 @@ static inline uintptr_t CResult_ChannelTransactionParametersDecodeErrorZ_clone_p
 }
 uint32_t  __attribute__((export_name("TS_CResult_ChannelTransactionParametersDecodeErrorZ_clone_ptr"))) TS_CResult_ChannelTransactionParametersDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_ChannelTransactionParametersDecodeErrorZ* arg_conv = (LDKCResult_ChannelTransactionParametersDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_ChannelTransactionParametersDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_ChannelTransactionParametersDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_ChannelTransactionParametersDecodeErrorZ_clone"))) TS_CResult_ChannelTransactionParametersDecodeErrorZ_clone(uint32_t orig) {
@@ -11095,8 +11286,8 @@ uint32_t  __attribute__((export_name("TS_CResult_HolderCommitmentTransactionDeco
 
 jboolean  __attribute__((export_name("TS_CResult_HolderCommitmentTransactionDecodeErrorZ_is_ok"))) TS_CResult_HolderCommitmentTransactionDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_HolderCommitmentTransactionDecodeErrorZ* o_conv = (LDKCResult_HolderCommitmentTransactionDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_HolderCommitmentTransactionDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_HolderCommitmentTransactionDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_HolderCommitmentTransactionDecodeErrorZ_free"))) TS_CResult_HolderCommitmentTransactionDecodeErrorZ_free(uint32_t _res) {
@@ -11115,8 +11306,8 @@ static inline uintptr_t CResult_HolderCommitmentTransactionDecodeErrorZ_clone_pt
 }
 uint32_t  __attribute__((export_name("TS_CResult_HolderCommitmentTransactionDecodeErrorZ_clone_ptr"))) TS_CResult_HolderCommitmentTransactionDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_HolderCommitmentTransactionDecodeErrorZ* arg_conv = (LDKCResult_HolderCommitmentTransactionDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_HolderCommitmentTransactionDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_HolderCommitmentTransactionDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_HolderCommitmentTransactionDecodeErrorZ_clone"))) TS_CResult_HolderCommitmentTransactionDecodeErrorZ_clone(uint32_t orig) {
@@ -11150,8 +11341,8 @@ uint32_t  __attribute__((export_name("TS_CResult_BuiltCommitmentTransactionDecod
 
 jboolean  __attribute__((export_name("TS_CResult_BuiltCommitmentTransactionDecodeErrorZ_is_ok"))) TS_CResult_BuiltCommitmentTransactionDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_BuiltCommitmentTransactionDecodeErrorZ* o_conv = (LDKCResult_BuiltCommitmentTransactionDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_BuiltCommitmentTransactionDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_BuiltCommitmentTransactionDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_BuiltCommitmentTransactionDecodeErrorZ_free"))) TS_CResult_BuiltCommitmentTransactionDecodeErrorZ_free(uint32_t _res) {
@@ -11170,8 +11361,8 @@ static inline uintptr_t CResult_BuiltCommitmentTransactionDecodeErrorZ_clone_ptr
 }
 uint32_t  __attribute__((export_name("TS_CResult_BuiltCommitmentTransactionDecodeErrorZ_clone_ptr"))) TS_CResult_BuiltCommitmentTransactionDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_BuiltCommitmentTransactionDecodeErrorZ* arg_conv = (LDKCResult_BuiltCommitmentTransactionDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_BuiltCommitmentTransactionDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_BuiltCommitmentTransactionDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_BuiltCommitmentTransactionDecodeErrorZ_clone"))) TS_CResult_BuiltCommitmentTransactionDecodeErrorZ_clone(uint32_t orig) {
@@ -11200,8 +11391,8 @@ uint32_t  __attribute__((export_name("TS_CResult_TrustedClosingTransactionNoneZ_
 
 jboolean  __attribute__((export_name("TS_CResult_TrustedClosingTransactionNoneZ_is_ok"))) TS_CResult_TrustedClosingTransactionNoneZ_is_ok(uint32_t o) {
        LDKCResult_TrustedClosingTransactionNoneZ* o_conv = (LDKCResult_TrustedClosingTransactionNoneZ*)(o & ~1);
-       jboolean ret_val = CResult_TrustedClosingTransactionNoneZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_TrustedClosingTransactionNoneZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_TrustedClosingTransactionNoneZ_free"))) TS_CResult_TrustedClosingTransactionNoneZ_free(uint32_t _res) {
@@ -11237,8 +11428,8 @@ uint32_t  __attribute__((export_name("TS_CResult_CommitmentTransactionDecodeErro
 
 jboolean  __attribute__((export_name("TS_CResult_CommitmentTransactionDecodeErrorZ_is_ok"))) TS_CResult_CommitmentTransactionDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_CommitmentTransactionDecodeErrorZ* o_conv = (LDKCResult_CommitmentTransactionDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_CommitmentTransactionDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_CommitmentTransactionDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_CommitmentTransactionDecodeErrorZ_free"))) TS_CResult_CommitmentTransactionDecodeErrorZ_free(uint32_t _res) {
@@ -11257,8 +11448,8 @@ static inline uintptr_t CResult_CommitmentTransactionDecodeErrorZ_clone_ptr(LDKC
 }
 uint32_t  __attribute__((export_name("TS_CResult_CommitmentTransactionDecodeErrorZ_clone_ptr"))) TS_CResult_CommitmentTransactionDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_CommitmentTransactionDecodeErrorZ* arg_conv = (LDKCResult_CommitmentTransactionDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_CommitmentTransactionDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_CommitmentTransactionDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_CommitmentTransactionDecodeErrorZ_clone"))) TS_CResult_CommitmentTransactionDecodeErrorZ_clone(uint32_t orig) {
@@ -11287,8 +11478,8 @@ uint32_t  __attribute__((export_name("TS_CResult_TrustedCommitmentTransactionNon
 
 jboolean  __attribute__((export_name("TS_CResult_TrustedCommitmentTransactionNoneZ_is_ok"))) TS_CResult_TrustedCommitmentTransactionNoneZ_is_ok(uint32_t o) {
        LDKCResult_TrustedCommitmentTransactionNoneZ* o_conv = (LDKCResult_TrustedCommitmentTransactionNoneZ*)(o & ~1);
-       jboolean ret_val = CResult_TrustedCommitmentTransactionNoneZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_TrustedCommitmentTransactionNoneZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_TrustedCommitmentTransactionNoneZ_free"))) TS_CResult_TrustedCommitmentTransactionNoneZ_free(uint32_t _res) {
@@ -11328,8 +11519,8 @@ uint32_t  __attribute__((export_name("TS_CResult_CVec_SignatureZNoneZ_err"))) TS
 
 jboolean  __attribute__((export_name("TS_CResult_CVec_SignatureZNoneZ_is_ok"))) TS_CResult_CVec_SignatureZNoneZ_is_ok(uint32_t o) {
        LDKCResult_CVec_SignatureZNoneZ* o_conv = (LDKCResult_CVec_SignatureZNoneZ*)(o & ~1);
-       jboolean ret_val = CResult_CVec_SignatureZNoneZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_CVec_SignatureZNoneZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_CVec_SignatureZNoneZ_free"))) TS_CResult_CVec_SignatureZNoneZ_free(uint32_t _res) {
@@ -11348,8 +11539,8 @@ static inline uintptr_t CResult_CVec_SignatureZNoneZ_clone_ptr(LDKCResult_CVec_S
 }
 uint32_t  __attribute__((export_name("TS_CResult_CVec_SignatureZNoneZ_clone_ptr"))) TS_CResult_CVec_SignatureZNoneZ_clone_ptr(uint32_t arg) {
        LDKCResult_CVec_SignatureZNoneZ* arg_conv = (LDKCResult_CVec_SignatureZNoneZ*)(arg & ~1);
-       uint32_t ret_val = CResult_CVec_SignatureZNoneZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_CVec_SignatureZNoneZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_CVec_SignatureZNoneZ_clone"))) TS_CResult_CVec_SignatureZNoneZ_clone(uint32_t orig) {
@@ -11383,8 +11574,8 @@ uint32_t  __attribute__((export_name("TS_CResult_ShutdownScriptDecodeErrorZ_err"
 
 jboolean  __attribute__((export_name("TS_CResult_ShutdownScriptDecodeErrorZ_is_ok"))) TS_CResult_ShutdownScriptDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_ShutdownScriptDecodeErrorZ* o_conv = (LDKCResult_ShutdownScriptDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_ShutdownScriptDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_ShutdownScriptDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_ShutdownScriptDecodeErrorZ_free"))) TS_CResult_ShutdownScriptDecodeErrorZ_free(uint32_t _res) {
@@ -11403,8 +11594,8 @@ static inline uintptr_t CResult_ShutdownScriptDecodeErrorZ_clone_ptr(LDKCResult_
 }
 uint32_t  __attribute__((export_name("TS_CResult_ShutdownScriptDecodeErrorZ_clone_ptr"))) TS_CResult_ShutdownScriptDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_ShutdownScriptDecodeErrorZ* arg_conv = (LDKCResult_ShutdownScriptDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_ShutdownScriptDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_ShutdownScriptDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_ShutdownScriptDecodeErrorZ_clone"))) TS_CResult_ShutdownScriptDecodeErrorZ_clone(uint32_t orig) {
@@ -11438,8 +11629,8 @@ uint32_t  __attribute__((export_name("TS_CResult_ShutdownScriptInvalidShutdownSc
 
 jboolean  __attribute__((export_name("TS_CResult_ShutdownScriptInvalidShutdownScriptZ_is_ok"))) TS_CResult_ShutdownScriptInvalidShutdownScriptZ_is_ok(uint32_t o) {
        LDKCResult_ShutdownScriptInvalidShutdownScriptZ* o_conv = (LDKCResult_ShutdownScriptInvalidShutdownScriptZ*)(o & ~1);
-       jboolean ret_val = CResult_ShutdownScriptInvalidShutdownScriptZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_ShutdownScriptInvalidShutdownScriptZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_ShutdownScriptInvalidShutdownScriptZ_free"))) TS_CResult_ShutdownScriptInvalidShutdownScriptZ_free(uint32_t _res) {
@@ -11458,8 +11649,8 @@ static inline uintptr_t CResult_ShutdownScriptInvalidShutdownScriptZ_clone_ptr(L
 }
 uint32_t  __attribute__((export_name("TS_CResult_ShutdownScriptInvalidShutdownScriptZ_clone_ptr"))) TS_CResult_ShutdownScriptInvalidShutdownScriptZ_clone_ptr(uint32_t arg) {
        LDKCResult_ShutdownScriptInvalidShutdownScriptZ* arg_conv = (LDKCResult_ShutdownScriptInvalidShutdownScriptZ*)(arg & ~1);
-       uint32_t ret_val = CResult_ShutdownScriptInvalidShutdownScriptZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_ShutdownScriptInvalidShutdownScriptZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_ShutdownScriptInvalidShutdownScriptZ_clone"))) TS_CResult_ShutdownScriptInvalidShutdownScriptZ_clone(uint32_t orig) {
@@ -11493,8 +11684,8 @@ uint32_t  __attribute__((export_name("TS_CResult_RouteHopDecodeErrorZ_err"))) TS
 
 jboolean  __attribute__((export_name("TS_CResult_RouteHopDecodeErrorZ_is_ok"))) TS_CResult_RouteHopDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_RouteHopDecodeErrorZ* o_conv = (LDKCResult_RouteHopDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_RouteHopDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_RouteHopDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_RouteHopDecodeErrorZ_free"))) TS_CResult_RouteHopDecodeErrorZ_free(uint32_t _res) {
@@ -11513,8 +11704,8 @@ static inline uintptr_t CResult_RouteHopDecodeErrorZ_clone_ptr(LDKCResult_RouteH
 }
 uint32_t  __attribute__((export_name("TS_CResult_RouteHopDecodeErrorZ_clone_ptr"))) TS_CResult_RouteHopDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_RouteHopDecodeErrorZ* arg_conv = (LDKCResult_RouteHopDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_RouteHopDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_RouteHopDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_RouteHopDecodeErrorZ_clone"))) TS_CResult_RouteHopDecodeErrorZ_clone(uint32_t orig) {
@@ -11597,8 +11788,8 @@ uint32_t  __attribute__((export_name("TS_CResult_RouteDecodeErrorZ_err"))) TS_CR
 
 jboolean  __attribute__((export_name("TS_CResult_RouteDecodeErrorZ_is_ok"))) TS_CResult_RouteDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_RouteDecodeErrorZ* o_conv = (LDKCResult_RouteDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_RouteDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_RouteDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_RouteDecodeErrorZ_free"))) TS_CResult_RouteDecodeErrorZ_free(uint32_t _res) {
@@ -11617,8 +11808,8 @@ static inline uintptr_t CResult_RouteDecodeErrorZ_clone_ptr(LDKCResult_RouteDeco
 }
 uint32_t  __attribute__((export_name("TS_CResult_RouteDecodeErrorZ_clone_ptr"))) TS_CResult_RouteDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_RouteDecodeErrorZ* arg_conv = (LDKCResult_RouteDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_RouteDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_RouteDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_RouteDecodeErrorZ_clone"))) TS_CResult_RouteDecodeErrorZ_clone(uint32_t orig) {
@@ -11652,8 +11843,8 @@ uint32_t  __attribute__((export_name("TS_CResult_RouteParametersDecodeErrorZ_err
 
 jboolean  __attribute__((export_name("TS_CResult_RouteParametersDecodeErrorZ_is_ok"))) TS_CResult_RouteParametersDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_RouteParametersDecodeErrorZ* o_conv = (LDKCResult_RouteParametersDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_RouteParametersDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_RouteParametersDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_RouteParametersDecodeErrorZ_free"))) TS_CResult_RouteParametersDecodeErrorZ_free(uint32_t _res) {
@@ -11672,8 +11863,8 @@ static inline uintptr_t CResult_RouteParametersDecodeErrorZ_clone_ptr(LDKCResult
 }
 uint32_t  __attribute__((export_name("TS_CResult_RouteParametersDecodeErrorZ_clone_ptr"))) TS_CResult_RouteParametersDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_RouteParametersDecodeErrorZ* arg_conv = (LDKCResult_RouteParametersDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_RouteParametersDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_RouteParametersDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_RouteParametersDecodeErrorZ_clone"))) TS_CResult_RouteParametersDecodeErrorZ_clone(uint32_t orig) {
@@ -11733,8 +11924,8 @@ uint32_t ret_ref = (uintptr_t)ret_copy;
 }
 uint32_t  __attribute__((export_name("TS_COption_u64Z_clone_ptr"))) TS_COption_u64Z_clone_ptr(uint32_t arg) {
        LDKCOption_u64Z* arg_conv = (LDKCOption_u64Z*)arg;
-       uint32_t ret_val = COption_u64Z_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = COption_u64Z_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_COption_u64Z_clone"))) TS_COption_u64Z_clone(uint32_t orig) {
@@ -11769,8 +11960,8 @@ uint32_t  __attribute__((export_name("TS_CResult_PaymentParametersDecodeErrorZ_e
 
 jboolean  __attribute__((export_name("TS_CResult_PaymentParametersDecodeErrorZ_is_ok"))) TS_CResult_PaymentParametersDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_PaymentParametersDecodeErrorZ* o_conv = (LDKCResult_PaymentParametersDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_PaymentParametersDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_PaymentParametersDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_PaymentParametersDecodeErrorZ_free"))) TS_CResult_PaymentParametersDecodeErrorZ_free(uint32_t _res) {
@@ -11789,8 +11980,8 @@ static inline uintptr_t CResult_PaymentParametersDecodeErrorZ_clone_ptr(LDKCResu
 }
 uint32_t  __attribute__((export_name("TS_CResult_PaymentParametersDecodeErrorZ_clone_ptr"))) TS_CResult_PaymentParametersDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_PaymentParametersDecodeErrorZ* arg_conv = (LDKCResult_PaymentParametersDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_PaymentParametersDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_PaymentParametersDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_PaymentParametersDecodeErrorZ_clone"))) TS_CResult_PaymentParametersDecodeErrorZ_clone(uint32_t orig) {
@@ -11843,8 +12034,8 @@ uint32_t  __attribute__((export_name("TS_CResult_RouteHintDecodeErrorZ_err"))) T
 
 jboolean  __attribute__((export_name("TS_CResult_RouteHintDecodeErrorZ_is_ok"))) TS_CResult_RouteHintDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_RouteHintDecodeErrorZ* o_conv = (LDKCResult_RouteHintDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_RouteHintDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_RouteHintDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_RouteHintDecodeErrorZ_free"))) TS_CResult_RouteHintDecodeErrorZ_free(uint32_t _res) {
@@ -11863,8 +12054,8 @@ static inline uintptr_t CResult_RouteHintDecodeErrorZ_clone_ptr(LDKCResult_Route
 }
 uint32_t  __attribute__((export_name("TS_CResult_RouteHintDecodeErrorZ_clone_ptr"))) TS_CResult_RouteHintDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_RouteHintDecodeErrorZ* arg_conv = (LDKCResult_RouteHintDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_RouteHintDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_RouteHintDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_RouteHintDecodeErrorZ_clone"))) TS_CResult_RouteHintDecodeErrorZ_clone(uint32_t orig) {
@@ -11898,8 +12089,8 @@ uint32_t  __attribute__((export_name("TS_CResult_RouteHintHopDecodeErrorZ_err"))
 
 jboolean  __attribute__((export_name("TS_CResult_RouteHintHopDecodeErrorZ_is_ok"))) TS_CResult_RouteHintHopDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_RouteHintHopDecodeErrorZ* o_conv = (LDKCResult_RouteHintHopDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_RouteHintHopDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_RouteHintHopDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_RouteHintHopDecodeErrorZ_free"))) TS_CResult_RouteHintHopDecodeErrorZ_free(uint32_t _res) {
@@ -11918,8 +12109,8 @@ static inline uintptr_t CResult_RouteHintHopDecodeErrorZ_clone_ptr(LDKCResult_Ro
 }
 uint32_t  __attribute__((export_name("TS_CResult_RouteHintHopDecodeErrorZ_clone_ptr"))) TS_CResult_RouteHintHopDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_RouteHintHopDecodeErrorZ* arg_conv = (LDKCResult_RouteHintHopDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_RouteHintHopDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_RouteHintHopDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_RouteHintHopDecodeErrorZ_clone"))) TS_CResult_RouteHintHopDecodeErrorZ_clone(uint32_t orig) {
@@ -11972,8 +12163,8 @@ uint32_t  __attribute__((export_name("TS_CResult_RouteLightningErrorZ_err"))) TS
 
 jboolean  __attribute__((export_name("TS_CResult_RouteLightningErrorZ_is_ok"))) TS_CResult_RouteLightningErrorZ_is_ok(uint32_t o) {
        LDKCResult_RouteLightningErrorZ* o_conv = (LDKCResult_RouteLightningErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_RouteLightningErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_RouteLightningErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_RouteLightningErrorZ_free"))) TS_CResult_RouteLightningErrorZ_free(uint32_t _res) {
@@ -11992,8 +12183,8 @@ static inline uintptr_t CResult_RouteLightningErrorZ_clone_ptr(LDKCResult_RouteL
 }
 uint32_t  __attribute__((export_name("TS_CResult_RouteLightningErrorZ_clone_ptr"))) TS_CResult_RouteLightningErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_RouteLightningErrorZ* arg_conv = (LDKCResult_RouteLightningErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_RouteLightningErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_RouteLightningErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_RouteLightningErrorZ_clone"))) TS_CResult_RouteLightningErrorZ_clone(uint32_t orig) {
@@ -12022,8 +12213,8 @@ uint32_t  __attribute__((export_name("TS_CResult_TxOutAccessErrorZ_err"))) TS_CR
 
 jboolean  __attribute__((export_name("TS_CResult_TxOutAccessErrorZ_is_ok"))) TS_CResult_TxOutAccessErrorZ_is_ok(uint32_t o) {
        LDKCResult_TxOutAccessErrorZ* o_conv = (LDKCResult_TxOutAccessErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_TxOutAccessErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_TxOutAccessErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_TxOutAccessErrorZ_free"))) TS_CResult_TxOutAccessErrorZ_free(uint32_t _res) {
@@ -12042,8 +12233,8 @@ static inline uintptr_t CResult_TxOutAccessErrorZ_clone_ptr(LDKCResult_TxOutAcce
 }
 uint32_t  __attribute__((export_name("TS_CResult_TxOutAccessErrorZ_clone_ptr"))) TS_CResult_TxOutAccessErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_TxOutAccessErrorZ* arg_conv = (LDKCResult_TxOutAccessErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_TxOutAccessErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_TxOutAccessErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_TxOutAccessErrorZ_clone"))) TS_CResult_TxOutAccessErrorZ_clone(uint32_t orig) {
@@ -12060,8 +12251,8 @@ static inline uintptr_t C2Tuple_usizeTransactionZ_clone_ptr(LDKC2Tuple_usizeTran
 }
 uint32_t  __attribute__((export_name("TS_C2Tuple_usizeTransactionZ_clone_ptr"))) TS_C2Tuple_usizeTransactionZ_clone_ptr(uint32_t arg) {
        LDKC2Tuple_usizeTransactionZ* arg_conv = (LDKC2Tuple_usizeTransactionZ*)(arg & ~1);
-       uint32_t ret_val = C2Tuple_usizeTransactionZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = C2Tuple_usizeTransactionZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_C2Tuple_usizeTransactionZ_clone"))) TS_C2Tuple_usizeTransactionZ_clone(uint32_t orig) {
@@ -12143,8 +12334,8 @@ uint32_t  __attribute__((export_name("TS_CResult_NoneChannelMonitorUpdateErrZ_er
 
 jboolean  __attribute__((export_name("TS_CResult_NoneChannelMonitorUpdateErrZ_is_ok"))) TS_CResult_NoneChannelMonitorUpdateErrZ_is_ok(uint32_t o) {
        LDKCResult_NoneChannelMonitorUpdateErrZ* o_conv = (LDKCResult_NoneChannelMonitorUpdateErrZ*)(o & ~1);
-       jboolean ret_val = CResult_NoneChannelMonitorUpdateErrZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_NoneChannelMonitorUpdateErrZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_NoneChannelMonitorUpdateErrZ_free"))) TS_CResult_NoneChannelMonitorUpdateErrZ_free(uint32_t _res) {
@@ -12163,8 +12354,8 @@ static inline uintptr_t CResult_NoneChannelMonitorUpdateErrZ_clone_ptr(LDKCResul
 }
 uint32_t  __attribute__((export_name("TS_CResult_NoneChannelMonitorUpdateErrZ_clone_ptr"))) TS_CResult_NoneChannelMonitorUpdateErrZ_clone_ptr(uint32_t arg) {
        LDKCResult_NoneChannelMonitorUpdateErrZ* arg_conv = (LDKCResult_NoneChannelMonitorUpdateErrZ*)(arg & ~1);
-       uint32_t ret_val = CResult_NoneChannelMonitorUpdateErrZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_NoneChannelMonitorUpdateErrZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_NoneChannelMonitorUpdateErrZ_clone"))) TS_CResult_NoneChannelMonitorUpdateErrZ_clone(uint32_t orig) {
@@ -12228,8 +12419,8 @@ uint32_t ret_ref = (uintptr_t)ret_copy;
 }
 uint32_t  __attribute__((export_name("TS_COption_C2Tuple_usizeTransactionZZ_clone_ptr"))) TS_COption_C2Tuple_usizeTransactionZZ_clone_ptr(uint32_t arg) {
        LDKCOption_C2Tuple_usizeTransactionZZ* arg_conv = (LDKCOption_C2Tuple_usizeTransactionZZ*)arg;
-       uint32_t ret_val = COption_C2Tuple_usizeTransactionZZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = COption_C2Tuple_usizeTransactionZZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_COption_C2Tuple_usizeTransactionZZ_clone"))) TS_COption_C2Tuple_usizeTransactionZZ_clone(uint32_t orig) {
@@ -12275,8 +12466,8 @@ uint32_t ret_ref = (uintptr_t)ret_copy;
 }
 uint32_t  __attribute__((export_name("TS_COption_ClosureReasonZ_clone_ptr"))) TS_COption_ClosureReasonZ_clone_ptr(uint32_t arg) {
        LDKCOption_ClosureReasonZ* arg_conv = (LDKCOption_ClosureReasonZ*)arg;
-       uint32_t ret_val = COption_ClosureReasonZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = COption_ClosureReasonZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_COption_ClosureReasonZ_clone"))) TS_COption_ClosureReasonZ_clone(uint32_t orig) {
@@ -12310,8 +12501,8 @@ uint32_t  __attribute__((export_name("TS_CResult_COption_ClosureReasonZDecodeErr
 
 jboolean  __attribute__((export_name("TS_CResult_COption_ClosureReasonZDecodeErrorZ_is_ok"))) TS_CResult_COption_ClosureReasonZDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_COption_ClosureReasonZDecodeErrorZ* o_conv = (LDKCResult_COption_ClosureReasonZDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_COption_ClosureReasonZDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_COption_ClosureReasonZDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_COption_ClosureReasonZDecodeErrorZ_free"))) TS_CResult_COption_ClosureReasonZDecodeErrorZ_free(uint32_t _res) {
@@ -12330,8 +12521,8 @@ static inline uintptr_t CResult_COption_ClosureReasonZDecodeErrorZ_clone_ptr(LDK
 }
 uint32_t  __attribute__((export_name("TS_CResult_COption_ClosureReasonZDecodeErrorZ_clone_ptr"))) TS_CResult_COption_ClosureReasonZDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_COption_ClosureReasonZDecodeErrorZ* arg_conv = (LDKCResult_COption_ClosureReasonZDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_COption_ClosureReasonZDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_COption_ClosureReasonZDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_COption_ClosureReasonZDecodeErrorZ_clone"))) TS_CResult_COption_ClosureReasonZDecodeErrorZ_clone(uint32_t orig) {
@@ -12376,8 +12567,8 @@ uint32_t ret_ref = (uintptr_t)ret_copy;
 }
 uint32_t  __attribute__((export_name("TS_COption_NetworkUpdateZ_clone_ptr"))) TS_COption_NetworkUpdateZ_clone_ptr(uint32_t arg) {
        LDKCOption_NetworkUpdateZ* arg_conv = (LDKCOption_NetworkUpdateZ*)arg;
-       uint32_t ret_val = COption_NetworkUpdateZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = COption_NetworkUpdateZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_COption_NetworkUpdateZ_clone"))) TS_COption_NetworkUpdateZ_clone(uint32_t orig) {
@@ -12442,8 +12633,8 @@ uint32_t ret_ref = (uintptr_t)ret_copy;
 }
 uint32_t  __attribute__((export_name("TS_COption_EventZ_clone_ptr"))) TS_COption_EventZ_clone_ptr(uint32_t arg) {
        LDKCOption_EventZ* arg_conv = (LDKCOption_EventZ*)arg;
-       uint32_t ret_val = COption_EventZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = COption_EventZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_COption_EventZ_clone"))) TS_COption_EventZ_clone(uint32_t orig) {
@@ -12477,8 +12668,8 @@ uint32_t  __attribute__((export_name("TS_CResult_COption_EventZDecodeErrorZ_err"
 
 jboolean  __attribute__((export_name("TS_CResult_COption_EventZDecodeErrorZ_is_ok"))) TS_CResult_COption_EventZDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_COption_EventZDecodeErrorZ* o_conv = (LDKCResult_COption_EventZDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_COption_EventZDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_COption_EventZDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_COption_EventZDecodeErrorZ_free"))) TS_CResult_COption_EventZDecodeErrorZ_free(uint32_t _res) {
@@ -12497,8 +12688,8 @@ static inline uintptr_t CResult_COption_EventZDecodeErrorZ_clone_ptr(LDKCResult_
 }
 uint32_t  __attribute__((export_name("TS_CResult_COption_EventZDecodeErrorZ_clone_ptr"))) TS_CResult_COption_EventZDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_COption_EventZDecodeErrorZ* arg_conv = (LDKCResult_COption_EventZDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_COption_EventZDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_COption_EventZDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_COption_EventZDecodeErrorZ_clone"))) TS_CResult_COption_EventZDecodeErrorZ_clone(uint32_t orig) {
@@ -12551,8 +12742,8 @@ uint32_t  __attribute__((export_name("TS_CResult_FixedPenaltyScorerDecodeErrorZ_
 
 jboolean  __attribute__((export_name("TS_CResult_FixedPenaltyScorerDecodeErrorZ_is_ok"))) TS_CResult_FixedPenaltyScorerDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_FixedPenaltyScorerDecodeErrorZ* o_conv = (LDKCResult_FixedPenaltyScorerDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_FixedPenaltyScorerDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_FixedPenaltyScorerDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_FixedPenaltyScorerDecodeErrorZ_free"))) TS_CResult_FixedPenaltyScorerDecodeErrorZ_free(uint32_t _res) {
@@ -12571,8 +12762,8 @@ static inline uintptr_t CResult_FixedPenaltyScorerDecodeErrorZ_clone_ptr(LDKCRes
 }
 uint32_t  __attribute__((export_name("TS_CResult_FixedPenaltyScorerDecodeErrorZ_clone_ptr"))) TS_CResult_FixedPenaltyScorerDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_FixedPenaltyScorerDecodeErrorZ* arg_conv = (LDKCResult_FixedPenaltyScorerDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_FixedPenaltyScorerDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_FixedPenaltyScorerDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_FixedPenaltyScorerDecodeErrorZ_clone"))) TS_CResult_FixedPenaltyScorerDecodeErrorZ_clone(uint32_t orig) {
@@ -12606,8 +12797,8 @@ uint32_t  __attribute__((export_name("TS_CResult_ScoringParametersDecodeErrorZ_e
 
 jboolean  __attribute__((export_name("TS_CResult_ScoringParametersDecodeErrorZ_is_ok"))) TS_CResult_ScoringParametersDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_ScoringParametersDecodeErrorZ* o_conv = (LDKCResult_ScoringParametersDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_ScoringParametersDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_ScoringParametersDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_ScoringParametersDecodeErrorZ_free"))) TS_CResult_ScoringParametersDecodeErrorZ_free(uint32_t _res) {
@@ -12626,8 +12817,8 @@ static inline uintptr_t CResult_ScoringParametersDecodeErrorZ_clone_ptr(LDKCResu
 }
 uint32_t  __attribute__((export_name("TS_CResult_ScoringParametersDecodeErrorZ_clone_ptr"))) TS_CResult_ScoringParametersDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_ScoringParametersDecodeErrorZ* arg_conv = (LDKCResult_ScoringParametersDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_ScoringParametersDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_ScoringParametersDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_ScoringParametersDecodeErrorZ_clone"))) TS_CResult_ScoringParametersDecodeErrorZ_clone(uint32_t orig) {
@@ -12661,8 +12852,8 @@ uint32_t  __attribute__((export_name("TS_CResult_ScorerDecodeErrorZ_err"))) TS_C
 
 jboolean  __attribute__((export_name("TS_CResult_ScorerDecodeErrorZ_is_ok"))) TS_CResult_ScorerDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_ScorerDecodeErrorZ* o_conv = (LDKCResult_ScorerDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_ScorerDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_ScorerDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_ScorerDecodeErrorZ_free"))) TS_CResult_ScorerDecodeErrorZ_free(uint32_t _res) {
@@ -12674,103 +12865,6 @@ void  __attribute__((export_name("TS_CResult_ScorerDecodeErrorZ_free"))) TS_CRes
        CResult_ScorerDecodeErrorZ_free(_res_conv);
 }
 
-uint32_t  __attribute__((export_name("TS_CResult_ProbabilisticScoringParametersDecodeErrorZ_ok"))) TS_CResult_ProbabilisticScoringParametersDecodeErrorZ_ok(uint32_t o) {
-       LDKProbabilisticScoringParameters o_conv;
-       o_conv.inner = (void*)(o & (~1));
-       o_conv.is_owned = (o & 1) || (o == 0);
-       CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv);
-       o_conv = ProbabilisticScoringParameters_clone(&o_conv);
-       LDKCResult_ProbabilisticScoringParametersDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_ProbabilisticScoringParametersDecodeErrorZ), "LDKCResult_ProbabilisticScoringParametersDecodeErrorZ");
-       *ret_conv = CResult_ProbabilisticScoringParametersDecodeErrorZ_ok(o_conv);
-       return (uint32_t)ret_conv;
-}
-
-uint32_t  __attribute__((export_name("TS_CResult_ProbabilisticScoringParametersDecodeErrorZ_err"))) TS_CResult_ProbabilisticScoringParametersDecodeErrorZ_err(uint32_t e) {
-       LDKDecodeError e_conv;
-       e_conv.inner = (void*)(e & (~1));
-       e_conv.is_owned = (e & 1) || (e == 0);
-       CHECK_INNER_FIELD_ACCESS_OR_NULL(e_conv);
-       e_conv = DecodeError_clone(&e_conv);
-       LDKCResult_ProbabilisticScoringParametersDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_ProbabilisticScoringParametersDecodeErrorZ), "LDKCResult_ProbabilisticScoringParametersDecodeErrorZ");
-       *ret_conv = CResult_ProbabilisticScoringParametersDecodeErrorZ_err(e_conv);
-       return (uint32_t)ret_conv;
-}
-
-jboolean  __attribute__((export_name("TS_CResult_ProbabilisticScoringParametersDecodeErrorZ_is_ok"))) TS_CResult_ProbabilisticScoringParametersDecodeErrorZ_is_ok(uint32_t o) {
-       LDKCResult_ProbabilisticScoringParametersDecodeErrorZ* o_conv = (LDKCResult_ProbabilisticScoringParametersDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_ProbabilisticScoringParametersDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
-}
-
-void  __attribute__((export_name("TS_CResult_ProbabilisticScoringParametersDecodeErrorZ_free"))) TS_CResult_ProbabilisticScoringParametersDecodeErrorZ_free(uint32_t _res) {
-       if ((_res & 1) != 0) return;
-       void* _res_ptr = (void*)(((uintptr_t)_res) & ~1);
-       CHECK_ACCESS(_res_ptr);
-       LDKCResult_ProbabilisticScoringParametersDecodeErrorZ _res_conv = *(LDKCResult_ProbabilisticScoringParametersDecodeErrorZ*)(_res_ptr);
-       FREE((void*)_res);
-       CResult_ProbabilisticScoringParametersDecodeErrorZ_free(_res_conv);
-}
-
-static inline uintptr_t CResult_ProbabilisticScoringParametersDecodeErrorZ_clone_ptr(LDKCResult_ProbabilisticScoringParametersDecodeErrorZ *NONNULL_PTR arg) {
-       LDKCResult_ProbabilisticScoringParametersDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_ProbabilisticScoringParametersDecodeErrorZ), "LDKCResult_ProbabilisticScoringParametersDecodeErrorZ");
-       *ret_conv = CResult_ProbabilisticScoringParametersDecodeErrorZ_clone(arg);
-       return (uint32_t)ret_conv;
-}
-uint32_t  __attribute__((export_name("TS_CResult_ProbabilisticScoringParametersDecodeErrorZ_clone_ptr"))) TS_CResult_ProbabilisticScoringParametersDecodeErrorZ_clone_ptr(uint32_t arg) {
-       LDKCResult_ProbabilisticScoringParametersDecodeErrorZ* arg_conv = (LDKCResult_ProbabilisticScoringParametersDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_ProbabilisticScoringParametersDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
-}
-
-uint32_t  __attribute__((export_name("TS_CResult_ProbabilisticScoringParametersDecodeErrorZ_clone"))) TS_CResult_ProbabilisticScoringParametersDecodeErrorZ_clone(uint32_t orig) {
-       LDKCResult_ProbabilisticScoringParametersDecodeErrorZ* orig_conv = (LDKCResult_ProbabilisticScoringParametersDecodeErrorZ*)(orig & ~1);
-       LDKCResult_ProbabilisticScoringParametersDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_ProbabilisticScoringParametersDecodeErrorZ), "LDKCResult_ProbabilisticScoringParametersDecodeErrorZ");
-       *ret_conv = CResult_ProbabilisticScoringParametersDecodeErrorZ_clone(orig_conv);
-       return (uint32_t)ret_conv;
-}
-
-static inline uintptr_t C2Tuple_ProbabilisticScoringParametersNetworkGraphZ_clone_ptr(LDKC2Tuple_ProbabilisticScoringParametersNetworkGraphZ *NONNULL_PTR arg) {
-       LDKC2Tuple_ProbabilisticScoringParametersNetworkGraphZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_ProbabilisticScoringParametersNetworkGraphZ), "LDKC2Tuple_ProbabilisticScoringParametersNetworkGraphZ");
-       *ret_conv = C2Tuple_ProbabilisticScoringParametersNetworkGraphZ_clone(arg);
-       return ((uint32_t)ret_conv);
-}
-uint32_t  __attribute__((export_name("TS_C2Tuple_ProbabilisticScoringParametersNetworkGraphZ_clone_ptr"))) TS_C2Tuple_ProbabilisticScoringParametersNetworkGraphZ_clone_ptr(uint32_t arg) {
-       LDKC2Tuple_ProbabilisticScoringParametersNetworkGraphZ* arg_conv = (LDKC2Tuple_ProbabilisticScoringParametersNetworkGraphZ*)(arg & ~1);
-       uint32_t ret_val = C2Tuple_ProbabilisticScoringParametersNetworkGraphZ_clone_ptr(arg_conv);
-       return ret_val;
-}
-
-uint32_t  __attribute__((export_name("TS_C2Tuple_ProbabilisticScoringParametersNetworkGraphZ_clone"))) TS_C2Tuple_ProbabilisticScoringParametersNetworkGraphZ_clone(uint32_t orig) {
-       LDKC2Tuple_ProbabilisticScoringParametersNetworkGraphZ* orig_conv = (LDKC2Tuple_ProbabilisticScoringParametersNetworkGraphZ*)(orig & ~1);
-       LDKC2Tuple_ProbabilisticScoringParametersNetworkGraphZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_ProbabilisticScoringParametersNetworkGraphZ), "LDKC2Tuple_ProbabilisticScoringParametersNetworkGraphZ");
-       *ret_conv = C2Tuple_ProbabilisticScoringParametersNetworkGraphZ_clone(orig_conv);
-       return ((uint32_t)ret_conv);
-}
-
-uint32_t  __attribute__((export_name("TS_C2Tuple_ProbabilisticScoringParametersNetworkGraphZ_new"))) TS_C2Tuple_ProbabilisticScoringParametersNetworkGraphZ_new(uint32_t a, uint32_t b) {
-       LDKProbabilisticScoringParameters a_conv;
-       a_conv.inner = (void*)(a & (~1));
-       a_conv.is_owned = (a & 1) || (a == 0);
-       CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv);
-       a_conv = ProbabilisticScoringParameters_clone(&a_conv);
-       LDKNetworkGraph b_conv;
-       b_conv.inner = (void*)(b & (~1));
-       b_conv.is_owned = false;
-       CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv);
-       LDKC2Tuple_ProbabilisticScoringParametersNetworkGraphZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_ProbabilisticScoringParametersNetworkGraphZ), "LDKC2Tuple_ProbabilisticScoringParametersNetworkGraphZ");
-       *ret_conv = C2Tuple_ProbabilisticScoringParametersNetworkGraphZ_new(a_conv, &b_conv);
-       return ((uint32_t)ret_conv);
-}
-
-void  __attribute__((export_name("TS_C2Tuple_ProbabilisticScoringParametersNetworkGraphZ_free"))) TS_C2Tuple_ProbabilisticScoringParametersNetworkGraphZ_free(uint32_t _res) {
-       if ((_res & 1) != 0) return;
-       void* _res_ptr = (void*)(((uintptr_t)_res) & ~1);
-       CHECK_ACCESS(_res_ptr);
-       LDKC2Tuple_ProbabilisticScoringParametersNetworkGraphZ _res_conv = *(LDKC2Tuple_ProbabilisticScoringParametersNetworkGraphZ*)(_res_ptr);
-       FREE((void*)_res);
-       C2Tuple_ProbabilisticScoringParametersNetworkGraphZ_free(_res_conv);
-}
-
 uint32_t  __attribute__((export_name("TS_CResult_ProbabilisticScorerDecodeErrorZ_ok"))) TS_CResult_ProbabilisticScorerDecodeErrorZ_ok(uint32_t o) {
        LDKProbabilisticScorer o_conv;
        o_conv.inner = (void*)(o & (~1));
@@ -12795,8 +12889,8 @@ uint32_t  __attribute__((export_name("TS_CResult_ProbabilisticScorerDecodeErrorZ
 
 jboolean  __attribute__((export_name("TS_CResult_ProbabilisticScorerDecodeErrorZ_is_ok"))) TS_CResult_ProbabilisticScorerDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_ProbabilisticScorerDecodeErrorZ* o_conv = (LDKCResult_ProbabilisticScorerDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_ProbabilisticScorerDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_ProbabilisticScorerDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_ProbabilisticScorerDecodeErrorZ_free"))) TS_CResult_ProbabilisticScorerDecodeErrorZ_free(uint32_t _res) {
@@ -12832,8 +12926,8 @@ uint32_t  __attribute__((export_name("TS_CResult_InitFeaturesDecodeErrorZ_err"))
 
 jboolean  __attribute__((export_name("TS_CResult_InitFeaturesDecodeErrorZ_is_ok"))) TS_CResult_InitFeaturesDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_InitFeaturesDecodeErrorZ* o_conv = (LDKCResult_InitFeaturesDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_InitFeaturesDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_InitFeaturesDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_InitFeaturesDecodeErrorZ_free"))) TS_CResult_InitFeaturesDecodeErrorZ_free(uint32_t _res) {
@@ -12869,8 +12963,8 @@ uint32_t  __attribute__((export_name("TS_CResult_ChannelFeaturesDecodeErrorZ_err
 
 jboolean  __attribute__((export_name("TS_CResult_ChannelFeaturesDecodeErrorZ_is_ok"))) TS_CResult_ChannelFeaturesDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_ChannelFeaturesDecodeErrorZ* o_conv = (LDKCResult_ChannelFeaturesDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_ChannelFeaturesDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_ChannelFeaturesDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_ChannelFeaturesDecodeErrorZ_free"))) TS_CResult_ChannelFeaturesDecodeErrorZ_free(uint32_t _res) {
@@ -12906,8 +13000,8 @@ uint32_t  __attribute__((export_name("TS_CResult_NodeFeaturesDecodeErrorZ_err"))
 
 jboolean  __attribute__((export_name("TS_CResult_NodeFeaturesDecodeErrorZ_is_ok"))) TS_CResult_NodeFeaturesDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_NodeFeaturesDecodeErrorZ* o_conv = (LDKCResult_NodeFeaturesDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_NodeFeaturesDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_NodeFeaturesDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_NodeFeaturesDecodeErrorZ_free"))) TS_CResult_NodeFeaturesDecodeErrorZ_free(uint32_t _res) {
@@ -12943,8 +13037,8 @@ uint32_t  __attribute__((export_name("TS_CResult_InvoiceFeaturesDecodeErrorZ_err
 
 jboolean  __attribute__((export_name("TS_CResult_InvoiceFeaturesDecodeErrorZ_is_ok"))) TS_CResult_InvoiceFeaturesDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_InvoiceFeaturesDecodeErrorZ* o_conv = (LDKCResult_InvoiceFeaturesDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_InvoiceFeaturesDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_InvoiceFeaturesDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_InvoiceFeaturesDecodeErrorZ_free"))) TS_CResult_InvoiceFeaturesDecodeErrorZ_free(uint32_t _res) {
@@ -12980,8 +13074,8 @@ uint32_t  __attribute__((export_name("TS_CResult_ChannelTypeFeaturesDecodeErrorZ
 
 jboolean  __attribute__((export_name("TS_CResult_ChannelTypeFeaturesDecodeErrorZ_is_ok"))) TS_CResult_ChannelTypeFeaturesDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_ChannelTypeFeaturesDecodeErrorZ* o_conv = (LDKCResult_ChannelTypeFeaturesDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_ChannelTypeFeaturesDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_ChannelTypeFeaturesDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_ChannelTypeFeaturesDecodeErrorZ_free"))) TS_CResult_ChannelTypeFeaturesDecodeErrorZ_free(uint32_t _res) {
@@ -13017,8 +13111,8 @@ uint32_t  __attribute__((export_name("TS_CResult_DelayedPaymentOutputDescriptorD
 
 jboolean  __attribute__((export_name("TS_CResult_DelayedPaymentOutputDescriptorDecodeErrorZ_is_ok"))) TS_CResult_DelayedPaymentOutputDescriptorDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_DelayedPaymentOutputDescriptorDecodeErrorZ* o_conv = (LDKCResult_DelayedPaymentOutputDescriptorDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_DelayedPaymentOutputDescriptorDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_DelayedPaymentOutputDescriptorDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_DelayedPaymentOutputDescriptorDecodeErrorZ_free"))) TS_CResult_DelayedPaymentOutputDescriptorDecodeErrorZ_free(uint32_t _res) {
@@ -13037,8 +13131,8 @@ static inline uintptr_t CResult_DelayedPaymentOutputDescriptorDecodeErrorZ_clone
 }
 uint32_t  __attribute__((export_name("TS_CResult_DelayedPaymentOutputDescriptorDecodeErrorZ_clone_ptr"))) TS_CResult_DelayedPaymentOutputDescriptorDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_DelayedPaymentOutputDescriptorDecodeErrorZ* arg_conv = (LDKCResult_DelayedPaymentOutputDescriptorDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_DelayedPaymentOutputDescriptorDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_DelayedPaymentOutputDescriptorDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_DelayedPaymentOutputDescriptorDecodeErrorZ_clone"))) TS_CResult_DelayedPaymentOutputDescriptorDecodeErrorZ_clone(uint32_t orig) {
@@ -13072,8 +13166,8 @@ uint32_t  __attribute__((export_name("TS_CResult_StaticPaymentOutputDescriptorDe
 
 jboolean  __attribute__((export_name("TS_CResult_StaticPaymentOutputDescriptorDecodeErrorZ_is_ok"))) TS_CResult_StaticPaymentOutputDescriptorDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_StaticPaymentOutputDescriptorDecodeErrorZ* o_conv = (LDKCResult_StaticPaymentOutputDescriptorDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_StaticPaymentOutputDescriptorDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_StaticPaymentOutputDescriptorDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_StaticPaymentOutputDescriptorDecodeErrorZ_free"))) TS_CResult_StaticPaymentOutputDescriptorDecodeErrorZ_free(uint32_t _res) {
@@ -13092,8 +13186,8 @@ static inline uintptr_t CResult_StaticPaymentOutputDescriptorDecodeErrorZ_clone_
 }
 uint32_t  __attribute__((export_name("TS_CResult_StaticPaymentOutputDescriptorDecodeErrorZ_clone_ptr"))) TS_CResult_StaticPaymentOutputDescriptorDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_StaticPaymentOutputDescriptorDecodeErrorZ* arg_conv = (LDKCResult_StaticPaymentOutputDescriptorDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_StaticPaymentOutputDescriptorDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_StaticPaymentOutputDescriptorDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_StaticPaymentOutputDescriptorDecodeErrorZ_clone"))) TS_CResult_StaticPaymentOutputDescriptorDecodeErrorZ_clone(uint32_t orig) {
@@ -13126,8 +13220,8 @@ uint32_t  __attribute__((export_name("TS_CResult_SpendableOutputDescriptorDecode
 
 jboolean  __attribute__((export_name("TS_CResult_SpendableOutputDescriptorDecodeErrorZ_is_ok"))) TS_CResult_SpendableOutputDescriptorDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_SpendableOutputDescriptorDecodeErrorZ* o_conv = (LDKCResult_SpendableOutputDescriptorDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_SpendableOutputDescriptorDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_SpendableOutputDescriptorDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_SpendableOutputDescriptorDecodeErrorZ_free"))) TS_CResult_SpendableOutputDescriptorDecodeErrorZ_free(uint32_t _res) {
@@ -13146,8 +13240,8 @@ static inline uintptr_t CResult_SpendableOutputDescriptorDecodeErrorZ_clone_ptr(
 }
 uint32_t  __attribute__((export_name("TS_CResult_SpendableOutputDescriptorDecodeErrorZ_clone_ptr"))) TS_CResult_SpendableOutputDescriptorDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_SpendableOutputDescriptorDecodeErrorZ* arg_conv = (LDKCResult_SpendableOutputDescriptorDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_SpendableOutputDescriptorDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_SpendableOutputDescriptorDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_SpendableOutputDescriptorDecodeErrorZ_clone"))) TS_CResult_SpendableOutputDescriptorDecodeErrorZ_clone(uint32_t orig) {
@@ -13182,8 +13276,8 @@ static inline uintptr_t C2Tuple_SignatureCVec_SignatureZZ_clone_ptr(LDKC2Tuple_S
 }
 uint32_t  __attribute__((export_name("TS_C2Tuple_SignatureCVec_SignatureZZ_clone_ptr"))) TS_C2Tuple_SignatureCVec_SignatureZZ_clone_ptr(uint32_t arg) {
        LDKC2Tuple_SignatureCVec_SignatureZZ* arg_conv = (LDKC2Tuple_SignatureCVec_SignatureZZ*)(arg & ~1);
-       uint32_t ret_val = C2Tuple_SignatureCVec_SignatureZZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = C2Tuple_SignatureCVec_SignatureZZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_C2Tuple_SignatureCVec_SignatureZZ_clone"))) TS_C2Tuple_SignatureCVec_SignatureZZ_clone(uint32_t orig) {
@@ -13243,8 +13337,8 @@ uint32_t  __attribute__((export_name("TS_CResult_C2Tuple_SignatureCVec_Signature
 
 jboolean  __attribute__((export_name("TS_CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ_is_ok"))) TS_CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ_is_ok(uint32_t o) {
        LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ* o_conv = (LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ*)(o & ~1);
-       jboolean ret_val = CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ_free"))) TS_CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ_free(uint32_t _res) {
@@ -13263,8 +13357,8 @@ static inline uintptr_t CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ_clone_ptr
 }
 uint32_t  __attribute__((export_name("TS_CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ_clone_ptr"))) TS_CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ_clone_ptr(uint32_t arg) {
        LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ* arg_conv = (LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ*)(arg & ~1);
-       uint32_t ret_val = CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ_clone"))) TS_CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ_clone(uint32_t orig) {
@@ -13291,8 +13385,8 @@ uint32_t  __attribute__((export_name("TS_CResult_SignatureNoneZ_err"))) TS_CResu
 
 jboolean  __attribute__((export_name("TS_CResult_SignatureNoneZ_is_ok"))) TS_CResult_SignatureNoneZ_is_ok(uint32_t o) {
        LDKCResult_SignatureNoneZ* o_conv = (LDKCResult_SignatureNoneZ*)(o & ~1);
-       jboolean ret_val = CResult_SignatureNoneZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_SignatureNoneZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_SignatureNoneZ_free"))) TS_CResult_SignatureNoneZ_free(uint32_t _res) {
@@ -13311,8 +13405,8 @@ static inline uintptr_t CResult_SignatureNoneZ_clone_ptr(LDKCResult_SignatureNon
 }
 uint32_t  __attribute__((export_name("TS_CResult_SignatureNoneZ_clone_ptr"))) TS_CResult_SignatureNoneZ_clone_ptr(uint32_t arg) {
        LDKCResult_SignatureNoneZ* arg_conv = (LDKCResult_SignatureNoneZ*)(arg & ~1);
-       uint32_t ret_val = CResult_SignatureNoneZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_SignatureNoneZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_SignatureNoneZ_clone"))) TS_CResult_SignatureNoneZ_clone(uint32_t orig) {
@@ -13329,8 +13423,8 @@ static inline uintptr_t C2Tuple_SignatureSignatureZ_clone_ptr(LDKC2Tuple_Signatu
 }
 uint32_t  __attribute__((export_name("TS_C2Tuple_SignatureSignatureZ_clone_ptr"))) TS_C2Tuple_SignatureSignatureZ_clone_ptr(uint32_t arg) {
        LDKC2Tuple_SignatureSignatureZ* arg_conv = (LDKC2Tuple_SignatureSignatureZ*)(arg & ~1);
-       uint32_t ret_val = C2Tuple_SignatureSignatureZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = C2Tuple_SignatureSignatureZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_C2Tuple_SignatureSignatureZ_clone"))) TS_C2Tuple_SignatureSignatureZ_clone(uint32_t orig) {
@@ -13379,8 +13473,8 @@ uint32_t  __attribute__((export_name("TS_CResult_C2Tuple_SignatureSignatureZNone
 
 jboolean  __attribute__((export_name("TS_CResult_C2Tuple_SignatureSignatureZNoneZ_is_ok"))) TS_CResult_C2Tuple_SignatureSignatureZNoneZ_is_ok(uint32_t o) {
        LDKCResult_C2Tuple_SignatureSignatureZNoneZ* o_conv = (LDKCResult_C2Tuple_SignatureSignatureZNoneZ*)(o & ~1);
-       jboolean ret_val = CResult_C2Tuple_SignatureSignatureZNoneZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_C2Tuple_SignatureSignatureZNoneZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_C2Tuple_SignatureSignatureZNoneZ_free"))) TS_CResult_C2Tuple_SignatureSignatureZNoneZ_free(uint32_t _res) {
@@ -13399,8 +13493,8 @@ static inline uintptr_t CResult_C2Tuple_SignatureSignatureZNoneZ_clone_ptr(LDKCR
 }
 uint32_t  __attribute__((export_name("TS_CResult_C2Tuple_SignatureSignatureZNoneZ_clone_ptr"))) TS_CResult_C2Tuple_SignatureSignatureZNoneZ_clone_ptr(uint32_t arg) {
        LDKCResult_C2Tuple_SignatureSignatureZNoneZ* arg_conv = (LDKCResult_C2Tuple_SignatureSignatureZNoneZ*)(arg & ~1);
-       uint32_t ret_val = CResult_C2Tuple_SignatureSignatureZNoneZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_C2Tuple_SignatureSignatureZNoneZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_C2Tuple_SignatureSignatureZNoneZ_clone"))) TS_CResult_C2Tuple_SignatureSignatureZNoneZ_clone(uint32_t orig) {
@@ -13427,8 +13521,8 @@ uint32_t  __attribute__((export_name("TS_CResult_SecretKeyNoneZ_err"))) TS_CResu
 
 jboolean  __attribute__((export_name("TS_CResult_SecretKeyNoneZ_is_ok"))) TS_CResult_SecretKeyNoneZ_is_ok(uint32_t o) {
        LDKCResult_SecretKeyNoneZ* o_conv = (LDKCResult_SecretKeyNoneZ*)(o & ~1);
-       jboolean ret_val = CResult_SecretKeyNoneZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_SecretKeyNoneZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_SecretKeyNoneZ_free"))) TS_CResult_SecretKeyNoneZ_free(uint32_t _res) {
@@ -13447,8 +13541,8 @@ static inline uintptr_t CResult_SecretKeyNoneZ_clone_ptr(LDKCResult_SecretKeyNon
 }
 uint32_t  __attribute__((export_name("TS_CResult_SecretKeyNoneZ_clone_ptr"))) TS_CResult_SecretKeyNoneZ_clone_ptr(uint32_t arg) {
        LDKCResult_SecretKeyNoneZ* arg_conv = (LDKCResult_SecretKeyNoneZ*)(arg & ~1);
-       uint32_t ret_val = CResult_SecretKeyNoneZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_SecretKeyNoneZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_SecretKeyNoneZ_clone"))) TS_CResult_SecretKeyNoneZ_clone(uint32_t orig) {
@@ -13462,6 +13556,10 @@ uint32_t  __attribute__((export_name("TS_CResult_SignDecodeErrorZ_ok"))) TS_CRes
        void* o_ptr = (void*)(((uintptr_t)o) & ~1);
        CHECK_ACCESS(o_ptr);
        LDKSign o_conv = *(LDKSign*)(o_ptr);
+       if (o_conv.free == LDKSign_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKSign_JCalls_cloned(&o_conv);
+       }
        LDKCResult_SignDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SignDecodeErrorZ), "LDKCResult_SignDecodeErrorZ");
        *ret_conv = CResult_SignDecodeErrorZ_ok(o_conv);
        return (uint32_t)ret_conv;
@@ -13480,8 +13578,8 @@ uint32_t  __attribute__((export_name("TS_CResult_SignDecodeErrorZ_err"))) TS_CRe
 
 jboolean  __attribute__((export_name("TS_CResult_SignDecodeErrorZ_is_ok"))) TS_CResult_SignDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_SignDecodeErrorZ* o_conv = (LDKCResult_SignDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_SignDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_SignDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_SignDecodeErrorZ_free"))) TS_CResult_SignDecodeErrorZ_free(uint32_t _res) {
@@ -13500,8 +13598,8 @@ static inline uintptr_t CResult_SignDecodeErrorZ_clone_ptr(LDKCResult_SignDecode
 }
 uint32_t  __attribute__((export_name("TS_CResult_SignDecodeErrorZ_clone_ptr"))) TS_CResult_SignDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_SignDecodeErrorZ* arg_conv = (LDKCResult_SignDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_SignDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_SignDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_SignDecodeErrorZ_clone"))) TS_CResult_SignDecodeErrorZ_clone(uint32_t orig) {
@@ -13544,8 +13642,8 @@ uint32_t  __attribute__((export_name("TS_CResult_RecoverableSignatureNoneZ_err")
 
 jboolean  __attribute__((export_name("TS_CResult_RecoverableSignatureNoneZ_is_ok"))) TS_CResult_RecoverableSignatureNoneZ_is_ok(uint32_t o) {
        LDKCResult_RecoverableSignatureNoneZ* o_conv = (LDKCResult_RecoverableSignatureNoneZ*)(o & ~1);
-       jboolean ret_val = CResult_RecoverableSignatureNoneZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_RecoverableSignatureNoneZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_RecoverableSignatureNoneZ_free"))) TS_CResult_RecoverableSignatureNoneZ_free(uint32_t _res) {
@@ -13564,8 +13662,8 @@ static inline uintptr_t CResult_RecoverableSignatureNoneZ_clone_ptr(LDKCResult_R
 }
 uint32_t  __attribute__((export_name("TS_CResult_RecoverableSignatureNoneZ_clone_ptr"))) TS_CResult_RecoverableSignatureNoneZ_clone_ptr(uint32_t arg) {
        LDKCResult_RecoverableSignatureNoneZ* arg_conv = (LDKCResult_RecoverableSignatureNoneZ*)(arg & ~1);
-       uint32_t ret_val = CResult_RecoverableSignatureNoneZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_RecoverableSignatureNoneZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_RecoverableSignatureNoneZ_clone"))) TS_CResult_RecoverableSignatureNoneZ_clone(uint32_t orig) {
@@ -13631,8 +13729,8 @@ uint32_t  __attribute__((export_name("TS_CResult_CVec_CVec_u8ZZNoneZ_err"))) TS_
 
 jboolean  __attribute__((export_name("TS_CResult_CVec_CVec_u8ZZNoneZ_is_ok"))) TS_CResult_CVec_CVec_u8ZZNoneZ_is_ok(uint32_t o) {
        LDKCResult_CVec_CVec_u8ZZNoneZ* o_conv = (LDKCResult_CVec_CVec_u8ZZNoneZ*)(o & ~1);
-       jboolean ret_val = CResult_CVec_CVec_u8ZZNoneZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_CVec_CVec_u8ZZNoneZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_CVec_CVec_u8ZZNoneZ_free"))) TS_CResult_CVec_CVec_u8ZZNoneZ_free(uint32_t _res) {
@@ -13651,8 +13749,8 @@ static inline uintptr_t CResult_CVec_CVec_u8ZZNoneZ_clone_ptr(LDKCResult_CVec_CV
 }
 uint32_t  __attribute__((export_name("TS_CResult_CVec_CVec_u8ZZNoneZ_clone_ptr"))) TS_CResult_CVec_CVec_u8ZZNoneZ_clone_ptr(uint32_t arg) {
        LDKCResult_CVec_CVec_u8ZZNoneZ* arg_conv = (LDKCResult_CVec_CVec_u8ZZNoneZ*)(arg & ~1);
-       uint32_t ret_val = CResult_CVec_CVec_u8ZZNoneZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_CVec_CVec_u8ZZNoneZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_CVec_CVec_u8ZZNoneZ_clone"))) TS_CResult_CVec_CVec_u8ZZNoneZ_clone(uint32_t orig) {
@@ -13686,8 +13784,8 @@ uint32_t  __attribute__((export_name("TS_CResult_InMemorySignerDecodeErrorZ_err"
 
 jboolean  __attribute__((export_name("TS_CResult_InMemorySignerDecodeErrorZ_is_ok"))) TS_CResult_InMemorySignerDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_InMemorySignerDecodeErrorZ* o_conv = (LDKCResult_InMemorySignerDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_InMemorySignerDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_InMemorySignerDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_InMemorySignerDecodeErrorZ_free"))) TS_CResult_InMemorySignerDecodeErrorZ_free(uint32_t _res) {
@@ -13706,8 +13804,8 @@ static inline uintptr_t CResult_InMemorySignerDecodeErrorZ_clone_ptr(LDKCResult_
 }
 uint32_t  __attribute__((export_name("TS_CResult_InMemorySignerDecodeErrorZ_clone_ptr"))) TS_CResult_InMemorySignerDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_InMemorySignerDecodeErrorZ* arg_conv = (LDKCResult_InMemorySignerDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_InMemorySignerDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_InMemorySignerDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_InMemorySignerDecodeErrorZ_clone"))) TS_CResult_InMemorySignerDecodeErrorZ_clone(uint32_t orig) {
@@ -13755,8 +13853,8 @@ uint32_t  __attribute__((export_name("TS_CResult_TransactionNoneZ_err"))) TS_CRe
 
 jboolean  __attribute__((export_name("TS_CResult_TransactionNoneZ_is_ok"))) TS_CResult_TransactionNoneZ_is_ok(uint32_t o) {
        LDKCResult_TransactionNoneZ* o_conv = (LDKCResult_TransactionNoneZ*)(o & ~1);
-       jboolean ret_val = CResult_TransactionNoneZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_TransactionNoneZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_TransactionNoneZ_free"))) TS_CResult_TransactionNoneZ_free(uint32_t _res) {
@@ -13775,8 +13873,8 @@ static inline uintptr_t CResult_TransactionNoneZ_clone_ptr(LDKCResult_Transactio
 }
 uint32_t  __attribute__((export_name("TS_CResult_TransactionNoneZ_clone_ptr"))) TS_CResult_TransactionNoneZ_clone_ptr(uint32_t arg) {
        LDKCResult_TransactionNoneZ* arg_conv = (LDKCResult_TransactionNoneZ*)(arg & ~1);
-       uint32_t ret_val = CResult_TransactionNoneZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_TransactionNoneZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_TransactionNoneZ_clone"))) TS_CResult_TransactionNoneZ_clone(uint32_t orig) {
@@ -13817,8 +13915,8 @@ uint32_t ret_ref = (uintptr_t)ret_copy;
 }
 uint32_t  __attribute__((export_name("TS_COption_u16Z_clone_ptr"))) TS_COption_u16Z_clone_ptr(uint32_t arg) {
        LDKCOption_u16Z* arg_conv = (LDKCOption_u16Z*)arg;
-       uint32_t ret_val = COption_u16Z_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = COption_u16Z_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_COption_u16Z_clone"))) TS_COption_u16Z_clone(uint32_t orig) {
@@ -13847,8 +13945,8 @@ uint32_t  __attribute__((export_name("TS_CResult_NoneAPIErrorZ_err"))) TS_CResul
 
 jboolean  __attribute__((export_name("TS_CResult_NoneAPIErrorZ_is_ok"))) TS_CResult_NoneAPIErrorZ_is_ok(uint32_t o) {
        LDKCResult_NoneAPIErrorZ* o_conv = (LDKCResult_NoneAPIErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_NoneAPIErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_NoneAPIErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_NoneAPIErrorZ_free"))) TS_CResult_NoneAPIErrorZ_free(uint32_t _res) {
@@ -13867,8 +13965,8 @@ static inline uintptr_t CResult_NoneAPIErrorZ_clone_ptr(LDKCResult_NoneAPIErrorZ
 }
 uint32_t  __attribute__((export_name("TS_CResult_NoneAPIErrorZ_clone_ptr"))) TS_CResult_NoneAPIErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_NoneAPIErrorZ* arg_conv = (LDKCResult_NoneAPIErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_NoneAPIErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_NoneAPIErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_NoneAPIErrorZ_clone"))) TS_CResult_NoneAPIErrorZ_clone(uint32_t orig) {
@@ -13937,8 +14035,8 @@ uint32_t  __attribute__((export_name("TS_CResult__u832APIErrorZ_err"))) TS_CResu
 
 jboolean  __attribute__((export_name("TS_CResult__u832APIErrorZ_is_ok"))) TS_CResult__u832APIErrorZ_is_ok(uint32_t o) {
        LDKCResult__u832APIErrorZ* o_conv = (LDKCResult__u832APIErrorZ*)(o & ~1);
-       jboolean ret_val = CResult__u832APIErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult__u832APIErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult__u832APIErrorZ_free"))) TS_CResult__u832APIErrorZ_free(uint32_t _res) {
@@ -13957,8 +14055,8 @@ static inline uintptr_t CResult__u832APIErrorZ_clone_ptr(LDKCResult__u832APIErro
 }
 uint32_t  __attribute__((export_name("TS_CResult__u832APIErrorZ_clone_ptr"))) TS_CResult__u832APIErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult__u832APIErrorZ* arg_conv = (LDKCResult__u832APIErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult__u832APIErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult__u832APIErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult__u832APIErrorZ_clone"))) TS_CResult__u832APIErrorZ_clone(uint32_t orig) {
@@ -13989,8 +14087,8 @@ uint32_t  __attribute__((export_name("TS_CResult_PaymentIdPaymentSendFailureZ_er
 
 jboolean  __attribute__((export_name("TS_CResult_PaymentIdPaymentSendFailureZ_is_ok"))) TS_CResult_PaymentIdPaymentSendFailureZ_is_ok(uint32_t o) {
        LDKCResult_PaymentIdPaymentSendFailureZ* o_conv = (LDKCResult_PaymentIdPaymentSendFailureZ*)(o & ~1);
-       jboolean ret_val = CResult_PaymentIdPaymentSendFailureZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_PaymentIdPaymentSendFailureZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_PaymentIdPaymentSendFailureZ_free"))) TS_CResult_PaymentIdPaymentSendFailureZ_free(uint32_t _res) {
@@ -14009,8 +14107,8 @@ static inline uintptr_t CResult_PaymentIdPaymentSendFailureZ_clone_ptr(LDKCResul
 }
 uint32_t  __attribute__((export_name("TS_CResult_PaymentIdPaymentSendFailureZ_clone_ptr"))) TS_CResult_PaymentIdPaymentSendFailureZ_clone_ptr(uint32_t arg) {
        LDKCResult_PaymentIdPaymentSendFailureZ* arg_conv = (LDKCResult_PaymentIdPaymentSendFailureZ*)(arg & ~1);
-       uint32_t ret_val = CResult_PaymentIdPaymentSendFailureZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_PaymentIdPaymentSendFailureZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_PaymentIdPaymentSendFailureZ_clone"))) TS_CResult_PaymentIdPaymentSendFailureZ_clone(uint32_t orig) {
@@ -14038,8 +14136,8 @@ uint32_t  __attribute__((export_name("TS_CResult_NonePaymentSendFailureZ_err")))
 
 jboolean  __attribute__((export_name("TS_CResult_NonePaymentSendFailureZ_is_ok"))) TS_CResult_NonePaymentSendFailureZ_is_ok(uint32_t o) {
        LDKCResult_NonePaymentSendFailureZ* o_conv = (LDKCResult_NonePaymentSendFailureZ*)(o & ~1);
-       jboolean ret_val = CResult_NonePaymentSendFailureZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_NonePaymentSendFailureZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_NonePaymentSendFailureZ_free"))) TS_CResult_NonePaymentSendFailureZ_free(uint32_t _res) {
@@ -14058,8 +14156,8 @@ static inline uintptr_t CResult_NonePaymentSendFailureZ_clone_ptr(LDKCResult_Non
 }
 uint32_t  __attribute__((export_name("TS_CResult_NonePaymentSendFailureZ_clone_ptr"))) TS_CResult_NonePaymentSendFailureZ_clone_ptr(uint32_t arg) {
        LDKCResult_NonePaymentSendFailureZ* arg_conv = (LDKCResult_NonePaymentSendFailureZ*)(arg & ~1);
-       uint32_t ret_val = CResult_NonePaymentSendFailureZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_NonePaymentSendFailureZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_NonePaymentSendFailureZ_clone"))) TS_CResult_NonePaymentSendFailureZ_clone(uint32_t orig) {
@@ -14076,8 +14174,8 @@ static inline uintptr_t C2Tuple_PaymentHashPaymentIdZ_clone_ptr(LDKC2Tuple_Payme
 }
 uint32_t  __attribute__((export_name("TS_C2Tuple_PaymentHashPaymentIdZ_clone_ptr"))) TS_C2Tuple_PaymentHashPaymentIdZ_clone_ptr(uint32_t arg) {
        LDKC2Tuple_PaymentHashPaymentIdZ* arg_conv = (LDKC2Tuple_PaymentHashPaymentIdZ*)(arg & ~1);
-       uint32_t ret_val = C2Tuple_PaymentHashPaymentIdZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = C2Tuple_PaymentHashPaymentIdZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_C2Tuple_PaymentHashPaymentIdZ_clone"))) TS_C2Tuple_PaymentHashPaymentIdZ_clone(uint32_t orig) {
@@ -14130,8 +14228,8 @@ uint32_t  __attribute__((export_name("TS_CResult_C2Tuple_PaymentHashPaymentIdZPa
 
 jboolean  __attribute__((export_name("TS_CResult_C2Tuple_PaymentHashPaymentIdZPaymentSendFailureZ_is_ok"))) TS_CResult_C2Tuple_PaymentHashPaymentIdZPaymentSendFailureZ_is_ok(uint32_t o) {
        LDKCResult_C2Tuple_PaymentHashPaymentIdZPaymentSendFailureZ* o_conv = (LDKCResult_C2Tuple_PaymentHashPaymentIdZPaymentSendFailureZ*)(o & ~1);
-       jboolean ret_val = CResult_C2Tuple_PaymentHashPaymentIdZPaymentSendFailureZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_C2Tuple_PaymentHashPaymentIdZPaymentSendFailureZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_C2Tuple_PaymentHashPaymentIdZPaymentSendFailureZ_free"))) TS_CResult_C2Tuple_PaymentHashPaymentIdZPaymentSendFailureZ_free(uint32_t _res) {
@@ -14150,8 +14248,8 @@ static inline uintptr_t CResult_C2Tuple_PaymentHashPaymentIdZPaymentSendFailureZ
 }
 uint32_t  __attribute__((export_name("TS_CResult_C2Tuple_PaymentHashPaymentIdZPaymentSendFailureZ_clone_ptr"))) TS_CResult_C2Tuple_PaymentHashPaymentIdZPaymentSendFailureZ_clone_ptr(uint32_t arg) {
        LDKCResult_C2Tuple_PaymentHashPaymentIdZPaymentSendFailureZ* arg_conv = (LDKCResult_C2Tuple_PaymentHashPaymentIdZPaymentSendFailureZ*)(arg & ~1);
-       uint32_t ret_val = CResult_C2Tuple_PaymentHashPaymentIdZPaymentSendFailureZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_C2Tuple_PaymentHashPaymentIdZPaymentSendFailureZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_C2Tuple_PaymentHashPaymentIdZPaymentSendFailureZ_clone"))) TS_CResult_C2Tuple_PaymentHashPaymentIdZPaymentSendFailureZ_clone(uint32_t orig) {
@@ -14187,8 +14285,8 @@ static inline uintptr_t C2Tuple_PaymentHashPaymentSecretZ_clone_ptr(LDKC2Tuple_P
 }
 uint32_t  __attribute__((export_name("TS_C2Tuple_PaymentHashPaymentSecretZ_clone_ptr"))) TS_C2Tuple_PaymentHashPaymentSecretZ_clone_ptr(uint32_t arg) {
        LDKC2Tuple_PaymentHashPaymentSecretZ* arg_conv = (LDKC2Tuple_PaymentHashPaymentSecretZ*)(arg & ~1);
-       uint32_t ret_val = C2Tuple_PaymentHashPaymentSecretZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = C2Tuple_PaymentHashPaymentSecretZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_C2Tuple_PaymentHashPaymentSecretZ_clone"))) TS_C2Tuple_PaymentHashPaymentSecretZ_clone(uint32_t orig) {
@@ -14237,8 +14335,8 @@ uint32_t  __attribute__((export_name("TS_CResult_C2Tuple_PaymentHashPaymentSecre
 
 jboolean  __attribute__((export_name("TS_CResult_C2Tuple_PaymentHashPaymentSecretZNoneZ_is_ok"))) TS_CResult_C2Tuple_PaymentHashPaymentSecretZNoneZ_is_ok(uint32_t o) {
        LDKCResult_C2Tuple_PaymentHashPaymentSecretZNoneZ* o_conv = (LDKCResult_C2Tuple_PaymentHashPaymentSecretZNoneZ*)(o & ~1);
-       jboolean ret_val = CResult_C2Tuple_PaymentHashPaymentSecretZNoneZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_C2Tuple_PaymentHashPaymentSecretZNoneZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_C2Tuple_PaymentHashPaymentSecretZNoneZ_free"))) TS_CResult_C2Tuple_PaymentHashPaymentSecretZNoneZ_free(uint32_t _res) {
@@ -14257,8 +14355,8 @@ static inline uintptr_t CResult_C2Tuple_PaymentHashPaymentSecretZNoneZ_clone_ptr
 }
 uint32_t  __attribute__((export_name("TS_CResult_C2Tuple_PaymentHashPaymentSecretZNoneZ_clone_ptr"))) TS_CResult_C2Tuple_PaymentHashPaymentSecretZNoneZ_clone_ptr(uint32_t arg) {
        LDKCResult_C2Tuple_PaymentHashPaymentSecretZNoneZ* arg_conv = (LDKCResult_C2Tuple_PaymentHashPaymentSecretZNoneZ*)(arg & ~1);
-       uint32_t ret_val = CResult_C2Tuple_PaymentHashPaymentSecretZNoneZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_C2Tuple_PaymentHashPaymentSecretZNoneZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_C2Tuple_PaymentHashPaymentSecretZNoneZ_clone"))) TS_CResult_C2Tuple_PaymentHashPaymentSecretZNoneZ_clone(uint32_t orig) {
@@ -14290,8 +14388,8 @@ uint32_t  __attribute__((export_name("TS_CResult_C2Tuple_PaymentHashPaymentSecre
 
 jboolean  __attribute__((export_name("TS_CResult_C2Tuple_PaymentHashPaymentSecretZAPIErrorZ_is_ok"))) TS_CResult_C2Tuple_PaymentHashPaymentSecretZAPIErrorZ_is_ok(uint32_t o) {
        LDKCResult_C2Tuple_PaymentHashPaymentSecretZAPIErrorZ* o_conv = (LDKCResult_C2Tuple_PaymentHashPaymentSecretZAPIErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_C2Tuple_PaymentHashPaymentSecretZAPIErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_C2Tuple_PaymentHashPaymentSecretZAPIErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_C2Tuple_PaymentHashPaymentSecretZAPIErrorZ_free"))) TS_CResult_C2Tuple_PaymentHashPaymentSecretZAPIErrorZ_free(uint32_t _res) {
@@ -14310,8 +14408,8 @@ static inline uintptr_t CResult_C2Tuple_PaymentHashPaymentSecretZAPIErrorZ_clone
 }
 uint32_t  __attribute__((export_name("TS_CResult_C2Tuple_PaymentHashPaymentSecretZAPIErrorZ_clone_ptr"))) TS_CResult_C2Tuple_PaymentHashPaymentSecretZAPIErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_C2Tuple_PaymentHashPaymentSecretZAPIErrorZ* arg_conv = (LDKCResult_C2Tuple_PaymentHashPaymentSecretZAPIErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_C2Tuple_PaymentHashPaymentSecretZAPIErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_C2Tuple_PaymentHashPaymentSecretZAPIErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_C2Tuple_PaymentHashPaymentSecretZAPIErrorZ_clone"))) TS_CResult_C2Tuple_PaymentHashPaymentSecretZAPIErrorZ_clone(uint32_t orig) {
@@ -14338,8 +14436,8 @@ uint32_t  __attribute__((export_name("TS_CResult_PaymentSecretNoneZ_err"))) TS_C
 
 jboolean  __attribute__((export_name("TS_CResult_PaymentSecretNoneZ_is_ok"))) TS_CResult_PaymentSecretNoneZ_is_ok(uint32_t o) {
        LDKCResult_PaymentSecretNoneZ* o_conv = (LDKCResult_PaymentSecretNoneZ*)(o & ~1);
-       jboolean ret_val = CResult_PaymentSecretNoneZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_PaymentSecretNoneZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_PaymentSecretNoneZ_free"))) TS_CResult_PaymentSecretNoneZ_free(uint32_t _res) {
@@ -14358,8 +14456,8 @@ static inline uintptr_t CResult_PaymentSecretNoneZ_clone_ptr(LDKCResult_PaymentS
 }
 uint32_t  __attribute__((export_name("TS_CResult_PaymentSecretNoneZ_clone_ptr"))) TS_CResult_PaymentSecretNoneZ_clone_ptr(uint32_t arg) {
        LDKCResult_PaymentSecretNoneZ* arg_conv = (LDKCResult_PaymentSecretNoneZ*)(arg & ~1);
-       uint32_t ret_val = CResult_PaymentSecretNoneZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_PaymentSecretNoneZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_PaymentSecretNoneZ_clone"))) TS_CResult_PaymentSecretNoneZ_clone(uint32_t orig) {
@@ -14390,8 +14488,8 @@ uint32_t  __attribute__((export_name("TS_CResult_PaymentSecretAPIErrorZ_err")))
 
 jboolean  __attribute__((export_name("TS_CResult_PaymentSecretAPIErrorZ_is_ok"))) TS_CResult_PaymentSecretAPIErrorZ_is_ok(uint32_t o) {
        LDKCResult_PaymentSecretAPIErrorZ* o_conv = (LDKCResult_PaymentSecretAPIErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_PaymentSecretAPIErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_PaymentSecretAPIErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_PaymentSecretAPIErrorZ_free"))) TS_CResult_PaymentSecretAPIErrorZ_free(uint32_t _res) {
@@ -14410,8 +14508,8 @@ static inline uintptr_t CResult_PaymentSecretAPIErrorZ_clone_ptr(LDKCResult_Paym
 }
 uint32_t  __attribute__((export_name("TS_CResult_PaymentSecretAPIErrorZ_clone_ptr"))) TS_CResult_PaymentSecretAPIErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_PaymentSecretAPIErrorZ* arg_conv = (LDKCResult_PaymentSecretAPIErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_PaymentSecretAPIErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_PaymentSecretAPIErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_PaymentSecretAPIErrorZ_clone"))) TS_CResult_PaymentSecretAPIErrorZ_clone(uint32_t orig) {
@@ -14442,8 +14540,8 @@ uint32_t  __attribute__((export_name("TS_CResult_PaymentPreimageAPIErrorZ_err"))
 
 jboolean  __attribute__((export_name("TS_CResult_PaymentPreimageAPIErrorZ_is_ok"))) TS_CResult_PaymentPreimageAPIErrorZ_is_ok(uint32_t o) {
        LDKCResult_PaymentPreimageAPIErrorZ* o_conv = (LDKCResult_PaymentPreimageAPIErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_PaymentPreimageAPIErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_PaymentPreimageAPIErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_PaymentPreimageAPIErrorZ_free"))) TS_CResult_PaymentPreimageAPIErrorZ_free(uint32_t _res) {
@@ -14462,8 +14560,8 @@ static inline uintptr_t CResult_PaymentPreimageAPIErrorZ_clone_ptr(LDKCResult_Pa
 }
 uint32_t  __attribute__((export_name("TS_CResult_PaymentPreimageAPIErrorZ_clone_ptr"))) TS_CResult_PaymentPreimageAPIErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_PaymentPreimageAPIErrorZ* arg_conv = (LDKCResult_PaymentPreimageAPIErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_PaymentPreimageAPIErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_PaymentPreimageAPIErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_PaymentPreimageAPIErrorZ_clone"))) TS_CResult_PaymentPreimageAPIErrorZ_clone(uint32_t orig) {
@@ -14497,8 +14595,8 @@ uint32_t  __attribute__((export_name("TS_CResult_CounterpartyForwardingInfoDecod
 
 jboolean  __attribute__((export_name("TS_CResult_CounterpartyForwardingInfoDecodeErrorZ_is_ok"))) TS_CResult_CounterpartyForwardingInfoDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_CounterpartyForwardingInfoDecodeErrorZ* o_conv = (LDKCResult_CounterpartyForwardingInfoDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_CounterpartyForwardingInfoDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_CounterpartyForwardingInfoDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_CounterpartyForwardingInfoDecodeErrorZ_free"))) TS_CResult_CounterpartyForwardingInfoDecodeErrorZ_free(uint32_t _res) {
@@ -14517,8 +14615,8 @@ static inline uintptr_t CResult_CounterpartyForwardingInfoDecodeErrorZ_clone_ptr
 }
 uint32_t  __attribute__((export_name("TS_CResult_CounterpartyForwardingInfoDecodeErrorZ_clone_ptr"))) TS_CResult_CounterpartyForwardingInfoDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_CounterpartyForwardingInfoDecodeErrorZ* arg_conv = (LDKCResult_CounterpartyForwardingInfoDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_CounterpartyForwardingInfoDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_CounterpartyForwardingInfoDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_CounterpartyForwardingInfoDecodeErrorZ_clone"))) TS_CResult_CounterpartyForwardingInfoDecodeErrorZ_clone(uint32_t orig) {
@@ -14552,8 +14650,8 @@ uint32_t  __attribute__((export_name("TS_CResult_ChannelCounterpartyDecodeErrorZ
 
 jboolean  __attribute__((export_name("TS_CResult_ChannelCounterpartyDecodeErrorZ_is_ok"))) TS_CResult_ChannelCounterpartyDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_ChannelCounterpartyDecodeErrorZ* o_conv = (LDKCResult_ChannelCounterpartyDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_ChannelCounterpartyDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_ChannelCounterpartyDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_ChannelCounterpartyDecodeErrorZ_free"))) TS_CResult_ChannelCounterpartyDecodeErrorZ_free(uint32_t _res) {
@@ -14572,8 +14670,8 @@ static inline uintptr_t CResult_ChannelCounterpartyDecodeErrorZ_clone_ptr(LDKCRe
 }
 uint32_t  __attribute__((export_name("TS_CResult_ChannelCounterpartyDecodeErrorZ_clone_ptr"))) TS_CResult_ChannelCounterpartyDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_ChannelCounterpartyDecodeErrorZ* arg_conv = (LDKCResult_ChannelCounterpartyDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_ChannelCounterpartyDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_ChannelCounterpartyDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_ChannelCounterpartyDecodeErrorZ_clone"))) TS_CResult_ChannelCounterpartyDecodeErrorZ_clone(uint32_t orig) {
@@ -14607,8 +14705,8 @@ uint32_t  __attribute__((export_name("TS_CResult_ChannelDetailsDecodeErrorZ_err"
 
 jboolean  __attribute__((export_name("TS_CResult_ChannelDetailsDecodeErrorZ_is_ok"))) TS_CResult_ChannelDetailsDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_ChannelDetailsDecodeErrorZ* o_conv = (LDKCResult_ChannelDetailsDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_ChannelDetailsDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_ChannelDetailsDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_ChannelDetailsDecodeErrorZ_free"))) TS_CResult_ChannelDetailsDecodeErrorZ_free(uint32_t _res) {
@@ -14627,8 +14725,8 @@ static inline uintptr_t CResult_ChannelDetailsDecodeErrorZ_clone_ptr(LDKCResult_
 }
 uint32_t  __attribute__((export_name("TS_CResult_ChannelDetailsDecodeErrorZ_clone_ptr"))) TS_CResult_ChannelDetailsDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_ChannelDetailsDecodeErrorZ* arg_conv = (LDKCResult_ChannelDetailsDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_ChannelDetailsDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_ChannelDetailsDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_ChannelDetailsDecodeErrorZ_clone"))) TS_CResult_ChannelDetailsDecodeErrorZ_clone(uint32_t orig) {
@@ -14662,8 +14760,8 @@ uint32_t  __attribute__((export_name("TS_CResult_PhantomRouteHintsDecodeErrorZ_e
 
 jboolean  __attribute__((export_name("TS_CResult_PhantomRouteHintsDecodeErrorZ_is_ok"))) TS_CResult_PhantomRouteHintsDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_PhantomRouteHintsDecodeErrorZ* o_conv = (LDKCResult_PhantomRouteHintsDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_PhantomRouteHintsDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_PhantomRouteHintsDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_PhantomRouteHintsDecodeErrorZ_free"))) TS_CResult_PhantomRouteHintsDecodeErrorZ_free(uint32_t _res) {
@@ -14682,8 +14780,8 @@ static inline uintptr_t CResult_PhantomRouteHintsDecodeErrorZ_clone_ptr(LDKCResu
 }
 uint32_t  __attribute__((export_name("TS_CResult_PhantomRouteHintsDecodeErrorZ_clone_ptr"))) TS_CResult_PhantomRouteHintsDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_PhantomRouteHintsDecodeErrorZ* arg_conv = (LDKCResult_PhantomRouteHintsDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_PhantomRouteHintsDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_PhantomRouteHintsDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_PhantomRouteHintsDecodeErrorZ_clone"))) TS_CResult_PhantomRouteHintsDecodeErrorZ_clone(uint32_t orig) {
@@ -14758,8 +14856,8 @@ uint32_t  __attribute__((export_name("TS_CResult_C2Tuple_BlockHashChannelManager
 
 jboolean  __attribute__((export_name("TS_CResult_C2Tuple_BlockHashChannelManagerZDecodeErrorZ_is_ok"))) TS_CResult_C2Tuple_BlockHashChannelManagerZDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_C2Tuple_BlockHashChannelManagerZDecodeErrorZ* o_conv = (LDKCResult_C2Tuple_BlockHashChannelManagerZDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_C2Tuple_BlockHashChannelManagerZDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_C2Tuple_BlockHashChannelManagerZDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_C2Tuple_BlockHashChannelManagerZDecodeErrorZ_free"))) TS_CResult_C2Tuple_BlockHashChannelManagerZDecodeErrorZ_free(uint32_t _res) {
@@ -14795,8 +14893,8 @@ uint32_t  __attribute__((export_name("TS_CResult_ChannelConfigDecodeErrorZ_err")
 
 jboolean  __attribute__((export_name("TS_CResult_ChannelConfigDecodeErrorZ_is_ok"))) TS_CResult_ChannelConfigDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_ChannelConfigDecodeErrorZ* o_conv = (LDKCResult_ChannelConfigDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_ChannelConfigDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_ChannelConfigDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_ChannelConfigDecodeErrorZ_free"))) TS_CResult_ChannelConfigDecodeErrorZ_free(uint32_t _res) {
@@ -14815,8 +14913,8 @@ static inline uintptr_t CResult_ChannelConfigDecodeErrorZ_clone_ptr(LDKCResult_C
 }
 uint32_t  __attribute__((export_name("TS_CResult_ChannelConfigDecodeErrorZ_clone_ptr"))) TS_CResult_ChannelConfigDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_ChannelConfigDecodeErrorZ* arg_conv = (LDKCResult_ChannelConfigDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_ChannelConfigDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_ChannelConfigDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_ChannelConfigDecodeErrorZ_clone"))) TS_CResult_ChannelConfigDecodeErrorZ_clone(uint32_t orig) {
@@ -14850,8 +14948,8 @@ uint32_t  __attribute__((export_name("TS_CResult_OutPointDecodeErrorZ_err"))) TS
 
 jboolean  __attribute__((export_name("TS_CResult_OutPointDecodeErrorZ_is_ok"))) TS_CResult_OutPointDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_OutPointDecodeErrorZ* o_conv = (LDKCResult_OutPointDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_OutPointDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_OutPointDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_OutPointDecodeErrorZ_free"))) TS_CResult_OutPointDecodeErrorZ_free(uint32_t _res) {
@@ -14870,8 +14968,8 @@ static inline uintptr_t CResult_OutPointDecodeErrorZ_clone_ptr(LDKCResult_OutPoi
 }
 uint32_t  __attribute__((export_name("TS_CResult_OutPointDecodeErrorZ_clone_ptr"))) TS_CResult_OutPointDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_OutPointDecodeErrorZ* arg_conv = (LDKCResult_OutPointDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_OutPointDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_OutPointDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_OutPointDecodeErrorZ_clone"))) TS_CResult_OutPointDecodeErrorZ_clone(uint32_t orig) {
@@ -14885,6 +14983,10 @@ uint32_t  __attribute__((export_name("TS_COption_TypeZ_some"))) TS_COption_TypeZ
        void* o_ptr = (void*)(((uintptr_t)o) & ~1);
        CHECK_ACCESS(o_ptr);
        LDKType o_conv = *(LDKType*)(o_ptr);
+       if (o_conv.free == LDKType_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKType_JCalls_cloned(&o_conv);
+       }
        LDKCOption_TypeZ *ret_copy = MALLOC(sizeof(LDKCOption_TypeZ), "LDKCOption_TypeZ");
        *ret_copy = COption_TypeZ_some(o_conv);
        uint32_t ret_ref = (uintptr_t)ret_copy;
@@ -14915,8 +15017,8 @@ uint32_t ret_ref = (uintptr_t)ret_copy;
 }
 uint32_t  __attribute__((export_name("TS_COption_TypeZ_clone_ptr"))) TS_COption_TypeZ_clone_ptr(uint32_t arg) {
        LDKCOption_TypeZ* arg_conv = (LDKCOption_TypeZ*)arg;
-       uint32_t ret_val = COption_TypeZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = COption_TypeZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_COption_TypeZ_clone"))) TS_COption_TypeZ_clone(uint32_t orig) {
@@ -14950,8 +15052,8 @@ uint32_t  __attribute__((export_name("TS_CResult_COption_TypeZDecodeErrorZ_err")
 
 jboolean  __attribute__((export_name("TS_CResult_COption_TypeZDecodeErrorZ_is_ok"))) TS_CResult_COption_TypeZDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_COption_TypeZDecodeErrorZ* o_conv = (LDKCResult_COption_TypeZDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_COption_TypeZDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_COption_TypeZDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_COption_TypeZDecodeErrorZ_free"))) TS_CResult_COption_TypeZDecodeErrorZ_free(uint32_t _res) {
@@ -14970,8 +15072,8 @@ static inline uintptr_t CResult_COption_TypeZDecodeErrorZ_clone_ptr(LDKCResult_C
 }
 uint32_t  __attribute__((export_name("TS_CResult_COption_TypeZDecodeErrorZ_clone_ptr"))) TS_CResult_COption_TypeZDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_COption_TypeZDecodeErrorZ* arg_conv = (LDKCResult_COption_TypeZDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_COption_TypeZDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_COption_TypeZDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_COption_TypeZDecodeErrorZ_clone"))) TS_CResult_COption_TypeZDecodeErrorZ_clone(uint32_t orig) {
@@ -15002,8 +15104,8 @@ uint32_t  __attribute__((export_name("TS_CResult_PaymentIdPaymentErrorZ_err")))
 
 jboolean  __attribute__((export_name("TS_CResult_PaymentIdPaymentErrorZ_is_ok"))) TS_CResult_PaymentIdPaymentErrorZ_is_ok(uint32_t o) {
        LDKCResult_PaymentIdPaymentErrorZ* o_conv = (LDKCResult_PaymentIdPaymentErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_PaymentIdPaymentErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_PaymentIdPaymentErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_PaymentIdPaymentErrorZ_free"))) TS_CResult_PaymentIdPaymentErrorZ_free(uint32_t _res) {
@@ -15022,8 +15124,8 @@ static inline uintptr_t CResult_PaymentIdPaymentErrorZ_clone_ptr(LDKCResult_Paym
 }
 uint32_t  __attribute__((export_name("TS_CResult_PaymentIdPaymentErrorZ_clone_ptr"))) TS_CResult_PaymentIdPaymentErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_PaymentIdPaymentErrorZ* arg_conv = (LDKCResult_PaymentIdPaymentErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_PaymentIdPaymentErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_PaymentIdPaymentErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_PaymentIdPaymentErrorZ_clone"))) TS_CResult_PaymentIdPaymentErrorZ_clone(uint32_t orig) {
@@ -15033,149 +15135,161 @@ uint32_t  __attribute__((export_name("TS_CResult_PaymentIdPaymentErrorZ_clone"))
        return (uint32_t)ret_conv;
 }
 
-uint32_t  __attribute__((export_name("TS_CResult_SiPrefixNoneZ_ok"))) TS_CResult_SiPrefixNoneZ_ok(uint32_t o) {
+uint32_t  __attribute__((export_name("TS_CResult_SiPrefixParseErrorZ_ok"))) TS_CResult_SiPrefixParseErrorZ_ok(uint32_t o) {
        LDKSiPrefix o_conv = LDKSiPrefix_from_js(o);
-       LDKCResult_SiPrefixNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_SiPrefixNoneZ), "LDKCResult_SiPrefixNoneZ");
-       *ret_conv = CResult_SiPrefixNoneZ_ok(o_conv);
+       LDKCResult_SiPrefixParseErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SiPrefixParseErrorZ), "LDKCResult_SiPrefixParseErrorZ");
+       *ret_conv = CResult_SiPrefixParseErrorZ_ok(o_conv);
        return (uint32_t)ret_conv;
 }
 
-uint32_t  __attribute__((export_name("TS_CResult_SiPrefixNoneZ_err"))) TS_CResult_SiPrefixNoneZ_err() {
-       LDKCResult_SiPrefixNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_SiPrefixNoneZ), "LDKCResult_SiPrefixNoneZ");
-       *ret_conv = CResult_SiPrefixNoneZ_err();
+uint32_t  __attribute__((export_name("TS_CResult_SiPrefixParseErrorZ_err"))) TS_CResult_SiPrefixParseErrorZ_err(uint32_t e) {
+       void* e_ptr = (void*)(((uintptr_t)e) & ~1);
+       CHECK_ACCESS(e_ptr);
+       LDKParseError e_conv = *(LDKParseError*)(e_ptr);
+       e_conv = ParseError_clone((LDKParseError*)(((uintptr_t)e) & ~1));
+       LDKCResult_SiPrefixParseErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SiPrefixParseErrorZ), "LDKCResult_SiPrefixParseErrorZ");
+       *ret_conv = CResult_SiPrefixParseErrorZ_err(e_conv);
        return (uint32_t)ret_conv;
 }
 
-jboolean  __attribute__((export_name("TS_CResult_SiPrefixNoneZ_is_ok"))) TS_CResult_SiPrefixNoneZ_is_ok(uint32_t o) {
-       LDKCResult_SiPrefixNoneZ* o_conv = (LDKCResult_SiPrefixNoneZ*)(o & ~1);
-       jboolean ret_val = CResult_SiPrefixNoneZ_is_ok(o_conv);
-       return ret_val;
+jboolean  __attribute__((export_name("TS_CResult_SiPrefixParseErrorZ_is_ok"))) TS_CResult_SiPrefixParseErrorZ_is_ok(uint32_t o) {
+       LDKCResult_SiPrefixParseErrorZ* o_conv = (LDKCResult_SiPrefixParseErrorZ*)(o & ~1);
+       jboolean ret_conv = CResult_SiPrefixParseErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
-void  __attribute__((export_name("TS_CResult_SiPrefixNoneZ_free"))) TS_CResult_SiPrefixNoneZ_free(uint32_t _res) {
+void  __attribute__((export_name("TS_CResult_SiPrefixParseErrorZ_free"))) TS_CResult_SiPrefixParseErrorZ_free(uint32_t _res) {
        if ((_res & 1) != 0) return;
        void* _res_ptr = (void*)(((uintptr_t)_res) & ~1);
        CHECK_ACCESS(_res_ptr);
-       LDKCResult_SiPrefixNoneZ _res_conv = *(LDKCResult_SiPrefixNoneZ*)(_res_ptr);
+       LDKCResult_SiPrefixParseErrorZ _res_conv = *(LDKCResult_SiPrefixParseErrorZ*)(_res_ptr);
        FREE((void*)_res);
-       CResult_SiPrefixNoneZ_free(_res_conv);
+       CResult_SiPrefixParseErrorZ_free(_res_conv);
 }
 
-static inline uintptr_t CResult_SiPrefixNoneZ_clone_ptr(LDKCResult_SiPrefixNoneZ *NONNULL_PTR arg) {
-       LDKCResult_SiPrefixNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_SiPrefixNoneZ), "LDKCResult_SiPrefixNoneZ");
-       *ret_conv = CResult_SiPrefixNoneZ_clone(arg);
+static inline uintptr_t CResult_SiPrefixParseErrorZ_clone_ptr(LDKCResult_SiPrefixParseErrorZ *NONNULL_PTR arg) {
+       LDKCResult_SiPrefixParseErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SiPrefixParseErrorZ), "LDKCResult_SiPrefixParseErrorZ");
+       *ret_conv = CResult_SiPrefixParseErrorZ_clone(arg);
        return (uint32_t)ret_conv;
 }
-uint32_t  __attribute__((export_name("TS_CResult_SiPrefixNoneZ_clone_ptr"))) TS_CResult_SiPrefixNoneZ_clone_ptr(uint32_t arg) {
-       LDKCResult_SiPrefixNoneZ* arg_conv = (LDKCResult_SiPrefixNoneZ*)(arg & ~1);
-       uint32_t ret_val = CResult_SiPrefixNoneZ_clone_ptr(arg_conv);
-       return ret_val;
+uint32_t  __attribute__((export_name("TS_CResult_SiPrefixParseErrorZ_clone_ptr"))) TS_CResult_SiPrefixParseErrorZ_clone_ptr(uint32_t arg) {
+       LDKCResult_SiPrefixParseErrorZ* arg_conv = (LDKCResult_SiPrefixParseErrorZ*)(arg & ~1);
+       uint32_t ret_conv = CResult_SiPrefixParseErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
-uint32_t  __attribute__((export_name("TS_CResult_SiPrefixNoneZ_clone"))) TS_CResult_SiPrefixNoneZ_clone(uint32_t orig) {
-       LDKCResult_SiPrefixNoneZ* orig_conv = (LDKCResult_SiPrefixNoneZ*)(orig & ~1);
-       LDKCResult_SiPrefixNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_SiPrefixNoneZ), "LDKCResult_SiPrefixNoneZ");
-       *ret_conv = CResult_SiPrefixNoneZ_clone(orig_conv);
+uint32_t  __attribute__((export_name("TS_CResult_SiPrefixParseErrorZ_clone"))) TS_CResult_SiPrefixParseErrorZ_clone(uint32_t orig) {
+       LDKCResult_SiPrefixParseErrorZ* orig_conv = (LDKCResult_SiPrefixParseErrorZ*)(orig & ~1);
+       LDKCResult_SiPrefixParseErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SiPrefixParseErrorZ), "LDKCResult_SiPrefixParseErrorZ");
+       *ret_conv = CResult_SiPrefixParseErrorZ_clone(orig_conv);
        return (uint32_t)ret_conv;
 }
 
-uint32_t  __attribute__((export_name("TS_CResult_InvoiceNoneZ_ok"))) TS_CResult_InvoiceNoneZ_ok(uint32_t o) {
+uint32_t  __attribute__((export_name("TS_CResult_InvoiceParseOrSemanticErrorZ_ok"))) TS_CResult_InvoiceParseOrSemanticErrorZ_ok(uint32_t o) {
        LDKInvoice o_conv;
        o_conv.inner = (void*)(o & (~1));
        o_conv.is_owned = (o & 1) || (o == 0);
        CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv);
        o_conv = Invoice_clone(&o_conv);
-       LDKCResult_InvoiceNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_InvoiceNoneZ), "LDKCResult_InvoiceNoneZ");
-       *ret_conv = CResult_InvoiceNoneZ_ok(o_conv);
+       LDKCResult_InvoiceParseOrSemanticErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_InvoiceParseOrSemanticErrorZ), "LDKCResult_InvoiceParseOrSemanticErrorZ");
+       *ret_conv = CResult_InvoiceParseOrSemanticErrorZ_ok(o_conv);
        return (uint32_t)ret_conv;
 }
 
-uint32_t  __attribute__((export_name("TS_CResult_InvoiceNoneZ_err"))) TS_CResult_InvoiceNoneZ_err() {
-       LDKCResult_InvoiceNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_InvoiceNoneZ), "LDKCResult_InvoiceNoneZ");
-       *ret_conv = CResult_InvoiceNoneZ_err();
+uint32_t  __attribute__((export_name("TS_CResult_InvoiceParseOrSemanticErrorZ_err"))) TS_CResult_InvoiceParseOrSemanticErrorZ_err(uint32_t e) {
+       void* e_ptr = (void*)(((uintptr_t)e) & ~1);
+       CHECK_ACCESS(e_ptr);
+       LDKParseOrSemanticError e_conv = *(LDKParseOrSemanticError*)(e_ptr);
+       e_conv = ParseOrSemanticError_clone((LDKParseOrSemanticError*)(((uintptr_t)e) & ~1));
+       LDKCResult_InvoiceParseOrSemanticErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_InvoiceParseOrSemanticErrorZ), "LDKCResult_InvoiceParseOrSemanticErrorZ");
+       *ret_conv = CResult_InvoiceParseOrSemanticErrorZ_err(e_conv);
        return (uint32_t)ret_conv;
 }
 
-jboolean  __attribute__((export_name("TS_CResult_InvoiceNoneZ_is_ok"))) TS_CResult_InvoiceNoneZ_is_ok(uint32_t o) {
-       LDKCResult_InvoiceNoneZ* o_conv = (LDKCResult_InvoiceNoneZ*)(o & ~1);
-       jboolean ret_val = CResult_InvoiceNoneZ_is_ok(o_conv);
-       return ret_val;
+jboolean  __attribute__((export_name("TS_CResult_InvoiceParseOrSemanticErrorZ_is_ok"))) TS_CResult_InvoiceParseOrSemanticErrorZ_is_ok(uint32_t o) {
+       LDKCResult_InvoiceParseOrSemanticErrorZ* o_conv = (LDKCResult_InvoiceParseOrSemanticErrorZ*)(o & ~1);
+       jboolean ret_conv = CResult_InvoiceParseOrSemanticErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
-void  __attribute__((export_name("TS_CResult_InvoiceNoneZ_free"))) TS_CResult_InvoiceNoneZ_free(uint32_t _res) {
+void  __attribute__((export_name("TS_CResult_InvoiceParseOrSemanticErrorZ_free"))) TS_CResult_InvoiceParseOrSemanticErrorZ_free(uint32_t _res) {
        if ((_res & 1) != 0) return;
        void* _res_ptr = (void*)(((uintptr_t)_res) & ~1);
        CHECK_ACCESS(_res_ptr);
-       LDKCResult_InvoiceNoneZ _res_conv = *(LDKCResult_InvoiceNoneZ*)(_res_ptr);
+       LDKCResult_InvoiceParseOrSemanticErrorZ _res_conv = *(LDKCResult_InvoiceParseOrSemanticErrorZ*)(_res_ptr);
        FREE((void*)_res);
-       CResult_InvoiceNoneZ_free(_res_conv);
+       CResult_InvoiceParseOrSemanticErrorZ_free(_res_conv);
 }
 
-static inline uintptr_t CResult_InvoiceNoneZ_clone_ptr(LDKCResult_InvoiceNoneZ *NONNULL_PTR arg) {
-       LDKCResult_InvoiceNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_InvoiceNoneZ), "LDKCResult_InvoiceNoneZ");
-       *ret_conv = CResult_InvoiceNoneZ_clone(arg);
+static inline uintptr_t CResult_InvoiceParseOrSemanticErrorZ_clone_ptr(LDKCResult_InvoiceParseOrSemanticErrorZ *NONNULL_PTR arg) {
+       LDKCResult_InvoiceParseOrSemanticErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_InvoiceParseOrSemanticErrorZ), "LDKCResult_InvoiceParseOrSemanticErrorZ");
+       *ret_conv = CResult_InvoiceParseOrSemanticErrorZ_clone(arg);
        return (uint32_t)ret_conv;
 }
-uint32_t  __attribute__((export_name("TS_CResult_InvoiceNoneZ_clone_ptr"))) TS_CResult_InvoiceNoneZ_clone_ptr(uint32_t arg) {
-       LDKCResult_InvoiceNoneZ* arg_conv = (LDKCResult_InvoiceNoneZ*)(arg & ~1);
-       uint32_t ret_val = CResult_InvoiceNoneZ_clone_ptr(arg_conv);
-       return ret_val;
+uint32_t  __attribute__((export_name("TS_CResult_InvoiceParseOrSemanticErrorZ_clone_ptr"))) TS_CResult_InvoiceParseOrSemanticErrorZ_clone_ptr(uint32_t arg) {
+       LDKCResult_InvoiceParseOrSemanticErrorZ* arg_conv = (LDKCResult_InvoiceParseOrSemanticErrorZ*)(arg & ~1);
+       uint32_t ret_conv = CResult_InvoiceParseOrSemanticErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
-uint32_t  __attribute__((export_name("TS_CResult_InvoiceNoneZ_clone"))) TS_CResult_InvoiceNoneZ_clone(uint32_t orig) {
-       LDKCResult_InvoiceNoneZ* orig_conv = (LDKCResult_InvoiceNoneZ*)(orig & ~1);
-       LDKCResult_InvoiceNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_InvoiceNoneZ), "LDKCResult_InvoiceNoneZ");
-       *ret_conv = CResult_InvoiceNoneZ_clone(orig_conv);
+uint32_t  __attribute__((export_name("TS_CResult_InvoiceParseOrSemanticErrorZ_clone"))) TS_CResult_InvoiceParseOrSemanticErrorZ_clone(uint32_t orig) {
+       LDKCResult_InvoiceParseOrSemanticErrorZ* orig_conv = (LDKCResult_InvoiceParseOrSemanticErrorZ*)(orig & ~1);
+       LDKCResult_InvoiceParseOrSemanticErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_InvoiceParseOrSemanticErrorZ), "LDKCResult_InvoiceParseOrSemanticErrorZ");
+       *ret_conv = CResult_InvoiceParseOrSemanticErrorZ_clone(orig_conv);
        return (uint32_t)ret_conv;
 }
 
-uint32_t  __attribute__((export_name("TS_CResult_SignedRawInvoiceNoneZ_ok"))) TS_CResult_SignedRawInvoiceNoneZ_ok(uint32_t o) {
+uint32_t  __attribute__((export_name("TS_CResult_SignedRawInvoiceParseErrorZ_ok"))) TS_CResult_SignedRawInvoiceParseErrorZ_ok(uint32_t o) {
        LDKSignedRawInvoice o_conv;
        o_conv.inner = (void*)(o & (~1));
        o_conv.is_owned = (o & 1) || (o == 0);
        CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv);
        o_conv = SignedRawInvoice_clone(&o_conv);
-       LDKCResult_SignedRawInvoiceNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_SignedRawInvoiceNoneZ), "LDKCResult_SignedRawInvoiceNoneZ");
-       *ret_conv = CResult_SignedRawInvoiceNoneZ_ok(o_conv);
+       LDKCResult_SignedRawInvoiceParseErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SignedRawInvoiceParseErrorZ), "LDKCResult_SignedRawInvoiceParseErrorZ");
+       *ret_conv = CResult_SignedRawInvoiceParseErrorZ_ok(o_conv);
        return (uint32_t)ret_conv;
 }
 
-uint32_t  __attribute__((export_name("TS_CResult_SignedRawInvoiceNoneZ_err"))) TS_CResult_SignedRawInvoiceNoneZ_err() {
-       LDKCResult_SignedRawInvoiceNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_SignedRawInvoiceNoneZ), "LDKCResult_SignedRawInvoiceNoneZ");
-       *ret_conv = CResult_SignedRawInvoiceNoneZ_err();
+uint32_t  __attribute__((export_name("TS_CResult_SignedRawInvoiceParseErrorZ_err"))) TS_CResult_SignedRawInvoiceParseErrorZ_err(uint32_t e) {
+       void* e_ptr = (void*)(((uintptr_t)e) & ~1);
+       CHECK_ACCESS(e_ptr);
+       LDKParseError e_conv = *(LDKParseError*)(e_ptr);
+       e_conv = ParseError_clone((LDKParseError*)(((uintptr_t)e) & ~1));
+       LDKCResult_SignedRawInvoiceParseErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SignedRawInvoiceParseErrorZ), "LDKCResult_SignedRawInvoiceParseErrorZ");
+       *ret_conv = CResult_SignedRawInvoiceParseErrorZ_err(e_conv);
        return (uint32_t)ret_conv;
 }
 
-jboolean  __attribute__((export_name("TS_CResult_SignedRawInvoiceNoneZ_is_ok"))) TS_CResult_SignedRawInvoiceNoneZ_is_ok(uint32_t o) {
-       LDKCResult_SignedRawInvoiceNoneZ* o_conv = (LDKCResult_SignedRawInvoiceNoneZ*)(o & ~1);
-       jboolean ret_val = CResult_SignedRawInvoiceNoneZ_is_ok(o_conv);
-       return ret_val;
+jboolean  __attribute__((export_name("TS_CResult_SignedRawInvoiceParseErrorZ_is_ok"))) TS_CResult_SignedRawInvoiceParseErrorZ_is_ok(uint32_t o) {
+       LDKCResult_SignedRawInvoiceParseErrorZ* o_conv = (LDKCResult_SignedRawInvoiceParseErrorZ*)(o & ~1);
+       jboolean ret_conv = CResult_SignedRawInvoiceParseErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
-void  __attribute__((export_name("TS_CResult_SignedRawInvoiceNoneZ_free"))) TS_CResult_SignedRawInvoiceNoneZ_free(uint32_t _res) {
+void  __attribute__((export_name("TS_CResult_SignedRawInvoiceParseErrorZ_free"))) TS_CResult_SignedRawInvoiceParseErrorZ_free(uint32_t _res) {
        if ((_res & 1) != 0) return;
        void* _res_ptr = (void*)(((uintptr_t)_res) & ~1);
        CHECK_ACCESS(_res_ptr);
-       LDKCResult_SignedRawInvoiceNoneZ _res_conv = *(LDKCResult_SignedRawInvoiceNoneZ*)(_res_ptr);
+       LDKCResult_SignedRawInvoiceParseErrorZ _res_conv = *(LDKCResult_SignedRawInvoiceParseErrorZ*)(_res_ptr);
        FREE((void*)_res);
-       CResult_SignedRawInvoiceNoneZ_free(_res_conv);
+       CResult_SignedRawInvoiceParseErrorZ_free(_res_conv);
 }
 
-static inline uintptr_t CResult_SignedRawInvoiceNoneZ_clone_ptr(LDKCResult_SignedRawInvoiceNoneZ *NONNULL_PTR arg) {
-       LDKCResult_SignedRawInvoiceNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_SignedRawInvoiceNoneZ), "LDKCResult_SignedRawInvoiceNoneZ");
-       *ret_conv = CResult_SignedRawInvoiceNoneZ_clone(arg);
+static inline uintptr_t CResult_SignedRawInvoiceParseErrorZ_clone_ptr(LDKCResult_SignedRawInvoiceParseErrorZ *NONNULL_PTR arg) {
+       LDKCResult_SignedRawInvoiceParseErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SignedRawInvoiceParseErrorZ), "LDKCResult_SignedRawInvoiceParseErrorZ");
+       *ret_conv = CResult_SignedRawInvoiceParseErrorZ_clone(arg);
        return (uint32_t)ret_conv;
 }
-uint32_t  __attribute__((export_name("TS_CResult_SignedRawInvoiceNoneZ_clone_ptr"))) TS_CResult_SignedRawInvoiceNoneZ_clone_ptr(uint32_t arg) {
-       LDKCResult_SignedRawInvoiceNoneZ* arg_conv = (LDKCResult_SignedRawInvoiceNoneZ*)(arg & ~1);
-       uint32_t ret_val = CResult_SignedRawInvoiceNoneZ_clone_ptr(arg_conv);
-       return ret_val;
+uint32_t  __attribute__((export_name("TS_CResult_SignedRawInvoiceParseErrorZ_clone_ptr"))) TS_CResult_SignedRawInvoiceParseErrorZ_clone_ptr(uint32_t arg) {
+       LDKCResult_SignedRawInvoiceParseErrorZ* arg_conv = (LDKCResult_SignedRawInvoiceParseErrorZ*)(arg & ~1);
+       uint32_t ret_conv = CResult_SignedRawInvoiceParseErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
-uint32_t  __attribute__((export_name("TS_CResult_SignedRawInvoiceNoneZ_clone"))) TS_CResult_SignedRawInvoiceNoneZ_clone(uint32_t orig) {
-       LDKCResult_SignedRawInvoiceNoneZ* orig_conv = (LDKCResult_SignedRawInvoiceNoneZ*)(orig & ~1);
-       LDKCResult_SignedRawInvoiceNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_SignedRawInvoiceNoneZ), "LDKCResult_SignedRawInvoiceNoneZ");
-       *ret_conv = CResult_SignedRawInvoiceNoneZ_clone(orig_conv);
+uint32_t  __attribute__((export_name("TS_CResult_SignedRawInvoiceParseErrorZ_clone"))) TS_CResult_SignedRawInvoiceParseErrorZ_clone(uint32_t orig) {
+       LDKCResult_SignedRawInvoiceParseErrorZ* orig_conv = (LDKCResult_SignedRawInvoiceParseErrorZ*)(orig & ~1);
+       LDKCResult_SignedRawInvoiceParseErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SignedRawInvoiceParseErrorZ), "LDKCResult_SignedRawInvoiceParseErrorZ");
+       *ret_conv = CResult_SignedRawInvoiceParseErrorZ_clone(orig_conv);
        return (uint32_t)ret_conv;
 }
 
@@ -15186,8 +15300,8 @@ static inline uintptr_t C3Tuple_RawInvoice_u832InvoiceSignatureZ_clone_ptr(LDKC3
 }
 uint32_t  __attribute__((export_name("TS_C3Tuple_RawInvoice_u832InvoiceSignatureZ_clone_ptr"))) TS_C3Tuple_RawInvoice_u832InvoiceSignatureZ_clone_ptr(uint32_t arg) {
        LDKC3Tuple_RawInvoice_u832InvoiceSignatureZ* arg_conv = (LDKC3Tuple_RawInvoice_u832InvoiceSignatureZ*)(arg & ~1);
-       uint32_t ret_val = C3Tuple_RawInvoice_u832InvoiceSignatureZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = C3Tuple_RawInvoice_u832InvoiceSignatureZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_C3Tuple_RawInvoice_u832InvoiceSignatureZ_clone"))) TS_C3Tuple_RawInvoice_u832InvoiceSignatureZ_clone(uint32_t orig) {
@@ -15245,8 +15359,8 @@ uint32_t  __attribute__((export_name("TS_CResult_PayeePubKeyErrorZ_err"))) TS_CR
 
 jboolean  __attribute__((export_name("TS_CResult_PayeePubKeyErrorZ_is_ok"))) TS_CResult_PayeePubKeyErrorZ_is_ok(uint32_t o) {
        LDKCResult_PayeePubKeyErrorZ* o_conv = (LDKCResult_PayeePubKeyErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_PayeePubKeyErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_PayeePubKeyErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_PayeePubKeyErrorZ_free"))) TS_CResult_PayeePubKeyErrorZ_free(uint32_t _res) {
@@ -15265,8 +15379,8 @@ static inline uintptr_t CResult_PayeePubKeyErrorZ_clone_ptr(LDKCResult_PayeePubK
 }
 uint32_t  __attribute__((export_name("TS_CResult_PayeePubKeyErrorZ_clone_ptr"))) TS_CResult_PayeePubKeyErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_PayeePubKeyErrorZ* arg_conv = (LDKCResult_PayeePubKeyErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_PayeePubKeyErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_PayeePubKeyErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_PayeePubKeyErrorZ_clone"))) TS_CResult_PayeePubKeyErrorZ_clone(uint32_t orig) {
@@ -15315,8 +15429,8 @@ uint32_t  __attribute__((export_name("TS_CResult_PositiveTimestampCreationErrorZ
 
 jboolean  __attribute__((export_name("TS_CResult_PositiveTimestampCreationErrorZ_is_ok"))) TS_CResult_PositiveTimestampCreationErrorZ_is_ok(uint32_t o) {
        LDKCResult_PositiveTimestampCreationErrorZ* o_conv = (LDKCResult_PositiveTimestampCreationErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_PositiveTimestampCreationErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_PositiveTimestampCreationErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_PositiveTimestampCreationErrorZ_free"))) TS_CResult_PositiveTimestampCreationErrorZ_free(uint32_t _res) {
@@ -15335,8 +15449,8 @@ static inline uintptr_t CResult_PositiveTimestampCreationErrorZ_clone_ptr(LDKCRe
 }
 uint32_t  __attribute__((export_name("TS_CResult_PositiveTimestampCreationErrorZ_clone_ptr"))) TS_CResult_PositiveTimestampCreationErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_PositiveTimestampCreationErrorZ* arg_conv = (LDKCResult_PositiveTimestampCreationErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_PositiveTimestampCreationErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_PositiveTimestampCreationErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_PositiveTimestampCreationErrorZ_clone"))) TS_CResult_PositiveTimestampCreationErrorZ_clone(uint32_t orig) {
@@ -15361,8 +15475,8 @@ uint32_t  __attribute__((export_name("TS_CResult_NoneSemanticErrorZ_err"))) TS_C
 
 jboolean  __attribute__((export_name("TS_CResult_NoneSemanticErrorZ_is_ok"))) TS_CResult_NoneSemanticErrorZ_is_ok(uint32_t o) {
        LDKCResult_NoneSemanticErrorZ* o_conv = (LDKCResult_NoneSemanticErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_NoneSemanticErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_NoneSemanticErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_NoneSemanticErrorZ_free"))) TS_CResult_NoneSemanticErrorZ_free(uint32_t _res) {
@@ -15381,8 +15495,8 @@ static inline uintptr_t CResult_NoneSemanticErrorZ_clone_ptr(LDKCResult_NoneSema
 }
 uint32_t  __attribute__((export_name("TS_CResult_NoneSemanticErrorZ_clone_ptr"))) TS_CResult_NoneSemanticErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_NoneSemanticErrorZ* arg_conv = (LDKCResult_NoneSemanticErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_NoneSemanticErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_NoneSemanticErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_NoneSemanticErrorZ_clone"))) TS_CResult_NoneSemanticErrorZ_clone(uint32_t orig) {
@@ -15412,8 +15526,8 @@ uint32_t  __attribute__((export_name("TS_CResult_InvoiceSemanticErrorZ_err"))) T
 
 jboolean  __attribute__((export_name("TS_CResult_InvoiceSemanticErrorZ_is_ok"))) TS_CResult_InvoiceSemanticErrorZ_is_ok(uint32_t o) {
        LDKCResult_InvoiceSemanticErrorZ* o_conv = (LDKCResult_InvoiceSemanticErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_InvoiceSemanticErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_InvoiceSemanticErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_InvoiceSemanticErrorZ_free"))) TS_CResult_InvoiceSemanticErrorZ_free(uint32_t _res) {
@@ -15432,8 +15546,8 @@ static inline uintptr_t CResult_InvoiceSemanticErrorZ_clone_ptr(LDKCResult_Invoi
 }
 uint32_t  __attribute__((export_name("TS_CResult_InvoiceSemanticErrorZ_clone_ptr"))) TS_CResult_InvoiceSemanticErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_InvoiceSemanticErrorZ* arg_conv = (LDKCResult_InvoiceSemanticErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_InvoiceSemanticErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_InvoiceSemanticErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_InvoiceSemanticErrorZ_clone"))) TS_CResult_InvoiceSemanticErrorZ_clone(uint32_t orig) {
@@ -15463,8 +15577,8 @@ uint32_t  __attribute__((export_name("TS_CResult_DescriptionCreationErrorZ_err")
 
 jboolean  __attribute__((export_name("TS_CResult_DescriptionCreationErrorZ_is_ok"))) TS_CResult_DescriptionCreationErrorZ_is_ok(uint32_t o) {
        LDKCResult_DescriptionCreationErrorZ* o_conv = (LDKCResult_DescriptionCreationErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_DescriptionCreationErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_DescriptionCreationErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_DescriptionCreationErrorZ_free"))) TS_CResult_DescriptionCreationErrorZ_free(uint32_t _res) {
@@ -15483,8 +15597,8 @@ static inline uintptr_t CResult_DescriptionCreationErrorZ_clone_ptr(LDKCResult_D
 }
 uint32_t  __attribute__((export_name("TS_CResult_DescriptionCreationErrorZ_clone_ptr"))) TS_CResult_DescriptionCreationErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_DescriptionCreationErrorZ* arg_conv = (LDKCResult_DescriptionCreationErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_DescriptionCreationErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_DescriptionCreationErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_DescriptionCreationErrorZ_clone"))) TS_CResult_DescriptionCreationErrorZ_clone(uint32_t orig) {
@@ -15514,8 +15628,8 @@ uint32_t  __attribute__((export_name("TS_CResult_PrivateRouteCreationErrorZ_err"
 
 jboolean  __attribute__((export_name("TS_CResult_PrivateRouteCreationErrorZ_is_ok"))) TS_CResult_PrivateRouteCreationErrorZ_is_ok(uint32_t o) {
        LDKCResult_PrivateRouteCreationErrorZ* o_conv = (LDKCResult_PrivateRouteCreationErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_PrivateRouteCreationErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_PrivateRouteCreationErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_PrivateRouteCreationErrorZ_free"))) TS_CResult_PrivateRouteCreationErrorZ_free(uint32_t _res) {
@@ -15534,8 +15648,8 @@ static inline uintptr_t CResult_PrivateRouteCreationErrorZ_clone_ptr(LDKCResult_
 }
 uint32_t  __attribute__((export_name("TS_CResult_PrivateRouteCreationErrorZ_clone_ptr"))) TS_CResult_PrivateRouteCreationErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_PrivateRouteCreationErrorZ* arg_conv = (LDKCResult_PrivateRouteCreationErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_PrivateRouteCreationErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_PrivateRouteCreationErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_PrivateRouteCreationErrorZ_clone"))) TS_CResult_PrivateRouteCreationErrorZ_clone(uint32_t orig) {
@@ -15561,8 +15675,8 @@ uint32_t  __attribute__((export_name("TS_CResult_StringErrorZ_err"))) TS_CResult
 
 jboolean  __attribute__((export_name("TS_CResult_StringErrorZ_is_ok"))) TS_CResult_StringErrorZ_is_ok(uint32_t o) {
        LDKCResult_StringErrorZ* o_conv = (LDKCResult_StringErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_StringErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_StringErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_StringErrorZ_free"))) TS_CResult_StringErrorZ_free(uint32_t _res) {
@@ -15598,8 +15712,8 @@ uint32_t  __attribute__((export_name("TS_CResult_ChannelMonitorUpdateDecodeError
 
 jboolean  __attribute__((export_name("TS_CResult_ChannelMonitorUpdateDecodeErrorZ_is_ok"))) TS_CResult_ChannelMonitorUpdateDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_ChannelMonitorUpdateDecodeErrorZ* o_conv = (LDKCResult_ChannelMonitorUpdateDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_ChannelMonitorUpdateDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_ChannelMonitorUpdateDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_ChannelMonitorUpdateDecodeErrorZ_free"))) TS_CResult_ChannelMonitorUpdateDecodeErrorZ_free(uint32_t _res) {
@@ -15618,8 +15732,8 @@ static inline uintptr_t CResult_ChannelMonitorUpdateDecodeErrorZ_clone_ptr(LDKCR
 }
 uint32_t  __attribute__((export_name("TS_CResult_ChannelMonitorUpdateDecodeErrorZ_clone_ptr"))) TS_CResult_ChannelMonitorUpdateDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_ChannelMonitorUpdateDecodeErrorZ* arg_conv = (LDKCResult_ChannelMonitorUpdateDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_ChannelMonitorUpdateDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_ChannelMonitorUpdateDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_ChannelMonitorUpdateDecodeErrorZ_clone"))) TS_CResult_ChannelMonitorUpdateDecodeErrorZ_clone(uint32_t orig) {
@@ -15664,8 +15778,8 @@ uint32_t ret_ref = (uintptr_t)ret_copy;
 }
 uint32_t  __attribute__((export_name("TS_COption_MonitorEventZ_clone_ptr"))) TS_COption_MonitorEventZ_clone_ptr(uint32_t arg) {
        LDKCOption_MonitorEventZ* arg_conv = (LDKCOption_MonitorEventZ*)arg;
-       uint32_t ret_val = COption_MonitorEventZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = COption_MonitorEventZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_COption_MonitorEventZ_clone"))) TS_COption_MonitorEventZ_clone(uint32_t orig) {
@@ -15699,8 +15813,8 @@ uint32_t  __attribute__((export_name("TS_CResult_COption_MonitorEventZDecodeErro
 
 jboolean  __attribute__((export_name("TS_CResult_COption_MonitorEventZDecodeErrorZ_is_ok"))) TS_CResult_COption_MonitorEventZDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_COption_MonitorEventZDecodeErrorZ* o_conv = (LDKCResult_COption_MonitorEventZDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_COption_MonitorEventZDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_COption_MonitorEventZDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_COption_MonitorEventZDecodeErrorZ_free"))) TS_CResult_COption_MonitorEventZDecodeErrorZ_free(uint32_t _res) {
@@ -15719,8 +15833,8 @@ static inline uintptr_t CResult_COption_MonitorEventZDecodeErrorZ_clone_ptr(LDKC
 }
 uint32_t  __attribute__((export_name("TS_CResult_COption_MonitorEventZDecodeErrorZ_clone_ptr"))) TS_CResult_COption_MonitorEventZDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_COption_MonitorEventZDecodeErrorZ* arg_conv = (LDKCResult_COption_MonitorEventZDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_COption_MonitorEventZDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_COption_MonitorEventZDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_COption_MonitorEventZDecodeErrorZ_clone"))) TS_CResult_COption_MonitorEventZDecodeErrorZ_clone(uint32_t orig) {
@@ -15754,8 +15868,8 @@ uint32_t  __attribute__((export_name("TS_CResult_HTLCUpdateDecodeErrorZ_err")))
 
 jboolean  __attribute__((export_name("TS_CResult_HTLCUpdateDecodeErrorZ_is_ok"))) TS_CResult_HTLCUpdateDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_HTLCUpdateDecodeErrorZ* o_conv = (LDKCResult_HTLCUpdateDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_HTLCUpdateDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_HTLCUpdateDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_HTLCUpdateDecodeErrorZ_free"))) TS_CResult_HTLCUpdateDecodeErrorZ_free(uint32_t _res) {
@@ -15774,8 +15888,8 @@ static inline uintptr_t CResult_HTLCUpdateDecodeErrorZ_clone_ptr(LDKCResult_HTLC
 }
 uint32_t  __attribute__((export_name("TS_CResult_HTLCUpdateDecodeErrorZ_clone_ptr"))) TS_CResult_HTLCUpdateDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_HTLCUpdateDecodeErrorZ* arg_conv = (LDKCResult_HTLCUpdateDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_HTLCUpdateDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_HTLCUpdateDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_HTLCUpdateDecodeErrorZ_clone"))) TS_CResult_HTLCUpdateDecodeErrorZ_clone(uint32_t orig) {
@@ -15792,8 +15906,8 @@ static inline uintptr_t C2Tuple_OutPointScriptZ_clone_ptr(LDKC2Tuple_OutPointScr
 }
 uint32_t  __attribute__((export_name("TS_C2Tuple_OutPointScriptZ_clone_ptr"))) TS_C2Tuple_OutPointScriptZ_clone_ptr(uint32_t arg) {
        LDKC2Tuple_OutPointScriptZ* arg_conv = (LDKC2Tuple_OutPointScriptZ*)(arg & ~1);
-       uint32_t ret_val = C2Tuple_OutPointScriptZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = C2Tuple_OutPointScriptZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_C2Tuple_OutPointScriptZ_clone"))) TS_C2Tuple_OutPointScriptZ_clone(uint32_t orig) {
@@ -15834,8 +15948,8 @@ static inline uintptr_t C2Tuple_u32ScriptZ_clone_ptr(LDKC2Tuple_u32ScriptZ *NONN
 }
 uint32_t  __attribute__((export_name("TS_C2Tuple_u32ScriptZ_clone_ptr"))) TS_C2Tuple_u32ScriptZ_clone_ptr(uint32_t arg) {
        LDKC2Tuple_u32ScriptZ* arg_conv = (LDKC2Tuple_u32ScriptZ*)(arg & ~1);
-       uint32_t ret_val = C2Tuple_u32ScriptZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = C2Tuple_u32ScriptZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_C2Tuple_u32ScriptZ_clone"))) TS_C2Tuple_u32ScriptZ_clone(uint32_t orig) {
@@ -15890,8 +16004,8 @@ static inline uintptr_t C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_clone_ptr(LDKC2Tup
 }
 uint32_t  __attribute__((export_name("TS_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_clone_ptr"))) TS_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_clone_ptr(uint32_t arg) {
        LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ* arg_conv = (LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ*)(arg & ~1);
-       uint32_t ret_val = C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_clone"))) TS_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_clone(uint32_t orig) {
@@ -15999,8 +16113,8 @@ static inline uintptr_t C2Tuple_u32TxOutZ_clone_ptr(LDKC2Tuple_u32TxOutZ *NONNUL
 }
 uint32_t  __attribute__((export_name("TS_C2Tuple_u32TxOutZ_clone_ptr"))) TS_C2Tuple_u32TxOutZ_clone_ptr(uint32_t arg) {
        LDKC2Tuple_u32TxOutZ* arg_conv = (LDKC2Tuple_u32TxOutZ*)(arg & ~1);
-       uint32_t ret_val = C2Tuple_u32TxOutZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = C2Tuple_u32TxOutZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_C2Tuple_u32TxOutZ_clone"))) TS_C2Tuple_u32TxOutZ_clone(uint32_t orig) {
@@ -16055,8 +16169,8 @@ static inline uintptr_t C2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ_clone_ptr(LDKC2Tupl
 }
 uint32_t  __attribute__((export_name("TS_C2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ_clone_ptr"))) TS_C2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ_clone_ptr(uint32_t arg) {
        LDKC2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ* arg_conv = (LDKC2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ*)(arg & ~1);
-       uint32_t ret_val = C2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = C2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_C2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ_clone"))) TS_C2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ_clone(uint32_t orig) {
@@ -16144,8 +16258,8 @@ static inline uintptr_t C2Tuple_BlockHashChannelMonitorZ_clone_ptr(LDKC2Tuple_Bl
 }
 uint32_t  __attribute__((export_name("TS_C2Tuple_BlockHashChannelMonitorZ_clone_ptr"))) TS_C2Tuple_BlockHashChannelMonitorZ_clone_ptr(uint32_t arg) {
        LDKC2Tuple_BlockHashChannelMonitorZ* arg_conv = (LDKC2Tuple_BlockHashChannelMonitorZ*)(arg & ~1);
-       uint32_t ret_val = C2Tuple_BlockHashChannelMonitorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = C2Tuple_BlockHashChannelMonitorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_C2Tuple_BlockHashChannelMonitorZ_clone"))) TS_C2Tuple_BlockHashChannelMonitorZ_clone(uint32_t orig) {
@@ -16201,8 +16315,8 @@ uint32_t  __attribute__((export_name("TS_CResult_C2Tuple_BlockHashChannelMonitor
 
 jboolean  __attribute__((export_name("TS_CResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ_is_ok"))) TS_CResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ* o_conv = (LDKCResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ_free"))) TS_CResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ_free(uint32_t _res) {
@@ -16221,8 +16335,8 @@ static inline uintptr_t CResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ_clo
 }
 uint32_t  __attribute__((export_name("TS_CResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ_clone_ptr"))) TS_CResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ* arg_conv = (LDKCResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ_clone"))) TS_CResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ_clone(uint32_t orig) {
@@ -16251,8 +16365,8 @@ uint32_t  __attribute__((export_name("TS_CResult_NoneLightningErrorZ_err"))) TS_
 
 jboolean  __attribute__((export_name("TS_CResult_NoneLightningErrorZ_is_ok"))) TS_CResult_NoneLightningErrorZ_is_ok(uint32_t o) {
        LDKCResult_NoneLightningErrorZ* o_conv = (LDKCResult_NoneLightningErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_NoneLightningErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_NoneLightningErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_NoneLightningErrorZ_free"))) TS_CResult_NoneLightningErrorZ_free(uint32_t _res) {
@@ -16271,8 +16385,8 @@ static inline uintptr_t CResult_NoneLightningErrorZ_clone_ptr(LDKCResult_NoneLig
 }
 uint32_t  __attribute__((export_name("TS_CResult_NoneLightningErrorZ_clone_ptr"))) TS_CResult_NoneLightningErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_NoneLightningErrorZ* arg_conv = (LDKCResult_NoneLightningErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_NoneLightningErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_NoneLightningErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_NoneLightningErrorZ_clone"))) TS_CResult_NoneLightningErrorZ_clone(uint32_t orig) {
@@ -16289,8 +16403,8 @@ static inline uintptr_t C2Tuple_PublicKeyTypeZ_clone_ptr(LDKC2Tuple_PublicKeyTyp
 }
 uint32_t  __attribute__((export_name("TS_C2Tuple_PublicKeyTypeZ_clone_ptr"))) TS_C2Tuple_PublicKeyTypeZ_clone_ptr(uint32_t arg) {
        LDKC2Tuple_PublicKeyTypeZ* arg_conv = (LDKC2Tuple_PublicKeyTypeZ*)(arg & ~1);
-       uint32_t ret_val = C2Tuple_PublicKeyTypeZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = C2Tuple_PublicKeyTypeZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_C2Tuple_PublicKeyTypeZ_clone"))) TS_C2Tuple_PublicKeyTypeZ_clone(uint32_t orig) {
@@ -16307,6 +16421,10 @@ uint32_t  __attribute__((export_name("TS_C2Tuple_PublicKeyTypeZ_new"))) TS_C2Tup
        void* b_ptr = (void*)(((uintptr_t)b) & ~1);
        CHECK_ACCESS(b_ptr);
        LDKType b_conv = *(LDKType*)(b_ptr);
+       if (b_conv.free == LDKType_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKType_JCalls_cloned(&b_conv);
+       }
        LDKC2Tuple_PublicKeyTypeZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_PublicKeyTypeZ), "LDKC2Tuple_PublicKeyTypeZ");
        *ret_conv = C2Tuple_PublicKeyTypeZ_new(a_ref, b_conv);
        return ((uint32_t)ret_conv);
@@ -16359,8 +16477,8 @@ uint32_t  __attribute__((export_name("TS_CResult_boolLightningErrorZ_err"))) TS_
 
 jboolean  __attribute__((export_name("TS_CResult_boolLightningErrorZ_is_ok"))) TS_CResult_boolLightningErrorZ_is_ok(uint32_t o) {
        LDKCResult_boolLightningErrorZ* o_conv = (LDKCResult_boolLightningErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_boolLightningErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_boolLightningErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_boolLightningErrorZ_free"))) TS_CResult_boolLightningErrorZ_free(uint32_t _res) {
@@ -16379,8 +16497,8 @@ static inline uintptr_t CResult_boolLightningErrorZ_clone_ptr(LDKCResult_boolLig
 }
 uint32_t  __attribute__((export_name("TS_CResult_boolLightningErrorZ_clone_ptr"))) TS_CResult_boolLightningErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_boolLightningErrorZ* arg_conv = (LDKCResult_boolLightningErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_boolLightningErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_boolLightningErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_boolLightningErrorZ_clone"))) TS_CResult_boolLightningErrorZ_clone(uint32_t orig) {
@@ -16397,8 +16515,8 @@ static inline uintptr_t C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ_c
 }
 uint32_t  __attribute__((export_name("TS_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ_clone_ptr"))) TS_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ_clone_ptr(uint32_t arg) {
        LDKC3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ* arg_conv = (LDKC3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ*)(arg & ~1);
-       uint32_t ret_val = C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ_clone"))) TS_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ_clone(uint32_t orig) {
@@ -16494,6 +16612,53 @@ void  __attribute__((export_name("TS_CVec_PublicKeyZ_free"))) TS_CVec_PublicKeyZ
        CVec_PublicKeyZ_free(_res_constr);
 }
 
+uint32_t  __attribute__((export_name("TS_COption_NetAddressZ_some"))) TS_COption_NetAddressZ_some(uint32_t o) {
+       void* o_ptr = (void*)(((uintptr_t)o) & ~1);
+       CHECK_ACCESS(o_ptr);
+       LDKNetAddress o_conv = *(LDKNetAddress*)(o_ptr);
+       o_conv = NetAddress_clone((LDKNetAddress*)(((uintptr_t)o) & ~1));
+       LDKCOption_NetAddressZ *ret_copy = MALLOC(sizeof(LDKCOption_NetAddressZ), "LDKCOption_NetAddressZ");
+       *ret_copy = COption_NetAddressZ_some(o_conv);
+       uint32_t ret_ref = (uintptr_t)ret_copy;
+       return ret_ref;
+}
+
+uint32_t  __attribute__((export_name("TS_COption_NetAddressZ_none"))) TS_COption_NetAddressZ_none() {
+       LDKCOption_NetAddressZ *ret_copy = MALLOC(sizeof(LDKCOption_NetAddressZ), "LDKCOption_NetAddressZ");
+       *ret_copy = COption_NetAddressZ_none();
+       uint32_t ret_ref = (uintptr_t)ret_copy;
+       return ret_ref;
+}
+
+void  __attribute__((export_name("TS_COption_NetAddressZ_free"))) TS_COption_NetAddressZ_free(uint32_t _res) {
+       if ((_res & 1) != 0) return;
+       void* _res_ptr = (void*)(((uintptr_t)_res) & ~1);
+       CHECK_ACCESS(_res_ptr);
+       LDKCOption_NetAddressZ _res_conv = *(LDKCOption_NetAddressZ*)(_res_ptr);
+       FREE((void*)_res);
+       COption_NetAddressZ_free(_res_conv);
+}
+
+static inline uintptr_t COption_NetAddressZ_clone_ptr(LDKCOption_NetAddressZ *NONNULL_PTR arg) {
+       LDKCOption_NetAddressZ *ret_copy = MALLOC(sizeof(LDKCOption_NetAddressZ), "LDKCOption_NetAddressZ");
+       *ret_copy = COption_NetAddressZ_clone(arg);
+uint32_t ret_ref = (uintptr_t)ret_copy;
+       return ret_ref;
+}
+uint32_t  __attribute__((export_name("TS_COption_NetAddressZ_clone_ptr"))) TS_COption_NetAddressZ_clone_ptr(uint32_t arg) {
+       LDKCOption_NetAddressZ* arg_conv = (LDKCOption_NetAddressZ*)arg;
+       uint32_t ret_conv = COption_NetAddressZ_clone_ptr(arg_conv);
+       return ret_conv;
+}
+
+uint32_t  __attribute__((export_name("TS_COption_NetAddressZ_clone"))) TS_COption_NetAddressZ_clone(uint32_t orig) {
+       LDKCOption_NetAddressZ* orig_conv = (LDKCOption_NetAddressZ*)orig;
+       LDKCOption_NetAddressZ *ret_copy = MALLOC(sizeof(LDKCOption_NetAddressZ), "LDKCOption_NetAddressZ");
+       *ret_copy = COption_NetAddressZ_clone(orig_conv);
+       uint32_t ret_ref = (uintptr_t)ret_copy;
+       return ret_ref;
+}
+
 uint32_t  __attribute__((export_name("TS_CResult_CVec_u8ZPeerHandleErrorZ_ok"))) TS_CResult_CVec_u8ZPeerHandleErrorZ_ok(int8_tArray o) {
        LDKCVec_u8Z o_ref;
        o_ref.datalen = o->arr_len;
@@ -16517,8 +16682,8 @@ uint32_t  __attribute__((export_name("TS_CResult_CVec_u8ZPeerHandleErrorZ_err"))
 
 jboolean  __attribute__((export_name("TS_CResult_CVec_u8ZPeerHandleErrorZ_is_ok"))) TS_CResult_CVec_u8ZPeerHandleErrorZ_is_ok(uint32_t o) {
        LDKCResult_CVec_u8ZPeerHandleErrorZ* o_conv = (LDKCResult_CVec_u8ZPeerHandleErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_CVec_u8ZPeerHandleErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_CVec_u8ZPeerHandleErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_CVec_u8ZPeerHandleErrorZ_free"))) TS_CResult_CVec_u8ZPeerHandleErrorZ_free(uint32_t _res) {
@@ -16537,8 +16702,8 @@ static inline uintptr_t CResult_CVec_u8ZPeerHandleErrorZ_clone_ptr(LDKCResult_CV
 }
 uint32_t  __attribute__((export_name("TS_CResult_CVec_u8ZPeerHandleErrorZ_clone_ptr"))) TS_CResult_CVec_u8ZPeerHandleErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_CVec_u8ZPeerHandleErrorZ* arg_conv = (LDKCResult_CVec_u8ZPeerHandleErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_CVec_u8ZPeerHandleErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_CVec_u8ZPeerHandleErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_CVec_u8ZPeerHandleErrorZ_clone"))) TS_CResult_CVec_u8ZPeerHandleErrorZ_clone(uint32_t orig) {
@@ -16567,8 +16732,8 @@ uint32_t  __attribute__((export_name("TS_CResult_NonePeerHandleErrorZ_err"))) TS
 
 jboolean  __attribute__((export_name("TS_CResult_NonePeerHandleErrorZ_is_ok"))) TS_CResult_NonePeerHandleErrorZ_is_ok(uint32_t o) {
        LDKCResult_NonePeerHandleErrorZ* o_conv = (LDKCResult_NonePeerHandleErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_NonePeerHandleErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_NonePeerHandleErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_NonePeerHandleErrorZ_free"))) TS_CResult_NonePeerHandleErrorZ_free(uint32_t _res) {
@@ -16587,8 +16752,8 @@ static inline uintptr_t CResult_NonePeerHandleErrorZ_clone_ptr(LDKCResult_NonePe
 }
 uint32_t  __attribute__((export_name("TS_CResult_NonePeerHandleErrorZ_clone_ptr"))) TS_CResult_NonePeerHandleErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_NonePeerHandleErrorZ* arg_conv = (LDKCResult_NonePeerHandleErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_NonePeerHandleErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_NonePeerHandleErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_NonePeerHandleErrorZ_clone"))) TS_CResult_NonePeerHandleErrorZ_clone(uint32_t orig) {
@@ -16617,8 +16782,8 @@ uint32_t  __attribute__((export_name("TS_CResult_boolPeerHandleErrorZ_err"))) TS
 
 jboolean  __attribute__((export_name("TS_CResult_boolPeerHandleErrorZ_is_ok"))) TS_CResult_boolPeerHandleErrorZ_is_ok(uint32_t o) {
        LDKCResult_boolPeerHandleErrorZ* o_conv = (LDKCResult_boolPeerHandleErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_boolPeerHandleErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_boolPeerHandleErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_boolPeerHandleErrorZ_free"))) TS_CResult_boolPeerHandleErrorZ_free(uint32_t _res) {
@@ -16637,8 +16802,8 @@ static inline uintptr_t CResult_boolPeerHandleErrorZ_clone_ptr(LDKCResult_boolPe
 }
 uint32_t  __attribute__((export_name("TS_CResult_boolPeerHandleErrorZ_clone_ptr"))) TS_CResult_boolPeerHandleErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_boolPeerHandleErrorZ* arg_conv = (LDKCResult_boolPeerHandleErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_boolPeerHandleErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_boolPeerHandleErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_boolPeerHandleErrorZ_clone"))) TS_CResult_boolPeerHandleErrorZ_clone(uint32_t orig) {
@@ -16672,8 +16837,8 @@ uint32_t  __attribute__((export_name("TS_CResult_NodeIdDecodeErrorZ_err"))) TS_C
 
 jboolean  __attribute__((export_name("TS_CResult_NodeIdDecodeErrorZ_is_ok"))) TS_CResult_NodeIdDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_NodeIdDecodeErrorZ* o_conv = (LDKCResult_NodeIdDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_NodeIdDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_NodeIdDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_NodeIdDecodeErrorZ_free"))) TS_CResult_NodeIdDecodeErrorZ_free(uint32_t _res) {
@@ -16692,8 +16857,8 @@ static inline uintptr_t CResult_NodeIdDecodeErrorZ_clone_ptr(LDKCResult_NodeIdDe
 }
 uint32_t  __attribute__((export_name("TS_CResult_NodeIdDecodeErrorZ_clone_ptr"))) TS_CResult_NodeIdDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_NodeIdDecodeErrorZ* arg_conv = (LDKCResult_NodeIdDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_NodeIdDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_NodeIdDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_NodeIdDecodeErrorZ_clone"))) TS_CResult_NodeIdDecodeErrorZ_clone(uint32_t orig) {
@@ -16726,8 +16891,8 @@ uint32_t  __attribute__((export_name("TS_CResult_COption_NetworkUpdateZDecodeErr
 
 jboolean  __attribute__((export_name("TS_CResult_COption_NetworkUpdateZDecodeErrorZ_is_ok"))) TS_CResult_COption_NetworkUpdateZDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_COption_NetworkUpdateZDecodeErrorZ* o_conv = (LDKCResult_COption_NetworkUpdateZDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_COption_NetworkUpdateZDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_COption_NetworkUpdateZDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_COption_NetworkUpdateZDecodeErrorZ_free"))) TS_CResult_COption_NetworkUpdateZDecodeErrorZ_free(uint32_t _res) {
@@ -16746,8 +16911,8 @@ static inline uintptr_t CResult_COption_NetworkUpdateZDecodeErrorZ_clone_ptr(LDK
 }
 uint32_t  __attribute__((export_name("TS_CResult_COption_NetworkUpdateZDecodeErrorZ_clone_ptr"))) TS_CResult_COption_NetworkUpdateZDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_COption_NetworkUpdateZDecodeErrorZ* arg_conv = (LDKCResult_COption_NetworkUpdateZDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_COption_NetworkUpdateZDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_COption_NetworkUpdateZDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_COption_NetworkUpdateZDecodeErrorZ_clone"))) TS_CResult_COption_NetworkUpdateZDecodeErrorZ_clone(uint32_t orig) {
@@ -16761,6 +16926,10 @@ uint32_t  __attribute__((export_name("TS_COption_AccessZ_some"))) TS_COption_Acc
        void* o_ptr = (void*)(((uintptr_t)o) & ~1);
        CHECK_ACCESS(o_ptr);
        LDKAccess o_conv = *(LDKAccess*)(o_ptr);
+       if (o_conv.free == LDKAccess_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKAccess_JCalls_cloned(&o_conv);
+       }
        LDKCOption_AccessZ *ret_copy = MALLOC(sizeof(LDKCOption_AccessZ), "LDKCOption_AccessZ");
        *ret_copy = COption_AccessZ_some(o_conv);
        uint32_t ret_ref = (uintptr_t)ret_copy;
@@ -16807,8 +16976,8 @@ uint32_t  __attribute__((export_name("TS_CResult_ChannelUpdateInfoDecodeErrorZ_e
 
 jboolean  __attribute__((export_name("TS_CResult_ChannelUpdateInfoDecodeErrorZ_is_ok"))) TS_CResult_ChannelUpdateInfoDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_ChannelUpdateInfoDecodeErrorZ* o_conv = (LDKCResult_ChannelUpdateInfoDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_ChannelUpdateInfoDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_ChannelUpdateInfoDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_ChannelUpdateInfoDecodeErrorZ_free"))) TS_CResult_ChannelUpdateInfoDecodeErrorZ_free(uint32_t _res) {
@@ -16827,8 +16996,8 @@ static inline uintptr_t CResult_ChannelUpdateInfoDecodeErrorZ_clone_ptr(LDKCResu
 }
 uint32_t  __attribute__((export_name("TS_CResult_ChannelUpdateInfoDecodeErrorZ_clone_ptr"))) TS_CResult_ChannelUpdateInfoDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_ChannelUpdateInfoDecodeErrorZ* arg_conv = (LDKCResult_ChannelUpdateInfoDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_ChannelUpdateInfoDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_ChannelUpdateInfoDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_ChannelUpdateInfoDecodeErrorZ_clone"))) TS_CResult_ChannelUpdateInfoDecodeErrorZ_clone(uint32_t orig) {
@@ -16862,8 +17031,8 @@ uint32_t  __attribute__((export_name("TS_CResult_ChannelInfoDecodeErrorZ_err")))
 
 jboolean  __attribute__((export_name("TS_CResult_ChannelInfoDecodeErrorZ_is_ok"))) TS_CResult_ChannelInfoDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_ChannelInfoDecodeErrorZ* o_conv = (LDKCResult_ChannelInfoDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_ChannelInfoDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_ChannelInfoDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_ChannelInfoDecodeErrorZ_free"))) TS_CResult_ChannelInfoDecodeErrorZ_free(uint32_t _res) {
@@ -16882,8 +17051,8 @@ static inline uintptr_t CResult_ChannelInfoDecodeErrorZ_clone_ptr(LDKCResult_Cha
 }
 uint32_t  __attribute__((export_name("TS_CResult_ChannelInfoDecodeErrorZ_clone_ptr"))) TS_CResult_ChannelInfoDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_ChannelInfoDecodeErrorZ* arg_conv = (LDKCResult_ChannelInfoDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_ChannelInfoDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_ChannelInfoDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_ChannelInfoDecodeErrorZ_clone"))) TS_CResult_ChannelInfoDecodeErrorZ_clone(uint32_t orig) {
@@ -16917,8 +17086,8 @@ uint32_t  __attribute__((export_name("TS_CResult_RoutingFeesDecodeErrorZ_err")))
 
 jboolean  __attribute__((export_name("TS_CResult_RoutingFeesDecodeErrorZ_is_ok"))) TS_CResult_RoutingFeesDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_RoutingFeesDecodeErrorZ* o_conv = (LDKCResult_RoutingFeesDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_RoutingFeesDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_RoutingFeesDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_RoutingFeesDecodeErrorZ_free"))) TS_CResult_RoutingFeesDecodeErrorZ_free(uint32_t _res) {
@@ -16937,8 +17106,8 @@ static inline uintptr_t CResult_RoutingFeesDecodeErrorZ_clone_ptr(LDKCResult_Rou
 }
 uint32_t  __attribute__((export_name("TS_CResult_RoutingFeesDecodeErrorZ_clone_ptr"))) TS_CResult_RoutingFeesDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_RoutingFeesDecodeErrorZ* arg_conv = (LDKCResult_RoutingFeesDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_RoutingFeesDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_RoutingFeesDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_RoutingFeesDecodeErrorZ_clone"))) TS_CResult_RoutingFeesDecodeErrorZ_clone(uint32_t orig) {
@@ -16972,8 +17141,8 @@ uint32_t  __attribute__((export_name("TS_CResult_NodeAnnouncementInfoDecodeError
 
 jboolean  __attribute__((export_name("TS_CResult_NodeAnnouncementInfoDecodeErrorZ_is_ok"))) TS_CResult_NodeAnnouncementInfoDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_NodeAnnouncementInfoDecodeErrorZ* o_conv = (LDKCResult_NodeAnnouncementInfoDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_NodeAnnouncementInfoDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_NodeAnnouncementInfoDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_NodeAnnouncementInfoDecodeErrorZ_free"))) TS_CResult_NodeAnnouncementInfoDecodeErrorZ_free(uint32_t _res) {
@@ -16992,8 +17161,8 @@ static inline uintptr_t CResult_NodeAnnouncementInfoDecodeErrorZ_clone_ptr(LDKCR
 }
 uint32_t  __attribute__((export_name("TS_CResult_NodeAnnouncementInfoDecodeErrorZ_clone_ptr"))) TS_CResult_NodeAnnouncementInfoDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_NodeAnnouncementInfoDecodeErrorZ* arg_conv = (LDKCResult_NodeAnnouncementInfoDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_NodeAnnouncementInfoDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_NodeAnnouncementInfoDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_NodeAnnouncementInfoDecodeErrorZ_clone"))) TS_CResult_NodeAnnouncementInfoDecodeErrorZ_clone(uint32_t orig) {
@@ -17042,8 +17211,8 @@ uint32_t  __attribute__((export_name("TS_CResult_NodeInfoDecodeErrorZ_err"))) TS
 
 jboolean  __attribute__((export_name("TS_CResult_NodeInfoDecodeErrorZ_is_ok"))) TS_CResult_NodeInfoDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_NodeInfoDecodeErrorZ* o_conv = (LDKCResult_NodeInfoDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_NodeInfoDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_NodeInfoDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_NodeInfoDecodeErrorZ_free"))) TS_CResult_NodeInfoDecodeErrorZ_free(uint32_t _res) {
@@ -17062,8 +17231,8 @@ static inline uintptr_t CResult_NodeInfoDecodeErrorZ_clone_ptr(LDKCResult_NodeIn
 }
 uint32_t  __attribute__((export_name("TS_CResult_NodeInfoDecodeErrorZ_clone_ptr"))) TS_CResult_NodeInfoDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_NodeInfoDecodeErrorZ* arg_conv = (LDKCResult_NodeInfoDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_NodeInfoDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_NodeInfoDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_NodeInfoDecodeErrorZ_clone"))) TS_CResult_NodeInfoDecodeErrorZ_clone(uint32_t orig) {
@@ -17097,8 +17266,8 @@ uint32_t  __attribute__((export_name("TS_CResult_NetworkGraphDecodeErrorZ_err"))
 
 jboolean  __attribute__((export_name("TS_CResult_NetworkGraphDecodeErrorZ_is_ok"))) TS_CResult_NetworkGraphDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_NetworkGraphDecodeErrorZ* o_conv = (LDKCResult_NetworkGraphDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_NetworkGraphDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_NetworkGraphDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_NetworkGraphDecodeErrorZ_free"))) TS_CResult_NetworkGraphDecodeErrorZ_free(uint32_t _res) {
@@ -17117,8 +17286,8 @@ static inline uintptr_t CResult_NetworkGraphDecodeErrorZ_clone_ptr(LDKCResult_Ne
 }
 uint32_t  __attribute__((export_name("TS_CResult_NetworkGraphDecodeErrorZ_clone_ptr"))) TS_CResult_NetworkGraphDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_NetworkGraphDecodeErrorZ* arg_conv = (LDKCResult_NetworkGraphDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_NetworkGraphDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_NetworkGraphDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_NetworkGraphDecodeErrorZ_clone"))) TS_CResult_NetworkGraphDecodeErrorZ_clone(uint32_t orig) {
@@ -17174,8 +17343,8 @@ uint32_t ret_ref = (uintptr_t)ret_copy;
 }
 uint32_t  __attribute__((export_name("TS_COption_CVec_NetAddressZZ_clone_ptr"))) TS_COption_CVec_NetAddressZZ_clone_ptr(uint32_t arg) {
        LDKCOption_CVec_NetAddressZZ* arg_conv = (LDKCOption_CVec_NetAddressZZ*)arg;
-       uint32_t ret_val = COption_CVec_NetAddressZZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = COption_CVec_NetAddressZZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_COption_CVec_NetAddressZZ_clone"))) TS_COption_CVec_NetAddressZZ_clone(uint32_t orig) {
@@ -17209,8 +17378,8 @@ uint32_t  __attribute__((export_name("TS_CResult_NetAddressDecodeErrorZ_err")))
 
 jboolean  __attribute__((export_name("TS_CResult_NetAddressDecodeErrorZ_is_ok"))) TS_CResult_NetAddressDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_NetAddressDecodeErrorZ* o_conv = (LDKCResult_NetAddressDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_NetAddressDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_NetAddressDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_NetAddressDecodeErrorZ_free"))) TS_CResult_NetAddressDecodeErrorZ_free(uint32_t _res) {
@@ -17229,8 +17398,8 @@ static inline uintptr_t CResult_NetAddressDecodeErrorZ_clone_ptr(LDKCResult_NetA
 }
 uint32_t  __attribute__((export_name("TS_CResult_NetAddressDecodeErrorZ_clone_ptr"))) TS_CResult_NetAddressDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_NetAddressDecodeErrorZ* arg_conv = (LDKCResult_NetAddressDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_NetAddressDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_NetAddressDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_NetAddressDecodeErrorZ_clone"))) TS_CResult_NetAddressDecodeErrorZ_clone(uint32_t orig) {
@@ -17340,8 +17509,8 @@ uint32_t  __attribute__((export_name("TS_CResult_AcceptChannelDecodeErrorZ_err")
 
 jboolean  __attribute__((export_name("TS_CResult_AcceptChannelDecodeErrorZ_is_ok"))) TS_CResult_AcceptChannelDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_AcceptChannelDecodeErrorZ* o_conv = (LDKCResult_AcceptChannelDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_AcceptChannelDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_AcceptChannelDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_AcceptChannelDecodeErrorZ_free"))) TS_CResult_AcceptChannelDecodeErrorZ_free(uint32_t _res) {
@@ -17360,8 +17529,8 @@ static inline uintptr_t CResult_AcceptChannelDecodeErrorZ_clone_ptr(LDKCResult_A
 }
 uint32_t  __attribute__((export_name("TS_CResult_AcceptChannelDecodeErrorZ_clone_ptr"))) TS_CResult_AcceptChannelDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_AcceptChannelDecodeErrorZ* arg_conv = (LDKCResult_AcceptChannelDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_AcceptChannelDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_AcceptChannelDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_AcceptChannelDecodeErrorZ_clone"))) TS_CResult_AcceptChannelDecodeErrorZ_clone(uint32_t orig) {
@@ -17395,8 +17564,8 @@ uint32_t  __attribute__((export_name("TS_CResult_AnnouncementSignaturesDecodeErr
 
 jboolean  __attribute__((export_name("TS_CResult_AnnouncementSignaturesDecodeErrorZ_is_ok"))) TS_CResult_AnnouncementSignaturesDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_AnnouncementSignaturesDecodeErrorZ* o_conv = (LDKCResult_AnnouncementSignaturesDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_AnnouncementSignaturesDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_AnnouncementSignaturesDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_AnnouncementSignaturesDecodeErrorZ_free"))) TS_CResult_AnnouncementSignaturesDecodeErrorZ_free(uint32_t _res) {
@@ -17415,8 +17584,8 @@ static inline uintptr_t CResult_AnnouncementSignaturesDecodeErrorZ_clone_ptr(LDK
 }
 uint32_t  __attribute__((export_name("TS_CResult_AnnouncementSignaturesDecodeErrorZ_clone_ptr"))) TS_CResult_AnnouncementSignaturesDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_AnnouncementSignaturesDecodeErrorZ* arg_conv = (LDKCResult_AnnouncementSignaturesDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_AnnouncementSignaturesDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_AnnouncementSignaturesDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_AnnouncementSignaturesDecodeErrorZ_clone"))) TS_CResult_AnnouncementSignaturesDecodeErrorZ_clone(uint32_t orig) {
@@ -17450,8 +17619,8 @@ uint32_t  __attribute__((export_name("TS_CResult_ChannelReestablishDecodeErrorZ_
 
 jboolean  __attribute__((export_name("TS_CResult_ChannelReestablishDecodeErrorZ_is_ok"))) TS_CResult_ChannelReestablishDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_ChannelReestablishDecodeErrorZ* o_conv = (LDKCResult_ChannelReestablishDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_ChannelReestablishDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_ChannelReestablishDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_ChannelReestablishDecodeErrorZ_free"))) TS_CResult_ChannelReestablishDecodeErrorZ_free(uint32_t _res) {
@@ -17470,8 +17639,8 @@ static inline uintptr_t CResult_ChannelReestablishDecodeErrorZ_clone_ptr(LDKCRes
 }
 uint32_t  __attribute__((export_name("TS_CResult_ChannelReestablishDecodeErrorZ_clone_ptr"))) TS_CResult_ChannelReestablishDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_ChannelReestablishDecodeErrorZ* arg_conv = (LDKCResult_ChannelReestablishDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_ChannelReestablishDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_ChannelReestablishDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_ChannelReestablishDecodeErrorZ_clone"))) TS_CResult_ChannelReestablishDecodeErrorZ_clone(uint32_t orig) {
@@ -17505,8 +17674,8 @@ uint32_t  __attribute__((export_name("TS_CResult_ClosingSignedDecodeErrorZ_err")
 
 jboolean  __attribute__((export_name("TS_CResult_ClosingSignedDecodeErrorZ_is_ok"))) TS_CResult_ClosingSignedDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_ClosingSignedDecodeErrorZ* o_conv = (LDKCResult_ClosingSignedDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_ClosingSignedDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_ClosingSignedDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_ClosingSignedDecodeErrorZ_free"))) TS_CResult_ClosingSignedDecodeErrorZ_free(uint32_t _res) {
@@ -17525,8 +17694,8 @@ static inline uintptr_t CResult_ClosingSignedDecodeErrorZ_clone_ptr(LDKCResult_C
 }
 uint32_t  __attribute__((export_name("TS_CResult_ClosingSignedDecodeErrorZ_clone_ptr"))) TS_CResult_ClosingSignedDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_ClosingSignedDecodeErrorZ* arg_conv = (LDKCResult_ClosingSignedDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_ClosingSignedDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_ClosingSignedDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_ClosingSignedDecodeErrorZ_clone"))) TS_CResult_ClosingSignedDecodeErrorZ_clone(uint32_t orig) {
@@ -17560,8 +17729,8 @@ uint32_t  __attribute__((export_name("TS_CResult_ClosingSignedFeeRangeDecodeErro
 
 jboolean  __attribute__((export_name("TS_CResult_ClosingSignedFeeRangeDecodeErrorZ_is_ok"))) TS_CResult_ClosingSignedFeeRangeDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_ClosingSignedFeeRangeDecodeErrorZ* o_conv = (LDKCResult_ClosingSignedFeeRangeDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_ClosingSignedFeeRangeDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_ClosingSignedFeeRangeDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_ClosingSignedFeeRangeDecodeErrorZ_free"))) TS_CResult_ClosingSignedFeeRangeDecodeErrorZ_free(uint32_t _res) {
@@ -17580,8 +17749,8 @@ static inline uintptr_t CResult_ClosingSignedFeeRangeDecodeErrorZ_clone_ptr(LDKC
 }
 uint32_t  __attribute__((export_name("TS_CResult_ClosingSignedFeeRangeDecodeErrorZ_clone_ptr"))) TS_CResult_ClosingSignedFeeRangeDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_ClosingSignedFeeRangeDecodeErrorZ* arg_conv = (LDKCResult_ClosingSignedFeeRangeDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_ClosingSignedFeeRangeDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_ClosingSignedFeeRangeDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_ClosingSignedFeeRangeDecodeErrorZ_clone"))) TS_CResult_ClosingSignedFeeRangeDecodeErrorZ_clone(uint32_t orig) {
@@ -17615,8 +17784,8 @@ uint32_t  __attribute__((export_name("TS_CResult_CommitmentSignedDecodeErrorZ_er
 
 jboolean  __attribute__((export_name("TS_CResult_CommitmentSignedDecodeErrorZ_is_ok"))) TS_CResult_CommitmentSignedDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_CommitmentSignedDecodeErrorZ* o_conv = (LDKCResult_CommitmentSignedDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_CommitmentSignedDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_CommitmentSignedDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_CommitmentSignedDecodeErrorZ_free"))) TS_CResult_CommitmentSignedDecodeErrorZ_free(uint32_t _res) {
@@ -17635,8 +17804,8 @@ static inline uintptr_t CResult_CommitmentSignedDecodeErrorZ_clone_ptr(LDKCResul
 }
 uint32_t  __attribute__((export_name("TS_CResult_CommitmentSignedDecodeErrorZ_clone_ptr"))) TS_CResult_CommitmentSignedDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_CommitmentSignedDecodeErrorZ* arg_conv = (LDKCResult_CommitmentSignedDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_CommitmentSignedDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_CommitmentSignedDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_CommitmentSignedDecodeErrorZ_clone"))) TS_CResult_CommitmentSignedDecodeErrorZ_clone(uint32_t orig) {
@@ -17670,8 +17839,8 @@ uint32_t  __attribute__((export_name("TS_CResult_FundingCreatedDecodeErrorZ_err"
 
 jboolean  __attribute__((export_name("TS_CResult_FundingCreatedDecodeErrorZ_is_ok"))) TS_CResult_FundingCreatedDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_FundingCreatedDecodeErrorZ* o_conv = (LDKCResult_FundingCreatedDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_FundingCreatedDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_FundingCreatedDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_FundingCreatedDecodeErrorZ_free"))) TS_CResult_FundingCreatedDecodeErrorZ_free(uint32_t _res) {
@@ -17690,8 +17859,8 @@ static inline uintptr_t CResult_FundingCreatedDecodeErrorZ_clone_ptr(LDKCResult_
 }
 uint32_t  __attribute__((export_name("TS_CResult_FundingCreatedDecodeErrorZ_clone_ptr"))) TS_CResult_FundingCreatedDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_FundingCreatedDecodeErrorZ* arg_conv = (LDKCResult_FundingCreatedDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_FundingCreatedDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_FundingCreatedDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_FundingCreatedDecodeErrorZ_clone"))) TS_CResult_FundingCreatedDecodeErrorZ_clone(uint32_t orig) {
@@ -17725,8 +17894,8 @@ uint32_t  __attribute__((export_name("TS_CResult_FundingSignedDecodeErrorZ_err")
 
 jboolean  __attribute__((export_name("TS_CResult_FundingSignedDecodeErrorZ_is_ok"))) TS_CResult_FundingSignedDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_FundingSignedDecodeErrorZ* o_conv = (LDKCResult_FundingSignedDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_FundingSignedDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_FundingSignedDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_FundingSignedDecodeErrorZ_free"))) TS_CResult_FundingSignedDecodeErrorZ_free(uint32_t _res) {
@@ -17745,8 +17914,8 @@ static inline uintptr_t CResult_FundingSignedDecodeErrorZ_clone_ptr(LDKCResult_F
 }
 uint32_t  __attribute__((export_name("TS_CResult_FundingSignedDecodeErrorZ_clone_ptr"))) TS_CResult_FundingSignedDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_FundingSignedDecodeErrorZ* arg_conv = (LDKCResult_FundingSignedDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_FundingSignedDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_FundingSignedDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_FundingSignedDecodeErrorZ_clone"))) TS_CResult_FundingSignedDecodeErrorZ_clone(uint32_t orig) {
@@ -17780,8 +17949,8 @@ uint32_t  __attribute__((export_name("TS_CResult_FundingLockedDecodeErrorZ_err")
 
 jboolean  __attribute__((export_name("TS_CResult_FundingLockedDecodeErrorZ_is_ok"))) TS_CResult_FundingLockedDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_FundingLockedDecodeErrorZ* o_conv = (LDKCResult_FundingLockedDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_FundingLockedDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_FundingLockedDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_FundingLockedDecodeErrorZ_free"))) TS_CResult_FundingLockedDecodeErrorZ_free(uint32_t _res) {
@@ -17800,8 +17969,8 @@ static inline uintptr_t CResult_FundingLockedDecodeErrorZ_clone_ptr(LDKCResult_F
 }
 uint32_t  __attribute__((export_name("TS_CResult_FundingLockedDecodeErrorZ_clone_ptr"))) TS_CResult_FundingLockedDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_FundingLockedDecodeErrorZ* arg_conv = (LDKCResult_FundingLockedDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_FundingLockedDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_FundingLockedDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_FundingLockedDecodeErrorZ_clone"))) TS_CResult_FundingLockedDecodeErrorZ_clone(uint32_t orig) {
@@ -17835,8 +18004,8 @@ uint32_t  __attribute__((export_name("TS_CResult_InitDecodeErrorZ_err"))) TS_CRe
 
 jboolean  __attribute__((export_name("TS_CResult_InitDecodeErrorZ_is_ok"))) TS_CResult_InitDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_InitDecodeErrorZ* o_conv = (LDKCResult_InitDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_InitDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_InitDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_InitDecodeErrorZ_free"))) TS_CResult_InitDecodeErrorZ_free(uint32_t _res) {
@@ -17855,8 +18024,8 @@ static inline uintptr_t CResult_InitDecodeErrorZ_clone_ptr(LDKCResult_InitDecode
 }
 uint32_t  __attribute__((export_name("TS_CResult_InitDecodeErrorZ_clone_ptr"))) TS_CResult_InitDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_InitDecodeErrorZ* arg_conv = (LDKCResult_InitDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_InitDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_InitDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_InitDecodeErrorZ_clone"))) TS_CResult_InitDecodeErrorZ_clone(uint32_t orig) {
@@ -17890,8 +18059,8 @@ uint32_t  __attribute__((export_name("TS_CResult_OpenChannelDecodeErrorZ_err")))
 
 jboolean  __attribute__((export_name("TS_CResult_OpenChannelDecodeErrorZ_is_ok"))) TS_CResult_OpenChannelDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_OpenChannelDecodeErrorZ* o_conv = (LDKCResult_OpenChannelDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_OpenChannelDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_OpenChannelDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_OpenChannelDecodeErrorZ_free"))) TS_CResult_OpenChannelDecodeErrorZ_free(uint32_t _res) {
@@ -17910,8 +18079,8 @@ static inline uintptr_t CResult_OpenChannelDecodeErrorZ_clone_ptr(LDKCResult_Ope
 }
 uint32_t  __attribute__((export_name("TS_CResult_OpenChannelDecodeErrorZ_clone_ptr"))) TS_CResult_OpenChannelDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_OpenChannelDecodeErrorZ* arg_conv = (LDKCResult_OpenChannelDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_OpenChannelDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_OpenChannelDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_OpenChannelDecodeErrorZ_clone"))) TS_CResult_OpenChannelDecodeErrorZ_clone(uint32_t orig) {
@@ -17945,8 +18114,8 @@ uint32_t  __attribute__((export_name("TS_CResult_RevokeAndACKDecodeErrorZ_err"))
 
 jboolean  __attribute__((export_name("TS_CResult_RevokeAndACKDecodeErrorZ_is_ok"))) TS_CResult_RevokeAndACKDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_RevokeAndACKDecodeErrorZ* o_conv = (LDKCResult_RevokeAndACKDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_RevokeAndACKDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_RevokeAndACKDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_RevokeAndACKDecodeErrorZ_free"))) TS_CResult_RevokeAndACKDecodeErrorZ_free(uint32_t _res) {
@@ -17965,8 +18134,8 @@ static inline uintptr_t CResult_RevokeAndACKDecodeErrorZ_clone_ptr(LDKCResult_Re
 }
 uint32_t  __attribute__((export_name("TS_CResult_RevokeAndACKDecodeErrorZ_clone_ptr"))) TS_CResult_RevokeAndACKDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_RevokeAndACKDecodeErrorZ* arg_conv = (LDKCResult_RevokeAndACKDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_RevokeAndACKDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_RevokeAndACKDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_RevokeAndACKDecodeErrorZ_clone"))) TS_CResult_RevokeAndACKDecodeErrorZ_clone(uint32_t orig) {
@@ -18000,8 +18169,8 @@ uint32_t  __attribute__((export_name("TS_CResult_ShutdownDecodeErrorZ_err"))) TS
 
 jboolean  __attribute__((export_name("TS_CResult_ShutdownDecodeErrorZ_is_ok"))) TS_CResult_ShutdownDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_ShutdownDecodeErrorZ* o_conv = (LDKCResult_ShutdownDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_ShutdownDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_ShutdownDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_ShutdownDecodeErrorZ_free"))) TS_CResult_ShutdownDecodeErrorZ_free(uint32_t _res) {
@@ -18020,8 +18189,8 @@ static inline uintptr_t CResult_ShutdownDecodeErrorZ_clone_ptr(LDKCResult_Shutdo
 }
 uint32_t  __attribute__((export_name("TS_CResult_ShutdownDecodeErrorZ_clone_ptr"))) TS_CResult_ShutdownDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_ShutdownDecodeErrorZ* arg_conv = (LDKCResult_ShutdownDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_ShutdownDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_ShutdownDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_ShutdownDecodeErrorZ_clone"))) TS_CResult_ShutdownDecodeErrorZ_clone(uint32_t orig) {
@@ -18055,8 +18224,8 @@ uint32_t  __attribute__((export_name("TS_CResult_UpdateFailHTLCDecodeErrorZ_err"
 
 jboolean  __attribute__((export_name("TS_CResult_UpdateFailHTLCDecodeErrorZ_is_ok"))) TS_CResult_UpdateFailHTLCDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_UpdateFailHTLCDecodeErrorZ* o_conv = (LDKCResult_UpdateFailHTLCDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_UpdateFailHTLCDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_UpdateFailHTLCDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_UpdateFailHTLCDecodeErrorZ_free"))) TS_CResult_UpdateFailHTLCDecodeErrorZ_free(uint32_t _res) {
@@ -18075,8 +18244,8 @@ static inline uintptr_t CResult_UpdateFailHTLCDecodeErrorZ_clone_ptr(LDKCResult_
 }
 uint32_t  __attribute__((export_name("TS_CResult_UpdateFailHTLCDecodeErrorZ_clone_ptr"))) TS_CResult_UpdateFailHTLCDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_UpdateFailHTLCDecodeErrorZ* arg_conv = (LDKCResult_UpdateFailHTLCDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_UpdateFailHTLCDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_UpdateFailHTLCDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_UpdateFailHTLCDecodeErrorZ_clone"))) TS_CResult_UpdateFailHTLCDecodeErrorZ_clone(uint32_t orig) {
@@ -18110,8 +18279,8 @@ uint32_t  __attribute__((export_name("TS_CResult_UpdateFailMalformedHTLCDecodeEr
 
 jboolean  __attribute__((export_name("TS_CResult_UpdateFailMalformedHTLCDecodeErrorZ_is_ok"))) TS_CResult_UpdateFailMalformedHTLCDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_UpdateFailMalformedHTLCDecodeErrorZ* o_conv = (LDKCResult_UpdateFailMalformedHTLCDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_UpdateFailMalformedHTLCDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_UpdateFailMalformedHTLCDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_UpdateFailMalformedHTLCDecodeErrorZ_free"))) TS_CResult_UpdateFailMalformedHTLCDecodeErrorZ_free(uint32_t _res) {
@@ -18130,8 +18299,8 @@ static inline uintptr_t CResult_UpdateFailMalformedHTLCDecodeErrorZ_clone_ptr(LD
 }
 uint32_t  __attribute__((export_name("TS_CResult_UpdateFailMalformedHTLCDecodeErrorZ_clone_ptr"))) TS_CResult_UpdateFailMalformedHTLCDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_UpdateFailMalformedHTLCDecodeErrorZ* arg_conv = (LDKCResult_UpdateFailMalformedHTLCDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_UpdateFailMalformedHTLCDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_UpdateFailMalformedHTLCDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_UpdateFailMalformedHTLCDecodeErrorZ_clone"))) TS_CResult_UpdateFailMalformedHTLCDecodeErrorZ_clone(uint32_t orig) {
@@ -18165,8 +18334,8 @@ uint32_t  __attribute__((export_name("TS_CResult_UpdateFeeDecodeErrorZ_err"))) T
 
 jboolean  __attribute__((export_name("TS_CResult_UpdateFeeDecodeErrorZ_is_ok"))) TS_CResult_UpdateFeeDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_UpdateFeeDecodeErrorZ* o_conv = (LDKCResult_UpdateFeeDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_UpdateFeeDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_UpdateFeeDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_UpdateFeeDecodeErrorZ_free"))) TS_CResult_UpdateFeeDecodeErrorZ_free(uint32_t _res) {
@@ -18185,8 +18354,8 @@ static inline uintptr_t CResult_UpdateFeeDecodeErrorZ_clone_ptr(LDKCResult_Updat
 }
 uint32_t  __attribute__((export_name("TS_CResult_UpdateFeeDecodeErrorZ_clone_ptr"))) TS_CResult_UpdateFeeDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_UpdateFeeDecodeErrorZ* arg_conv = (LDKCResult_UpdateFeeDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_UpdateFeeDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_UpdateFeeDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_UpdateFeeDecodeErrorZ_clone"))) TS_CResult_UpdateFeeDecodeErrorZ_clone(uint32_t orig) {
@@ -18220,8 +18389,8 @@ uint32_t  __attribute__((export_name("TS_CResult_UpdateFulfillHTLCDecodeErrorZ_e
 
 jboolean  __attribute__((export_name("TS_CResult_UpdateFulfillHTLCDecodeErrorZ_is_ok"))) TS_CResult_UpdateFulfillHTLCDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_UpdateFulfillHTLCDecodeErrorZ* o_conv = (LDKCResult_UpdateFulfillHTLCDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_UpdateFulfillHTLCDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_UpdateFulfillHTLCDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_UpdateFulfillHTLCDecodeErrorZ_free"))) TS_CResult_UpdateFulfillHTLCDecodeErrorZ_free(uint32_t _res) {
@@ -18240,8 +18409,8 @@ static inline uintptr_t CResult_UpdateFulfillHTLCDecodeErrorZ_clone_ptr(LDKCResu
 }
 uint32_t  __attribute__((export_name("TS_CResult_UpdateFulfillHTLCDecodeErrorZ_clone_ptr"))) TS_CResult_UpdateFulfillHTLCDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_UpdateFulfillHTLCDecodeErrorZ* arg_conv = (LDKCResult_UpdateFulfillHTLCDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_UpdateFulfillHTLCDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_UpdateFulfillHTLCDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_UpdateFulfillHTLCDecodeErrorZ_clone"))) TS_CResult_UpdateFulfillHTLCDecodeErrorZ_clone(uint32_t orig) {
@@ -18275,8 +18444,8 @@ uint32_t  __attribute__((export_name("TS_CResult_UpdateAddHTLCDecodeErrorZ_err")
 
 jboolean  __attribute__((export_name("TS_CResult_UpdateAddHTLCDecodeErrorZ_is_ok"))) TS_CResult_UpdateAddHTLCDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_UpdateAddHTLCDecodeErrorZ* o_conv = (LDKCResult_UpdateAddHTLCDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_UpdateAddHTLCDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_UpdateAddHTLCDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_UpdateAddHTLCDecodeErrorZ_free"))) TS_CResult_UpdateAddHTLCDecodeErrorZ_free(uint32_t _res) {
@@ -18295,8 +18464,8 @@ static inline uintptr_t CResult_UpdateAddHTLCDecodeErrorZ_clone_ptr(LDKCResult_U
 }
 uint32_t  __attribute__((export_name("TS_CResult_UpdateAddHTLCDecodeErrorZ_clone_ptr"))) TS_CResult_UpdateAddHTLCDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_UpdateAddHTLCDecodeErrorZ* arg_conv = (LDKCResult_UpdateAddHTLCDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_UpdateAddHTLCDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_UpdateAddHTLCDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_UpdateAddHTLCDecodeErrorZ_clone"))) TS_CResult_UpdateAddHTLCDecodeErrorZ_clone(uint32_t orig) {
@@ -18330,8 +18499,8 @@ uint32_t  __attribute__((export_name("TS_CResult_PingDecodeErrorZ_err"))) TS_CRe
 
 jboolean  __attribute__((export_name("TS_CResult_PingDecodeErrorZ_is_ok"))) TS_CResult_PingDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_PingDecodeErrorZ* o_conv = (LDKCResult_PingDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_PingDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_PingDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_PingDecodeErrorZ_free"))) TS_CResult_PingDecodeErrorZ_free(uint32_t _res) {
@@ -18350,8 +18519,8 @@ static inline uintptr_t CResult_PingDecodeErrorZ_clone_ptr(LDKCResult_PingDecode
 }
 uint32_t  __attribute__((export_name("TS_CResult_PingDecodeErrorZ_clone_ptr"))) TS_CResult_PingDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_PingDecodeErrorZ* arg_conv = (LDKCResult_PingDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_PingDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_PingDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_PingDecodeErrorZ_clone"))) TS_CResult_PingDecodeErrorZ_clone(uint32_t orig) {
@@ -18385,8 +18554,8 @@ uint32_t  __attribute__((export_name("TS_CResult_PongDecodeErrorZ_err"))) TS_CRe
 
 jboolean  __attribute__((export_name("TS_CResult_PongDecodeErrorZ_is_ok"))) TS_CResult_PongDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_PongDecodeErrorZ* o_conv = (LDKCResult_PongDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_PongDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_PongDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_PongDecodeErrorZ_free"))) TS_CResult_PongDecodeErrorZ_free(uint32_t _res) {
@@ -18405,8 +18574,8 @@ static inline uintptr_t CResult_PongDecodeErrorZ_clone_ptr(LDKCResult_PongDecode
 }
 uint32_t  __attribute__((export_name("TS_CResult_PongDecodeErrorZ_clone_ptr"))) TS_CResult_PongDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_PongDecodeErrorZ* arg_conv = (LDKCResult_PongDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_PongDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_PongDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_PongDecodeErrorZ_clone"))) TS_CResult_PongDecodeErrorZ_clone(uint32_t orig) {
@@ -18440,8 +18609,8 @@ uint32_t  __attribute__((export_name("TS_CResult_UnsignedChannelAnnouncementDeco
 
 jboolean  __attribute__((export_name("TS_CResult_UnsignedChannelAnnouncementDecodeErrorZ_is_ok"))) TS_CResult_UnsignedChannelAnnouncementDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_UnsignedChannelAnnouncementDecodeErrorZ* o_conv = (LDKCResult_UnsignedChannelAnnouncementDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_UnsignedChannelAnnouncementDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_UnsignedChannelAnnouncementDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_UnsignedChannelAnnouncementDecodeErrorZ_free"))) TS_CResult_UnsignedChannelAnnouncementDecodeErrorZ_free(uint32_t _res) {
@@ -18460,8 +18629,8 @@ static inline uintptr_t CResult_UnsignedChannelAnnouncementDecodeErrorZ_clone_pt
 }
 uint32_t  __attribute__((export_name("TS_CResult_UnsignedChannelAnnouncementDecodeErrorZ_clone_ptr"))) TS_CResult_UnsignedChannelAnnouncementDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_UnsignedChannelAnnouncementDecodeErrorZ* arg_conv = (LDKCResult_UnsignedChannelAnnouncementDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_UnsignedChannelAnnouncementDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_UnsignedChannelAnnouncementDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_UnsignedChannelAnnouncementDecodeErrorZ_clone"))) TS_CResult_UnsignedChannelAnnouncementDecodeErrorZ_clone(uint32_t orig) {
@@ -18495,8 +18664,8 @@ uint32_t  __attribute__((export_name("TS_CResult_ChannelAnnouncementDecodeErrorZ
 
 jboolean  __attribute__((export_name("TS_CResult_ChannelAnnouncementDecodeErrorZ_is_ok"))) TS_CResult_ChannelAnnouncementDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_ChannelAnnouncementDecodeErrorZ* o_conv = (LDKCResult_ChannelAnnouncementDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_ChannelAnnouncementDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_ChannelAnnouncementDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_ChannelAnnouncementDecodeErrorZ_free"))) TS_CResult_ChannelAnnouncementDecodeErrorZ_free(uint32_t _res) {
@@ -18515,8 +18684,8 @@ static inline uintptr_t CResult_ChannelAnnouncementDecodeErrorZ_clone_ptr(LDKCRe
 }
 uint32_t  __attribute__((export_name("TS_CResult_ChannelAnnouncementDecodeErrorZ_clone_ptr"))) TS_CResult_ChannelAnnouncementDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_ChannelAnnouncementDecodeErrorZ* arg_conv = (LDKCResult_ChannelAnnouncementDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_ChannelAnnouncementDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_ChannelAnnouncementDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_ChannelAnnouncementDecodeErrorZ_clone"))) TS_CResult_ChannelAnnouncementDecodeErrorZ_clone(uint32_t orig) {
@@ -18550,8 +18719,8 @@ uint32_t  __attribute__((export_name("TS_CResult_UnsignedChannelUpdateDecodeErro
 
 jboolean  __attribute__((export_name("TS_CResult_UnsignedChannelUpdateDecodeErrorZ_is_ok"))) TS_CResult_UnsignedChannelUpdateDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_UnsignedChannelUpdateDecodeErrorZ* o_conv = (LDKCResult_UnsignedChannelUpdateDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_UnsignedChannelUpdateDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_UnsignedChannelUpdateDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_UnsignedChannelUpdateDecodeErrorZ_free"))) TS_CResult_UnsignedChannelUpdateDecodeErrorZ_free(uint32_t _res) {
@@ -18570,8 +18739,8 @@ static inline uintptr_t CResult_UnsignedChannelUpdateDecodeErrorZ_clone_ptr(LDKC
 }
 uint32_t  __attribute__((export_name("TS_CResult_UnsignedChannelUpdateDecodeErrorZ_clone_ptr"))) TS_CResult_UnsignedChannelUpdateDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_UnsignedChannelUpdateDecodeErrorZ* arg_conv = (LDKCResult_UnsignedChannelUpdateDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_UnsignedChannelUpdateDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_UnsignedChannelUpdateDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_UnsignedChannelUpdateDecodeErrorZ_clone"))) TS_CResult_UnsignedChannelUpdateDecodeErrorZ_clone(uint32_t orig) {
@@ -18605,8 +18774,8 @@ uint32_t  __attribute__((export_name("TS_CResult_ChannelUpdateDecodeErrorZ_err")
 
 jboolean  __attribute__((export_name("TS_CResult_ChannelUpdateDecodeErrorZ_is_ok"))) TS_CResult_ChannelUpdateDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_ChannelUpdateDecodeErrorZ* o_conv = (LDKCResult_ChannelUpdateDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_ChannelUpdateDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_ChannelUpdateDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_ChannelUpdateDecodeErrorZ_free"))) TS_CResult_ChannelUpdateDecodeErrorZ_free(uint32_t _res) {
@@ -18625,8 +18794,8 @@ static inline uintptr_t CResult_ChannelUpdateDecodeErrorZ_clone_ptr(LDKCResult_C
 }
 uint32_t  __attribute__((export_name("TS_CResult_ChannelUpdateDecodeErrorZ_clone_ptr"))) TS_CResult_ChannelUpdateDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_ChannelUpdateDecodeErrorZ* arg_conv = (LDKCResult_ChannelUpdateDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_ChannelUpdateDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_ChannelUpdateDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_ChannelUpdateDecodeErrorZ_clone"))) TS_CResult_ChannelUpdateDecodeErrorZ_clone(uint32_t orig) {
@@ -18660,8 +18829,8 @@ uint32_t  __attribute__((export_name("TS_CResult_ErrorMessageDecodeErrorZ_err"))
 
 jboolean  __attribute__((export_name("TS_CResult_ErrorMessageDecodeErrorZ_is_ok"))) TS_CResult_ErrorMessageDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_ErrorMessageDecodeErrorZ* o_conv = (LDKCResult_ErrorMessageDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_ErrorMessageDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_ErrorMessageDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_ErrorMessageDecodeErrorZ_free"))) TS_CResult_ErrorMessageDecodeErrorZ_free(uint32_t _res) {
@@ -18680,8 +18849,8 @@ static inline uintptr_t CResult_ErrorMessageDecodeErrorZ_clone_ptr(LDKCResult_Er
 }
 uint32_t  __attribute__((export_name("TS_CResult_ErrorMessageDecodeErrorZ_clone_ptr"))) TS_CResult_ErrorMessageDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_ErrorMessageDecodeErrorZ* arg_conv = (LDKCResult_ErrorMessageDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_ErrorMessageDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_ErrorMessageDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_ErrorMessageDecodeErrorZ_clone"))) TS_CResult_ErrorMessageDecodeErrorZ_clone(uint32_t orig) {
@@ -18715,8 +18884,8 @@ uint32_t  __attribute__((export_name("TS_CResult_WarningMessageDecodeErrorZ_err"
 
 jboolean  __attribute__((export_name("TS_CResult_WarningMessageDecodeErrorZ_is_ok"))) TS_CResult_WarningMessageDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_WarningMessageDecodeErrorZ* o_conv = (LDKCResult_WarningMessageDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_WarningMessageDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_WarningMessageDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_WarningMessageDecodeErrorZ_free"))) TS_CResult_WarningMessageDecodeErrorZ_free(uint32_t _res) {
@@ -18735,8 +18904,8 @@ static inline uintptr_t CResult_WarningMessageDecodeErrorZ_clone_ptr(LDKCResult_
 }
 uint32_t  __attribute__((export_name("TS_CResult_WarningMessageDecodeErrorZ_clone_ptr"))) TS_CResult_WarningMessageDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_WarningMessageDecodeErrorZ* arg_conv = (LDKCResult_WarningMessageDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_WarningMessageDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_WarningMessageDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_WarningMessageDecodeErrorZ_clone"))) TS_CResult_WarningMessageDecodeErrorZ_clone(uint32_t orig) {
@@ -18770,8 +18939,8 @@ uint32_t  __attribute__((export_name("TS_CResult_UnsignedNodeAnnouncementDecodeE
 
 jboolean  __attribute__((export_name("TS_CResult_UnsignedNodeAnnouncementDecodeErrorZ_is_ok"))) TS_CResult_UnsignedNodeAnnouncementDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_UnsignedNodeAnnouncementDecodeErrorZ* o_conv = (LDKCResult_UnsignedNodeAnnouncementDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_UnsignedNodeAnnouncementDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_UnsignedNodeAnnouncementDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_UnsignedNodeAnnouncementDecodeErrorZ_free"))) TS_CResult_UnsignedNodeAnnouncementDecodeErrorZ_free(uint32_t _res) {
@@ -18790,8 +18959,8 @@ static inline uintptr_t CResult_UnsignedNodeAnnouncementDecodeErrorZ_clone_ptr(L
 }
 uint32_t  __attribute__((export_name("TS_CResult_UnsignedNodeAnnouncementDecodeErrorZ_clone_ptr"))) TS_CResult_UnsignedNodeAnnouncementDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_UnsignedNodeAnnouncementDecodeErrorZ* arg_conv = (LDKCResult_UnsignedNodeAnnouncementDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_UnsignedNodeAnnouncementDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_UnsignedNodeAnnouncementDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_UnsignedNodeAnnouncementDecodeErrorZ_clone"))) TS_CResult_UnsignedNodeAnnouncementDecodeErrorZ_clone(uint32_t orig) {
@@ -18825,8 +18994,8 @@ uint32_t  __attribute__((export_name("TS_CResult_NodeAnnouncementDecodeErrorZ_er
 
 jboolean  __attribute__((export_name("TS_CResult_NodeAnnouncementDecodeErrorZ_is_ok"))) TS_CResult_NodeAnnouncementDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_NodeAnnouncementDecodeErrorZ* o_conv = (LDKCResult_NodeAnnouncementDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_NodeAnnouncementDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_NodeAnnouncementDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_NodeAnnouncementDecodeErrorZ_free"))) TS_CResult_NodeAnnouncementDecodeErrorZ_free(uint32_t _res) {
@@ -18845,8 +19014,8 @@ static inline uintptr_t CResult_NodeAnnouncementDecodeErrorZ_clone_ptr(LDKCResul
 }
 uint32_t  __attribute__((export_name("TS_CResult_NodeAnnouncementDecodeErrorZ_clone_ptr"))) TS_CResult_NodeAnnouncementDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_NodeAnnouncementDecodeErrorZ* arg_conv = (LDKCResult_NodeAnnouncementDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_NodeAnnouncementDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_NodeAnnouncementDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_NodeAnnouncementDecodeErrorZ_clone"))) TS_CResult_NodeAnnouncementDecodeErrorZ_clone(uint32_t orig) {
@@ -18880,8 +19049,8 @@ uint32_t  __attribute__((export_name("TS_CResult_QueryShortChannelIdsDecodeError
 
 jboolean  __attribute__((export_name("TS_CResult_QueryShortChannelIdsDecodeErrorZ_is_ok"))) TS_CResult_QueryShortChannelIdsDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_QueryShortChannelIdsDecodeErrorZ* o_conv = (LDKCResult_QueryShortChannelIdsDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_QueryShortChannelIdsDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_QueryShortChannelIdsDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_QueryShortChannelIdsDecodeErrorZ_free"))) TS_CResult_QueryShortChannelIdsDecodeErrorZ_free(uint32_t _res) {
@@ -18900,8 +19069,8 @@ static inline uintptr_t CResult_QueryShortChannelIdsDecodeErrorZ_clone_ptr(LDKCR
 }
 uint32_t  __attribute__((export_name("TS_CResult_QueryShortChannelIdsDecodeErrorZ_clone_ptr"))) TS_CResult_QueryShortChannelIdsDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_QueryShortChannelIdsDecodeErrorZ* arg_conv = (LDKCResult_QueryShortChannelIdsDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_QueryShortChannelIdsDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_QueryShortChannelIdsDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_QueryShortChannelIdsDecodeErrorZ_clone"))) TS_CResult_QueryShortChannelIdsDecodeErrorZ_clone(uint32_t orig) {
@@ -18935,8 +19104,8 @@ uint32_t  __attribute__((export_name("TS_CResult_ReplyShortChannelIdsEndDecodeEr
 
 jboolean  __attribute__((export_name("TS_CResult_ReplyShortChannelIdsEndDecodeErrorZ_is_ok"))) TS_CResult_ReplyShortChannelIdsEndDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_ReplyShortChannelIdsEndDecodeErrorZ* o_conv = (LDKCResult_ReplyShortChannelIdsEndDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_ReplyShortChannelIdsEndDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_ReplyShortChannelIdsEndDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_ReplyShortChannelIdsEndDecodeErrorZ_free"))) TS_CResult_ReplyShortChannelIdsEndDecodeErrorZ_free(uint32_t _res) {
@@ -18955,8 +19124,8 @@ static inline uintptr_t CResult_ReplyShortChannelIdsEndDecodeErrorZ_clone_ptr(LD
 }
 uint32_t  __attribute__((export_name("TS_CResult_ReplyShortChannelIdsEndDecodeErrorZ_clone_ptr"))) TS_CResult_ReplyShortChannelIdsEndDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_ReplyShortChannelIdsEndDecodeErrorZ* arg_conv = (LDKCResult_ReplyShortChannelIdsEndDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_ReplyShortChannelIdsEndDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_ReplyShortChannelIdsEndDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_ReplyShortChannelIdsEndDecodeErrorZ_clone"))) TS_CResult_ReplyShortChannelIdsEndDecodeErrorZ_clone(uint32_t orig) {
@@ -18990,8 +19159,8 @@ uint32_t  __attribute__((export_name("TS_CResult_QueryChannelRangeDecodeErrorZ_e
 
 jboolean  __attribute__((export_name("TS_CResult_QueryChannelRangeDecodeErrorZ_is_ok"))) TS_CResult_QueryChannelRangeDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_QueryChannelRangeDecodeErrorZ* o_conv = (LDKCResult_QueryChannelRangeDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_QueryChannelRangeDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_QueryChannelRangeDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_QueryChannelRangeDecodeErrorZ_free"))) TS_CResult_QueryChannelRangeDecodeErrorZ_free(uint32_t _res) {
@@ -19010,8 +19179,8 @@ static inline uintptr_t CResult_QueryChannelRangeDecodeErrorZ_clone_ptr(LDKCResu
 }
 uint32_t  __attribute__((export_name("TS_CResult_QueryChannelRangeDecodeErrorZ_clone_ptr"))) TS_CResult_QueryChannelRangeDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_QueryChannelRangeDecodeErrorZ* arg_conv = (LDKCResult_QueryChannelRangeDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_QueryChannelRangeDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_QueryChannelRangeDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_QueryChannelRangeDecodeErrorZ_clone"))) TS_CResult_QueryChannelRangeDecodeErrorZ_clone(uint32_t orig) {
@@ -19045,8 +19214,8 @@ uint32_t  __attribute__((export_name("TS_CResult_ReplyChannelRangeDecodeErrorZ_e
 
 jboolean  __attribute__((export_name("TS_CResult_ReplyChannelRangeDecodeErrorZ_is_ok"))) TS_CResult_ReplyChannelRangeDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_ReplyChannelRangeDecodeErrorZ* o_conv = (LDKCResult_ReplyChannelRangeDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_ReplyChannelRangeDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_ReplyChannelRangeDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_ReplyChannelRangeDecodeErrorZ_free"))) TS_CResult_ReplyChannelRangeDecodeErrorZ_free(uint32_t _res) {
@@ -19065,8 +19234,8 @@ static inline uintptr_t CResult_ReplyChannelRangeDecodeErrorZ_clone_ptr(LDKCResu
 }
 uint32_t  __attribute__((export_name("TS_CResult_ReplyChannelRangeDecodeErrorZ_clone_ptr"))) TS_CResult_ReplyChannelRangeDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_ReplyChannelRangeDecodeErrorZ* arg_conv = (LDKCResult_ReplyChannelRangeDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_ReplyChannelRangeDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_ReplyChannelRangeDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_ReplyChannelRangeDecodeErrorZ_clone"))) TS_CResult_ReplyChannelRangeDecodeErrorZ_clone(uint32_t orig) {
@@ -19100,8 +19269,8 @@ uint32_t  __attribute__((export_name("TS_CResult_GossipTimestampFilterDecodeErro
 
 jboolean  __attribute__((export_name("TS_CResult_GossipTimestampFilterDecodeErrorZ_is_ok"))) TS_CResult_GossipTimestampFilterDecodeErrorZ_is_ok(uint32_t o) {
        LDKCResult_GossipTimestampFilterDecodeErrorZ* o_conv = (LDKCResult_GossipTimestampFilterDecodeErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_GossipTimestampFilterDecodeErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_GossipTimestampFilterDecodeErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_GossipTimestampFilterDecodeErrorZ_free"))) TS_CResult_GossipTimestampFilterDecodeErrorZ_free(uint32_t _res) {
@@ -19120,8 +19289,8 @@ static inline uintptr_t CResult_GossipTimestampFilterDecodeErrorZ_clone_ptr(LDKC
 }
 uint32_t  __attribute__((export_name("TS_CResult_GossipTimestampFilterDecodeErrorZ_clone_ptr"))) TS_CResult_GossipTimestampFilterDecodeErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_GossipTimestampFilterDecodeErrorZ* arg_conv = (LDKCResult_GossipTimestampFilterDecodeErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_GossipTimestampFilterDecodeErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_GossipTimestampFilterDecodeErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_GossipTimestampFilterDecodeErrorZ_clone"))) TS_CResult_GossipTimestampFilterDecodeErrorZ_clone(uint32_t orig) {
@@ -19154,8 +19323,8 @@ uint32_t  __attribute__((export_name("TS_CResult_InvoiceSignOrCreationErrorZ_err
 
 jboolean  __attribute__((export_name("TS_CResult_InvoiceSignOrCreationErrorZ_is_ok"))) TS_CResult_InvoiceSignOrCreationErrorZ_is_ok(uint32_t o) {
        LDKCResult_InvoiceSignOrCreationErrorZ* o_conv = (LDKCResult_InvoiceSignOrCreationErrorZ*)(o & ~1);
-       jboolean ret_val = CResult_InvoiceSignOrCreationErrorZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_InvoiceSignOrCreationErrorZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_InvoiceSignOrCreationErrorZ_free"))) TS_CResult_InvoiceSignOrCreationErrorZ_free(uint32_t _res) {
@@ -19174,8 +19343,8 @@ static inline uintptr_t CResult_InvoiceSignOrCreationErrorZ_clone_ptr(LDKCResult
 }
 uint32_t  __attribute__((export_name("TS_CResult_InvoiceSignOrCreationErrorZ_clone_ptr"))) TS_CResult_InvoiceSignOrCreationErrorZ_clone_ptr(uint32_t arg) {
        LDKCResult_InvoiceSignOrCreationErrorZ* arg_conv = (LDKCResult_InvoiceSignOrCreationErrorZ*)(arg & ~1);
-       uint32_t ret_val = CResult_InvoiceSignOrCreationErrorZ_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CResult_InvoiceSignOrCreationErrorZ_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CResult_InvoiceSignOrCreationErrorZ_clone"))) TS_CResult_InvoiceSignOrCreationErrorZ_clone(uint32_t orig) {
@@ -19189,6 +19358,10 @@ uint32_t  __attribute__((export_name("TS_COption_FilterZ_some"))) TS_COption_Fil
        void* o_ptr = (void*)(((uintptr_t)o) & ~1);
        CHECK_ACCESS(o_ptr);
        LDKFilter o_conv = *(LDKFilter*)(o_ptr);
+       if (o_conv.free == LDKFilter_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKFilter_JCalls_cloned(&o_conv);
+       }
        LDKCOption_FilterZ *ret_copy = MALLOC(sizeof(LDKCOption_FilterZ), "LDKCOption_FilterZ");
        *ret_copy = COption_FilterZ_some(o_conv);
        uint32_t ret_ref = (uintptr_t)ret_copy;
@@ -19230,8 +19403,8 @@ uint32_t  __attribute__((export_name("TS_CResult_LockedChannelMonitorNoneZ_err")
 
 jboolean  __attribute__((export_name("TS_CResult_LockedChannelMonitorNoneZ_is_ok"))) TS_CResult_LockedChannelMonitorNoneZ_is_ok(uint32_t o) {
        LDKCResult_LockedChannelMonitorNoneZ* o_conv = (LDKCResult_LockedChannelMonitorNoneZ*)(o & ~1);
-       jboolean ret_val = CResult_LockedChannelMonitorNoneZ_is_ok(o_conv);
-       return ret_val;
+       jboolean ret_conv = CResult_LockedChannelMonitorNoneZ_is_ok(o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CResult_LockedChannelMonitorNoneZ_free"))) TS_CResult_LockedChannelMonitorNoneZ_free(uint32_t _res) {
@@ -19279,8 +19452,8 @@ uint32_t ret_ref = (uintptr_t)ret_copy;
 }
 uint32_t  __attribute__((export_name("TS_PaymentPurpose_clone_ptr"))) TS_PaymentPurpose_clone_ptr(uint32_t arg) {
        LDKPaymentPurpose* arg_conv = (LDKPaymentPurpose*)arg;
-       uint32_t ret_val = PaymentPurpose_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = PaymentPurpose_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_PaymentPurpose_clone"))) TS_PaymentPurpose_clone(uint32_t orig) {
@@ -19331,8 +19504,8 @@ uint32_t ret_ref = (uintptr_t)ret_copy;
 }
 uint32_t  __attribute__((export_name("TS_ClosureReason_clone_ptr"))) TS_ClosureReason_clone_ptr(uint32_t arg) {
        LDKClosureReason* arg_conv = (LDKClosureReason*)arg;
-       uint32_t ret_val = ClosureReason_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = ClosureReason_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_ClosureReason_clone"))) TS_ClosureReason_clone(uint32_t orig) {
@@ -19436,8 +19609,8 @@ uint32_t ret_ref = (uintptr_t)ret_copy;
 }
 uint32_t  __attribute__((export_name("TS_Event_clone_ptr"))) TS_Event_clone_ptr(uint32_t arg) {
        LDKEvent* arg_conv = (LDKEvent*)arg;
-       uint32_t ret_val = Event_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = Event_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_Event_clone"))) TS_Event_clone(uint32_t orig) {
@@ -19649,15 +19822,20 @@ uint32_t  __attribute__((export_name("TS_Event_payment_path_successful"))) TS_Ev
        return ret_ref;
 }
 
-uint32_t  __attribute__((export_name("TS_Event_open_channel_request"))) TS_Event_open_channel_request(int8_tArray temporary_channel_id, int8_tArray counterparty_node_id, int64_t funding_satoshis, int64_t push_msat) {
+uint32_t  __attribute__((export_name("TS_Event_open_channel_request"))) TS_Event_open_channel_request(int8_tArray temporary_channel_id, int8_tArray counterparty_node_id, int64_t funding_satoshis, int64_t push_msat, uint32_t channel_type) {
        LDKThirtyTwoBytes temporary_channel_id_ref;
        CHECK(temporary_channel_id->arr_len == 32);
        memcpy(temporary_channel_id_ref.data, temporary_channel_id->elems, 32); FREE(temporary_channel_id);
        LDKPublicKey counterparty_node_id_ref;
        CHECK(counterparty_node_id->arr_len == 33);
        memcpy(counterparty_node_id_ref.compressed_form, counterparty_node_id->elems, 33); FREE(counterparty_node_id);
+       LDKChannelTypeFeatures channel_type_conv;
+       channel_type_conv.inner = (void*)(channel_type & (~1));
+       channel_type_conv.is_owned = (channel_type & 1) || (channel_type == 0);
+       CHECK_INNER_FIELD_ACCESS_OR_NULL(channel_type_conv);
+       channel_type_conv = ChannelTypeFeatures_clone(&channel_type_conv);
        LDKEvent *ret_copy = MALLOC(sizeof(LDKEvent), "LDKEvent");
-       *ret_copy = Event_open_channel_request(temporary_channel_id_ref, counterparty_node_id_ref, funding_satoshis, push_msat);
+       *ret_copy = Event_open_channel_request(temporary_channel_id_ref, counterparty_node_id_ref, funding_satoshis, push_msat, channel_type_conv);
        uint32_t ret_ref = (uintptr_t)ret_copy;
        return ret_ref;
 }
@@ -19697,8 +19875,8 @@ uint32_t ret_ref = (uintptr_t)ret_copy;
 }
 uint32_t  __attribute__((export_name("TS_MessageSendEvent_clone_ptr"))) TS_MessageSendEvent_clone_ptr(uint32_t arg) {
        LDKMessageSendEvent* arg_conv = (LDKMessageSendEvent*)arg;
-       uint32_t ret_val = MessageSendEvent_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = MessageSendEvent_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_MessageSendEvent_clone"))) TS_MessageSendEvent_clone(uint32_t orig) {
@@ -19989,6 +20167,21 @@ uint32_t  __attribute__((export_name("TS_MessageSendEvent_send_reply_channel_ran
        return ret_ref;
 }
 
+uint32_t  __attribute__((export_name("TS_MessageSendEvent_send_gossip_timestamp_filter"))) TS_MessageSendEvent_send_gossip_timestamp_filter(int8_tArray node_id, uint32_t msg) {
+       LDKPublicKey node_id_ref;
+       CHECK(node_id->arr_len == 33);
+       memcpy(node_id_ref.compressed_form, node_id->elems, 33); FREE(node_id);
+       LDKGossipTimestampFilter msg_conv;
+       msg_conv.inner = (void*)(msg & (~1));
+       msg_conv.is_owned = (msg & 1) || (msg == 0);
+       CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_conv);
+       msg_conv = GossipTimestampFilter_clone(&msg_conv);
+       LDKMessageSendEvent *ret_copy = MALLOC(sizeof(LDKMessageSendEvent), "LDKMessageSendEvent");
+       *ret_copy = MessageSendEvent_send_gossip_timestamp_filter(node_id_ref, msg_conv);
+       uint32_t ret_ref = (uintptr_t)ret_copy;
+       return ret_ref;
+}
+
 void  __attribute__((export_name("TS_MessageSendEventsProvider_free"))) TS_MessageSendEventsProvider_free(uint32_t this_ptr) {
        if ((this_ptr & 1) != 0) return;
        void* this_ptr_ptr = (void*)(((uintptr_t)this_ptr) & ~1);
@@ -20033,8 +20226,8 @@ uint32_t ret_ref = (uintptr_t)ret_copy;
 }
 uint32_t  __attribute__((export_name("TS_APIError_clone_ptr"))) TS_APIError_clone_ptr(uint32_t arg) {
        LDKAPIError* arg_conv = (LDKAPIError*)arg;
-       uint32_t ret_val = APIError_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = APIError_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_APIError_clone"))) TS_APIError_clone(uint32_t orig) {
@@ -20127,8 +20320,8 @@ jboolean  __attribute__((export_name("TS_verify"))) TS_verify(int8_tArray msg, j
        LDKPublicKey pk_ref;
        CHECK(pk->arr_len == 33);
        memcpy(pk_ref.compressed_form, pk->elems, 33); FREE(pk);
-       jboolean ret_val = verify(msg_ref, sig_conv, pk_ref);
-       return ret_val;
+       jboolean ret_conv = verify(msg_ref, sig_conv, pk_ref);
+       return ret_conv;
 }
 
 int8_tArray  __attribute__((export_name("TS_construct_invoice_preimage"))) TS_construct_invoice_preimage(int8_tArray hrp_bytes, ptrArray data_without_signature) {
@@ -20193,14 +20386,14 @@ uint32_t  __attribute__((export_name("TS_Level_error"))) TS_Level_error() {
 jboolean  __attribute__((export_name("TS_Level_eq"))) TS_Level_eq(uint32_t a, uint32_t b) {
        LDKLevel* a_conv = (LDKLevel*)(a & ~1);
        LDKLevel* b_conv = (LDKLevel*)(b & ~1);
-       jboolean ret_val = Level_eq(a_conv, b_conv);
-       return ret_val;
+       jboolean ret_conv = Level_eq(a_conv, b_conv);
+       return ret_conv;
 }
 
 int64_t  __attribute__((export_name("TS_Level_hash"))) TS_Level_hash(uint32_t o) {
        LDKLevel* o_conv = (LDKLevel*)(o & ~1);
-       int64_t ret_val = Level_hash(o_conv);
-       return ret_val;
+       int64_t ret_conv = Level_hash(o_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_Level_max"))) TS_Level_max() {
@@ -20299,8 +20492,8 @@ int32_t  __attribute__((export_name("TS_Record_get_line"))) TS_Record_get_line(u
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int32_t ret_val = Record_get_line(&this_ptr_conv);
-       return ret_val;
+       int32_t ret_conv = Record_get_line(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_Record_set_line"))) TS_Record_set_line(uint32_t this_ptr, int32_t val) {
@@ -20328,8 +20521,8 @@ uint32_t  __attribute__((export_name("TS_Record_clone_ptr"))) TS_Record_clone_pt
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = Record_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = Record_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_Record_clone"))) TS_Record_clone(uint32_t orig) {
@@ -20371,8 +20564,8 @@ int32_t  __attribute__((export_name("TS_ChannelHandshakeConfig_get_minimum_depth
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int32_t ret_val = ChannelHandshakeConfig_get_minimum_depth(&this_ptr_conv);
-       return ret_val;
+       int32_t ret_conv = ChannelHandshakeConfig_get_minimum_depth(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ChannelHandshakeConfig_set_minimum_depth"))) TS_ChannelHandshakeConfig_set_minimum_depth(uint32_t this_ptr, int32_t val) {
@@ -20388,8 +20581,8 @@ int16_t  __attribute__((export_name("TS_ChannelHandshakeConfig_get_our_to_self_d
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int16_t ret_val = ChannelHandshakeConfig_get_our_to_self_delay(&this_ptr_conv);
-       return ret_val;
+       int16_t ret_conv = ChannelHandshakeConfig_get_our_to_self_delay(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ChannelHandshakeConfig_set_our_to_self_delay"))) TS_ChannelHandshakeConfig_set_our_to_self_delay(uint32_t this_ptr, int16_t val) {
@@ -20405,8 +20598,8 @@ int64_t  __attribute__((export_name("TS_ChannelHandshakeConfig_get_our_htlc_mini
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = ChannelHandshakeConfig_get_our_htlc_minimum_msat(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = ChannelHandshakeConfig_get_our_htlc_minimum_msat(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ChannelHandshakeConfig_set_our_htlc_minimum_msat"))) TS_ChannelHandshakeConfig_set_our_htlc_minimum_msat(uint32_t this_ptr, int64_t val) {
@@ -20417,8 +20610,25 @@ void  __attribute__((export_name("TS_ChannelHandshakeConfig_set_our_htlc_minimum
        ChannelHandshakeConfig_set_our_htlc_minimum_msat(&this_ptr_conv, val);
 }
 
-uint32_t  __attribute__((export_name("TS_ChannelHandshakeConfig_new"))) TS_ChannelHandshakeConfig_new(int32_t minimum_depth_arg, int16_t our_to_self_delay_arg, int64_t our_htlc_minimum_msat_arg) {
-       LDKChannelHandshakeConfig ret_var = ChannelHandshakeConfig_new(minimum_depth_arg, our_to_self_delay_arg, our_htlc_minimum_msat_arg);
+jboolean  __attribute__((export_name("TS_ChannelHandshakeConfig_get_negotiate_scid_privacy"))) TS_ChannelHandshakeConfig_get_negotiate_scid_privacy(uint32_t this_ptr) {
+       LDKChannelHandshakeConfig this_ptr_conv;
+       this_ptr_conv.inner = (void*)(this_ptr & (~1));
+       this_ptr_conv.is_owned = false;
+       CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
+       jboolean ret_conv = ChannelHandshakeConfig_get_negotiate_scid_privacy(&this_ptr_conv);
+       return ret_conv;
+}
+
+void  __attribute__((export_name("TS_ChannelHandshakeConfig_set_negotiate_scid_privacy"))) TS_ChannelHandshakeConfig_set_negotiate_scid_privacy(uint32_t this_ptr, jboolean val) {
+       LDKChannelHandshakeConfig this_ptr_conv;
+       this_ptr_conv.inner = (void*)(this_ptr & (~1));
+       this_ptr_conv.is_owned = false;
+       CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
+       ChannelHandshakeConfig_set_negotiate_scid_privacy(&this_ptr_conv, val);
+}
+
+uint32_t  __attribute__((export_name("TS_ChannelHandshakeConfig_new"))) TS_ChannelHandshakeConfig_new(int32_t minimum_depth_arg, int16_t our_to_self_delay_arg, int64_t our_htlc_minimum_msat_arg, jboolean negotiate_scid_privacy_arg) {
+       LDKChannelHandshakeConfig ret_var = ChannelHandshakeConfig_new(minimum_depth_arg, our_to_self_delay_arg, our_htlc_minimum_msat_arg, negotiate_scid_privacy_arg);
        uint32_t ret_ref = 0;
        CHECK((((uintptr_t)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
        CHECK((((uintptr_t)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
@@ -20447,8 +20657,8 @@ uint32_t  __attribute__((export_name("TS_ChannelHandshakeConfig_clone_ptr"))) TS
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = ChannelHandshakeConfig_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = ChannelHandshakeConfig_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_ChannelHandshakeConfig_clone"))) TS_ChannelHandshakeConfig_clone(uint32_t orig) {
@@ -20494,8 +20704,8 @@ int64_t  __attribute__((export_name("TS_ChannelHandshakeLimits_get_min_funding_s
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = ChannelHandshakeLimits_get_min_funding_satoshis(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = ChannelHandshakeLimits_get_min_funding_satoshis(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ChannelHandshakeLimits_set_min_funding_satoshis"))) TS_ChannelHandshakeLimits_set_min_funding_satoshis(uint32_t this_ptr, int64_t val) {
@@ -20511,8 +20721,8 @@ int64_t  __attribute__((export_name("TS_ChannelHandshakeLimits_get_max_htlc_mini
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = ChannelHandshakeLimits_get_max_htlc_minimum_msat(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = ChannelHandshakeLimits_get_max_htlc_minimum_msat(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ChannelHandshakeLimits_set_max_htlc_minimum_msat"))) TS_ChannelHandshakeLimits_set_max_htlc_minimum_msat(uint32_t this_ptr, int64_t val) {
@@ -20528,8 +20738,8 @@ int64_t  __attribute__((export_name("TS_ChannelHandshakeLimits_get_min_max_htlc_
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = ChannelHandshakeLimits_get_min_max_htlc_value_in_flight_msat(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = ChannelHandshakeLimits_get_min_max_htlc_value_in_flight_msat(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ChannelHandshakeLimits_set_min_max_htlc_value_in_flight_msat"))) TS_ChannelHandshakeLimits_set_min_max_htlc_value_in_flight_msat(uint32_t this_ptr, int64_t val) {
@@ -20545,8 +20755,8 @@ int64_t  __attribute__((export_name("TS_ChannelHandshakeLimits_get_max_channel_r
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = ChannelHandshakeLimits_get_max_channel_reserve_satoshis(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = ChannelHandshakeLimits_get_max_channel_reserve_satoshis(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ChannelHandshakeLimits_set_max_channel_reserve_satoshis"))) TS_ChannelHandshakeLimits_set_max_channel_reserve_satoshis(uint32_t this_ptr, int64_t val) {
@@ -20562,8 +20772,8 @@ int16_t  __attribute__((export_name("TS_ChannelHandshakeLimits_get_min_max_accep
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int16_t ret_val = ChannelHandshakeLimits_get_min_max_accepted_htlcs(&this_ptr_conv);
-       return ret_val;
+       int16_t ret_conv = ChannelHandshakeLimits_get_min_max_accepted_htlcs(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ChannelHandshakeLimits_set_min_max_accepted_htlcs"))) TS_ChannelHandshakeLimits_set_min_max_accepted_htlcs(uint32_t this_ptr, int16_t val) {
@@ -20579,8 +20789,8 @@ int32_t  __attribute__((export_name("TS_ChannelHandshakeLimits_get_max_minimum_d
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int32_t ret_val = ChannelHandshakeLimits_get_max_minimum_depth(&this_ptr_conv);
-       return ret_val;
+       int32_t ret_conv = ChannelHandshakeLimits_get_max_minimum_depth(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ChannelHandshakeLimits_set_max_minimum_depth"))) TS_ChannelHandshakeLimits_set_max_minimum_depth(uint32_t this_ptr, int32_t val) {
@@ -20596,8 +20806,8 @@ jboolean  __attribute__((export_name("TS_ChannelHandshakeLimits_get_force_announ
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       jboolean ret_val = ChannelHandshakeLimits_get_force_announced_channel_preference(&this_ptr_conv);
-       return ret_val;
+       jboolean ret_conv = ChannelHandshakeLimits_get_force_announced_channel_preference(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ChannelHandshakeLimits_set_force_announced_channel_preference"))) TS_ChannelHandshakeLimits_set_force_announced_channel_preference(uint32_t this_ptr, jboolean val) {
@@ -20613,8 +20823,8 @@ int16_t  __attribute__((export_name("TS_ChannelHandshakeLimits_get_their_to_self
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int16_t ret_val = ChannelHandshakeLimits_get_their_to_self_delay(&this_ptr_conv);
-       return ret_val;
+       int16_t ret_conv = ChannelHandshakeLimits_get_their_to_self_delay(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ChannelHandshakeLimits_set_their_to_self_delay"))) TS_ChannelHandshakeLimits_set_their_to_self_delay(uint32_t this_ptr, int16_t val) {
@@ -20655,8 +20865,8 @@ uint32_t  __attribute__((export_name("TS_ChannelHandshakeLimits_clone_ptr"))) TS
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = ChannelHandshakeLimits_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = ChannelHandshakeLimits_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_ChannelHandshakeLimits_clone"))) TS_ChannelHandshakeLimits_clone(uint32_t orig) {
@@ -20702,8 +20912,8 @@ int32_t  __attribute__((export_name("TS_ChannelConfig_get_forwarding_fee_proport
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int32_t ret_val = ChannelConfig_get_forwarding_fee_proportional_millionths(&this_ptr_conv);
-       return ret_val;
+       int32_t ret_conv = ChannelConfig_get_forwarding_fee_proportional_millionths(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ChannelConfig_set_forwarding_fee_proportional_millionths"))) TS_ChannelConfig_set_forwarding_fee_proportional_millionths(uint32_t this_ptr, int32_t val) {
@@ -20719,8 +20929,8 @@ int32_t  __attribute__((export_name("TS_ChannelConfig_get_forwarding_fee_base_ms
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int32_t ret_val = ChannelConfig_get_forwarding_fee_base_msat(&this_ptr_conv);
-       return ret_val;
+       int32_t ret_conv = ChannelConfig_get_forwarding_fee_base_msat(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ChannelConfig_set_forwarding_fee_base_msat"))) TS_ChannelConfig_set_forwarding_fee_base_msat(uint32_t this_ptr, int32_t val) {
@@ -20736,8 +20946,8 @@ int16_t  __attribute__((export_name("TS_ChannelConfig_get_cltv_expiry_delta")))
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int16_t ret_val = ChannelConfig_get_cltv_expiry_delta(&this_ptr_conv);
-       return ret_val;
+       int16_t ret_conv = ChannelConfig_get_cltv_expiry_delta(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ChannelConfig_set_cltv_expiry_delta"))) TS_ChannelConfig_set_cltv_expiry_delta(uint32_t this_ptr, int16_t val) {
@@ -20753,8 +20963,8 @@ jboolean  __attribute__((export_name("TS_ChannelConfig_get_announced_channel")))
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       jboolean ret_val = ChannelConfig_get_announced_channel(&this_ptr_conv);
-       return ret_val;
+       jboolean ret_conv = ChannelConfig_get_announced_channel(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ChannelConfig_set_announced_channel"))) TS_ChannelConfig_set_announced_channel(uint32_t this_ptr, jboolean val) {
@@ -20770,8 +20980,8 @@ jboolean  __attribute__((export_name("TS_ChannelConfig_get_commit_upfront_shutdo
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       jboolean ret_val = ChannelConfig_get_commit_upfront_shutdown_pubkey(&this_ptr_conv);
-       return ret_val;
+       jboolean ret_conv = ChannelConfig_get_commit_upfront_shutdown_pubkey(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ChannelConfig_set_commit_upfront_shutdown_pubkey"))) TS_ChannelConfig_set_commit_upfront_shutdown_pubkey(uint32_t this_ptr, jboolean val) {
@@ -20787,8 +20997,8 @@ int64_t  __attribute__((export_name("TS_ChannelConfig_get_max_dust_htlc_exposure
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = ChannelConfig_get_max_dust_htlc_exposure_msat(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = ChannelConfig_get_max_dust_htlc_exposure_msat(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ChannelConfig_set_max_dust_htlc_exposure_msat"))) TS_ChannelConfig_set_max_dust_htlc_exposure_msat(uint32_t this_ptr, int64_t val) {
@@ -20804,8 +21014,8 @@ int64_t  __attribute__((export_name("TS_ChannelConfig_get_force_close_avoidance_
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = ChannelConfig_get_force_close_avoidance_max_fee_satoshis(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = ChannelConfig_get_force_close_avoidance_max_fee_satoshis(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ChannelConfig_set_force_close_avoidance_max_fee_satoshis"))) TS_ChannelConfig_set_force_close_avoidance_max_fee_satoshis(uint32_t this_ptr, int64_t val) {
@@ -20846,8 +21056,8 @@ uint32_t  __attribute__((export_name("TS_ChannelConfig_clone_ptr"))) TS_ChannelC
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = ChannelConfig_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = ChannelConfig_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_ChannelConfig_clone"))) TS_ChannelConfig_clone(uint32_t orig) {
@@ -21004,8 +21214,8 @@ jboolean  __attribute__((export_name("TS_UserConfig_get_accept_forwards_to_priv_
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       jboolean ret_val = UserConfig_get_accept_forwards_to_priv_channels(&this_ptr_conv);
-       return ret_val;
+       jboolean ret_conv = UserConfig_get_accept_forwards_to_priv_channels(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_UserConfig_set_accept_forwards_to_priv_channels"))) TS_UserConfig_set_accept_forwards_to_priv_channels(uint32_t this_ptr, jboolean val) {
@@ -21021,8 +21231,8 @@ jboolean  __attribute__((export_name("TS_UserConfig_get_accept_inbound_channels"
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       jboolean ret_val = UserConfig_get_accept_inbound_channels(&this_ptr_conv);
-       return ret_val;
+       jboolean ret_conv = UserConfig_get_accept_inbound_channels(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_UserConfig_set_accept_inbound_channels"))) TS_UserConfig_set_accept_inbound_channels(uint32_t this_ptr, jboolean val) {
@@ -21038,8 +21248,8 @@ jboolean  __attribute__((export_name("TS_UserConfig_get_manually_accept_inbound_
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       jboolean ret_val = UserConfig_get_manually_accept_inbound_channels(&this_ptr_conv);
-       return ret_val;
+       jboolean ret_conv = UserConfig_get_manually_accept_inbound_channels(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_UserConfig_set_manually_accept_inbound_channels"))) TS_UserConfig_set_manually_accept_inbound_channels(uint32_t this_ptr, jboolean val) {
@@ -21095,8 +21305,8 @@ uint32_t  __attribute__((export_name("TS_UserConfig_clone_ptr"))) TS_UserConfig_
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = UserConfig_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = UserConfig_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_UserConfig_clone"))) TS_UserConfig_clone(uint32_t orig) {
@@ -21154,8 +21364,8 @@ uint32_t  __attribute__((export_name("TS_BestBlock_clone_ptr"))) TS_BestBlock_cl
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = BestBlock_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = BestBlock_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_BestBlock_clone"))) TS_BestBlock_clone(uint32_t orig) {
@@ -21220,8 +21430,8 @@ int32_t  __attribute__((export_name("TS_BestBlock_height"))) TS_BestBlock_height
        this_arg_conv.inner = (void*)(this_arg & (~1));
        this_arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv);
-       int32_t ret_val = BestBlock_height(&this_arg_conv);
-       return ret_val;
+       int32_t ret_conv = BestBlock_height(&this_arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_AccessError_clone"))) TS_AccessError_clone(uint32_t orig) {
@@ -21425,8 +21635,8 @@ uint32_t  __attribute__((export_name("TS_WatchedOutput_clone_ptr"))) TS_WatchedO
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = WatchedOutput_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = WatchedOutput_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_WatchedOutput_clone"))) TS_WatchedOutput_clone(uint32_t orig) {
@@ -21451,8 +21661,8 @@ int64_t  __attribute__((export_name("TS_WatchedOutput_hash"))) TS_WatchedOutput_
        o_conv.inner = (void*)(o & (~1));
        o_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv);
-       int64_t ret_val = WatchedOutput_hash(&o_conv);
-       return ret_val;
+       int64_t ret_conv = WatchedOutput_hash(&o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_BroadcasterInterface_free"))) TS_BroadcasterInterface_free(uint32_t this_ptr) {
@@ -21488,8 +21698,8 @@ uint32_t  __attribute__((export_name("TS_ConfirmationTarget_high_priority"))) TS
 jboolean  __attribute__((export_name("TS_ConfirmationTarget_eq"))) TS_ConfirmationTarget_eq(uint32_t a, uint32_t b) {
        LDKConfirmationTarget* a_conv = (LDKConfirmationTarget*)(a & ~1);
        LDKConfirmationTarget* b_conv = (LDKConfirmationTarget*)(b & ~1);
-       jboolean ret_val = ConfirmationTarget_eq(a_conv, b_conv);
-       return ret_val;
+       jboolean ret_conv = ConfirmationTarget_eq(a_conv, b_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_FeeEstimator_free"))) TS_FeeEstimator_free(uint32_t this_ptr) {
@@ -21526,8 +21736,8 @@ uint32_t  __attribute__((export_name("TS_MonitorUpdateId_clone_ptr"))) TS_Monito
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = MonitorUpdateId_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = MonitorUpdateId_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_MonitorUpdateId_clone"))) TS_MonitorUpdateId_clone(uint32_t orig) {
@@ -21552,8 +21762,8 @@ int64_t  __attribute__((export_name("TS_MonitorUpdateId_hash"))) TS_MonitorUpdat
        o_conv.inner = (void*)(o & (~1));
        o_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv);
-       int64_t ret_val = MonitorUpdateId_hash(&o_conv);
-       return ret_val;
+       int64_t ret_conv = MonitorUpdateId_hash(&o_conv);
+       return ret_conv;
 }
 
 jboolean  __attribute__((export_name("TS_MonitorUpdateId_eq"))) TS_MonitorUpdateId_eq(uint32_t a, uint32_t b) {
@@ -21565,8 +21775,8 @@ jboolean  __attribute__((export_name("TS_MonitorUpdateId_eq"))) TS_MonitorUpdate
        b_conv.inner = (void*)(b & (~1));
        b_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv);
-       jboolean ret_val = MonitorUpdateId_eq(&a_conv, &b_conv);
-       return ret_val;
+       jboolean ret_conv = MonitorUpdateId_eq(&a_conv, &b_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_Persist_free"))) TS_Persist_free(uint32_t this_ptr) {
@@ -21601,19 +21811,39 @@ uint32_t  __attribute__((export_name("TS_ChainMonitor_new"))) TS_ChainMonitor_ne
        // WARNING: we may need a move here but no clone is available for LDKCOption_FilterZ
        if (chain_source_conv.tag == LDKCOption_FilterZ_Some) {
                // Manually implement clone for Java trait instances
+               if (chain_source_conv.some.free == LDKFilter_JCalls_free) {
+                       // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+                       LDKFilter_JCalls_cloned(&chain_source_conv.some);
+               }
        }
        void* broadcaster_ptr = (void*)(((uintptr_t)broadcaster) & ~1);
        CHECK_ACCESS(broadcaster_ptr);
        LDKBroadcasterInterface broadcaster_conv = *(LDKBroadcasterInterface*)(broadcaster_ptr);
+       if (broadcaster_conv.free == LDKBroadcasterInterface_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKBroadcasterInterface_JCalls_cloned(&broadcaster_conv);
+       }
        void* logger_ptr = (void*)(((uintptr_t)logger) & ~1);
        CHECK_ACCESS(logger_ptr);
        LDKLogger logger_conv = *(LDKLogger*)(logger_ptr);
+       if (logger_conv.free == LDKLogger_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKLogger_JCalls_cloned(&logger_conv);
+       }
        void* feeest_ptr = (void*)(((uintptr_t)feeest) & ~1);
        CHECK_ACCESS(feeest_ptr);
        LDKFeeEstimator feeest_conv = *(LDKFeeEstimator*)(feeest_ptr);
+       if (feeest_conv.free == LDKFeeEstimator_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKFeeEstimator_JCalls_cloned(&feeest_conv);
+       }
        void* persister_ptr = (void*)(((uintptr_t)persister) & ~1);
        CHECK_ACCESS(persister_ptr);
        LDKPersist persister_conv = *(LDKPersist*)(persister_ptr);
+       if (persister_conv.free == LDKPersist_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKPersist_JCalls_cloned(&persister_conv);
+       }
        LDKChainMonitor ret_var = ChainMonitor_new(chain_source_conv, broadcaster_conv, logger_conv, feeest_conv, persister_conv);
        uint32_t ret_ref = 0;
        CHECK((((uintptr_t)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
@@ -21776,8 +22006,8 @@ int64_t  __attribute__((export_name("TS_ChannelMonitorUpdate_get_update_id"))) T
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = ChannelMonitorUpdate_get_update_id(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = ChannelMonitorUpdate_get_update_id(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ChannelMonitorUpdate_set_update_id"))) TS_ChannelMonitorUpdate_set_update_id(uint32_t this_ptr, int64_t val) {
@@ -21805,8 +22035,8 @@ uint32_t  __attribute__((export_name("TS_ChannelMonitorUpdate_clone_ptr"))) TS_C
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = ChannelMonitorUpdate_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = ChannelMonitorUpdate_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_ChannelMonitorUpdate_clone"))) TS_ChannelMonitorUpdate_clone(uint32_t orig) {
@@ -21864,8 +22094,8 @@ uint32_t ret_ref = (uintptr_t)ret_copy;
 }
 uint32_t  __attribute__((export_name("TS_MonitorEvent_clone_ptr"))) TS_MonitorEvent_clone_ptr(uint32_t arg) {
        LDKMonitorEvent* arg_conv = (LDKMonitorEvent*)arg;
-       uint32_t ret_val = MonitorEvent_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = MonitorEvent_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_MonitorEvent_clone"))) TS_MonitorEvent_clone(uint32_t orig) {
@@ -21967,8 +22197,8 @@ uint32_t  __attribute__((export_name("TS_HTLCUpdate_clone_ptr"))) TS_HTLCUpdate_
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = HTLCUpdate_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = HTLCUpdate_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_HTLCUpdate_clone"))) TS_HTLCUpdate_clone(uint32_t orig) {
@@ -22026,8 +22256,8 @@ uint32_t ret_ref = (uintptr_t)ret_copy;
 }
 uint32_t  __attribute__((export_name("TS_Balance_clone_ptr"))) TS_Balance_clone_ptr(uint32_t arg) {
        LDKBalance* arg_conv = (LDKBalance*)arg;
-       uint32_t ret_val = Balance_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = Balance_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_Balance_clone"))) TS_Balance_clone(uint32_t orig) {
@@ -22069,8 +22299,8 @@ uint32_t  __attribute__((export_name("TS_Balance_maybe_claimable_htlcawaiting_ti
 jboolean  __attribute__((export_name("TS_Balance_eq"))) TS_Balance_eq(uint32_t a, uint32_t b) {
        LDKBalance* a_conv = (LDKBalance*)a;
        LDKBalance* b_conv = (LDKBalance*)b;
-       jboolean ret_val = Balance_eq(a_conv, b_conv);
-       return ret_val;
+       jboolean ret_conv = Balance_eq(a_conv, b_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ChannelMonitor_free"))) TS_ChannelMonitor_free(uint32_t this_obj) {
@@ -22098,8 +22328,8 @@ uint32_t  __attribute__((export_name("TS_ChannelMonitor_clone_ptr"))) TS_Channel
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = ChannelMonitor_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = ChannelMonitor_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_ChannelMonitor_clone"))) TS_ChannelMonitor_clone(uint32_t orig) {
@@ -22159,8 +22389,8 @@ int64_t  __attribute__((export_name("TS_ChannelMonitor_get_latest_update_id")))
        this_arg_conv.inner = (void*)(this_arg & (~1));
        this_arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv);
-       int64_t ret_val = ChannelMonitor_get_latest_update_id(&this_arg_conv);
-       return ret_val;
+       int64_t ret_conv = ChannelMonitor_get_latest_update_id(&this_arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_ChannelMonitor_get_funding_txo"))) TS_ChannelMonitor_get_funding_txo(uint32_t this_arg) {
@@ -22294,12 +22524,24 @@ uint32_tArray  __attribute__((export_name("TS_ChannelMonitor_block_connected")))
        void* broadcaster_ptr = (void*)(((uintptr_t)broadcaster) & ~1);
        CHECK_ACCESS(broadcaster_ptr);
        LDKBroadcasterInterface broadcaster_conv = *(LDKBroadcasterInterface*)(broadcaster_ptr);
+       if (broadcaster_conv.free == LDKBroadcasterInterface_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKBroadcasterInterface_JCalls_cloned(&broadcaster_conv);
+       }
        void* fee_estimator_ptr = (void*)(((uintptr_t)fee_estimator) & ~1);
        CHECK_ACCESS(fee_estimator_ptr);
        LDKFeeEstimator fee_estimator_conv = *(LDKFeeEstimator*)(fee_estimator_ptr);
+       if (fee_estimator_conv.free == LDKFeeEstimator_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKFeeEstimator_JCalls_cloned(&fee_estimator_conv);
+       }
        void* logger_ptr = (void*)(((uintptr_t)logger) & ~1);
        CHECK_ACCESS(logger_ptr);
        LDKLogger logger_conv = *(LDKLogger*)(logger_ptr);
+       if (logger_conv.free == LDKLogger_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKLogger_JCalls_cloned(&logger_conv);
+       }
        LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32TxOutZZZZ ret_var = ChannelMonitor_block_connected(&this_arg_conv, header_ref, txdata_constr, height, broadcaster_conv, fee_estimator_conv, logger_conv);
        uint32_tArray ret_arr = NULL;
        ret_arr = init_uint32_tArray(ret_var.datalen, __LINE__);
@@ -22326,12 +22568,24 @@ void  __attribute__((export_name("TS_ChannelMonitor_block_disconnected"))) TS_Ch
        void* broadcaster_ptr = (void*)(((uintptr_t)broadcaster) & ~1);
        CHECK_ACCESS(broadcaster_ptr);
        LDKBroadcasterInterface broadcaster_conv = *(LDKBroadcasterInterface*)(broadcaster_ptr);
+       if (broadcaster_conv.free == LDKBroadcasterInterface_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKBroadcasterInterface_JCalls_cloned(&broadcaster_conv);
+       }
        void* fee_estimator_ptr = (void*)(((uintptr_t)fee_estimator) & ~1);
        CHECK_ACCESS(fee_estimator_ptr);
        LDKFeeEstimator fee_estimator_conv = *(LDKFeeEstimator*)(fee_estimator_ptr);
+       if (fee_estimator_conv.free == LDKFeeEstimator_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKFeeEstimator_JCalls_cloned(&fee_estimator_conv);
+       }
        void* logger_ptr = (void*)(((uintptr_t)logger) & ~1);
        CHECK_ACCESS(logger_ptr);
        LDKLogger logger_conv = *(LDKLogger*)(logger_ptr);
+       if (logger_conv.free == LDKLogger_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKLogger_JCalls_cloned(&logger_conv);
+       }
        ChannelMonitor_block_disconnected(&this_arg_conv, header_ref, height, broadcaster_conv, fee_estimator_conv, logger_conv);
 }
 
@@ -22362,12 +22616,24 @@ uint32_tArray  __attribute__((export_name("TS_ChannelMonitor_transactions_confir
        void* broadcaster_ptr = (void*)(((uintptr_t)broadcaster) & ~1);
        CHECK_ACCESS(broadcaster_ptr);
        LDKBroadcasterInterface broadcaster_conv = *(LDKBroadcasterInterface*)(broadcaster_ptr);
+       if (broadcaster_conv.free == LDKBroadcasterInterface_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKBroadcasterInterface_JCalls_cloned(&broadcaster_conv);
+       }
        void* fee_estimator_ptr = (void*)(((uintptr_t)fee_estimator) & ~1);
        CHECK_ACCESS(fee_estimator_ptr);
        LDKFeeEstimator fee_estimator_conv = *(LDKFeeEstimator*)(fee_estimator_ptr);
+       if (fee_estimator_conv.free == LDKFeeEstimator_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKFeeEstimator_JCalls_cloned(&fee_estimator_conv);
+       }
        void* logger_ptr = (void*)(((uintptr_t)logger) & ~1);
        CHECK_ACCESS(logger_ptr);
        LDKLogger logger_conv = *(LDKLogger*)(logger_ptr);
+       if (logger_conv.free == LDKLogger_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKLogger_JCalls_cloned(&logger_conv);
+       }
        LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32TxOutZZZZ ret_var = ChannelMonitor_transactions_confirmed(&this_arg_conv, header_ref, txdata_constr, height, broadcaster_conv, fee_estimator_conv, logger_conv);
        uint32_tArray ret_arr = NULL;
        ret_arr = init_uint32_tArray(ret_var.datalen, __LINE__);
@@ -22394,12 +22660,24 @@ void  __attribute__((export_name("TS_ChannelMonitor_transaction_unconfirmed")))
        void* broadcaster_ptr = (void*)(((uintptr_t)broadcaster) & ~1);
        CHECK_ACCESS(broadcaster_ptr);
        LDKBroadcasterInterface broadcaster_conv = *(LDKBroadcasterInterface*)(broadcaster_ptr);
+       if (broadcaster_conv.free == LDKBroadcasterInterface_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKBroadcasterInterface_JCalls_cloned(&broadcaster_conv);
+       }
        void* fee_estimator_ptr = (void*)(((uintptr_t)fee_estimator) & ~1);
        CHECK_ACCESS(fee_estimator_ptr);
        LDKFeeEstimator fee_estimator_conv = *(LDKFeeEstimator*)(fee_estimator_ptr);
+       if (fee_estimator_conv.free == LDKFeeEstimator_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKFeeEstimator_JCalls_cloned(&fee_estimator_conv);
+       }
        void* logger_ptr = (void*)(((uintptr_t)logger) & ~1);
        CHECK_ACCESS(logger_ptr);
        LDKLogger logger_conv = *(LDKLogger*)(logger_ptr);
+       if (logger_conv.free == LDKLogger_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKLogger_JCalls_cloned(&logger_conv);
+       }
        ChannelMonitor_transaction_unconfirmed(&this_arg_conv, txid_ref, broadcaster_conv, fee_estimator_conv, logger_conv);
 }
 
@@ -22415,12 +22693,24 @@ uint32_tArray  __attribute__((export_name("TS_ChannelMonitor_best_block_updated"
        void* broadcaster_ptr = (void*)(((uintptr_t)broadcaster) & ~1);
        CHECK_ACCESS(broadcaster_ptr);
        LDKBroadcasterInterface broadcaster_conv = *(LDKBroadcasterInterface*)(broadcaster_ptr);
+       if (broadcaster_conv.free == LDKBroadcasterInterface_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKBroadcasterInterface_JCalls_cloned(&broadcaster_conv);
+       }
        void* fee_estimator_ptr = (void*)(((uintptr_t)fee_estimator) & ~1);
        CHECK_ACCESS(fee_estimator_ptr);
        LDKFeeEstimator fee_estimator_conv = *(LDKFeeEstimator*)(fee_estimator_ptr);
+       if (fee_estimator_conv.free == LDKFeeEstimator_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKFeeEstimator_JCalls_cloned(&fee_estimator_conv);
+       }
        void* logger_ptr = (void*)(((uintptr_t)logger) & ~1);
        CHECK_ACCESS(logger_ptr);
        LDKLogger logger_conv = *(LDKLogger*)(logger_ptr);
+       if (logger_conv.free == LDKLogger_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKLogger_JCalls_cloned(&logger_conv);
+       }
        LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32TxOutZZZZ ret_var = ChannelMonitor_best_block_updated(&this_arg_conv, header_ref, height, broadcaster_conv, fee_estimator_conv, logger_conv);
        uint32_tArray ret_arr = NULL;
        ret_arr = init_uint32_tArray(ret_var.datalen, __LINE__);
@@ -22537,8 +22827,8 @@ int16_t  __attribute__((export_name("TS_OutPoint_get_index"))) TS_OutPoint_get_i
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int16_t ret_val = OutPoint_get_index(&this_ptr_conv);
-       return ret_val;
+       int16_t ret_conv = OutPoint_get_index(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_OutPoint_set_index"))) TS_OutPoint_set_index(uint32_t this_ptr, int16_t val) {
@@ -22582,8 +22872,8 @@ uint32_t  __attribute__((export_name("TS_OutPoint_clone_ptr"))) TS_OutPoint_clon
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = OutPoint_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = OutPoint_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_OutPoint_clone"))) TS_OutPoint_clone(uint32_t orig) {
@@ -22612,8 +22902,8 @@ jboolean  __attribute__((export_name("TS_OutPoint_eq"))) TS_OutPoint_eq(uint32_t
        b_conv.inner = (void*)(b & (~1));
        b_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv);
-       jboolean ret_val = OutPoint_eq(&a_conv, &b_conv);
-       return ret_val;
+       jboolean ret_conv = OutPoint_eq(&a_conv, &b_conv);
+       return ret_conv;
 }
 
 int64_t  __attribute__((export_name("TS_OutPoint_hash"))) TS_OutPoint_hash(uint32_t o) {
@@ -22621,8 +22911,8 @@ int64_t  __attribute__((export_name("TS_OutPoint_hash"))) TS_OutPoint_hash(uint3
        o_conv.inner = (void*)(o & (~1));
        o_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv);
-       int64_t ret_val = OutPoint_hash(&o_conv);
-       return ret_val;
+       int64_t ret_conv = OutPoint_hash(&o_conv);
+       return ret_conv;
 }
 
 int8_tArray  __attribute__((export_name("TS_OutPoint_to_channel_id"))) TS_OutPoint_to_channel_id(uint32_t this_arg) {
@@ -22720,8 +23010,8 @@ int16_t  __attribute__((export_name("TS_DelayedPaymentOutputDescriptor_get_to_se
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int16_t ret_val = DelayedPaymentOutputDescriptor_get_to_self_delay(&this_ptr_conv);
-       return ret_val;
+       int16_t ret_conv = DelayedPaymentOutputDescriptor_get_to_self_delay(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_DelayedPaymentOutputDescriptor_set_to_self_delay"))) TS_DelayedPaymentOutputDescriptor_set_to_self_delay(uint32_t this_ptr, int16_t val) {
@@ -22791,8 +23081,8 @@ int64_t  __attribute__((export_name("TS_DelayedPaymentOutputDescriptor_get_chann
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = DelayedPaymentOutputDescriptor_get_channel_value_satoshis(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = DelayedPaymentOutputDescriptor_get_channel_value_satoshis(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_DelayedPaymentOutputDescriptor_set_channel_value_satoshis"))) TS_DelayedPaymentOutputDescriptor_set_channel_value_satoshis(uint32_t this_ptr, int64_t val) {
@@ -22851,8 +23141,8 @@ uint32_t  __attribute__((export_name("TS_DelayedPaymentOutputDescriptor_clone_pt
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = DelayedPaymentOutputDescriptor_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = DelayedPaymentOutputDescriptor_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_DelayedPaymentOutputDescriptor_clone"))) TS_DelayedPaymentOutputDescriptor_clone(uint32_t orig) {
@@ -22969,8 +23259,8 @@ int64_t  __attribute__((export_name("TS_StaticPaymentOutputDescriptor_get_channe
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = StaticPaymentOutputDescriptor_get_channel_value_satoshis(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = StaticPaymentOutputDescriptor_get_channel_value_satoshis(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_StaticPaymentOutputDescriptor_set_channel_value_satoshis"))) TS_StaticPaymentOutputDescriptor_set_channel_value_satoshis(uint32_t this_ptr, int64_t val) {
@@ -23023,8 +23313,8 @@ uint32_t  __attribute__((export_name("TS_StaticPaymentOutputDescriptor_clone_ptr
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = StaticPaymentOutputDescriptor_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = StaticPaymentOutputDescriptor_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_StaticPaymentOutputDescriptor_clone"))) TS_StaticPaymentOutputDescriptor_clone(uint32_t orig) {
@@ -23082,8 +23372,8 @@ uint32_t ret_ref = (uintptr_t)ret_copy;
 }
 uint32_t  __attribute__((export_name("TS_SpendableOutputDescriptor_clone_ptr"))) TS_SpendableOutputDescriptor_clone_ptr(uint32_t arg) {
        LDKSpendableOutputDescriptor* arg_conv = (LDKSpendableOutputDescriptor*)arg;
-       uint32_t ret_val = SpendableOutputDescriptor_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = SpendableOutputDescriptor_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_SpendableOutputDescriptor_clone"))) TS_SpendableOutputDescriptor_clone(uint32_t orig) {
@@ -23170,8 +23460,8 @@ uint32_t  __attribute__((export_name("TS_Sign_clone_ptr"))) TS_Sign_clone_ptr(ui
        void* arg_ptr = (void*)(((uintptr_t)arg) & ~1);
        if (!(arg & 1)) { CHECK_ACCESS(arg_ptr); }
        LDKSign* arg_conv = (LDKSign*)arg_ptr;
-       uint32_t ret_val = Sign_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = Sign_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_Sign_clone"))) TS_Sign_clone(uint32_t orig) {
@@ -23368,8 +23658,8 @@ uint32_t  __attribute__((export_name("TS_InMemorySigner_clone_ptr"))) TS_InMemor
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = InMemorySigner_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = InMemorySigner_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_InMemorySigner_clone"))) TS_InMemorySigner_clone(uint32_t orig) {
@@ -23448,8 +23738,8 @@ int16_t  __attribute__((export_name("TS_InMemorySigner_counterparty_selected_con
        this_arg_conv.inner = (void*)(this_arg & (~1));
        this_arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv);
-       int16_t ret_val = InMemorySigner_counterparty_selected_contest_delay(&this_arg_conv);
-       return ret_val;
+       int16_t ret_conv = InMemorySigner_counterparty_selected_contest_delay(&this_arg_conv);
+       return ret_conv;
 }
 
 int16_t  __attribute__((export_name("TS_InMemorySigner_holder_selected_contest_delay"))) TS_InMemorySigner_holder_selected_contest_delay(uint32_t this_arg) {
@@ -23457,8 +23747,8 @@ int16_t  __attribute__((export_name("TS_InMemorySigner_holder_selected_contest_d
        this_arg_conv.inner = (void*)(this_arg & (~1));
        this_arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv);
-       int16_t ret_val = InMemorySigner_holder_selected_contest_delay(&this_arg_conv);
-       return ret_val;
+       int16_t ret_conv = InMemorySigner_holder_selected_contest_delay(&this_arg_conv);
+       return ret_conv;
 }
 
 jboolean  __attribute__((export_name("TS_InMemorySigner_is_outbound"))) TS_InMemorySigner_is_outbound(uint32_t this_arg) {
@@ -23466,8 +23756,8 @@ jboolean  __attribute__((export_name("TS_InMemorySigner_is_outbound"))) TS_InMem
        this_arg_conv.inner = (void*)(this_arg & (~1));
        this_arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv);
-       jboolean ret_val = InMemorySigner_is_outbound(&this_arg_conv);
-       return ret_val;
+       jboolean ret_conv = InMemorySigner_is_outbound(&this_arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_InMemorySigner_funding_outpoint"))) TS_InMemorySigner_funding_outpoint(uint32_t this_arg) {
@@ -23509,8 +23799,8 @@ jboolean  __attribute__((export_name("TS_InMemorySigner_opt_anchors"))) TS_InMem
        this_arg_conv.inner = (void*)(this_arg & (~1));
        this_arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv);
-       jboolean ret_val = InMemorySigner_opt_anchors(&this_arg_conv);
-       return ret_val;
+       jboolean ret_conv = InMemorySigner_opt_anchors(&this_arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_InMemorySigner_sign_counterparty_payment_input"))) TS_InMemorySigner_sign_counterparty_payment_input(uint32_t this_arg, int8_tArray spend_tx, uint32_t input_idx, uint32_t descriptor) {
@@ -23899,8 +24189,8 @@ uint32_t  __attribute__((export_name("TS_ChainParameters_clone_ptr"))) TS_ChainP
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = ChainParameters_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = ChainParameters_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_ChainParameters_clone"))) TS_ChainParameters_clone(uint32_t orig) {
@@ -23933,8 +24223,8 @@ int32_t  __attribute__((export_name("TS_CounterpartyForwardingInfo_get_fee_base_
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int32_t ret_val = CounterpartyForwardingInfo_get_fee_base_msat(&this_ptr_conv);
-       return ret_val;
+       int32_t ret_conv = CounterpartyForwardingInfo_get_fee_base_msat(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CounterpartyForwardingInfo_set_fee_base_msat"))) TS_CounterpartyForwardingInfo_set_fee_base_msat(uint32_t this_ptr, int32_t val) {
@@ -23950,8 +24240,8 @@ int32_t  __attribute__((export_name("TS_CounterpartyForwardingInfo_get_fee_propo
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int32_t ret_val = CounterpartyForwardingInfo_get_fee_proportional_millionths(&this_ptr_conv);
-       return ret_val;
+       int32_t ret_conv = CounterpartyForwardingInfo_get_fee_proportional_millionths(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CounterpartyForwardingInfo_set_fee_proportional_millionths"))) TS_CounterpartyForwardingInfo_set_fee_proportional_millionths(uint32_t this_ptr, int32_t val) {
@@ -23967,8 +24257,8 @@ int16_t  __attribute__((export_name("TS_CounterpartyForwardingInfo_get_cltv_expi
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int16_t ret_val = CounterpartyForwardingInfo_get_cltv_expiry_delta(&this_ptr_conv);
-       return ret_val;
+       int16_t ret_conv = CounterpartyForwardingInfo_get_cltv_expiry_delta(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CounterpartyForwardingInfo_set_cltv_expiry_delta"))) TS_CounterpartyForwardingInfo_set_cltv_expiry_delta(uint32_t this_ptr, int16_t val) {
@@ -24009,8 +24299,8 @@ uint32_t  __attribute__((export_name("TS_CounterpartyForwardingInfo_clone_ptr"))
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = CounterpartyForwardingInfo_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CounterpartyForwardingInfo_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CounterpartyForwardingInfo_clone"))) TS_CounterpartyForwardingInfo_clone(uint32_t orig) {
@@ -24094,8 +24384,8 @@ int64_t  __attribute__((export_name("TS_ChannelCounterparty_get_unspendable_puni
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = ChannelCounterparty_get_unspendable_punishment_reserve(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = ChannelCounterparty_get_unspendable_punishment_reserve(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ChannelCounterparty_set_unspendable_punishment_reserve"))) TS_ChannelCounterparty_set_unspendable_punishment_reserve(uint32_t this_ptr, int64_t val) {
@@ -24181,8 +24471,8 @@ uint32_t  __attribute__((export_name("TS_ChannelCounterparty_clone_ptr"))) TS_Ch
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = ChannelCounterparty_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = ChannelCounterparty_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_ChannelCounterparty_clone"))) TS_ChannelCounterparty_clone(uint32_t orig) {
@@ -24293,6 +24583,38 @@ void  __attribute__((export_name("TS_ChannelDetails_set_funding_txo"))) TS_Chann
        ChannelDetails_set_funding_txo(&this_ptr_conv, val_conv);
 }
 
+uint32_t  __attribute__((export_name("TS_ChannelDetails_get_channel_type"))) TS_ChannelDetails_get_channel_type(uint32_t this_ptr) {
+       LDKChannelDetails this_ptr_conv;
+       this_ptr_conv.inner = (void*)(this_ptr & (~1));
+       this_ptr_conv.is_owned = false;
+       CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
+       LDKChannelTypeFeatures ret_var = ChannelDetails_get_channel_type(&this_ptr_conv);
+       uint32_t ret_ref = 0;
+       if ((uintptr_t)ret_var.inner > 4096) {
+               CHECK((((uintptr_t)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
+               CHECK((((uintptr_t)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
+       CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var);
+               ret_ref = (uintptr_t)ret_var.inner;
+               if (ret_var.is_owned) {
+                       ret_ref |= 1;
+               }
+       }
+       return ret_ref;
+}
+
+void  __attribute__((export_name("TS_ChannelDetails_set_channel_type"))) TS_ChannelDetails_set_channel_type(uint32_t this_ptr, uint32_t val) {
+       LDKChannelDetails this_ptr_conv;
+       this_ptr_conv.inner = (void*)(this_ptr & (~1));
+       this_ptr_conv.is_owned = false;
+       CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
+       LDKChannelTypeFeatures val_conv;
+       val_conv.inner = (void*)(val & (~1));
+       val_conv.is_owned = (val & 1) || (val == 0);
+       CHECK_INNER_FIELD_ACCESS_OR_NULL(val_conv);
+       val_conv = ChannelTypeFeatures_clone(&val_conv);
+       ChannelDetails_set_channel_type(&this_ptr_conv, val_conv);
+}
+
 uint32_t  __attribute__((export_name("TS_ChannelDetails_get_short_channel_id"))) TS_ChannelDetails_get_short_channel_id(uint32_t this_ptr) {
        LDKChannelDetails this_ptr_conv;
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
@@ -24316,13 +24638,36 @@ void  __attribute__((export_name("TS_ChannelDetails_set_short_channel_id"))) TS_
        ChannelDetails_set_short_channel_id(&this_ptr_conv, val_conv);
 }
 
+uint32_t  __attribute__((export_name("TS_ChannelDetails_get_inbound_scid_alias"))) TS_ChannelDetails_get_inbound_scid_alias(uint32_t this_ptr) {
+       LDKChannelDetails this_ptr_conv;
+       this_ptr_conv.inner = (void*)(this_ptr & (~1));
+       this_ptr_conv.is_owned = false;
+       CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
+       LDKCOption_u64Z *ret_copy = MALLOC(sizeof(LDKCOption_u64Z), "LDKCOption_u64Z");
+       *ret_copy = ChannelDetails_get_inbound_scid_alias(&this_ptr_conv);
+       uint32_t ret_ref = (uintptr_t)ret_copy;
+       return ret_ref;
+}
+
+void  __attribute__((export_name("TS_ChannelDetails_set_inbound_scid_alias"))) TS_ChannelDetails_set_inbound_scid_alias(uint32_t this_ptr, uint32_t val) {
+       LDKChannelDetails this_ptr_conv;
+       this_ptr_conv.inner = (void*)(this_ptr & (~1));
+       this_ptr_conv.is_owned = false;
+       CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
+       void* val_ptr = (void*)(((uintptr_t)val) & ~1);
+       CHECK_ACCESS(val_ptr);
+       LDKCOption_u64Z val_conv = *(LDKCOption_u64Z*)(val_ptr);
+       val_conv = COption_u64Z_clone((LDKCOption_u64Z*)(((uintptr_t)val) & ~1));
+       ChannelDetails_set_inbound_scid_alias(&this_ptr_conv, val_conv);
+}
+
 int64_t  __attribute__((export_name("TS_ChannelDetails_get_channel_value_satoshis"))) TS_ChannelDetails_get_channel_value_satoshis(uint32_t this_ptr) {
        LDKChannelDetails this_ptr_conv;
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = ChannelDetails_get_channel_value_satoshis(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = ChannelDetails_get_channel_value_satoshis(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ChannelDetails_set_channel_value_satoshis"))) TS_ChannelDetails_set_channel_value_satoshis(uint32_t this_ptr, int64_t val) {
@@ -24361,8 +24706,8 @@ int64_t  __attribute__((export_name("TS_ChannelDetails_get_user_channel_id"))) T
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = ChannelDetails_get_user_channel_id(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = ChannelDetails_get_user_channel_id(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ChannelDetails_set_user_channel_id"))) TS_ChannelDetails_set_user_channel_id(uint32_t this_ptr, int64_t val) {
@@ -24378,8 +24723,8 @@ int64_t  __attribute__((export_name("TS_ChannelDetails_get_balance_msat"))) TS_C
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = ChannelDetails_get_balance_msat(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = ChannelDetails_get_balance_msat(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ChannelDetails_set_balance_msat"))) TS_ChannelDetails_set_balance_msat(uint32_t this_ptr, int64_t val) {
@@ -24395,8 +24740,8 @@ int64_t  __attribute__((export_name("TS_ChannelDetails_get_outbound_capacity_msa
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = ChannelDetails_get_outbound_capacity_msat(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = ChannelDetails_get_outbound_capacity_msat(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ChannelDetails_set_outbound_capacity_msat"))) TS_ChannelDetails_set_outbound_capacity_msat(uint32_t this_ptr, int64_t val) {
@@ -24412,8 +24757,8 @@ int64_t  __attribute__((export_name("TS_ChannelDetails_get_inbound_capacity_msat
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = ChannelDetails_get_inbound_capacity_msat(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = ChannelDetails_get_inbound_capacity_msat(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ChannelDetails_set_inbound_capacity_msat"))) TS_ChannelDetails_set_inbound_capacity_msat(uint32_t this_ptr, int64_t val) {
@@ -24475,8 +24820,8 @@ jboolean  __attribute__((export_name("TS_ChannelDetails_get_is_outbound"))) TS_C
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       jboolean ret_val = ChannelDetails_get_is_outbound(&this_ptr_conv);
-       return ret_val;
+       jboolean ret_conv = ChannelDetails_get_is_outbound(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ChannelDetails_set_is_outbound"))) TS_ChannelDetails_set_is_outbound(uint32_t this_ptr, jboolean val) {
@@ -24492,8 +24837,8 @@ jboolean  __attribute__((export_name("TS_ChannelDetails_get_is_funding_locked"))
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       jboolean ret_val = ChannelDetails_get_is_funding_locked(&this_ptr_conv);
-       return ret_val;
+       jboolean ret_conv = ChannelDetails_get_is_funding_locked(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ChannelDetails_set_is_funding_locked"))) TS_ChannelDetails_set_is_funding_locked(uint32_t this_ptr, jboolean val) {
@@ -24509,8 +24854,8 @@ jboolean  __attribute__((export_name("TS_ChannelDetails_get_is_usable"))) TS_Cha
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       jboolean ret_val = ChannelDetails_get_is_usable(&this_ptr_conv);
-       return ret_val;
+       jboolean ret_conv = ChannelDetails_get_is_usable(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ChannelDetails_set_is_usable"))) TS_ChannelDetails_set_is_usable(uint32_t this_ptr, jboolean val) {
@@ -24526,8 +24871,8 @@ jboolean  __attribute__((export_name("TS_ChannelDetails_get_is_public"))) TS_Cha
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       jboolean ret_val = ChannelDetails_get_is_public(&this_ptr_conv);
-       return ret_val;
+       jboolean ret_conv = ChannelDetails_get_is_public(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ChannelDetails_set_is_public"))) TS_ChannelDetails_set_is_public(uint32_t this_ptr, jboolean val) {
@@ -24538,7 +24883,7 @@ void  __attribute__((export_name("TS_ChannelDetails_set_is_public"))) TS_Channel
        ChannelDetails_set_is_public(&this_ptr_conv, val);
 }
 
-uint32_t  __attribute__((export_name("TS_ChannelDetails_new"))) TS_ChannelDetails_new(int8_tArray channel_id_arg, uint32_t counterparty_arg, uint32_t funding_txo_arg, uint32_t short_channel_id_arg, int64_t channel_value_satoshis_arg, uint32_t unspendable_punishment_reserve_arg, int64_t user_channel_id_arg, int64_t balance_msat_arg, int64_t outbound_capacity_msat_arg, int64_t inbound_capacity_msat_arg, uint32_t confirmations_required_arg, uint32_t force_close_spend_delay_arg, jboolean is_outbound_arg, jboolean is_funding_locked_arg, jboolean is_usable_arg, jboolean is_public_arg) {
+uint32_t  __attribute__((export_name("TS_ChannelDetails_new"))) TS_ChannelDetails_new(int8_tArray channel_id_arg, uint32_t counterparty_arg, uint32_t funding_txo_arg, uint32_t channel_type_arg, uint32_t short_channel_id_arg, uint32_t inbound_scid_alias_arg, int64_t channel_value_satoshis_arg, uint32_t unspendable_punishment_reserve_arg, int64_t user_channel_id_arg, int64_t balance_msat_arg, int64_t outbound_capacity_msat_arg, int64_t inbound_capacity_msat_arg, uint32_t confirmations_required_arg, uint32_t force_close_spend_delay_arg, jboolean is_outbound_arg, jboolean is_funding_locked_arg, jboolean is_usable_arg, jboolean is_public_arg) {
        LDKThirtyTwoBytes channel_id_arg_ref;
        CHECK(channel_id_arg->arr_len == 32);
        memcpy(channel_id_arg_ref.data, channel_id_arg->elems, 32); FREE(channel_id_arg);
@@ -24552,10 +24897,19 @@ uint32_t  __attribute__((export_name("TS_ChannelDetails_new"))) TS_ChannelDetail
        funding_txo_arg_conv.is_owned = (funding_txo_arg & 1) || (funding_txo_arg == 0);
        CHECK_INNER_FIELD_ACCESS_OR_NULL(funding_txo_arg_conv);
        funding_txo_arg_conv = OutPoint_clone(&funding_txo_arg_conv);
+       LDKChannelTypeFeatures channel_type_arg_conv;
+       channel_type_arg_conv.inner = (void*)(channel_type_arg & (~1));
+       channel_type_arg_conv.is_owned = (channel_type_arg & 1) || (channel_type_arg == 0);
+       CHECK_INNER_FIELD_ACCESS_OR_NULL(channel_type_arg_conv);
+       channel_type_arg_conv = ChannelTypeFeatures_clone(&channel_type_arg_conv);
        void* short_channel_id_arg_ptr = (void*)(((uintptr_t)short_channel_id_arg) & ~1);
        CHECK_ACCESS(short_channel_id_arg_ptr);
        LDKCOption_u64Z short_channel_id_arg_conv = *(LDKCOption_u64Z*)(short_channel_id_arg_ptr);
        short_channel_id_arg_conv = COption_u64Z_clone((LDKCOption_u64Z*)(((uintptr_t)short_channel_id_arg) & ~1));
+       void* inbound_scid_alias_arg_ptr = (void*)(((uintptr_t)inbound_scid_alias_arg) & ~1);
+       CHECK_ACCESS(inbound_scid_alias_arg_ptr);
+       LDKCOption_u64Z inbound_scid_alias_arg_conv = *(LDKCOption_u64Z*)(inbound_scid_alias_arg_ptr);
+       inbound_scid_alias_arg_conv = COption_u64Z_clone((LDKCOption_u64Z*)(((uintptr_t)inbound_scid_alias_arg) & ~1));
        void* unspendable_punishment_reserve_arg_ptr = (void*)(((uintptr_t)unspendable_punishment_reserve_arg) & ~1);
        CHECK_ACCESS(unspendable_punishment_reserve_arg_ptr);
        LDKCOption_u64Z unspendable_punishment_reserve_arg_conv = *(LDKCOption_u64Z*)(unspendable_punishment_reserve_arg_ptr);
@@ -24567,7 +24921,7 @@ uint32_t  __attribute__((export_name("TS_ChannelDetails_new"))) TS_ChannelDetail
        CHECK_ACCESS(force_close_spend_delay_arg_ptr);
        LDKCOption_u16Z force_close_spend_delay_arg_conv = *(LDKCOption_u16Z*)(force_close_spend_delay_arg_ptr);
        force_close_spend_delay_arg_conv = COption_u16Z_clone((LDKCOption_u16Z*)(((uintptr_t)force_close_spend_delay_arg) & ~1));
-       LDKChannelDetails ret_var = ChannelDetails_new(channel_id_arg_ref, counterparty_arg_conv, funding_txo_arg_conv, short_channel_id_arg_conv, channel_value_satoshis_arg, unspendable_punishment_reserve_arg_conv, user_channel_id_arg, balance_msat_arg, outbound_capacity_msat_arg, inbound_capacity_msat_arg, confirmations_required_arg_conv, force_close_spend_delay_arg_conv, is_outbound_arg, is_funding_locked_arg, is_usable_arg, is_public_arg);
+       LDKChannelDetails ret_var = ChannelDetails_new(channel_id_arg_ref, counterparty_arg_conv, funding_txo_arg_conv, channel_type_arg_conv, short_channel_id_arg_conv, inbound_scid_alias_arg_conv, channel_value_satoshis_arg, unspendable_punishment_reserve_arg_conv, user_channel_id_arg, balance_msat_arg, outbound_capacity_msat_arg, inbound_capacity_msat_arg, confirmations_required_arg_conv, force_close_spend_delay_arg_conv, is_outbound_arg, is_funding_locked_arg, is_usable_arg, is_public_arg);
        uint32_t ret_ref = 0;
        CHECK((((uintptr_t)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
        CHECK((((uintptr_t)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
@@ -24596,8 +24950,8 @@ uint32_t  __attribute__((export_name("TS_ChannelDetails_clone_ptr"))) TS_Channel
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = ChannelDetails_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = ChannelDetails_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_ChannelDetails_clone"))) TS_ChannelDetails_clone(uint32_t orig) {
@@ -24617,6 +24971,17 @@ uint32_t  __attribute__((export_name("TS_ChannelDetails_clone"))) TS_ChannelDeta
        return ret_ref;
 }
 
+uint32_t  __attribute__((export_name("TS_ChannelDetails_get_inbound_payment_scid"))) TS_ChannelDetails_get_inbound_payment_scid(uint32_t this_arg) {
+       LDKChannelDetails this_arg_conv;
+       this_arg_conv.inner = (void*)(this_arg & (~1));
+       this_arg_conv.is_owned = false;
+       CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv);
+       LDKCOption_u64Z *ret_copy = MALLOC(sizeof(LDKCOption_u64Z), "LDKCOption_u64Z");
+       *ret_copy = ChannelDetails_get_inbound_payment_scid(&this_arg_conv);
+       uint32_t ret_ref = (uintptr_t)ret_copy;
+       return ret_ref;
+}
+
 void  __attribute__((export_name("TS_PaymentSendFailure_free"))) TS_PaymentSendFailure_free(uint32_t this_ptr) {
        if ((this_ptr & 1) != 0) return;
        void* this_ptr_ptr = (void*)(((uintptr_t)this_ptr) & ~1);
@@ -24634,8 +24999,8 @@ uint32_t ret_ref = (uintptr_t)ret_copy;
 }
 uint32_t  __attribute__((export_name("TS_PaymentSendFailure_clone_ptr"))) TS_PaymentSendFailure_clone_ptr(uint32_t arg) {
        LDKPaymentSendFailure* arg_conv = (LDKPaymentSendFailure*)arg;
-       uint32_t ret_val = PaymentSendFailure_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = PaymentSendFailure_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_PaymentSendFailure_clone"))) TS_PaymentSendFailure_clone(uint32_t orig) {
@@ -24793,8 +25158,8 @@ int64_t  __attribute__((export_name("TS_PhantomRouteHints_get_phantom_scid"))) T
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = PhantomRouteHints_get_phantom_scid(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = PhantomRouteHints_get_phantom_scid(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_PhantomRouteHints_set_phantom_scid"))) TS_PhantomRouteHints_set_phantom_scid(uint32_t this_ptr, int64_t val) {
@@ -24875,8 +25240,8 @@ uint32_t  __attribute__((export_name("TS_PhantomRouteHints_clone_ptr"))) TS_Phan
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = PhantomRouteHints_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = PhantomRouteHints_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_PhantomRouteHints_clone"))) TS_PhantomRouteHints_clone(uint32_t orig) {
@@ -24900,18 +25265,38 @@ uint32_t  __attribute__((export_name("TS_ChannelManager_new"))) TS_ChannelManage
        void* fee_est_ptr = (void*)(((uintptr_t)fee_est) & ~1);
        CHECK_ACCESS(fee_est_ptr);
        LDKFeeEstimator fee_est_conv = *(LDKFeeEstimator*)(fee_est_ptr);
+       if (fee_est_conv.free == LDKFeeEstimator_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKFeeEstimator_JCalls_cloned(&fee_est_conv);
+       }
        void* chain_monitor_ptr = (void*)(((uintptr_t)chain_monitor) & ~1);
        CHECK_ACCESS(chain_monitor_ptr);
        LDKWatch chain_monitor_conv = *(LDKWatch*)(chain_monitor_ptr);
+       if (chain_monitor_conv.free == LDKWatch_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKWatch_JCalls_cloned(&chain_monitor_conv);
+       }
        void* tx_broadcaster_ptr = (void*)(((uintptr_t)tx_broadcaster) & ~1);
        CHECK_ACCESS(tx_broadcaster_ptr);
        LDKBroadcasterInterface tx_broadcaster_conv = *(LDKBroadcasterInterface*)(tx_broadcaster_ptr);
+       if (tx_broadcaster_conv.free == LDKBroadcasterInterface_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKBroadcasterInterface_JCalls_cloned(&tx_broadcaster_conv);
+       }
        void* logger_ptr = (void*)(((uintptr_t)logger) & ~1);
        CHECK_ACCESS(logger_ptr);
        LDKLogger logger_conv = *(LDKLogger*)(logger_ptr);
+       if (logger_conv.free == LDKLogger_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKLogger_JCalls_cloned(&logger_conv);
+       }
        void* keys_manager_ptr = (void*)(((uintptr_t)keys_manager) & ~1);
        CHECK_ACCESS(keys_manager_ptr);
        LDKKeysInterface keys_manager_conv = *(LDKKeysInterface*)(keys_manager_ptr);
+       if (keys_manager_conv.free == LDKKeysInterface_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKKeysInterface_JCalls_cloned(&keys_manager_conv);
+       }
        LDKUserConfig config_conv;
        config_conv.inner = (void*)(config & (~1));
        config_conv.is_owned = (config & 1) || (config == 0);
@@ -25208,8 +25593,8 @@ jboolean  __attribute__((export_name("TS_ChannelManager_fail_htlc_backwards")))
        CHECK(payment_hash->arr_len == 32);
        memcpy(payment_hash_arr, payment_hash->elems, 32); FREE(payment_hash);
        unsigned char (*payment_hash_ref)[32] = &payment_hash_arr;
-       jboolean ret_val = ChannelManager_fail_htlc_backwards(&this_arg_conv, payment_hash_ref);
-       return ret_val;
+       jboolean ret_conv = ChannelManager_fail_htlc_backwards(&this_arg_conv, payment_hash_ref);
+       return ret_conv;
 }
 
 jboolean  __attribute__((export_name("TS_ChannelManager_claim_funds"))) TS_ChannelManager_claim_funds(uint32_t this_arg, int8_tArray payment_preimage) {
@@ -25220,8 +25605,8 @@ jboolean  __attribute__((export_name("TS_ChannelManager_claim_funds"))) TS_Chann
        LDKThirtyTwoBytes payment_preimage_ref;
        CHECK(payment_preimage->arr_len == 32);
        memcpy(payment_preimage_ref.data, payment_preimage->elems, 32); FREE(payment_preimage);
-       jboolean ret_val = ChannelManager_claim_funds(&this_arg_conv, payment_preimage_ref);
-       return ret_val;
+       jboolean ret_conv = ChannelManager_claim_funds(&this_arg_conv, payment_preimage_ref);
+       return ret_conv;
 }
 
 int8_tArray  __attribute__((export_name("TS_ChannelManager_get_our_node_id"))) TS_ChannelManager_get_our_node_id(uint32_t this_arg) {
@@ -25234,7 +25619,7 @@ int8_tArray  __attribute__((export_name("TS_ChannelManager_get_our_node_id"))) T
        return ret_arr;
 }
 
-uint32_t  __attribute__((export_name("TS_ChannelManager_accept_inbound_channel"))) TS_ChannelManager_accept_inbound_channel(uint32_t this_arg, int8_tArray temporary_channel_id) {
+uint32_t  __attribute__((export_name("TS_ChannelManager_accept_inbound_channel"))) TS_ChannelManager_accept_inbound_channel(uint32_t this_arg, int8_tArray temporary_channel_id, int64_t user_channel_id) {
        LDKChannelManager this_arg_conv;
        this_arg_conv.inner = (void*)(this_arg & (~1));
        this_arg_conv.is_owned = false;
@@ -25244,7 +25629,7 @@ uint32_t  __attribute__((export_name("TS_ChannelManager_accept_inbound_channel")
        memcpy(temporary_channel_id_arr, temporary_channel_id->elems, 32); FREE(temporary_channel_id);
        unsigned char (*temporary_channel_id_ref)[32] = &temporary_channel_id_arr;
        LDKCResult_NoneAPIErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_NoneAPIErrorZ), "LDKCResult_NoneAPIErrorZ");
-       *ret_conv = ChannelManager_accept_inbound_channel(&this_arg_conv, temporary_channel_id_ref);
+       *ret_conv = ChannelManager_accept_inbound_channel(&this_arg_conv, temporary_channel_id_ref, user_channel_id);
        return (uint32_t)ret_conv;
 }
 
@@ -25331,8 +25716,8 @@ int64_t  __attribute__((export_name("TS_ChannelManager_get_phantom_scid"))) TS_C
        this_arg_conv.inner = (void*)(this_arg & (~1));
        this_arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv);
-       int64_t ret_val = ChannelManager_get_phantom_scid(&this_arg_conv);
-       return ret_val;
+       int64_t ret_conv = ChannelManager_get_phantom_scid(&this_arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_ChannelManager_get_phantom_route_hints"))) TS_ChannelManager_get_phantom_route_hints(uint32_t this_arg) {
@@ -25549,6 +25934,10 @@ void  __attribute__((export_name("TS_ChannelManagerReadArgs_set_keys_manager")))
        void* val_ptr = (void*)(((uintptr_t)val) & ~1);
        CHECK_ACCESS(val_ptr);
        LDKKeysInterface val_conv = *(LDKKeysInterface*)(val_ptr);
+       if (val_conv.free == LDKKeysInterface_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKKeysInterface_JCalls_cloned(&val_conv);
+       }
        ChannelManagerReadArgs_set_keys_manager(&this_ptr_conv, val_conv);
 }
 
@@ -25570,6 +25959,10 @@ void  __attribute__((export_name("TS_ChannelManagerReadArgs_set_fee_estimator"))
        void* val_ptr = (void*)(((uintptr_t)val) & ~1);
        CHECK_ACCESS(val_ptr);
        LDKFeeEstimator val_conv = *(LDKFeeEstimator*)(val_ptr);
+       if (val_conv.free == LDKFeeEstimator_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKFeeEstimator_JCalls_cloned(&val_conv);
+       }
        ChannelManagerReadArgs_set_fee_estimator(&this_ptr_conv, val_conv);
 }
 
@@ -25591,6 +25984,10 @@ void  __attribute__((export_name("TS_ChannelManagerReadArgs_set_chain_monitor"))
        void* val_ptr = (void*)(((uintptr_t)val) & ~1);
        CHECK_ACCESS(val_ptr);
        LDKWatch val_conv = *(LDKWatch*)(val_ptr);
+       if (val_conv.free == LDKWatch_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKWatch_JCalls_cloned(&val_conv);
+       }
        ChannelManagerReadArgs_set_chain_monitor(&this_ptr_conv, val_conv);
 }
 
@@ -25612,6 +26009,10 @@ void  __attribute__((export_name("TS_ChannelManagerReadArgs_set_tx_broadcaster")
        void* val_ptr = (void*)(((uintptr_t)val) & ~1);
        CHECK_ACCESS(val_ptr);
        LDKBroadcasterInterface val_conv = *(LDKBroadcasterInterface*)(val_ptr);
+       if (val_conv.free == LDKBroadcasterInterface_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKBroadcasterInterface_JCalls_cloned(&val_conv);
+       }
        ChannelManagerReadArgs_set_tx_broadcaster(&this_ptr_conv, val_conv);
 }
 
@@ -25633,6 +26034,10 @@ void  __attribute__((export_name("TS_ChannelManagerReadArgs_set_logger"))) TS_Ch
        void* val_ptr = (void*)(((uintptr_t)val) & ~1);
        CHECK_ACCESS(val_ptr);
        LDKLogger val_conv = *(LDKLogger*)(val_ptr);
+       if (val_conv.free == LDKLogger_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKLogger_JCalls_cloned(&val_conv);
+       }
        ChannelManagerReadArgs_set_logger(&this_ptr_conv, val_conv);
 }
 
@@ -25670,18 +26075,38 @@ uint32_t  __attribute__((export_name("TS_ChannelManagerReadArgs_new"))) TS_Chann
        void* keys_manager_ptr = (void*)(((uintptr_t)keys_manager) & ~1);
        CHECK_ACCESS(keys_manager_ptr);
        LDKKeysInterface keys_manager_conv = *(LDKKeysInterface*)(keys_manager_ptr);
+       if (keys_manager_conv.free == LDKKeysInterface_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKKeysInterface_JCalls_cloned(&keys_manager_conv);
+       }
        void* fee_estimator_ptr = (void*)(((uintptr_t)fee_estimator) & ~1);
        CHECK_ACCESS(fee_estimator_ptr);
        LDKFeeEstimator fee_estimator_conv = *(LDKFeeEstimator*)(fee_estimator_ptr);
+       if (fee_estimator_conv.free == LDKFeeEstimator_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKFeeEstimator_JCalls_cloned(&fee_estimator_conv);
+       }
        void* chain_monitor_ptr = (void*)(((uintptr_t)chain_monitor) & ~1);
        CHECK_ACCESS(chain_monitor_ptr);
        LDKWatch chain_monitor_conv = *(LDKWatch*)(chain_monitor_ptr);
+       if (chain_monitor_conv.free == LDKWatch_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKWatch_JCalls_cloned(&chain_monitor_conv);
+       }
        void* tx_broadcaster_ptr = (void*)(((uintptr_t)tx_broadcaster) & ~1);
        CHECK_ACCESS(tx_broadcaster_ptr);
        LDKBroadcasterInterface tx_broadcaster_conv = *(LDKBroadcasterInterface*)(tx_broadcaster_ptr);
+       if (tx_broadcaster_conv.free == LDKBroadcasterInterface_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKBroadcasterInterface_JCalls_cloned(&tx_broadcaster_conv);
+       }
        void* logger_ptr = (void*)(((uintptr_t)logger) & ~1);
        CHECK_ACCESS(logger_ptr);
        LDKLogger logger_conv = *(LDKLogger*)(logger_ptr);
+       if (logger_conv.free == LDKLogger_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKLogger_JCalls_cloned(&logger_conv);
+       }
        LDKUserConfig default_config_conv;
        default_config_conv.inner = (void*)(default_config & (~1));
        default_config_conv.is_owned = (default_config & 1) || (default_config == 0);
@@ -25753,8 +26178,8 @@ uint32_t  __attribute__((export_name("TS_DecodeError_clone_ptr"))) TS_DecodeErro
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = DecodeError_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = DecodeError_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_DecodeError_clone"))) TS_DecodeError_clone(uint32_t orig) {
@@ -25812,13 +26237,39 @@ void  __attribute__((export_name("TS_Init_set_features"))) TS_Init_set_features(
        Init_set_features(&this_ptr_conv, val_conv);
 }
 
-uint32_t  __attribute__((export_name("TS_Init_new"))) TS_Init_new(uint32_t features_arg) {
+uint32_t  __attribute__((export_name("TS_Init_get_remote_network_address"))) TS_Init_get_remote_network_address(uint32_t this_ptr) {
+       LDKInit this_ptr_conv;
+       this_ptr_conv.inner = (void*)(this_ptr & (~1));
+       this_ptr_conv.is_owned = false;
+       CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
+       LDKCOption_NetAddressZ *ret_copy = MALLOC(sizeof(LDKCOption_NetAddressZ), "LDKCOption_NetAddressZ");
+       *ret_copy = Init_get_remote_network_address(&this_ptr_conv);
+       uint32_t ret_ref = (uintptr_t)ret_copy;
+       return ret_ref;
+}
+
+void  __attribute__((export_name("TS_Init_set_remote_network_address"))) TS_Init_set_remote_network_address(uint32_t this_ptr, uint32_t val) {
+       LDKInit this_ptr_conv;
+       this_ptr_conv.inner = (void*)(this_ptr & (~1));
+       this_ptr_conv.is_owned = false;
+       CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
+       void* val_ptr = (void*)(((uintptr_t)val) & ~1);
+       CHECK_ACCESS(val_ptr);
+       LDKCOption_NetAddressZ val_conv = *(LDKCOption_NetAddressZ*)(val_ptr);
+       val_conv = COption_NetAddressZ_clone((LDKCOption_NetAddressZ*)(((uintptr_t)val) & ~1));
+       Init_set_remote_network_address(&this_ptr_conv, val_conv);
+}
+
+uint32_t  __attribute__((export_name("TS_Init_new"))) TS_Init_new(uint32_t features_arg, uint32_t remote_network_address_arg) {
        LDKInitFeatures features_arg_conv;
        features_arg_conv.inner = (void*)(features_arg & (~1));
        features_arg_conv.is_owned = (features_arg & 1) || (features_arg == 0);
        CHECK_INNER_FIELD_ACCESS_OR_NULL(features_arg_conv);
        features_arg_conv = InitFeatures_clone(&features_arg_conv);
-       LDKInit ret_var = Init_new(features_arg_conv);
+       void* remote_network_address_arg_ptr = (void*)(((uintptr_t)remote_network_address_arg) & ~1);
+       CHECK_ACCESS(remote_network_address_arg_ptr);
+       LDKCOption_NetAddressZ remote_network_address_arg_conv = *(LDKCOption_NetAddressZ*)(remote_network_address_arg_ptr);
+       LDKInit ret_var = Init_new(features_arg_conv, remote_network_address_arg_conv);
        uint32_t ret_ref = 0;
        CHECK((((uintptr_t)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
        CHECK((((uintptr_t)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
@@ -25847,8 +26298,8 @@ uint32_t  __attribute__((export_name("TS_Init_clone_ptr"))) TS_Init_clone_ptr(ui
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = Init_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = Init_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_Init_clone"))) TS_Init_clone(uint32_t orig) {
@@ -25951,8 +26402,8 @@ uint32_t  __attribute__((export_name("TS_ErrorMessage_clone_ptr"))) TS_ErrorMess
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = ErrorMessage_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = ErrorMessage_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_ErrorMessage_clone"))) TS_ErrorMessage_clone(uint32_t orig) {
@@ -26055,8 +26506,8 @@ uint32_t  __attribute__((export_name("TS_WarningMessage_clone_ptr"))) TS_Warning
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = WarningMessage_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = WarningMessage_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_WarningMessage_clone"))) TS_WarningMessage_clone(uint32_t orig) {
@@ -26089,8 +26540,8 @@ int16_t  __attribute__((export_name("TS_Ping_get_ponglen"))) TS_Ping_get_ponglen
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int16_t ret_val = Ping_get_ponglen(&this_ptr_conv);
-       return ret_val;
+       int16_t ret_conv = Ping_get_ponglen(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_Ping_set_ponglen"))) TS_Ping_set_ponglen(uint32_t this_ptr, int16_t val) {
@@ -26106,8 +26557,8 @@ int16_t  __attribute__((export_name("TS_Ping_get_byteslen"))) TS_Ping_get_bytesl
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int16_t ret_val = Ping_get_byteslen(&this_ptr_conv);
-       return ret_val;
+       int16_t ret_conv = Ping_get_byteslen(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_Ping_set_byteslen"))) TS_Ping_set_byteslen(uint32_t this_ptr, int16_t val) {
@@ -26148,8 +26599,8 @@ uint32_t  __attribute__((export_name("TS_Ping_clone_ptr"))) TS_Ping_clone_ptr(ui
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = Ping_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = Ping_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_Ping_clone"))) TS_Ping_clone(uint32_t orig) {
@@ -26182,8 +26633,8 @@ int16_t  __attribute__((export_name("TS_Pong_get_byteslen"))) TS_Pong_get_bytesl
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int16_t ret_val = Pong_get_byteslen(&this_ptr_conv);
-       return ret_val;
+       int16_t ret_conv = Pong_get_byteslen(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_Pong_set_byteslen"))) TS_Pong_set_byteslen(uint32_t this_ptr, int16_t val) {
@@ -26224,8 +26675,8 @@ uint32_t  __attribute__((export_name("TS_Pong_clone_ptr"))) TS_Pong_clone_ptr(ui
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = Pong_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = Pong_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_Pong_clone"))) TS_Pong_clone(uint32_t orig) {
@@ -26300,8 +26751,8 @@ int64_t  __attribute__((export_name("TS_OpenChannel_get_funding_satoshis"))) TS_
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = OpenChannel_get_funding_satoshis(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = OpenChannel_get_funding_satoshis(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_OpenChannel_set_funding_satoshis"))) TS_OpenChannel_set_funding_satoshis(uint32_t this_ptr, int64_t val) {
@@ -26317,8 +26768,8 @@ int64_t  __attribute__((export_name("TS_OpenChannel_get_push_msat"))) TS_OpenCha
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = OpenChannel_get_push_msat(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = OpenChannel_get_push_msat(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_OpenChannel_set_push_msat"))) TS_OpenChannel_set_push_msat(uint32_t this_ptr, int64_t val) {
@@ -26334,8 +26785,8 @@ int64_t  __attribute__((export_name("TS_OpenChannel_get_dust_limit_satoshis")))
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = OpenChannel_get_dust_limit_satoshis(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = OpenChannel_get_dust_limit_satoshis(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_OpenChannel_set_dust_limit_satoshis"))) TS_OpenChannel_set_dust_limit_satoshis(uint32_t this_ptr, int64_t val) {
@@ -26351,8 +26802,8 @@ int64_t  __attribute__((export_name("TS_OpenChannel_get_max_htlc_value_in_flight
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = OpenChannel_get_max_htlc_value_in_flight_msat(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = OpenChannel_get_max_htlc_value_in_flight_msat(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_OpenChannel_set_max_htlc_value_in_flight_msat"))) TS_OpenChannel_set_max_htlc_value_in_flight_msat(uint32_t this_ptr, int64_t val) {
@@ -26368,8 +26819,8 @@ int64_t  __attribute__((export_name("TS_OpenChannel_get_channel_reserve_satoshis
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = OpenChannel_get_channel_reserve_satoshis(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = OpenChannel_get_channel_reserve_satoshis(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_OpenChannel_set_channel_reserve_satoshis"))) TS_OpenChannel_set_channel_reserve_satoshis(uint32_t this_ptr, int64_t val) {
@@ -26385,8 +26836,8 @@ int64_t  __attribute__((export_name("TS_OpenChannel_get_htlc_minimum_msat"))) TS
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = OpenChannel_get_htlc_minimum_msat(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = OpenChannel_get_htlc_minimum_msat(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_OpenChannel_set_htlc_minimum_msat"))) TS_OpenChannel_set_htlc_minimum_msat(uint32_t this_ptr, int64_t val) {
@@ -26402,8 +26853,8 @@ int32_t  __attribute__((export_name("TS_OpenChannel_get_feerate_per_kw"))) TS_Op
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int32_t ret_val = OpenChannel_get_feerate_per_kw(&this_ptr_conv);
-       return ret_val;
+       int32_t ret_conv = OpenChannel_get_feerate_per_kw(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_OpenChannel_set_feerate_per_kw"))) TS_OpenChannel_set_feerate_per_kw(uint32_t this_ptr, int32_t val) {
@@ -26419,8 +26870,8 @@ int16_t  __attribute__((export_name("TS_OpenChannel_get_to_self_delay"))) TS_Ope
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int16_t ret_val = OpenChannel_get_to_self_delay(&this_ptr_conv);
-       return ret_val;
+       int16_t ret_conv = OpenChannel_get_to_self_delay(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_OpenChannel_set_to_self_delay"))) TS_OpenChannel_set_to_self_delay(uint32_t this_ptr, int16_t val) {
@@ -26436,8 +26887,8 @@ int16_t  __attribute__((export_name("TS_OpenChannel_get_max_accepted_htlcs"))) T
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int16_t ret_val = OpenChannel_get_max_accepted_htlcs(&this_ptr_conv);
-       return ret_val;
+       int16_t ret_conv = OpenChannel_get_max_accepted_htlcs(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_OpenChannel_set_max_accepted_htlcs"))) TS_OpenChannel_set_max_accepted_htlcs(uint32_t this_ptr, int16_t val) {
@@ -26579,8 +27030,8 @@ int8_t  __attribute__((export_name("TS_OpenChannel_get_channel_flags"))) TS_Open
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int8_t ret_val = OpenChannel_get_channel_flags(&this_ptr_conv);
-       return ret_val;
+       int8_t ret_conv = OpenChannel_get_channel_flags(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_OpenChannel_set_channel_flags"))) TS_OpenChannel_set_channel_flags(uint32_t this_ptr, int8_t val) {
@@ -26640,8 +27091,8 @@ uint32_t  __attribute__((export_name("TS_OpenChannel_clone_ptr"))) TS_OpenChanne
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = OpenChannel_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = OpenChannel_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_OpenChannel_clone"))) TS_OpenChannel_clone(uint32_t orig) {
@@ -26695,8 +27146,8 @@ int64_t  __attribute__((export_name("TS_AcceptChannel_get_dust_limit_satoshis"))
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = AcceptChannel_get_dust_limit_satoshis(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = AcceptChannel_get_dust_limit_satoshis(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_AcceptChannel_set_dust_limit_satoshis"))) TS_AcceptChannel_set_dust_limit_satoshis(uint32_t this_ptr, int64_t val) {
@@ -26712,8 +27163,8 @@ int64_t  __attribute__((export_name("TS_AcceptChannel_get_max_htlc_value_in_flig
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = AcceptChannel_get_max_htlc_value_in_flight_msat(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = AcceptChannel_get_max_htlc_value_in_flight_msat(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_AcceptChannel_set_max_htlc_value_in_flight_msat"))) TS_AcceptChannel_set_max_htlc_value_in_flight_msat(uint32_t this_ptr, int64_t val) {
@@ -26729,8 +27180,8 @@ int64_t  __attribute__((export_name("TS_AcceptChannel_get_channel_reserve_satosh
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = AcceptChannel_get_channel_reserve_satoshis(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = AcceptChannel_get_channel_reserve_satoshis(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_AcceptChannel_set_channel_reserve_satoshis"))) TS_AcceptChannel_set_channel_reserve_satoshis(uint32_t this_ptr, int64_t val) {
@@ -26746,8 +27197,8 @@ int64_t  __attribute__((export_name("TS_AcceptChannel_get_htlc_minimum_msat")))
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = AcceptChannel_get_htlc_minimum_msat(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = AcceptChannel_get_htlc_minimum_msat(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_AcceptChannel_set_htlc_minimum_msat"))) TS_AcceptChannel_set_htlc_minimum_msat(uint32_t this_ptr, int64_t val) {
@@ -26763,8 +27214,8 @@ int32_t  __attribute__((export_name("TS_AcceptChannel_get_minimum_depth"))) TS_A
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int32_t ret_val = AcceptChannel_get_minimum_depth(&this_ptr_conv);
-       return ret_val;
+       int32_t ret_conv = AcceptChannel_get_minimum_depth(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_AcceptChannel_set_minimum_depth"))) TS_AcceptChannel_set_minimum_depth(uint32_t this_ptr, int32_t val) {
@@ -26780,8 +27231,8 @@ int16_t  __attribute__((export_name("TS_AcceptChannel_get_to_self_delay"))) TS_A
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int16_t ret_val = AcceptChannel_get_to_self_delay(&this_ptr_conv);
-       return ret_val;
+       int16_t ret_conv = AcceptChannel_get_to_self_delay(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_AcceptChannel_set_to_self_delay"))) TS_AcceptChannel_set_to_self_delay(uint32_t this_ptr, int16_t val) {
@@ -26797,8 +27248,8 @@ int16_t  __attribute__((export_name("TS_AcceptChannel_get_max_accepted_htlcs")))
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int16_t ret_val = AcceptChannel_get_max_accepted_htlcs(&this_ptr_conv);
-       return ret_val;
+       int16_t ret_conv = AcceptChannel_get_max_accepted_htlcs(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_AcceptChannel_set_max_accepted_htlcs"))) TS_AcceptChannel_set_max_accepted_htlcs(uint32_t this_ptr, int16_t val) {
@@ -26984,8 +27435,8 @@ uint32_t  __attribute__((export_name("TS_AcceptChannel_clone_ptr"))) TS_AcceptCh
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = AcceptChannel_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = AcceptChannel_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_AcceptChannel_clone"))) TS_AcceptChannel_clone(uint32_t orig) {
@@ -27060,8 +27511,8 @@ int16_t  __attribute__((export_name("TS_FundingCreated_get_funding_output_index"
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int16_t ret_val = FundingCreated_get_funding_output_index(&this_ptr_conv);
-       return ret_val;
+       int16_t ret_conv = FundingCreated_get_funding_output_index(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_FundingCreated_set_funding_output_index"))) TS_FundingCreated_set_funding_output_index(uint32_t this_ptr, int16_t val) {
@@ -27132,8 +27583,8 @@ uint32_t  __attribute__((export_name("TS_FundingCreated_clone_ptr"))) TS_Funding
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = FundingCreated_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = FundingCreated_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_FundingCreated_clone"))) TS_FundingCreated_clone(uint32_t orig) {
@@ -27239,8 +27690,8 @@ uint32_t  __attribute__((export_name("TS_FundingSigned_clone_ptr"))) TS_FundingS
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = FundingSigned_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = FundingSigned_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_FundingSigned_clone"))) TS_FundingSigned_clone(uint32_t orig) {
@@ -27310,14 +27761,41 @@ void  __attribute__((export_name("TS_FundingLocked_set_next_per_commitment_point
        FundingLocked_set_next_per_commitment_point(&this_ptr_conv, val_ref);
 }
 
-uint32_t  __attribute__((export_name("TS_FundingLocked_new"))) TS_FundingLocked_new(int8_tArray channel_id_arg, int8_tArray next_per_commitment_point_arg) {
+uint32_t  __attribute__((export_name("TS_FundingLocked_get_short_channel_id_alias"))) TS_FundingLocked_get_short_channel_id_alias(uint32_t this_ptr) {
+       LDKFundingLocked this_ptr_conv;
+       this_ptr_conv.inner = (void*)(this_ptr & (~1));
+       this_ptr_conv.is_owned = false;
+       CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
+       LDKCOption_u64Z *ret_copy = MALLOC(sizeof(LDKCOption_u64Z), "LDKCOption_u64Z");
+       *ret_copy = FundingLocked_get_short_channel_id_alias(&this_ptr_conv);
+       uint32_t ret_ref = (uintptr_t)ret_copy;
+       return ret_ref;
+}
+
+void  __attribute__((export_name("TS_FundingLocked_set_short_channel_id_alias"))) TS_FundingLocked_set_short_channel_id_alias(uint32_t this_ptr, uint32_t val) {
+       LDKFundingLocked this_ptr_conv;
+       this_ptr_conv.inner = (void*)(this_ptr & (~1));
+       this_ptr_conv.is_owned = false;
+       CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
+       void* val_ptr = (void*)(((uintptr_t)val) & ~1);
+       CHECK_ACCESS(val_ptr);
+       LDKCOption_u64Z val_conv = *(LDKCOption_u64Z*)(val_ptr);
+       val_conv = COption_u64Z_clone((LDKCOption_u64Z*)(((uintptr_t)val) & ~1));
+       FundingLocked_set_short_channel_id_alias(&this_ptr_conv, val_conv);
+}
+
+uint32_t  __attribute__((export_name("TS_FundingLocked_new"))) TS_FundingLocked_new(int8_tArray channel_id_arg, int8_tArray next_per_commitment_point_arg, uint32_t short_channel_id_alias_arg) {
        LDKThirtyTwoBytes channel_id_arg_ref;
        CHECK(channel_id_arg->arr_len == 32);
        memcpy(channel_id_arg_ref.data, channel_id_arg->elems, 32); FREE(channel_id_arg);
        LDKPublicKey next_per_commitment_point_arg_ref;
        CHECK(next_per_commitment_point_arg->arr_len == 33);
        memcpy(next_per_commitment_point_arg_ref.compressed_form, next_per_commitment_point_arg->elems, 33); FREE(next_per_commitment_point_arg);
-       LDKFundingLocked ret_var = FundingLocked_new(channel_id_arg_ref, next_per_commitment_point_arg_ref);
+       void* short_channel_id_alias_arg_ptr = (void*)(((uintptr_t)short_channel_id_alias_arg) & ~1);
+       CHECK_ACCESS(short_channel_id_alias_arg_ptr);
+       LDKCOption_u64Z short_channel_id_alias_arg_conv = *(LDKCOption_u64Z*)(short_channel_id_alias_arg_ptr);
+       short_channel_id_alias_arg_conv = COption_u64Z_clone((LDKCOption_u64Z*)(((uintptr_t)short_channel_id_alias_arg) & ~1));
+       LDKFundingLocked ret_var = FundingLocked_new(channel_id_arg_ref, next_per_commitment_point_arg_ref, short_channel_id_alias_arg_conv);
        uint32_t ret_ref = 0;
        CHECK((((uintptr_t)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
        CHECK((((uintptr_t)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
@@ -27346,8 +27824,8 @@ uint32_t  __attribute__((export_name("TS_FundingLocked_clone_ptr"))) TS_FundingL
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = FundingLocked_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = FundingLocked_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_FundingLocked_clone"))) TS_FundingLocked_clone(uint32_t orig) {
@@ -27456,8 +27934,8 @@ uint32_t  __attribute__((export_name("TS_Shutdown_clone_ptr"))) TS_Shutdown_clon
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = Shutdown_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = Shutdown_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_Shutdown_clone"))) TS_Shutdown_clone(uint32_t orig) {
@@ -27490,8 +27968,8 @@ int64_t  __attribute__((export_name("TS_ClosingSignedFeeRange_get_min_fee_satosh
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = ClosingSignedFeeRange_get_min_fee_satoshis(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = ClosingSignedFeeRange_get_min_fee_satoshis(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ClosingSignedFeeRange_set_min_fee_satoshis"))) TS_ClosingSignedFeeRange_set_min_fee_satoshis(uint32_t this_ptr, int64_t val) {
@@ -27507,8 +27985,8 @@ int64_t  __attribute__((export_name("TS_ClosingSignedFeeRange_get_max_fee_satosh
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = ClosingSignedFeeRange_get_max_fee_satoshis(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = ClosingSignedFeeRange_get_max_fee_satoshis(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ClosingSignedFeeRange_set_max_fee_satoshis"))) TS_ClosingSignedFeeRange_set_max_fee_satoshis(uint32_t this_ptr, int64_t val) {
@@ -27549,8 +28027,8 @@ uint32_t  __attribute__((export_name("TS_ClosingSignedFeeRange_clone_ptr"))) TS_
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = ClosingSignedFeeRange_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = ClosingSignedFeeRange_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_ClosingSignedFeeRange_clone"))) TS_ClosingSignedFeeRange_clone(uint32_t orig) {
@@ -27604,8 +28082,8 @@ int64_t  __attribute__((export_name("TS_ClosingSigned_get_fee_satoshis"))) TS_Cl
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = ClosingSigned_get_fee_satoshis(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = ClosingSigned_get_fee_satoshis(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ClosingSigned_set_fee_satoshis"))) TS_ClosingSigned_set_fee_satoshis(uint32_t this_ptr, int64_t val) {
@@ -27710,8 +28188,8 @@ uint32_t  __attribute__((export_name("TS_ClosingSigned_clone_ptr"))) TS_ClosingS
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = ClosingSigned_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = ClosingSigned_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_ClosingSigned_clone"))) TS_ClosingSigned_clone(uint32_t orig) {
@@ -27765,8 +28243,8 @@ int64_t  __attribute__((export_name("TS_UpdateAddHTLC_get_htlc_id"))) TS_UpdateA
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = UpdateAddHTLC_get_htlc_id(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = UpdateAddHTLC_get_htlc_id(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_UpdateAddHTLC_set_htlc_id"))) TS_UpdateAddHTLC_set_htlc_id(uint32_t this_ptr, int64_t val) {
@@ -27782,8 +28260,8 @@ int64_t  __attribute__((export_name("TS_UpdateAddHTLC_get_amount_msat"))) TS_Upd
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = UpdateAddHTLC_get_amount_msat(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = UpdateAddHTLC_get_amount_msat(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_UpdateAddHTLC_set_amount_msat"))) TS_UpdateAddHTLC_set_amount_msat(uint32_t this_ptr, int64_t val) {
@@ -27820,8 +28298,8 @@ int32_t  __attribute__((export_name("TS_UpdateAddHTLC_get_cltv_expiry"))) TS_Upd
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int32_t ret_val = UpdateAddHTLC_get_cltv_expiry(&this_ptr_conv);
-       return ret_val;
+       int32_t ret_conv = UpdateAddHTLC_get_cltv_expiry(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_UpdateAddHTLC_set_cltv_expiry"))) TS_UpdateAddHTLC_set_cltv_expiry(uint32_t this_ptr, int32_t val) {
@@ -27849,8 +28327,8 @@ uint32_t  __attribute__((export_name("TS_UpdateAddHTLC_clone_ptr"))) TS_UpdateAd
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = UpdateAddHTLC_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = UpdateAddHTLC_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_UpdateAddHTLC_clone"))) TS_UpdateAddHTLC_clone(uint32_t orig) {
@@ -27904,8 +28382,8 @@ int64_t  __attribute__((export_name("TS_UpdateFulfillHTLC_get_htlc_id"))) TS_Upd
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = UpdateFulfillHTLC_get_htlc_id(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = UpdateFulfillHTLC_get_htlc_id(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_UpdateFulfillHTLC_set_htlc_id"))) TS_UpdateFulfillHTLC_set_htlc_id(uint32_t this_ptr, int64_t val) {
@@ -27973,8 +28451,8 @@ uint32_t  __attribute__((export_name("TS_UpdateFulfillHTLC_clone_ptr"))) TS_Upda
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = UpdateFulfillHTLC_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = UpdateFulfillHTLC_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_UpdateFulfillHTLC_clone"))) TS_UpdateFulfillHTLC_clone(uint32_t orig) {
@@ -28028,8 +28506,8 @@ int64_t  __attribute__((export_name("TS_UpdateFailHTLC_get_htlc_id"))) TS_Update
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = UpdateFailHTLC_get_htlc_id(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = UpdateFailHTLC_get_htlc_id(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_UpdateFailHTLC_set_htlc_id"))) TS_UpdateFailHTLC_set_htlc_id(uint32_t this_ptr, int64_t val) {
@@ -28057,8 +28535,8 @@ uint32_t  __attribute__((export_name("TS_UpdateFailHTLC_clone_ptr"))) TS_UpdateF
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = UpdateFailHTLC_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = UpdateFailHTLC_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_UpdateFailHTLC_clone"))) TS_UpdateFailHTLC_clone(uint32_t orig) {
@@ -28112,8 +28590,8 @@ int64_t  __attribute__((export_name("TS_UpdateFailMalformedHTLC_get_htlc_id")))
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = UpdateFailMalformedHTLC_get_htlc_id(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = UpdateFailMalformedHTLC_get_htlc_id(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_UpdateFailMalformedHTLC_set_htlc_id"))) TS_UpdateFailMalformedHTLC_set_htlc_id(uint32_t this_ptr, int64_t val) {
@@ -28129,8 +28607,8 @@ int16_t  __attribute__((export_name("TS_UpdateFailMalformedHTLC_get_failure_code
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int16_t ret_val = UpdateFailMalformedHTLC_get_failure_code(&this_ptr_conv);
-       return ret_val;
+       int16_t ret_conv = UpdateFailMalformedHTLC_get_failure_code(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_UpdateFailMalformedHTLC_set_failure_code"))) TS_UpdateFailMalformedHTLC_set_failure_code(uint32_t this_ptr, int16_t val) {
@@ -28158,8 +28636,8 @@ uint32_t  __attribute__((export_name("TS_UpdateFailMalformedHTLC_clone_ptr"))) T
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = UpdateFailMalformedHTLC_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = UpdateFailMalformedHTLC_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_UpdateFailMalformedHTLC_clone"))) TS_UpdateFailMalformedHTLC_clone(uint32_t orig) {
@@ -28301,8 +28779,8 @@ uint32_t  __attribute__((export_name("TS_CommitmentSigned_clone_ptr"))) TS_Commi
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = CommitmentSigned_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CommitmentSigned_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CommitmentSigned_clone"))) TS_CommitmentSigned_clone(uint32_t orig) {
@@ -28432,8 +28910,8 @@ uint32_t  __attribute__((export_name("TS_RevokeAndACK_clone_ptr"))) TS_RevokeAnd
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = RevokeAndACK_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = RevokeAndACK_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_RevokeAndACK_clone"))) TS_RevokeAndACK_clone(uint32_t orig) {
@@ -28487,8 +28965,8 @@ int32_t  __attribute__((export_name("TS_UpdateFee_get_feerate_per_kw"))) TS_Upda
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int32_t ret_val = UpdateFee_get_feerate_per_kw(&this_ptr_conv);
-       return ret_val;
+       int32_t ret_conv = UpdateFee_get_feerate_per_kw(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_UpdateFee_set_feerate_per_kw"))) TS_UpdateFee_set_feerate_per_kw(uint32_t this_ptr, int32_t val) {
@@ -28532,8 +29010,8 @@ uint32_t  __attribute__((export_name("TS_UpdateFee_clone_ptr"))) TS_UpdateFee_cl
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = UpdateFee_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = UpdateFee_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_UpdateFee_clone"))) TS_UpdateFee_clone(uint32_t orig) {
@@ -28639,8 +29117,8 @@ uint32_t  __attribute__((export_name("TS_DataLossProtect_clone_ptr"))) TS_DataLo
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = DataLossProtect_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = DataLossProtect_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_DataLossProtect_clone"))) TS_DataLossProtect_clone(uint32_t orig) {
@@ -28694,8 +29172,8 @@ int64_t  __attribute__((export_name("TS_ChannelReestablish_get_next_local_commit
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = ChannelReestablish_get_next_local_commitment_number(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = ChannelReestablish_get_next_local_commitment_number(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ChannelReestablish_set_next_local_commitment_number"))) TS_ChannelReestablish_set_next_local_commitment_number(uint32_t this_ptr, int64_t val) {
@@ -28711,8 +29189,8 @@ int64_t  __attribute__((export_name("TS_ChannelReestablish_get_next_remote_commi
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = ChannelReestablish_get_next_remote_commitment_number(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = ChannelReestablish_get_next_remote_commitment_number(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ChannelReestablish_set_next_remote_commitment_number"))) TS_ChannelReestablish_set_next_remote_commitment_number(uint32_t this_ptr, int64_t val) {
@@ -28740,8 +29218,8 @@ uint32_t  __attribute__((export_name("TS_ChannelReestablish_clone_ptr"))) TS_Cha
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = ChannelReestablish_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = ChannelReestablish_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_ChannelReestablish_clone"))) TS_ChannelReestablish_clone(uint32_t orig) {
@@ -28795,8 +29273,8 @@ int64_t  __attribute__((export_name("TS_AnnouncementSignatures_get_short_channel
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = AnnouncementSignatures_get_short_channel_id(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = AnnouncementSignatures_get_short_channel_id(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_AnnouncementSignatures_set_short_channel_id"))) TS_AnnouncementSignatures_set_short_channel_id(uint32_t this_ptr, int64_t val) {
@@ -28888,8 +29366,8 @@ uint32_t  __attribute__((export_name("TS_AnnouncementSignatures_clone_ptr"))) TS
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = AnnouncementSignatures_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = AnnouncementSignatures_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_AnnouncementSignatures_clone"))) TS_AnnouncementSignatures_clone(uint32_t orig) {
@@ -28926,8 +29404,8 @@ uint32_t ret_ref = (uintptr_t)ret_copy;
 }
 uint32_t  __attribute__((export_name("TS_NetAddress_clone_ptr"))) TS_NetAddress_clone_ptr(uint32_t arg) {
        LDKNetAddress* arg_conv = (LDKNetAddress*)arg;
-       uint32_t ret_val = NetAddress_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = NetAddress_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_NetAddress_clone"))) TS_NetAddress_clone(uint32_t orig) {
@@ -29039,8 +29517,8 @@ int32_t  __attribute__((export_name("TS_UnsignedNodeAnnouncement_get_timestamp")
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int32_t ret_val = UnsignedNodeAnnouncement_get_timestamp(&this_ptr_conv);
-       return ret_val;
+       int32_t ret_conv = UnsignedNodeAnnouncement_get_timestamp(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_UnsignedNodeAnnouncement_set_timestamp"))) TS_UnsignedNodeAnnouncement_set_timestamp(uint32_t this_ptr, int32_t val) {
@@ -29154,8 +29632,8 @@ uint32_t  __attribute__((export_name("TS_UnsignedNodeAnnouncement_clone_ptr")))
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = UnsignedNodeAnnouncement_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = UnsignedNodeAnnouncement_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_UnsignedNodeAnnouncement_clone"))) TS_UnsignedNodeAnnouncement_clone(uint32_t orig) {
@@ -29272,8 +29750,8 @@ uint32_t  __attribute__((export_name("TS_NodeAnnouncement_clone_ptr"))) TS_NodeA
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = NodeAnnouncement_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = NodeAnnouncement_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_NodeAnnouncement_clone"))) TS_NodeAnnouncement_clone(uint32_t orig) {
@@ -29357,8 +29835,8 @@ int64_t  __attribute__((export_name("TS_UnsignedChannelAnnouncement_get_short_ch
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = UnsignedChannelAnnouncement_get_short_channel_id(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = UnsignedChannelAnnouncement_get_short_channel_id(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_UnsignedChannelAnnouncement_set_short_channel_id"))) TS_UnsignedChannelAnnouncement_set_short_channel_id(uint32_t this_ptr, int64_t val) {
@@ -29470,8 +29948,8 @@ uint32_t  __attribute__((export_name("TS_UnsignedChannelAnnouncement_clone_ptr")
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = UnsignedChannelAnnouncement_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = UnsignedChannelAnnouncement_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_UnsignedChannelAnnouncement_clone"))) TS_UnsignedChannelAnnouncement_clone(uint32_t orig) {
@@ -29660,8 +30138,8 @@ uint32_t  __attribute__((export_name("TS_ChannelAnnouncement_clone_ptr"))) TS_Ch
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = ChannelAnnouncement_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = ChannelAnnouncement_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_ChannelAnnouncement_clone"))) TS_ChannelAnnouncement_clone(uint32_t orig) {
@@ -29715,8 +30193,8 @@ int64_t  __attribute__((export_name("TS_UnsignedChannelUpdate_get_short_channel_
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = UnsignedChannelUpdate_get_short_channel_id(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = UnsignedChannelUpdate_get_short_channel_id(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_UnsignedChannelUpdate_set_short_channel_id"))) TS_UnsignedChannelUpdate_set_short_channel_id(uint32_t this_ptr, int64_t val) {
@@ -29732,8 +30210,8 @@ int32_t  __attribute__((export_name("TS_UnsignedChannelUpdate_get_timestamp")))
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int32_t ret_val = UnsignedChannelUpdate_get_timestamp(&this_ptr_conv);
-       return ret_val;
+       int32_t ret_conv = UnsignedChannelUpdate_get_timestamp(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_UnsignedChannelUpdate_set_timestamp"))) TS_UnsignedChannelUpdate_set_timestamp(uint32_t this_ptr, int32_t val) {
@@ -29749,8 +30227,8 @@ int8_t  __attribute__((export_name("TS_UnsignedChannelUpdate_get_flags"))) TS_Un
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int8_t ret_val = UnsignedChannelUpdate_get_flags(&this_ptr_conv);
-       return ret_val;
+       int8_t ret_conv = UnsignedChannelUpdate_get_flags(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_UnsignedChannelUpdate_set_flags"))) TS_UnsignedChannelUpdate_set_flags(uint32_t this_ptr, int8_t val) {
@@ -29766,8 +30244,8 @@ int16_t  __attribute__((export_name("TS_UnsignedChannelUpdate_get_cltv_expiry_de
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int16_t ret_val = UnsignedChannelUpdate_get_cltv_expiry_delta(&this_ptr_conv);
-       return ret_val;
+       int16_t ret_conv = UnsignedChannelUpdate_get_cltv_expiry_delta(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_UnsignedChannelUpdate_set_cltv_expiry_delta"))) TS_UnsignedChannelUpdate_set_cltv_expiry_delta(uint32_t this_ptr, int16_t val) {
@@ -29783,8 +30261,8 @@ int64_t  __attribute__((export_name("TS_UnsignedChannelUpdate_get_htlc_minimum_m
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = UnsignedChannelUpdate_get_htlc_minimum_msat(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = UnsignedChannelUpdate_get_htlc_minimum_msat(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_UnsignedChannelUpdate_set_htlc_minimum_msat"))) TS_UnsignedChannelUpdate_set_htlc_minimum_msat(uint32_t this_ptr, int64_t val) {
@@ -29800,8 +30278,8 @@ int32_t  __attribute__((export_name("TS_UnsignedChannelUpdate_get_fee_base_msat"
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int32_t ret_val = UnsignedChannelUpdate_get_fee_base_msat(&this_ptr_conv);
-       return ret_val;
+       int32_t ret_conv = UnsignedChannelUpdate_get_fee_base_msat(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_UnsignedChannelUpdate_set_fee_base_msat"))) TS_UnsignedChannelUpdate_set_fee_base_msat(uint32_t this_ptr, int32_t val) {
@@ -29817,8 +30295,8 @@ int32_t  __attribute__((export_name("TS_UnsignedChannelUpdate_get_fee_proportion
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int32_t ret_val = UnsignedChannelUpdate_get_fee_proportional_millionths(&this_ptr_conv);
-       return ret_val;
+       int32_t ret_conv = UnsignedChannelUpdate_get_fee_proportional_millionths(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_UnsignedChannelUpdate_set_fee_proportional_millionths"))) TS_UnsignedChannelUpdate_set_fee_proportional_millionths(uint32_t this_ptr, int32_t val) {
@@ -29846,8 +30324,8 @@ uint32_t  __attribute__((export_name("TS_UnsignedChannelUpdate_clone_ptr"))) TS_
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = UnsignedChannelUpdate_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = UnsignedChannelUpdate_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_UnsignedChannelUpdate_clone"))) TS_UnsignedChannelUpdate_clone(uint32_t orig) {
@@ -29964,8 +30442,8 @@ uint32_t  __attribute__((export_name("TS_ChannelUpdate_clone_ptr"))) TS_ChannelU
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = ChannelUpdate_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = ChannelUpdate_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_ChannelUpdate_clone"))) TS_ChannelUpdate_clone(uint32_t orig) {
@@ -30019,8 +30497,8 @@ int32_t  __attribute__((export_name("TS_QueryChannelRange_get_first_blocknum")))
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int32_t ret_val = QueryChannelRange_get_first_blocknum(&this_ptr_conv);
-       return ret_val;
+       int32_t ret_conv = QueryChannelRange_get_first_blocknum(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_QueryChannelRange_set_first_blocknum"))) TS_QueryChannelRange_set_first_blocknum(uint32_t this_ptr, int32_t val) {
@@ -30036,8 +30514,8 @@ int32_t  __attribute__((export_name("TS_QueryChannelRange_get_number_of_blocks")
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int32_t ret_val = QueryChannelRange_get_number_of_blocks(&this_ptr_conv);
-       return ret_val;
+       int32_t ret_conv = QueryChannelRange_get_number_of_blocks(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_QueryChannelRange_set_number_of_blocks"))) TS_QueryChannelRange_set_number_of_blocks(uint32_t this_ptr, int32_t val) {
@@ -30081,8 +30559,8 @@ uint32_t  __attribute__((export_name("TS_QueryChannelRange_clone_ptr"))) TS_Quer
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = QueryChannelRange_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = QueryChannelRange_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_QueryChannelRange_clone"))) TS_QueryChannelRange_clone(uint32_t orig) {
@@ -30136,8 +30614,8 @@ int32_t  __attribute__((export_name("TS_ReplyChannelRange_get_first_blocknum")))
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int32_t ret_val = ReplyChannelRange_get_first_blocknum(&this_ptr_conv);
-       return ret_val;
+       int32_t ret_conv = ReplyChannelRange_get_first_blocknum(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ReplyChannelRange_set_first_blocknum"))) TS_ReplyChannelRange_set_first_blocknum(uint32_t this_ptr, int32_t val) {
@@ -30153,8 +30631,8 @@ int32_t  __attribute__((export_name("TS_ReplyChannelRange_get_number_of_blocks")
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int32_t ret_val = ReplyChannelRange_get_number_of_blocks(&this_ptr_conv);
-       return ret_val;
+       int32_t ret_conv = ReplyChannelRange_get_number_of_blocks(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ReplyChannelRange_set_number_of_blocks"))) TS_ReplyChannelRange_set_number_of_blocks(uint32_t this_ptr, int32_t val) {
@@ -30170,8 +30648,8 @@ jboolean  __attribute__((export_name("TS_ReplyChannelRange_get_sync_complete")))
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       jboolean ret_val = ReplyChannelRange_get_sync_complete(&this_ptr_conv);
-       return ret_val;
+       jboolean ret_conv = ReplyChannelRange_get_sync_complete(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ReplyChannelRange_set_sync_complete"))) TS_ReplyChannelRange_set_sync_complete(uint32_t this_ptr, jboolean val) {
@@ -30245,8 +30723,8 @@ uint32_t  __attribute__((export_name("TS_ReplyChannelRange_clone_ptr"))) TS_Repl
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = ReplyChannelRange_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = ReplyChannelRange_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_ReplyChannelRange_clone"))) TS_ReplyChannelRange_clone(uint32_t orig) {
@@ -30358,8 +30836,8 @@ uint32_t  __attribute__((export_name("TS_QueryShortChannelIds_clone_ptr"))) TS_Q
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = QueryShortChannelIds_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = QueryShortChannelIds_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_QueryShortChannelIds_clone"))) TS_QueryShortChannelIds_clone(uint32_t orig) {
@@ -30413,8 +30891,8 @@ jboolean  __attribute__((export_name("TS_ReplyShortChannelIdsEnd_get_full_inform
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       jboolean ret_val = ReplyShortChannelIdsEnd_get_full_information(&this_ptr_conv);
-       return ret_val;
+       jboolean ret_conv = ReplyShortChannelIdsEnd_get_full_information(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ReplyShortChannelIdsEnd_set_full_information"))) TS_ReplyShortChannelIdsEnd_set_full_information(uint32_t this_ptr, jboolean val) {
@@ -30458,8 +30936,8 @@ uint32_t  __attribute__((export_name("TS_ReplyShortChannelIdsEnd_clone_ptr"))) T
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = ReplyShortChannelIdsEnd_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = ReplyShortChannelIdsEnd_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_ReplyShortChannelIdsEnd_clone"))) TS_ReplyShortChannelIdsEnd_clone(uint32_t orig) {
@@ -30513,8 +30991,8 @@ int32_t  __attribute__((export_name("TS_GossipTimestampFilter_get_first_timestam
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int32_t ret_val = GossipTimestampFilter_get_first_timestamp(&this_ptr_conv);
-       return ret_val;
+       int32_t ret_conv = GossipTimestampFilter_get_first_timestamp(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_GossipTimestampFilter_set_first_timestamp"))) TS_GossipTimestampFilter_set_first_timestamp(uint32_t this_ptr, int32_t val) {
@@ -30530,8 +31008,8 @@ int32_t  __attribute__((export_name("TS_GossipTimestampFilter_get_timestamp_rang
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int32_t ret_val = GossipTimestampFilter_get_timestamp_range(&this_ptr_conv);
-       return ret_val;
+       int32_t ret_conv = GossipTimestampFilter_get_timestamp_range(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_GossipTimestampFilter_set_timestamp_range"))) TS_GossipTimestampFilter_set_timestamp_range(uint32_t this_ptr, int32_t val) {
@@ -30575,8 +31053,8 @@ uint32_t  __attribute__((export_name("TS_GossipTimestampFilter_clone_ptr"))) TS_
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = GossipTimestampFilter_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = GossipTimestampFilter_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_GossipTimestampFilter_clone"))) TS_GossipTimestampFilter_clone(uint32_t orig) {
@@ -30613,8 +31091,8 @@ uint32_t ret_ref = (uintptr_t)ret_copy;
 }
 uint32_t  __attribute__((export_name("TS_ErrorAction_clone_ptr"))) TS_ErrorAction_clone_ptr(uint32_t arg) {
        LDKErrorAction* arg_conv = (LDKErrorAction*)arg;
-       uint32_t ret_val = ErrorAction_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = ErrorAction_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_ErrorAction_clone"))) TS_ErrorAction_clone(uint32_t orig) {
@@ -30770,8 +31248,8 @@ uint32_t  __attribute__((export_name("TS_LightningError_clone_ptr"))) TS_Lightni
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = LightningError_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = LightningError_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_LightningError_clone"))) TS_LightningError_clone(uint32_t orig) {
@@ -31165,8 +31643,8 @@ uint32_t  __attribute__((export_name("TS_CommitmentUpdate_clone_ptr"))) TS_Commi
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = CommitmentUpdate_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CommitmentUpdate_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CommitmentUpdate_clone"))) TS_CommitmentUpdate_clone(uint32_t orig) {
@@ -31839,8 +32317,8 @@ int32_t  __attribute__((export_name("TS_QueryChannelRange_end_blocknum"))) TS_Qu
        this_arg_conv.inner = (void*)(this_arg & (~1));
        this_arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv);
-       int32_t ret_val = QueryChannelRange_end_blocknum(&this_arg_conv);
-       return ret_val;
+       int32_t ret_conv = QueryChannelRange_end_blocknum(&this_arg_conv);
+       return ret_conv;
 }
 
 int8_tArray  __attribute__((export_name("TS_QueryChannelRange_write"))) TS_QueryChannelRange_write(uint32_t obj) {
@@ -32043,6 +32521,10 @@ void  __attribute__((export_name("TS_MessageHandler_set_chan_handler"))) TS_Mess
        void* val_ptr = (void*)(((uintptr_t)val) & ~1);
        CHECK_ACCESS(val_ptr);
        LDKChannelMessageHandler val_conv = *(LDKChannelMessageHandler*)(val_ptr);
+       if (val_conv.free == LDKChannelMessageHandler_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKChannelMessageHandler_JCalls_cloned(&val_conv);
+       }
        MessageHandler_set_chan_handler(&this_ptr_conv, val_conv);
 }
 
@@ -32064,6 +32546,10 @@ void  __attribute__((export_name("TS_MessageHandler_set_route_handler"))) TS_Mes
        void* val_ptr = (void*)(((uintptr_t)val) & ~1);
        CHECK_ACCESS(val_ptr);
        LDKRoutingMessageHandler val_conv = *(LDKRoutingMessageHandler*)(val_ptr);
+       if (val_conv.free == LDKRoutingMessageHandler_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKRoutingMessageHandler_JCalls_cloned(&val_conv);
+       }
        MessageHandler_set_route_handler(&this_ptr_conv, val_conv);
 }
 
@@ -32071,9 +32557,17 @@ uint32_t  __attribute__((export_name("TS_MessageHandler_new"))) TS_MessageHandle
        void* chan_handler_arg_ptr = (void*)(((uintptr_t)chan_handler_arg) & ~1);
        CHECK_ACCESS(chan_handler_arg_ptr);
        LDKChannelMessageHandler chan_handler_arg_conv = *(LDKChannelMessageHandler*)(chan_handler_arg_ptr);
+       if (chan_handler_arg_conv.free == LDKChannelMessageHandler_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKChannelMessageHandler_JCalls_cloned(&chan_handler_arg_conv);
+       }
        void* route_handler_arg_ptr = (void*)(((uintptr_t)route_handler_arg) & ~1);
        CHECK_ACCESS(route_handler_arg_ptr);
        LDKRoutingMessageHandler route_handler_arg_conv = *(LDKRoutingMessageHandler*)(route_handler_arg_ptr);
+       if (route_handler_arg_conv.free == LDKRoutingMessageHandler_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKRoutingMessageHandler_JCalls_cloned(&route_handler_arg_conv);
+       }
        LDKMessageHandler ret_var = MessageHandler_new(chan_handler_arg_conv, route_handler_arg_conv);
        uint32_t ret_ref = 0;
        CHECK((((uintptr_t)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
@@ -32095,8 +32589,8 @@ uint32_t  __attribute__((export_name("TS_SocketDescriptor_clone_ptr"))) TS_Socke
        void* arg_ptr = (void*)(((uintptr_t)arg) & ~1);
        if (!(arg & 1)) { CHECK_ACCESS(arg_ptr); }
        LDKSocketDescriptor* arg_conv = (LDKSocketDescriptor*)arg_ptr;
-       uint32_t ret_val = SocketDescriptor_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = SocketDescriptor_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_SocketDescriptor_clone"))) TS_SocketDescriptor_clone(uint32_t orig) {
@@ -32130,8 +32624,8 @@ jboolean  __attribute__((export_name("TS_PeerHandleError_get_no_connection_possi
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       jboolean ret_val = PeerHandleError_get_no_connection_possible(&this_ptr_conv);
-       return ret_val;
+       jboolean ret_conv = PeerHandleError_get_no_connection_possible(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_PeerHandleError_set_no_connection_possible"))) TS_PeerHandleError_set_no_connection_possible(uint32_t this_ptr, jboolean val) {
@@ -32172,8 +32666,8 @@ uint32_t  __attribute__((export_name("TS_PeerHandleError_clone_ptr"))) TS_PeerHa
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = PeerHandleError_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = PeerHandleError_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_PeerHandleError_clone"))) TS_PeerHandleError_clone(uint32_t orig) {
@@ -32217,9 +32711,17 @@ uint32_t  __attribute__((export_name("TS_PeerManager_new"))) TS_PeerManager_new(
        void* logger_ptr = (void*)(((uintptr_t)logger) & ~1);
        CHECK_ACCESS(logger_ptr);
        LDKLogger logger_conv = *(LDKLogger*)(logger_ptr);
+       if (logger_conv.free == LDKLogger_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKLogger_JCalls_cloned(&logger_conv);
+       }
        void* custom_message_handler_ptr = (void*)(((uintptr_t)custom_message_handler) & ~1);
        CHECK_ACCESS(custom_message_handler_ptr);
        LDKCustomMessageHandler custom_message_handler_conv = *(LDKCustomMessageHandler*)(custom_message_handler_ptr);
+       if (custom_message_handler_conv.free == LDKCustomMessageHandler_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKCustomMessageHandler_JCalls_cloned(&custom_message_handler_conv);
+       }
        LDKPeerManager ret_var = PeerManager_new(message_handler_conv, our_node_secret_ref, ephemeral_random_data_ref, logger_conv, custom_message_handler_conv);
        uint32_t ret_ref = 0;
        CHECK((((uintptr_t)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
@@ -32251,7 +32753,7 @@ ptrArray  __attribute__((export_name("TS_PeerManager_get_peer_node_ids"))) TS_Pe
        return ret_arr;
 }
 
-uint32_t  __attribute__((export_name("TS_PeerManager_new_outbound_connection"))) TS_PeerManager_new_outbound_connection(uint32_t this_arg, int8_tArray their_node_id, uint32_t descriptor) {
+uint32_t  __attribute__((export_name("TS_PeerManager_new_outbound_connection"))) TS_PeerManager_new_outbound_connection(uint32_t this_arg, int8_tArray their_node_id, uint32_t descriptor, uint32_t remote_network_address) {
        LDKPeerManager this_arg_conv;
        this_arg_conv.inner = (void*)(this_arg & (~1));
        this_arg_conv.is_owned = false;
@@ -32262,12 +32764,19 @@ uint32_t  __attribute__((export_name("TS_PeerManager_new_outbound_connection")))
        void* descriptor_ptr = (void*)(((uintptr_t)descriptor) & ~1);
        CHECK_ACCESS(descriptor_ptr);
        LDKSocketDescriptor descriptor_conv = *(LDKSocketDescriptor*)(descriptor_ptr);
+       if (descriptor_conv.free == LDKSocketDescriptor_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKSocketDescriptor_JCalls_cloned(&descriptor_conv);
+       }
+       void* remote_network_address_ptr = (void*)(((uintptr_t)remote_network_address) & ~1);
+       CHECK_ACCESS(remote_network_address_ptr);
+       LDKCOption_NetAddressZ remote_network_address_conv = *(LDKCOption_NetAddressZ*)(remote_network_address_ptr);
        LDKCResult_CVec_u8ZPeerHandleErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_u8ZPeerHandleErrorZ), "LDKCResult_CVec_u8ZPeerHandleErrorZ");
-       *ret_conv = PeerManager_new_outbound_connection(&this_arg_conv, their_node_id_ref, descriptor_conv);
+       *ret_conv = PeerManager_new_outbound_connection(&this_arg_conv, their_node_id_ref, descriptor_conv, remote_network_address_conv);
        return (uint32_t)ret_conv;
 }
 
-uint32_t  __attribute__((export_name("TS_PeerManager_new_inbound_connection"))) TS_PeerManager_new_inbound_connection(uint32_t this_arg, uint32_t descriptor) {
+uint32_t  __attribute__((export_name("TS_PeerManager_new_inbound_connection"))) TS_PeerManager_new_inbound_connection(uint32_t this_arg, uint32_t descriptor, uint32_t remote_network_address) {
        LDKPeerManager this_arg_conv;
        this_arg_conv.inner = (void*)(this_arg & (~1));
        this_arg_conv.is_owned = false;
@@ -32275,8 +32784,15 @@ uint32_t  __attribute__((export_name("TS_PeerManager_new_inbound_connection")))
        void* descriptor_ptr = (void*)(((uintptr_t)descriptor) & ~1);
        CHECK_ACCESS(descriptor_ptr);
        LDKSocketDescriptor descriptor_conv = *(LDKSocketDescriptor*)(descriptor_ptr);
+       if (descriptor_conv.free == LDKSocketDescriptor_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKSocketDescriptor_JCalls_cloned(&descriptor_conv);
+       }
+       void* remote_network_address_ptr = (void*)(((uintptr_t)remote_network_address) & ~1);
+       CHECK_ACCESS(remote_network_address_ptr);
+       LDKCOption_NetAddressZ remote_network_address_conv = *(LDKCOption_NetAddressZ*)(remote_network_address_ptr);
        LDKCResult_NonePeerHandleErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_NonePeerHandleErrorZ), "LDKCResult_NonePeerHandleErrorZ");
-       *ret_conv = PeerManager_new_inbound_connection(&this_arg_conv, descriptor_conv);
+       *ret_conv = PeerManager_new_inbound_connection(&this_arg_conv, descriptor_conv, remote_network_address_conv);
        return (uint32_t)ret_conv;
 }
 
@@ -32356,13 +32872,13 @@ void  __attribute__((export_name("TS_PeerManager_timer_tick_occurred"))) TS_Peer
 }
 
 int64_t  __attribute__((export_name("TS_htlc_success_tx_weight"))) TS_htlc_success_tx_weight(jboolean opt_anchors) {
-       int64_t ret_val = htlc_success_tx_weight(opt_anchors);
-       return ret_val;
+       int64_t ret_conv = htlc_success_tx_weight(opt_anchors);
+       return ret_conv;
 }
 
 int64_t  __attribute__((export_name("TS_htlc_timeout_tx_weight"))) TS_htlc_timeout_tx_weight(jboolean opt_anchors) {
-       int64_t ret_val = htlc_timeout_tx_weight(opt_anchors);
-       return ret_val;
+       int64_t ret_conv = htlc_timeout_tx_weight(opt_anchors);
+       return ret_conv;
 }
 
 int8_tArray  __attribute__((export_name("TS_build_commitment_secret"))) TS_build_commitment_secret(int8_tArray commitment_seed, int64_t idx) {
@@ -32421,8 +32937,8 @@ uint32_t  __attribute__((export_name("TS_CounterpartyCommitmentSecrets_clone_ptr
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = CounterpartyCommitmentSecrets_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CounterpartyCommitmentSecrets_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CounterpartyCommitmentSecrets_clone"))) TS_CounterpartyCommitmentSecrets_clone(uint32_t orig) {
@@ -32460,8 +32976,8 @@ int64_t  __attribute__((export_name("TS_CounterpartyCommitmentSecrets_get_min_se
        this_arg_conv.inner = (void*)(this_arg & (~1));
        this_arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv);
-       int64_t ret_val = CounterpartyCommitmentSecrets_get_min_seen_secret(&this_arg_conv);
-       return ret_val;
+       int64_t ret_conv = CounterpartyCommitmentSecrets_get_min_seen_secret(&this_arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CounterpartyCommitmentSecrets_provide_secret"))) TS_CounterpartyCommitmentSecrets_provide_secret(uint32_t this_arg, int64_t idx, int8_tArray secret) {
@@ -32717,8 +33233,8 @@ uint32_t  __attribute__((export_name("TS_TxCreationKeys_clone_ptr"))) TS_TxCreat
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = TxCreationKeys_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = TxCreationKeys_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_TxCreationKeys_clone"))) TS_TxCreationKeys_clone(uint32_t orig) {
@@ -32917,8 +33433,8 @@ uint32_t  __attribute__((export_name("TS_ChannelPublicKeys_clone_ptr"))) TS_Chan
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = ChannelPublicKeys_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = ChannelPublicKeys_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_ChannelPublicKeys_clone"))) TS_ChannelPublicKeys_clone(uint32_t orig) {
@@ -33024,8 +33540,8 @@ jboolean  __attribute__((export_name("TS_HTLCOutputInCommitment_get_offered")))
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       jboolean ret_val = HTLCOutputInCommitment_get_offered(&this_ptr_conv);
-       return ret_val;
+       jboolean ret_conv = HTLCOutputInCommitment_get_offered(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_HTLCOutputInCommitment_set_offered"))) TS_HTLCOutputInCommitment_set_offered(uint32_t this_ptr, jboolean val) {
@@ -33041,8 +33557,8 @@ int64_t  __attribute__((export_name("TS_HTLCOutputInCommitment_get_amount_msat")
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = HTLCOutputInCommitment_get_amount_msat(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = HTLCOutputInCommitment_get_amount_msat(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_HTLCOutputInCommitment_set_amount_msat"))) TS_HTLCOutputInCommitment_set_amount_msat(uint32_t this_ptr, int64_t val) {
@@ -33058,8 +33574,8 @@ int32_t  __attribute__((export_name("TS_HTLCOutputInCommitment_get_cltv_expiry")
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int32_t ret_val = HTLCOutputInCommitment_get_cltv_expiry(&this_ptr_conv);
-       return ret_val;
+       int32_t ret_conv = HTLCOutputInCommitment_get_cltv_expiry(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_HTLCOutputInCommitment_set_cltv_expiry"))) TS_HTLCOutputInCommitment_set_cltv_expiry(uint32_t this_ptr, int32_t val) {
@@ -33151,8 +33667,8 @@ uint32_t  __attribute__((export_name("TS_HTLCOutputInCommitment_clone_ptr"))) TS
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = HTLCOutputInCommitment_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = HTLCOutputInCommitment_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_HTLCOutputInCommitment_clone"))) TS_HTLCOutputInCommitment_clone(uint32_t orig) {
@@ -33299,8 +33815,8 @@ int16_t  __attribute__((export_name("TS_ChannelTransactionParameters_get_holder_
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int16_t ret_val = ChannelTransactionParameters_get_holder_selected_contest_delay(&this_ptr_conv);
-       return ret_val;
+       int16_t ret_conv = ChannelTransactionParameters_get_holder_selected_contest_delay(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ChannelTransactionParameters_set_holder_selected_contest_delay"))) TS_ChannelTransactionParameters_set_holder_selected_contest_delay(uint32_t this_ptr, int16_t val) {
@@ -33316,8 +33832,8 @@ jboolean  __attribute__((export_name("TS_ChannelTransactionParameters_get_is_out
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       jboolean ret_val = ChannelTransactionParameters_get_is_outbound_from_holder(&this_ptr_conv);
-       return ret_val;
+       jboolean ret_conv = ChannelTransactionParameters_get_is_outbound_from_holder(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ChannelTransactionParameters_set_is_outbound_from_holder"))) TS_ChannelTransactionParameters_set_is_outbound_from_holder(uint32_t this_ptr, jboolean val) {
@@ -33456,8 +33972,8 @@ uint32_t  __attribute__((export_name("TS_ChannelTransactionParameters_clone_ptr"
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = ChannelTransactionParameters_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = ChannelTransactionParameters_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_ChannelTransactionParameters_clone"))) TS_ChannelTransactionParameters_clone(uint32_t orig) {
@@ -33520,8 +34036,8 @@ int16_t  __attribute__((export_name("TS_CounterpartyChannelTransactionParameters
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int16_t ret_val = CounterpartyChannelTransactionParameters_get_selected_contest_delay(&this_ptr_conv);
-       return ret_val;
+       int16_t ret_conv = CounterpartyChannelTransactionParameters_get_selected_contest_delay(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CounterpartyChannelTransactionParameters_set_selected_contest_delay"))) TS_CounterpartyChannelTransactionParameters_set_selected_contest_delay(uint32_t this_ptr, int16_t val) {
@@ -33567,8 +34083,8 @@ uint32_t  __attribute__((export_name("TS_CounterpartyChannelTransactionParameter
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = CounterpartyChannelTransactionParameters_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CounterpartyChannelTransactionParameters_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CounterpartyChannelTransactionParameters_clone"))) TS_CounterpartyChannelTransactionParameters_clone(uint32_t orig) {
@@ -33593,8 +34109,8 @@ jboolean  __attribute__((export_name("TS_ChannelTransactionParameters_is_populat
        this_arg_conv.inner = (void*)(this_arg & (~1));
        this_arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv);
-       jboolean ret_val = ChannelTransactionParameters_is_populated(&this_arg_conv);
-       return ret_val;
+       jboolean ret_conv = ChannelTransactionParameters_is_populated(&this_arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_ChannelTransactionParameters_as_holder_broadcastable"))) TS_ChannelTransactionParameters_as_holder_broadcastable(uint32_t this_arg) {
@@ -33720,8 +34236,8 @@ int16_t  __attribute__((export_name("TS_DirectedChannelTransactionParameters_con
        this_arg_conv.inner = (void*)(this_arg & (~1));
        this_arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv);
-       int16_t ret_val = DirectedChannelTransactionParameters_contest_delay(&this_arg_conv);
-       return ret_val;
+       int16_t ret_conv = DirectedChannelTransactionParameters_contest_delay(&this_arg_conv);
+       return ret_conv;
 }
 
 jboolean  __attribute__((export_name("TS_DirectedChannelTransactionParameters_is_outbound"))) TS_DirectedChannelTransactionParameters_is_outbound(uint32_t this_arg) {
@@ -33729,8 +34245,8 @@ jboolean  __attribute__((export_name("TS_DirectedChannelTransactionParameters_is
        this_arg_conv.inner = (void*)(this_arg & (~1));
        this_arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv);
-       jboolean ret_val = DirectedChannelTransactionParameters_is_outbound(&this_arg_conv);
-       return ret_val;
+       jboolean ret_conv = DirectedChannelTransactionParameters_is_outbound(&this_arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_DirectedChannelTransactionParameters_funding_outpoint"))) TS_DirectedChannelTransactionParameters_funding_outpoint(uint32_t this_arg) {
@@ -33755,8 +34271,8 @@ jboolean  __attribute__((export_name("TS_DirectedChannelTransactionParameters_op
        this_arg_conv.inner = (void*)(this_arg & (~1));
        this_arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv);
-       jboolean ret_val = DirectedChannelTransactionParameters_opt_anchors(&this_arg_conv);
-       return ret_val;
+       jboolean ret_conv = DirectedChannelTransactionParameters_opt_anchors(&this_arg_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_HolderCommitmentTransaction_free"))) TS_HolderCommitmentTransaction_free(uint32_t this_obj) {
@@ -33827,8 +34343,8 @@ uint32_t  __attribute__((export_name("TS_HolderCommitmentTransaction_clone_ptr")
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = HolderCommitmentTransaction_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = HolderCommitmentTransaction_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_HolderCommitmentTransaction_clone"))) TS_HolderCommitmentTransaction_clone(uint32_t orig) {
@@ -34002,8 +34518,8 @@ uint32_t  __attribute__((export_name("TS_BuiltCommitmentTransaction_clone_ptr"))
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = BuiltCommitmentTransaction_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = BuiltCommitmentTransaction_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_BuiltCommitmentTransaction_clone"))) TS_BuiltCommitmentTransaction_clone(uint32_t orig) {
@@ -34099,8 +34615,8 @@ uint32_t  __attribute__((export_name("TS_ClosingTransaction_clone_ptr"))) TS_Clo
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = ClosingTransaction_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = ClosingTransaction_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_ClosingTransaction_clone"))) TS_ClosingTransaction_clone(uint32_t orig) {
@@ -34125,8 +34641,8 @@ int64_t  __attribute__((export_name("TS_ClosingTransaction_hash"))) TS_ClosingTr
        o_conv.inner = (void*)(o & (~1));
        o_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv);
-       int64_t ret_val = ClosingTransaction_hash(&o_conv);
-       return ret_val;
+       int64_t ret_conv = ClosingTransaction_hash(&o_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_ClosingTransaction_new"))) TS_ClosingTransaction_new(int64_t to_holder_value_sat, int64_t to_counterparty_value_sat, int8_tArray to_holder_script, int8_tArray to_counterparty_script, uint32_t funding_outpoint) {
@@ -34192,8 +34708,8 @@ int64_t  __attribute__((export_name("TS_ClosingTransaction_to_holder_value_sat")
        this_arg_conv.inner = (void*)(this_arg & (~1));
        this_arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv);
-       int64_t ret_val = ClosingTransaction_to_holder_value_sat(&this_arg_conv);
-       return ret_val;
+       int64_t ret_conv = ClosingTransaction_to_holder_value_sat(&this_arg_conv);
+       return ret_conv;
 }
 
 int64_t  __attribute__((export_name("TS_ClosingTransaction_to_counterparty_value_sat"))) TS_ClosingTransaction_to_counterparty_value_sat(uint32_t this_arg) {
@@ -34201,8 +34717,8 @@ int64_t  __attribute__((export_name("TS_ClosingTransaction_to_counterparty_value
        this_arg_conv.inner = (void*)(this_arg & (~1));
        this_arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv);
-       int64_t ret_val = ClosingTransaction_to_counterparty_value_sat(&this_arg_conv);
-       return ret_val;
+       int64_t ret_conv = ClosingTransaction_to_counterparty_value_sat(&this_arg_conv);
+       return ret_conv;
 }
 
 int8_tArray  __attribute__((export_name("TS_ClosingTransaction_to_holder_script"))) TS_ClosingTransaction_to_holder_script(uint32_t this_arg) {
@@ -34302,8 +34818,8 @@ uint32_t  __attribute__((export_name("TS_CommitmentTransaction_clone_ptr"))) TS_
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = CommitmentTransaction_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = CommitmentTransaction_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CommitmentTransaction_clone"))) TS_CommitmentTransaction_clone(uint32_t orig) {
@@ -34349,8 +34865,8 @@ int64_t  __attribute__((export_name("TS_CommitmentTransaction_commitment_number"
        this_arg_conv.inner = (void*)(this_arg & (~1));
        this_arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv);
-       int64_t ret_val = CommitmentTransaction_commitment_number(&this_arg_conv);
-       return ret_val;
+       int64_t ret_conv = CommitmentTransaction_commitment_number(&this_arg_conv);
+       return ret_conv;
 }
 
 int64_t  __attribute__((export_name("TS_CommitmentTransaction_to_broadcaster_value_sat"))) TS_CommitmentTransaction_to_broadcaster_value_sat(uint32_t this_arg) {
@@ -34358,8 +34874,8 @@ int64_t  __attribute__((export_name("TS_CommitmentTransaction_to_broadcaster_val
        this_arg_conv.inner = (void*)(this_arg & (~1));
        this_arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv);
-       int64_t ret_val = CommitmentTransaction_to_broadcaster_value_sat(&this_arg_conv);
-       return ret_val;
+       int64_t ret_conv = CommitmentTransaction_to_broadcaster_value_sat(&this_arg_conv);
+       return ret_conv;
 }
 
 int64_t  __attribute__((export_name("TS_CommitmentTransaction_to_countersignatory_value_sat"))) TS_CommitmentTransaction_to_countersignatory_value_sat(uint32_t this_arg) {
@@ -34367,8 +34883,8 @@ int64_t  __attribute__((export_name("TS_CommitmentTransaction_to_countersignator
        this_arg_conv.inner = (void*)(this_arg & (~1));
        this_arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv);
-       int64_t ret_val = CommitmentTransaction_to_countersignatory_value_sat(&this_arg_conv);
-       return ret_val;
+       int64_t ret_conv = CommitmentTransaction_to_countersignatory_value_sat(&this_arg_conv);
+       return ret_conv;
 }
 
 int32_t  __attribute__((export_name("TS_CommitmentTransaction_feerate_per_kw"))) TS_CommitmentTransaction_feerate_per_kw(uint32_t this_arg) {
@@ -34376,8 +34892,8 @@ int32_t  __attribute__((export_name("TS_CommitmentTransaction_feerate_per_kw")))
        this_arg_conv.inner = (void*)(this_arg & (~1));
        this_arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv);
-       int32_t ret_val = CommitmentTransaction_feerate_per_kw(&this_arg_conv);
-       return ret_val;
+       int32_t ret_conv = CommitmentTransaction_feerate_per_kw(&this_arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_CommitmentTransaction_trust"))) TS_CommitmentTransaction_trust(uint32_t this_arg) {
@@ -34476,8 +34992,8 @@ jboolean  __attribute__((export_name("TS_TrustedCommitmentTransaction_opt_anchor
        this_arg_conv.inner = (void*)(this_arg & (~1));
        this_arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv);
-       jboolean ret_val = TrustedCommitmentTransaction_opt_anchors(&this_arg_conv);
-       return ret_val;
+       jboolean ret_conv = TrustedCommitmentTransaction_opt_anchors(&this_arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_TrustedCommitmentTransaction_get_htlc_sigs"))) TS_TrustedCommitmentTransaction_get_htlc_sigs(uint32_t this_arg, int8_tArray htlc_base_key, uint32_t channel_parameters) {
@@ -34505,8 +35021,8 @@ int64_t  __attribute__((export_name("TS_get_commitment_transaction_number_obscur
        LDKPublicKey countersignatory_payment_basepoint_ref;
        CHECK(countersignatory_payment_basepoint->arr_len == 33);
        memcpy(countersignatory_payment_basepoint_ref.compressed_form, countersignatory_payment_basepoint->elems, 33); FREE(countersignatory_payment_basepoint);
-       int64_t ret_val = get_commitment_transaction_number_obscure_factor(broadcaster_payment_basepoint_ref, countersignatory_payment_basepoint_ref, outbound_from_broadcaster);
-       return ret_val;
+       int64_t ret_conv = get_commitment_transaction_number_obscure_factor(broadcaster_payment_basepoint_ref, countersignatory_payment_basepoint_ref, outbound_from_broadcaster);
+       return ret_conv;
 }
 
 jboolean  __attribute__((export_name("TS_InitFeatures_eq"))) TS_InitFeatures_eq(uint32_t a, uint32_t b) {
@@ -34518,8 +35034,8 @@ jboolean  __attribute__((export_name("TS_InitFeatures_eq"))) TS_InitFeatures_eq(
        b_conv.inner = (void*)(b & (~1));
        b_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv);
-       jboolean ret_val = InitFeatures_eq(&a_conv, &b_conv);
-       return ret_val;
+       jboolean ret_conv = InitFeatures_eq(&a_conv, &b_conv);
+       return ret_conv;
 }
 
 jboolean  __attribute__((export_name("TS_NodeFeatures_eq"))) TS_NodeFeatures_eq(uint32_t a, uint32_t b) {
@@ -34531,8 +35047,8 @@ jboolean  __attribute__((export_name("TS_NodeFeatures_eq"))) TS_NodeFeatures_eq(
        b_conv.inner = (void*)(b & (~1));
        b_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv);
-       jboolean ret_val = NodeFeatures_eq(&a_conv, &b_conv);
-       return ret_val;
+       jboolean ret_conv = NodeFeatures_eq(&a_conv, &b_conv);
+       return ret_conv;
 }
 
 jboolean  __attribute__((export_name("TS_ChannelFeatures_eq"))) TS_ChannelFeatures_eq(uint32_t a, uint32_t b) {
@@ -34544,8 +35060,8 @@ jboolean  __attribute__((export_name("TS_ChannelFeatures_eq"))) TS_ChannelFeatur
        b_conv.inner = (void*)(b & (~1));
        b_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv);
-       jboolean ret_val = ChannelFeatures_eq(&a_conv, &b_conv);
-       return ret_val;
+       jboolean ret_conv = ChannelFeatures_eq(&a_conv, &b_conv);
+       return ret_conv;
 }
 
 jboolean  __attribute__((export_name("TS_InvoiceFeatures_eq"))) TS_InvoiceFeatures_eq(uint32_t a, uint32_t b) {
@@ -34557,8 +35073,8 @@ jboolean  __attribute__((export_name("TS_InvoiceFeatures_eq"))) TS_InvoiceFeatur
        b_conv.inner = (void*)(b & (~1));
        b_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv);
-       jboolean ret_val = InvoiceFeatures_eq(&a_conv, &b_conv);
-       return ret_val;
+       jboolean ret_conv = InvoiceFeatures_eq(&a_conv, &b_conv);
+       return ret_conv;
 }
 
 jboolean  __attribute__((export_name("TS_ChannelTypeFeatures_eq"))) TS_ChannelTypeFeatures_eq(uint32_t a, uint32_t b) {
@@ -34570,8 +35086,8 @@ jboolean  __attribute__((export_name("TS_ChannelTypeFeatures_eq"))) TS_ChannelTy
        b_conv.inner = (void*)(b & (~1));
        b_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv);
-       jboolean ret_val = ChannelTypeFeatures_eq(&a_conv, &b_conv);
-       return ret_val;
+       jboolean ret_conv = ChannelTypeFeatures_eq(&a_conv, &b_conv);
+       return ret_conv;
 }
 
 static inline uintptr_t InitFeatures_clone_ptr(LDKInitFeatures *NONNULL_PTR arg) {
@@ -34591,8 +35107,8 @@ uint32_t  __attribute__((export_name("TS_InitFeatures_clone_ptr"))) TS_InitFeatu
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = InitFeatures_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = InitFeatures_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_InitFeatures_clone"))) TS_InitFeatures_clone(uint32_t orig) {
@@ -34629,8 +35145,8 @@ uint32_t  __attribute__((export_name("TS_NodeFeatures_clone_ptr"))) TS_NodeFeatu
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = NodeFeatures_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = NodeFeatures_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_NodeFeatures_clone"))) TS_NodeFeatures_clone(uint32_t orig) {
@@ -34667,8 +35183,8 @@ uint32_t  __attribute__((export_name("TS_ChannelFeatures_clone_ptr"))) TS_Channe
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = ChannelFeatures_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = ChannelFeatures_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_ChannelFeatures_clone"))) TS_ChannelFeatures_clone(uint32_t orig) {
@@ -34705,8 +35221,8 @@ uint32_t  __attribute__((export_name("TS_InvoiceFeatures_clone_ptr"))) TS_Invoic
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = InvoiceFeatures_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = InvoiceFeatures_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_InvoiceFeatures_clone"))) TS_InvoiceFeatures_clone(uint32_t orig) {
@@ -34743,8 +35259,8 @@ uint32_t  __attribute__((export_name("TS_ChannelTypeFeatures_clone_ptr"))) TS_Ch
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = ChannelTypeFeatures_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = ChannelTypeFeatures_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_ChannelTypeFeatures_clone"))) TS_ChannelTypeFeatures_clone(uint32_t orig) {
@@ -34835,8 +35351,8 @@ jboolean  __attribute__((export_name("TS_InitFeatures_requires_unknown_bits")))
        this_arg_conv.inner = (void*)(this_arg & (~1));
        this_arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv);
-       jboolean ret_val = InitFeatures_requires_unknown_bits(&this_arg_conv);
-       return ret_val;
+       jboolean ret_conv = InitFeatures_requires_unknown_bits(&this_arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_NodeFeatures_empty"))) TS_NodeFeatures_empty() {
@@ -34870,8 +35386,8 @@ jboolean  __attribute__((export_name("TS_NodeFeatures_requires_unknown_bits")))
        this_arg_conv.inner = (void*)(this_arg & (~1));
        this_arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv);
-       jboolean ret_val = NodeFeatures_requires_unknown_bits(&this_arg_conv);
-       return ret_val;
+       jboolean ret_conv = NodeFeatures_requires_unknown_bits(&this_arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_ChannelFeatures_empty"))) TS_ChannelFeatures_empty() {
@@ -34905,8 +35421,8 @@ jboolean  __attribute__((export_name("TS_ChannelFeatures_requires_unknown_bits")
        this_arg_conv.inner = (void*)(this_arg & (~1));
        this_arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv);
-       jboolean ret_val = ChannelFeatures_requires_unknown_bits(&this_arg_conv);
-       return ret_val;
+       jboolean ret_conv = ChannelFeatures_requires_unknown_bits(&this_arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_InvoiceFeatures_empty"))) TS_InvoiceFeatures_empty() {
@@ -34940,8 +35456,8 @@ jboolean  __attribute__((export_name("TS_InvoiceFeatures_requires_unknown_bits")
        this_arg_conv.inner = (void*)(this_arg & (~1));
        this_arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv);
-       jboolean ret_val = InvoiceFeatures_requires_unknown_bits(&this_arg_conv);
-       return ret_val;
+       jboolean ret_conv = InvoiceFeatures_requires_unknown_bits(&this_arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_ChannelTypeFeatures_empty"))) TS_ChannelTypeFeatures_empty() {
@@ -34975,8 +35491,8 @@ jboolean  __attribute__((export_name("TS_ChannelTypeFeatures_requires_unknown_bi
        this_arg_conv.inner = (void*)(this_arg & (~1));
        this_arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv);
-       jboolean ret_val = ChannelTypeFeatures_requires_unknown_bits(&this_arg_conv);
-       return ret_val;
+       jboolean ret_conv = ChannelTypeFeatures_requires_unknown_bits(&this_arg_conv);
+       return ret_conv;
 }
 
 int8_tArray  __attribute__((export_name("TS_InitFeatures_write"))) TS_InitFeatures_write(uint32_t obj) {
@@ -35109,8 +35625,8 @@ uint32_t  __attribute__((export_name("TS_ShutdownScript_clone_ptr"))) TS_Shutdow
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = ShutdownScript_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = ShutdownScript_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_ShutdownScript_clone"))) TS_ShutdownScript_clone(uint32_t orig) {
@@ -35195,8 +35711,8 @@ uint32_t  __attribute__((export_name("TS_InvalidShutdownScript_clone_ptr"))) TS_
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = InvalidShutdownScript_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = InvalidShutdownScript_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_InvalidShutdownScript_clone"))) TS_InvalidShutdownScript_clone(uint32_t orig) {
@@ -35312,8 +35828,8 @@ jboolean  __attribute__((export_name("TS_ShutdownScript_is_compatible"))) TS_Shu
        features_conv.inner = (void*)(features & (~1));
        features_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(features_conv);
-       jboolean ret_val = ShutdownScript_is_compatible(&this_arg_conv, &features_conv);
-       return ret_val;
+       jboolean ret_conv = ShutdownScript_is_compatible(&this_arg_conv, &features_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_CustomMessageReader_free"))) TS_CustomMessageReader_free(uint32_t this_ptr) {
@@ -35334,8 +35850,8 @@ uint32_t  __attribute__((export_name("TS_Type_clone_ptr"))) TS_Type_clone_ptr(ui
        void* arg_ptr = (void*)(((uintptr_t)arg) & ~1);
        if (!(arg & 1)) { CHECK_ACCESS(arg_ptr); }
        LDKType* arg_conv = (LDKType*)arg_ptr;
-       uint32_t ret_val = Type_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = Type_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_Type_clone"))) TS_Type_clone(uint32_t orig) {
@@ -35381,8 +35897,8 @@ uint32_t  __attribute__((export_name("TS_NodeId_clone_ptr"))) TS_NodeId_clone_pt
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = NodeId_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = NodeId_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_NodeId_clone"))) TS_NodeId_clone(uint32_t orig) {
@@ -35434,8 +35950,8 @@ int64_t  __attribute__((export_name("TS_NodeId_hash"))) TS_NodeId_hash(uint32_t
        o_conv.inner = (void*)(o & (~1));
        o_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv);
-       int64_t ret_val = NodeId_hash(&o_conv);
-       return ret_val;
+       int64_t ret_conv = NodeId_hash(&o_conv);
+       return ret_conv;
 }
 
 int8_tArray  __attribute__((export_name("TS_NodeId_write"))) TS_NodeId_write(uint32_t obj) {
@@ -35484,8 +36000,8 @@ uint32_t  __attribute__((export_name("TS_NetworkGraph_clone_ptr"))) TS_NetworkGr
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = NetworkGraph_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = NetworkGraph_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_NetworkGraph_clone"))) TS_NetworkGraph_clone(uint32_t orig) {
@@ -35530,8 +36046,8 @@ uint32_t ret_ref = (uintptr_t)ret_copy;
 }
 uint32_t  __attribute__((export_name("TS_NetworkUpdate_clone_ptr"))) TS_NetworkUpdate_clone_ptr(uint32_t arg) {
        LDKNetworkUpdate* arg_conv = (LDKNetworkUpdate*)arg;
-       uint32_t ret_val = NetworkUpdate_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = NetworkUpdate_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_NetworkUpdate_clone"))) TS_NetworkUpdate_clone(uint32_t orig) {
@@ -35618,10 +36134,18 @@ uint32_t  __attribute__((export_name("TS_NetGraphMsgHandler_new"))) TS_NetGraphM
        // WARNING: we may need a move here but no clone is available for LDKCOption_AccessZ
        if (chain_access_conv.tag == LDKCOption_AccessZ_Some) {
                // Manually implement clone for Java trait instances
+               if (chain_access_conv.some.free == LDKAccess_JCalls_free) {
+                       // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+                       LDKAccess_JCalls_cloned(&chain_access_conv.some);
+               }
        }
        void* logger_ptr = (void*)(((uintptr_t)logger) & ~1);
        CHECK_ACCESS(logger_ptr);
        LDKLogger logger_conv = *(LDKLogger*)(logger_ptr);
+       if (logger_conv.free == LDKLogger_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKLogger_JCalls_cloned(&logger_conv);
+       }
        LDKNetGraphMsgHandler ret_var = NetGraphMsgHandler_new(&network_graph_conv, chain_access_conv, logger_conv);
        uint32_t ret_ref = 0;
        CHECK((((uintptr_t)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
@@ -35645,6 +36169,10 @@ void  __attribute__((export_name("TS_NetGraphMsgHandler_add_chain_access"))) TS_
        // WARNING: we may need a move here but no clone is available for LDKCOption_AccessZ
        if (chain_access_conv.tag == LDKCOption_AccessZ_Some) {
                // Manually implement clone for Java trait instances
+               if (chain_access_conv.some.free == LDKAccess_JCalls_free) {
+                       // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+                       LDKAccess_JCalls_cloned(&chain_access_conv.some);
+               }
        }
        NetGraphMsgHandler_add_chain_access(&this_arg_conv, chain_access_conv);
 }
@@ -35682,8 +36210,8 @@ int32_t  __attribute__((export_name("TS_ChannelUpdateInfo_get_last_update"))) TS
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int32_t ret_val = ChannelUpdateInfo_get_last_update(&this_ptr_conv);
-       return ret_val;
+       int32_t ret_conv = ChannelUpdateInfo_get_last_update(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ChannelUpdateInfo_set_last_update"))) TS_ChannelUpdateInfo_set_last_update(uint32_t this_ptr, int32_t val) {
@@ -35699,8 +36227,8 @@ jboolean  __attribute__((export_name("TS_ChannelUpdateInfo_get_enabled"))) TS_Ch
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       jboolean ret_val = ChannelUpdateInfo_get_enabled(&this_ptr_conv);
-       return ret_val;
+       jboolean ret_conv = ChannelUpdateInfo_get_enabled(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ChannelUpdateInfo_set_enabled"))) TS_ChannelUpdateInfo_set_enabled(uint32_t this_ptr, jboolean val) {
@@ -35716,8 +36244,8 @@ int16_t  __attribute__((export_name("TS_ChannelUpdateInfo_get_cltv_expiry_delta"
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int16_t ret_val = ChannelUpdateInfo_get_cltv_expiry_delta(&this_ptr_conv);
-       return ret_val;
+       int16_t ret_conv = ChannelUpdateInfo_get_cltv_expiry_delta(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ChannelUpdateInfo_set_cltv_expiry_delta"))) TS_ChannelUpdateInfo_set_cltv_expiry_delta(uint32_t this_ptr, int16_t val) {
@@ -35733,8 +36261,8 @@ int64_t  __attribute__((export_name("TS_ChannelUpdateInfo_get_htlc_minimum_msat"
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = ChannelUpdateInfo_get_htlc_minimum_msat(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = ChannelUpdateInfo_get_htlc_minimum_msat(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ChannelUpdateInfo_set_htlc_minimum_msat"))) TS_ChannelUpdateInfo_set_htlc_minimum_msat(uint32_t this_ptr, int64_t val) {
@@ -35874,8 +36402,8 @@ uint32_t  __attribute__((export_name("TS_ChannelUpdateInfo_clone_ptr"))) TS_Chan
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = ChannelUpdateInfo_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = ChannelUpdateInfo_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_ChannelUpdateInfo_clone"))) TS_ChannelUpdateInfo_clone(uint32_t orig) {
@@ -36150,8 +36678,8 @@ uint32_t  __attribute__((export_name("TS_ChannelInfo_clone_ptr"))) TS_ChannelInf
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = ChannelInfo_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = ChannelInfo_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_ChannelInfo_clone"))) TS_ChannelInfo_clone(uint32_t orig) {
@@ -36217,8 +36745,8 @@ uint32_t  __attribute__((export_name("TS_DirectedChannelInfo_clone_ptr"))) TS_Di
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = DirectedChannelInfo_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = DirectedChannelInfo_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_DirectedChannelInfo_clone"))) TS_DirectedChannelInfo_clone(uint32_t orig) {
@@ -36302,8 +36830,8 @@ uint32_t ret_ref = (uintptr_t)ret_copy;
 }
 uint32_t  __attribute__((export_name("TS_EffectiveCapacity_clone_ptr"))) TS_EffectiveCapacity_clone_ptr(uint32_t arg) {
        LDKEffectiveCapacity* arg_conv = (LDKEffectiveCapacity*)arg;
-       uint32_t ret_val = EffectiveCapacity_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = EffectiveCapacity_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_EffectiveCapacity_clone"))) TS_EffectiveCapacity_clone(uint32_t orig) {
@@ -36351,8 +36879,8 @@ uint32_t  __attribute__((export_name("TS_EffectiveCapacity_unknown"))) TS_Effect
 
 int64_t  __attribute__((export_name("TS_EffectiveCapacity_as_msat"))) TS_EffectiveCapacity_as_msat(uint32_t this_arg) {
        LDKEffectiveCapacity* this_arg_conv = (LDKEffectiveCapacity*)this_arg;
-       int64_t ret_val = EffectiveCapacity_as_msat(this_arg_conv);
-       return ret_val;
+       int64_t ret_conv = EffectiveCapacity_as_msat(this_arg_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_RoutingFees_free"))) TS_RoutingFees_free(uint32_t this_obj) {
@@ -36368,8 +36896,8 @@ int32_t  __attribute__((export_name("TS_RoutingFees_get_base_msat"))) TS_Routing
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int32_t ret_val = RoutingFees_get_base_msat(&this_ptr_conv);
-       return ret_val;
+       int32_t ret_conv = RoutingFees_get_base_msat(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_RoutingFees_set_base_msat"))) TS_RoutingFees_set_base_msat(uint32_t this_ptr, int32_t val) {
@@ -36385,8 +36913,8 @@ int32_t  __attribute__((export_name("TS_RoutingFees_get_proportional_millionths"
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int32_t ret_val = RoutingFees_get_proportional_millionths(&this_ptr_conv);
-       return ret_val;
+       int32_t ret_conv = RoutingFees_get_proportional_millionths(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_RoutingFees_set_proportional_millionths"))) TS_RoutingFees_set_proportional_millionths(uint32_t this_ptr, int32_t val) {
@@ -36419,8 +36947,8 @@ jboolean  __attribute__((export_name("TS_RoutingFees_eq"))) TS_RoutingFees_eq(ui
        b_conv.inner = (void*)(b & (~1));
        b_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv);
-       jboolean ret_val = RoutingFees_eq(&a_conv, &b_conv);
-       return ret_val;
+       jboolean ret_conv = RoutingFees_eq(&a_conv, &b_conv);
+       return ret_conv;
 }
 
 static inline uintptr_t RoutingFees_clone_ptr(LDKRoutingFees *NONNULL_PTR arg) {
@@ -36440,8 +36968,8 @@ uint32_t  __attribute__((export_name("TS_RoutingFees_clone_ptr"))) TS_RoutingFee
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = RoutingFees_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = RoutingFees_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_RoutingFees_clone"))) TS_RoutingFees_clone(uint32_t orig) {
@@ -36466,8 +36994,8 @@ int64_t  __attribute__((export_name("TS_RoutingFees_hash"))) TS_RoutingFees_hash
        o_conv.inner = (void*)(o & (~1));
        o_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv);
-       int64_t ret_val = RoutingFees_hash(&o_conv);
-       return ret_val;
+       int64_t ret_conv = RoutingFees_hash(&o_conv);
+       return ret_conv;
 }
 
 int8_tArray  __attribute__((export_name("TS_RoutingFees_write"))) TS_RoutingFees_write(uint32_t obj) {
@@ -36534,8 +37062,8 @@ int32_t  __attribute__((export_name("TS_NodeAnnouncementInfo_get_last_update")))
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int32_t ret_val = NodeAnnouncementInfo_get_last_update(&this_ptr_conv);
-       return ret_val;
+       int32_t ret_conv = NodeAnnouncementInfo_get_last_update(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_NodeAnnouncementInfo_set_last_update"))) TS_NodeAnnouncementInfo_set_last_update(uint32_t this_ptr, int32_t val) {
@@ -36703,8 +37231,8 @@ uint32_t  __attribute__((export_name("TS_NodeAnnouncementInfo_clone_ptr"))) TS_N
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = NodeAnnouncementInfo_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = NodeAnnouncementInfo_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_NodeAnnouncementInfo_clone"))) TS_NodeAnnouncementInfo_clone(uint32_t orig) {
@@ -36887,8 +37415,8 @@ uint32_t  __attribute__((export_name("TS_NodeInfo_clone_ptr"))) TS_NodeInfo_clon
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = NodeInfo_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = NodeInfo_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_NodeInfo_clone"))) TS_NodeInfo_clone(uint32_t orig) {
@@ -37026,6 +37554,10 @@ uint32_t  __attribute__((export_name("TS_NetworkGraph_update_channel_from_announ
        // WARNING: we may need a move here but no clone is available for LDKCOption_AccessZ
        if (chain_access_conv.tag == LDKCOption_AccessZ_Some) {
                // Manually implement clone for Java trait instances
+               if (chain_access_conv.some.free == LDKAccess_JCalls_free) {
+                       // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+                       LDKAccess_JCalls_cloned(&chain_access_conv.some);
+               }
        }
        LDKCResult_NoneLightningErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_NoneLightningErrorZ), "LDKCResult_NoneLightningErrorZ");
        *ret_conv = NetworkGraph_update_channel_from_announcement(&this_arg_conv, &msg_conv, chain_access_conv);
@@ -37047,6 +37579,10 @@ uint32_t  __attribute__((export_name("TS_NetworkGraph_update_channel_from_unsign
        // WARNING: we may need a move here but no clone is available for LDKCOption_AccessZ
        if (chain_access_conv.tag == LDKCOption_AccessZ_Some) {
                // Manually implement clone for Java trait instances
+               if (chain_access_conv.some.free == LDKAccess_JCalls_free) {
+                       // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+                       LDKAccess_JCalls_cloned(&chain_access_conv.some);
+               }
        }
        LDKCResult_NoneLightningErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_NoneLightningErrorZ), "LDKCResult_NoneLightningErrorZ");
        *ret_conv = NetworkGraph_update_channel_from_unsigned_announcement(&this_arg_conv, &msg_conv, chain_access_conv);
@@ -37186,8 +37722,8 @@ int64_t  __attribute__((export_name("TS_RouteHop_get_short_channel_id"))) TS_Rou
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = RouteHop_get_short_channel_id(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = RouteHop_get_short_channel_id(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_RouteHop_set_short_channel_id"))) TS_RouteHop_set_short_channel_id(uint32_t this_ptr, int64_t val) {
@@ -37233,8 +37769,8 @@ int64_t  __attribute__((export_name("TS_RouteHop_get_fee_msat"))) TS_RouteHop_ge
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = RouteHop_get_fee_msat(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = RouteHop_get_fee_msat(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_RouteHop_set_fee_msat"))) TS_RouteHop_set_fee_msat(uint32_t this_ptr, int64_t val) {
@@ -37250,8 +37786,8 @@ int32_t  __attribute__((export_name("TS_RouteHop_get_cltv_expiry_delta"))) TS_Ro
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int32_t ret_val = RouteHop_get_cltv_expiry_delta(&this_ptr_conv);
-       return ret_val;
+       int32_t ret_conv = RouteHop_get_cltv_expiry_delta(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_RouteHop_set_cltv_expiry_delta"))) TS_RouteHop_set_cltv_expiry_delta(uint32_t this_ptr, int32_t val) {
@@ -37305,8 +37841,8 @@ uint32_t  __attribute__((export_name("TS_RouteHop_clone_ptr"))) TS_RouteHop_clon
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = RouteHop_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = RouteHop_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_RouteHop_clone"))) TS_RouteHop_clone(uint32_t orig) {
@@ -37331,8 +37867,8 @@ int64_t  __attribute__((export_name("TS_RouteHop_hash"))) TS_RouteHop_hash(uint3
        o_conv.inner = (void*)(o & (~1));
        o_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv);
-       int64_t ret_val = RouteHop_hash(&o_conv);
-       return ret_val;
+       int64_t ret_conv = RouteHop_hash(&o_conv);
+       return ret_conv;
 }
 
 jboolean  __attribute__((export_name("TS_RouteHop_eq"))) TS_RouteHop_eq(uint32_t a, uint32_t b) {
@@ -37344,8 +37880,8 @@ jboolean  __attribute__((export_name("TS_RouteHop_eq"))) TS_RouteHop_eq(uint32_t
        b_conv.inner = (void*)(b & (~1));
        b_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv);
-       jboolean ret_val = RouteHop_eq(&a_conv, &b_conv);
-       return ret_val;
+       jboolean ret_conv = RouteHop_eq(&a_conv, &b_conv);
+       return ret_conv;
 }
 
 int8_tArray  __attribute__((export_name("TS_RouteHop_write"))) TS_RouteHop_write(uint32_t obj) {
@@ -37541,8 +38077,8 @@ uint32_t  __attribute__((export_name("TS_Route_clone_ptr"))) TS_Route_clone_ptr(
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = Route_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = Route_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_Route_clone"))) TS_Route_clone(uint32_t orig) {
@@ -37567,8 +38103,8 @@ int64_t  __attribute__((export_name("TS_Route_hash"))) TS_Route_hash(uint32_t o)
        o_conv.inner = (void*)(o & (~1));
        o_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv);
-       int64_t ret_val = Route_hash(&o_conv);
-       return ret_val;
+       int64_t ret_conv = Route_hash(&o_conv);
+       return ret_conv;
 }
 
 jboolean  __attribute__((export_name("TS_Route_eq"))) TS_Route_eq(uint32_t a, uint32_t b) {
@@ -37580,8 +38116,8 @@ jboolean  __attribute__((export_name("TS_Route_eq"))) TS_Route_eq(uint32_t a, ui
        b_conv.inner = (void*)(b & (~1));
        b_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv);
-       jboolean ret_val = Route_eq(&a_conv, &b_conv);
-       return ret_val;
+       jboolean ret_conv = Route_eq(&a_conv, &b_conv);
+       return ret_conv;
 }
 
 int64_t  __attribute__((export_name("TS_Route_get_total_fees"))) TS_Route_get_total_fees(uint32_t this_arg) {
@@ -37589,8 +38125,8 @@ int64_t  __attribute__((export_name("TS_Route_get_total_fees"))) TS_Route_get_to
        this_arg_conv.inner = (void*)(this_arg & (~1));
        this_arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv);
-       int64_t ret_val = Route_get_total_fees(&this_arg_conv);
-       return ret_val;
+       int64_t ret_conv = Route_get_total_fees(&this_arg_conv);
+       return ret_conv;
 }
 
 int64_t  __attribute__((export_name("TS_Route_get_total_amount"))) TS_Route_get_total_amount(uint32_t this_arg) {
@@ -37598,8 +38134,8 @@ int64_t  __attribute__((export_name("TS_Route_get_total_amount"))) TS_Route_get_
        this_arg_conv.inner = (void*)(this_arg & (~1));
        this_arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv);
-       int64_t ret_val = Route_get_total_amount(&this_arg_conv);
-       return ret_val;
+       int64_t ret_conv = Route_get_total_amount(&this_arg_conv);
+       return ret_conv;
 }
 
 int8_tArray  __attribute__((export_name("TS_Route_write"))) TS_Route_write(uint32_t obj) {
@@ -37666,8 +38202,8 @@ int64_t  __attribute__((export_name("TS_RouteParameters_get_final_value_msat")))
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = RouteParameters_get_final_value_msat(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = RouteParameters_get_final_value_msat(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_RouteParameters_set_final_value_msat"))) TS_RouteParameters_set_final_value_msat(uint32_t this_ptr, int64_t val) {
@@ -37683,8 +38219,8 @@ int32_t  __attribute__((export_name("TS_RouteParameters_get_final_cltv_expiry_de
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int32_t ret_val = RouteParameters_get_final_cltv_expiry_delta(&this_ptr_conv);
-       return ret_val;
+       int32_t ret_conv = RouteParameters_get_final_cltv_expiry_delta(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_RouteParameters_set_final_cltv_expiry_delta"))) TS_RouteParameters_set_final_cltv_expiry_delta(uint32_t this_ptr, int32_t val) {
@@ -37730,8 +38266,8 @@ uint32_t  __attribute__((export_name("TS_RouteParameters_clone_ptr"))) TS_RouteP
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = RouteParameters_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = RouteParameters_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_RouteParameters_clone"))) TS_RouteParameters_clone(uint32_t orig) {
@@ -37911,8 +38447,8 @@ int32_t  __attribute__((export_name("TS_PaymentParameters_get_max_total_cltv_exp
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int32_t ret_val = PaymentParameters_get_max_total_cltv_expiry_delta(&this_ptr_conv);
-       return ret_val;
+       int32_t ret_conv = PaymentParameters_get_max_total_cltv_expiry_delta(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_PaymentParameters_set_max_total_cltv_expiry_delta"))) TS_PaymentParameters_set_max_total_cltv_expiry_delta(uint32_t this_ptr, int32_t val) {
@@ -37981,8 +38517,8 @@ uint32_t  __attribute__((export_name("TS_PaymentParameters_clone_ptr"))) TS_Paym
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = PaymentParameters_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = PaymentParameters_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_PaymentParameters_clone"))) TS_PaymentParameters_clone(uint32_t orig) {
@@ -38007,8 +38543,8 @@ int64_t  __attribute__((export_name("TS_PaymentParameters_hash"))) TS_PaymentPar
        o_conv.inner = (void*)(o & (~1));
        o_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv);
-       int64_t ret_val = PaymentParameters_hash(&o_conv);
-       return ret_val;
+       int64_t ret_conv = PaymentParameters_hash(&o_conv);
+       return ret_conv;
 }
 
 jboolean  __attribute__((export_name("TS_PaymentParameters_eq"))) TS_PaymentParameters_eq(uint32_t a, uint32_t b) {
@@ -38020,8 +38556,8 @@ jboolean  __attribute__((export_name("TS_PaymentParameters_eq"))) TS_PaymentPara
        b_conv.inner = (void*)(b & (~1));
        b_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv);
-       jboolean ret_val = PaymentParameters_eq(&a_conv, &b_conv);
-       return ret_val;
+       jboolean ret_conv = PaymentParameters_eq(&a_conv, &b_conv);
+       return ret_conv;
 }
 
 int8_tArray  __attribute__((export_name("TS_PaymentParameters_write"))) TS_PaymentParameters_write(uint32_t obj) {
@@ -38181,8 +38717,8 @@ uint32_t  __attribute__((export_name("TS_RouteHint_clone_ptr"))) TS_RouteHint_cl
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = RouteHint_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = RouteHint_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_RouteHint_clone"))) TS_RouteHint_clone(uint32_t orig) {
@@ -38207,8 +38743,8 @@ int64_t  __attribute__((export_name("TS_RouteHint_hash"))) TS_RouteHint_hash(uin
        o_conv.inner = (void*)(o & (~1));
        o_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv);
-       int64_t ret_val = RouteHint_hash(&o_conv);
-       return ret_val;
+       int64_t ret_conv = RouteHint_hash(&o_conv);
+       return ret_conv;
 }
 
 jboolean  __attribute__((export_name("TS_RouteHint_eq"))) TS_RouteHint_eq(uint32_t a, uint32_t b) {
@@ -38220,8 +38756,8 @@ jboolean  __attribute__((export_name("TS_RouteHint_eq"))) TS_RouteHint_eq(uint32
        b_conv.inner = (void*)(b & (~1));
        b_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv);
-       jboolean ret_val = RouteHint_eq(&a_conv, &b_conv);
-       return ret_val;
+       jboolean ret_conv = RouteHint_eq(&a_conv, &b_conv);
+       return ret_conv;
 }
 
 int8_tArray  __attribute__((export_name("TS_RouteHint_write"))) TS_RouteHint_write(uint32_t obj) {
@@ -38279,8 +38815,8 @@ int64_t  __attribute__((export_name("TS_RouteHintHop_get_short_channel_id"))) TS
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = RouteHintHop_get_short_channel_id(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = RouteHintHop_get_short_channel_id(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_RouteHintHop_set_short_channel_id"))) TS_RouteHintHop_set_short_channel_id(uint32_t this_ptr, int64_t val) {
@@ -38326,8 +38862,8 @@ int16_t  __attribute__((export_name("TS_RouteHintHop_get_cltv_expiry_delta"))) T
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int16_t ret_val = RouteHintHop_get_cltv_expiry_delta(&this_ptr_conv);
-       return ret_val;
+       int16_t ret_conv = RouteHintHop_get_cltv_expiry_delta(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_RouteHintHop_set_cltv_expiry_delta"))) TS_RouteHintHop_set_cltv_expiry_delta(uint32_t this_ptr, int16_t val) {
@@ -38430,8 +38966,8 @@ uint32_t  __attribute__((export_name("TS_RouteHintHop_clone_ptr"))) TS_RouteHint
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = RouteHintHop_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = RouteHintHop_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_RouteHintHop_clone"))) TS_RouteHintHop_clone(uint32_t orig) {
@@ -38456,8 +38992,8 @@ int64_t  __attribute__((export_name("TS_RouteHintHop_hash"))) TS_RouteHintHop_ha
        o_conv.inner = (void*)(o & (~1));
        o_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv);
-       int64_t ret_val = RouteHintHop_hash(&o_conv);
-       return ret_val;
+       int64_t ret_conv = RouteHintHop_hash(&o_conv);
+       return ret_conv;
 }
 
 jboolean  __attribute__((export_name("TS_RouteHintHop_eq"))) TS_RouteHintHop_eq(uint32_t a, uint32_t b) {
@@ -38469,8 +39005,8 @@ jboolean  __attribute__((export_name("TS_RouteHintHop_eq"))) TS_RouteHintHop_eq(
        b_conv.inner = (void*)(b & (~1));
        b_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv);
-       jboolean ret_val = RouteHintHop_eq(&a_conv, &b_conv);
-       return ret_val;
+       jboolean ret_conv = RouteHintHop_eq(&a_conv, &b_conv);
+       return ret_conv;
 }
 
 int8_tArray  __attribute__((export_name("TS_RouteHintHop_write"))) TS_RouteHintHop_write(uint32_t obj) {
@@ -38494,7 +39030,7 @@ uint32_t  __attribute__((export_name("TS_RouteHintHop_read"))) TS_RouteHintHop_r
        return (uint32_t)ret_conv;
 }
 
-uint32_t  __attribute__((export_name("TS_find_route"))) TS_find_route(int8_tArray our_node_pubkey, uint32_t route_params, uint32_t network, uint32_tArray first_hops, uint32_t logger, uint32_t scorer) {
+uint32_t  __attribute__((export_name("TS_find_route"))) TS_find_route(int8_tArray our_node_pubkey, uint32_t route_params, uint32_t network, uint32_tArray first_hops, uint32_t logger, uint32_t scorer, int8_tArray random_seed_bytes) {
        LDKPublicKey our_node_pubkey_ref;
        CHECK(our_node_pubkey->arr_len == 33);
        memcpy(our_node_pubkey_ref.compressed_form, our_node_pubkey->elems, 33); FREE(our_node_pubkey);
@@ -38528,11 +39064,19 @@ uint32_t  __attribute__((export_name("TS_find_route"))) TS_find_route(int8_tArra
        void* logger_ptr = (void*)(((uintptr_t)logger) & ~1);
        CHECK_ACCESS(logger_ptr);
        LDKLogger logger_conv = *(LDKLogger*)(logger_ptr);
+       if (logger_conv.free == LDKLogger_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKLogger_JCalls_cloned(&logger_conv);
+       }
        void* scorer_ptr = (void*)(((uintptr_t)scorer) & ~1);
        if (!(scorer & 1)) { CHECK_ACCESS(scorer_ptr); }
        LDKScore* scorer_conv = (LDKScore*)scorer_ptr;
+       unsigned char random_seed_bytes_arr[32];
+       CHECK(random_seed_bytes->arr_len == 32);
+       memcpy(random_seed_bytes_arr, random_seed_bytes->elems, 32); FREE(random_seed_bytes);
+       unsigned char (*random_seed_bytes_ref)[32] = &random_seed_bytes_arr;
        LDKCResult_RouteLightningErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_RouteLightningErrorZ), "LDKCResult_RouteLightningErrorZ");
-       *ret_conv = find_route(our_node_pubkey_ref, &route_params_conv, &network_conv, first_hops_ptr, logger_conv, scorer_conv);
+       *ret_conv = find_route(our_node_pubkey_ref, &route_params_conv, &network_conv, first_hops_ptr, logger_conv, scorer_conv, random_seed_bytes_ref);
        if (first_hops_ptr != NULL) { FREE(first_hops_constr.data); }
        return (uint32_t)ret_conv;
 }
@@ -38567,6 +39111,10 @@ uint32_t  __attribute__((export_name("TS_MultiThreadedLockableScore_new"))) TS_M
        void* score_ptr = (void*)(((uintptr_t)score) & ~1);
        CHECK_ACCESS(score_ptr);
        LDKScore score_conv = *(LDKScore*)(score_ptr);
+       if (score_conv.free == LDKScore_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKScore_JCalls_cloned(&score_conv);
+       }
        LDKMultiThreadedLockableScore ret_var = MultiThreadedLockableScore_new(score_conv);
        uint32_t ret_ref = 0;
        CHECK((((uintptr_t)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
@@ -38604,8 +39152,8 @@ uint32_t  __attribute__((export_name("TS_FixedPenaltyScorer_clone_ptr"))) TS_Fix
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = FixedPenaltyScorer_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = FixedPenaltyScorer_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_FixedPenaltyScorer_clone"))) TS_FixedPenaltyScorer_clone(uint32_t orig) {
@@ -38625,27 +39173,6 @@ uint32_t  __attribute__((export_name("TS_FixedPenaltyScorer_clone"))) TS_FixedPe
        return ret_ref;
 }
 
-int8_tArray  __attribute__((export_name("TS_FixedPenaltyScorer_write"))) TS_FixedPenaltyScorer_write(uint32_t obj) {
-       LDKFixedPenaltyScorer obj_conv;
-       obj_conv.inner = (void*)(obj & (~1));
-       obj_conv.is_owned = false;
-       CHECK_INNER_FIELD_ACCESS_OR_NULL(obj_conv);
-       LDKCVec_u8Z ret_var = FixedPenaltyScorer_write(&obj_conv);
-       int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__);
-       memcpy(ret_arr->elems, ret_var.data, ret_var.datalen);
-       CVec_u8Z_free(ret_var);
-       return ret_arr;
-}
-
-uint32_t  __attribute__((export_name("TS_FixedPenaltyScorer_read"))) TS_FixedPenaltyScorer_read(int8_tArray ser) {
-       LDKu8slice ser_ref;
-       ser_ref.datalen = ser->arr_len;
-       ser_ref.data = ser->elems /* XXX ser leaks */;
-       LDKCResult_FixedPenaltyScorerDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_FixedPenaltyScorerDecodeErrorZ), "LDKCResult_FixedPenaltyScorerDecodeErrorZ");
-       *ret_conv = FixedPenaltyScorer_read(ser_ref);
-       return (uint32_t)ret_conv;
-}
-
 uint32_t  __attribute__((export_name("TS_FixedPenaltyScorer_with_penalty"))) TS_FixedPenaltyScorer_with_penalty(int64_t penalty_msat) {
        LDKFixedPenaltyScorer ret_var = FixedPenaltyScorer_with_penalty(penalty_msat);
        uint32_t ret_ref = 0;
@@ -38669,6 +39196,27 @@ uint32_t  __attribute__((export_name("TS_FixedPenaltyScorer_as_Score"))) TS_Fixe
        return (uint32_t)ret_ret;
 }
 
+int8_tArray  __attribute__((export_name("TS_FixedPenaltyScorer_write"))) TS_FixedPenaltyScorer_write(uint32_t obj) {
+       LDKFixedPenaltyScorer obj_conv;
+       obj_conv.inner = (void*)(obj & (~1));
+       obj_conv.is_owned = false;
+       CHECK_INNER_FIELD_ACCESS_OR_NULL(obj_conv);
+       LDKCVec_u8Z ret_var = FixedPenaltyScorer_write(&obj_conv);
+       int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__);
+       memcpy(ret_arr->elems, ret_var.data, ret_var.datalen);
+       CVec_u8Z_free(ret_var);
+       return ret_arr;
+}
+
+uint32_t  __attribute__((export_name("TS_FixedPenaltyScorer_read"))) TS_FixedPenaltyScorer_read(int8_tArray ser, int64_t arg) {
+       LDKu8slice ser_ref;
+       ser_ref.datalen = ser->arr_len;
+       ser_ref.data = ser->elems /* XXX ser leaks */;
+       LDKCResult_FixedPenaltyScorerDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_FixedPenaltyScorerDecodeErrorZ), "LDKCResult_FixedPenaltyScorerDecodeErrorZ");
+       *ret_conv = FixedPenaltyScorer_read(ser_ref, arg);
+       return (uint32_t)ret_conv;
+}
+
 void  __attribute__((export_name("TS_Scorer_free"))) TS_Scorer_free(uint32_t this_obj) {
        LDKScorer this_obj_conv;
        this_obj_conv.inner = (void*)(this_obj & (~1));
@@ -38690,8 +39238,8 @@ int64_t  __attribute__((export_name("TS_ScoringParameters_get_base_penalty_msat"
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = ScoringParameters_get_base_penalty_msat(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = ScoringParameters_get_base_penalty_msat(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ScoringParameters_set_base_penalty_msat"))) TS_ScoringParameters_set_base_penalty_msat(uint32_t this_ptr, int64_t val) {
@@ -38707,8 +39255,8 @@ int64_t  __attribute__((export_name("TS_ScoringParameters_get_failure_penalty_ms
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = ScoringParameters_get_failure_penalty_msat(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = ScoringParameters_get_failure_penalty_msat(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ScoringParameters_set_failure_penalty_msat"))) TS_ScoringParameters_set_failure_penalty_msat(uint32_t this_ptr, int64_t val) {
@@ -38724,8 +39272,8 @@ int16_t  __attribute__((export_name("TS_ScoringParameters_get_overuse_penalty_st
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int16_t ret_val = ScoringParameters_get_overuse_penalty_start_1024th(&this_ptr_conv);
-       return ret_val;
+       int16_t ret_conv = ScoringParameters_get_overuse_penalty_start_1024th(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ScoringParameters_set_overuse_penalty_start_1024th"))) TS_ScoringParameters_set_overuse_penalty_start_1024th(uint32_t this_ptr, int16_t val) {
@@ -38741,8 +39289,8 @@ int64_t  __attribute__((export_name("TS_ScoringParameters_get_overuse_penalty_ms
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = ScoringParameters_get_overuse_penalty_msat_per_1024th(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = ScoringParameters_get_overuse_penalty_msat_per_1024th(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ScoringParameters_set_overuse_penalty_msat_per_1024th"))) TS_ScoringParameters_set_overuse_penalty_msat_per_1024th(uint32_t this_ptr, int64_t val) {
@@ -38758,8 +39306,8 @@ int64_t  __attribute__((export_name("TS_ScoringParameters_get_failure_penalty_ha
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = ScoringParameters_get_failure_penalty_half_life(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = ScoringParameters_get_failure_penalty_half_life(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ScoringParameters_set_failure_penalty_half_life"))) TS_ScoringParameters_set_failure_penalty_half_life(uint32_t this_ptr, int64_t val) {
@@ -38800,8 +39348,8 @@ uint32_t  __attribute__((export_name("TS_ScoringParameters_clone_ptr"))) TS_Scor
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = ScoringParameters_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = ScoringParameters_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_ScoringParameters_clone"))) TS_ScoringParameters_clone(uint32_t orig) {
@@ -38933,13 +39481,30 @@ void  __attribute__((export_name("TS_ProbabilisticScoringParameters_free"))) TS_
        ProbabilisticScoringParameters_free(this_obj_conv);
 }
 
+int64_t  __attribute__((export_name("TS_ProbabilisticScoringParameters_get_base_penalty_msat"))) TS_ProbabilisticScoringParameters_get_base_penalty_msat(uint32_t this_ptr) {
+       LDKProbabilisticScoringParameters this_ptr_conv;
+       this_ptr_conv.inner = (void*)(this_ptr & (~1));
+       this_ptr_conv.is_owned = false;
+       CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
+       int64_t ret_conv = ProbabilisticScoringParameters_get_base_penalty_msat(&this_ptr_conv);
+       return ret_conv;
+}
+
+void  __attribute__((export_name("TS_ProbabilisticScoringParameters_set_base_penalty_msat"))) TS_ProbabilisticScoringParameters_set_base_penalty_msat(uint32_t this_ptr, int64_t val) {
+       LDKProbabilisticScoringParameters this_ptr_conv;
+       this_ptr_conv.inner = (void*)(this_ptr & (~1));
+       this_ptr_conv.is_owned = false;
+       CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
+       ProbabilisticScoringParameters_set_base_penalty_msat(&this_ptr_conv, val);
+}
+
 int64_t  __attribute__((export_name("TS_ProbabilisticScoringParameters_get_liquidity_penalty_multiplier_msat"))) TS_ProbabilisticScoringParameters_get_liquidity_penalty_multiplier_msat(uint32_t this_ptr) {
        LDKProbabilisticScoringParameters this_ptr_conv;
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = ProbabilisticScoringParameters_get_liquidity_penalty_multiplier_msat(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = ProbabilisticScoringParameters_get_liquidity_penalty_multiplier_msat(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ProbabilisticScoringParameters_set_liquidity_penalty_multiplier_msat"))) TS_ProbabilisticScoringParameters_set_liquidity_penalty_multiplier_msat(uint32_t this_ptr, int64_t val) {
@@ -38955,8 +39520,8 @@ int64_t  __attribute__((export_name("TS_ProbabilisticScoringParameters_get_liqui
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = ProbabilisticScoringParameters_get_liquidity_offset_half_life(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = ProbabilisticScoringParameters_get_liquidity_offset_half_life(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ProbabilisticScoringParameters_set_liquidity_offset_half_life"))) TS_ProbabilisticScoringParameters_set_liquidity_offset_half_life(uint32_t this_ptr, int64_t val) {
@@ -38967,8 +39532,25 @@ void  __attribute__((export_name("TS_ProbabilisticScoringParameters_set_liquidit
        ProbabilisticScoringParameters_set_liquidity_offset_half_life(&this_ptr_conv, val);
 }
 
-uint32_t  __attribute__((export_name("TS_ProbabilisticScoringParameters_new"))) TS_ProbabilisticScoringParameters_new(int64_t liquidity_penalty_multiplier_msat_arg, int64_t liquidity_offset_half_life_arg) {
-       LDKProbabilisticScoringParameters ret_var = ProbabilisticScoringParameters_new(liquidity_penalty_multiplier_msat_arg, liquidity_offset_half_life_arg);
+int64_t  __attribute__((export_name("TS_ProbabilisticScoringParameters_get_amount_penalty_multiplier_msat"))) TS_ProbabilisticScoringParameters_get_amount_penalty_multiplier_msat(uint32_t this_ptr) {
+       LDKProbabilisticScoringParameters this_ptr_conv;
+       this_ptr_conv.inner = (void*)(this_ptr & (~1));
+       this_ptr_conv.is_owned = false;
+       CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
+       int64_t ret_conv = ProbabilisticScoringParameters_get_amount_penalty_multiplier_msat(&this_ptr_conv);
+       return ret_conv;
+}
+
+void  __attribute__((export_name("TS_ProbabilisticScoringParameters_set_amount_penalty_multiplier_msat"))) TS_ProbabilisticScoringParameters_set_amount_penalty_multiplier_msat(uint32_t this_ptr, int64_t val) {
+       LDKProbabilisticScoringParameters this_ptr_conv;
+       this_ptr_conv.inner = (void*)(this_ptr & (~1));
+       this_ptr_conv.is_owned = false;
+       CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
+       ProbabilisticScoringParameters_set_amount_penalty_multiplier_msat(&this_ptr_conv, val);
+}
+
+uint32_t  __attribute__((export_name("TS_ProbabilisticScoringParameters_new"))) TS_ProbabilisticScoringParameters_new(int64_t base_penalty_msat_arg, int64_t liquidity_penalty_multiplier_msat_arg, int64_t liquidity_offset_half_life_arg, int64_t amount_penalty_multiplier_msat_arg) {
+       LDKProbabilisticScoringParameters ret_var = ProbabilisticScoringParameters_new(base_penalty_msat_arg, liquidity_penalty_multiplier_msat_arg, liquidity_offset_half_life_arg, amount_penalty_multiplier_msat_arg);
        uint32_t ret_ref = 0;
        CHECK((((uintptr_t)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
        CHECK((((uintptr_t)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
@@ -38997,8 +39579,8 @@ uint32_t  __attribute__((export_name("TS_ProbabilisticScoringParameters_clone_pt
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = ProbabilisticScoringParameters_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = ProbabilisticScoringParameters_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_ProbabilisticScoringParameters_clone"))) TS_ProbabilisticScoringParameters_clone(uint32_t orig) {
@@ -39018,27 +39600,6 @@ uint32_t  __attribute__((export_name("TS_ProbabilisticScoringParameters_clone"))
        return ret_ref;
 }
 
-int8_tArray  __attribute__((export_name("TS_ProbabilisticScoringParameters_write"))) TS_ProbabilisticScoringParameters_write(uint32_t obj) {
-       LDKProbabilisticScoringParameters obj_conv;
-       obj_conv.inner = (void*)(obj & (~1));
-       obj_conv.is_owned = false;
-       CHECK_INNER_FIELD_ACCESS_OR_NULL(obj_conv);
-       LDKCVec_u8Z ret_var = ProbabilisticScoringParameters_write(&obj_conv);
-       int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__);
-       memcpy(ret_arr->elems, ret_var.data, ret_var.datalen);
-       CVec_u8Z_free(ret_var);
-       return ret_arr;
-}
-
-uint32_t  __attribute__((export_name("TS_ProbabilisticScoringParameters_read"))) TS_ProbabilisticScoringParameters_read(int8_tArray ser) {
-       LDKu8slice ser_ref;
-       ser_ref.datalen = ser->arr_len;
-       ser_ref.data = ser->elems /* XXX ser leaks */;
-       LDKCResult_ProbabilisticScoringParametersDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_ProbabilisticScoringParametersDecodeErrorZ), "LDKCResult_ProbabilisticScoringParametersDecodeErrorZ");
-       *ret_conv = ProbabilisticScoringParameters_read(ser_ref);
-       return (uint32_t)ret_conv;
-}
-
 uint32_t  __attribute__((export_name("TS_ProbabilisticScorer_new"))) TS_ProbabilisticScorer_new(uint32_t params, uint32_t network_graph) {
        LDKProbabilisticScoringParameters params_conv;
        params_conv.inner = (void*)(params & (~1));
@@ -39096,19 +39657,235 @@ int8_tArray  __attribute__((export_name("TS_ProbabilisticScorer_write"))) TS_Pro
        return ret_arr;
 }
 
-uint32_t  __attribute__((export_name("TS_ProbabilisticScorer_read"))) TS_ProbabilisticScorer_read(int8_tArray ser, uint32_t arg) {
+uint32_t  __attribute__((export_name("TS_ProbabilisticScorer_read"))) TS_ProbabilisticScorer_read(int8_tArray ser, uint32_t arg_a, uint32_t arg_b) {
        LDKu8slice ser_ref;
        ser_ref.datalen = ser->arr_len;
        ser_ref.data = ser->elems /* XXX ser leaks */;
-       void* arg_ptr = (void*)(((uintptr_t)arg) & ~1);
-       CHECK_ACCESS(arg_ptr);
-       LDKC2Tuple_ProbabilisticScoringParametersNetworkGraphZ arg_conv = *(LDKC2Tuple_ProbabilisticScoringParametersNetworkGraphZ*)(arg_ptr);
-       arg_conv = C2Tuple_ProbabilisticScoringParametersNetworkGraphZ_clone((LDKC2Tuple_ProbabilisticScoringParametersNetworkGraphZ*)(((uintptr_t)arg) & ~1));
+       LDKProbabilisticScoringParameters arg_a_conv;
+       arg_a_conv.inner = (void*)(arg_a & (~1));
+       arg_a_conv.is_owned = (arg_a & 1) || (arg_a == 0);
+       CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_a_conv);
+       arg_a_conv = ProbabilisticScoringParameters_clone(&arg_a_conv);
+       LDKNetworkGraph arg_b_conv;
+       arg_b_conv.inner = (void*)(arg_b & (~1));
+       arg_b_conv.is_owned = false;
+       CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_b_conv);
        LDKCResult_ProbabilisticScorerDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_ProbabilisticScorerDecodeErrorZ), "LDKCResult_ProbabilisticScorerDecodeErrorZ");
-       *ret_conv = ProbabilisticScorer_read(ser_ref, arg_conv);
+       *ret_conv = ProbabilisticScorer_read(ser_ref, arg_a_conv, &arg_b_conv);
        return (uint32_t)ret_conv;
 }
 
+void  __attribute__((export_name("TS_ParseError_free"))) TS_ParseError_free(uint32_t this_ptr) {
+       if ((this_ptr & 1) != 0) return;
+       void* this_ptr_ptr = (void*)(((uintptr_t)this_ptr) & ~1);
+       CHECK_ACCESS(this_ptr_ptr);
+       LDKParseError this_ptr_conv = *(LDKParseError*)(this_ptr_ptr);
+       FREE((void*)this_ptr);
+       ParseError_free(this_ptr_conv);
+}
+
+static inline uintptr_t ParseError_clone_ptr(LDKParseError *NONNULL_PTR arg) {
+       LDKParseError *ret_copy = MALLOC(sizeof(LDKParseError), "LDKParseError");
+       *ret_copy = ParseError_clone(arg);
+uint32_t ret_ref = (uintptr_t)ret_copy;
+       return ret_ref;
+}
+uint32_t  __attribute__((export_name("TS_ParseError_clone_ptr"))) TS_ParseError_clone_ptr(uint32_t arg) {
+       LDKParseError* arg_conv = (LDKParseError*)arg;
+       uint32_t ret_conv = ParseError_clone_ptr(arg_conv);
+       return ret_conv;
+}
+
+uint32_t  __attribute__((export_name("TS_ParseError_clone"))) TS_ParseError_clone(uint32_t orig) {
+       LDKParseError* orig_conv = (LDKParseError*)orig;
+       LDKParseError *ret_copy = MALLOC(sizeof(LDKParseError), "LDKParseError");
+       *ret_copy = ParseError_clone(orig_conv);
+       uint32_t ret_ref = (uintptr_t)ret_copy;
+       return ret_ref;
+}
+
+uint32_t  __attribute__((export_name("TS_ParseError_bech32_error"))) TS_ParseError_bech32_error(uint32_t a) {
+       void* a_ptr = (void*)(((uintptr_t)a) & ~1);
+       CHECK_ACCESS(a_ptr);
+       LDKBech32Error a_conv = *(LDKBech32Error*)(a_ptr);
+       a_conv = Bech32Error_clone((LDKBech32Error*)(((uintptr_t)a) & ~1));
+       LDKParseError *ret_copy = MALLOC(sizeof(LDKParseError), "LDKParseError");
+       *ret_copy = ParseError_bech32_error(a_conv);
+       uint32_t ret_ref = (uintptr_t)ret_copy;
+       return ret_ref;
+}
+
+uint32_t  __attribute__((export_name("TS_ParseError_parse_amount_error"))) TS_ParseError_parse_amount_error(int32_t a) {
+       
+       LDKParseError *ret_copy = MALLOC(sizeof(LDKParseError), "LDKParseError");
+       *ret_copy = ParseError_parse_amount_error((LDKError){ ._dummy = 0 });
+       uint32_t ret_ref = (uintptr_t)ret_copy;
+       return ret_ref;
+}
+
+uint32_t  __attribute__((export_name("TS_ParseError_malformed_signature"))) TS_ParseError_malformed_signature(uint32_t a) {
+       LDKSecp256k1Error a_conv = LDKSecp256k1Error_from_js(a);
+       LDKParseError *ret_copy = MALLOC(sizeof(LDKParseError), "LDKParseError");
+       *ret_copy = ParseError_malformed_signature(a_conv);
+       uint32_t ret_ref = (uintptr_t)ret_copy;
+       return ret_ref;
+}
+
+uint32_t  __attribute__((export_name("TS_ParseError_bad_prefix"))) TS_ParseError_bad_prefix() {
+       LDKParseError *ret_copy = MALLOC(sizeof(LDKParseError), "LDKParseError");
+       *ret_copy = ParseError_bad_prefix();
+       uint32_t ret_ref = (uintptr_t)ret_copy;
+       return ret_ref;
+}
+
+uint32_t  __attribute__((export_name("TS_ParseError_unknown_currency"))) TS_ParseError_unknown_currency() {
+       LDKParseError *ret_copy = MALLOC(sizeof(LDKParseError), "LDKParseError");
+       *ret_copy = ParseError_unknown_currency();
+       uint32_t ret_ref = (uintptr_t)ret_copy;
+       return ret_ref;
+}
+
+uint32_t  __attribute__((export_name("TS_ParseError_unknown_si_prefix"))) TS_ParseError_unknown_si_prefix() {
+       LDKParseError *ret_copy = MALLOC(sizeof(LDKParseError), "LDKParseError");
+       *ret_copy = ParseError_unknown_si_prefix();
+       uint32_t ret_ref = (uintptr_t)ret_copy;
+       return ret_ref;
+}
+
+uint32_t  __attribute__((export_name("TS_ParseError_malformed_hrp"))) TS_ParseError_malformed_hrp() {
+       LDKParseError *ret_copy = MALLOC(sizeof(LDKParseError), "LDKParseError");
+       *ret_copy = ParseError_malformed_hrp();
+       uint32_t ret_ref = (uintptr_t)ret_copy;
+       return ret_ref;
+}
+
+uint32_t  __attribute__((export_name("TS_ParseError_too_short_data_part"))) TS_ParseError_too_short_data_part() {
+       LDKParseError *ret_copy = MALLOC(sizeof(LDKParseError), "LDKParseError");
+       *ret_copy = ParseError_too_short_data_part();
+       uint32_t ret_ref = (uintptr_t)ret_copy;
+       return ret_ref;
+}
+
+uint32_t  __attribute__((export_name("TS_ParseError_unexpected_end_of_tagged_fields"))) TS_ParseError_unexpected_end_of_tagged_fields() {
+       LDKParseError *ret_copy = MALLOC(sizeof(LDKParseError), "LDKParseError");
+       *ret_copy = ParseError_unexpected_end_of_tagged_fields();
+       uint32_t ret_ref = (uintptr_t)ret_copy;
+       return ret_ref;
+}
+
+uint32_t  __attribute__((export_name("TS_ParseError_description_decode_error"))) TS_ParseError_description_decode_error(int32_t a) {
+       
+       LDKParseError *ret_copy = MALLOC(sizeof(LDKParseError), "LDKParseError");
+       *ret_copy = ParseError_description_decode_error((LDKError){ ._dummy = 0 });
+       uint32_t ret_ref = (uintptr_t)ret_copy;
+       return ret_ref;
+}
+
+uint32_t  __attribute__((export_name("TS_ParseError_padding_error"))) TS_ParseError_padding_error() {
+       LDKParseError *ret_copy = MALLOC(sizeof(LDKParseError), "LDKParseError");
+       *ret_copy = ParseError_padding_error();
+       uint32_t ret_ref = (uintptr_t)ret_copy;
+       return ret_ref;
+}
+
+uint32_t  __attribute__((export_name("TS_ParseError_integer_overflow_error"))) TS_ParseError_integer_overflow_error() {
+       LDKParseError *ret_copy = MALLOC(sizeof(LDKParseError), "LDKParseError");
+       *ret_copy = ParseError_integer_overflow_error();
+       uint32_t ret_ref = (uintptr_t)ret_copy;
+       return ret_ref;
+}
+
+uint32_t  __attribute__((export_name("TS_ParseError_invalid_seg_wit_program_length"))) TS_ParseError_invalid_seg_wit_program_length() {
+       LDKParseError *ret_copy = MALLOC(sizeof(LDKParseError), "LDKParseError");
+       *ret_copy = ParseError_invalid_seg_wit_program_length();
+       uint32_t ret_ref = (uintptr_t)ret_copy;
+       return ret_ref;
+}
+
+uint32_t  __attribute__((export_name("TS_ParseError_invalid_pub_key_hash_length"))) TS_ParseError_invalid_pub_key_hash_length() {
+       LDKParseError *ret_copy = MALLOC(sizeof(LDKParseError), "LDKParseError");
+       *ret_copy = ParseError_invalid_pub_key_hash_length();
+       uint32_t ret_ref = (uintptr_t)ret_copy;
+       return ret_ref;
+}
+
+uint32_t  __attribute__((export_name("TS_ParseError_invalid_script_hash_length"))) TS_ParseError_invalid_script_hash_length() {
+       LDKParseError *ret_copy = MALLOC(sizeof(LDKParseError), "LDKParseError");
+       *ret_copy = ParseError_invalid_script_hash_length();
+       uint32_t ret_ref = (uintptr_t)ret_copy;
+       return ret_ref;
+}
+
+uint32_t  __attribute__((export_name("TS_ParseError_invalid_recovery_id"))) TS_ParseError_invalid_recovery_id() {
+       LDKParseError *ret_copy = MALLOC(sizeof(LDKParseError), "LDKParseError");
+       *ret_copy = ParseError_invalid_recovery_id();
+       uint32_t ret_ref = (uintptr_t)ret_copy;
+       return ret_ref;
+}
+
+uint32_t  __attribute__((export_name("TS_ParseError_invalid_slice_length"))) TS_ParseError_invalid_slice_length(jstring a) {
+       LDKStr a_conv = str_ref_to_owned_c(a);
+       LDKParseError *ret_copy = MALLOC(sizeof(LDKParseError), "LDKParseError");
+       *ret_copy = ParseError_invalid_slice_length(a_conv);
+       uint32_t ret_ref = (uintptr_t)ret_copy;
+       return ret_ref;
+}
+
+uint32_t  __attribute__((export_name("TS_ParseError_skip"))) TS_ParseError_skip() {
+       LDKParseError *ret_copy = MALLOC(sizeof(LDKParseError), "LDKParseError");
+       *ret_copy = ParseError_skip();
+       uint32_t ret_ref = (uintptr_t)ret_copy;
+       return ret_ref;
+}
+
+void  __attribute__((export_name("TS_ParseOrSemanticError_free"))) TS_ParseOrSemanticError_free(uint32_t this_ptr) {
+       if ((this_ptr & 1) != 0) return;
+       void* this_ptr_ptr = (void*)(((uintptr_t)this_ptr) & ~1);
+       CHECK_ACCESS(this_ptr_ptr);
+       LDKParseOrSemanticError this_ptr_conv = *(LDKParseOrSemanticError*)(this_ptr_ptr);
+       FREE((void*)this_ptr);
+       ParseOrSemanticError_free(this_ptr_conv);
+}
+
+static inline uintptr_t ParseOrSemanticError_clone_ptr(LDKParseOrSemanticError *NONNULL_PTR arg) {
+       LDKParseOrSemanticError *ret_copy = MALLOC(sizeof(LDKParseOrSemanticError), "LDKParseOrSemanticError");
+       *ret_copy = ParseOrSemanticError_clone(arg);
+uint32_t ret_ref = (uintptr_t)ret_copy;
+       return ret_ref;
+}
+uint32_t  __attribute__((export_name("TS_ParseOrSemanticError_clone_ptr"))) TS_ParseOrSemanticError_clone_ptr(uint32_t arg) {
+       LDKParseOrSemanticError* arg_conv = (LDKParseOrSemanticError*)arg;
+       uint32_t ret_conv = ParseOrSemanticError_clone_ptr(arg_conv);
+       return ret_conv;
+}
+
+uint32_t  __attribute__((export_name("TS_ParseOrSemanticError_clone"))) TS_ParseOrSemanticError_clone(uint32_t orig) {
+       LDKParseOrSemanticError* orig_conv = (LDKParseOrSemanticError*)orig;
+       LDKParseOrSemanticError *ret_copy = MALLOC(sizeof(LDKParseOrSemanticError), "LDKParseOrSemanticError");
+       *ret_copy = ParseOrSemanticError_clone(orig_conv);
+       uint32_t ret_ref = (uintptr_t)ret_copy;
+       return ret_ref;
+}
+
+uint32_t  __attribute__((export_name("TS_ParseOrSemanticError_parse_error"))) TS_ParseOrSemanticError_parse_error(uint32_t a) {
+       void* a_ptr = (void*)(((uintptr_t)a) & ~1);
+       CHECK_ACCESS(a_ptr);
+       LDKParseError a_conv = *(LDKParseError*)(a_ptr);
+       a_conv = ParseError_clone((LDKParseError*)(((uintptr_t)a) & ~1));
+       LDKParseOrSemanticError *ret_copy = MALLOC(sizeof(LDKParseOrSemanticError), "LDKParseOrSemanticError");
+       *ret_copy = ParseOrSemanticError_parse_error(a_conv);
+       uint32_t ret_ref = (uintptr_t)ret_copy;
+       return ret_ref;
+}
+
+uint32_t  __attribute__((export_name("TS_ParseOrSemanticError_semantic_error"))) TS_ParseOrSemanticError_semantic_error(uint32_t a) {
+       LDKSemanticError a_conv = LDKSemanticError_from_js(a);
+       LDKParseOrSemanticError *ret_copy = MALLOC(sizeof(LDKParseOrSemanticError), "LDKParseOrSemanticError");
+       *ret_copy = ParseOrSemanticError_semantic_error(a_conv);
+       uint32_t ret_ref = (uintptr_t)ret_copy;
+       return ret_ref;
+}
+
 void  __attribute__((export_name("TS_Invoice_free"))) TS_Invoice_free(uint32_t this_obj) {
        LDKInvoice this_obj_conv;
        this_obj_conv.inner = (void*)(this_obj & (~1));
@@ -39126,8 +39903,8 @@ jboolean  __attribute__((export_name("TS_Invoice_eq"))) TS_Invoice_eq(uint32_t a
        b_conv.inner = (void*)(b & (~1));
        b_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv);
-       jboolean ret_val = Invoice_eq(&a_conv, &b_conv);
-       return ret_val;
+       jboolean ret_conv = Invoice_eq(&a_conv, &b_conv);
+       return ret_conv;
 }
 
 static inline uintptr_t Invoice_clone_ptr(LDKInvoice *NONNULL_PTR arg) {
@@ -39147,8 +39924,8 @@ uint32_t  __attribute__((export_name("TS_Invoice_clone_ptr"))) TS_Invoice_clone_
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = Invoice_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = Invoice_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_Invoice_clone"))) TS_Invoice_clone(uint32_t orig) {
@@ -39185,8 +39962,8 @@ jboolean  __attribute__((export_name("TS_SignedRawInvoice_eq"))) TS_SignedRawInv
        b_conv.inner = (void*)(b & (~1));
        b_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv);
-       jboolean ret_val = SignedRawInvoice_eq(&a_conv, &b_conv);
-       return ret_val;
+       jboolean ret_conv = SignedRawInvoice_eq(&a_conv, &b_conv);
+       return ret_conv;
 }
 
 static inline uintptr_t SignedRawInvoice_clone_ptr(LDKSignedRawInvoice *NONNULL_PTR arg) {
@@ -39206,8 +39983,8 @@ uint32_t  __attribute__((export_name("TS_SignedRawInvoice_clone_ptr"))) TS_Signe
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = SignedRawInvoice_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = SignedRawInvoice_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_SignedRawInvoice_clone"))) TS_SignedRawInvoice_clone(uint32_t orig) {
@@ -39274,8 +40051,8 @@ jboolean  __attribute__((export_name("TS_RawInvoice_eq"))) TS_RawInvoice_eq(uint
        b_conv.inner = (void*)(b & (~1));
        b_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv);
-       jboolean ret_val = RawInvoice_eq(&a_conv, &b_conv);
-       return ret_val;
+       jboolean ret_conv = RawInvoice_eq(&a_conv, &b_conv);
+       return ret_conv;
 }
 
 static inline uintptr_t RawInvoice_clone_ptr(LDKRawInvoice *NONNULL_PTR arg) {
@@ -39295,8 +40072,8 @@ uint32_t  __attribute__((export_name("TS_RawInvoice_clone_ptr"))) TS_RawInvoice_
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = RawInvoice_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = RawInvoice_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_RawInvoice_clone"))) TS_RawInvoice_clone(uint32_t orig) {
@@ -39363,8 +40140,8 @@ jboolean  __attribute__((export_name("TS_RawDataPart_eq"))) TS_RawDataPart_eq(ui
        b_conv.inner = (void*)(b & (~1));
        b_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv);
-       jboolean ret_val = RawDataPart_eq(&a_conv, &b_conv);
-       return ret_val;
+       jboolean ret_conv = RawDataPart_eq(&a_conv, &b_conv);
+       return ret_conv;
 }
 
 static inline uintptr_t RawDataPart_clone_ptr(LDKRawDataPart *NONNULL_PTR arg) {
@@ -39384,8 +40161,8 @@ uint32_t  __attribute__((export_name("TS_RawDataPart_clone_ptr"))) TS_RawDataPar
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = RawDataPart_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = RawDataPart_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_RawDataPart_clone"))) TS_RawDataPart_clone(uint32_t orig) {
@@ -39422,8 +40199,8 @@ jboolean  __attribute__((export_name("TS_PositiveTimestamp_eq"))) TS_PositiveTim
        b_conv.inner = (void*)(b & (~1));
        b_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv);
-       jboolean ret_val = PositiveTimestamp_eq(&a_conv, &b_conv);
-       return ret_val;
+       jboolean ret_conv = PositiveTimestamp_eq(&a_conv, &b_conv);
+       return ret_conv;
 }
 
 static inline uintptr_t PositiveTimestamp_clone_ptr(LDKPositiveTimestamp *NONNULL_PTR arg) {
@@ -39443,8 +40220,8 @@ uint32_t  __attribute__((export_name("TS_PositiveTimestamp_clone_ptr"))) TS_Posi
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = PositiveTimestamp_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = PositiveTimestamp_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_PositiveTimestamp_clone"))) TS_PositiveTimestamp_clone(uint32_t orig) {
@@ -39493,14 +40270,14 @@ uint32_t  __attribute__((export_name("TS_SiPrefix_pico"))) TS_SiPrefix_pico() {
 jboolean  __attribute__((export_name("TS_SiPrefix_eq"))) TS_SiPrefix_eq(uint32_t a, uint32_t b) {
        LDKSiPrefix* a_conv = (LDKSiPrefix*)(a & ~1);
        LDKSiPrefix* b_conv = (LDKSiPrefix*)(b & ~1);
-       jboolean ret_val = SiPrefix_eq(a_conv, b_conv);
-       return ret_val;
+       jboolean ret_conv = SiPrefix_eq(a_conv, b_conv);
+       return ret_conv;
 }
 
 int64_t  __attribute__((export_name("TS_SiPrefix_multiplier"))) TS_SiPrefix_multiplier(uint32_t this_arg) {
        LDKSiPrefix* this_arg_conv = (LDKSiPrefix*)(this_arg & ~1);
-       int64_t ret_val = SiPrefix_multiplier(this_arg_conv);
-       return ret_val;
+       int64_t ret_conv = SiPrefix_multiplier(this_arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_Currency_clone"))) TS_Currency_clone(uint32_t orig) {
@@ -39536,15 +40313,15 @@ uint32_t  __attribute__((export_name("TS_Currency_signet"))) TS_Currency_signet(
 
 int64_t  __attribute__((export_name("TS_Currency_hash"))) TS_Currency_hash(uint32_t o) {
        LDKCurrency* o_conv = (LDKCurrency*)(o & ~1);
-       int64_t ret_val = Currency_hash(o_conv);
-       return ret_val;
+       int64_t ret_conv = Currency_hash(o_conv);
+       return ret_conv;
 }
 
 jboolean  __attribute__((export_name("TS_Currency_eq"))) TS_Currency_eq(uint32_t a, uint32_t b) {
        LDKCurrency* a_conv = (LDKCurrency*)(a & ~1);
        LDKCurrency* b_conv = (LDKCurrency*)(b & ~1);
-       jboolean ret_val = Currency_eq(a_conv, b_conv);
-       return ret_val;
+       jboolean ret_conv = Currency_eq(a_conv, b_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_Sha256_free"))) TS_Sha256_free(uint32_t this_obj) {
@@ -39572,8 +40349,8 @@ uint32_t  __attribute__((export_name("TS_Sha256_clone_ptr"))) TS_Sha256_clone_pt
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = Sha256_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = Sha256_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_Sha256_clone"))) TS_Sha256_clone(uint32_t orig) {
@@ -39598,8 +40375,8 @@ int64_t  __attribute__((export_name("TS_Sha256_hash"))) TS_Sha256_hash(uint32_t
        o_conv.inner = (void*)(o & (~1));
        o_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv);
-       int64_t ret_val = Sha256_hash(&o_conv);
-       return ret_val;
+       int64_t ret_conv = Sha256_hash(&o_conv);
+       return ret_conv;
 }
 
 jboolean  __attribute__((export_name("TS_Sha256_eq"))) TS_Sha256_eq(uint32_t a, uint32_t b) {
@@ -39611,8 +40388,8 @@ jboolean  __attribute__((export_name("TS_Sha256_eq"))) TS_Sha256_eq(uint32_t a,
        b_conv.inner = (void*)(b & (~1));
        b_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv);
-       jboolean ret_val = Sha256_eq(&a_conv, &b_conv);
-       return ret_val;
+       jboolean ret_conv = Sha256_eq(&a_conv, &b_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_Description_free"))) TS_Description_free(uint32_t this_obj) {
@@ -39640,8 +40417,8 @@ uint32_t  __attribute__((export_name("TS_Description_clone_ptr"))) TS_Descriptio
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = Description_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = Description_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_Description_clone"))) TS_Description_clone(uint32_t orig) {
@@ -39666,8 +40443,8 @@ int64_t  __attribute__((export_name("TS_Description_hash"))) TS_Description_hash
        o_conv.inner = (void*)(o & (~1));
        o_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv);
-       int64_t ret_val = Description_hash(&o_conv);
-       return ret_val;
+       int64_t ret_conv = Description_hash(&o_conv);
+       return ret_conv;
 }
 
 jboolean  __attribute__((export_name("TS_Description_eq"))) TS_Description_eq(uint32_t a, uint32_t b) {
@@ -39679,8 +40456,8 @@ jboolean  __attribute__((export_name("TS_Description_eq"))) TS_Description_eq(ui
        b_conv.inner = (void*)(b & (~1));
        b_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv);
-       jboolean ret_val = Description_eq(&a_conv, &b_conv);
-       return ret_val;
+       jboolean ret_conv = Description_eq(&a_conv, &b_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_PayeePubKey_free"))) TS_PayeePubKey_free(uint32_t this_obj) {
@@ -39745,8 +40522,8 @@ uint32_t  __attribute__((export_name("TS_PayeePubKey_clone_ptr"))) TS_PayeePubKe
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = PayeePubKey_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = PayeePubKey_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_PayeePubKey_clone"))) TS_PayeePubKey_clone(uint32_t orig) {
@@ -39771,8 +40548,8 @@ int64_t  __attribute__((export_name("TS_PayeePubKey_hash"))) TS_PayeePubKey_hash
        o_conv.inner = (void*)(o & (~1));
        o_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv);
-       int64_t ret_val = PayeePubKey_hash(&o_conv);
-       return ret_val;
+       int64_t ret_conv = PayeePubKey_hash(&o_conv);
+       return ret_conv;
 }
 
 jboolean  __attribute__((export_name("TS_PayeePubKey_eq"))) TS_PayeePubKey_eq(uint32_t a, uint32_t b) {
@@ -39784,8 +40561,8 @@ jboolean  __attribute__((export_name("TS_PayeePubKey_eq"))) TS_PayeePubKey_eq(ui
        b_conv.inner = (void*)(b & (~1));
        b_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv);
-       jboolean ret_val = PayeePubKey_eq(&a_conv, &b_conv);
-       return ret_val;
+       jboolean ret_conv = PayeePubKey_eq(&a_conv, &b_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_ExpiryTime_free"))) TS_ExpiryTime_free(uint32_t this_obj) {
@@ -39813,8 +40590,8 @@ uint32_t  __attribute__((export_name("TS_ExpiryTime_clone_ptr"))) TS_ExpiryTime_
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = ExpiryTime_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = ExpiryTime_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_ExpiryTime_clone"))) TS_ExpiryTime_clone(uint32_t orig) {
@@ -39839,8 +40616,8 @@ int64_t  __attribute__((export_name("TS_ExpiryTime_hash"))) TS_ExpiryTime_hash(u
        o_conv.inner = (void*)(o & (~1));
        o_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv);
-       int64_t ret_val = ExpiryTime_hash(&o_conv);
-       return ret_val;
+       int64_t ret_conv = ExpiryTime_hash(&o_conv);
+       return ret_conv;
 }
 
 jboolean  __attribute__((export_name("TS_ExpiryTime_eq"))) TS_ExpiryTime_eq(uint32_t a, uint32_t b) {
@@ -39852,8 +40629,8 @@ jboolean  __attribute__((export_name("TS_ExpiryTime_eq"))) TS_ExpiryTime_eq(uint
        b_conv.inner = (void*)(b & (~1));
        b_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv);
-       jboolean ret_val = ExpiryTime_eq(&a_conv, &b_conv);
-       return ret_val;
+       jboolean ret_conv = ExpiryTime_eq(&a_conv, &b_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_MinFinalCltvExpiry_free"))) TS_MinFinalCltvExpiry_free(uint32_t this_obj) {
@@ -39869,8 +40646,8 @@ int64_t  __attribute__((export_name("TS_MinFinalCltvExpiry_get_a"))) TS_MinFinal
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       int64_t ret_val = MinFinalCltvExpiry_get_a(&this_ptr_conv);
-       return ret_val;
+       int64_t ret_conv = MinFinalCltvExpiry_get_a(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_MinFinalCltvExpiry_set_a"))) TS_MinFinalCltvExpiry_set_a(uint32_t this_ptr, int64_t val) {
@@ -39911,8 +40688,8 @@ uint32_t  __attribute__((export_name("TS_MinFinalCltvExpiry_clone_ptr"))) TS_Min
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = MinFinalCltvExpiry_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = MinFinalCltvExpiry_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_MinFinalCltvExpiry_clone"))) TS_MinFinalCltvExpiry_clone(uint32_t orig) {
@@ -39937,8 +40714,8 @@ int64_t  __attribute__((export_name("TS_MinFinalCltvExpiry_hash"))) TS_MinFinalC
        o_conv.inner = (void*)(o & (~1));
        o_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv);
-       int64_t ret_val = MinFinalCltvExpiry_hash(&o_conv);
-       return ret_val;
+       int64_t ret_conv = MinFinalCltvExpiry_hash(&o_conv);
+       return ret_conv;
 }
 
 jboolean  __attribute__((export_name("TS_MinFinalCltvExpiry_eq"))) TS_MinFinalCltvExpiry_eq(uint32_t a, uint32_t b) {
@@ -39950,8 +40727,8 @@ jboolean  __attribute__((export_name("TS_MinFinalCltvExpiry_eq"))) TS_MinFinalCl
        b_conv.inner = (void*)(b & (~1));
        b_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv);
-       jboolean ret_val = MinFinalCltvExpiry_eq(&a_conv, &b_conv);
-       return ret_val;
+       jboolean ret_conv = MinFinalCltvExpiry_eq(&a_conv, &b_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_Fallback_free"))) TS_Fallback_free(uint32_t this_ptr) {
@@ -39971,8 +40748,8 @@ uint32_t ret_ref = (uintptr_t)ret_copy;
 }
 uint32_t  __attribute__((export_name("TS_Fallback_clone_ptr"))) TS_Fallback_clone_ptr(uint32_t arg) {
        LDKFallback* arg_conv = (LDKFallback*)arg;
-       uint32_t ret_val = Fallback_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = Fallback_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_Fallback_clone"))) TS_Fallback_clone(uint32_t orig) {
@@ -40017,15 +40794,15 @@ uint32_t  __attribute__((export_name("TS_Fallback_script_hash"))) TS_Fallback_sc
 
 int64_t  __attribute__((export_name("TS_Fallback_hash"))) TS_Fallback_hash(uint32_t o) {
        LDKFallback* o_conv = (LDKFallback*)o;
-       int64_t ret_val = Fallback_hash(o_conv);
-       return ret_val;
+       int64_t ret_conv = Fallback_hash(o_conv);
+       return ret_conv;
 }
 
 jboolean  __attribute__((export_name("TS_Fallback_eq"))) TS_Fallback_eq(uint32_t a, uint32_t b) {
        LDKFallback* a_conv = (LDKFallback*)a;
        LDKFallback* b_conv = (LDKFallback*)b;
-       jboolean ret_val = Fallback_eq(a_conv, b_conv);
-       return ret_val;
+       jboolean ret_conv = Fallback_eq(a_conv, b_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_InvoiceSignature_free"))) TS_InvoiceSignature_free(uint32_t this_obj) {
@@ -40053,8 +40830,8 @@ uint32_t  __attribute__((export_name("TS_InvoiceSignature_clone_ptr"))) TS_Invoi
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = InvoiceSignature_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = InvoiceSignature_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_InvoiceSignature_clone"))) TS_InvoiceSignature_clone(uint32_t orig) {
@@ -40083,8 +40860,8 @@ jboolean  __attribute__((export_name("TS_InvoiceSignature_eq"))) TS_InvoiceSigna
        b_conv.inner = (void*)(b & (~1));
        b_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv);
-       jboolean ret_val = InvoiceSignature_eq(&a_conv, &b_conv);
-       return ret_val;
+       jboolean ret_conv = InvoiceSignature_eq(&a_conv, &b_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_PrivateRoute_free"))) TS_PrivateRoute_free(uint32_t this_obj) {
@@ -40112,8 +40889,8 @@ uint32_t  __attribute__((export_name("TS_PrivateRoute_clone_ptr"))) TS_PrivateRo
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = PrivateRoute_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = PrivateRoute_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_PrivateRoute_clone"))) TS_PrivateRoute_clone(uint32_t orig) {
@@ -40138,8 +40915,8 @@ int64_t  __attribute__((export_name("TS_PrivateRoute_hash"))) TS_PrivateRoute_ha
        o_conv.inner = (void*)(o & (~1));
        o_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv);
-       int64_t ret_val = PrivateRoute_hash(&o_conv);
-       return ret_val;
+       int64_t ret_conv = PrivateRoute_hash(&o_conv);
+       return ret_conv;
 }
 
 jboolean  __attribute__((export_name("TS_PrivateRoute_eq"))) TS_PrivateRoute_eq(uint32_t a, uint32_t b) {
@@ -40151,8 +40928,8 @@ jboolean  __attribute__((export_name("TS_PrivateRoute_eq"))) TS_PrivateRoute_eq(
        b_conv.inner = (void*)(b & (~1));
        b_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv);
-       jboolean ret_val = PrivateRoute_eq(&a_conv, &b_conv);
-       return ret_val;
+       jboolean ret_conv = PrivateRoute_eq(&a_conv, &b_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_SignedRawInvoice_into_parts"))) TS_SignedRawInvoice_into_parts(uint32_t this_arg) {
@@ -40225,8 +41002,8 @@ jboolean  __attribute__((export_name("TS_SignedRawInvoice_check_signature"))) TS
        this_arg_conv.inner = (void*)(this_arg & (~1));
        this_arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv);
-       jboolean ret_val = SignedRawInvoice_check_signature(&this_arg_conv);
-       return ret_val;
+       jboolean ret_conv = SignedRawInvoice_check_signature(&this_arg_conv);
+       return ret_conv;
 }
 
 int8_tArray  __attribute__((export_name("TS_RawInvoice_hash"))) TS_RawInvoice_hash(uint32_t this_arg) {
@@ -40445,8 +41222,8 @@ int64_t  __attribute__((export_name("TS_PositiveTimestamp_as_unix_timestamp")))
        this_arg_conv.inner = (void*)(this_arg & (~1));
        this_arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv);
-       int64_t ret_val = PositiveTimestamp_as_unix_timestamp(&this_arg_conv);
-       return ret_val;
+       int64_t ret_conv = PositiveTimestamp_as_unix_timestamp(&this_arg_conv);
+       return ret_conv;
 }
 
 int64_t  __attribute__((export_name("TS_PositiveTimestamp_as_duration_since_epoch"))) TS_PositiveTimestamp_as_duration_since_epoch(uint32_t this_arg) {
@@ -40454,8 +41231,8 @@ int64_t  __attribute__((export_name("TS_PositiveTimestamp_as_duration_since_epoc
        this_arg_conv.inner = (void*)(this_arg & (~1));
        this_arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv);
-       int64_t ret_val = PositiveTimestamp_as_duration_since_epoch(&this_arg_conv);
-       return ret_val;
+       int64_t ret_conv = PositiveTimestamp_as_duration_since_epoch(&this_arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_Invoice_into_signed_raw"))) TS_Invoice_into_signed_raw(uint32_t this_arg) {
@@ -40502,8 +41279,8 @@ int64_t  __attribute__((export_name("TS_Invoice_duration_since_epoch"))) TS_Invo
        this_arg_conv.inner = (void*)(this_arg & (~1));
        this_arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv);
-       int64_t ret_val = Invoice_duration_since_epoch(&this_arg_conv);
-       return ret_val;
+       int64_t ret_conv = Invoice_duration_since_epoch(&this_arg_conv);
+       return ret_conv;
 }
 
 int8_tArray  __attribute__((export_name("TS_Invoice_payment_hash"))) TS_Invoice_payment_hash(uint32_t this_arg) {
@@ -40570,8 +41347,8 @@ int64_t  __attribute__((export_name("TS_Invoice_expiry_time"))) TS_Invoice_expir
        this_arg_conv.inner = (void*)(this_arg & (~1));
        this_arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv);
-       int64_t ret_val = Invoice_expiry_time(&this_arg_conv);
-       return ret_val;
+       int64_t ret_conv = Invoice_expiry_time(&this_arg_conv);
+       return ret_conv;
 }
 
 jboolean  __attribute__((export_name("TS_Invoice_would_expire"))) TS_Invoice_would_expire(uint32_t this_arg, int64_t at_time) {
@@ -40579,8 +41356,8 @@ jboolean  __attribute__((export_name("TS_Invoice_would_expire"))) TS_Invoice_wou
        this_arg_conv.inner = (void*)(this_arg & (~1));
        this_arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv);
-       jboolean ret_val = Invoice_would_expire(&this_arg_conv, at_time);
-       return ret_val;
+       jboolean ret_conv = Invoice_would_expire(&this_arg_conv, at_time);
+       return ret_conv;
 }
 
 int64_t  __attribute__((export_name("TS_Invoice_min_final_cltv_expiry"))) TS_Invoice_min_final_cltv_expiry(uint32_t this_arg) {
@@ -40588,8 +41365,8 @@ int64_t  __attribute__((export_name("TS_Invoice_min_final_cltv_expiry"))) TS_Inv
        this_arg_conv.inner = (void*)(this_arg & (~1));
        this_arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv);
-       int64_t ret_val = Invoice_min_final_cltv_expiry(&this_arg_conv);
-       return ret_val;
+       int64_t ret_conv = Invoice_min_final_cltv_expiry(&this_arg_conv);
+       return ret_conv;
 }
 
 uint32_tArray  __attribute__((export_name("TS_Invoice_private_routes"))) TS_Invoice_private_routes(uint32_t this_arg) {
@@ -40714,8 +41491,8 @@ int64_t  __attribute__((export_name("TS_ExpiryTime_as_seconds"))) TS_ExpiryTime_
        this_arg_conv.inner = (void*)(this_arg & (~1));
        this_arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv);
-       int64_t ret_val = ExpiryTime_as_seconds(&this_arg_conv);
-       return ret_val;
+       int64_t ret_conv = ExpiryTime_as_seconds(&this_arg_conv);
+       return ret_conv;
 }
 
 int64_t  __attribute__((export_name("TS_ExpiryTime_as_duration"))) TS_ExpiryTime_as_duration(uint32_t this_arg) {
@@ -40723,8 +41500,8 @@ int64_t  __attribute__((export_name("TS_ExpiryTime_as_duration"))) TS_ExpiryTime
        this_arg_conv.inner = (void*)(this_arg & (~1));
        this_arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv);
-       int64_t ret_val = ExpiryTime_as_duration(&this_arg_conv);
-       return ret_val;
+       int64_t ret_conv = ExpiryTime_as_duration(&this_arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_PrivateRoute_new"))) TS_PrivateRoute_new(uint32_t hops) {
@@ -40790,8 +41567,8 @@ uint32_t  __attribute__((export_name("TS_CreationError_missing_route_hints"))) T
 jboolean  __attribute__((export_name("TS_CreationError_eq"))) TS_CreationError_eq(uint32_t a, uint32_t b) {
        LDKCreationError* a_conv = (LDKCreationError*)(a & ~1);
        LDKCreationError* b_conv = (LDKCreationError*)(b & ~1);
-       jboolean ret_val = CreationError_eq(a_conv, b_conv);
-       return ret_val;
+       jboolean ret_conv = CreationError_eq(a_conv, b_conv);
+       return ret_conv;
 }
 
 jstring  __attribute__((export_name("TS_CreationError_to_str"))) TS_CreationError_to_str(uint32_t o) {
@@ -40861,8 +41638,8 @@ uint32_t  __attribute__((export_name("TS_SemanticError_imprecise_amount"))) TS_S
 jboolean  __attribute__((export_name("TS_SemanticError_eq"))) TS_SemanticError_eq(uint32_t a, uint32_t b) {
        LDKSemanticError* a_conv = (LDKSemanticError*)(a & ~1);
        LDKSemanticError* b_conv = (LDKSemanticError*)(b & ~1);
-       jboolean ret_val = SemanticError_eq(a_conv, b_conv);
-       return ret_val;
+       jboolean ret_conv = SemanticError_eq(a_conv, b_conv);
+       return ret_conv;
 }
 
 jstring  __attribute__((export_name("TS_SemanticError_to_str"))) TS_SemanticError_to_str(uint32_t o) {
@@ -40890,8 +41667,8 @@ uint32_t ret_ref = (uintptr_t)ret_copy;
 }
 uint32_t  __attribute__((export_name("TS_SignOrCreationError_clone_ptr"))) TS_SignOrCreationError_clone_ptr(uint32_t arg) {
        LDKSignOrCreationError* arg_conv = (LDKSignOrCreationError*)arg;
-       uint32_t ret_val = SignOrCreationError_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = SignOrCreationError_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_SignOrCreationError_clone"))) TS_SignOrCreationError_clone(uint32_t orig) {
@@ -40920,8 +41697,8 @@ uint32_t  __attribute__((export_name("TS_SignOrCreationError_creation_error")))
 jboolean  __attribute__((export_name("TS_SignOrCreationError_eq"))) TS_SignOrCreationError_eq(uint32_t a, uint32_t b) {
        LDKSignOrCreationError* a_conv = (LDKSignOrCreationError*)a;
        LDKSignOrCreationError* b_conv = (LDKSignOrCreationError*)b;
-       jboolean ret_val = SignOrCreationError_eq(a_conv, b_conv);
-       return ret_val;
+       jboolean ret_conv = SignOrCreationError_eq(a_conv, b_conv);
+       return ret_conv;
 }
 
 jstring  __attribute__((export_name("TS_SignOrCreationError_to_str"))) TS_SignOrCreationError_to_str(uint32_t o) {
@@ -40971,8 +41748,8 @@ uint32_t  __attribute__((export_name("TS_RetryAttempts_get_a"))) TS_RetryAttempt
        this_ptr_conv.inner = (void*)(this_ptr & (~1));
        this_ptr_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv);
-       uint32_t ret_val = RetryAttempts_get_a(&this_ptr_conv);
-       return ret_val;
+       uint32_t ret_conv = RetryAttempts_get_a(&this_ptr_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_RetryAttempts_set_a"))) TS_RetryAttempts_set_a(uint32_t this_ptr, uint32_t val) {
@@ -41013,8 +41790,8 @@ uint32_t  __attribute__((export_name("TS_RetryAttempts_clone_ptr"))) TS_RetryAtt
        arg_conv.inner = (void*)(arg & (~1));
        arg_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv);
-       uint32_t ret_val = RetryAttempts_clone_ptr(&arg_conv);
-       return ret_val;
+       uint32_t ret_conv = RetryAttempts_clone_ptr(&arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_RetryAttempts_clone"))) TS_RetryAttempts_clone(uint32_t orig) {
@@ -41043,8 +41820,8 @@ jboolean  __attribute__((export_name("TS_RetryAttempts_eq"))) TS_RetryAttempts_e
        b_conv.inner = (void*)(b & (~1));
        b_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv);
-       jboolean ret_val = RetryAttempts_eq(&a_conv, &b_conv);
-       return ret_val;
+       jboolean ret_conv = RetryAttempts_eq(&a_conv, &b_conv);
+       return ret_conv;
 }
 
 int64_t  __attribute__((export_name("TS_RetryAttempts_hash"))) TS_RetryAttempts_hash(uint32_t o) {
@@ -41052,8 +41829,8 @@ int64_t  __attribute__((export_name("TS_RetryAttempts_hash"))) TS_RetryAttempts_
        o_conv.inner = (void*)(o & (~1));
        o_conv.is_owned = false;
        CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv);
-       int64_t ret_val = RetryAttempts_hash(&o_conv);
-       return ret_val;
+       int64_t ret_conv = RetryAttempts_hash(&o_conv);
+       return ret_conv;
 }
 
 void  __attribute__((export_name("TS_PaymentError_free"))) TS_PaymentError_free(uint32_t this_ptr) {
@@ -41073,8 +41850,8 @@ uint32_t ret_ref = (uintptr_t)ret_copy;
 }
 uint32_t  __attribute__((export_name("TS_PaymentError_clone_ptr"))) TS_PaymentError_clone_ptr(uint32_t arg) {
        LDKPaymentError* arg_conv = (LDKPaymentError*)arg;
-       uint32_t ret_val = PaymentError_clone_ptr(arg_conv);
-       return ret_val;
+       uint32_t ret_conv = PaymentError_clone_ptr(arg_conv);
+       return ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_PaymentError_clone"))) TS_PaymentError_clone(uint32_t orig) {
@@ -41120,9 +41897,17 @@ uint32_t  __attribute__((export_name("TS_InvoicePayer_new"))) TS_InvoicePayer_ne
        void* payer_ptr = (void*)(((uintptr_t)payer) & ~1);
        CHECK_ACCESS(payer_ptr);
        LDKPayer payer_conv = *(LDKPayer*)(payer_ptr);
+       if (payer_conv.free == LDKPayer_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKPayer_JCalls_cloned(&payer_conv);
+       }
        void* router_ptr = (void*)(((uintptr_t)router) & ~1);
        CHECK_ACCESS(router_ptr);
        LDKRouter router_conv = *(LDKRouter*)(router_ptr);
+       if (router_conv.free == LDKRouter_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKRouter_JCalls_cloned(&router_conv);
+       }
        LDKMultiThreadedLockableScore scorer_conv;
        scorer_conv.inner = (void*)(scorer & (~1));
        scorer_conv.is_owned = false;
@@ -41130,9 +41915,17 @@ uint32_t  __attribute__((export_name("TS_InvoicePayer_new"))) TS_InvoicePayer_ne
        void* logger_ptr = (void*)(((uintptr_t)logger) & ~1);
        CHECK_ACCESS(logger_ptr);
        LDKLogger logger_conv = *(LDKLogger*)(logger_ptr);
+       if (logger_conv.free == LDKLogger_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKLogger_JCalls_cloned(&logger_conv);
+       }
        void* event_handler_ptr = (void*)(((uintptr_t)event_handler) & ~1);
        CHECK_ACCESS(event_handler_ptr);
        LDKEventHandler event_handler_conv = *(LDKEventHandler*)(event_handler_ptr);
+       if (event_handler_conv.free == LDKEventHandler_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKEventHandler_JCalls_cloned(&event_handler_conv);
+       }
        LDKRetryAttempts retry_attempts_conv;
        retry_attempts_conv.inner = (void*)(retry_attempts & (~1));
        retry_attempts_conv.is_owned = (retry_attempts & 1) || (retry_attempts == 0);
@@ -41216,6 +42009,33 @@ uint32_t  __attribute__((export_name("TS_InvoicePayer_as_EventHandler"))) TS_Inv
        return (uint32_t)ret_ret;
 }
 
+uint32_t  __attribute__((export_name("TS_create_invoice_from_channelmanager_with_description_hash_and_duration_since_epoch"))) TS_create_invoice_from_channelmanager_with_description_hash_and_duration_since_epoch(uint32_t channelmanager, uint32_t keys_manager, uint32_t network, uint32_t amt_msat, uint32_t description_hash, int64_t duration_since_epoch) {
+       LDKChannelManager channelmanager_conv;
+       channelmanager_conv.inner = (void*)(channelmanager & (~1));
+       channelmanager_conv.is_owned = false;
+       CHECK_INNER_FIELD_ACCESS_OR_NULL(channelmanager_conv);
+       void* keys_manager_ptr = (void*)(((uintptr_t)keys_manager) & ~1);
+       CHECK_ACCESS(keys_manager_ptr);
+       LDKKeysInterface keys_manager_conv = *(LDKKeysInterface*)(keys_manager_ptr);
+       if (keys_manager_conv.free == LDKKeysInterface_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKKeysInterface_JCalls_cloned(&keys_manager_conv);
+       }
+       LDKCurrency network_conv = LDKCurrency_from_js(network);
+       void* amt_msat_ptr = (void*)(((uintptr_t)amt_msat) & ~1);
+       CHECK_ACCESS(amt_msat_ptr);
+       LDKCOption_u64Z amt_msat_conv = *(LDKCOption_u64Z*)(amt_msat_ptr);
+       amt_msat_conv = COption_u64Z_clone((LDKCOption_u64Z*)(((uintptr_t)amt_msat) & ~1));
+       LDKSha256 description_hash_conv;
+       description_hash_conv.inner = (void*)(description_hash & (~1));
+       description_hash_conv.is_owned = (description_hash & 1) || (description_hash == 0);
+       CHECK_INNER_FIELD_ACCESS_OR_NULL(description_hash_conv);
+       description_hash_conv = Sha256_clone(&description_hash_conv);
+       LDKCResult_InvoiceSignOrCreationErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_InvoiceSignOrCreationErrorZ), "LDKCResult_InvoiceSignOrCreationErrorZ");
+       *ret_conv = create_invoice_from_channelmanager_with_description_hash_and_duration_since_epoch(&channelmanager_conv, keys_manager_conv, network_conv, amt_msat_conv, description_hash_conv, duration_since_epoch);
+       return (uint32_t)ret_conv;
+}
+
 uint32_t  __attribute__((export_name("TS_create_invoice_from_channelmanager_and_duration_since_epoch"))) TS_create_invoice_from_channelmanager_and_duration_since_epoch(uint32_t channelmanager, uint32_t keys_manager, uint32_t network, uint32_t amt_msat, jstring description, int64_t duration_since_epoch) {
        LDKChannelManager channelmanager_conv;
        channelmanager_conv.inner = (void*)(channelmanager & (~1));
@@ -41224,6 +42044,10 @@ uint32_t  __attribute__((export_name("TS_create_invoice_from_channelmanager_and_
        void* keys_manager_ptr = (void*)(((uintptr_t)keys_manager) & ~1);
        CHECK_ACCESS(keys_manager_ptr);
        LDKKeysInterface keys_manager_conv = *(LDKKeysInterface*)(keys_manager_ptr);
+       if (keys_manager_conv.free == LDKKeysInterface_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKKeysInterface_JCalls_cloned(&keys_manager_conv);
+       }
        LDKCurrency network_conv = LDKCurrency_from_js(network);
        void* amt_msat_ptr = (void*)(((uintptr_t)amt_msat) & ~1);
        CHECK_ACCESS(amt_msat_ptr);
@@ -41243,7 +42067,7 @@ void  __attribute__((export_name("TS_DefaultRouter_free"))) TS_DefaultRouter_fre
        DefaultRouter_free(this_obj_conv);
 }
 
-uint32_t  __attribute__((export_name("TS_DefaultRouter_new"))) TS_DefaultRouter_new(uint32_t network_graph, uint32_t logger) {
+uint32_t  __attribute__((export_name("TS_DefaultRouter_new"))) TS_DefaultRouter_new(uint32_t network_graph, uint32_t logger, int8_tArray random_seed_bytes) {
        LDKNetworkGraph network_graph_conv;
        network_graph_conv.inner = (void*)(network_graph & (~1));
        network_graph_conv.is_owned = false;
@@ -41251,7 +42075,14 @@ uint32_t  __attribute__((export_name("TS_DefaultRouter_new"))) TS_DefaultRouter_
        void* logger_ptr = (void*)(((uintptr_t)logger) & ~1);
        CHECK_ACCESS(logger_ptr);
        LDKLogger logger_conv = *(LDKLogger*)(logger_ptr);
-       LDKDefaultRouter ret_var = DefaultRouter_new(&network_graph_conv, logger_conv);
+       if (logger_conv.free == LDKLogger_JCalls_free) {
+               // If this_arg is a JCalls struct, then we need to increment the refcnt in it.
+               LDKLogger_JCalls_cloned(&logger_conv);
+       }
+       LDKThirtyTwoBytes random_seed_bytes_ref;
+       CHECK(random_seed_bytes->arr_len == 32);
+       memcpy(random_seed_bytes_ref.data, random_seed_bytes->elems, 32); FREE(random_seed_bytes);
+       LDKDefaultRouter ret_var = DefaultRouter_new(&network_graph_conv, logger_conv, random_seed_bytes_ref);
        uint32_t ret_ref = 0;
        CHECK((((uintptr_t)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
        CHECK((((uintptr_t)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
@@ -41285,25 +42116,41 @@ uint32_t  __attribute__((export_name("TS_ChannelManager_as_Payer"))) TS_ChannelM
 
 uint32_t  __attribute__((export_name("TS_SiPrefix_from_str"))) TS_SiPrefix_from_str(jstring s) {
        LDKStr s_conv = str_ref_to_owned_c(s);
-       LDKCResult_SiPrefixNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_SiPrefixNoneZ), "LDKCResult_SiPrefixNoneZ");
+       LDKCResult_SiPrefixParseErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SiPrefixParseErrorZ), "LDKCResult_SiPrefixParseErrorZ");
        *ret_conv = SiPrefix_from_str(s_conv);
        return (uint32_t)ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_Invoice_from_str"))) TS_Invoice_from_str(jstring s) {
        LDKStr s_conv = str_ref_to_owned_c(s);
-       LDKCResult_InvoiceNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_InvoiceNoneZ), "LDKCResult_InvoiceNoneZ");
+       LDKCResult_InvoiceParseOrSemanticErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_InvoiceParseOrSemanticErrorZ), "LDKCResult_InvoiceParseOrSemanticErrorZ");
        *ret_conv = Invoice_from_str(s_conv);
        return (uint32_t)ret_conv;
 }
 
 uint32_t  __attribute__((export_name("TS_SignedRawInvoice_from_str"))) TS_SignedRawInvoice_from_str(jstring s) {
        LDKStr s_conv = str_ref_to_owned_c(s);
-       LDKCResult_SignedRawInvoiceNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_SignedRawInvoiceNoneZ), "LDKCResult_SignedRawInvoiceNoneZ");
+       LDKCResult_SignedRawInvoiceParseErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SignedRawInvoiceParseErrorZ), "LDKCResult_SignedRawInvoiceParseErrorZ");
        *ret_conv = SignedRawInvoice_from_str(s_conv);
        return (uint32_t)ret_conv;
 }
 
+jstring  __attribute__((export_name("TS_ParseError_to_str"))) TS_ParseError_to_str(uint32_t o) {
+       LDKParseError* o_conv = (LDKParseError*)o;
+       LDKStr ret_str = ParseError_to_str(o_conv);
+       jstring ret_conv = str_ref_to_ts(ret_str.chars, ret_str.len);
+       Str_free(ret_str);
+       return ret_conv;
+}
+
+jstring  __attribute__((export_name("TS_ParseOrSemanticError_to_str"))) TS_ParseOrSemanticError_to_str(uint32_t o) {
+       LDKParseOrSemanticError* o_conv = (LDKParseOrSemanticError*)o;
+       LDKStr ret_str = ParseOrSemanticError_to_str(o_conv);
+       jstring ret_conv = str_ref_to_ts(ret_str.chars, ret_str.len);
+       Str_free(ret_str);
+       return ret_conv;
+}
+
 jstring  __attribute__((export_name("TS_Invoice_to_str"))) TS_Invoice_to_str(uint32_t o) {
        LDKInvoice o_conv;
        o_conv.inner = (void*)(o & (~1));