X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=ts%2Fbindings.c;h=5b6b077430876006d1ff0fc7ece6dd898d27316d;hb=7cede693022f65adf9b93bfda7a462481e30c1ef;hp=6a6178c5589805e0271bc9b38354f173ef2f3693;hpb=246459dcbc3be28c38b4951140a5933f4b3aa024;p=ldk-java diff --git a/ts/bindings.c b/ts/bindings.c index 6a6178c5..5b6b0774 100644 --- a/ts/bindings.c +++ b/ts/bindings.c @@ -279,6 +279,18 @@ uint32_t __attribute__((visibility("default"))) TS_LDKCResult_TxCreationKeysErr uint32_t err_conv = LDKSecp256k1Error_to_js((*val->contents.err)); return err_conv; } +uint32_t __attribute__((visibility("default"))) TS_LDKCOption_u32Z_ref_from_ptr(uint32_t ptr) { + LDKCOption_u32Z *obj = (LDKCOption_u32Z*)(ptr & ~1); + switch(obj->tag) { + case LDKCOption_u32Z_Some: { + return 0 /* LDKCOption_u32Z - Some */; (void) obj->some; + } + case LDKCOption_u32Z_None: { + return 0 /* LDKCOption_u32Z - None */; + } + default: abort(); + } +} jboolean __attribute__((visibility("default"))) TS_LDKCResult_HTLCOutputInCommitmentDecodeErrorZ_result_ok(uint32_t arg) { return ((LDKCResult_HTLCOutputInCommitmentDecodeErrorZ*)arg)->result_ok; } @@ -444,7 +456,7 @@ void __attribute__((visibility("default"))) TS_LDKCResult_CVec_SignatureZNoneZ_ return *val->contents.err; } uint32_t __attribute__((visibility("default"))) TS_LDKErrorAction_ref_from_ptr(uint32_t ptr) { - LDKErrorAction *obj = (LDKErrorAction*)ptr; + LDKErrorAction *obj = (LDKErrorAction*)(ptr & ~1); switch(obj->tag) { case LDKErrorAction_DisconnectPeer: { LDKErrorMessage msg_var = obj->disconnect_peer.msg; @@ -467,7 +479,7 @@ uint32_t __attribute__((visibility("default"))) TS_LDKErrorAction_ref_from_ptr(u } } uint32_t __attribute__((visibility("default"))) TS_LDKHTLCFailChannelUpdate_ref_from_ptr(uint32_t ptr) { - LDKHTLCFailChannelUpdate *obj = (LDKHTLCFailChannelUpdate*)ptr; + LDKHTLCFailChannelUpdate *obj = (LDKHTLCFailChannelUpdate*)(ptr & ~1); switch(obj->tag) { case LDKHTLCFailChannelUpdate_ChannelUpdateMessage: { LDKChannelUpdate msg_var = obj->channel_update_message.msg; @@ -488,7 +500,7 @@ uint32_t __attribute__((visibility("default"))) TS_LDKHTLCFailChannelUpdate_ref_ } } uint32_t __attribute__((visibility("default"))) TS_LDKMessageSendEvent_ref_from_ptr(uint32_t ptr) { - LDKMessageSendEvent *obj = (LDKMessageSendEvent*)ptr; + LDKMessageSendEvent *obj = (LDKMessageSendEvent*)(ptr & ~1); switch(obj->tag) { case LDKMessageSendEvent_SendAcceptChannel: { int8_tArray node_id_arr = init_arr(33, sizeof(uint8_t), "Native int8_tArray Bytes"); @@ -642,6 +654,15 @@ uint32_t __attribute__((visibility("default"))) TS_LDKMessageSendEvent_ref_from_ long msg_ref = (long)msg_var.inner & ~1; return 0 /* LDKMessageSendEvent - SendShortIdsQuery */; (void) node_id_arr; (void) msg_ref; } + case LDKMessageSendEvent_SendReplyChannelRange: { + int8_tArray node_id_arr = init_arr(33, sizeof(uint8_t), "Native int8_tArray Bytes"); + memcpy((uint8_t*)(node_id_arr + 4), obj->send_reply_channel_range.node_id.compressed_form, 33); + LDKReplyChannelRange msg_var = obj->send_reply_channel_range.msg; + CHECK((((long)msg_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. + CHECK((((long)&msg_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this. + long msg_ref = (long)msg_var.inner & ~1; + return 0 /* LDKMessageSendEvent - SendReplyChannelRange */; (void) node_id_arr; (void) msg_ref; + } default: abort(); } } @@ -656,7 +677,7 @@ uint32_t __attribute__((visibility("default"))) TS_LDKCVec_MessageSendEventZ_ne for (size_t i = 0; i < ret->datalen; i++) { uint32_t arr_elem = java_elems[i]; LDKMessageSendEvent arr_elem_conv = *(LDKMessageSendEvent*)(((uint64_t)arr_elem) & ~1); - FREE((void*)arr_elem); + arr_elem_conv = MessageSendEvent_clone((LDKMessageSendEvent*)(((uint64_t)arr_elem) & ~1)); ret->data[i] = arr_elem_conv; } } @@ -740,7 +761,7 @@ uint32_t __attribute__((visibility("default"))) TS_LDKCVec_C3Tuple_ChannelAnnou for (size_t i = 0; i < ret->datalen; i++) { uint32_t arr_elem = java_elems[i]; LDKC3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ arr_elem_conv = *(LDKC3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ*)(((uint64_t)arr_elem) & ~1); - FREE((void*)arr_elem); + arr_elem_conv = C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ_clone((LDKC3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ*)(((uint64_t)arr_elem) & ~1)); ret->data[i] = arr_elem_conv; } } @@ -913,6 +934,27 @@ uint32_t __attribute__((visibility("default"))) TS_LDKCResult_ChannelFeaturesDe long err_ref = (long)err_var.inner & ~1; return err_ref; } +jboolean __attribute__((visibility("default"))) TS_LDKCResult_InvoiceFeaturesDecodeErrorZ_result_ok(uint32_t arg) { + return ((LDKCResult_InvoiceFeaturesDecodeErrorZ*)arg)->result_ok; +} +uint32_t __attribute__((visibility("default"))) TS_LDKCResult_InvoiceFeaturesDecodeErrorZ_get_ok(uint32_t arg) { + LDKCResult_InvoiceFeaturesDecodeErrorZ *val = (LDKCResult_InvoiceFeaturesDecodeErrorZ*)(arg & ~1); + CHECK(val->result_ok); + LDKInvoiceFeatures res_var = (*val->contents.result); + CHECK((((long)res_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. + CHECK((((long)&res_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this. + long res_ref = (long)res_var.inner & ~1; + return res_ref; +} +uint32_t __attribute__((visibility("default"))) TS_LDKCResult_InvoiceFeaturesDecodeErrorZ_get_err(uint32_t arg) { + LDKCResult_InvoiceFeaturesDecodeErrorZ *val = (LDKCResult_InvoiceFeaturesDecodeErrorZ*)(arg & ~1); + CHECK(!val->result_ok); + LDKDecodeError err_var = (*val->contents.err); + CHECK((((long)err_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. + CHECK((((long)&err_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this. + long err_ref = (long)err_var.inner & ~1; + return err_ref; +} jboolean __attribute__((visibility("default"))) TS_LDKCResult_ChannelConfigDecodeErrorZ_result_ok(uint32_t arg) { return ((LDKCResult_ChannelConfigDecodeErrorZ*)arg)->result_ok; } @@ -934,6 +976,18 @@ uint32_t __attribute__((visibility("default"))) TS_LDKCResult_ChannelConfigDeco long err_ref = (long)err_var.inner & ~1; return err_ref; } +uint32_t __attribute__((visibility("default"))) TS_LDKCOption_u64Z_ref_from_ptr(uint32_t ptr) { + LDKCOption_u64Z *obj = (LDKCOption_u64Z*)(ptr & ~1); + switch(obj->tag) { + case LDKCOption_u64Z_Some: { + return 0 /* LDKCOption_u64Z - Some */; (void) obj->some; + } + case LDKCOption_u64Z_None: { + return 0 /* LDKCOption_u64Z - None */; + } + default: abort(); + } +} jboolean __attribute__((visibility("default"))) TS_LDKCResult_DirectionalChannelInfoDecodeErrorZ_result_ok(uint32_t arg) { return ((LDKCResult_DirectionalChannelInfoDecodeErrorZ*)arg)->result_ok; } @@ -998,7 +1052,7 @@ uint32_t __attribute__((visibility("default"))) TS_LDKCResult_RoutingFeesDecode return err_ref; } uint32_t __attribute__((visibility("default"))) TS_LDKNetAddress_ref_from_ptr(uint32_t ptr) { - LDKNetAddress *obj = (LDKNetAddress*)ptr; + LDKNetAddress *obj = (LDKNetAddress*)(ptr & ~1); switch(obj->tag) { case LDKNetAddress_IPv4: { int8_tArray addr_arr = init_arr(4, sizeof(uint8_t), "Native int8_tArray Bytes"); @@ -1034,7 +1088,7 @@ uint32_t __attribute__((visibility("default"))) TS_LDKCVec_NetAddressZ_new(uint for (size_t i = 0; i < ret->datalen; i++) { uint32_t arr_elem = java_elems[i]; LDKNetAddress arr_elem_conv = *(LDKNetAddress*)(((uint64_t)arr_elem) & ~1); - FREE((void*)arr_elem); + arr_elem_conv = NetAddress_clone((LDKNetAddress*)(((uint64_t)arr_elem) & ~1)); ret->data[i] = arr_elem_conv; } } @@ -1162,7 +1216,7 @@ uint32_t __attribute__((visibility("default"))) TS_LDKCVec_C2Tuple_usizeTransac for (size_t i = 0; i < ret->datalen; i++) { uint32_t arr_elem = java_elems[i]; LDKC2Tuple_usizeTransactionZ arr_elem_conv = *(LDKC2Tuple_usizeTransactionZ*)(((uint64_t)arr_elem) & ~1); - FREE((void*)arr_elem); + // Warning: we may need a move here but no clone is available for LDKC2Tuple_usizeTransactionZ ret->data[i] = arr_elem_conv; } } @@ -1183,13 +1237,21 @@ uint32_t __attribute__((visibility("default"))) TS_LDKCResult_NoneChannelMonito return err_conv; } uint32_t __attribute__((visibility("default"))) TS_LDKMonitorEvent_ref_from_ptr(uint32_t ptr) { - LDKMonitorEvent *obj = (LDKMonitorEvent*)ptr; + LDKMonitorEvent *obj = (LDKMonitorEvent*)(ptr & ~1); switch(obj->tag) { case LDKMonitorEvent_HTLCEvent: { - return 0 /* LDKMonitorEvent - HTLCEvent */; + LDKHTLCUpdate htlc_event_var = obj->htlc_event; + CHECK((((long)htlc_event_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. + CHECK((((long)&htlc_event_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this. + long htlc_event_ref = (long)htlc_event_var.inner & ~1; + return 0 /* LDKMonitorEvent - HTLCEvent */; (void) htlc_event_ref; } case LDKMonitorEvent_CommitmentTxBroadcasted: { - return 0 /* LDKMonitorEvent - CommitmentTxBroadcasted */; + LDKOutPoint commitment_tx_broadcasted_var = obj->commitment_tx_broadcasted; + CHECK((((long)commitment_tx_broadcasted_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. + CHECK((((long)&commitment_tx_broadcasted_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this. + long commitment_tx_broadcasted_ref = (long)commitment_tx_broadcasted_var.inner & ~1; + return 0 /* LDKMonitorEvent - CommitmentTxBroadcasted */; (void) commitment_tx_broadcasted_ref; } default: abort(); } @@ -1205,7 +1267,7 @@ uint32_t __attribute__((visibility("default"))) TS_LDKCVec_MonitorEventZ_new(ui for (size_t i = 0; i < ret->datalen; i++) { uint32_t arr_elem = java_elems[i]; LDKMonitorEvent arr_elem_conv = *(LDKMonitorEvent*)(((uint64_t)arr_elem) & ~1); - FREE((void*)arr_elem); + arr_elem_conv = MonitorEvent_clone((LDKMonitorEvent*)(((uint64_t)arr_elem) & ~1)); ret->data[i] = arr_elem_conv; } } @@ -1219,7 +1281,7 @@ static inline LDKCVec_MonitorEventZ CVec_MonitorEventZ_clone(const LDKCVec_Monit return ret; } uint32_t __attribute__((visibility("default"))) TS_LDKSpendableOutputDescriptor_ref_from_ptr(uint32_t ptr) { - LDKSpendableOutputDescriptor *obj = (LDKSpendableOutputDescriptor*)ptr; + LDKSpendableOutputDescriptor *obj = (LDKSpendableOutputDescriptor*)(ptr & ~1); switch(obj->tag) { case LDKSpendableOutputDescriptor_StaticOutput: { LDKOutPoint outpoint_var = obj->static_output.outpoint; @@ -1230,10 +1292,18 @@ uint32_t __attribute__((visibility("default"))) TS_LDKSpendableOutputDescriptor_ return 0 /* LDKSpendableOutputDescriptor - StaticOutput */; (void) outpoint_ref; (void) (long)output_ref; } case LDKSpendableOutputDescriptor_DelayedPaymentOutput: { - return 0 /* LDKSpendableOutputDescriptor - DelayedPaymentOutput */; + LDKDelayedPaymentOutputDescriptor delayed_payment_output_var = obj->delayed_payment_output; + CHECK((((long)delayed_payment_output_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. + CHECK((((long)&delayed_payment_output_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this. + long delayed_payment_output_ref = (long)delayed_payment_output_var.inner & ~1; + return 0 /* LDKSpendableOutputDescriptor - DelayedPaymentOutput */; (void) delayed_payment_output_ref; } case LDKSpendableOutputDescriptor_StaticPaymentOutput: { - return 0 /* LDKSpendableOutputDescriptor - StaticPaymentOutput */; + LDKStaticPaymentOutputDescriptor static_payment_output_var = obj->static_payment_output; + CHECK((((long)static_payment_output_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. + CHECK((((long)&static_payment_output_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this. + long static_payment_output_ref = (long)static_payment_output_var.inner & ~1; + return 0 /* LDKSpendableOutputDescriptor - StaticPaymentOutput */; (void) static_payment_output_ref; } default: abort(); } @@ -1249,7 +1319,7 @@ uint32_t __attribute__((visibility("default"))) TS_LDKCVec_SpendableOutputDescr for (size_t i = 0; i < ret->datalen; i++) { uint32_t arr_elem = java_elems[i]; LDKSpendableOutputDescriptor arr_elem_conv = *(LDKSpendableOutputDescriptor*)(((uint64_t)arr_elem) & ~1); - FREE((void*)arr_elem); + arr_elem_conv = SpendableOutputDescriptor_clone((LDKSpendableOutputDescriptor*)(((uint64_t)arr_elem) & ~1)); ret->data[i] = arr_elem_conv; } } @@ -1263,7 +1333,7 @@ static inline LDKCVec_SpendableOutputDescriptorZ CVec_SpendableOutputDescriptorZ return ret; } uint32_t __attribute__((visibility("default"))) TS_LDKEvent_ref_from_ptr(uint32_t ptr) { - LDKEvent *obj = (LDKEvent*)ptr; + LDKEvent *obj = (LDKEvent*)(ptr & ~1); switch(obj->tag) { case LDKEvent_FundingGenerationReady: { int8_tArray temporary_channel_id_arr = init_arr(32, sizeof(uint8_t), "Native int8_tArray Bytes"); @@ -1324,7 +1394,7 @@ uint32_t __attribute__((visibility("default"))) TS_LDKCVec_EventZ_new(uint32_tA for (size_t i = 0; i < ret->datalen; i++) { uint32_t arr_elem = java_elems[i]; LDKEvent arr_elem_conv = *(LDKEvent*)(((uint64_t)arr_elem) & ~1); - FREE((void*)arr_elem); + arr_elem_conv = Event_clone((LDKEvent*)(((uint64_t)arr_elem) & ~1)); ret->data[i] = arr_elem_conv; } } @@ -1446,11 +1516,112 @@ int8_tArray __attribute__((visibility("default"))) TS_LDKC2Tuple_OutPointScript memcpy((uint8_t*)(b_arr + 4), b_var.data, b_var.datalen); return b_arr; } +uint32_t __attribute__((visibility("default"))) TS_LDKC2Tuple_u32ScriptZ_new(int32_t a, int8_tArray b) { + LDKC2Tuple_u32ScriptZ* ret = MALLOC(sizeof(LDKC2Tuple_u32ScriptZ), "LDKC2Tuple_u32ScriptZ"); + ret->a = a; + LDKCVec_u8Z b_ref; + b_ref.datalen = *((uint32_t*)b); + b_ref.data = MALLOC(b_ref.datalen, "LDKCVec_u8Z Bytes"); + memcpy(b_ref.data, (uint8_t*)(b + 4), b_ref.datalen); + ret->b = b_ref; + return (long)ret; +} +int32_t __attribute__((visibility("default"))) TS_LDKC2Tuple_u32ScriptZ_get_a(uint32_t ptr) { + LDKC2Tuple_u32ScriptZ *tuple = (LDKC2Tuple_u32ScriptZ*)(ptr & ~1); + return tuple->a; +} +int8_tArray __attribute__((visibility("default"))) TS_LDKC2Tuple_u32ScriptZ_get_b(uint32_t ptr) { + LDKC2Tuple_u32ScriptZ *tuple = (LDKC2Tuple_u32ScriptZ*)(ptr & ~1); + LDKCVec_u8Z b_var = tuple->b; + int8_tArray b_arr = init_arr(b_var.datalen, sizeof(uint8_t), "Native int8_tArray Bytes"); + memcpy((uint8_t*)(b_arr + 4), b_var.data, b_var.datalen); + return b_arr; +} +uint32_t __attribute__((visibility("default"))) TS_LDKCVec_C2Tuple_u32ScriptZZ_new(uint32_tArray elems) { + LDKCVec_C2Tuple_u32ScriptZZ *ret = MALLOC(sizeof(LDKCVec_C2Tuple_u32ScriptZZ), "LDKCVec_C2Tuple_u32ScriptZZ"); + ret->datalen = *((uint32_t*)elems); + if (ret->datalen == 0) { + ret->data = NULL; + } else { + ret->data = MALLOC(sizeof(LDKC2Tuple_u32ScriptZ) * ret->datalen, "LDKCVec_C2Tuple_u32ScriptZZ Data"); + uint32_t *java_elems = (uint32_t*)(elems + 4); + for (size_t i = 0; i < ret->datalen; i++) { + uint32_t arr_elem = java_elems[i]; + LDKC2Tuple_u32ScriptZ arr_elem_conv = *(LDKC2Tuple_u32ScriptZ*)(((uint64_t)arr_elem) & ~1); + arr_elem_conv = C2Tuple_u32ScriptZ_clone((LDKC2Tuple_u32ScriptZ*)(((uint64_t)arr_elem) & ~1)); + ret->data[i] = arr_elem_conv; + } + } + return (long)ret; +} +static inline LDKCVec_C2Tuple_u32ScriptZZ CVec_C2Tuple_u32ScriptZZ_clone(const LDKCVec_C2Tuple_u32ScriptZZ *orig) { + LDKCVec_C2Tuple_u32ScriptZZ ret = { .data = MALLOC(sizeof(LDKC2Tuple_u32ScriptZ) * orig->datalen, "LDKCVec_C2Tuple_u32ScriptZZ clone bytes"), .datalen = orig->datalen }; + for (size_t i = 0; i < ret.datalen; i++) { + ret.data[i] = C2Tuple_u32ScriptZ_clone(&orig->data[i]); + } + return ret; +} +uint32_t __attribute__((visibility("default"))) TS_LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_new(int8_tArray a, uint32_tArray b) { + LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ* ret = MALLOC(sizeof(LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ), "LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ"); + LDKThirtyTwoBytes a_ref; + CHECK(*((uint32_t*)a) == 32); + memcpy(a_ref.data, (uint8_t*)(a + 4), 32); + ret->a = a_ref; + LDKCVec_C2Tuple_u32ScriptZZ b_constr; + b_constr.datalen = *((uint32_t*)b); + if (b_constr.datalen > 0) + b_constr.data = MALLOC(b_constr.datalen * sizeof(LDKC2Tuple_u32ScriptZ), "LDKCVec_C2Tuple_u32ScriptZZ Elements"); + else + b_constr.data = NULL; + uint32_t* b_vals = (uint32_t*)(b + 4); + for (size_t e = 0; e < b_constr.datalen; e++) { + uint32_t b_conv_30 = b_vals[e]; + LDKC2Tuple_u32ScriptZ b_conv_30_conv = *(LDKC2Tuple_u32ScriptZ*)(((uint64_t)b_conv_30) & ~1); + b_conv_30_conv = C2Tuple_u32ScriptZ_clone((LDKC2Tuple_u32ScriptZ*)(((uint64_t)b_conv_30) & ~1)); + b_constr.data[e] = b_conv_30_conv; + } + ret->b = b_constr; + return (long)ret; +} +int8_tArray __attribute__((visibility("default"))) TS_LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_get_a(uint32_t ptr) { + LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ *tuple = (LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ*)(ptr & ~1); + int8_tArray a_arr = init_arr(32, sizeof(uint8_t), "Native int8_tArray Bytes"); + memcpy((uint8_t*)(a_arr + 4), tuple->a.data, 32); + return a_arr; +} +uint32_tArray __attribute__((visibility("default"))) TS_LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_get_b(uint32_t ptr) { + LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ *tuple = (LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ*)(ptr & ~1); + LDKCVec_C2Tuple_u32ScriptZZ b_var = tuple->b; + uint32_tArray b_arr = init_arr(b_var.datalen, sizeof(uint32_t), "Native uint32_tArray Bytes"); + uint32_t *b_arr_ptr = (uint32_t*)(b_arr + 4); + for (size_t e = 0; e < b_var.datalen; e++) { + long b_conv_30_ref = (long)(&b_var.data[e]) | 1; + b_arr_ptr[e] = b_conv_30_ref; + } + return b_arr; +} +uint32_t __attribute__((visibility("default"))) TS_LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ_new(uint32_tArray elems) { + LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ *ret = MALLOC(sizeof(LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ), "LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ"); + ret->datalen = *((uint32_t*)elems); + if (ret->datalen == 0) { + ret->data = NULL; + } else { + ret->data = MALLOC(sizeof(LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ) * ret->datalen, "LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ Data"); + uint32_t *java_elems = (uint32_t*)(elems + 4); + for (size_t i = 0; i < ret->datalen; i++) { + uint32_t arr_elem = java_elems[i]; + LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ arr_elem_conv = *(LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ*)(((uint64_t)arr_elem) & ~1); + // Warning: we may need a move here but no clone is available for LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ + ret->data[i] = arr_elem_conv; + } + } + return (long)ret; +} uint32_t __attribute__((visibility("default"))) TS_LDKC2Tuple_u32TxOutZ_new(int32_t a, uint32_t b) { LDKC2Tuple_u32TxOutZ* ret = MALLOC(sizeof(LDKC2Tuple_u32TxOutZ), "LDKC2Tuple_u32TxOutZ"); ret->a = a; LDKTxOut b_conv = *(LDKTxOut*)(((uint64_t)b) & ~1); - FREE((void*)b); + b_conv = TxOut_clone((LDKTxOut*)(((uint64_t)b) & ~1)); ret->b = b_conv; return (long)ret; } @@ -1474,7 +1645,7 @@ uint32_t __attribute__((visibility("default"))) TS_LDKCVec_C2Tuple_u32TxOutZZ_n for (size_t i = 0; i < ret->datalen; i++) { uint32_t arr_elem = java_elems[i]; LDKC2Tuple_u32TxOutZ arr_elem_conv = *(LDKC2Tuple_u32TxOutZ*)(((uint64_t)arr_elem) & ~1); - FREE((void*)arr_elem); + arr_elem_conv = C2Tuple_u32TxOutZ_clone((LDKC2Tuple_u32TxOutZ*)(((uint64_t)arr_elem) & ~1)); ret->data[i] = arr_elem_conv; } } @@ -1503,7 +1674,7 @@ uint32_t __attribute__((visibility("default"))) TS_LDKC2Tuple_TxidCVec_C2Tuple_ for (size_t z = 0; z < b_constr.datalen; z++) { uint32_t b_conv_25 = b_vals[z]; LDKC2Tuple_u32TxOutZ b_conv_25_conv = *(LDKC2Tuple_u32TxOutZ*)(((uint64_t)b_conv_25) & ~1); - FREE((void*)b_conv_25); + b_conv_25_conv = C2Tuple_u32TxOutZ_clone((LDKC2Tuple_u32TxOutZ*)(((uint64_t)b_conv_25) & ~1)); b_constr.data[z] = b_conv_25_conv; } ret->b = b_constr; @@ -1537,7 +1708,7 @@ uint32_t __attribute__((visibility("default"))) TS_LDKCVec_C2Tuple_TxidCVec_C2T for (size_t i = 0; i < ret->datalen; i++) { uint32_t arr_elem = java_elems[i]; LDKC2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ arr_elem_conv = *(LDKC2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ*)(((uint64_t)arr_elem) & ~1); - FREE((void*)arr_elem); + // Warning: we may need a move here but no clone is available for LDKC2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ ret->data[i] = arr_elem_conv; } } @@ -1644,7 +1815,7 @@ static void LDKSign_JCalls_free(void* this_arg) { FREE(j_calls); } } -LDKPublicKey get_per_commitment_point_jcall(const void* this_arg, uint64_t idx) { +LDKPublicKey get_per_commitment_point_LDKSign_jcall(const void* this_arg, uint64_t idx) { LDKSign_JCalls *j_calls = (LDKSign_JCalls*) this_arg; int8_tArray ret = js_invoke_function_1(j_calls->get_per_commitment_point_meth, idx); LDKPublicKey ret_ref; @@ -1652,7 +1823,7 @@ LDKPublicKey get_per_commitment_point_jcall(const void* this_arg, uint64_t idx) memcpy(ret_ref.compressed_form, (uint8_t*)(ret + 4), 33); return ret_ref; } -LDKThirtyTwoBytes release_commitment_secret_jcall(const void* this_arg, uint64_t idx) { +LDKThirtyTwoBytes release_commitment_secret_LDKSign_jcall(const void* this_arg, uint64_t idx) { LDKSign_JCalls *j_calls = (LDKSign_JCalls*) this_arg; int8_tArray ret = js_invoke_function_1(j_calls->release_commitment_secret_meth, idx); LDKThirtyTwoBytes ret_ref; @@ -1660,7 +1831,7 @@ LDKThirtyTwoBytes release_commitment_secret_jcall(const void* this_arg, uint64_t memcpy(ret_ref.data, (uint8_t*)(ret + 4), 32); return ret_ref; } -LDKThirtyTwoBytes channel_keys_id_jcall(const void* this_arg) { +LDKThirtyTwoBytes channel_keys_id_LDKSign_jcall(const void* this_arg) { LDKSign_JCalls *j_calls = (LDKSign_JCalls*) this_arg; int8_tArray ret = js_invoke_function_0(j_calls->channel_keys_id_meth); LDKThirtyTwoBytes ret_ref; @@ -1668,7 +1839,7 @@ LDKThirtyTwoBytes channel_keys_id_jcall(const void* this_arg) { memcpy(ret_ref.data, (uint8_t*)(ret + 4), 32); return ret_ref; } -LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ sign_counterparty_commitment_jcall(const void* this_arg, const LDKCommitmentTransaction * commitment_tx) { +LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ sign_counterparty_commitment_LDKSign_jcall(const void* this_arg, const LDKCommitmentTransaction * commitment_tx) { LDKSign_JCalls *j_calls = (LDKSign_JCalls*) this_arg; LDKCommitmentTransaction commitment_tx_var = *commitment_tx; commitment_tx_var = CommitmentTransaction_clone(commitment_tx); @@ -1680,10 +1851,10 @@ LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ sign_counterparty_commitment_j } LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ* ret = (LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ*)js_invoke_function_1(j_calls->sign_counterparty_commitment_meth, commitment_tx_ref); LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ ret_conv = *(LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ*)(((uint64_t)ret) & ~1); - ret_conv = CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ_clone((LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ*)ret); + ret_conv = CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ_clone((LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ*)(((uint64_t)ret) & ~1)); return ret_conv; } -LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ sign_holder_commitment_and_htlcs_jcall(const void* this_arg, const LDKHolderCommitmentTransaction * commitment_tx) { +LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ sign_holder_commitment_and_htlcs_LDKSign_jcall(const void* this_arg, const LDKHolderCommitmentTransaction * commitment_tx) { LDKSign_JCalls *j_calls = (LDKSign_JCalls*) this_arg; LDKHolderCommitmentTransaction commitment_tx_var = *commitment_tx; commitment_tx_var = HolderCommitmentTransaction_clone(commitment_tx); @@ -1695,10 +1866,10 @@ LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ sign_holder_commitment_and_htl } LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ* ret = (LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ*)js_invoke_function_1(j_calls->sign_holder_commitment_and_htlcs_meth, commitment_tx_ref); LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ ret_conv = *(LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ*)(((uint64_t)ret) & ~1); - ret_conv = CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ_clone((LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ*)ret); + ret_conv = CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ_clone((LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ*)(((uint64_t)ret) & ~1)); return ret_conv; } -LDKCResult_SignatureNoneZ sign_justice_transaction_jcall(const void* this_arg, LDKTransaction justice_tx, uintptr_t input, uint64_t amount, const uint8_t (* per_commitment_key)[32], const LDKHTLCOutputInCommitment * htlc) { +LDKCResult_SignatureNoneZ sign_justice_transaction_LDKSign_jcall(const void* this_arg, LDKTransaction justice_tx, uintptr_t input, uint64_t amount, const uint8_t (* per_commitment_key)[32], const LDKHTLCOutputInCommitment * htlc) { LDKSign_JCalls *j_calls = (LDKSign_JCalls*) this_arg; LDKTransaction justice_tx_var = justice_tx; int8_tArray justice_tx_arr = init_arr(justice_tx_var.datalen, sizeof(uint8_t), "Native int8_tArray Bytes"); @@ -1716,10 +1887,10 @@ LDKCResult_SignatureNoneZ sign_justice_transaction_jcall(const void* this_arg, L } LDKCResult_SignatureNoneZ* ret = (LDKCResult_SignatureNoneZ*)js_invoke_function_5(j_calls->sign_justice_transaction_meth, justice_tx_arr, input, amount, per_commitment_key_arr, htlc_ref); LDKCResult_SignatureNoneZ ret_conv = *(LDKCResult_SignatureNoneZ*)(((uint64_t)ret) & ~1); - ret_conv = CResult_SignatureNoneZ_clone((LDKCResult_SignatureNoneZ*)ret); + ret_conv = CResult_SignatureNoneZ_clone((LDKCResult_SignatureNoneZ*)(((uint64_t)ret) & ~1)); return ret_conv; } -LDKCResult_SignatureNoneZ sign_counterparty_htlc_transaction_jcall(const void* this_arg, LDKTransaction htlc_tx, uintptr_t input, uint64_t amount, LDKPublicKey per_commitment_point, const LDKHTLCOutputInCommitment * htlc) { +LDKCResult_SignatureNoneZ sign_counterparty_htlc_transaction_LDKSign_jcall(const void* this_arg, LDKTransaction htlc_tx, uintptr_t input, uint64_t amount, LDKPublicKey per_commitment_point, const LDKHTLCOutputInCommitment * htlc) { LDKSign_JCalls *j_calls = (LDKSign_JCalls*) this_arg; LDKTransaction htlc_tx_var = htlc_tx; int8_tArray htlc_tx_arr = init_arr(htlc_tx_var.datalen, sizeof(uint8_t), "Native int8_tArray Bytes"); @@ -1737,10 +1908,10 @@ LDKCResult_SignatureNoneZ sign_counterparty_htlc_transaction_jcall(const void* t } LDKCResult_SignatureNoneZ* ret = (LDKCResult_SignatureNoneZ*)js_invoke_function_5(j_calls->sign_counterparty_htlc_transaction_meth, htlc_tx_arr, input, amount, per_commitment_point_arr, htlc_ref); LDKCResult_SignatureNoneZ ret_conv = *(LDKCResult_SignatureNoneZ*)(((uint64_t)ret) & ~1); - ret_conv = CResult_SignatureNoneZ_clone((LDKCResult_SignatureNoneZ*)ret); + ret_conv = CResult_SignatureNoneZ_clone((LDKCResult_SignatureNoneZ*)(((uint64_t)ret) & ~1)); return ret_conv; } -LDKCResult_SignatureNoneZ sign_closing_transaction_jcall(const void* this_arg, LDKTransaction closing_tx) { +LDKCResult_SignatureNoneZ sign_closing_transaction_LDKSign_jcall(const void* this_arg, LDKTransaction closing_tx) { LDKSign_JCalls *j_calls = (LDKSign_JCalls*) this_arg; LDKTransaction closing_tx_var = closing_tx; int8_tArray closing_tx_arr = init_arr(closing_tx_var.datalen, sizeof(uint8_t), "Native int8_tArray Bytes"); @@ -1748,10 +1919,10 @@ LDKCResult_SignatureNoneZ sign_closing_transaction_jcall(const void* this_arg, L Transaction_free(closing_tx_var); LDKCResult_SignatureNoneZ* ret = (LDKCResult_SignatureNoneZ*)js_invoke_function_1(j_calls->sign_closing_transaction_meth, closing_tx_arr); LDKCResult_SignatureNoneZ ret_conv = *(LDKCResult_SignatureNoneZ*)(((uint64_t)ret) & ~1); - ret_conv = CResult_SignatureNoneZ_clone((LDKCResult_SignatureNoneZ*)ret); + ret_conv = CResult_SignatureNoneZ_clone((LDKCResult_SignatureNoneZ*)(((uint64_t)ret) & ~1)); return ret_conv; } -LDKCResult_SignatureNoneZ sign_channel_announcement_jcall(const void* this_arg, const LDKUnsignedChannelAnnouncement * msg) { +LDKCResult_SignatureNoneZ sign_channel_announcement_LDKSign_jcall(const void* this_arg, const LDKUnsignedChannelAnnouncement * msg) { LDKSign_JCalls *j_calls = (LDKSign_JCalls*) this_arg; LDKUnsignedChannelAnnouncement msg_var = *msg; msg_var = UnsignedChannelAnnouncement_clone(msg); @@ -1763,10 +1934,10 @@ LDKCResult_SignatureNoneZ sign_channel_announcement_jcall(const void* this_arg, } LDKCResult_SignatureNoneZ* ret = (LDKCResult_SignatureNoneZ*)js_invoke_function_1(j_calls->sign_channel_announcement_meth, msg_ref); LDKCResult_SignatureNoneZ ret_conv = *(LDKCResult_SignatureNoneZ*)(((uint64_t)ret) & ~1); - ret_conv = CResult_SignatureNoneZ_clone((LDKCResult_SignatureNoneZ*)ret); + ret_conv = CResult_SignatureNoneZ_clone((LDKCResult_SignatureNoneZ*)(((uint64_t)ret) & ~1)); return ret_conv; } -void ready_channel_jcall(void* this_arg, const LDKChannelTransactionParameters * channel_parameters) { +void ready_channel_LDKSign_jcall(void* this_arg, const LDKChannelTransactionParameters * channel_parameters) { LDKSign_JCalls *j_calls = (LDKSign_JCalls*) this_arg; LDKChannelTransactionParameters channel_parameters_var = *channel_parameters; channel_parameters_var = ChannelTransactionParameters_clone(channel_parameters); @@ -1778,7 +1949,7 @@ void ready_channel_jcall(void* this_arg, const LDKChannelTransactionParameters * } js_invoke_function_1(j_calls->ready_channel_meth, channel_parameters_ref); } -LDKCVec_u8Z write_jcall(const void* this_arg) { +LDKCVec_u8Z write_LDKSign_jcall(const void* this_arg) { LDKSign_JCalls *j_calls = (LDKSign_JCalls*) this_arg; int8_tArray ret = js_invoke_function_0(j_calls->write_meth); LDKCVec_u8Z ret_ref; @@ -1804,18 +1975,18 @@ static inline LDKSign LDKSign_init (/*TODO: JS Object Reference */void* o, uint3 LDKSign ret = { .this_arg = (void*) calls, - .get_per_commitment_point = get_per_commitment_point_jcall, - .release_commitment_secret = release_commitment_secret_jcall, - .channel_keys_id = channel_keys_id_jcall, - .sign_counterparty_commitment = sign_counterparty_commitment_jcall, - .sign_holder_commitment_and_htlcs = sign_holder_commitment_and_htlcs_jcall, - .sign_justice_transaction = sign_justice_transaction_jcall, - .sign_counterparty_htlc_transaction = sign_counterparty_htlc_transaction_jcall, - .sign_closing_transaction = sign_closing_transaction_jcall, - .sign_channel_announcement = sign_channel_announcement_jcall, - .ready_channel = ready_channel_jcall, + .get_per_commitment_point = get_per_commitment_point_LDKSign_jcall, + .release_commitment_secret = release_commitment_secret_LDKSign_jcall, + .channel_keys_id = channel_keys_id_LDKSign_jcall, + .sign_counterparty_commitment = sign_counterparty_commitment_LDKSign_jcall, + .sign_holder_commitment_and_htlcs = sign_holder_commitment_and_htlcs_LDKSign_jcall, + .sign_justice_transaction = sign_justice_transaction_LDKSign_jcall, + .sign_counterparty_htlc_transaction = sign_counterparty_htlc_transaction_LDKSign_jcall, + .sign_closing_transaction = sign_closing_transaction_LDKSign_jcall, + .sign_channel_announcement = sign_channel_announcement_LDKSign_jcall, + .ready_channel = ready_channel_LDKSign_jcall, .clone = LDKSign_JCalls_clone, - .write = write_jcall, + .write = write_LDKSign_jcall, .free = LDKSign_JCalls_free, .pubkeys = pubkeys_conv, .set_pubkeys = NULL, @@ -1828,28 +1999,28 @@ long __attribute__((visibility("default"))) TS_LDKSign_new(/*TODO: JS Object Re return (long)res_ptr; } int8_tArray __attribute__((visibility("default"))) TS_Sign_get_per_commitment_point(uint32_t this_arg, int64_t idx) { - LDKSign* this_arg_conv = (LDKSign*)this_arg; + LDKSign* this_arg_conv = (LDKSign*)(((uint64_t)this_arg) & ~1); int8_tArray ret_arr = init_arr(33, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(ret_arr + 4), (this_arg_conv->get_per_commitment_point)(this_arg_conv->this_arg, idx).compressed_form, 33); return ret_arr; } int8_tArray __attribute__((visibility("default"))) TS_Sign_release_commitment_secret(uint32_t this_arg, int64_t idx) { - LDKSign* this_arg_conv = (LDKSign*)this_arg; + LDKSign* this_arg_conv = (LDKSign*)(((uint64_t)this_arg) & ~1); int8_tArray ret_arr = init_arr(32, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(ret_arr + 4), (this_arg_conv->release_commitment_secret)(this_arg_conv->this_arg, idx).data, 32); return ret_arr; } int8_tArray __attribute__((visibility("default"))) TS_Sign_channel_keys_id(uint32_t this_arg) { - LDKSign* this_arg_conv = (LDKSign*)this_arg; + LDKSign* this_arg_conv = (LDKSign*)(((uint64_t)this_arg) & ~1); int8_tArray ret_arr = init_arr(32, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(ret_arr + 4), (this_arg_conv->channel_keys_id)(this_arg_conv->this_arg).data, 32); return ret_arr; } uint32_t __attribute__((visibility("default"))) TS_Sign_sign_counterparty_commitment(uint32_t this_arg, uint32_t commitment_tx) { - LDKSign* this_arg_conv = (LDKSign*)this_arg; + LDKSign* this_arg_conv = (LDKSign*)(((uint64_t)this_arg) & ~1); LDKCommitmentTransaction commitment_tx_conv; commitment_tx_conv.inner = (void*)(commitment_tx & (~1)); commitment_tx_conv.is_owned = false; @@ -1859,7 +2030,7 @@ uint32_t __attribute__((visibility("default"))) TS_Sign_sign_counterparty_commi } uint32_t __attribute__((visibility("default"))) TS_Sign_sign_holder_commitment_and_htlcs(uint32_t this_arg, uint32_t commitment_tx) { - LDKSign* this_arg_conv = (LDKSign*)this_arg; + LDKSign* this_arg_conv = (LDKSign*)(((uint64_t)this_arg) & ~1); LDKHolderCommitmentTransaction commitment_tx_conv; commitment_tx_conv.inner = (void*)(commitment_tx & (~1)); commitment_tx_conv.is_owned = false; @@ -1869,7 +2040,7 @@ uint32_t __attribute__((visibility("default"))) TS_Sign_sign_holder_commitment_ } uint32_t __attribute__((visibility("default"))) TS_Sign_sign_justice_transaction(uint32_t this_arg, int8_tArray justice_tx, int64_t input, int64_t amount, int8_tArray per_commitment_key, uint32_t htlc) { - LDKSign* this_arg_conv = (LDKSign*)this_arg; + LDKSign* this_arg_conv = (LDKSign*)(((uint64_t)this_arg) & ~1); LDKTransaction justice_tx_ref; justice_tx_ref.datalen = *((uint32_t*)justice_tx); justice_tx_ref.data = MALLOC(justice_tx_ref.datalen, "LDKTransaction Bytes"); @@ -1888,7 +2059,7 @@ uint32_t __attribute__((visibility("default"))) TS_Sign_sign_justice_transactio } uint32_t __attribute__((visibility("default"))) TS_Sign_sign_counterparty_htlc_transaction(uint32_t this_arg, int8_tArray htlc_tx, int64_t input, int64_t amount, int8_tArray per_commitment_point, uint32_t htlc) { - LDKSign* this_arg_conv = (LDKSign*)this_arg; + LDKSign* this_arg_conv = (LDKSign*)(((uint64_t)this_arg) & ~1); LDKTransaction htlc_tx_ref; htlc_tx_ref.datalen = *((uint32_t*)htlc_tx); htlc_tx_ref.data = MALLOC(htlc_tx_ref.datalen, "LDKTransaction Bytes"); @@ -1906,7 +2077,7 @@ uint32_t __attribute__((visibility("default"))) TS_Sign_sign_counterparty_htlc_ } uint32_t __attribute__((visibility("default"))) TS_Sign_sign_closing_transaction(uint32_t this_arg, int8_tArray closing_tx) { - LDKSign* this_arg_conv = (LDKSign*)this_arg; + LDKSign* this_arg_conv = (LDKSign*)(((uint64_t)this_arg) & ~1); LDKTransaction closing_tx_ref; closing_tx_ref.datalen = *((uint32_t*)closing_tx); closing_tx_ref.data = MALLOC(closing_tx_ref.datalen, "LDKTransaction Bytes"); @@ -1918,7 +2089,7 @@ uint32_t __attribute__((visibility("default"))) TS_Sign_sign_closing_transactio } uint32_t __attribute__((visibility("default"))) TS_Sign_sign_channel_announcement(uint32_t this_arg, uint32_t msg) { - LDKSign* this_arg_conv = (LDKSign*)this_arg; + LDKSign* this_arg_conv = (LDKSign*)(((uint64_t)this_arg) & ~1); LDKUnsignedChannelAnnouncement msg_conv; msg_conv.inner = (void*)(msg & (~1)); msg_conv.is_owned = false; @@ -1928,7 +2099,7 @@ uint32_t __attribute__((visibility("default"))) TS_Sign_sign_channel_announceme } void __attribute__((visibility("default"))) TS_Sign_ready_channel(uint32_t this_arg, uint32_t channel_parameters) { - LDKSign* this_arg_conv = (LDKSign*)this_arg; + LDKSign* this_arg_conv = (LDKSign*)(((uint64_t)this_arg) & ~1); LDKChannelTransactionParameters channel_parameters_conv; channel_parameters_conv.inner = (void*)(channel_parameters & (~1)); channel_parameters_conv.is_owned = false; @@ -1936,7 +2107,7 @@ void __attribute__((visibility("default"))) TS_Sign_ready_channel(uint32_t this } int8_tArray __attribute__((visibility("default"))) TS_Sign_write(uint32_t this_arg) { - LDKSign* this_arg_conv = (LDKSign*)this_arg; + LDKSign* this_arg_conv = (LDKSign*)(((uint64_t)this_arg) & ~1); LDKCVec_u8Z ret_var = (this_arg_conv->write)(this_arg_conv->this_arg); int8_tArray ret_arr = init_arr(ret_var.datalen, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(ret_arr + 4), ret_var.data, ret_var.datalen); @@ -1950,7 +2121,7 @@ LDKChannelPublicKeys LDKSign_set_get_pubkeys(LDKSign* this_arg) { return this_arg->pubkeys; } uint32_t __attribute__((visibility("default"))) TS_Sign_get_pubkeys(uint32_t this_arg) { - LDKSign* this_arg_conv = (LDKSign*)this_arg; + LDKSign* this_arg_conv = (LDKSign*)(((uint64_t)this_arg) & ~1); LDKChannelPublicKeys ret_var = LDKSign_set_get_pubkeys(this_arg_conv); CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this. @@ -2021,8 +2192,21 @@ uint32_t __attribute__((visibility("default"))) TS_LDKCResult_TxOutAccessErrorZ uint32_t err_conv = LDKAccessError_to_js((*val->contents.err)); return err_conv; } +uint32_t __attribute__((visibility("default"))) TS_LDKCOption_C2Tuple_usizeTransactionZZ_ref_from_ptr(uint32_t ptr) { + LDKCOption_C2Tuple_usizeTransactionZZ *obj = (LDKCOption_C2Tuple_usizeTransactionZZ*)(ptr & ~1); + switch(obj->tag) { + case LDKCOption_C2Tuple_usizeTransactionZZ_Some: { + long some_ref = (long)(&obj->some) | 1; + return 0 /* LDKCOption_C2Tuple_usizeTransactionZZ - Some */; (void) some_ref; + } + case LDKCOption_C2Tuple_usizeTransactionZZ_None: { + return 0 /* LDKCOption_C2Tuple_usizeTransactionZZ - None */; + } + default: abort(); + } +} uint32_t __attribute__((visibility("default"))) TS_LDKAPIError_ref_from_ptr(uint32_t ptr) { - LDKAPIError *obj = (LDKAPIError*)ptr; + LDKAPIError *obj = (LDKAPIError*)(ptr & ~1); switch(obj->tag) { case LDKAPIError_APIMisuseError: { LDKCVec_u8Z err_var = obj->api_misuse_error.err; @@ -2078,7 +2262,7 @@ uint32_t __attribute__((visibility("default"))) TS_LDKCVec_CResult_NoneAPIError for (size_t i = 0; i < ret->datalen; i++) { uint32_t arr_elem = java_elems[i]; LDKCResult_NoneAPIErrorZ arr_elem_conv = *(LDKCResult_NoneAPIErrorZ*)(((uint64_t)arr_elem) & ~1); - FREE((void*)arr_elem); + arr_elem_conv = CResult_NoneAPIErrorZ_clone((LDKCResult_NoneAPIErrorZ*)(((uint64_t)arr_elem) & ~1)); ret->data[i] = arr_elem_conv; } } @@ -2102,7 +2286,7 @@ uint32_t __attribute__((visibility("default"))) TS_LDKCVec_APIErrorZ_new(uint32 for (size_t i = 0; i < ret->datalen; i++) { uint32_t arr_elem = java_elems[i]; LDKAPIError arr_elem_conv = *(LDKAPIError*)(((uint64_t)arr_elem) & ~1); - FREE((void*)arr_elem); + arr_elem_conv = APIError_clone((LDKAPIError*)(((uint64_t)arr_elem) & ~1)); ret->data[i] = arr_elem_conv; } } @@ -2142,19 +2326,45 @@ static inline LDKCVec_ChannelDetailsZ CVec_ChannelDetailsZ_clone(const LDKCVec_C return ret; } uint32_t __attribute__((visibility("default"))) TS_LDKPaymentSendFailure_ref_from_ptr(uint32_t ptr) { - LDKPaymentSendFailure *obj = (LDKPaymentSendFailure*)ptr; + LDKPaymentSendFailure *obj = (LDKPaymentSendFailure*)(ptr & ~1); switch(obj->tag) { case LDKPaymentSendFailure_ParameterError: { - return 0 /* LDKPaymentSendFailure - ParameterError */; + long parameter_error_ref = ((long)&obj->parameter_error) | 1; + return 0 /* LDKPaymentSendFailure - ParameterError */; (void) parameter_error_ref; } case LDKPaymentSendFailure_PathParameterError: { - return 0 /* LDKPaymentSendFailure - PathParameterError */; + LDKCVec_CResult_NoneAPIErrorZZ path_parameter_error_var = obj->path_parameter_error; + uint32_tArray path_parameter_error_arr = init_arr(path_parameter_error_var.datalen, sizeof(uint32_t), "Native uint32_tArray Bytes"); + uint32_t *path_parameter_error_arr_ptr = (uint32_t*)(path_parameter_error_arr + 4); + for (size_t w = 0; w < path_parameter_error_var.datalen; w++) { + LDKCResult_NoneAPIErrorZ* path_parameter_error_conv_22_conv = MALLOC(sizeof(LDKCResult_NoneAPIErrorZ), "LDKCResult_NoneAPIErrorZ"); + *path_parameter_error_conv_22_conv = path_parameter_error_var.data[w]; + *path_parameter_error_conv_22_conv = CResult_NoneAPIErrorZ_clone(path_parameter_error_conv_22_conv); + path_parameter_error_arr_ptr[w] = (long)path_parameter_error_conv_22_conv; + } + return 0 /* LDKPaymentSendFailure - PathParameterError */; (void) path_parameter_error_arr; } case LDKPaymentSendFailure_AllFailedRetrySafe: { - return 0 /* LDKPaymentSendFailure - AllFailedRetrySafe */; + LDKCVec_APIErrorZ all_failed_retry_safe_var = obj->all_failed_retry_safe; + uint32_tArray all_failed_retry_safe_arr = init_arr(all_failed_retry_safe_var.datalen, sizeof(uint32_t), "Native uint32_tArray Bytes"); + uint32_t *all_failed_retry_safe_arr_ptr = (uint32_t*)(all_failed_retry_safe_arr + 4); + for (size_t k = 0; k < all_failed_retry_safe_var.datalen; k++) { + long all_failed_retry_safe_conv_10_ref = ((long)&all_failed_retry_safe_var.data[k]) | 1; + all_failed_retry_safe_arr_ptr[k] = all_failed_retry_safe_conv_10_ref; + } + return 0 /* LDKPaymentSendFailure - AllFailedRetrySafe */; (void) all_failed_retry_safe_arr; } case LDKPaymentSendFailure_PartialFailure: { - return 0 /* LDKPaymentSendFailure - PartialFailure */; + LDKCVec_CResult_NoneAPIErrorZZ partial_failure_var = obj->partial_failure; + uint32_tArray partial_failure_arr = init_arr(partial_failure_var.datalen, sizeof(uint32_t), "Native uint32_tArray Bytes"); + uint32_t *partial_failure_arr_ptr = (uint32_t*)(partial_failure_arr + 4); + for (size_t w = 0; w < partial_failure_var.datalen; w++) { + LDKCResult_NoneAPIErrorZ* partial_failure_conv_22_conv = MALLOC(sizeof(LDKCResult_NoneAPIErrorZ), "LDKCResult_NoneAPIErrorZ"); + *partial_failure_conv_22_conv = partial_failure_var.data[w]; + *partial_failure_conv_22_conv = CResult_NoneAPIErrorZ_clone(partial_failure_conv_22_conv); + partial_failure_arr_ptr[w] = (long)partial_failure_conv_22_conv; + } + return 0 /* LDKPaymentSendFailure - PartialFailure */; (void) partial_failure_arr; } default: abort(); } @@ -2214,7 +2424,7 @@ static void LDKWatch_JCalls_free(void* this_arg) { FREE(j_calls); } } -LDKCResult_NoneChannelMonitorUpdateErrZ watch_channel_jcall(const void* this_arg, LDKOutPoint funding_txo, LDKChannelMonitor monitor) { +LDKCResult_NoneChannelMonitorUpdateErrZ watch_channel_LDKWatch_jcall(const void* this_arg, LDKOutPoint funding_txo, LDKChannelMonitor monitor) { LDKWatch_JCalls *j_calls = (LDKWatch_JCalls*) this_arg; LDKOutPoint funding_txo_var = funding_txo; CHECK((((long)funding_txo_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. @@ -2232,10 +2442,10 @@ LDKCResult_NoneChannelMonitorUpdateErrZ watch_channel_jcall(const void* this_arg } LDKCResult_NoneChannelMonitorUpdateErrZ* ret = (LDKCResult_NoneChannelMonitorUpdateErrZ*)js_invoke_function_2(j_calls->watch_channel_meth, funding_txo_ref, monitor_ref); LDKCResult_NoneChannelMonitorUpdateErrZ ret_conv = *(LDKCResult_NoneChannelMonitorUpdateErrZ*)(((uint64_t)ret) & ~1); - ret_conv = CResult_NoneChannelMonitorUpdateErrZ_clone((LDKCResult_NoneChannelMonitorUpdateErrZ*)ret); + ret_conv = CResult_NoneChannelMonitorUpdateErrZ_clone((LDKCResult_NoneChannelMonitorUpdateErrZ*)(((uint64_t)ret) & ~1)); return ret_conv; } -LDKCResult_NoneChannelMonitorUpdateErrZ update_channel_jcall(const void* this_arg, LDKOutPoint funding_txo, LDKChannelMonitorUpdate update) { +LDKCResult_NoneChannelMonitorUpdateErrZ update_channel_LDKWatch_jcall(const void* this_arg, LDKOutPoint funding_txo, LDKChannelMonitorUpdate update) { LDKWatch_JCalls *j_calls = (LDKWatch_JCalls*) this_arg; LDKOutPoint funding_txo_var = funding_txo; CHECK((((long)funding_txo_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. @@ -2253,10 +2463,10 @@ LDKCResult_NoneChannelMonitorUpdateErrZ update_channel_jcall(const void* this_ar } LDKCResult_NoneChannelMonitorUpdateErrZ* ret = (LDKCResult_NoneChannelMonitorUpdateErrZ*)js_invoke_function_2(j_calls->update_channel_meth, funding_txo_ref, update_ref); LDKCResult_NoneChannelMonitorUpdateErrZ ret_conv = *(LDKCResult_NoneChannelMonitorUpdateErrZ*)(((uint64_t)ret) & ~1); - ret_conv = CResult_NoneChannelMonitorUpdateErrZ_clone((LDKCResult_NoneChannelMonitorUpdateErrZ*)ret); + ret_conv = CResult_NoneChannelMonitorUpdateErrZ_clone((LDKCResult_NoneChannelMonitorUpdateErrZ*)(((uint64_t)ret) & ~1)); return ret_conv; } -LDKCVec_MonitorEventZ release_pending_monitor_events_jcall(const void* this_arg) { +LDKCVec_MonitorEventZ release_pending_monitor_events_LDKWatch_jcall(const void* this_arg) { LDKWatch_JCalls *j_calls = (LDKWatch_JCalls*) this_arg; uint32_tArray ret = js_invoke_function_0(j_calls->release_pending_monitor_events_meth); LDKCVec_MonitorEventZ ret_constr; @@ -2269,7 +2479,7 @@ LDKCVec_MonitorEventZ release_pending_monitor_events_jcall(const void* this_arg) for (size_t o = 0; o < ret_constr.datalen; o++) { uint32_t ret_conv_14 = ret_vals[o]; LDKMonitorEvent ret_conv_14_conv = *(LDKMonitorEvent*)(((uint64_t)ret_conv_14) & ~1); - ret_conv_14_conv = MonitorEvent_clone((LDKMonitorEvent*)ret_conv_14); + ret_conv_14_conv = MonitorEvent_clone((LDKMonitorEvent*)(((uint64_t)ret_conv_14) & ~1)); ret_constr.data[o] = ret_conv_14_conv; } return ret_constr; @@ -2286,9 +2496,9 @@ static inline LDKWatch LDKWatch_init (/*TODO: JS Object Reference */void* o) { LDKWatch ret = { .this_arg = (void*) calls, - .watch_channel = watch_channel_jcall, - .update_channel = update_channel_jcall, - .release_pending_monitor_events = release_pending_monitor_events_jcall, + .watch_channel = watch_channel_LDKWatch_jcall, + .update_channel = update_channel_LDKWatch_jcall, + .release_pending_monitor_events = release_pending_monitor_events_LDKWatch_jcall, .free = LDKWatch_JCalls_free, }; return ret; @@ -2299,7 +2509,7 @@ long __attribute__((visibility("default"))) TS_LDKWatch_new(/*TODO: JS Object R return (long)res_ptr; } uint32_t __attribute__((visibility("default"))) TS_Watch_watch_channel(uint32_t this_arg, uint32_t funding_txo, uint32_t monitor) { - LDKWatch* this_arg_conv = (LDKWatch*)this_arg; + LDKWatch* this_arg_conv = (LDKWatch*)(((uint64_t)this_arg) & ~1); LDKOutPoint funding_txo_conv; funding_txo_conv.inner = (void*)(funding_txo & (~1)); funding_txo_conv.is_owned = (funding_txo & 1) || (funding_txo == 0); @@ -2314,7 +2524,7 @@ uint32_t __attribute__((visibility("default"))) TS_Watch_watch_channel(uint32_t } uint32_t __attribute__((visibility("default"))) TS_Watch_update_channel(uint32_t this_arg, uint32_t funding_txo, uint32_t update) { - LDKWatch* this_arg_conv = (LDKWatch*)this_arg; + LDKWatch* this_arg_conv = (LDKWatch*)(((uint64_t)this_arg) & ~1); LDKOutPoint funding_txo_conv; funding_txo_conv.inner = (void*)(funding_txo & (~1)); funding_txo_conv.is_owned = (funding_txo & 1) || (funding_txo == 0); @@ -2329,7 +2539,7 @@ uint32_t __attribute__((visibility("default"))) TS_Watch_update_channel(uint32_ } uint32_tArray __attribute__((visibility("default"))) TS_Watch_release_pending_monitor_events(uint32_t this_arg) { - LDKWatch* this_arg_conv = (LDKWatch*)this_arg; + LDKWatch* this_arg_conv = (LDKWatch*)(((uint64_t)this_arg) & ~1); LDKCVec_MonitorEventZ ret_var = (this_arg_conv->release_pending_monitor_events)(this_arg_conv->this_arg); uint32_tArray ret_arr = init_arr(ret_var.datalen, sizeof(uint32_t), "Native uint32_tArray Bytes"); uint32_t *ret_arr_ptr = (uint32_t*)(ret_arr + 4); @@ -2354,7 +2564,7 @@ static void LDKBroadcasterInterface_JCalls_free(void* this_arg) { FREE(j_calls); } } -void broadcast_transaction_jcall(const void* this_arg, LDKTransaction tx) { +void broadcast_transaction_LDKBroadcasterInterface_jcall(const void* this_arg, LDKTransaction tx) { LDKBroadcasterInterface_JCalls *j_calls = (LDKBroadcasterInterface_JCalls*) this_arg; LDKTransaction tx_var = tx; int8_tArray tx_arr = init_arr(tx_var.datalen, sizeof(uint8_t), "Native int8_tArray Bytes"); @@ -2374,7 +2584,7 @@ static inline LDKBroadcasterInterface LDKBroadcasterInterface_init (/*TODO: JS O LDKBroadcasterInterface ret = { .this_arg = (void*) calls, - .broadcast_transaction = broadcast_transaction_jcall, + .broadcast_transaction = broadcast_transaction_LDKBroadcasterInterface_jcall, .free = LDKBroadcasterInterface_JCalls_free, }; return ret; @@ -2385,7 +2595,7 @@ long __attribute__((visibility("default"))) TS_LDKBroadcasterInterface_new(/*TO return (long)res_ptr; } void __attribute__((visibility("default"))) TS_BroadcasterInterface_broadcast_transaction(uint32_t this_arg, int8_tArray tx) { - LDKBroadcasterInterface* this_arg_conv = (LDKBroadcasterInterface*)this_arg; + LDKBroadcasterInterface* this_arg_conv = (LDKBroadcasterInterface*)(((uint64_t)this_arg) & ~1); LDKTransaction tx_ref; tx_ref.datalen = *((uint32_t*)tx); tx_ref.data = MALLOC(tx_ref.datalen, "LDKTransaction Bytes"); @@ -2434,7 +2644,7 @@ static void LDKKeysInterface_JCalls_free(void* this_arg) { FREE(j_calls); } } -LDKSecretKey get_node_secret_jcall(const void* this_arg) { +LDKSecretKey get_node_secret_LDKKeysInterface_jcall(const void* this_arg) { LDKKeysInterface_JCalls *j_calls = (LDKKeysInterface_JCalls*) this_arg; int8_tArray ret = js_invoke_function_0(j_calls->get_node_secret_meth); LDKSecretKey ret_ref; @@ -2442,7 +2652,7 @@ LDKSecretKey get_node_secret_jcall(const void* this_arg) { memcpy(ret_ref.bytes, (uint8_t*)(ret + 4), 32); return ret_ref; } -LDKCVec_u8Z get_destination_script_jcall(const void* this_arg) { +LDKCVec_u8Z get_destination_script_LDKKeysInterface_jcall(const void* this_arg) { LDKKeysInterface_JCalls *j_calls = (LDKKeysInterface_JCalls*) this_arg; int8_tArray ret = js_invoke_function_0(j_calls->get_destination_script_meth); LDKCVec_u8Z ret_ref; @@ -2451,7 +2661,7 @@ LDKCVec_u8Z get_destination_script_jcall(const void* this_arg) { memcpy(ret_ref.data, (uint8_t*)(ret + 4), ret_ref.datalen); return ret_ref; } -LDKPublicKey get_shutdown_pubkey_jcall(const void* this_arg) { +LDKPublicKey get_shutdown_pubkey_LDKKeysInterface_jcall(const void* this_arg) { LDKKeysInterface_JCalls *j_calls = (LDKKeysInterface_JCalls*) this_arg; int8_tArray ret = js_invoke_function_0(j_calls->get_shutdown_pubkey_meth); LDKPublicKey ret_ref; @@ -2459,14 +2669,14 @@ LDKPublicKey get_shutdown_pubkey_jcall(const void* this_arg) { memcpy(ret_ref.compressed_form, (uint8_t*)(ret + 4), 33); return ret_ref; } -LDKSign get_channel_signer_jcall(const void* this_arg, bool inbound, uint64_t channel_value_satoshis) { +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; LDKSign* ret = (LDKSign*)js_invoke_function_2(j_calls->get_channel_signer_meth, inbound, channel_value_satoshis); LDKSign ret_conv = *(LDKSign*)(((uint64_t)ret) & ~1); ret_conv = Sign_clone(ret); return ret_conv; } -LDKThirtyTwoBytes get_secure_random_bytes_jcall(const void* this_arg) { +LDKThirtyTwoBytes get_secure_random_bytes_LDKKeysInterface_jcall(const void* this_arg) { LDKKeysInterface_JCalls *j_calls = (LDKKeysInterface_JCalls*) this_arg; int8_tArray ret = js_invoke_function_0(j_calls->get_secure_random_bytes_meth); LDKThirtyTwoBytes ret_ref; @@ -2474,14 +2684,14 @@ LDKThirtyTwoBytes get_secure_random_bytes_jcall(const void* this_arg) { memcpy(ret_ref.data, (uint8_t*)(ret + 4), 32); return ret_ref; } -LDKCResult_SignDecodeErrorZ read_chan_signer_jcall(const void* this_arg, LDKu8slice reader) { +LDKCResult_SignDecodeErrorZ read_chan_signer_LDKKeysInterface_jcall(const void* this_arg, LDKu8slice reader) { LDKKeysInterface_JCalls *j_calls = (LDKKeysInterface_JCalls*) this_arg; LDKu8slice reader_var = reader; int8_tArray reader_arr = init_arr(reader_var.datalen, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(reader_arr + 4), reader_var.data, reader_var.datalen); LDKCResult_SignDecodeErrorZ* ret = (LDKCResult_SignDecodeErrorZ*)js_invoke_function_1(j_calls->read_chan_signer_meth, reader_arr); LDKCResult_SignDecodeErrorZ ret_conv = *(LDKCResult_SignDecodeErrorZ*)(((uint64_t)ret) & ~1); - ret_conv = CResult_SignDecodeErrorZ_clone((LDKCResult_SignDecodeErrorZ*)ret); + ret_conv = CResult_SignDecodeErrorZ_clone((LDKCResult_SignDecodeErrorZ*)(((uint64_t)ret) & ~1)); return ret_conv; } static void* LDKKeysInterface_JCalls_clone(const void* this_arg) { @@ -2496,12 +2706,12 @@ static inline LDKKeysInterface LDKKeysInterface_init (/*TODO: JS Object Referenc LDKKeysInterface ret = { .this_arg = (void*) calls, - .get_node_secret = get_node_secret_jcall, - .get_destination_script = get_destination_script_jcall, - .get_shutdown_pubkey = get_shutdown_pubkey_jcall, - .get_channel_signer = get_channel_signer_jcall, - .get_secure_random_bytes = get_secure_random_bytes_jcall, - .read_chan_signer = read_chan_signer_jcall, + .get_node_secret = get_node_secret_LDKKeysInterface_jcall, + .get_destination_script = get_destination_script_LDKKeysInterface_jcall, + .get_shutdown_pubkey = get_shutdown_pubkey_LDKKeysInterface_jcall, + .get_channel_signer = get_channel_signer_LDKKeysInterface_jcall, + .get_secure_random_bytes = get_secure_random_bytes_LDKKeysInterface_jcall, + .read_chan_signer = read_chan_signer_LDKKeysInterface_jcall, .free = LDKKeysInterface_JCalls_free, }; return ret; @@ -2512,14 +2722,14 @@ long __attribute__((visibility("default"))) TS_LDKKeysInterface_new(/*TODO: JS return (long)res_ptr; } int8_tArray __attribute__((visibility("default"))) TS_KeysInterface_get_node_secret(uint32_t this_arg) { - LDKKeysInterface* this_arg_conv = (LDKKeysInterface*)this_arg; + LDKKeysInterface* this_arg_conv = (LDKKeysInterface*)(((uint64_t)this_arg) & ~1); int8_tArray ret_arr = init_arr(32, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(ret_arr + 4), (this_arg_conv->get_node_secret)(this_arg_conv->this_arg).bytes, 32); return ret_arr; } int8_tArray __attribute__((visibility("default"))) TS_KeysInterface_get_destination_script(uint32_t this_arg) { - LDKKeysInterface* this_arg_conv = (LDKKeysInterface*)this_arg; + LDKKeysInterface* this_arg_conv = (LDKKeysInterface*)(((uint64_t)this_arg) & ~1); LDKCVec_u8Z ret_var = (this_arg_conv->get_destination_script)(this_arg_conv->this_arg); int8_tArray ret_arr = init_arr(ret_var.datalen, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(ret_arr + 4), ret_var.data, ret_var.datalen); @@ -2528,28 +2738,28 @@ int8_tArray __attribute__((visibility("default"))) TS_KeysInterface_get_destina } int8_tArray __attribute__((visibility("default"))) TS_KeysInterface_get_shutdown_pubkey(uint32_t this_arg) { - LDKKeysInterface* this_arg_conv = (LDKKeysInterface*)this_arg; + LDKKeysInterface* this_arg_conv = (LDKKeysInterface*)(((uint64_t)this_arg) & ~1); int8_tArray ret_arr = init_arr(33, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(ret_arr + 4), (this_arg_conv->get_shutdown_pubkey)(this_arg_conv->this_arg).compressed_form, 33); return ret_arr; } uint32_t __attribute__((visibility("default"))) TS_KeysInterface_get_channel_signer(uint32_t this_arg, jboolean inbound, int64_t channel_value_satoshis) { - LDKKeysInterface* this_arg_conv = (LDKKeysInterface*)this_arg; + LDKKeysInterface* this_arg_conv = (LDKKeysInterface*)(((uint64_t)this_arg) & ~1); LDKSign* ret = MALLOC(sizeof(LDKSign), "LDKSign"); *ret = (this_arg_conv->get_channel_signer)(this_arg_conv->this_arg, inbound, channel_value_satoshis); return (long)ret; } int8_tArray __attribute__((visibility("default"))) TS_KeysInterface_get_secure_random_bytes(uint32_t this_arg) { - LDKKeysInterface* this_arg_conv = (LDKKeysInterface*)this_arg; + LDKKeysInterface* this_arg_conv = (LDKKeysInterface*)(((uint64_t)this_arg) & ~1); int8_tArray ret_arr = init_arr(32, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(ret_arr + 4), (this_arg_conv->get_secure_random_bytes)(this_arg_conv->this_arg).data, 32); return ret_arr; } uint32_t __attribute__((visibility("default"))) TS_KeysInterface_read_chan_signer(uint32_t this_arg, int8_tArray reader) { - LDKKeysInterface* this_arg_conv = (LDKKeysInterface*)this_arg; + LDKKeysInterface* this_arg_conv = (LDKKeysInterface*)(((uint64_t)this_arg) & ~1); LDKu8slice reader_ref; reader_ref.datalen = *((uint32_t*)reader); reader_ref.data = (int8_t*)(reader + 4); @@ -2569,7 +2779,7 @@ static void LDKFeeEstimator_JCalls_free(void* this_arg) { FREE(j_calls); } } -uint32_t get_est_sat_per_1000_weight_jcall(const void* this_arg, LDKConfirmationTarget confirmation_target) { +uint32_t get_est_sat_per_1000_weight_LDKFeeEstimator_jcall(const void* this_arg, LDKConfirmationTarget confirmation_target) { LDKFeeEstimator_JCalls *j_calls = (LDKFeeEstimator_JCalls*) this_arg; uint32_t confirmation_target_conv = LDKConfirmationTarget_to_js(confirmation_target); return js_invoke_function_1(j_calls->get_est_sat_per_1000_weight_meth, confirmation_target_conv); @@ -2586,7 +2796,7 @@ static inline LDKFeeEstimator LDKFeeEstimator_init (/*TODO: JS Object Reference LDKFeeEstimator ret = { .this_arg = (void*) calls, - .get_est_sat_per_1000_weight = get_est_sat_per_1000_weight_jcall, + .get_est_sat_per_1000_weight = get_est_sat_per_1000_weight_LDKFeeEstimator_jcall, .free = LDKFeeEstimator_JCalls_free, }; return ret; @@ -2597,7 +2807,7 @@ long __attribute__((visibility("default"))) TS_LDKFeeEstimator_new(/*TODO: JS O return (long)res_ptr; } int32_t __attribute__((visibility("default"))) TS_FeeEstimator_get_est_sat_per_1000_weight(uint32_t this_arg, uint32_t confirmation_target) { - LDKFeeEstimator* this_arg_conv = (LDKFeeEstimator*)this_arg; + LDKFeeEstimator* this_arg_conv = (LDKFeeEstimator*)(((uint64_t)this_arg) & ~1); 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; @@ -2614,7 +2824,7 @@ static void LDKLogger_JCalls_free(void* this_arg) { FREE(j_calls); } } -void log_jcall(const void* this_arg, const char* record) { +void log_LDKLogger_jcall(const void* this_arg, const char* record) { LDKLogger_JCalls *j_calls = (LDKLogger_JCalls*) this_arg; const char* record_str = record; jstring record_conv = str_ref_to_ts(record_str, strlen(record_str)); @@ -2632,7 +2842,7 @@ static inline LDKLogger LDKLogger_init (/*TODO: JS Object Reference */void* o) { LDKLogger ret = { .this_arg = (void*) calls, - .log = log_jcall, + .log = log_LDKLogger_jcall, .free = LDKLogger_JCalls_free, }; return ret; @@ -2766,7 +2976,7 @@ uint32_t __attribute__((visibility("default"))) TS_LDKCVec_TxOutZ_new(uint32_tA for (size_t i = 0; i < ret->datalen; i++) { uint32_t arr_elem = java_elems[i]; LDKTxOut arr_elem_conv = *(LDKTxOut*)(((uint64_t)arr_elem) & ~1); - FREE((void*)arr_elem); + arr_elem_conv = TxOut_clone((LDKTxOut*)(((uint64_t)arr_elem) & ~1)); ret->data[i] = arr_elem_conv; } } @@ -3696,7 +3906,7 @@ static void LDKMessageSendEventsProvider_JCalls_free(void* this_arg) { FREE(j_calls); } } -LDKCVec_MessageSendEventZ get_and_clear_pending_msg_events_jcall(const void* this_arg) { +LDKCVec_MessageSendEventZ get_and_clear_pending_msg_events_LDKMessageSendEventsProvider_jcall(const void* this_arg) { LDKMessageSendEventsProvider_JCalls *j_calls = (LDKMessageSendEventsProvider_JCalls*) this_arg; uint32_tArray ret = js_invoke_function_0(j_calls->get_and_clear_pending_msg_events_meth); LDKCVec_MessageSendEventZ ret_constr; @@ -3709,7 +3919,7 @@ LDKCVec_MessageSendEventZ get_and_clear_pending_msg_events_jcall(const void* thi for (size_t s = 0; s < ret_constr.datalen; s++) { uint32_t ret_conv_18 = ret_vals[s]; LDKMessageSendEvent ret_conv_18_conv = *(LDKMessageSendEvent*)(((uint64_t)ret_conv_18) & ~1); - ret_conv_18_conv = MessageSendEvent_clone((LDKMessageSendEvent*)ret_conv_18); + ret_conv_18_conv = MessageSendEvent_clone((LDKMessageSendEvent*)(((uint64_t)ret_conv_18) & ~1)); ret_constr.data[s] = ret_conv_18_conv; } return ret_constr; @@ -3726,7 +3936,7 @@ static inline LDKMessageSendEventsProvider LDKMessageSendEventsProvider_init (/* LDKMessageSendEventsProvider ret = { .this_arg = (void*) calls, - .get_and_clear_pending_msg_events = get_and_clear_pending_msg_events_jcall, + .get_and_clear_pending_msg_events = get_and_clear_pending_msg_events_LDKMessageSendEventsProvider_jcall, .free = LDKMessageSendEventsProvider_JCalls_free, }; return ret; @@ -3737,7 +3947,7 @@ long __attribute__((visibility("default"))) TS_LDKMessageSendEventsProvider_new return (long)res_ptr; } uint32_tArray __attribute__((visibility("default"))) TS_MessageSendEventsProvider_get_and_clear_pending_msg_events(uint32_t this_arg) { - LDKMessageSendEventsProvider* this_arg_conv = (LDKMessageSendEventsProvider*)this_arg; + LDKMessageSendEventsProvider* this_arg_conv = (LDKMessageSendEventsProvider*)(((uint64_t)this_arg) & ~1); LDKCVec_MessageSendEventZ ret_var = (this_arg_conv->get_and_clear_pending_msg_events)(this_arg_conv->this_arg); uint32_tArray ret_arr = init_arr(ret_var.datalen, sizeof(uint32_t), "Native uint32_tArray Bytes"); uint32_t *ret_arr_ptr = (uint32_t*)(ret_arr + 4); @@ -3762,7 +3972,7 @@ static void LDKEventsProvider_JCalls_free(void* this_arg) { FREE(j_calls); } } -LDKCVec_EventZ get_and_clear_pending_events_jcall(const void* this_arg) { +LDKCVec_EventZ get_and_clear_pending_events_LDKEventsProvider_jcall(const void* this_arg) { LDKEventsProvider_JCalls *j_calls = (LDKEventsProvider_JCalls*) this_arg; uint32_tArray ret = js_invoke_function_0(j_calls->get_and_clear_pending_events_meth); LDKCVec_EventZ ret_constr; @@ -3775,7 +3985,7 @@ LDKCVec_EventZ get_and_clear_pending_events_jcall(const void* this_arg) { for (size_t h = 0; h < ret_constr.datalen; h++) { uint32_t ret_conv_7 = ret_vals[h]; LDKEvent ret_conv_7_conv = *(LDKEvent*)(((uint64_t)ret_conv_7) & ~1); - ret_conv_7_conv = Event_clone((LDKEvent*)ret_conv_7); + ret_conv_7_conv = Event_clone((LDKEvent*)(((uint64_t)ret_conv_7) & ~1)); ret_constr.data[h] = ret_conv_7_conv; } return ret_constr; @@ -3792,7 +4002,7 @@ static inline LDKEventsProvider LDKEventsProvider_init (/*TODO: JS Object Refere LDKEventsProvider ret = { .this_arg = (void*) calls, - .get_and_clear_pending_events = get_and_clear_pending_events_jcall, + .get_and_clear_pending_events = get_and_clear_pending_events_LDKEventsProvider_jcall, .free = LDKEventsProvider_JCalls_free, }; return ret; @@ -3803,7 +4013,7 @@ long __attribute__((visibility("default"))) TS_LDKEventsProvider_new(/*TODO: JS return (long)res_ptr; } uint32_tArray __attribute__((visibility("default"))) TS_EventsProvider_get_and_clear_pending_events(uint32_t this_arg) { - LDKEventsProvider* this_arg_conv = (LDKEventsProvider*)this_arg; + LDKEventsProvider* this_arg_conv = (LDKEventsProvider*)(((uint64_t)this_arg) & ~1); LDKCVec_EventZ ret_var = (this_arg_conv->get_and_clear_pending_events)(this_arg_conv->this_arg); uint32_tArray ret_arr = init_arr(ret_var.datalen, sizeof(uint32_t), "Native uint32_tArray Bytes"); uint32_t *ret_arr_ptr = (uint32_t*)(ret_arr + 4); @@ -3828,13 +4038,13 @@ static void LDKAccess_JCalls_free(void* this_arg) { FREE(j_calls); } } -LDKCResult_TxOutAccessErrorZ get_utxo_jcall(const void* this_arg, const uint8_t (* genesis_hash)[32], uint64_t short_channel_id) { +LDKCResult_TxOutAccessErrorZ get_utxo_LDKAccess_jcall(const void* this_arg, const uint8_t (* genesis_hash)[32], uint64_t short_channel_id) { LDKAccess_JCalls *j_calls = (LDKAccess_JCalls*) this_arg; int8_tArray genesis_hash_arr = init_arr(32, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(genesis_hash_arr + 4), *genesis_hash, 32); LDKCResult_TxOutAccessErrorZ* ret = (LDKCResult_TxOutAccessErrorZ*)js_invoke_function_2(j_calls->get_utxo_meth, genesis_hash_arr, short_channel_id); LDKCResult_TxOutAccessErrorZ ret_conv = *(LDKCResult_TxOutAccessErrorZ*)(((uint64_t)ret) & ~1); - ret_conv = CResult_TxOutAccessErrorZ_clone((LDKCResult_TxOutAccessErrorZ*)ret); + ret_conv = CResult_TxOutAccessErrorZ_clone((LDKCResult_TxOutAccessErrorZ*)(((uint64_t)ret) & ~1)); return ret_conv; } static void* LDKAccess_JCalls_clone(const void* this_arg) { @@ -3849,7 +4059,7 @@ static inline LDKAccess LDKAccess_init (/*TODO: JS Object Reference */void* o) { LDKAccess ret = { .this_arg = (void*) calls, - .get_utxo = get_utxo_jcall, + .get_utxo = get_utxo_LDKAccess_jcall, .free = LDKAccess_JCalls_free, }; return ret; @@ -3860,7 +4070,7 @@ long __attribute__((visibility("default"))) TS_LDKAccess_new(/*TODO: JS Object return (long)res_ptr; } uint32_t __attribute__((visibility("default"))) TS_Access_get_utxo(uint32_t this_arg, int8_tArray genesis_hash, int64_t short_channel_id) { - LDKAccess* this_arg_conv = (LDKAccess*)this_arg; + LDKAccess* this_arg_conv = (LDKAccess*)(((uint64_t)this_arg) & ~1); unsigned char genesis_hash_arr[32]; CHECK(*((uint32_t*)genesis_hash) == 32); memcpy(genesis_hash_arr, (uint8_t*)(genesis_hash + 4), 32); @@ -3883,14 +4093,14 @@ static void LDKListen_JCalls_free(void* this_arg) { FREE(j_calls); } } -void block_connected_jcall(const void* this_arg, LDKu8slice block, uint32_t height) { +void block_connected_LDKListen_jcall(const void* this_arg, LDKu8slice block, uint32_t height) { LDKListen_JCalls *j_calls = (LDKListen_JCalls*) this_arg; LDKu8slice block_var = block; int8_tArray block_arr = init_arr(block_var.datalen, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(block_arr + 4), block_var.data, block_var.datalen); js_invoke_function_2(j_calls->block_connected_meth, block_arr, height); } -void block_disconnected_jcall(const void* this_arg, const uint8_t (* header)[80], uint32_t height) { +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_arr(80, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(header_arr + 4), *header, 80); @@ -3908,8 +4118,8 @@ static inline LDKListen LDKListen_init (/*TODO: JS Object Reference */void* o) { LDKListen ret = { .this_arg = (void*) calls, - .block_connected = block_connected_jcall, - .block_disconnected = block_disconnected_jcall, + .block_connected = block_connected_LDKListen_jcall, + .block_disconnected = block_disconnected_LDKListen_jcall, .free = LDKListen_JCalls_free, }; return ret; @@ -3920,7 +4130,7 @@ long __attribute__((visibility("default"))) TS_LDKListen_new(/*TODO: JS Object return (long)res_ptr; } void __attribute__((visibility("default"))) TS_Listen_block_connected(uint32_t this_arg, int8_tArray block, int32_t height) { - LDKListen* this_arg_conv = (LDKListen*)this_arg; + LDKListen* this_arg_conv = (LDKListen*)(((uint64_t)this_arg) & ~1); LDKu8slice block_ref; block_ref.datalen = *((uint32_t*)block); block_ref.data = (int8_t*)(block + 4); @@ -3928,7 +4138,7 @@ void __attribute__((visibility("default"))) TS_Listen_block_connected(uint32_t } void __attribute__((visibility("default"))) TS_Listen_block_disconnected(uint32_t this_arg, int8_tArray header, int32_t height) { - LDKListen* this_arg_conv = (LDKListen*)this_arg; + LDKListen* this_arg_conv = (LDKListen*)(((uint64_t)this_arg) & ~1); unsigned char header_arr[80]; CHECK(*((uint32_t*)header) == 80); memcpy(header_arr, (uint8_t*)(header + 4), 80); @@ -3949,7 +4159,7 @@ static void LDKFilter_JCalls_free(void* this_arg) { FREE(j_calls); } } -void register_tx_jcall(const void* this_arg, const uint8_t (* txid)[32], LDKu8slice script_pubkey) { +void register_tx_LDKFilter_jcall(const void* this_arg, const uint8_t (* txid)[32], LDKu8slice script_pubkey) { LDKFilter_JCalls *j_calls = (LDKFilter_JCalls*) this_arg; int8_tArray txid_arr = init_arr(32, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(txid_arr + 4), *txid, 32); @@ -3958,20 +4168,19 @@ void register_tx_jcall(const void* this_arg, const uint8_t (* txid)[32], LDKu8sl memcpy((uint8_t*)(script_pubkey_arr + 4), script_pubkey_var.data, script_pubkey_var.datalen); js_invoke_function_2(j_calls->register_tx_meth, txid_arr, script_pubkey_arr); } -void register_output_jcall(const void* this_arg, const LDKOutPoint * outpoint, LDKu8slice script_pubkey) { +LDKCOption_C2Tuple_usizeTransactionZZ register_output_LDKFilter_jcall(const void* this_arg, LDKWatchedOutput output) { LDKFilter_JCalls *j_calls = (LDKFilter_JCalls*) this_arg; - LDKOutPoint outpoint_var = *outpoint; - outpoint_var = OutPoint_clone(outpoint); - CHECK((((long)outpoint_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. - CHECK((((long)&outpoint_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this. - long outpoint_ref = (long)outpoint_var.inner; - if (outpoint_var.is_owned) { - outpoint_ref |= 1; - } - LDKu8slice script_pubkey_var = script_pubkey; - int8_tArray script_pubkey_arr = init_arr(script_pubkey_var.datalen, sizeof(uint8_t), "Native int8_tArray Bytes"); - memcpy((uint8_t*)(script_pubkey_arr + 4), script_pubkey_var.data, script_pubkey_var.datalen); - js_invoke_function_2(j_calls->register_output_meth, outpoint_ref, script_pubkey_arr); + LDKWatchedOutput output_var = output; + CHECK((((long)output_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. + CHECK((((long)&output_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this. + long output_ref = (long)output_var.inner; + if (output_var.is_owned) { + output_ref |= 1; + } + LDKCOption_C2Tuple_usizeTransactionZZ* ret = (LDKCOption_C2Tuple_usizeTransactionZZ*)js_invoke_function_1(j_calls->register_output_meth, output_ref); + LDKCOption_C2Tuple_usizeTransactionZZ ret_conv = *(LDKCOption_C2Tuple_usizeTransactionZZ*)(((uint64_t)ret) & ~1); + // Warning: we may need a move here but no clone is available for LDKCOption_C2Tuple_usizeTransactionZZ + return ret_conv; } static void* LDKFilter_JCalls_clone(const void* this_arg) { LDKFilter_JCalls *j_calls = (LDKFilter_JCalls*) this_arg; @@ -3985,8 +4194,8 @@ static inline LDKFilter LDKFilter_init (/*TODO: JS Object Reference */void* o) { LDKFilter ret = { .this_arg = (void*) calls, - .register_tx = register_tx_jcall, - .register_output = register_output_jcall, + .register_tx = register_tx_LDKFilter_jcall, + .register_output = register_output_LDKFilter_jcall, .free = LDKFilter_JCalls_free, }; return ret; @@ -3997,7 +4206,7 @@ long __attribute__((visibility("default"))) TS_LDKFilter_new(/*TODO: JS Object return (long)res_ptr; } void __attribute__((visibility("default"))) TS_Filter_register_tx(uint32_t this_arg, int8_tArray txid, int8_tArray script_pubkey) { - LDKFilter* this_arg_conv = (LDKFilter*)this_arg; + LDKFilter* this_arg_conv = (LDKFilter*)(((uint64_t)this_arg) & ~1); unsigned char txid_arr[32]; CHECK(*((uint32_t*)txid) == 32); memcpy(txid_arr, (uint8_t*)(txid + 4), 32); @@ -4008,15 +4217,16 @@ void __attribute__((visibility("default"))) TS_Filter_register_tx(uint32_t this (this_arg_conv->register_tx)(this_arg_conv->this_arg, txid_ref, script_pubkey_ref); } -void __attribute__((visibility("default"))) TS_Filter_register_output(uint32_t this_arg, uint32_t outpoint, int8_tArray script_pubkey) { - LDKFilter* this_arg_conv = (LDKFilter*)this_arg; - LDKOutPoint outpoint_conv; - outpoint_conv.inner = (void*)(outpoint & (~1)); - outpoint_conv.is_owned = false; - LDKu8slice script_pubkey_ref; - script_pubkey_ref.datalen = *((uint32_t*)script_pubkey); - script_pubkey_ref.data = (int8_t*)(script_pubkey + 4); - (this_arg_conv->register_output)(this_arg_conv->this_arg, &outpoint_conv, script_pubkey_ref); +uint32_t __attribute__((visibility("default"))) TS_Filter_register_output(uint32_t this_arg, uint32_t output) { + LDKFilter* this_arg_conv = (LDKFilter*)(((uint64_t)this_arg) & ~1); + LDKWatchedOutput output_conv; + output_conv.inner = (void*)(output & (~1)); + output_conv.is_owned = (output & 1) || (output == 0); + // Warning: we need a move here but no clone is available for LDKWatchedOutput + LDKCOption_C2Tuple_usizeTransactionZZ *ret_copy = MALLOC(sizeof(LDKCOption_C2Tuple_usizeTransactionZZ), "LDKCOption_C2Tuple_usizeTransactionZZ"); + *ret_copy = (this_arg_conv->register_output)(this_arg_conv->this_arg, output_conv); + long ret_ref = (long)ret_copy; + return ret_ref; } typedef struct LDKPersist_JCalls { @@ -4032,7 +4242,7 @@ static void LDKPersist_JCalls_free(void* this_arg) { FREE(j_calls); } } -LDKCResult_NoneChannelMonitorUpdateErrZ persist_new_channel_jcall(const void* this_arg, LDKOutPoint id, const LDKChannelMonitor * data) { +LDKCResult_NoneChannelMonitorUpdateErrZ persist_new_channel_LDKPersist_jcall(const void* this_arg, LDKOutPoint id, const LDKChannelMonitor * data) { LDKPersist_JCalls *j_calls = (LDKPersist_JCalls*) this_arg; LDKOutPoint id_var = id; CHECK((((long)id_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. @@ -4051,10 +4261,10 @@ LDKCResult_NoneChannelMonitorUpdateErrZ persist_new_channel_jcall(const void* th } LDKCResult_NoneChannelMonitorUpdateErrZ* ret = (LDKCResult_NoneChannelMonitorUpdateErrZ*)js_invoke_function_2(j_calls->persist_new_channel_meth, id_ref, data_ref); LDKCResult_NoneChannelMonitorUpdateErrZ ret_conv = *(LDKCResult_NoneChannelMonitorUpdateErrZ*)(((uint64_t)ret) & ~1); - ret_conv = CResult_NoneChannelMonitorUpdateErrZ_clone((LDKCResult_NoneChannelMonitorUpdateErrZ*)ret); + ret_conv = CResult_NoneChannelMonitorUpdateErrZ_clone((LDKCResult_NoneChannelMonitorUpdateErrZ*)(((uint64_t)ret) & ~1)); return ret_conv; } -LDKCResult_NoneChannelMonitorUpdateErrZ update_persisted_channel_jcall(const void* this_arg, LDKOutPoint id, const LDKChannelMonitorUpdate * update, const LDKChannelMonitor * data) { +LDKCResult_NoneChannelMonitorUpdateErrZ update_persisted_channel_LDKPersist_jcall(const void* this_arg, LDKOutPoint id, const LDKChannelMonitorUpdate * update, const LDKChannelMonitor * data) { LDKPersist_JCalls *j_calls = (LDKPersist_JCalls*) this_arg; LDKOutPoint id_var = id; CHECK((((long)id_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. @@ -4081,7 +4291,7 @@ LDKCResult_NoneChannelMonitorUpdateErrZ update_persisted_channel_jcall(const voi } LDKCResult_NoneChannelMonitorUpdateErrZ* ret = (LDKCResult_NoneChannelMonitorUpdateErrZ*)js_invoke_function_3(j_calls->update_persisted_channel_meth, id_ref, update_ref, data_ref); LDKCResult_NoneChannelMonitorUpdateErrZ ret_conv = *(LDKCResult_NoneChannelMonitorUpdateErrZ*)(((uint64_t)ret) & ~1); - ret_conv = CResult_NoneChannelMonitorUpdateErrZ_clone((LDKCResult_NoneChannelMonitorUpdateErrZ*)ret); + ret_conv = CResult_NoneChannelMonitorUpdateErrZ_clone((LDKCResult_NoneChannelMonitorUpdateErrZ*)(((uint64_t)ret) & ~1)); return ret_conv; } static void* LDKPersist_JCalls_clone(const void* this_arg) { @@ -4096,8 +4306,8 @@ static inline LDKPersist LDKPersist_init (/*TODO: JS Object Reference */void* o) LDKPersist ret = { .this_arg = (void*) calls, - .persist_new_channel = persist_new_channel_jcall, - .update_persisted_channel = update_persisted_channel_jcall, + .persist_new_channel = persist_new_channel_LDKPersist_jcall, + .update_persisted_channel = update_persisted_channel_LDKPersist_jcall, .free = LDKPersist_JCalls_free, }; return ret; @@ -4108,7 +4318,7 @@ long __attribute__((visibility("default"))) TS_LDKPersist_new(/*TODO: JS Object return (long)res_ptr; } uint32_t __attribute__((visibility("default"))) TS_Persist_persist_new_channel(uint32_t this_arg, uint32_t id, uint32_t data) { - LDKPersist* this_arg_conv = (LDKPersist*)this_arg; + LDKPersist* this_arg_conv = (LDKPersist*)(((uint64_t)this_arg) & ~1); LDKOutPoint id_conv; id_conv.inner = (void*)(id & (~1)); id_conv.is_owned = (id & 1) || (id == 0); @@ -4122,7 +4332,7 @@ uint32_t __attribute__((visibility("default"))) TS_Persist_persist_new_channel( } uint32_t __attribute__((visibility("default"))) TS_Persist_update_persisted_channel(uint32_t this_arg, uint32_t id, uint32_t update, uint32_t data) { - LDKPersist* this_arg_conv = (LDKPersist*)this_arg; + LDKPersist* this_arg_conv = (LDKPersist*)(((uint64_t)this_arg) & ~1); LDKOutPoint id_conv; id_conv.inner = (void*)(id & (~1)); id_conv.is_owned = (id & 1) || (id == 0); @@ -4159,6 +4369,7 @@ typedef struct LDKChannelMessageHandler_JCalls { uint32_t peer_disconnected_meth; uint32_t peer_connected_meth; uint32_t handle_channel_reestablish_meth; + uint32_t handle_channel_update_meth; uint32_t handle_error_meth; } LDKChannelMessageHandler_JCalls; static void LDKChannelMessageHandler_JCalls_free(void* this_arg) { @@ -4182,11 +4393,12 @@ static void LDKChannelMessageHandler_JCalls_free(void* this_arg) { js_free(j_calls->peer_disconnected_meth); js_free(j_calls->peer_connected_meth); js_free(j_calls->handle_channel_reestablish_meth); + js_free(j_calls->handle_channel_update_meth); js_free(j_calls->handle_error_meth); FREE(j_calls); } } -void handle_open_channel_jcall(const void* this_arg, LDKPublicKey their_node_id, LDKInitFeatures their_features, const LDKOpenChannel * msg) { +void handle_open_channel_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, LDKInitFeatures their_features, const LDKOpenChannel * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; int8_tArray their_node_id_arr = init_arr(33, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(their_node_id_arr + 4), their_node_id.compressed_form, 33); @@ -4207,7 +4419,7 @@ void handle_open_channel_jcall(const void* this_arg, LDKPublicKey their_node_id, } js_invoke_function_3(j_calls->handle_open_channel_meth, their_node_id_arr, their_features_ref, msg_ref); } -void handle_accept_channel_jcall(const void* this_arg, LDKPublicKey their_node_id, LDKInitFeatures their_features, const LDKAcceptChannel * msg) { +void handle_accept_channel_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, LDKInitFeatures their_features, const LDKAcceptChannel * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; int8_tArray their_node_id_arr = init_arr(33, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(their_node_id_arr + 4), their_node_id.compressed_form, 33); @@ -4228,7 +4440,7 @@ void handle_accept_channel_jcall(const void* this_arg, LDKPublicKey their_node_i } js_invoke_function_3(j_calls->handle_accept_channel_meth, their_node_id_arr, their_features_ref, msg_ref); } -void handle_funding_created_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKFundingCreated * msg) { +void handle_funding_created_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKFundingCreated * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; int8_tArray their_node_id_arr = init_arr(33, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(their_node_id_arr + 4), their_node_id.compressed_form, 33); @@ -4242,7 +4454,7 @@ void handle_funding_created_jcall(const void* this_arg, LDKPublicKey their_node_ } js_invoke_function_2(j_calls->handle_funding_created_meth, their_node_id_arr, msg_ref); } -void handle_funding_signed_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKFundingSigned * msg) { +void handle_funding_signed_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKFundingSigned * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; int8_tArray their_node_id_arr = init_arr(33, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(their_node_id_arr + 4), their_node_id.compressed_form, 33); @@ -4256,7 +4468,7 @@ void handle_funding_signed_jcall(const void* this_arg, LDKPublicKey their_node_i } js_invoke_function_2(j_calls->handle_funding_signed_meth, their_node_id_arr, msg_ref); } -void handle_funding_locked_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKFundingLocked * msg) { +void handle_funding_locked_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKFundingLocked * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; int8_tArray their_node_id_arr = init_arr(33, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(their_node_id_arr + 4), their_node_id.compressed_form, 33); @@ -4270,7 +4482,7 @@ void handle_funding_locked_jcall(const void* this_arg, LDKPublicKey their_node_i } js_invoke_function_2(j_calls->handle_funding_locked_meth, their_node_id_arr, msg_ref); } -void handle_shutdown_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKInitFeatures * their_features, const LDKShutdown * msg) { +void handle_shutdown_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKInitFeatures * their_features, const LDKShutdown * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; int8_tArray their_node_id_arr = init_arr(33, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(their_node_id_arr + 4), their_node_id.compressed_form, 33); @@ -4292,7 +4504,7 @@ void handle_shutdown_jcall(const void* this_arg, LDKPublicKey their_node_id, con } js_invoke_function_3(j_calls->handle_shutdown_meth, their_node_id_arr, their_features_ref, msg_ref); } -void handle_closing_signed_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKClosingSigned * msg) { +void handle_closing_signed_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKClosingSigned * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; int8_tArray their_node_id_arr = init_arr(33, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(their_node_id_arr + 4), their_node_id.compressed_form, 33); @@ -4306,7 +4518,7 @@ void handle_closing_signed_jcall(const void* this_arg, LDKPublicKey their_node_i } js_invoke_function_2(j_calls->handle_closing_signed_meth, their_node_id_arr, msg_ref); } -void handle_update_add_htlc_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKUpdateAddHTLC * msg) { +void handle_update_add_htlc_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKUpdateAddHTLC * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; int8_tArray their_node_id_arr = init_arr(33, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(their_node_id_arr + 4), their_node_id.compressed_form, 33); @@ -4320,7 +4532,7 @@ void handle_update_add_htlc_jcall(const void* this_arg, LDKPublicKey their_node_ } js_invoke_function_2(j_calls->handle_update_add_htlc_meth, their_node_id_arr, msg_ref); } -void handle_update_fulfill_htlc_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKUpdateFulfillHTLC * msg) { +void handle_update_fulfill_htlc_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKUpdateFulfillHTLC * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; int8_tArray their_node_id_arr = init_arr(33, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(their_node_id_arr + 4), their_node_id.compressed_form, 33); @@ -4334,7 +4546,7 @@ void handle_update_fulfill_htlc_jcall(const void* this_arg, LDKPublicKey their_n } js_invoke_function_2(j_calls->handle_update_fulfill_htlc_meth, their_node_id_arr, msg_ref); } -void handle_update_fail_htlc_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKUpdateFailHTLC * msg) { +void handle_update_fail_htlc_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKUpdateFailHTLC * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; int8_tArray their_node_id_arr = init_arr(33, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(their_node_id_arr + 4), their_node_id.compressed_form, 33); @@ -4348,7 +4560,7 @@ void handle_update_fail_htlc_jcall(const void* this_arg, LDKPublicKey their_node } js_invoke_function_2(j_calls->handle_update_fail_htlc_meth, their_node_id_arr, msg_ref); } -void handle_update_fail_malformed_htlc_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKUpdateFailMalformedHTLC * msg) { +void handle_update_fail_malformed_htlc_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKUpdateFailMalformedHTLC * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; int8_tArray their_node_id_arr = init_arr(33, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(their_node_id_arr + 4), their_node_id.compressed_form, 33); @@ -4362,7 +4574,7 @@ void handle_update_fail_malformed_htlc_jcall(const void* this_arg, LDKPublicKey } js_invoke_function_2(j_calls->handle_update_fail_malformed_htlc_meth, their_node_id_arr, msg_ref); } -void handle_commitment_signed_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKCommitmentSigned * msg) { +void handle_commitment_signed_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKCommitmentSigned * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; int8_tArray their_node_id_arr = init_arr(33, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(their_node_id_arr + 4), their_node_id.compressed_form, 33); @@ -4376,7 +4588,7 @@ void handle_commitment_signed_jcall(const void* this_arg, LDKPublicKey their_nod } js_invoke_function_2(j_calls->handle_commitment_signed_meth, their_node_id_arr, msg_ref); } -void handle_revoke_and_ack_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKRevokeAndACK * msg) { +void handle_revoke_and_ack_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKRevokeAndACK * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; int8_tArray their_node_id_arr = init_arr(33, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(their_node_id_arr + 4), their_node_id.compressed_form, 33); @@ -4390,7 +4602,7 @@ void handle_revoke_and_ack_jcall(const void* this_arg, LDKPublicKey their_node_i } js_invoke_function_2(j_calls->handle_revoke_and_ack_meth, their_node_id_arr, msg_ref); } -void handle_update_fee_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKUpdateFee * msg) { +void handle_update_fee_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKUpdateFee * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; int8_tArray their_node_id_arr = init_arr(33, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(their_node_id_arr + 4), their_node_id.compressed_form, 33); @@ -4404,7 +4616,7 @@ void handle_update_fee_jcall(const void* this_arg, LDKPublicKey their_node_id, c } js_invoke_function_2(j_calls->handle_update_fee_meth, their_node_id_arr, msg_ref); } -void handle_announcement_signatures_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKAnnouncementSignatures * msg) { +void handle_announcement_signatures_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKAnnouncementSignatures * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; int8_tArray their_node_id_arr = init_arr(33, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(their_node_id_arr + 4), their_node_id.compressed_form, 33); @@ -4418,13 +4630,13 @@ void handle_announcement_signatures_jcall(const void* this_arg, LDKPublicKey the } js_invoke_function_2(j_calls->handle_announcement_signatures_meth, their_node_id_arr, msg_ref); } -void peer_disconnected_jcall(const void* this_arg, LDKPublicKey their_node_id, bool no_connection_possible) { +void peer_disconnected_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, bool no_connection_possible) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; int8_tArray their_node_id_arr = init_arr(33, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(their_node_id_arr + 4), their_node_id.compressed_form, 33); js_invoke_function_2(j_calls->peer_disconnected_meth, their_node_id_arr, no_connection_possible); } -void peer_connected_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKInit * msg) { +void peer_connected_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKInit * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; int8_tArray their_node_id_arr = init_arr(33, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(their_node_id_arr + 4), their_node_id.compressed_form, 33); @@ -4438,7 +4650,7 @@ void peer_connected_jcall(const void* this_arg, LDKPublicKey their_node_id, cons } js_invoke_function_2(j_calls->peer_connected_meth, their_node_id_arr, msg_ref); } -void handle_channel_reestablish_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKChannelReestablish * msg) { +void handle_channel_reestablish_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKChannelReestablish * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; int8_tArray their_node_id_arr = init_arr(33, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(their_node_id_arr + 4), their_node_id.compressed_form, 33); @@ -4452,7 +4664,21 @@ void handle_channel_reestablish_jcall(const void* this_arg, LDKPublicKey their_n } js_invoke_function_2(j_calls->handle_channel_reestablish_meth, their_node_id_arr, msg_ref); } -void handle_error_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKErrorMessage * msg) { +void handle_channel_update_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKChannelUpdate * msg) { + LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; + int8_tArray their_node_id_arr = init_arr(33, sizeof(uint8_t), "Native int8_tArray Bytes"); + memcpy((uint8_t*)(their_node_id_arr + 4), their_node_id.compressed_form, 33); + LDKChannelUpdate msg_var = *msg; + msg_var = ChannelUpdate_clone(msg); + CHECK((((long)msg_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. + CHECK((((long)&msg_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this. + long msg_ref = (long)msg_var.inner; + if (msg_var.is_owned) { + msg_ref |= 1; + } + js_invoke_function_2(j_calls->handle_channel_update_meth, their_node_id_arr, msg_ref); +} +void handle_error_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKErrorMessage * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; int8_tArray their_node_id_arr = init_arr(33, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(their_node_id_arr + 4), their_node_id.compressed_form, 33); @@ -4479,25 +4705,26 @@ static inline LDKChannelMessageHandler LDKChannelMessageHandler_init (/*TODO: JS LDKChannelMessageHandler ret = { .this_arg = (void*) calls, - .handle_open_channel = handle_open_channel_jcall, - .handle_accept_channel = handle_accept_channel_jcall, - .handle_funding_created = handle_funding_created_jcall, - .handle_funding_signed = handle_funding_signed_jcall, - .handle_funding_locked = handle_funding_locked_jcall, - .handle_shutdown = handle_shutdown_jcall, - .handle_closing_signed = handle_closing_signed_jcall, - .handle_update_add_htlc = handle_update_add_htlc_jcall, - .handle_update_fulfill_htlc = handle_update_fulfill_htlc_jcall, - .handle_update_fail_htlc = handle_update_fail_htlc_jcall, - .handle_update_fail_malformed_htlc = handle_update_fail_malformed_htlc_jcall, - .handle_commitment_signed = handle_commitment_signed_jcall, - .handle_revoke_and_ack = handle_revoke_and_ack_jcall, - .handle_update_fee = handle_update_fee_jcall, - .handle_announcement_signatures = handle_announcement_signatures_jcall, - .peer_disconnected = peer_disconnected_jcall, - .peer_connected = peer_connected_jcall, - .handle_channel_reestablish = handle_channel_reestablish_jcall, - .handle_error = handle_error_jcall, + .handle_open_channel = handle_open_channel_LDKChannelMessageHandler_jcall, + .handle_accept_channel = handle_accept_channel_LDKChannelMessageHandler_jcall, + .handle_funding_created = handle_funding_created_LDKChannelMessageHandler_jcall, + .handle_funding_signed = handle_funding_signed_LDKChannelMessageHandler_jcall, + .handle_funding_locked = handle_funding_locked_LDKChannelMessageHandler_jcall, + .handle_shutdown = handle_shutdown_LDKChannelMessageHandler_jcall, + .handle_closing_signed = handle_closing_signed_LDKChannelMessageHandler_jcall, + .handle_update_add_htlc = handle_update_add_htlc_LDKChannelMessageHandler_jcall, + .handle_update_fulfill_htlc = handle_update_fulfill_htlc_LDKChannelMessageHandler_jcall, + .handle_update_fail_htlc = handle_update_fail_htlc_LDKChannelMessageHandler_jcall, + .handle_update_fail_malformed_htlc = handle_update_fail_malformed_htlc_LDKChannelMessageHandler_jcall, + .handle_commitment_signed = handle_commitment_signed_LDKChannelMessageHandler_jcall, + .handle_revoke_and_ack = handle_revoke_and_ack_LDKChannelMessageHandler_jcall, + .handle_update_fee = handle_update_fee_LDKChannelMessageHandler_jcall, + .handle_announcement_signatures = handle_announcement_signatures_LDKChannelMessageHandler_jcall, + .peer_disconnected = peer_disconnected_LDKChannelMessageHandler_jcall, + .peer_connected = peer_connected_LDKChannelMessageHandler_jcall, + .handle_channel_reestablish = handle_channel_reestablish_LDKChannelMessageHandler_jcall, + .handle_channel_update = handle_channel_update_LDKChannelMessageHandler_jcall, + .handle_error = handle_error_LDKChannelMessageHandler_jcall, .free = LDKChannelMessageHandler_JCalls_free, .MessageSendEventsProvider = LDKMessageSendEventsProvider_init(MessageSendEventsProvider), }; @@ -4510,7 +4737,7 @@ long __attribute__((visibility("default"))) TS_LDKChannelMessageHandler_new(/*T return (long)res_ptr; } void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_open_channel(uint32_t this_arg, int8_tArray their_node_id, uint32_t their_features, uint32_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -4525,7 +4752,7 @@ void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_ope } void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_accept_channel(uint32_t this_arg, int8_tArray their_node_id, uint32_t their_features, uint32_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -4540,7 +4767,7 @@ void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_acc } void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_funding_created(uint32_t this_arg, int8_tArray their_node_id, uint32_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -4551,7 +4778,7 @@ void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_fun } void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_funding_signed(uint32_t this_arg, int8_tArray their_node_id, uint32_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -4562,7 +4789,7 @@ void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_fun } void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_funding_locked(uint32_t this_arg, int8_tArray their_node_id, uint32_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -4573,7 +4800,7 @@ void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_fun } void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_shutdown(uint32_t this_arg, int8_tArray their_node_id, uint32_t their_features, uint32_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -4587,7 +4814,7 @@ void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_shu } void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_closing_signed(uint32_t this_arg, int8_tArray their_node_id, uint32_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -4598,7 +4825,7 @@ void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_clo } void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_update_add_htlc(uint32_t this_arg, int8_tArray their_node_id, uint32_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -4609,7 +4836,7 @@ void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_upd } void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_update_fulfill_htlc(uint32_t this_arg, int8_tArray their_node_id, uint32_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -4620,7 +4847,7 @@ void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_upd } void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_update_fail_htlc(uint32_t this_arg, int8_tArray their_node_id, uint32_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -4631,7 +4858,7 @@ void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_upd } void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_update_fail_malformed_htlc(uint32_t this_arg, int8_tArray their_node_id, uint32_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -4642,7 +4869,7 @@ void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_upd } void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_commitment_signed(uint32_t this_arg, int8_tArray their_node_id, uint32_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -4653,7 +4880,7 @@ void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_com } void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_revoke_and_ack(uint32_t this_arg, int8_tArray their_node_id, uint32_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -4664,7 +4891,7 @@ void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_rev } void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_update_fee(uint32_t this_arg, int8_tArray their_node_id, uint32_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -4675,7 +4902,7 @@ void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_upd } void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_announcement_signatures(uint32_t this_arg, int8_tArray their_node_id, uint32_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -4686,7 +4913,7 @@ void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_ann } void __attribute__((visibility("default"))) TS_ChannelMessageHandler_peer_disconnected(uint32_t this_arg, int8_tArray their_node_id, jboolean no_connection_possible) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -4694,7 +4921,7 @@ void __attribute__((visibility("default"))) TS_ChannelMessageHandler_peer_disco } void __attribute__((visibility("default"))) TS_ChannelMessageHandler_peer_connected(uint32_t this_arg, int8_tArray their_node_id, uint32_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -4705,7 +4932,7 @@ void __attribute__((visibility("default"))) TS_ChannelMessageHandler_peer_conne } void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_channel_reestablish(uint32_t this_arg, int8_tArray their_node_id, uint32_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -4715,8 +4942,19 @@ void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_cha (this_arg_conv->handle_channel_reestablish)(this_arg_conv->this_arg, their_node_id_ref, &msg_conv); } +void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_channel_update(uint32_t this_arg, int8_tArray their_node_id, uint32_t msg) { + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); + LDKPublicKey their_node_id_ref; + CHECK(*((uint32_t*)their_node_id) == 33); + memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); + LDKChannelUpdate msg_conv; + msg_conv.inner = (void*)(msg & (~1)); + msg_conv.is_owned = false; + (this_arg_conv->handle_channel_update)(this_arg_conv->this_arg, their_node_id_ref, &msg_conv); +} + void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_error(uint32_t this_arg, int8_tArray their_node_id, uint32_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -4758,7 +4996,7 @@ static void LDKRoutingMessageHandler_JCalls_free(void* this_arg) { FREE(j_calls); } } -LDKCResult_boolLightningErrorZ handle_node_announcement_jcall(const void* this_arg, const LDKNodeAnnouncement * msg) { +LDKCResult_boolLightningErrorZ handle_node_announcement_LDKRoutingMessageHandler_jcall(const void* this_arg, const LDKNodeAnnouncement * msg) { LDKRoutingMessageHandler_JCalls *j_calls = (LDKRoutingMessageHandler_JCalls*) this_arg; LDKNodeAnnouncement msg_var = *msg; msg_var = NodeAnnouncement_clone(msg); @@ -4770,10 +5008,10 @@ LDKCResult_boolLightningErrorZ handle_node_announcement_jcall(const void* this_a } LDKCResult_boolLightningErrorZ* ret = (LDKCResult_boolLightningErrorZ*)js_invoke_function_1(j_calls->handle_node_announcement_meth, msg_ref); LDKCResult_boolLightningErrorZ ret_conv = *(LDKCResult_boolLightningErrorZ*)(((uint64_t)ret) & ~1); - ret_conv = CResult_boolLightningErrorZ_clone((LDKCResult_boolLightningErrorZ*)ret); + ret_conv = CResult_boolLightningErrorZ_clone((LDKCResult_boolLightningErrorZ*)(((uint64_t)ret) & ~1)); return ret_conv; } -LDKCResult_boolLightningErrorZ handle_channel_announcement_jcall(const void* this_arg, const LDKChannelAnnouncement * msg) { +LDKCResult_boolLightningErrorZ handle_channel_announcement_LDKRoutingMessageHandler_jcall(const void* this_arg, const LDKChannelAnnouncement * msg) { LDKRoutingMessageHandler_JCalls *j_calls = (LDKRoutingMessageHandler_JCalls*) this_arg; LDKChannelAnnouncement msg_var = *msg; msg_var = ChannelAnnouncement_clone(msg); @@ -4785,10 +5023,10 @@ LDKCResult_boolLightningErrorZ handle_channel_announcement_jcall(const void* thi } LDKCResult_boolLightningErrorZ* ret = (LDKCResult_boolLightningErrorZ*)js_invoke_function_1(j_calls->handle_channel_announcement_meth, msg_ref); LDKCResult_boolLightningErrorZ ret_conv = *(LDKCResult_boolLightningErrorZ*)(((uint64_t)ret) & ~1); - ret_conv = CResult_boolLightningErrorZ_clone((LDKCResult_boolLightningErrorZ*)ret); + ret_conv = CResult_boolLightningErrorZ_clone((LDKCResult_boolLightningErrorZ*)(((uint64_t)ret) & ~1)); return ret_conv; } -LDKCResult_boolLightningErrorZ handle_channel_update_jcall(const void* this_arg, const LDKChannelUpdate * msg) { +LDKCResult_boolLightningErrorZ handle_channel_update_LDKRoutingMessageHandler_jcall(const void* this_arg, const LDKChannelUpdate * msg) { LDKRoutingMessageHandler_JCalls *j_calls = (LDKRoutingMessageHandler_JCalls*) this_arg; LDKChannelUpdate msg_var = *msg; msg_var = ChannelUpdate_clone(msg); @@ -4800,15 +5038,15 @@ LDKCResult_boolLightningErrorZ handle_channel_update_jcall(const void* this_arg, } LDKCResult_boolLightningErrorZ* ret = (LDKCResult_boolLightningErrorZ*)js_invoke_function_1(j_calls->handle_channel_update_meth, msg_ref); LDKCResult_boolLightningErrorZ ret_conv = *(LDKCResult_boolLightningErrorZ*)(((uint64_t)ret) & ~1); - ret_conv = CResult_boolLightningErrorZ_clone((LDKCResult_boolLightningErrorZ*)ret); + ret_conv = CResult_boolLightningErrorZ_clone((LDKCResult_boolLightningErrorZ*)(((uint64_t)ret) & ~1)); return ret_conv; } -void handle_htlc_fail_channel_update_jcall(const void* this_arg, const LDKHTLCFailChannelUpdate * update) { +void handle_htlc_fail_channel_update_LDKRoutingMessageHandler_jcall(const void* this_arg, const LDKHTLCFailChannelUpdate * update) { LDKRoutingMessageHandler_JCalls *j_calls = (LDKRoutingMessageHandler_JCalls*) this_arg; long ret_update = (long)update; js_invoke_function_1(j_calls->handle_htlc_fail_channel_update_meth, ret_update); } -LDKCVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ get_next_channel_announcements_jcall(const void* this_arg, uint64_t starting_point, uint8_t batch_amount) { +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 = js_invoke_function_2(j_calls->get_next_channel_announcements_meth, starting_point, batch_amount); LDKCVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ ret_constr; @@ -4821,12 +5059,12 @@ LDKCVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ get_next_channel for (size_t l = 0; l < ret_constr.datalen; l++) { uint32_t ret_conv_63 = ret_vals[l]; LDKC3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ ret_conv_63_conv = *(LDKC3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ*)(((uint64_t)ret_conv_63) & ~1); - ret_conv_63_conv = C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ_clone((LDKC3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ*)ret_conv_63); + ret_conv_63_conv = C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ_clone((LDKC3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ*)(((uint64_t)ret_conv_63) & ~1)); ret_constr.data[l] = ret_conv_63_conv; } return ret_constr; } -LDKCVec_NodeAnnouncementZ get_next_node_announcements_jcall(const void* this_arg, LDKPublicKey starting_point, uint8_t batch_amount) { +LDKCVec_NodeAnnouncementZ get_next_node_announcements_LDKRoutingMessageHandler_jcall(const void* this_arg, LDKPublicKey starting_point, uint8_t batch_amount) { LDKRoutingMessageHandler_JCalls *j_calls = (LDKRoutingMessageHandler_JCalls*) this_arg; int8_tArray starting_point_arr = init_arr(33, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(starting_point_arr + 4), starting_point.compressed_form, 33); @@ -4848,7 +5086,7 @@ LDKCVec_NodeAnnouncementZ get_next_node_announcements_jcall(const void* this_arg } return ret_constr; } -void sync_routing_table_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKInit * init) { +void sync_routing_table_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_arr(33, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(their_node_id_arr + 4), their_node_id.compressed_form, 33); @@ -4862,7 +5100,7 @@ void sync_routing_table_jcall(const void* this_arg, LDKPublicKey their_node_id, } js_invoke_function_2(j_calls->sync_routing_table_meth, their_node_id_arr, init_ref); } -LDKCResult_NoneLightningErrorZ handle_reply_channel_range_jcall(const void* this_arg, LDKPublicKey their_node_id, LDKReplyChannelRange msg) { +LDKCResult_NoneLightningErrorZ handle_reply_channel_range_LDKRoutingMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, LDKReplyChannelRange msg) { LDKRoutingMessageHandler_JCalls *j_calls = (LDKRoutingMessageHandler_JCalls*) this_arg; int8_tArray their_node_id_arr = init_arr(33, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(their_node_id_arr + 4), their_node_id.compressed_form, 33); @@ -4875,10 +5113,10 @@ LDKCResult_NoneLightningErrorZ handle_reply_channel_range_jcall(const void* this } LDKCResult_NoneLightningErrorZ* ret = (LDKCResult_NoneLightningErrorZ*)js_invoke_function_2(j_calls->handle_reply_channel_range_meth, their_node_id_arr, msg_ref); LDKCResult_NoneLightningErrorZ ret_conv = *(LDKCResult_NoneLightningErrorZ*)(((uint64_t)ret) & ~1); - ret_conv = CResult_NoneLightningErrorZ_clone((LDKCResult_NoneLightningErrorZ*)ret); + ret_conv = CResult_NoneLightningErrorZ_clone((LDKCResult_NoneLightningErrorZ*)(((uint64_t)ret) & ~1)); return ret_conv; } -LDKCResult_NoneLightningErrorZ handle_reply_short_channel_ids_end_jcall(const void* this_arg, LDKPublicKey their_node_id, LDKReplyShortChannelIdsEnd msg) { +LDKCResult_NoneLightningErrorZ handle_reply_short_channel_ids_end_LDKRoutingMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, LDKReplyShortChannelIdsEnd msg) { LDKRoutingMessageHandler_JCalls *j_calls = (LDKRoutingMessageHandler_JCalls*) this_arg; int8_tArray their_node_id_arr = init_arr(33, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(their_node_id_arr + 4), their_node_id.compressed_form, 33); @@ -4891,10 +5129,10 @@ LDKCResult_NoneLightningErrorZ handle_reply_short_channel_ids_end_jcall(const vo } LDKCResult_NoneLightningErrorZ* ret = (LDKCResult_NoneLightningErrorZ*)js_invoke_function_2(j_calls->handle_reply_short_channel_ids_end_meth, their_node_id_arr, msg_ref); LDKCResult_NoneLightningErrorZ ret_conv = *(LDKCResult_NoneLightningErrorZ*)(((uint64_t)ret) & ~1); - ret_conv = CResult_NoneLightningErrorZ_clone((LDKCResult_NoneLightningErrorZ*)ret); + ret_conv = CResult_NoneLightningErrorZ_clone((LDKCResult_NoneLightningErrorZ*)(((uint64_t)ret) & ~1)); return ret_conv; } -LDKCResult_NoneLightningErrorZ handle_query_channel_range_jcall(const void* this_arg, LDKPublicKey their_node_id, LDKQueryChannelRange msg) { +LDKCResult_NoneLightningErrorZ handle_query_channel_range_LDKRoutingMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, LDKQueryChannelRange msg) { LDKRoutingMessageHandler_JCalls *j_calls = (LDKRoutingMessageHandler_JCalls*) this_arg; int8_tArray their_node_id_arr = init_arr(33, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(their_node_id_arr + 4), their_node_id.compressed_form, 33); @@ -4907,10 +5145,10 @@ LDKCResult_NoneLightningErrorZ handle_query_channel_range_jcall(const void* this } LDKCResult_NoneLightningErrorZ* ret = (LDKCResult_NoneLightningErrorZ*)js_invoke_function_2(j_calls->handle_query_channel_range_meth, their_node_id_arr, msg_ref); LDKCResult_NoneLightningErrorZ ret_conv = *(LDKCResult_NoneLightningErrorZ*)(((uint64_t)ret) & ~1); - ret_conv = CResult_NoneLightningErrorZ_clone((LDKCResult_NoneLightningErrorZ*)ret); + ret_conv = CResult_NoneLightningErrorZ_clone((LDKCResult_NoneLightningErrorZ*)(((uint64_t)ret) & ~1)); return ret_conv; } -LDKCResult_NoneLightningErrorZ handle_query_short_channel_ids_jcall(const void* this_arg, LDKPublicKey their_node_id, LDKQueryShortChannelIds msg) { +LDKCResult_NoneLightningErrorZ handle_query_short_channel_ids_LDKRoutingMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, LDKQueryShortChannelIds msg) { LDKRoutingMessageHandler_JCalls *j_calls = (LDKRoutingMessageHandler_JCalls*) this_arg; int8_tArray their_node_id_arr = init_arr(33, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(their_node_id_arr + 4), their_node_id.compressed_form, 33); @@ -4923,7 +5161,7 @@ LDKCResult_NoneLightningErrorZ handle_query_short_channel_ids_jcall(const void* } LDKCResult_NoneLightningErrorZ* ret = (LDKCResult_NoneLightningErrorZ*)js_invoke_function_2(j_calls->handle_query_short_channel_ids_meth, their_node_id_arr, msg_ref); LDKCResult_NoneLightningErrorZ ret_conv = *(LDKCResult_NoneLightningErrorZ*)(((uint64_t)ret) & ~1); - ret_conv = CResult_NoneLightningErrorZ_clone((LDKCResult_NoneLightningErrorZ*)ret); + ret_conv = CResult_NoneLightningErrorZ_clone((LDKCResult_NoneLightningErrorZ*)(((uint64_t)ret) & ~1)); return ret_conv; } static void* LDKRoutingMessageHandler_JCalls_clone(const void* this_arg) { @@ -4939,17 +5177,17 @@ static inline LDKRoutingMessageHandler LDKRoutingMessageHandler_init (/*TODO: JS LDKRoutingMessageHandler ret = { .this_arg = (void*) calls, - .handle_node_announcement = handle_node_announcement_jcall, - .handle_channel_announcement = handle_channel_announcement_jcall, - .handle_channel_update = handle_channel_update_jcall, - .handle_htlc_fail_channel_update = handle_htlc_fail_channel_update_jcall, - .get_next_channel_announcements = get_next_channel_announcements_jcall, - .get_next_node_announcements = get_next_node_announcements_jcall, - .sync_routing_table = sync_routing_table_jcall, - .handle_reply_channel_range = handle_reply_channel_range_jcall, - .handle_reply_short_channel_ids_end = handle_reply_short_channel_ids_end_jcall, - .handle_query_channel_range = handle_query_channel_range_jcall, - .handle_query_short_channel_ids = handle_query_short_channel_ids_jcall, + .handle_node_announcement = handle_node_announcement_LDKRoutingMessageHandler_jcall, + .handle_channel_announcement = handle_channel_announcement_LDKRoutingMessageHandler_jcall, + .handle_channel_update = handle_channel_update_LDKRoutingMessageHandler_jcall, + .handle_htlc_fail_channel_update = handle_htlc_fail_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, + .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, + .handle_query_short_channel_ids = handle_query_short_channel_ids_LDKRoutingMessageHandler_jcall, .free = LDKRoutingMessageHandler_JCalls_free, .MessageSendEventsProvider = LDKMessageSendEventsProvider_init(MessageSendEventsProvider), }; @@ -4962,7 +5200,7 @@ long __attribute__((visibility("default"))) TS_LDKRoutingMessageHandler_new(/*T return (long)res_ptr; } uint32_t __attribute__((visibility("default"))) TS_RoutingMessageHandler_handle_node_announcement(uint32_t this_arg, uint32_t msg) { - LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)this_arg; + LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)(((uint64_t)this_arg) & ~1); LDKNodeAnnouncement msg_conv; msg_conv.inner = (void*)(msg & (~1)); msg_conv.is_owned = false; @@ -4972,7 +5210,7 @@ uint32_t __attribute__((visibility("default"))) TS_RoutingMessageHandler_handle } uint32_t __attribute__((visibility("default"))) TS_RoutingMessageHandler_handle_channel_announcement(uint32_t this_arg, uint32_t msg) { - LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)this_arg; + LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)(((uint64_t)this_arg) & ~1); LDKChannelAnnouncement msg_conv; msg_conv.inner = (void*)(msg & (~1)); msg_conv.is_owned = false; @@ -4982,7 +5220,7 @@ uint32_t __attribute__((visibility("default"))) TS_RoutingMessageHandler_handle } uint32_t __attribute__((visibility("default"))) TS_RoutingMessageHandler_handle_channel_update(uint32_t this_arg, uint32_t msg) { - LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)this_arg; + LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)(((uint64_t)this_arg) & ~1); LDKChannelUpdate msg_conv; msg_conv.inner = (void*)(msg & (~1)); msg_conv.is_owned = false; @@ -4992,13 +5230,13 @@ uint32_t __attribute__((visibility("default"))) TS_RoutingMessageHandler_handle } void __attribute__((visibility("default"))) TS_RoutingMessageHandler_handle_htlc_fail_channel_update(uint32_t this_arg, uint32_t update) { - LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)this_arg; + LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)(((uint64_t)this_arg) & ~1); LDKHTLCFailChannelUpdate* update_conv = (LDKHTLCFailChannelUpdate*)update; (this_arg_conv->handle_htlc_fail_channel_update)(this_arg_conv->this_arg, update_conv); } uint32_tArray __attribute__((visibility("default"))) TS_RoutingMessageHandler_get_next_channel_announcements(uint32_t this_arg, int64_t starting_point, int8_t batch_amount) { - LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)this_arg; + LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)(((uint64_t)this_arg) & ~1); LDKCVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ ret_var = (this_arg_conv->get_next_channel_announcements)(this_arg_conv->this_arg, starting_point, batch_amount); uint32_tArray ret_arr = init_arr(ret_var.datalen, sizeof(uint32_t), "Native uint32_tArray Bytes"); uint32_t *ret_arr_ptr = (uint32_t*)(ret_arr + 4); @@ -5012,7 +5250,7 @@ uint32_tArray __attribute__((visibility("default"))) TS_RoutingMessageHandler_g } uint32_tArray __attribute__((visibility("default"))) TS_RoutingMessageHandler_get_next_node_announcements(uint32_t this_arg, int8_tArray starting_point, int8_t batch_amount) { - LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)this_arg; + LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey starting_point_ref; CHECK(*((uint32_t*)starting_point) == 33); memcpy(starting_point_ref.compressed_form, (uint8_t*)(starting_point + 4), 33); @@ -5034,7 +5272,7 @@ uint32_tArray __attribute__((visibility("default"))) TS_RoutingMessageHandler_g } void __attribute__((visibility("default"))) TS_RoutingMessageHandler_sync_routing_table(uint32_t this_arg, int8_tArray their_node_id, uint32_t init) { - LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)this_arg; + LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -5045,7 +5283,7 @@ void __attribute__((visibility("default"))) TS_RoutingMessageHandler_sync_routi } uint32_t __attribute__((visibility("default"))) TS_RoutingMessageHandler_handle_reply_channel_range(uint32_t this_arg, int8_tArray their_node_id, uint32_t msg) { - LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)this_arg; + LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -5059,7 +5297,7 @@ uint32_t __attribute__((visibility("default"))) TS_RoutingMessageHandler_handle } uint32_t __attribute__((visibility("default"))) TS_RoutingMessageHandler_handle_reply_short_channel_ids_end(uint32_t this_arg, int8_tArray their_node_id, uint32_t msg) { - LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)this_arg; + LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -5073,7 +5311,7 @@ uint32_t __attribute__((visibility("default"))) TS_RoutingMessageHandler_handle } uint32_t __attribute__((visibility("default"))) TS_RoutingMessageHandler_handle_query_channel_range(uint32_t this_arg, int8_tArray their_node_id, uint32_t msg) { - LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)this_arg; + LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -5087,7 +5325,7 @@ uint32_t __attribute__((visibility("default"))) TS_RoutingMessageHandler_handle } uint32_t __attribute__((visibility("default"))) TS_RoutingMessageHandler_handle_query_short_channel_ids(uint32_t this_arg, int8_tArray their_node_id, uint32_t msg) { - LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)this_arg; + LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -5117,24 +5355,24 @@ static void LDKSocketDescriptor_JCalls_free(void* this_arg) { FREE(j_calls); } } -uintptr_t send_data_jcall(void* this_arg, LDKu8slice data, bool resume_read) { +uintptr_t send_data_LDKSocketDescriptor_jcall(void* this_arg, LDKu8slice data, bool resume_read) { LDKSocketDescriptor_JCalls *j_calls = (LDKSocketDescriptor_JCalls*) this_arg; LDKu8slice data_var = data; int8_tArray data_arr = init_arr(data_var.datalen, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(data_arr + 4), data_var.data, data_var.datalen); return js_invoke_function_2(j_calls->send_data_meth, data_arr, resume_read); } -void disconnect_socket_jcall(void* this_arg) { +void disconnect_socket_LDKSocketDescriptor_jcall(void* this_arg) { LDKSocketDescriptor_JCalls *j_calls = (LDKSocketDescriptor_JCalls*) this_arg; js_invoke_function_0(j_calls->disconnect_socket_meth); } -bool eq_jcall(const void* this_arg, const LDKSocketDescriptor * other_arg) { +bool eq_LDKSocketDescriptor_jcall(const void* this_arg, const LDKSocketDescriptor * other_arg) { LDKSocketDescriptor_JCalls *j_calls = (LDKSocketDescriptor_JCalls*) this_arg; LDKSocketDescriptor *other_arg_clone = MALLOC(sizeof(LDKSocketDescriptor), "LDKSocketDescriptor"); *other_arg_clone = SocketDescriptor_clone(other_arg); return js_invoke_function_1(j_calls->eq_meth, (long)other_arg_clone); } -uint64_t hash_jcall(const void* this_arg) { +uint64_t hash_LDKSocketDescriptor_jcall(const void* this_arg) { LDKSocketDescriptor_JCalls *j_calls = (LDKSocketDescriptor_JCalls*) this_arg; return js_invoke_function_0(j_calls->hash_meth); } @@ -5150,10 +5388,10 @@ static inline LDKSocketDescriptor LDKSocketDescriptor_init (/*TODO: JS Object Re LDKSocketDescriptor ret = { .this_arg = (void*) calls, - .send_data = send_data_jcall, - .disconnect_socket = disconnect_socket_jcall, - .eq = eq_jcall, - .hash = hash_jcall, + .send_data = send_data_LDKSocketDescriptor_jcall, + .disconnect_socket = disconnect_socket_LDKSocketDescriptor_jcall, + .eq = eq_LDKSocketDescriptor_jcall, + .hash = hash_LDKSocketDescriptor_jcall, .clone = LDKSocketDescriptor_JCalls_clone, .free = LDKSocketDescriptor_JCalls_free, }; @@ -5165,7 +5403,7 @@ long __attribute__((visibility("default"))) TS_LDKSocketDescriptor_new(/*TODO: return (long)res_ptr; } int64_t __attribute__((visibility("default"))) TS_SocketDescriptor_send_data(uint32_t this_arg, int8_tArray data, jboolean resume_read) { - LDKSocketDescriptor* this_arg_conv = (LDKSocketDescriptor*)this_arg; + LDKSocketDescriptor* this_arg_conv = (LDKSocketDescriptor*)(((uint64_t)this_arg) & ~1); LDKu8slice data_ref; data_ref.datalen = *((uint32_t*)data); data_ref.data = (int8_t*)(data + 4); @@ -5174,12 +5412,12 @@ int64_t __attribute__((visibility("default"))) TS_SocketDescriptor_send_data(ui } void __attribute__((visibility("default"))) TS_SocketDescriptor_disconnect_socket(uint32_t this_arg) { - LDKSocketDescriptor* this_arg_conv = (LDKSocketDescriptor*)this_arg; + LDKSocketDescriptor* this_arg_conv = (LDKSocketDescriptor*)(((uint64_t)this_arg) & ~1); (this_arg_conv->disconnect_socket)(this_arg_conv->this_arg); } int64_t __attribute__((visibility("default"))) TS_SocketDescriptor_hash(uint32_t this_arg) { - LDKSocketDescriptor* this_arg_conv = (LDKSocketDescriptor*)this_arg; + LDKSocketDescriptor* this_arg_conv = (LDKSocketDescriptor*)(((uint64_t)this_arg) & ~1); int64_t ret_val = (this_arg_conv->hash)(this_arg_conv->this_arg); return ret_val; } @@ -5345,6 +5583,35 @@ void __attribute__((visibility("default"))) TS_CResult_TxCreationKeysErrorZ_fre CResult_TxCreationKeysErrorZ_free(_res_conv); } +uint32_t __attribute__((visibility("default"))) TS_COption_u32Z_some(int32_t o) { + LDKCOption_u32Z *ret_copy = MALLOC(sizeof(LDKCOption_u32Z), "LDKCOption_u32Z"); + *ret_copy = COption_u32Z_some(o); + long ret_ref = (long)ret_copy; + return ret_ref; +} + +uint32_t __attribute__((visibility("default"))) TS_COption_u32Z_none() { + LDKCOption_u32Z *ret_copy = MALLOC(sizeof(LDKCOption_u32Z), "LDKCOption_u32Z"); + *ret_copy = COption_u32Z_none(); + long ret_ref = (long)ret_copy; + return ret_ref; +} + +void __attribute__((visibility("default"))) TS_COption_u32Z_free(uint32_t _res) { + if ((_res & 1) != 0) return; + LDKCOption_u32Z _res_conv = *(LDKCOption_u32Z*)(((uint64_t)_res) & ~1); + FREE((void*)_res); + COption_u32Z_free(_res_conv); +} + +uint32_t __attribute__((visibility("default"))) TS_COption_u32Z_clone(uint32_t orig) { + LDKCOption_u32Z* orig_conv = (LDKCOption_u32Z*)orig; + LDKCOption_u32Z *ret_copy = MALLOC(sizeof(LDKCOption_u32Z), "LDKCOption_u32Z"); + *ret_copy = COption_u32Z_clone(orig_conv); + long ret_ref = (long)ret_copy; + return ret_ref; +} + uint32_t __attribute__((visibility("default"))) TS_CResult_HTLCOutputInCommitmentDecodeErrorZ_ok(uint32_t o) { LDKHTLCOutputInCommitment o_conv; o_conv.inner = (void*)(o & (~1)); @@ -5975,6 +6242,33 @@ void __attribute__((visibility("default"))) TS_CResult_ChannelFeaturesDecodeErr CResult_ChannelFeaturesDecodeErrorZ_free(_res_conv); } +uint32_t __attribute__((visibility("default"))) TS_CResult_InvoiceFeaturesDecodeErrorZ_ok(uint32_t o) { + LDKInvoiceFeatures o_conv; + o_conv.inner = (void*)(o & (~1)); + o_conv.is_owned = (o & 1) || (o == 0); + o_conv = InvoiceFeatures_clone(&o_conv); + LDKCResult_InvoiceFeaturesDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_InvoiceFeaturesDecodeErrorZ), "LDKCResult_InvoiceFeaturesDecodeErrorZ"); + *ret_conv = CResult_InvoiceFeaturesDecodeErrorZ_ok(o_conv); + return (long)ret_conv; +} + +uint32_t __attribute__((visibility("default"))) TS_CResult_InvoiceFeaturesDecodeErrorZ_err(uint32_t e) { + LDKDecodeError e_conv; + e_conv.inner = (void*)(e & (~1)); + e_conv.is_owned = (e & 1) || (e == 0); + e_conv = DecodeError_clone(&e_conv); + LDKCResult_InvoiceFeaturesDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_InvoiceFeaturesDecodeErrorZ), "LDKCResult_InvoiceFeaturesDecodeErrorZ"); + *ret_conv = CResult_InvoiceFeaturesDecodeErrorZ_err(e_conv); + return (long)ret_conv; +} + +void __attribute__((visibility("default"))) TS_CResult_InvoiceFeaturesDecodeErrorZ_free(uint32_t _res) { + if ((_res & 1) != 0) return; + LDKCResult_InvoiceFeaturesDecodeErrorZ _res_conv = *(LDKCResult_InvoiceFeaturesDecodeErrorZ*)(((uint64_t)_res) & ~1); + FREE((void*)_res); + CResult_InvoiceFeaturesDecodeErrorZ_free(_res_conv); +} + uint32_t __attribute__((visibility("default"))) TS_CResult_ChannelConfigDecodeErrorZ_ok(uint32_t o) { LDKChannelConfig o_conv; o_conv.inner = (void*)(o & (~1)); @@ -6009,6 +6303,35 @@ uint32_t __attribute__((visibility("default"))) TS_CResult_ChannelConfigDecodeE return (long)ret_conv; } +uint32_t __attribute__((visibility("default"))) TS_COption_u64Z_some(int64_t o) { + LDKCOption_u64Z *ret_copy = MALLOC(sizeof(LDKCOption_u64Z), "LDKCOption_u64Z"); + *ret_copy = COption_u64Z_some(o); + long ret_ref = (long)ret_copy; + return ret_ref; +} + +uint32_t __attribute__((visibility("default"))) TS_COption_u64Z_none() { + LDKCOption_u64Z *ret_copy = MALLOC(sizeof(LDKCOption_u64Z), "LDKCOption_u64Z"); + *ret_copy = COption_u64Z_none(); + long ret_ref = (long)ret_copy; + return ret_ref; +} + +void __attribute__((visibility("default"))) TS_COption_u64Z_free(uint32_t _res) { + if ((_res & 1) != 0) return; + LDKCOption_u64Z _res_conv = *(LDKCOption_u64Z*)(((uint64_t)_res) & ~1); + FREE((void*)_res); + COption_u64Z_free(_res_conv); +} + +uint32_t __attribute__((visibility("default"))) TS_COption_u64Z_clone(uint32_t orig) { + LDKCOption_u64Z* orig_conv = (LDKCOption_u64Z*)orig; + LDKCOption_u64Z *ret_copy = MALLOC(sizeof(LDKCOption_u64Z), "LDKCOption_u64Z"); + *ret_copy = COption_u64Z_clone(orig_conv); + long ret_ref = (long)ret_copy; + return ret_ref; +} + uint32_t __attribute__((visibility("default"))) TS_CResult_DirectionalChannelInfoDecodeErrorZ_ok(uint32_t o) { LDKDirectionalChannelInfo o_conv; o_conv.inner = (void*)(o & (~1)); @@ -6501,6 +6824,93 @@ void __attribute__((visibility("default"))) TS_C2Tuple_OutPointScriptZ_free(uin C2Tuple_OutPointScriptZ_free(_res_conv); } +uint32_t __attribute__((visibility("default"))) TS_C2Tuple_u32ScriptZ_clone(uint32_t orig) { + LDKC2Tuple_u32ScriptZ* orig_conv = (LDKC2Tuple_u32ScriptZ*)(orig & ~1); + LDKC2Tuple_u32ScriptZ* ret_ref = MALLOC(sizeof(LDKC2Tuple_u32ScriptZ), "LDKC2Tuple_u32ScriptZ"); + *ret_ref = C2Tuple_u32ScriptZ_clone(orig_conv); + return (long)ret_ref; +} + +uint32_t __attribute__((visibility("default"))) TS_C2Tuple_u32ScriptZ_new(int32_t a, int8_tArray b) { + LDKCVec_u8Z b_ref; + b_ref.datalen = *((uint32_t*)b); + b_ref.data = MALLOC(b_ref.datalen, "LDKCVec_u8Z Bytes"); + memcpy(b_ref.data, (uint8_t*)(b + 4), b_ref.datalen); + LDKC2Tuple_u32ScriptZ* ret_ref = MALLOC(sizeof(LDKC2Tuple_u32ScriptZ), "LDKC2Tuple_u32ScriptZ"); + *ret_ref = C2Tuple_u32ScriptZ_new(a, b_ref); + return (long)ret_ref; +} + +void __attribute__((visibility("default"))) TS_C2Tuple_u32ScriptZ_free(uint32_t _res) { + if ((_res & 1) != 0) return; + LDKC2Tuple_u32ScriptZ _res_conv = *(LDKC2Tuple_u32ScriptZ*)(((uint64_t)_res) & ~1); + FREE((void*)_res); + C2Tuple_u32ScriptZ_free(_res_conv); +} + +void __attribute__((visibility("default"))) TS_CVec_C2Tuple_u32ScriptZZ_free(uint32_tArray _res) { + LDKCVec_C2Tuple_u32ScriptZZ _res_constr; + _res_constr.datalen = *((uint32_t*)_res); + if (_res_constr.datalen > 0) + _res_constr.data = MALLOC(_res_constr.datalen * sizeof(LDKC2Tuple_u32ScriptZ), "LDKCVec_C2Tuple_u32ScriptZZ Elements"); + else + _res_constr.data = NULL; + uint32_t* _res_vals = (uint32_t*)(_res + 4); + for (size_t e = 0; e < _res_constr.datalen; e++) { + uint32_t _res_conv_30 = _res_vals[e]; + LDKC2Tuple_u32ScriptZ _res_conv_30_conv = *(LDKC2Tuple_u32ScriptZ*)(((uint64_t)_res_conv_30) & ~1); + FREE((void*)_res_conv_30); + _res_constr.data[e] = _res_conv_30_conv; + } + CVec_C2Tuple_u32ScriptZZ_free(_res_constr); +} + +uint32_t __attribute__((visibility("default"))) TS_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_new(int8_tArray a, uint32_tArray b) { + LDKThirtyTwoBytes a_ref; + CHECK(*((uint32_t*)a) == 32); + memcpy(a_ref.data, (uint8_t*)(a + 4), 32); + LDKCVec_C2Tuple_u32ScriptZZ b_constr; + b_constr.datalen = *((uint32_t*)b); + if (b_constr.datalen > 0) + b_constr.data = MALLOC(b_constr.datalen * sizeof(LDKC2Tuple_u32ScriptZ), "LDKCVec_C2Tuple_u32ScriptZZ Elements"); + else + b_constr.data = NULL; + uint32_t* b_vals = (uint32_t*)(b + 4); + for (size_t e = 0; e < b_constr.datalen; e++) { + uint32_t b_conv_30 = b_vals[e]; + LDKC2Tuple_u32ScriptZ b_conv_30_conv = *(LDKC2Tuple_u32ScriptZ*)(((uint64_t)b_conv_30) & ~1); + b_conv_30_conv = C2Tuple_u32ScriptZ_clone((LDKC2Tuple_u32ScriptZ*)(((uint64_t)b_conv_30) & ~1)); + b_constr.data[e] = b_conv_30_conv; + } + LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ* ret_ref = MALLOC(sizeof(LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ), "LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ"); + *ret_ref = C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_new(a_ref, b_constr); + return (long)ret_ref; +} + +void __attribute__((visibility("default"))) TS_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_free(uint32_t _res) { + if ((_res & 1) != 0) return; + LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ _res_conv = *(LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ*)(((uint64_t)_res) & ~1); + FREE((void*)_res); + C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_free(_res_conv); +} + +void __attribute__((visibility("default"))) TS_CVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ_free(uint32_tArray _res) { + LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ _res_constr; + _res_constr.datalen = *((uint32_t*)_res); + if (_res_constr.datalen > 0) + _res_constr.data = MALLOC(_res_constr.datalen * sizeof(LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ), "LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ Elements"); + else + _res_constr.data = NULL; + uint32_t* _res_vals = (uint32_t*)(_res + 4); + for (size_t c = 0; c < _res_constr.datalen; c++) { + uint32_t _res_conv_54 = _res_vals[c]; + LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ _res_conv_54_conv = *(LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ*)(((uint64_t)_res_conv_54) & ~1); + FREE((void*)_res_conv_54); + _res_constr.data[c] = _res_conv_54_conv; + } + CVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ_free(_res_constr); +} + void __attribute__((visibility("default"))) TS_CVec_TransactionZ_free(ptrArray _res) { LDKCVec_TransactionZ _res_constr; _res_constr.datalen = *((uint32_t*)_res); @@ -6574,7 +6984,7 @@ uint32_t __attribute__((visibility("default"))) TS_C2Tuple_TxidCVec_C2Tuple_u32 for (size_t z = 0; z < b_constr.datalen; z++) { uint32_t b_conv_25 = b_vals[z]; LDKC2Tuple_u32TxOutZ b_conv_25_conv = *(LDKC2Tuple_u32TxOutZ*)(((uint64_t)b_conv_25) & ~1); - FREE((void*)b_conv_25); + b_conv_25_conv = C2Tuple_u32TxOutZ_clone((LDKC2Tuple_u32TxOutZ*)(((uint64_t)b_conv_25) & ~1)); b_constr.data[z] = b_conv_25_conv; } LDKC2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ* ret_ref = MALLOC(sizeof(LDKC2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ), "LDKC2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ"); @@ -6697,6 +7107,29 @@ uint32_t __attribute__((visibility("default"))) TS_CResult_TxOutAccessErrorZ_cl return (long)ret_conv; } +uint32_t __attribute__((visibility("default"))) TS_COption_C2Tuple_usizeTransactionZZ_some(uint32_t o) { + LDKC2Tuple_usizeTransactionZ o_conv = *(LDKC2Tuple_usizeTransactionZ*)(((uint64_t)o) & ~1); + FREE((void*)o); + LDKCOption_C2Tuple_usizeTransactionZZ *ret_copy = MALLOC(sizeof(LDKCOption_C2Tuple_usizeTransactionZZ), "LDKCOption_C2Tuple_usizeTransactionZZ"); + *ret_copy = COption_C2Tuple_usizeTransactionZZ_some(o_conv); + long ret_ref = (long)ret_copy; + return ret_ref; +} + +uint32_t __attribute__((visibility("default"))) TS_COption_C2Tuple_usizeTransactionZZ_none() { + LDKCOption_C2Tuple_usizeTransactionZZ *ret_copy = MALLOC(sizeof(LDKCOption_C2Tuple_usizeTransactionZZ), "LDKCOption_C2Tuple_usizeTransactionZZ"); + *ret_copy = COption_C2Tuple_usizeTransactionZZ_none(); + long ret_ref = (long)ret_copy; + return ret_ref; +} + +void __attribute__((visibility("default"))) TS_COption_C2Tuple_usizeTransactionZZ_free(uint32_t _res) { + if ((_res & 1) != 0) return; + LDKCOption_C2Tuple_usizeTransactionZZ _res_conv = *(LDKCOption_C2Tuple_usizeTransactionZZ*)(((uint64_t)_res) & ~1); + FREE((void*)_res); + COption_C2Tuple_usizeTransactionZZ_free(_res_conv); +} + uint32_t __attribute__((visibility("default"))) TS_CResult_NoneAPIErrorZ_ok() { LDKCResult_NoneAPIErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_NoneAPIErrorZ), "LDKCResult_NoneAPIErrorZ"); *ret_conv = CResult_NoneAPIErrorZ_ok(); @@ -8565,11 +8998,11 @@ void __attribute__((visibility("default"))) TS_Logger_free(uint32_t this_ptr) { Logger_free(this_ptr_conv); } -void __attribute__((visibility("default"))) TS_ChannelHandshakeConfig_free(uint32_t this_ptr) { - LDKChannelHandshakeConfig this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelHandshakeConfig_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ChannelHandshakeConfig_free(uint32_t this_obj) { + LDKChannelHandshakeConfig this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelHandshakeConfig_free(this_obj_conv); } int32_t __attribute__((visibility("default"))) TS_ChannelHandshakeConfig_get_minimum_depth(uint32_t this_ptr) { @@ -8653,11 +9086,11 @@ uint32_t __attribute__((visibility("default"))) TS_ChannelHandshakeConfig_defau return ret_ref; } -void __attribute__((visibility("default"))) TS_ChannelHandshakeLimits_free(uint32_t this_ptr) { - LDKChannelHandshakeLimits this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelHandshakeLimits_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ChannelHandshakeLimits_free(uint32_t this_obj) { + LDKChannelHandshakeLimits this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelHandshakeLimits_free(this_obj_conv); } int64_t __attribute__((visibility("default"))) TS_ChannelHandshakeLimits_get_min_funding_satoshis(uint32_t this_ptr) { @@ -8846,11 +9279,11 @@ uint32_t __attribute__((visibility("default"))) TS_ChannelHandshakeLimits_defau return ret_ref; } -void __attribute__((visibility("default"))) TS_ChannelConfig_free(uint32_t this_ptr) { - LDKChannelConfig this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelConfig_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ChannelConfig_free(uint32_t this_obj) { + LDKChannelConfig this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelConfig_free(this_obj_conv); } int32_t __attribute__((visibility("default"))) TS_ChannelConfig_get_fee_proportional_millionths(uint32_t this_ptr) { @@ -8868,11 +9301,26 @@ void __attribute__((visibility("default"))) TS_ChannelConfig_set_fee_proportion ChannelConfig_set_fee_proportional_millionths(&this_ptr_conv, val); } -jboolean __attribute__((visibility("default"))) TS_ChannelConfig_get_announced_channel(uint32_t this_ptr) { +int16_t __attribute__((visibility("default"))) TS_ChannelConfig_get_cltv_expiry_delta(uint32_t this_ptr) { LDKChannelConfig this_ptr_conv; this_ptr_conv.inner = (void*)(this_ptr & (~1)); this_ptr_conv.is_owned = false; - jboolean ret_val = ChannelConfig_get_announced_channel(&this_ptr_conv); + int16_t ret_val = ChannelConfig_get_cltv_expiry_delta(&this_ptr_conv); + return ret_val; +} + +void __attribute__((visibility("default"))) TS_ChannelConfig_set_cltv_expiry_delta(uint32_t this_ptr, int16_t val) { + LDKChannelConfig this_ptr_conv; + this_ptr_conv.inner = (void*)(this_ptr & (~1)); + this_ptr_conv.is_owned = false; + ChannelConfig_set_cltv_expiry_delta(&this_ptr_conv, val); +} + +jboolean __attribute__((visibility("default"))) TS_ChannelConfig_get_announced_channel(uint32_t this_ptr) { + LDKChannelConfig this_ptr_conv; + this_ptr_conv.inner = (void*)(this_ptr & (~1)); + this_ptr_conv.is_owned = false; + jboolean ret_val = ChannelConfig_get_announced_channel(&this_ptr_conv); return ret_val; } @@ -8898,8 +9346,8 @@ void __attribute__((visibility("default"))) TS_ChannelConfig_set_commit_upfront ChannelConfig_set_commit_upfront_shutdown_pubkey(&this_ptr_conv, val); } -uint32_t __attribute__((visibility("default"))) TS_ChannelConfig_new(int32_t fee_proportional_millionths_arg, jboolean announced_channel_arg, jboolean commit_upfront_shutdown_pubkey_arg) { - LDKChannelConfig ret_var = ChannelConfig_new(fee_proportional_millionths_arg, announced_channel_arg, commit_upfront_shutdown_pubkey_arg); +uint32_t __attribute__((visibility("default"))) TS_ChannelConfig_new(int32_t fee_proportional_millionths_arg, int16_t cltv_expiry_delta_arg, jboolean announced_channel_arg, jboolean commit_upfront_shutdown_pubkey_arg) { + LDKChannelConfig ret_var = ChannelConfig_new(fee_proportional_millionths_arg, cltv_expiry_delta_arg, announced_channel_arg, commit_upfront_shutdown_pubkey_arg); CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this. long ret_ref = (long)ret_var.inner; @@ -8954,11 +9402,11 @@ uint32_t __attribute__((visibility("default"))) TS_ChannelConfig_read(int8_tArr return (long)ret_conv; } -void __attribute__((visibility("default"))) TS_UserConfig_free(uint32_t this_ptr) { - LDKUserConfig this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - UserConfig_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_UserConfig_free(uint32_t this_obj) { + LDKUserConfig this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + UserConfig_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_UserConfig_get_own_channel_config(uint32_t this_ptr) { @@ -9118,6 +9566,100 @@ void __attribute__((visibility("default"))) TS_Filter_free(uint32_t this_ptr) { Filter_free(this_ptr_conv); } +void __attribute__((visibility("default"))) TS_WatchedOutput_free(uint32_t this_obj) { + LDKWatchedOutput this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + WatchedOutput_free(this_obj_conv); +} + +int8_tArray __attribute__((visibility("default"))) TS_WatchedOutput_get_block_hash(uint32_t this_ptr) { + LDKWatchedOutput this_ptr_conv; + this_ptr_conv.inner = (void*)(this_ptr & (~1)); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_arr(32, sizeof(uint8_t), "Native int8_tArray Bytes"); + memcpy((uint8_t*)(ret_arr + 4), WatchedOutput_get_block_hash(&this_ptr_conv).data, 32); + return ret_arr; +} + +void __attribute__((visibility("default"))) TS_WatchedOutput_set_block_hash(uint32_t this_ptr, int8_tArray val) { + LDKWatchedOutput this_ptr_conv; + this_ptr_conv.inner = (void*)(this_ptr & (~1)); + this_ptr_conv.is_owned = false; + LDKThirtyTwoBytes val_ref; + CHECK(*((uint32_t*)val) == 32); + memcpy(val_ref.data, (uint8_t*)(val + 4), 32); + WatchedOutput_set_block_hash(&this_ptr_conv, val_ref); +} + +uint32_t __attribute__((visibility("default"))) TS_WatchedOutput_get_outpoint(uint32_t this_ptr) { + LDKWatchedOutput this_ptr_conv; + this_ptr_conv.inner = (void*)(this_ptr & (~1)); + this_ptr_conv.is_owned = false; + LDKOutPoint ret_var = WatchedOutput_get_outpoint(&this_ptr_conv); + CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. + CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this. + long ret_ref = (long)ret_var.inner; + if (ret_var.is_owned) { + ret_ref |= 1; + } + return ret_ref; +} + +void __attribute__((visibility("default"))) TS_WatchedOutput_set_outpoint(uint32_t this_ptr, uint32_t val) { + LDKWatchedOutput this_ptr_conv; + this_ptr_conv.inner = (void*)(this_ptr & (~1)); + this_ptr_conv.is_owned = false; + LDKOutPoint val_conv; + val_conv.inner = (void*)(val & (~1)); + val_conv.is_owned = (val & 1) || (val == 0); + val_conv = OutPoint_clone(&val_conv); + WatchedOutput_set_outpoint(&this_ptr_conv, val_conv); +} + +int8_tArray __attribute__((visibility("default"))) TS_WatchedOutput_get_script_pubkey(uint32_t this_ptr) { + LDKWatchedOutput this_ptr_conv; + this_ptr_conv.inner = (void*)(this_ptr & (~1)); + this_ptr_conv.is_owned = false; + LDKu8slice ret_var = WatchedOutput_get_script_pubkey(&this_ptr_conv); + int8_tArray ret_arr = init_arr(ret_var.datalen, sizeof(uint8_t), "Native int8_tArray Bytes"); + memcpy((uint8_t*)(ret_arr + 4), ret_var.data, ret_var.datalen); + return ret_arr; +} + +void __attribute__((visibility("default"))) TS_WatchedOutput_set_script_pubkey(uint32_t this_ptr, int8_tArray val) { + LDKWatchedOutput this_ptr_conv; + this_ptr_conv.inner = (void*)(this_ptr & (~1)); + this_ptr_conv.is_owned = false; + LDKCVec_u8Z val_ref; + val_ref.datalen = *((uint32_t*)val); + val_ref.data = MALLOC(val_ref.datalen, "LDKCVec_u8Z Bytes"); + memcpy(val_ref.data, (uint8_t*)(val + 4), val_ref.datalen); + WatchedOutput_set_script_pubkey(&this_ptr_conv, val_ref); +} + +uint32_t __attribute__((visibility("default"))) TS_WatchedOutput_new(int8_tArray block_hash_arg, uint32_t outpoint_arg, int8_tArray script_pubkey_arg) { + LDKThirtyTwoBytes block_hash_arg_ref; + CHECK(*((uint32_t*)block_hash_arg) == 32); + memcpy(block_hash_arg_ref.data, (uint8_t*)(block_hash_arg + 4), 32); + LDKOutPoint outpoint_arg_conv; + outpoint_arg_conv.inner = (void*)(outpoint_arg & (~1)); + outpoint_arg_conv.is_owned = (outpoint_arg & 1) || (outpoint_arg == 0); + outpoint_arg_conv = OutPoint_clone(&outpoint_arg_conv); + LDKCVec_u8Z script_pubkey_arg_ref; + script_pubkey_arg_ref.datalen = *((uint32_t*)script_pubkey_arg); + script_pubkey_arg_ref.data = MALLOC(script_pubkey_arg_ref.datalen, "LDKCVec_u8Z Bytes"); + memcpy(script_pubkey_arg_ref.data, (uint8_t*)(script_pubkey_arg + 4), script_pubkey_arg_ref.datalen); + LDKWatchedOutput ret_var = WatchedOutput_new(block_hash_arg_ref, outpoint_arg_conv, script_pubkey_arg_ref); + CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. + CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this. + long ret_ref = (long)ret_var.inner; + if (ret_var.is_owned) { + ret_ref |= 1; + } + return ret_ref; +} + void __attribute__((visibility("default"))) TS_BroadcasterInterface_free(uint32_t this_ptr) { if ((this_ptr & 1) != 0) return; LDKBroadcasterInterface this_ptr_conv = *(LDKBroadcasterInterface*)(((uint64_t)this_ptr) & ~1); @@ -9138,11 +9680,11 @@ void __attribute__((visibility("default"))) TS_FeeEstimator_free(uint32_t this_ FeeEstimator_free(this_ptr_conv); } -void __attribute__((visibility("default"))) TS_ChainMonitor_free(uint32_t this_ptr) { - LDKChainMonitor this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChainMonitor_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ChainMonitor_free(uint32_t this_obj) { + LDKChainMonitor this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChainMonitor_free(this_obj_conv); } void __attribute__((visibility("default"))) TS_ChainMonitor_block_connected(uint32_t this_arg, int8_tArray header, uint32_tArray txdata, int32_t height) { @@ -9163,7 +9705,7 @@ void __attribute__((visibility("default"))) TS_ChainMonitor_block_connected(uin for (size_t e = 0; e < txdata_constr.datalen; e++) { uint32_t txdata_conv_30 = txdata_vals[e]; LDKC2Tuple_usizeTransactionZ txdata_conv_30_conv = *(LDKC2Tuple_usizeTransactionZ*)(((uint64_t)txdata_conv_30) & ~1); - FREE((void*)txdata_conv_30); + // Warning: we may need a move here but no clone is available for LDKC2Tuple_usizeTransactionZ txdata_constr.data[e] = txdata_conv_30_conv; } ChainMonitor_block_connected(&this_arg_conv, header_ref, txdata_constr, height); @@ -9181,12 +9723,18 @@ void __attribute__((visibility("default"))) TS_ChainMonitor_block_disconnected( } uint32_t __attribute__((visibility("default"))) TS_ChainMonitor_new(uint32_t chain_source, uint32_t broadcaster, uint32_t logger, uint32_t feeest, uint32_t persister) { - LDKFilter* chain_source_conv = (LDKFilter*)chain_source; + LDKFilter *chain_source_conv_ptr = NULL; + if (chain_source != 0) { + LDKFilter chain_source_conv; + chain_source_conv = *(LDKFilter*)(((uint64_t)chain_source) & ~1); + chain_source_conv_ptr = MALLOC(sizeof(LDKFilter), "LDKFilter"); + *chain_source_conv_ptr = chain_source_conv; + } LDKBroadcasterInterface broadcaster_conv = *(LDKBroadcasterInterface*)(((uint64_t)broadcaster) & ~1); LDKLogger logger_conv = *(LDKLogger*)(((uint64_t)logger) & ~1); LDKFeeEstimator feeest_conv = *(LDKFeeEstimator*)(((uint64_t)feeest) & ~1); LDKPersist persister_conv = *(LDKPersist*)(((uint64_t)persister) & ~1); - LDKChainMonitor ret_var = ChainMonitor_new(chain_source_conv, broadcaster_conv, logger_conv, feeest_conv, persister_conv); + LDKChainMonitor ret_var = ChainMonitor_new(chain_source_conv_ptr, broadcaster_conv, logger_conv, feeest_conv, persister_conv); CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this. long ret_ref = (long)ret_var.inner; @@ -9214,11 +9762,11 @@ uint32_t __attribute__((visibility("default"))) TS_ChainMonitor_as_EventsProvid return (long)ret; } -void __attribute__((visibility("default"))) TS_ChannelMonitorUpdate_free(uint32_t this_ptr) { - LDKChannelMonitorUpdate this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelMonitorUpdate_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ChannelMonitorUpdate_free(uint32_t this_obj) { + LDKChannelMonitorUpdate this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelMonitorUpdate_free(this_obj_conv); } int64_t __attribute__((visibility("default"))) TS_ChannelMonitorUpdate_get_update_id(uint32_t this_ptr) { @@ -9276,11 +9824,11 @@ uint32_t __attribute__((visibility("default"))) TS_ChannelMonitorUpdateErr_clon return ret_conv; } -void __attribute__((visibility("default"))) TS_MonitorUpdateError_free(uint32_t this_ptr) { - LDKMonitorUpdateError this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - MonitorUpdateError_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_MonitorUpdateError_free(uint32_t this_obj) { + LDKMonitorUpdateError this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + MonitorUpdateError_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_MonitorUpdateError_clone(uint32_t orig) { @@ -9312,11 +9860,11 @@ uint32_t __attribute__((visibility("default"))) TS_MonitorEvent_clone(uint32_t return ret_ref; } -void __attribute__((visibility("default"))) TS_HTLCUpdate_free(uint32_t this_ptr) { - LDKHTLCUpdate this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - HTLCUpdate_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_HTLCUpdate_free(uint32_t this_obj) { + LDKHTLCUpdate this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + HTLCUpdate_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_HTLCUpdate_clone(uint32_t orig) { @@ -9353,11 +9901,11 @@ uint32_t __attribute__((visibility("default"))) TS_HTLCUpdate_read(int8_tArray return (long)ret_conv; } -void __attribute__((visibility("default"))) TS_ChannelMonitor_free(uint32_t this_ptr) { - LDKChannelMonitor this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelMonitor_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ChannelMonitor_free(uint32_t this_obj) { + LDKChannelMonitor this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelMonitor_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_ChannelMonitor_clone(uint32_t orig) { @@ -9392,9 +9940,9 @@ uint32_t __attribute__((visibility("default"))) TS_ChannelMonitor_update_monito LDKChannelMonitorUpdate updates_conv; updates_conv.inner = (void*)(updates & (~1)); updates_conv.is_owned = false; - LDKBroadcasterInterface* broadcaster_conv = (LDKBroadcasterInterface*)broadcaster; - LDKFeeEstimator* fee_estimator_conv = (LDKFeeEstimator*)fee_estimator; - LDKLogger* logger_conv = (LDKLogger*)logger; + LDKBroadcasterInterface* broadcaster_conv = (LDKBroadcasterInterface*)(((uint64_t)broadcaster) & ~1); + LDKFeeEstimator* fee_estimator_conv = (LDKFeeEstimator*)(((uint64_t)fee_estimator) & ~1); + LDKLogger* logger_conv = (LDKLogger*)(((uint64_t)logger) & ~1); LDKCResult_NoneMonitorUpdateErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_NoneMonitorUpdateErrorZ), "LDKCResult_NoneMonitorUpdateErrorZ"); *ret_conv = ChannelMonitor_update_monitor(&this_arg_conv, &updates_conv, broadcaster_conv, fee_estimator_conv, logger_conv); return (long)ret_conv; @@ -9417,6 +9965,30 @@ uint32_t __attribute__((visibility("default"))) TS_ChannelMonitor_get_funding_t return (long)ret_ref; } +uint32_tArray __attribute__((visibility("default"))) TS_ChannelMonitor_get_outputs_to_watch(uint32_t this_arg) { + LDKChannelMonitor this_arg_conv; + this_arg_conv.inner = (void*)(this_arg & (~1)); + this_arg_conv.is_owned = false; + LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ ret_var = ChannelMonitor_get_outputs_to_watch(&this_arg_conv); + uint32_tArray ret_arr = init_arr(ret_var.datalen, sizeof(uint32_t), "Native uint32_tArray Bytes"); + uint32_t *ret_arr_ptr = (uint32_t*)(ret_arr + 4); + for (size_t c = 0; c < ret_var.datalen; c++) { + LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ* ret_conv_54_ref = MALLOC(sizeof(LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ), "LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ"); + *ret_conv_54_ref = ret_var.data[c]; + ret_arr_ptr[c] = (long)ret_conv_54_ref; + } + FREE(ret_var.data); + return ret_arr; +} + +void __attribute__((visibility("default"))) TS_ChannelMonitor_load_outputs_to_watch(uint32_t this_arg, uint32_t filter) { + LDKChannelMonitor this_arg_conv; + this_arg_conv.inner = (void*)(this_arg & (~1)); + this_arg_conv.is_owned = false; + LDKFilter* filter_conv = (LDKFilter*)(((uint64_t)filter) & ~1); + ChannelMonitor_load_outputs_to_watch(&this_arg_conv, filter_conv); +} + uint32_tArray __attribute__((visibility("default"))) TS_ChannelMonitor_get_and_clear_pending_monitor_events(uint32_t this_arg) { LDKChannelMonitor this_arg_conv; this_arg_conv.inner = (void*)(this_arg & (~1)); @@ -9455,7 +10027,7 @@ ptrArray __attribute__((visibility("default"))) TS_ChannelMonitor_get_latest_ho LDKChannelMonitor this_arg_conv; this_arg_conv.inner = (void*)(this_arg & (~1)); this_arg_conv.is_owned = false; - LDKLogger* logger_conv = (LDKLogger*)logger; + LDKLogger* logger_conv = (LDKLogger*)(((uint64_t)logger) & ~1); LDKCVec_TransactionZ ret_var = ChannelMonitor_get_latest_holder_commitment_txn(&this_arg_conv, logger_conv); ptrArray ret_arr = init_arr(ret_var.datalen, sizeof(uint32_t), "Native ptrArray Bytes"); int8_tArray *ret_arr_ptr = (int8_tArray*)(ret_arr + 4); @@ -9488,7 +10060,7 @@ uint32_tArray __attribute__((visibility("default"))) TS_ChannelMonitor_block_co for (size_t e = 0; e < txdata_constr.datalen; e++) { uint32_t txdata_conv_30 = txdata_vals[e]; LDKC2Tuple_usizeTransactionZ txdata_conv_30_conv = *(LDKC2Tuple_usizeTransactionZ*)(((uint64_t)txdata_conv_30) & ~1); - FREE((void*)txdata_conv_30); + // Warning: we may need a move here but no clone is available for LDKC2Tuple_usizeTransactionZ txdata_constr.data[e] = txdata_conv_30_conv; } LDKBroadcasterInterface broadcaster_conv = *(LDKBroadcasterInterface*)(((uint64_t)broadcaster) & ~1); @@ -9531,17 +10103,17 @@ uint32_t __attribute__((visibility("default"))) TS_C2Tuple_BlockHashChannelMoni LDKu8slice ser_ref; ser_ref.datalen = *((uint32_t*)ser); ser_ref.data = (int8_t*)(ser + 4); - LDKKeysInterface* arg_conv = (LDKKeysInterface*)arg; + LDKKeysInterface* arg_conv = (LDKKeysInterface*)(((uint64_t)arg) & ~1); LDKCResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ), "LDKCResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ"); *ret_conv = C2Tuple_BlockHashChannelMonitorZ_read(ser_ref, arg_conv); return (long)ret_conv; } -void __attribute__((visibility("default"))) TS_OutPoint_free(uint32_t this_ptr) { - LDKOutPoint this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - OutPoint_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_OutPoint_free(uint32_t this_obj) { + LDKOutPoint this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + OutPoint_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_OutPoint_get_txid(uint32_t this_ptr) { @@ -9635,11 +10207,11 @@ uint32_t __attribute__((visibility("default"))) TS_OutPoint_read(int8_tArray se return (long)ret_conv; } -void __attribute__((visibility("default"))) TS_DelayedPaymentOutputDescriptor_free(uint32_t this_ptr) { - LDKDelayedPaymentOutputDescriptor this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - DelayedPaymentOutputDescriptor_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_DelayedPaymentOutputDescriptor_free(uint32_t this_obj) { + LDKDelayedPaymentOutputDescriptor this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + DelayedPaymentOutputDescriptor_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_DelayedPaymentOutputDescriptor_get_outpoint(uint32_t this_ptr) { @@ -9803,11 +10375,11 @@ uint32_t __attribute__((visibility("default"))) TS_DelayedPaymentOutputDescript return ret_ref; } -void __attribute__((visibility("default"))) TS_StaticPaymentOutputDescriptor_free(uint32_t this_ptr) { - LDKStaticPaymentOutputDescriptor this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - StaticPaymentOutputDescriptor_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_StaticPaymentOutputDescriptor_free(uint32_t this_obj) { + LDKStaticPaymentOutputDescriptor this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + StaticPaymentOutputDescriptor_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_StaticPaymentOutputDescriptor_get_outpoint(uint32_t this_ptr) { @@ -9946,7 +10518,7 @@ uint32_t __attribute__((visibility("default"))) TS_SpendableOutputDescriptor_re } uint32_t __attribute__((visibility("default"))) TS_Sign_clone(uint32_t orig) { - LDKSign* orig_conv = (LDKSign*)orig; + LDKSign* orig_conv = (LDKSign*)(((uint64_t)orig) & ~1); LDKSign* ret = MALLOC(sizeof(LDKSign), "LDKSign"); *ret = Sign_clone(orig_conv); return (long)ret; @@ -9966,11 +10538,11 @@ void __attribute__((visibility("default"))) TS_KeysInterface_free(uint32_t this KeysInterface_free(this_ptr_conv); } -void __attribute__((visibility("default"))) TS_InMemorySigner_free(uint32_t this_ptr) { - LDKInMemorySigner this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - InMemorySigner_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_InMemorySigner_free(uint32_t this_obj) { + LDKInMemorySigner this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + InMemorySigner_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_InMemorySigner_get_funding_key(uint32_t this_ptr) { @@ -10262,11 +10834,11 @@ uint32_t __attribute__((visibility("default"))) TS_InMemorySigner_read(int8_tAr return (long)ret_conv; } -void __attribute__((visibility("default"))) TS_KeysManager_free(uint32_t this_ptr) { - LDKKeysManager this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - KeysManager_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_KeysManager_free(uint32_t this_obj) { + LDKKeysManager this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + KeysManager_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_KeysManager_new(int8_tArray seed, int64_t starting_time_secs, int32_t starting_time_nanos) { @@ -10316,7 +10888,7 @@ uint32_t __attribute__((visibility("default"))) TS_KeysManager_spend_spendable_ for (size_t b = 0; b < descriptors_constr.datalen; b++) { uint32_t descriptors_conv_27 = descriptors_vals[b]; LDKSpendableOutputDescriptor descriptors_conv_27_conv = *(LDKSpendableOutputDescriptor*)(((uint64_t)descriptors_conv_27) & ~1); - FREE((void*)descriptors_conv_27); + descriptors_conv_27_conv = SpendableOutputDescriptor_clone((LDKSpendableOutputDescriptor*)(((uint64_t)descriptors_conv_27) & ~1)); descriptors_constr.data[b] = descriptors_conv_27_conv; } LDKCVec_TxOutZ outputs_constr; @@ -10329,7 +10901,7 @@ uint32_t __attribute__((visibility("default"))) TS_KeysManager_spend_spendable_ for (size_t h = 0; h < outputs_constr.datalen; h++) { uint32_t outputs_conv_7 = outputs_vals[h]; LDKTxOut outputs_conv_7_conv = *(LDKTxOut*)(((uint64_t)outputs_conv_7) & ~1); - FREE((void*)outputs_conv_7); + outputs_conv_7_conv = TxOut_clone((LDKTxOut*)(((uint64_t)outputs_conv_7) & ~1)); outputs_constr.data[h] = outputs_conv_7_conv; } LDKCVec_u8Z change_destination_script_ref; @@ -10350,18 +10922,18 @@ uint32_t __attribute__((visibility("default"))) TS_KeysManager_as_KeysInterface return (long)ret; } -void __attribute__((visibility("default"))) TS_ChannelManager_free(uint32_t this_ptr) { - LDKChannelManager this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelManager_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ChannelManager_free(uint32_t this_obj) { + LDKChannelManager this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelManager_free(this_obj_conv); } -void __attribute__((visibility("default"))) TS_ChainParameters_free(uint32_t this_ptr) { - LDKChainParameters this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChainParameters_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ChainParameters_free(uint32_t this_obj) { + LDKChainParameters this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChainParameters_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_ChainParameters_get_network(uint32_t this_ptr) { @@ -10429,11 +11001,11 @@ uint32_t __attribute__((visibility("default"))) TS_ChainParameters_new(uint32_t return ret_ref; } -void __attribute__((visibility("default"))) TS_ChannelDetails_free(uint32_t this_ptr) { - LDKChannelDetails this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelDetails_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ChannelDetails_free(uint32_t this_obj) { + LDKChannelDetails this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelDetails_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_ChannelDetails_get_channel_id(uint32_t this_ptr) { @@ -10455,6 +11027,25 @@ void __attribute__((visibility("default"))) TS_ChannelDetails_set_channel_id(ui ChannelDetails_set_channel_id(&this_ptr_conv, val_ref); } +uint32_t __attribute__((visibility("default"))) TS_ChannelDetails_get_short_channel_id(uint32_t this_ptr) { + LDKChannelDetails this_ptr_conv; + this_ptr_conv.inner = (void*)(this_ptr & (~1)); + this_ptr_conv.is_owned = false; + LDKCOption_u64Z *ret_copy = MALLOC(sizeof(LDKCOption_u64Z), "LDKCOption_u64Z"); + *ret_copy = ChannelDetails_get_short_channel_id(&this_ptr_conv); + long ret_ref = (long)ret_copy; + return ret_ref; +} + +void __attribute__((visibility("default"))) TS_ChannelDetails_set_short_channel_id(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; + LDKCOption_u64Z val_conv = *(LDKCOption_u64Z*)(((uint64_t)val) & ~1); + FREE((void*)val); + ChannelDetails_set_short_channel_id(&this_ptr_conv, val_conv); +} + int8_tArray __attribute__((visibility("default"))) TS_ChannelDetails_get_remote_network_id(uint32_t this_ptr) { LDKChannelDetails this_ptr_conv; this_ptr_conv.inner = (void*)(this_ptr & (~1)); @@ -10884,7 +11475,7 @@ void __attribute__((visibility("default"))) TS_ChannelManager_block_connected(u for (size_t e = 0; e < txdata_constr.datalen; e++) { uint32_t txdata_conv_30 = txdata_vals[e]; LDKC2Tuple_usizeTransactionZ txdata_conv_30_conv = *(LDKC2Tuple_usizeTransactionZ*)(((uint64_t)txdata_conv_30) & ~1); - FREE((void*)txdata_conv_30); + // Warning: we may need a move here but no clone is available for LDKC2Tuple_usizeTransactionZ txdata_constr.data[e] = txdata_conv_30_conv; } ChannelManager_block_connected(&this_arg_conv, header_ref, txdata_constr, height); @@ -10901,6 +11492,14 @@ void __attribute__((visibility("default"))) TS_ChannelManager_block_disconnecte ChannelManager_block_disconnected(&this_arg_conv, header_ref); } +jboolean __attribute__((visibility("default"))) TS_ChannelManager_await_persistable_update_timeout(uint32_t this_arg, int64_t max_wait) { + LDKChannelManager this_arg_conv; + this_arg_conv.inner = (void*)(this_arg & (~1)); + this_arg_conv.is_owned = false; + jboolean ret_val = ChannelManager_await_persistable_update_timeout(&this_arg_conv, max_wait); + return ret_val; +} + void __attribute__((visibility("default"))) TS_ChannelManager_await_persistable_update(uint32_t this_arg) { LDKChannelManager this_arg_conv; this_arg_conv.inner = (void*)(this_arg & (~1)); @@ -10928,11 +11527,11 @@ int8_tArray __attribute__((visibility("default"))) TS_ChannelManager_write(uint return ret_arr; } -void __attribute__((visibility("default"))) TS_ChannelManagerReadArgs_free(uint32_t this_ptr) { - LDKChannelManagerReadArgs this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelManagerReadArgs_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ChannelManagerReadArgs_free(uint32_t this_obj) { + LDKChannelManagerReadArgs this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelManagerReadArgs_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_ChannelManagerReadArgs_get_keys_manager(uint32_t this_ptr) { @@ -11087,11 +11686,11 @@ uint32_t __attribute__((visibility("default"))) TS_C2Tuple_BlockHashChannelMana return (long)ret_conv; } -void __attribute__((visibility("default"))) TS_DecodeError_free(uint32_t this_ptr) { - LDKDecodeError this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - DecodeError_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_DecodeError_free(uint32_t this_obj) { + LDKDecodeError this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + DecodeError_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_DecodeError_clone(uint32_t orig) { @@ -11108,11 +11707,11 @@ uint32_t __attribute__((visibility("default"))) TS_DecodeError_clone(uint32_t o return ret_ref; } -void __attribute__((visibility("default"))) TS_Init_free(uint32_t this_ptr) { - LDKInit this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - Init_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_Init_free(uint32_t this_obj) { + LDKInit this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + Init_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_Init_get_features(uint32_t this_ptr) { @@ -11169,11 +11768,11 @@ uint32_t __attribute__((visibility("default"))) TS_Init_clone(uint32_t orig) { return ret_ref; } -void __attribute__((visibility("default"))) TS_ErrorMessage_free(uint32_t this_ptr) { - LDKErrorMessage this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ErrorMessage_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ErrorMessage_free(uint32_t this_obj) { + LDKErrorMessage this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ErrorMessage_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_ErrorMessage_get_channel_id(uint32_t this_ptr) { @@ -11247,11 +11846,11 @@ uint32_t __attribute__((visibility("default"))) TS_ErrorMessage_clone(uint32_t return ret_ref; } -void __attribute__((visibility("default"))) TS_Ping_free(uint32_t this_ptr) { - LDKPing this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - Ping_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_Ping_free(uint32_t this_obj) { + LDKPing this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + Ping_free(this_obj_conv); } int16_t __attribute__((visibility("default"))) TS_Ping_get_ponglen(uint32_t this_ptr) { @@ -11309,11 +11908,11 @@ uint32_t __attribute__((visibility("default"))) TS_Ping_clone(uint32_t orig) { return ret_ref; } -void __attribute__((visibility("default"))) TS_Pong_free(uint32_t this_ptr) { - LDKPong this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - Pong_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_Pong_free(uint32_t this_obj) { + LDKPong this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + Pong_free(this_obj_conv); } int16_t __attribute__((visibility("default"))) TS_Pong_get_byteslen(uint32_t this_ptr) { @@ -11356,11 +11955,11 @@ uint32_t __attribute__((visibility("default"))) TS_Pong_clone(uint32_t orig) { return ret_ref; } -void __attribute__((visibility("default"))) TS_OpenChannel_free(uint32_t this_ptr) { - LDKOpenChannel this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - OpenChannel_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_OpenChannel_free(uint32_t this_obj) { + LDKOpenChannel this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + OpenChannel_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_OpenChannel_get_chain_hash(uint32_t this_ptr) { @@ -11679,11 +12278,11 @@ uint32_t __attribute__((visibility("default"))) TS_OpenChannel_clone(uint32_t o return ret_ref; } -void __attribute__((visibility("default"))) TS_AcceptChannel_free(uint32_t this_ptr) { - LDKAcceptChannel this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - AcceptChannel_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_AcceptChannel_free(uint32_t this_obj) { + LDKAcceptChannel this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + AcceptChannel_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_AcceptChannel_get_temporary_channel_id(uint32_t this_ptr) { @@ -11938,11 +12537,11 @@ uint32_t __attribute__((visibility("default"))) TS_AcceptChannel_clone(uint32_t return ret_ref; } -void __attribute__((visibility("default"))) TS_FundingCreated_free(uint32_t this_ptr) { - LDKFundingCreated this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - FundingCreated_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_FundingCreated_free(uint32_t this_obj) { + LDKFundingCreated this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + FundingCreated_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_FundingCreated_get_temporary_channel_id(uint32_t this_ptr) { @@ -12051,11 +12650,11 @@ uint32_t __attribute__((visibility("default"))) TS_FundingCreated_clone(uint32_ return ret_ref; } -void __attribute__((visibility("default"))) TS_FundingSigned_free(uint32_t this_ptr) { - LDKFundingSigned this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - FundingSigned_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_FundingSigned_free(uint32_t this_obj) { + LDKFundingSigned this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + FundingSigned_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_FundingSigned_get_channel_id(uint32_t this_ptr) { @@ -12127,11 +12726,11 @@ uint32_t __attribute__((visibility("default"))) TS_FundingSigned_clone(uint32_t return ret_ref; } -void __attribute__((visibility("default"))) TS_FundingLocked_free(uint32_t this_ptr) { - LDKFundingLocked this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - FundingLocked_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_FundingLocked_free(uint32_t this_obj) { + LDKFundingLocked this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + FundingLocked_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_FundingLocked_get_channel_id(uint32_t this_ptr) { @@ -12203,11 +12802,11 @@ uint32_t __attribute__((visibility("default"))) TS_FundingLocked_clone(uint32_t return ret_ref; } -void __attribute__((visibility("default"))) TS_Shutdown_free(uint32_t this_ptr) { - LDKShutdown this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - Shutdown_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_Shutdown_free(uint32_t this_obj) { + LDKShutdown this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + Shutdown_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_Shutdown_get_channel_id(uint32_t this_ptr) { @@ -12282,11 +12881,11 @@ uint32_t __attribute__((visibility("default"))) TS_Shutdown_clone(uint32_t orig return ret_ref; } -void __attribute__((visibility("default"))) TS_ClosingSigned_free(uint32_t this_ptr) { - LDKClosingSigned this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ClosingSigned_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ClosingSigned_free(uint32_t this_obj) { + LDKClosingSigned this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ClosingSigned_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_ClosingSigned_get_channel_id(uint32_t this_ptr) { @@ -12373,11 +12972,11 @@ uint32_t __attribute__((visibility("default"))) TS_ClosingSigned_clone(uint32_t return ret_ref; } -void __attribute__((visibility("default"))) TS_UpdateAddHTLC_free(uint32_t this_ptr) { - LDKUpdateAddHTLC this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - UpdateAddHTLC_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_UpdateAddHTLC_free(uint32_t this_obj) { + LDKUpdateAddHTLC this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + UpdateAddHTLC_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_UpdateAddHTLC_get_channel_id(uint32_t this_ptr) { @@ -12477,11 +13076,11 @@ uint32_t __attribute__((visibility("default"))) TS_UpdateAddHTLC_clone(uint32_t return ret_ref; } -void __attribute__((visibility("default"))) TS_UpdateFulfillHTLC_free(uint32_t this_ptr) { - LDKUpdateFulfillHTLC this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - UpdateFulfillHTLC_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_UpdateFulfillHTLC_free(uint32_t this_obj) { + LDKUpdateFulfillHTLC this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + UpdateFulfillHTLC_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_UpdateFulfillHTLC_get_channel_id(uint32_t this_ptr) { @@ -12568,11 +13167,11 @@ uint32_t __attribute__((visibility("default"))) TS_UpdateFulfillHTLC_clone(uint return ret_ref; } -void __attribute__((visibility("default"))) TS_UpdateFailHTLC_free(uint32_t this_ptr) { - LDKUpdateFailHTLC this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - UpdateFailHTLC_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_UpdateFailHTLC_free(uint32_t this_obj) { + LDKUpdateFailHTLC this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + UpdateFailHTLC_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_UpdateFailHTLC_get_channel_id(uint32_t this_ptr) { @@ -12623,11 +13222,11 @@ uint32_t __attribute__((visibility("default"))) TS_UpdateFailHTLC_clone(uint32_ return ret_ref; } -void __attribute__((visibility("default"))) TS_UpdateFailMalformedHTLC_free(uint32_t this_ptr) { - LDKUpdateFailMalformedHTLC this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - UpdateFailMalformedHTLC_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_UpdateFailMalformedHTLC_free(uint32_t this_obj) { + LDKUpdateFailMalformedHTLC this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + UpdateFailMalformedHTLC_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_UpdateFailMalformedHTLC_get_channel_id(uint32_t this_ptr) { @@ -12693,11 +13292,11 @@ uint32_t __attribute__((visibility("default"))) TS_UpdateFailMalformedHTLC_clon return ret_ref; } -void __attribute__((visibility("default"))) TS_CommitmentSigned_free(uint32_t this_ptr) { - LDKCommitmentSigned this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - CommitmentSigned_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_CommitmentSigned_free(uint32_t this_obj) { + LDKCommitmentSigned this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + CommitmentSigned_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_CommitmentSigned_get_channel_id(uint32_t this_ptr) { @@ -12804,11 +13403,11 @@ uint32_t __attribute__((visibility("default"))) TS_CommitmentSigned_clone(uint3 return ret_ref; } -void __attribute__((visibility("default"))) TS_RevokeAndACK_free(uint32_t this_ptr) { - LDKRevokeAndACK this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - RevokeAndACK_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_RevokeAndACK_free(uint32_t this_obj) { + LDKRevokeAndACK this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + RevokeAndACK_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_RevokeAndACK_get_channel_id(uint32_t this_ptr) { @@ -12902,11 +13501,11 @@ uint32_t __attribute__((visibility("default"))) TS_RevokeAndACK_clone(uint32_t return ret_ref; } -void __attribute__((visibility("default"))) TS_UpdateFee_free(uint32_t this_ptr) { - LDKUpdateFee this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - UpdateFee_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_UpdateFee_free(uint32_t this_obj) { + LDKUpdateFee this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + UpdateFee_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_UpdateFee_get_channel_id(uint32_t this_ptr) { @@ -12971,11 +13570,11 @@ uint32_t __attribute__((visibility("default"))) TS_UpdateFee_clone(uint32_t ori return ret_ref; } -void __attribute__((visibility("default"))) TS_DataLossProtect_free(uint32_t this_ptr) { - LDKDataLossProtect this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - DataLossProtect_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_DataLossProtect_free(uint32_t this_obj) { + LDKDataLossProtect this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + DataLossProtect_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_DataLossProtect_get_your_last_per_commitment_secret(uint32_t this_ptr) { @@ -13047,11 +13646,11 @@ uint32_t __attribute__((visibility("default"))) TS_DataLossProtect_clone(uint32 return ret_ref; } -void __attribute__((visibility("default"))) TS_ChannelReestablish_free(uint32_t this_ptr) { - LDKChannelReestablish this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelReestablish_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ChannelReestablish_free(uint32_t this_obj) { + LDKChannelReestablish this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelReestablish_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_ChannelReestablish_get_channel_id(uint32_t this_ptr) { @@ -13117,11 +13716,11 @@ uint32_t __attribute__((visibility("default"))) TS_ChannelReestablish_clone(uin return ret_ref; } -void __attribute__((visibility("default"))) TS_AnnouncementSignatures_free(uint32_t this_ptr) { - LDKAnnouncementSignatures this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - AnnouncementSignatures_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_AnnouncementSignatures_free(uint32_t this_obj) { + LDKAnnouncementSignatures this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + AnnouncementSignatures_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_AnnouncementSignatures_get_channel_id(uint32_t this_ptr) { @@ -13263,11 +13862,11 @@ uint32_t __attribute__((visibility("default"))) TS_Result_read(int8_tArray ser) return (long)ret_conv; } -void __attribute__((visibility("default"))) TS_UnsignedNodeAnnouncement_free(uint32_t this_ptr) { - LDKUnsignedNodeAnnouncement this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - UnsignedNodeAnnouncement_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_UnsignedNodeAnnouncement_free(uint32_t this_obj) { + LDKUnsignedNodeAnnouncement this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + UnsignedNodeAnnouncement_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_UnsignedNodeAnnouncement_get_features(uint32_t this_ptr) { @@ -13381,7 +13980,7 @@ void __attribute__((visibility("default"))) TS_UnsignedNodeAnnouncement_set_add for (size_t m = 0; m < val_constr.datalen; m++) { uint32_t val_conv_12 = val_vals[m]; LDKNetAddress val_conv_12_conv = *(LDKNetAddress*)(((uint64_t)val_conv_12) & ~1); - FREE((void*)val_conv_12); + val_conv_12_conv = NetAddress_clone((LDKNetAddress*)(((uint64_t)val_conv_12) & ~1)); val_constr.data[m] = val_conv_12_conv; } UnsignedNodeAnnouncement_set_addresses(&this_ptr_conv, val_constr); @@ -13401,11 +14000,11 @@ uint32_t __attribute__((visibility("default"))) TS_UnsignedNodeAnnouncement_clo return ret_ref; } -void __attribute__((visibility("default"))) TS_NodeAnnouncement_free(uint32_t this_ptr) { - LDKNodeAnnouncement this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - NodeAnnouncement_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_NodeAnnouncement_free(uint32_t this_obj) { + LDKNodeAnnouncement this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + NodeAnnouncement_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_NodeAnnouncement_get_signature(uint32_t this_ptr) { @@ -13484,11 +14083,11 @@ uint32_t __attribute__((visibility("default"))) TS_NodeAnnouncement_clone(uint3 return ret_ref; } -void __attribute__((visibility("default"))) TS_UnsignedChannelAnnouncement_free(uint32_t this_ptr) { - LDKUnsignedChannelAnnouncement this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - UnsignedChannelAnnouncement_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_UnsignedChannelAnnouncement_free(uint32_t this_obj) { + LDKUnsignedChannelAnnouncement this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + UnsignedChannelAnnouncement_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_UnsignedChannelAnnouncement_get_features(uint32_t this_ptr) { @@ -13640,11 +14239,11 @@ uint32_t __attribute__((visibility("default"))) TS_UnsignedChannelAnnouncement_ return ret_ref; } -void __attribute__((visibility("default"))) TS_ChannelAnnouncement_free(uint32_t this_ptr) { - LDKChannelAnnouncement this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelAnnouncement_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ChannelAnnouncement_free(uint32_t this_obj) { + LDKChannelAnnouncement this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelAnnouncement_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_ChannelAnnouncement_get_node_signature_1(uint32_t this_ptr) { @@ -13789,11 +14388,11 @@ uint32_t __attribute__((visibility("default"))) TS_ChannelAnnouncement_clone(ui return ret_ref; } -void __attribute__((visibility("default"))) TS_UnsignedChannelUpdate_free(uint32_t this_ptr) { - LDKUnsignedChannelUpdate this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - UnsignedChannelUpdate_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_UnsignedChannelUpdate_free(uint32_t this_obj) { + LDKUnsignedChannelUpdate this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + UnsignedChannelUpdate_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_UnsignedChannelUpdate_get_chain_hash(uint32_t this_ptr) { @@ -13934,11 +14533,11 @@ uint32_t __attribute__((visibility("default"))) TS_UnsignedChannelUpdate_clone( return ret_ref; } -void __attribute__((visibility("default"))) TS_ChannelUpdate_free(uint32_t this_ptr) { - LDKChannelUpdate this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelUpdate_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ChannelUpdate_free(uint32_t this_obj) { + LDKChannelUpdate this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelUpdate_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_ChannelUpdate_get_signature(uint32_t this_ptr) { @@ -14017,11 +14616,11 @@ uint32_t __attribute__((visibility("default"))) TS_ChannelUpdate_clone(uint32_t return ret_ref; } -void __attribute__((visibility("default"))) TS_QueryChannelRange_free(uint32_t this_ptr) { - LDKQueryChannelRange this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - QueryChannelRange_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_QueryChannelRange_free(uint32_t this_obj) { + LDKQueryChannelRange this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + QueryChannelRange_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_QueryChannelRange_get_chain_hash(uint32_t this_ptr) { @@ -14101,11 +14700,11 @@ uint32_t __attribute__((visibility("default"))) TS_QueryChannelRange_clone(uint return ret_ref; } -void __attribute__((visibility("default"))) TS_ReplyChannelRange_free(uint32_t this_ptr) { - LDKReplyChannelRange this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ReplyChannelRange_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ReplyChannelRange_free(uint32_t this_obj) { + LDKReplyChannelRange this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ReplyChannelRange_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_ReplyChannelRange_get_chain_hash(uint32_t this_ptr) { @@ -14229,11 +14828,11 @@ uint32_t __attribute__((visibility("default"))) TS_ReplyChannelRange_clone(uint return ret_ref; } -void __attribute__((visibility("default"))) TS_QueryShortChannelIds_free(uint32_t this_ptr) { - LDKQueryShortChannelIds this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - QueryShortChannelIds_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_QueryShortChannelIds_free(uint32_t this_obj) { + LDKQueryShortChannelIds this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + QueryShortChannelIds_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_QueryShortChannelIds_get_chain_hash(uint32_t this_ptr) { @@ -14312,11 +14911,11 @@ uint32_t __attribute__((visibility("default"))) TS_QueryShortChannelIds_clone(u return ret_ref; } -void __attribute__((visibility("default"))) TS_ReplyShortChannelIdsEnd_free(uint32_t this_ptr) { - LDKReplyShortChannelIdsEnd this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ReplyShortChannelIdsEnd_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ReplyShortChannelIdsEnd_free(uint32_t this_obj) { + LDKReplyShortChannelIdsEnd this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ReplyShortChannelIdsEnd_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_ReplyShortChannelIdsEnd_get_chain_hash(uint32_t this_ptr) { @@ -14381,11 +14980,11 @@ uint32_t __attribute__((visibility("default"))) TS_ReplyShortChannelIdsEnd_clon return ret_ref; } -void __attribute__((visibility("default"))) TS_GossipTimestampFilter_free(uint32_t this_ptr) { - LDKGossipTimestampFilter this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - GossipTimestampFilter_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_GossipTimestampFilter_free(uint32_t this_obj) { + LDKGossipTimestampFilter this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + GossipTimestampFilter_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_GossipTimestampFilter_get_chain_hash(uint32_t this_ptr) { @@ -14480,11 +15079,11 @@ uint32_t __attribute__((visibility("default"))) TS_ErrorAction_clone(uint32_t o return ret_ref; } -void __attribute__((visibility("default"))) TS_LightningError_free(uint32_t this_ptr) { - LDKLightningError this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - LightningError_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_LightningError_free(uint32_t this_obj) { + LDKLightningError this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + LightningError_free(this_obj_conv); } jstring __attribute__((visibility("default"))) TS_LightningError_get_err(uint32_t this_ptr) { @@ -14557,11 +15156,11 @@ uint32_t __attribute__((visibility("default"))) TS_LightningError_clone(uint32_ return ret_ref; } -void __attribute__((visibility("default"))) TS_CommitmentUpdate_free(uint32_t this_ptr) { - LDKCommitmentUpdate this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - CommitmentUpdate_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_CommitmentUpdate_free(uint32_t this_obj) { + LDKCommitmentUpdate this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + CommitmentUpdate_free(this_obj_conv); } void __attribute__((visibility("default"))) TS_CommitmentUpdate_set_update_add_htlcs(uint32_t this_ptr, uint32_tArray val) { @@ -15384,6 +15983,14 @@ int8_tArray __attribute__((visibility("default"))) TS_ReplyShortChannelIdsEnd_w return ret_arr; } +int32_t __attribute__((visibility("default"))) TS_QueryChannelRange_end_blocknum(uint32_t this_arg) { + LDKQueryChannelRange this_arg_conv; + this_arg_conv.inner = (void*)(this_arg & (~1)); + this_arg_conv.is_owned = false; + int32_t ret_val = QueryChannelRange_end_blocknum(&this_arg_conv); + return ret_val; +} + uint32_t __attribute__((visibility("default"))) TS_QueryChannelRange_read(int8_tArray ser) { LDKu8slice ser_ref; ser_ref.datalen = *((uint32_t*)ser); @@ -15444,11 +16051,11 @@ int8_tArray __attribute__((visibility("default"))) TS_GossipTimestampFilter_wri return ret_arr; } -void __attribute__((visibility("default"))) TS_IgnoringMessageHandler_free(uint32_t this_ptr) { - LDKIgnoringMessageHandler this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - IgnoringMessageHandler_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_IgnoringMessageHandler_free(uint32_t this_obj) { + LDKIgnoringMessageHandler this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + IgnoringMessageHandler_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_IgnoringMessageHandler_new() { @@ -15480,11 +16087,11 @@ uint32_t __attribute__((visibility("default"))) TS_IgnoringMessageHandler_as_Ro return (long)ret; } -void __attribute__((visibility("default"))) TS_ErroringMessageHandler_free(uint32_t this_ptr) { - LDKErroringMessageHandler this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ErroringMessageHandler_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ErroringMessageHandler_free(uint32_t this_obj) { + LDKErroringMessageHandler this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ErroringMessageHandler_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_ErroringMessageHandler_new() { @@ -15516,11 +16123,11 @@ uint32_t __attribute__((visibility("default"))) TS_ErroringMessageHandler_as_Ch return (long)ret; } -void __attribute__((visibility("default"))) TS_MessageHandler_free(uint32_t this_ptr) { - LDKMessageHandler this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - MessageHandler_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_MessageHandler_free(uint32_t this_obj) { + LDKMessageHandler this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + MessageHandler_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_MessageHandler_get_chan_handler(uint32_t this_ptr) { @@ -15569,7 +16176,7 @@ uint32_t __attribute__((visibility("default"))) TS_MessageHandler_new(uint32_t } uint32_t __attribute__((visibility("default"))) TS_SocketDescriptor_clone(uint32_t orig) { - LDKSocketDescriptor* orig_conv = (LDKSocketDescriptor*)orig; + LDKSocketDescriptor* orig_conv = (LDKSocketDescriptor*)(((uint64_t)orig) & ~1); LDKSocketDescriptor* ret = MALLOC(sizeof(LDKSocketDescriptor), "LDKSocketDescriptor"); *ret = SocketDescriptor_clone(orig_conv); return (long)ret; @@ -15582,11 +16189,11 @@ void __attribute__((visibility("default"))) TS_SocketDescriptor_free(uint32_t t SocketDescriptor_free(this_ptr_conv); } -void __attribute__((visibility("default"))) TS_PeerHandleError_free(uint32_t this_ptr) { - LDKPeerHandleError this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - PeerHandleError_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_PeerHandleError_free(uint32_t this_obj) { + LDKPeerHandleError this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + PeerHandleError_free(this_obj_conv); } jboolean __attribute__((visibility("default"))) TS_PeerHandleError_get_no_connection_possible(uint32_t this_ptr) { @@ -15629,11 +16236,11 @@ uint32_t __attribute__((visibility("default"))) TS_PeerHandleError_clone(uint32 return ret_ref; } -void __attribute__((visibility("default"))) TS_PeerManager_free(uint32_t this_ptr) { - LDKPeerManager this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - PeerManager_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_PeerManager_free(uint32_t this_obj) { + LDKPeerManager this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + PeerManager_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_PeerManager_new(uint32_t message_handler, int8_tArray our_node_secret, int8_tArray ephemeral_random_data, uint32_t logger) { @@ -15702,7 +16309,7 @@ uint32_t __attribute__((visibility("default"))) TS_PeerManager_write_buffer_spa LDKPeerManager this_arg_conv; this_arg_conv.inner = (void*)(this_arg & (~1)); this_arg_conv.is_owned = false; - LDKSocketDescriptor* descriptor_conv = (LDKSocketDescriptor*)descriptor; + LDKSocketDescriptor* descriptor_conv = (LDKSocketDescriptor*)(((uint64_t)descriptor) & ~1); LDKCResult_NonePeerHandleErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_NonePeerHandleErrorZ), "LDKCResult_NonePeerHandleErrorZ"); *ret_conv = PeerManager_write_buffer_space_avail(&this_arg_conv, descriptor_conv); return (long)ret_conv; @@ -15712,7 +16319,7 @@ uint32_t __attribute__((visibility("default"))) TS_PeerManager_read_event(uint3 LDKPeerManager this_arg_conv; this_arg_conv.inner = (void*)(this_arg & (~1)); this_arg_conv.is_owned = false; - LDKSocketDescriptor* peer_descriptor_conv = (LDKSocketDescriptor*)peer_descriptor; + LDKSocketDescriptor* peer_descriptor_conv = (LDKSocketDescriptor*)(((uint64_t)peer_descriptor) & ~1); LDKu8slice data_ref; data_ref.datalen = *((uint32_t*)data); data_ref.data = (int8_t*)(data + 4); @@ -15732,7 +16339,7 @@ void __attribute__((visibility("default"))) TS_PeerManager_socket_disconnected( LDKPeerManager this_arg_conv; this_arg_conv.inner = (void*)(this_arg & (~1)); this_arg_conv.is_owned = false; - LDKSocketDescriptor* descriptor_conv = (LDKSocketDescriptor*)descriptor; + LDKSocketDescriptor* descriptor_conv = (LDKSocketDescriptor*)(((uint64_t)descriptor) & ~1); PeerManager_socket_disconnected(&this_arg_conv, descriptor_conv); } @@ -15746,11 +16353,11 @@ void __attribute__((visibility("default"))) TS_PeerManager_disconnect_by_node_i PeerManager_disconnect_by_node_id(&this_arg_conv, node_id_ref, no_connection_possible); } -void __attribute__((visibility("default"))) TS_PeerManager_timer_tick_occured(uint32_t this_arg) { +void __attribute__((visibility("default"))) TS_PeerManager_timer_tick_occurred(uint32_t this_arg) { LDKPeerManager this_arg_conv; this_arg_conv.inner = (void*)(this_arg & (~1)); this_arg_conv.is_owned = false; - PeerManager_timer_tick_occured(&this_arg_conv); + PeerManager_timer_tick_occurred(&this_arg_conv); } int8_tArray __attribute__((visibility("default"))) TS_build_commitment_secret(int8_tArray commitment_seed, int64_t idx) { @@ -15814,11 +16421,11 @@ uint32_t __attribute__((visibility("default"))) TS_derive_public_revocation_key return (long)ret_conv; } -void __attribute__((visibility("default"))) TS_TxCreationKeys_free(uint32_t this_ptr) { - LDKTxCreationKeys this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - TxCreationKeys_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_TxCreationKeys_free(uint32_t this_obj) { + LDKTxCreationKeys this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + TxCreationKeys_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_TxCreationKeys_get_per_commitment_point(uint32_t this_ptr) { @@ -15976,11 +16583,11 @@ uint32_t __attribute__((visibility("default"))) TS_TxCreationKeys_read(int8_tAr return (long)ret_conv; } -void __attribute__((visibility("default"))) TS_ChannelPublicKeys_free(uint32_t this_ptr) { - LDKChannelPublicKeys this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelPublicKeys_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ChannelPublicKeys_free(uint32_t this_obj) { + LDKChannelPublicKeys this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelPublicKeys_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_ChannelPublicKeys_get_funding_pubkey(uint32_t this_ptr) { @@ -16188,11 +16795,11 @@ int8_tArray __attribute__((visibility("default"))) TS_get_revokeable_redeemscri return ret_arr; } -void __attribute__((visibility("default"))) TS_HTLCOutputInCommitment_free(uint32_t this_ptr) { - LDKHTLCOutputInCommitment this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - HTLCOutputInCommitment_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_HTLCOutputInCommitment_free(uint32_t this_obj) { + LDKHTLCOutputInCommitment this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + HTLCOutputInCommitment_free(this_obj_conv); } jboolean __attribute__((visibility("default"))) TS_HTLCOutputInCommitment_get_offered(uint32_t this_ptr) { @@ -16259,6 +16866,41 @@ void __attribute__((visibility("default"))) TS_HTLCOutputInCommitment_set_payme HTLCOutputInCommitment_set_payment_hash(&this_ptr_conv, val_ref); } +uint32_t __attribute__((visibility("default"))) TS_HTLCOutputInCommitment_get_transaction_output_index(uint32_t this_ptr) { + LDKHTLCOutputInCommitment this_ptr_conv; + this_ptr_conv.inner = (void*)(this_ptr & (~1)); + this_ptr_conv.is_owned = false; + LDKCOption_u32Z *ret_copy = MALLOC(sizeof(LDKCOption_u32Z), "LDKCOption_u32Z"); + *ret_copy = HTLCOutputInCommitment_get_transaction_output_index(&this_ptr_conv); + long ret_ref = (long)ret_copy; + return ret_ref; +} + +void __attribute__((visibility("default"))) TS_HTLCOutputInCommitment_set_transaction_output_index(uint32_t this_ptr, uint32_t val) { + LDKHTLCOutputInCommitment this_ptr_conv; + this_ptr_conv.inner = (void*)(this_ptr & (~1)); + this_ptr_conv.is_owned = false; + LDKCOption_u32Z val_conv = *(LDKCOption_u32Z*)(((uint64_t)val) & ~1); + FREE((void*)val); + HTLCOutputInCommitment_set_transaction_output_index(&this_ptr_conv, val_conv); +} + +uint32_t __attribute__((visibility("default"))) TS_HTLCOutputInCommitment_new(jboolean offered_arg, int64_t amount_msat_arg, int32_t cltv_expiry_arg, int8_tArray payment_hash_arg, uint32_t transaction_output_index_arg) { + LDKThirtyTwoBytes payment_hash_arg_ref; + CHECK(*((uint32_t*)payment_hash_arg) == 32); + memcpy(payment_hash_arg_ref.data, (uint8_t*)(payment_hash_arg + 4), 32); + LDKCOption_u32Z transaction_output_index_arg_conv = *(LDKCOption_u32Z*)(((uint64_t)transaction_output_index_arg) & ~1); + FREE((void*)transaction_output_index_arg); + LDKHTLCOutputInCommitment ret_var = HTLCOutputInCommitment_new(offered_arg, amount_msat_arg, cltv_expiry_arg, payment_hash_arg_ref, transaction_output_index_arg_conv); + CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. + CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this. + long ret_ref = (long)ret_var.inner; + if (ret_var.is_owned) { + ret_ref |= 1; + } + return ret_ref; +} + uint32_t __attribute__((visibility("default"))) TS_HTLCOutputInCommitment_clone(uint32_t orig) { LDKHTLCOutputInCommitment orig_conv; orig_conv.inner = (void*)(orig & (~1)); @@ -16342,11 +16984,11 @@ int8_tArray __attribute__((visibility("default"))) TS_build_htlc_transaction(in return ret_arr; } -void __attribute__((visibility("default"))) TS_ChannelTransactionParameters_free(uint32_t this_ptr) { - LDKChannelTransactionParameters this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelTransactionParameters_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ChannelTransactionParameters_free(uint32_t this_obj) { + LDKChannelTransactionParameters this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelTransactionParameters_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_ChannelTransactionParameters_get_holder_pubkeys(uint32_t this_ptr) { @@ -16491,11 +17133,11 @@ uint32_t __attribute__((visibility("default"))) TS_ChannelTransactionParameters return ret_ref; } -void __attribute__((visibility("default"))) TS_CounterpartyChannelTransactionParameters_free(uint32_t this_ptr) { - LDKCounterpartyChannelTransactionParameters this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - CounterpartyChannelTransactionParameters_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_CounterpartyChannelTransactionParameters_free(uint32_t this_obj) { + LDKCounterpartyChannelTransactionParameters this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + CounterpartyChannelTransactionParameters_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_CounterpartyChannelTransactionParameters_get_pubkeys(uint32_t this_ptr) { @@ -16643,11 +17285,11 @@ uint32_t __attribute__((visibility("default"))) TS_ChannelTransactionParameters return (long)ret_conv; } -void __attribute__((visibility("default"))) TS_DirectedChannelTransactionParameters_free(uint32_t this_ptr) { - LDKDirectedChannelTransactionParameters this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - DirectedChannelTransactionParameters_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_DirectedChannelTransactionParameters_free(uint32_t this_obj) { + LDKDirectedChannelTransactionParameters this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + DirectedChannelTransactionParameters_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_DirectedChannelTransactionParameters_broadcaster_pubkeys(uint32_t this_arg) { @@ -16708,11 +17350,11 @@ uint32_t __attribute__((visibility("default"))) TS_DirectedChannelTransactionPa return ret_ref; } -void __attribute__((visibility("default"))) TS_HolderCommitmentTransaction_free(uint32_t this_ptr) { - LDKHolderCommitmentTransaction this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - HolderCommitmentTransaction_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_HolderCommitmentTransaction_free(uint32_t this_obj) { + LDKHolderCommitmentTransaction this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + HolderCommitmentTransaction_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_HolderCommitmentTransaction_get_counterparty_sig(uint32_t this_ptr) { @@ -16827,11 +17469,11 @@ uint32_t __attribute__((visibility("default"))) TS_HolderCommitmentTransaction_ return ret_ref; } -void __attribute__((visibility("default"))) TS_BuiltCommitmentTransaction_free(uint32_t this_ptr) { - LDKBuiltCommitmentTransaction this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - BuiltCommitmentTransaction_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_BuiltCommitmentTransaction_free(uint32_t this_obj) { + LDKBuiltCommitmentTransaction this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + BuiltCommitmentTransaction_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_BuiltCommitmentTransaction_get_transaction(uint32_t this_ptr) { @@ -16957,11 +17599,11 @@ int8_tArray __attribute__((visibility("default"))) TS_BuiltCommitmentTransactio return ret_arr; } -void __attribute__((visibility("default"))) TS_CommitmentTransaction_free(uint32_t this_ptr) { - LDKCommitmentTransaction this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - CommitmentTransaction_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_CommitmentTransaction_free(uint32_t this_obj) { + LDKCommitmentTransaction this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + CommitmentTransaction_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_CommitmentTransaction_clone(uint32_t orig) { @@ -17062,11 +17704,11 @@ uint32_t __attribute__((visibility("default"))) TS_CommitmentTransaction_verify return (long)ret_conv; } -void __attribute__((visibility("default"))) TS_TrustedCommitmentTransaction_free(uint32_t this_ptr) { - LDKTrustedCommitmentTransaction this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - TrustedCommitmentTransaction_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_TrustedCommitmentTransaction_free(uint32_t this_obj) { + LDKTrustedCommitmentTransaction this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + TrustedCommitmentTransaction_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_TrustedCommitmentTransaction_txid(uint32_t this_arg) { @@ -17175,25 +17817,46 @@ uint32_t __attribute__((visibility("default"))) TS_ChannelFeatures_clone(uint32 return ret_ref; } -void __attribute__((visibility("default"))) TS_InitFeatures_free(uint32_t this_ptr) { - LDKInitFeatures this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - InitFeatures_free(this_ptr_conv); +uint32_t __attribute__((visibility("default"))) TS_InvoiceFeatures_clone(uint32_t orig) { + LDKInvoiceFeatures orig_conv; + orig_conv.inner = (void*)(orig & (~1)); + orig_conv.is_owned = false; + LDKInvoiceFeatures ret_var = InvoiceFeatures_clone(&orig_conv); + CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. + CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this. + long ret_ref = (long)ret_var.inner; + if (ret_var.is_owned) { + ret_ref |= 1; + } + return ret_ref; } -void __attribute__((visibility("default"))) TS_NodeFeatures_free(uint32_t this_ptr) { - LDKNodeFeatures this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - NodeFeatures_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_InitFeatures_free(uint32_t this_obj) { + LDKInitFeatures this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + InitFeatures_free(this_obj_conv); } -void __attribute__((visibility("default"))) TS_ChannelFeatures_free(uint32_t this_ptr) { - LDKChannelFeatures this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelFeatures_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_NodeFeatures_free(uint32_t this_obj) { + LDKNodeFeatures this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + NodeFeatures_free(this_obj_conv); +} + +void __attribute__((visibility("default"))) TS_ChannelFeatures_free(uint32_t this_obj) { + LDKChannelFeatures this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelFeatures_free(this_obj_conv); +} + +void __attribute__((visibility("default"))) TS_InvoiceFeatures_free(uint32_t this_obj) { + LDKInvoiceFeatures this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + InvoiceFeatures_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_InitFeatures_empty() { @@ -17262,6 +17925,28 @@ uint32_t __attribute__((visibility("default"))) TS_ChannelFeatures_known() { return ret_ref; } +uint32_t __attribute__((visibility("default"))) TS_InvoiceFeatures_empty() { + LDKInvoiceFeatures ret_var = InvoiceFeatures_empty(); + CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. + CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this. + long ret_ref = (long)ret_var.inner; + if (ret_var.is_owned) { + ret_ref |= 1; + } + return ret_ref; +} + +uint32_t __attribute__((visibility("default"))) TS_InvoiceFeatures_known() { + LDKInvoiceFeatures ret_var = InvoiceFeatures_known(); + CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. + CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this. + long ret_ref = (long)ret_var.inner; + if (ret_var.is_owned) { + ret_ref |= 1; + } + return ret_ref; +} + int8_tArray __attribute__((visibility("default"))) TS_InitFeatures_write(uint32_t obj) { LDKInitFeatures obj_conv; obj_conv.inner = (void*)(obj & (~1)); @@ -17295,6 +17980,17 @@ int8_tArray __attribute__((visibility("default"))) TS_ChannelFeatures_write(uin return ret_arr; } +int8_tArray __attribute__((visibility("default"))) TS_InvoiceFeatures_write(uint32_t obj) { + LDKInvoiceFeatures obj_conv; + obj_conv.inner = (void*)(obj & (~1)); + obj_conv.is_owned = false; + LDKCVec_u8Z ret_var = InvoiceFeatures_write(&obj_conv); + int8_tArray ret_arr = init_arr(ret_var.datalen, sizeof(uint8_t), "Native int8_tArray Bytes"); + memcpy((uint8_t*)(ret_arr + 4), ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); + return ret_arr; +} + uint32_t __attribute__((visibility("default"))) TS_InitFeatures_read(int8_tArray ser) { LDKu8slice ser_ref; ser_ref.datalen = *((uint32_t*)ser); @@ -17322,11 +18018,20 @@ uint32_t __attribute__((visibility("default"))) TS_ChannelFeatures_read(int8_tA return (long)ret_conv; } -void __attribute__((visibility("default"))) TS_RouteHop_free(uint32_t this_ptr) { - LDKRouteHop this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - RouteHop_free(this_ptr_conv); +uint32_t __attribute__((visibility("default"))) TS_InvoiceFeatures_read(int8_tArray ser) { + LDKu8slice ser_ref; + ser_ref.datalen = *((uint32_t*)ser); + ser_ref.data = (int8_t*)(ser + 4); + LDKCResult_InvoiceFeaturesDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_InvoiceFeaturesDecodeErrorZ), "LDKCResult_InvoiceFeaturesDecodeErrorZ"); + *ret_conv = InvoiceFeatures_read(ser_ref); + return (long)ret_conv; +} + +void __attribute__((visibility("default"))) TS_RouteHop_free(uint32_t this_obj) { + LDKRouteHop this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + RouteHop_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_RouteHop_get_pubkey(uint32_t this_ptr) { @@ -17479,11 +18184,11 @@ uint32_t __attribute__((visibility("default"))) TS_RouteHop_clone(uint32_t orig return ret_ref; } -void __attribute__((visibility("default"))) TS_Route_free(uint32_t this_ptr) { - LDKRoute this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - Route_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_Route_free(uint32_t this_obj) { + LDKRoute this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + Route_free(this_obj_conv); } void __attribute__((visibility("default"))) TS_Route_set_paths(uint32_t this_ptr, ptrArray val) { @@ -17590,11 +18295,11 @@ uint32_t __attribute__((visibility("default"))) TS_Route_read(int8_tArray ser) return (long)ret_conv; } -void __attribute__((visibility("default"))) TS_RouteHint_free(uint32_t this_ptr) { - LDKRouteHint this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - RouteHint_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_RouteHint_free(uint32_t this_obj) { + LDKRouteHint this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + RouteHint_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_RouteHint_get_src_node_id(uint32_t this_ptr) { @@ -17671,6 +18376,66 @@ void __attribute__((visibility("default"))) TS_RouteHint_set_cltv_expiry_delta( RouteHint_set_cltv_expiry_delta(&this_ptr_conv, val); } +uint32_t __attribute__((visibility("default"))) TS_RouteHint_get_htlc_minimum_msat(uint32_t this_ptr) { + LDKRouteHint this_ptr_conv; + this_ptr_conv.inner = (void*)(this_ptr & (~1)); + this_ptr_conv.is_owned = false; + LDKCOption_u64Z *ret_copy = MALLOC(sizeof(LDKCOption_u64Z), "LDKCOption_u64Z"); + *ret_copy = RouteHint_get_htlc_minimum_msat(&this_ptr_conv); + long ret_ref = (long)ret_copy; + return ret_ref; +} + +void __attribute__((visibility("default"))) TS_RouteHint_set_htlc_minimum_msat(uint32_t this_ptr, uint32_t val) { + LDKRouteHint this_ptr_conv; + this_ptr_conv.inner = (void*)(this_ptr & (~1)); + this_ptr_conv.is_owned = false; + LDKCOption_u64Z val_conv = *(LDKCOption_u64Z*)(((uint64_t)val) & ~1); + FREE((void*)val); + RouteHint_set_htlc_minimum_msat(&this_ptr_conv, val_conv); +} + +uint32_t __attribute__((visibility("default"))) TS_RouteHint_get_htlc_maximum_msat(uint32_t this_ptr) { + LDKRouteHint this_ptr_conv; + this_ptr_conv.inner = (void*)(this_ptr & (~1)); + this_ptr_conv.is_owned = false; + LDKCOption_u64Z *ret_copy = MALLOC(sizeof(LDKCOption_u64Z), "LDKCOption_u64Z"); + *ret_copy = RouteHint_get_htlc_maximum_msat(&this_ptr_conv); + long ret_ref = (long)ret_copy; + return ret_ref; +} + +void __attribute__((visibility("default"))) TS_RouteHint_set_htlc_maximum_msat(uint32_t this_ptr, uint32_t val) { + LDKRouteHint this_ptr_conv; + this_ptr_conv.inner = (void*)(this_ptr & (~1)); + this_ptr_conv.is_owned = false; + LDKCOption_u64Z val_conv = *(LDKCOption_u64Z*)(((uint64_t)val) & ~1); + FREE((void*)val); + RouteHint_set_htlc_maximum_msat(&this_ptr_conv, val_conv); +} + +uint32_t __attribute__((visibility("default"))) TS_RouteHint_new(int8_tArray src_node_id_arg, int64_t short_channel_id_arg, uint32_t fees_arg, int16_t cltv_expiry_delta_arg, uint32_t htlc_minimum_msat_arg, uint32_t htlc_maximum_msat_arg) { + LDKPublicKey src_node_id_arg_ref; + CHECK(*((uint32_t*)src_node_id_arg) == 33); + memcpy(src_node_id_arg_ref.compressed_form, (uint8_t*)(src_node_id_arg + 4), 33); + LDKRoutingFees fees_arg_conv; + fees_arg_conv.inner = (void*)(fees_arg & (~1)); + fees_arg_conv.is_owned = (fees_arg & 1) || (fees_arg == 0); + fees_arg_conv = RoutingFees_clone(&fees_arg_conv); + LDKCOption_u64Z htlc_minimum_msat_arg_conv = *(LDKCOption_u64Z*)(((uint64_t)htlc_minimum_msat_arg) & ~1); + FREE((void*)htlc_minimum_msat_arg); + LDKCOption_u64Z htlc_maximum_msat_arg_conv = *(LDKCOption_u64Z*)(((uint64_t)htlc_maximum_msat_arg) & ~1); + FREE((void*)htlc_maximum_msat_arg); + LDKRouteHint ret_var = RouteHint_new(src_node_id_arg_ref, short_channel_id_arg, fees_arg_conv, cltv_expiry_delta_arg, htlc_minimum_msat_arg_conv, htlc_maximum_msat_arg_conv); + CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. + CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this. + long ret_ref = (long)ret_var.inner; + if (ret_var.is_owned) { + ret_ref |= 1; + } + return ret_ref; +} + uint32_t __attribute__((visibility("default"))) TS_RouteHint_clone(uint32_t orig) { LDKRouteHint orig_conv; orig_conv.inner = (void*)(orig & (~1)); @@ -17685,7 +18450,7 @@ uint32_t __attribute__((visibility("default"))) TS_RouteHint_clone(uint32_t ori return ret_ref; } -uint32_t __attribute__((visibility("default"))) TS_get_route(int8_tArray our_node_id, uint32_t network, int8_tArray payee, uint32_tArray first_hops, uint32_tArray last_hops, int64_t final_value_msat, int32_t final_cltv, uint32_t logger) { +uint32_t __attribute__((visibility("default"))) TS_get_route(int8_tArray our_node_id, uint32_t network, int8_tArray payee, uint32_t payee_features, uint32_tArray first_hops, uint32_tArray last_hops, int64_t final_value_msat, int32_t final_cltv, uint32_t logger) { LDKPublicKey our_node_id_ref; CHECK(*((uint32_t*)our_node_id) == 33); memcpy(our_node_id_ref.compressed_form, (uint8_t*)(our_node_id + 4), 33); @@ -17695,6 +18460,10 @@ uint32_t __attribute__((visibility("default"))) TS_get_route(int8_tArray our_no LDKPublicKey payee_ref; CHECK(*((uint32_t*)payee) == 33); memcpy(payee_ref.compressed_form, (uint8_t*)(payee + 4), 33); + LDKInvoiceFeatures payee_features_conv; + payee_features_conv.inner = (void*)(payee_features & (~1)); + payee_features_conv.is_owned = (payee_features & 1) || (payee_features == 0); + payee_features_conv = InvoiceFeatures_clone(&payee_features_conv); LDKCVec_ChannelDetailsZ first_hops_constr; first_hops_constr.datalen = *((uint32_t*)first_hops); if (first_hops_constr.datalen > 0) @@ -17726,16 +18495,16 @@ uint32_t __attribute__((visibility("default"))) TS_get_route(int8_tArray our_no } LDKLogger logger_conv = *(LDKLogger*)(((uint64_t)logger) & ~1); LDKCResult_RouteLightningErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_RouteLightningErrorZ), "LDKCResult_RouteLightningErrorZ"); - *ret_conv = get_route(our_node_id_ref, &network_conv, payee_ref, &first_hops_constr, last_hops_constr, final_value_msat, final_cltv, logger_conv); + *ret_conv = get_route(our_node_id_ref, &network_conv, payee_ref, payee_features_conv, &first_hops_constr, last_hops_constr, final_value_msat, final_cltv, logger_conv); FREE(first_hops_constr.data); return (long)ret_conv; } -void __attribute__((visibility("default"))) TS_NetworkGraph_free(uint32_t this_ptr) { - LDKNetworkGraph this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - NetworkGraph_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_NetworkGraph_free(uint32_t this_obj) { + LDKNetworkGraph this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + NetworkGraph_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_NetworkGraph_clone(uint32_t orig) { @@ -17752,27 +18521,33 @@ uint32_t __attribute__((visibility("default"))) TS_NetworkGraph_clone(uint32_t return ret_ref; } -void __attribute__((visibility("default"))) TS_LockedNetworkGraph_free(uint32_t this_ptr) { - LDKLockedNetworkGraph this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - LockedNetworkGraph_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_LockedNetworkGraph_free(uint32_t this_obj) { + LDKLockedNetworkGraph this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + LockedNetworkGraph_free(this_obj_conv); } -void __attribute__((visibility("default"))) TS_NetGraphMsgHandler_free(uint32_t this_ptr) { - LDKNetGraphMsgHandler this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - NetGraphMsgHandler_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_NetGraphMsgHandler_free(uint32_t this_obj) { + LDKNetGraphMsgHandler this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + NetGraphMsgHandler_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_NetGraphMsgHandler_new(int8_tArray genesis_hash, uint32_t chain_access, uint32_t logger) { LDKThirtyTwoBytes genesis_hash_ref; CHECK(*((uint32_t*)genesis_hash) == 32); memcpy(genesis_hash_ref.data, (uint8_t*)(genesis_hash + 4), 32); - LDKAccess* chain_access_conv = (LDKAccess*)chain_access; + LDKAccess *chain_access_conv_ptr = NULL; + if (chain_access != 0) { + LDKAccess chain_access_conv; + chain_access_conv = *(LDKAccess*)(((uint64_t)chain_access) & ~1); + chain_access_conv_ptr = MALLOC(sizeof(LDKAccess), "LDKAccess"); + *chain_access_conv_ptr = chain_access_conv; + } LDKLogger logger_conv = *(LDKLogger*)(((uint64_t)logger) & ~1); - LDKNetGraphMsgHandler ret_var = NetGraphMsgHandler_new(genesis_hash_ref, chain_access_conv, logger_conv); + LDKNetGraphMsgHandler ret_var = NetGraphMsgHandler_new(genesis_hash_ref, chain_access_conv_ptr, logger_conv); CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this. long ret_ref = (long)ret_var.inner; @@ -17783,13 +18558,19 @@ uint32_t __attribute__((visibility("default"))) TS_NetGraphMsgHandler_new(int8_ } uint32_t __attribute__((visibility("default"))) TS_NetGraphMsgHandler_from_net_graph(uint32_t chain_access, uint32_t logger, uint32_t network_graph) { - LDKAccess* chain_access_conv = (LDKAccess*)chain_access; + LDKAccess *chain_access_conv_ptr = NULL; + if (chain_access != 0) { + LDKAccess chain_access_conv; + chain_access_conv = *(LDKAccess*)(((uint64_t)chain_access) & ~1); + chain_access_conv_ptr = MALLOC(sizeof(LDKAccess), "LDKAccess"); + *chain_access_conv_ptr = chain_access_conv; + } LDKLogger logger_conv = *(LDKLogger*)(((uint64_t)logger) & ~1); LDKNetworkGraph network_graph_conv; network_graph_conv.inner = (void*)(network_graph & (~1)); network_graph_conv.is_owned = (network_graph & 1) || (network_graph == 0); network_graph_conv = NetworkGraph_clone(&network_graph_conv); - LDKNetGraphMsgHandler ret_var = NetGraphMsgHandler_from_net_graph(chain_access_conv, logger_conv, network_graph_conv); + LDKNetGraphMsgHandler ret_var = NetGraphMsgHandler_from_net_graph(chain_access_conv_ptr, logger_conv, network_graph_conv); CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this. long ret_ref = (long)ret_var.inner; @@ -17803,8 +18584,14 @@ void __attribute__((visibility("default"))) TS_NetGraphMsgHandler_add_chain_acc LDKNetGraphMsgHandler this_arg_conv; this_arg_conv.inner = (void*)(this_arg & (~1)); this_arg_conv.is_owned = false; - LDKAccess* chain_access_conv = (LDKAccess*)chain_access; - NetGraphMsgHandler_add_chain_access(&this_arg_conv, chain_access_conv); + LDKAccess *chain_access_conv_ptr = NULL; + if (chain_access != 0) { + LDKAccess chain_access_conv; + chain_access_conv = *(LDKAccess*)(((uint64_t)chain_access) & ~1); + chain_access_conv_ptr = MALLOC(sizeof(LDKAccess), "LDKAccess"); + *chain_access_conv_ptr = chain_access_conv; + } + NetGraphMsgHandler_add_chain_access(&this_arg_conv, chain_access_conv_ptr); } uint32_t __attribute__((visibility("default"))) TS_NetGraphMsgHandler_read_locked_graph(uint32_t this_arg) { @@ -17853,11 +18640,11 @@ uint32_t __attribute__((visibility("default"))) TS_NetGraphMsgHandler_as_Messag return (long)ret; } -void __attribute__((visibility("default"))) TS_DirectionalChannelInfo_free(uint32_t this_ptr) { - LDKDirectionalChannelInfo this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - DirectionalChannelInfo_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_DirectionalChannelInfo_free(uint32_t this_obj) { + LDKDirectionalChannelInfo this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + DirectionalChannelInfo_free(this_obj_conv); } int32_t __attribute__((visibility("default"))) TS_DirectionalChannelInfo_get_last_update(uint32_t this_ptr) { @@ -17920,6 +18707,25 @@ void __attribute__((visibility("default"))) TS_DirectionalChannelInfo_set_htlc_ DirectionalChannelInfo_set_htlc_minimum_msat(&this_ptr_conv, val); } +uint32_t __attribute__((visibility("default"))) TS_DirectionalChannelInfo_get_htlc_maximum_msat(uint32_t this_ptr) { + LDKDirectionalChannelInfo this_ptr_conv; + this_ptr_conv.inner = (void*)(this_ptr & (~1)); + this_ptr_conv.is_owned = false; + LDKCOption_u64Z *ret_copy = MALLOC(sizeof(LDKCOption_u64Z), "LDKCOption_u64Z"); + *ret_copy = DirectionalChannelInfo_get_htlc_maximum_msat(&this_ptr_conv); + long ret_ref = (long)ret_copy; + return ret_ref; +} + +void __attribute__((visibility("default"))) TS_DirectionalChannelInfo_set_htlc_maximum_msat(uint32_t this_ptr, uint32_t val) { + LDKDirectionalChannelInfo this_ptr_conv; + this_ptr_conv.inner = (void*)(this_ptr & (~1)); + this_ptr_conv.is_owned = false; + LDKCOption_u64Z val_conv = *(LDKCOption_u64Z*)(((uint64_t)val) & ~1); + FREE((void*)val); + DirectionalChannelInfo_set_htlc_maximum_msat(&this_ptr_conv, val_conv); +} + uint32_t __attribute__((visibility("default"))) TS_DirectionalChannelInfo_get_fees(uint32_t this_ptr) { LDKDirectionalChannelInfo this_ptr_conv; this_ptr_conv.inner = (void*)(this_ptr & (~1)); @@ -17970,6 +18776,27 @@ void __attribute__((visibility("default"))) TS_DirectionalChannelInfo_set_last_ DirectionalChannelInfo_set_last_update_message(&this_ptr_conv, val_conv); } +uint32_t __attribute__((visibility("default"))) TS_DirectionalChannelInfo_new(int32_t last_update_arg, jboolean enabled_arg, int16_t cltv_expiry_delta_arg, int64_t htlc_minimum_msat_arg, uint32_t htlc_maximum_msat_arg, uint32_t fees_arg, uint32_t last_update_message_arg) { + LDKCOption_u64Z htlc_maximum_msat_arg_conv = *(LDKCOption_u64Z*)(((uint64_t)htlc_maximum_msat_arg) & ~1); + FREE((void*)htlc_maximum_msat_arg); + LDKRoutingFees fees_arg_conv; + fees_arg_conv.inner = (void*)(fees_arg & (~1)); + fees_arg_conv.is_owned = (fees_arg & 1) || (fees_arg == 0); + fees_arg_conv = RoutingFees_clone(&fees_arg_conv); + LDKChannelUpdate last_update_message_arg_conv; + last_update_message_arg_conv.inner = (void*)(last_update_message_arg & (~1)); + last_update_message_arg_conv.is_owned = (last_update_message_arg & 1) || (last_update_message_arg == 0); + last_update_message_arg_conv = ChannelUpdate_clone(&last_update_message_arg_conv); + LDKDirectionalChannelInfo ret_var = DirectionalChannelInfo_new(last_update_arg, enabled_arg, cltv_expiry_delta_arg, htlc_minimum_msat_arg, htlc_maximum_msat_arg_conv, fees_arg_conv, last_update_message_arg_conv); + CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. + CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this. + long ret_ref = (long)ret_var.inner; + if (ret_var.is_owned) { + ret_ref |= 1; + } + return ret_ref; +} + uint32_t __attribute__((visibility("default"))) TS_DirectionalChannelInfo_clone(uint32_t orig) { LDKDirectionalChannelInfo orig_conv; orig_conv.inner = (void*)(orig & (~1)); @@ -18004,11 +18831,11 @@ uint32_t __attribute__((visibility("default"))) TS_DirectionalChannelInfo_read( return (long)ret_conv; } -void __attribute__((visibility("default"))) TS_ChannelInfo_free(uint32_t this_ptr) { - LDKChannelInfo this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelInfo_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ChannelInfo_free(uint32_t this_obj) { + LDKChannelInfo this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelInfo_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_ChannelInfo_get_features(uint32_t this_ptr) { @@ -18124,6 +18951,25 @@ void __attribute__((visibility("default"))) TS_ChannelInfo_set_two_to_one(uint3 ChannelInfo_set_two_to_one(&this_ptr_conv, val_conv); } +uint32_t __attribute__((visibility("default"))) TS_ChannelInfo_get_capacity_sats(uint32_t this_ptr) { + LDKChannelInfo this_ptr_conv; + this_ptr_conv.inner = (void*)(this_ptr & (~1)); + this_ptr_conv.is_owned = false; + LDKCOption_u64Z *ret_copy = MALLOC(sizeof(LDKCOption_u64Z), "LDKCOption_u64Z"); + *ret_copy = ChannelInfo_get_capacity_sats(&this_ptr_conv); + long ret_ref = (long)ret_copy; + return ret_ref; +} + +void __attribute__((visibility("default"))) TS_ChannelInfo_set_capacity_sats(uint32_t this_ptr, uint32_t val) { + LDKChannelInfo this_ptr_conv; + this_ptr_conv.inner = (void*)(this_ptr & (~1)); + this_ptr_conv.is_owned = false; + LDKCOption_u64Z val_conv = *(LDKCOption_u64Z*)(((uint64_t)val) & ~1); + FREE((void*)val); + ChannelInfo_set_capacity_sats(&this_ptr_conv, val_conv); +} + uint32_t __attribute__((visibility("default"))) TS_ChannelInfo_get_announcement_message(uint32_t this_ptr) { LDKChannelInfo this_ptr_conv; this_ptr_conv.inner = (void*)(this_ptr & (~1)); @@ -18149,6 +18995,41 @@ void __attribute__((visibility("default"))) TS_ChannelInfo_set_announcement_mes ChannelInfo_set_announcement_message(&this_ptr_conv, val_conv); } +uint32_t __attribute__((visibility("default"))) TS_ChannelInfo_new(uint32_t features_arg, int8_tArray node_one_arg, uint32_t one_to_two_arg, int8_tArray node_two_arg, uint32_t two_to_one_arg, uint32_t capacity_sats_arg, uint32_t announcement_message_arg) { + LDKChannelFeatures features_arg_conv; + features_arg_conv.inner = (void*)(features_arg & (~1)); + features_arg_conv.is_owned = (features_arg & 1) || (features_arg == 0); + features_arg_conv = ChannelFeatures_clone(&features_arg_conv); + LDKPublicKey node_one_arg_ref; + CHECK(*((uint32_t*)node_one_arg) == 33); + memcpy(node_one_arg_ref.compressed_form, (uint8_t*)(node_one_arg + 4), 33); + LDKDirectionalChannelInfo one_to_two_arg_conv; + one_to_two_arg_conv.inner = (void*)(one_to_two_arg & (~1)); + one_to_two_arg_conv.is_owned = (one_to_two_arg & 1) || (one_to_two_arg == 0); + one_to_two_arg_conv = DirectionalChannelInfo_clone(&one_to_two_arg_conv); + LDKPublicKey node_two_arg_ref; + CHECK(*((uint32_t*)node_two_arg) == 33); + memcpy(node_two_arg_ref.compressed_form, (uint8_t*)(node_two_arg + 4), 33); + LDKDirectionalChannelInfo two_to_one_arg_conv; + two_to_one_arg_conv.inner = (void*)(two_to_one_arg & (~1)); + two_to_one_arg_conv.is_owned = (two_to_one_arg & 1) || (two_to_one_arg == 0); + two_to_one_arg_conv = DirectionalChannelInfo_clone(&two_to_one_arg_conv); + LDKCOption_u64Z capacity_sats_arg_conv = *(LDKCOption_u64Z*)(((uint64_t)capacity_sats_arg) & ~1); + FREE((void*)capacity_sats_arg); + LDKChannelAnnouncement announcement_message_arg_conv; + announcement_message_arg_conv.inner = (void*)(announcement_message_arg & (~1)); + announcement_message_arg_conv.is_owned = (announcement_message_arg & 1) || (announcement_message_arg == 0); + announcement_message_arg_conv = ChannelAnnouncement_clone(&announcement_message_arg_conv); + LDKChannelInfo ret_var = ChannelInfo_new(features_arg_conv, node_one_arg_ref, one_to_two_arg_conv, node_two_arg_ref, two_to_one_arg_conv, capacity_sats_arg_conv, announcement_message_arg_conv); + CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. + CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this. + long ret_ref = (long)ret_var.inner; + if (ret_var.is_owned) { + ret_ref |= 1; + } + return ret_ref; +} + uint32_t __attribute__((visibility("default"))) TS_ChannelInfo_clone(uint32_t orig) { LDKChannelInfo orig_conv; orig_conv.inner = (void*)(orig & (~1)); @@ -18183,11 +19064,11 @@ uint32_t __attribute__((visibility("default"))) TS_ChannelInfo_read(int8_tArray return (long)ret_conv; } -void __attribute__((visibility("default"))) TS_RoutingFees_free(uint32_t this_ptr) { - LDKRoutingFees this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - RoutingFees_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_RoutingFees_free(uint32_t this_obj) { + LDKRoutingFees this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + RoutingFees_free(this_obj_conv); } int32_t __attribute__((visibility("default"))) TS_RoutingFees_get_base_msat(uint32_t this_ptr) { @@ -18265,11 +19146,11 @@ int8_tArray __attribute__((visibility("default"))) TS_RoutingFees_write(uint32_ return ret_arr; } -void __attribute__((visibility("default"))) TS_NodeAnnouncementInfo_free(uint32_t this_ptr) { - LDKNodeAnnouncementInfo this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - NodeAnnouncementInfo_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_NodeAnnouncementInfo_free(uint32_t this_obj) { + LDKNodeAnnouncementInfo this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + NodeAnnouncementInfo_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_NodeAnnouncementInfo_get_features(uint32_t this_ptr) { @@ -18364,7 +19245,7 @@ void __attribute__((visibility("default"))) TS_NodeAnnouncementInfo_set_address for (size_t m = 0; m < val_constr.datalen; m++) { uint32_t val_conv_12 = val_vals[m]; LDKNetAddress val_conv_12_conv = *(LDKNetAddress*)(((uint64_t)val_conv_12) & ~1); - FREE((void*)val_conv_12); + val_conv_12_conv = NetAddress_clone((LDKNetAddress*)(((uint64_t)val_conv_12) & ~1)); val_constr.data[m] = val_conv_12_conv; } NodeAnnouncementInfo_set_addresses(&this_ptr_conv, val_constr); @@ -18467,11 +19348,11 @@ uint32_t __attribute__((visibility("default"))) TS_NodeAnnouncementInfo_read(in return (long)ret_conv; } -void __attribute__((visibility("default"))) TS_NodeInfo_free(uint32_t this_ptr) { - LDKNodeInfo this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - NodeInfo_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_NodeInfo_free(uint32_t this_obj) { + LDKNodeInfo this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + NodeInfo_free(this_obj_conv); } void __attribute__((visibility("default"))) TS_NodeInfo_set_channels(uint32_t this_ptr, int64_tArray val) { @@ -18671,9 +19552,15 @@ uint32_t __attribute__((visibility("default"))) TS_NetworkGraph_update_channel_ LDKChannelAnnouncement msg_conv; msg_conv.inner = (void*)(msg & (~1)); msg_conv.is_owned = false; - LDKAccess* chain_access_conv = (LDKAccess*)chain_access; + LDKAccess *chain_access_conv_ptr = NULL; + if (chain_access != 0) { + LDKAccess chain_access_conv; + chain_access_conv = *(LDKAccess*)(((uint64_t)chain_access) & ~1); + chain_access_conv_ptr = MALLOC(sizeof(LDKAccess), "LDKAccess"); + *chain_access_conv_ptr = chain_access_conv; + } 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); + *ret_conv = NetworkGraph_update_channel_from_announcement(&this_arg_conv, &msg_conv, chain_access_conv_ptr); return (long)ret_conv; } @@ -18684,9 +19571,15 @@ uint32_t __attribute__((visibility("default"))) TS_NetworkGraph_update_channel_ LDKUnsignedChannelAnnouncement msg_conv; msg_conv.inner = (void*)(msg & (~1)); msg_conv.is_owned = false; - LDKAccess* chain_access_conv = (LDKAccess*)chain_access; + LDKAccess *chain_access_conv_ptr = NULL; + if (chain_access != 0) { + LDKAccess chain_access_conv; + chain_access_conv = *(LDKAccess*)(((uint64_t)chain_access) & ~1); + chain_access_conv_ptr = MALLOC(sizeof(LDKAccess), "LDKAccess"); + *chain_access_conv_ptr = chain_access_conv; + } 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); + *ret_conv = NetworkGraph_update_channel_from_unsigned_announcement(&this_arg_conv, &msg_conv, chain_access_conv_ptr); return (long)ret_conv; }